{"version":3,"mappings":"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ACTpsE,eAAgB,CAChBC,eAAI,CACN,iCACAosE,iBAAmB,EACjBrsE,cAAgB,sBAChBC,GAAI,CACN,yCACAqsE,gBAAkB,EAChBtsE,cAAgB,sBAChBC,GAAI,CACN,wCACAssE,UAAY,EACVvsE,cAAgB,eAChBC,GAAI,CACN,kCACAusE,iBAAmB,EACjBxsE,cAAgB,sBAChBC,EAAI,yCACN,CACAwsE,sBAAsB,CACpBzsE,eAAgB,CAChBC,2BAAI,2CACN,CACAysE,aAAa,CACX1sE,eAAgB,CAChBC,iBAAI,kCACN,CACA0sE,WAAW,CACT3sE,eAAgB,CAChBC,eAAI,gCACN,CACA2sE,UAAU,CACR5sE,eAAgB,CAChBC,cAAI,CACN,gCACA+D,OAAS,EACPhE,cAAgB,WAChBC,EAAI,+BACN,EACA4sE,gBAAkB,EAChB7sE,cAAgB,qBAChBC,EAAI,wCACN,EACA6sE,WAAa,EACX9sE,cAAgB,iBAChBC,EAAI,mCACN,EACAL,eAAiB,EACfI,cAAgB,oBAChBC,EAAI,uCACN,CACA8sE,cAAc,CACZ/sE,eAAgB,CAChBC,yBAAI,CACN,oCACA+sE,OAAQ,CACNhtE,eAAgB,CAChBC,WAAI,CACN,8BACAgtE,aAAe,EACbjtE,cAAgB,kBAChBC,EAAI,qCACN,CACA9C,OAAO,CACL6C,cAAgB,SAChBC,EAAI,6BACN,CACAitE,YAAY,CACVltE,eAAgB,CAChBC,eAAI,CACN,kCACAktE,SAAW,EACTntE,eAAgB,CAChBC,eAAI,CACN,iCACAmtE,eAAiB,EACfptE,eAAgB,CAChBC,sBAAI,CACN,uCACAotE,iBAAmB,EACjBrtE,eAAgB,CAChBC,wBAAI,CACN,yCACAqtE,UAAY,EACVttE,cAAgB,cAChBC,EAAI,kCACN,CACAstE,eAAe,CACbvtE,eAAgB,kBAChBC,EAAI,qCACN,CACAutE,UAAU,CACRxtE,eAAgB,WAChBC,EAAI,gCACN,CACAja,MAAM,CACJga,eAAgB,OAChBC,EAAI,4BACN,CACAwtE,QAAQ,CACNztE,eAAgB,CAChBC,YAAI,CACN,8BACA0mE,cAAgB,EACd3mE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AAa,OACf,CACAy9M,eAAe,CACbj+M,KAAM,CACNC,qBAAO,CACPi+M,cAAU,CACVC,sBAAiB,CACjBj+M,sBAAY,CACV,CACEF,KAAM,CACNG,gBAAM,CACNE,eAAU,CACVE,sBAAa,CACbC,4FAAa,CACf,aACA,CACER,KAAM,CACNG,cAAM,OACNE,QAAU,YACVE,WAAa,8BACbC,WAAa,WACf,CACD,EACDD,WACE,uPACFC,WAAa,QACf,CACAunG,MAAM,CACJ/nG,IAAM,QACNC,KAAO,YACPC,UAAY,EACV,CACEF,KAAM,CACNG,cAAM,CACNE,eAAU,CACVE,sBAAa,CACbC,wCAAa,CACf,WACD,CACDD,YACE,CACFC,uNAAa,CACf,OACA49M,YAAc,EACZp+M,IAAM,gBACNC,KAAO,YACPi+M,SAAU,CACVC,sBAAiB,CACjBE,yBAAe,CACfn+M,0BAAY,CACV,CACEF,IAAM,WACNG,IAAM,QACNE,QAAU,YACVE,YAAa,CACbC,wCAAa,CACf,WACA,CACER,KAAM,CACNG,gBAAM,CACNE,eAAU,CACVE,sBAAa,CACbC,4FAAa,YACf,CACA,EACER,IAAM,iBACNG,IAAM,QACNE,QAAU,YACV0pL,UAAY,EACV,CAAEv0F,MAAO,CAAGx1F,MAAM,CAAUO,oBAAa,CAA0D,0DACnG,CACEi1F,MAAO,CACPx1F,MAAM,CACNO,sBACE,CACJ,mHACA,CACEi1F,MAAO,CACPx1F,MAAM,OACNO,WACE,8GACJ,CACD,EACDA,WAAa,kFACbC,WAAa,kBACbypL,YAAc,IAChB,CACA,EACEjqL,IAAM,oBACNG,KAAM,CACNE,eAAU,CACVE,oBAAa,CACbC,8BAAa,CACbypL,+BACE,CACJ,4HACD,CACD1pL,YACE,CACFC,uNAAa,eACf,CACA89M,cAAc,CAEZt+M,KAAM,CACNC,oBAAO,CACPO,kBAAa,CACf,eACF,CAGI+9M,MAAQ,CACZ,CACEznI,EAAI,OACJ92E,IAAM,iBACNw+M,KAAO,kBACPpvG,KAAO,EAAC,CAAc,aACxB,CACA,EACEt4B,EAAI,OACJ92E,IAAM,cACNw+M,MAAO,CACPpvG,uBAA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","names":["IconName","MixpanelEvent","AddressRoutingTypeEnum","AggregationTypeEnum","AggregationWindowEnum","AggregatorDebugFlagEnum","AggressorFlagEnum","AlgoConfigurationParameterEnum","AlgoInstructionsEnum","AlgoTypeEnum","AllocationRequestTypeEnum","AllocationStatusEnum","AllocationTypeEnum","AllocationValueTypeEnum","AnalyticsOrderDepthEnum","AnalyticsSpreadTypeEnum","ApiPermissionActionEnum","ArchivedStatusEnum","AssetTransactionAllocationStatusEnum","AssetTransactionSettlementStatusEnum","AssetTransactionTypeEnum","BalanceEntryTypeEnum","BalanceTransactionInitiatorEnum","BookTypeEnum","BoolEnum","CheckpointTypeEnum","ConnectionCapabilitiesEnum","ConnectionDetailsEnum","ConnectionErrorCodeEnum","ConnectionModeEnum","ConnectionStatusEnum","ConnectionTypeEnum","ConversionSourceUnitEnum","CounterpartyTypeEnum","CurrencyTagEnum","CustomInstrumentDeleteRequestStatusEnum","CustomInstrumentRequestStatusEnum","CustomInstrumentRequestTypeEnum","CustomerAddressStatusEnum","CustomerAddressTypeEnum","CustomerBalanceTransactionStatusEnum","CustomerBalanceTransactionTypeEnum","CustomerContextTypeEnum","CustomerExecutionStrategyEnum","CustomerLedgerUpdateTypeEnum","CustomerLockSourceEnum","CustomerLockStatusEnum","CustomerOrderPayPreviewStatusEnum","CustomerOrderPreviewTypeEnum","CustomerOrderSummaryActionEnum","CustomerPermissionActionEnum","CustomerResourceEnum","CustomerRiskApprovalStatusEnum","CustomerTransactionRejectReasonEnum","CustomerViewCancelTypeEnum","CustomerWorkflowEnum","CxlRejReasonEnum","CxlRejResponseToEnum","DecisionLogTypeEnum","DecisionStatusEnum","DedupModelEntryTypeEnum","DeleteOperationEnum","DeprecatedApplicationEventTypeEnum","DeprecatedCustomInstrumentSnapshotRequestStatusEnum","DepthTypeEnum","ESignGatewayEventTypeEnum","ESignRecipientStatusEnum","ESignStatusEnum","ErrorActionEnum","EventIndicatorEnum","ExecTypeEnum","ExposureCalculationTypeEnum","ExposureLimitSideTypeEnum","ExposureModeEnum","ExposureSourceEnum","ExposureStatusEnum","ExternalTypeEnum","FIXFlagsEnum","FeeConfigUpdateActionEnum","FeeModeEnum","FeeResponseStatusEnum","FeeSourceEnum","FixedPricingModeEnum","HedgeActionEnum","HedgeCommandEnum","HedgeCommandStatusEnum","HedgeControlStatusEnum","HedgeControlTypeEnum","HedgeDecisionEnum","HedgeDeltaAttributionEnum","HedgerLedgerStatusEnum","HedgingStatusEnum","InjectionActionEnum","InstrumentCompositionEnum","LedgerAccountTypeEnum","LedgerUpdateStatusEnum","LedgerUpdateTypeEnum","LegDirectionEnum","LendingRelationshipStatusEnum","LimitStatusEnum","LiquidityTypeEnum","LoanCollateralCurrencyStatusEnum","LoanHandlingErrorEnum","LoanPrincipalCurrencyStatusEnum","LoanQuoteRequestTypeEnum","LoanQuoteStatusEnum","LoanQuoteTerminationTypeEnum","LoanQuoteValidationErrorEnum","LoanStatusEnum","LoanTransactionHandlingErrorEnum","LoanTransactionStatusEnum","LoanTransactionTypeEnum","LockRequestTypeEnum","LockUnderlyingObjectTypeEnum","MDEntryTypeEnum","MDUpdateActionEnum","MarginAccountTypeEnum","MarginAllocationTypeEnum","MarginCostStatusEnum","MarginReportingTypeEnum","MarketAccountCapabilitiesEnum","MarketAccountOwnershipEnum","MarketAccountStatusEnum","MarketAccountTypeEnum","MarketFeeModeEnum","MarketFlagsEnum","MarketParameterPropertyEnum","MarketTypeEnum","MessageDirectionEnum","MessageProcessingRateLimitDefinitionTypeEnum","ModeEnum","MoneynessBucketEnum","MultilegReportingTypeEnum","OMSOrderPropertyEnum","OPAScopeTypeEnum","OnPlatformAnalyticsTierEnum","OptionTypeEnum","OrdRejReasonEnum","OrdStatusEnum","OrdTypeEnum","OrderAdminActionEnum","OrderControlActionEnum","OrderMarketStatusEnum","OrderMarketabilityEnum","PegReferenceTypeEnum","PnlLookbackEnum","PortfolioAdminRequestTypeEnum","PositionLimitScopeEnum","PositionSideTypeEnum","PositionUpdateSourceEnum","PositionUpdateTypeEnum","PresenceEnum","PriceMarkSourceEnum","PriceOffsetUnitsEnum","PriceProtectionEnum","PricingModeEnum","PricingModesEnum","PricingRuleTypeEnum","ProductTypeEnum","QuoteStatusEnum","QuoteTypeEnum","RPCHeaderIndicatorEnum","RPCSessionActionEnum","RPCSessionStatusEnum","RateLimitGroupByScopeEnum","ReconResolutionEnum","ReconStateEnum","ReconStreamStatusEnum","ReconTruthTypeEnum","RecordAckTypeEnum","RecordRequestTypeEnum","ReduceFirstEnum","ReduceOnlyEnum","ReplayAckTypeEnum","ReplayRequestTypeEnum","RequestIndicatorTypeEnum","RequestSourceEnum","RequestTypeEnum","ResolutionEnum","RiskEvaluationModeEnum","SecurityOwnerEnum","SequencerConnectResponseStatusEnum","ServiceStatusEnum","SessionEventTypeEnum","SessionSourceEnum","SettleValueTypeEnum","SettlementBatchRejectReasonEnum","SettlementBatchStatusEnum","SettlementClassEnum","SettlementInstructionDirectionEnum","SideEnum","SlippageReferencePriceEnum","SnapshotBlockEntryTypeEnum","StrategyParameterSettingEnum","StrategyScopeEnum","StrategyTypeEnum","SubAccountReconCheckpointEvalStatusEnum","SubAccountReconCheckpointStatusEnum","SubAccountReconMatchStatusEnum","SubAccountSMPCheckTypeEnum","SubAccountTradeRoutingModeEnum","SubAccountTypeEnum","SubscriptionRequestTypeEnum","SyntheticProductTypeEnum","TenorBucketEnum","ThresholdTypeEnum","TimeInForceEnum","TopicStatusEnum","TradeActionEnum","TradeRecoveryActionEnum","TradeRecoveryStatusEnum","TradeRefDataTypeEnum","TradeSettleActionEnum","TradeSettleSourceEnum","TradeSettleStatusEnum","TradeSourceEnum","TradeStatusEnum","TradeTypeEnum","TradeUpdateRequestTypeEnum","TransactionExecTypeEnum","TransactionRejectReasonEnum","TransactionStatusEnum","TransactionTypeEnum","TransactionUpdateActionEnum","TransferAutomationStatusEnum","TransferRequestTypeEnum","TransferStatusEnum","TransferUpdateStatusEnum","TreasuryLinkDirectionEnum","TreasuryLinkTypeEnum","TriggerTypeEnum","TypeEnum","UnifiedLiquidityEnum","UpdateActionEnum","UserMarketDataLimitRequestStatusEnum","ViewCancelTypeEnum","OrderStatusText","OrderStatusSize","QuoteStatusText","ParameterTypeEnum","SpreadUnit","PricingMode","ROLE","ACTION","MARKETPLACE_ACTION","ThemeTypes","Direction","PopoverVariant","AlertVariants","WarningSeverity","InputVariants","InputStates","FormControlSizes","ButtonVariants","ButtonStates","NumberVariants","SmartTruncateEnum","IndicatorBadgeVariants","IndicatorBadgeSizes","AggregationType","CardViewEnum","CustomerOrderStrategiesEnum","HeartBeatStatusEnum","MixpanelMetadata","MixpanelEventProperty","MixpanelEventSource","WebSocketStatus","SecurityType","IndicatorDotVariants","ConnectionType","ExposureTypeEnum","CustomerUserConfigLayoutType","GlobalCustomerUserConfigTradingLayoutArrangements","ProtectedCustomerUserConfigTradingLayoutArrangements","CustomerUserConfigLayoutNavigationTypes","LoanSides","ArchiveStatus","OrderFormSides","PricingTierTypeEnum","CustomerSettlementPerspectiveEnum","TreasuryLinkStatusEnum","TreasuryLinkTransactionType","TreasuryLinkSpecificness","WLParameterKeysEnum","WebsocketErrorCodeEnum","WL_BLOTTER_TAB","TabAppearance","TabSize","FuseResultMatchEnum","BlotterDensity","TagVariants","TagSizes","TimePickerPrecision","LookbackOption","LoaderSizes","ProcessStepSizes","ProcessStepState","NotificationVariants","NotificationSizes","FIXConnectionTypeEnum","AppwideDrawerContentType","FormRowStatus","FilterClauseType","Filters","TableSize","MarketColorDotVariant","LoanQuoteStatusText","LoanStatusText","LoanTransactionStatusText","RecipientStatusText","DateTimeDurationPickerValueType","RDCStatus","FieldValidationLevel","FieldValidationType","Unit","Multiplier","SymbolSelectorAppearance","ChartTooltipValueType","DataTableColumnTypes","GenericDrawerTypeEnum","TimelineStatusEnum","GridFormTypes","NoteVariant","StepType","ResizerPlacement","Component","SymbolDisplaySize","FilterableProperties","CheckValidationStep","ScreenOrientationEnum","onPerfEntry","IGNORED_UAT_ERRORS","Set","IGNORED_PROD_ERRORS","CSP_ERROR_TYPES","globalThis","Sugar","Array","prototype","compact","compactAll","filter","item","Number","isNaN","BufferedDispatcher","constructor","_dispatch","queue","processedTypes","intervalID","setInterval","length","copy","slice","batch","forEach","action","isTypeInitialised","type","has","dispatch","actionType","a","push","add","dispatchImmediate","destroy","clearInterval","composeComponents","components","children","lastIndex","activeChildren","_jsx","_Fragment","i","Provider","AllocationReasonEnum","ExecTypeReasonEnum","ExecutionInstructionsEnum","LoanActionEnum","LoanAdminActionEnum","LoanQuoteAdminActionEnum","LoanTransactionAdminActionEnum","OrdRiskStatusEnum","ParticipantEntityTypeEnum","PriceMarkTagsEnum","ConnectionMessage","Error","Offline","Stale","Starting","Stopping","Online","Unavailable","Disabled","Keepalive","NotInSession","RateLimited","connectionStatusText","status","eraseCookie","name","expiresAt","date","Date","toUTCString","document","cookie","window","location","hostname","copyText","text","isNil","navigator","clipboard","writeText","ex","console","error","DECIMAL","GROUP","logger","context","datadogRum","addError","datadogLogs","message","warn","info","debug","trackFeatureFlag","key","value","addFeatureFlagEvaluation","trackDuration","options","addDurationVital","highlight","number","specification","highlightStart","highlightEnd","specificationDecimalIndex","indexOf","numberDecimalIndex","highlighting","c","charAt","abbreviate","decimalThreshold","lowestThreshold","precision","decimalIncrement","undefined","parsed","parseFloat","toString","Math","abs","Big","toFixed","replace","abbr","floor","toUpperCase","format","s","raw","replaceAll","e","extra","string","fixedRoundingMode","round","roundHalfUp","roundDown","isExpNotation","parseInt","spec","sl","includes","calculatePrecision","fixed","truncate","substring","removeTrailingZeros","toNumber","pretty","int","dec","split","sign","showSign","lt","gt","toBig","toBigWithDefault","defaultValue","bigMin","values","minValue","v","reduce","acc","percentToBps","n","times","bpsToPercent","div","setOption","parseNumber","decimal","group","integers","decimals","RegExp","getCreditAmount","customerBalance","creditOrExposure","creditBalance","AvailableAmount","minus","bigMax","maxValue","Amount","PendingWithdrawal","OutstandingSell","getAddressRoutingTypeOfCurrency","currencyObj","Tags","Fiat","Crypto","FetchError","response","body","errorJson","url","error_msg","statusText","createFormData","obj","data","encodeURIComponent","join","performRequest","endpoint","path","paginateRecords","restOfOptions","performRequestInner","baseUrl","pagedResponse","restFetchAllPages","dynamicUrl","csrfTokenMap","Map","csrfTokenName","requestUrl","URL","origin","hadCsrfTokenBeforeRequest","headers","get","fetch","then","json","set","JSON","parse","ok","catch","Promise","reject","Get","credentials","POST","PATCH","DELETE","request","method","payload","requestOptions","stringify","Post","isContentTypeJson","Put","Patch","Delete","contentType","limit","paginatableRequestFn","responses","recordsReceived","Object","next","attachAfterSearchParam","afterValue","searchParams","href","flatMap","DEFAULT_CUSTOMER_MARKET_ACCOUNT","DURATIONS","SECOND","MINUTE","HOUR","DAY","parseDate","input","now","sugarDate","create","clone","isTimeActive","startTimeString","endTimeString","currentTime","parseTime","timeString","hours","minutes","seconds","map","setHours","startDate","endDate","addDays","isWithinInterval","start","end","formattedDate","dateString","pattern","locale","parsedDate","isValid","formattedDateWithMilliseconds","formattedDateForSubscription","setUTC","formattedDay","formattedTime","readableDay","includeTime","beginningOfDay","tmp","addDuration","duration","unit","durationMs","parseDuration","addSeconds","addMinutes","addHours","isDateInThePast","isPast","isValidDateInput","isDate","MAX_DATE","freeze","MIN_DATE","EMPTY_ARRAY","EMPTY_OBJECT","isNonProdEnv","isTalosWLDemoEnv","getFileExportFormattedDate","Maker","Taker","Net","createCSVFileName","tabLabel","createExportFileName","mode","extension","isOrderComplete","ordStatus","Boolean","Canceled","Filled","Rejected","DoneForDay","isOrderPaused","ordDecisionStatus","Staged","Paused","SystemPaused","isOrderPending","PendingCancel","PendingReplace","PendingNew","MARKET_COLORS","YmluYW5jZV9mdXR1cmVz","Yml0bWV4","Y29wcGVy","ZW5pZ21h","ZnR4","Z2FsYXh5","Z2VtaW5p","a3Jha2Vu","a3Vjb2lu","b2tjb2lu","b2t4","b3Ns","c2ln","c3VjZGVu","dW5pc3dhcF90cmFkaW5n","getMarketColor","market","theme","btoa","colors","blue","lighten","isoTimestampToMicrosecondUnixTs","timestamp","microsecondUnixTs","getTime","decimalPointSplit","decimalsWithZ","microsecondsString","microseconds","pow","ManualStrategy","Name","Group","Parameters","Type","Price","Presence","Required","Description","DisplayName","isSecurityQuantoFuture","security","ProductType","Spot","BaseCurrency","QuoteCurrency","SettlementCurrency","isSecurityDeribit","Markets","isDeribitLinearOption","isOption","SettleValueType","Regular","isSpot","Composition","Synthetic","isPerpetualSwap","PerpetualSwap","isFuture","Future","isCFD","CFD","Option","isMultileg","getProductType","MultilegDetails","SyntheticProductType","productTypeToString","getProductGroupLabel","productGroup","productType","getGroup","sec","allowContracts","NotionalMultiplier","eq","getMinIncrementForContract","currency","canViewDeepDive","isExpired","Expiration","getEffectiveMinIncrement","isCcy","MinAmtIncrement","MinPriceIncrement","MinSizeIncrement","isCounterCurrency","WLCanResubmitCustomerOrder","order","Strategy","WLCanModifyCustomerOrder","OrdStatus","RFQID","orderStatusTextToColor","colorOrderStatusFilled","colorTextDefault","colorOrderStatusRejected","FilledAndCanceled","getSymbolsAcrossMarkets","symbolsSet","legSummary","LegSummary","find","leg","LegIndex","Symbol","MarketStatus","CumQty","MultilegReportingType","Parent","from","getFilledNotional","entity","Currency","AmountCurrency","CumAmt","getTotalNotional","expectedFillPriceBig","ExpectedFillPrice","priceBig","OrderQty","getPositionAmount","quantity","mul","Inverted","Unknown","Cross","Delta1Spread","CallCalendarSpread","PutCalendarSpread","CallSpread","PutSpread","prettyPriceProtection","priceProtection","messages","defineMessages","impliedVolatility","defaultMessage","id","submittedPrice","spreadToFixing","getPricingReference","priceField","priceMultiplier","SpreadToFixing","ImpliedVolatility","getUnitForPriceMode","defaultUnit","UnderlyingQuoteCurrency","Default","IntlContext","createContext","intlDefaultFormatter","formatMessage","descriptor","maybeObj","replacePlaceholders","match","formatCell","doNotOverwriteDisplayNames","INTL_KEY_PROTECTED_WORDS","getIntlKey","label","trim","word","index","toLowerCase","params","displayNameMap","current","intl","intlKey","translatedValue","IntlProvider","loadMessages","_locale","setLocale","useState","isLoaded","setIsLoaded","setMessages","loadKyokoMessages","useCallback","__variableDynamicImportRuntimeHelper","mod","default","language","assign","__vitePreload","__VITE_IS_MODERN__","useEffect","promises","overrides","all","kyokoMessages","captureExceptionForDuplicates","keys","useMemo","at","onIntlError","onIntlWarn","warning","ReactIntlProvider","onError","onWarn","renderToHTML","component","createElement","root","createRoot","flushSync","render","ThemeProvider","returnValue","innerHTML","unmount","prettyName","String","titleize","prettyTimeUnit","tryParseJSON","logFailure","notEmpty","urlFromLocalOrAbsolute","pathOrUrl","protocol","isAbsolute","startsWith","promisesHaveResolved","every","promise","abbreviateId","borderCss","borderSize","css","chamferMultiplier","BaseStyle","createGlobalStyle","fontFace","normalize","fontFamily","backgroundBody","fontSizeDefault","scrollbarSize","backgroundScrollbar","colorScrollbar","borderRadiusScrollbar","colorScrollbarHover","colorTextImportant","fontWeightRegular","writeCssVars","prefix","blacklist","blacklistedKeys","result","recurse","cssVars","results","isString","isNumber","concat","GlobalStyle","Z_INDEX","adminBlotterHeader","blotters","drawer","popover","modal","parentDropdown","dropdown","MEDIA","small","medium","maxWidth","width","hashTheme","str","hashThemeRunTime","parseDimension","dimensionToken","parsedDimension","parsedDimensionValue","getThemeDimensionValue","parseColor","color","parsedColor","modeColor","lightColor","darkColor","parseFontSize","size","sizeValue","parseIconSize","getInputStylesAppliedToSelect","backgroundSelect","backgroundInput","backgroundSelectHover","backgroundSelectFocus","backgroundSelectInvalid","backgroundInputInvalid","backgroundSelectDisabled","backgroundInputDisabled","backgroundSelectReadOnly","backgroundInputReadOnly","borderColorSelect","borderColorInput","borderColorSelectHover","borderColorInputHover","borderColorSelectFocus","borderColorInputFocus","borderColorSelectInvalid","borderColorInputInvalid","borderColorSelectDisabled","borderColorInputDisabled","borderColorSelectReadOnly","borderColorInputReadOnly","hoverColor","diff","darken","hexRegex","hslRegex","rgbRegex","isAdjustableColor","style","test","loading","keyframes","getMutedButtonStyles","customMappings","backgroundMutedButton","backgroundDefaultButton","rgba","gray","backgroundMutedButtonHover","backgroundDefaultButtonHover","backgroundMutedButtonFocus","backgroundDefaultButtonFocus","backgroundMutedButtonActive","backgroundDefaultButtonActive","backgroundMutedButtonDisabled","backgroundDefaultButtonDisabled","boxShadowMutedButton","boxShadowDefaultButton","boxShadowMutedButtonHover","boxShadowDefaultButtonHover","boxShadowMutedButtonFocus","boxShadowDefaultButtonFocus","boxShadowMutedButtonActive","boxShadowDefaultButtonActive","boxShadowMutedButtonDisabled","boxShadowDefaultButtonDisabled","colorTextMutedButton","colorTextDefaultButton","colorTextMutedButtonHover","colorTextDefaultButtonHover","colorTextMutedButtonFocus","colorTextDefaultButtonFocus","colorTextMutedButtonActive","colorTextDefaultButtonActive","colorTextMutedButtonDisabled","colorTextDefaultButtonDisabled","borderColorMutedButton","borderColorDefaultButton","borderColorMutedButtonHover","borderColorDefaultButtonHover","borderColorMutedButtonFocus","borderColorDefaultButtonFocus","borderColorMutedButtonActive","borderColorDefaultButtonActive","borderColorMutedButtonDisabled","borderColorDefaultButtonDisabled","base","baseSize","spacingHuge","BASE_SIZE","spacingBig","spacingLarge","spacingMedium","spacingComfortable","spacingDefault","spacingSmall","spacingTiny","spacing48","spacing32","spacing24","spacing16","spacing12","spacing10","spacing8","spacing6","spacing4","spacing2","fontSizeHuge","fontSizeBig","fontSizeLarge","fontSizeSmall","fontSizeTiny","fontWeightMedium","fontWeightBold","fontSizeTitleH1","fontSizeTitleH2","fontSizeTitleH3","fontSizeTitleH4","fontSizeTitleH5","fontSizeTitleH6","fontSizeXl","fontSizeLg","fontSizeMd","fontSizeSm","fontSizeXs","lineHeightTitleH1","lineHeightTitleH2","lineHeightTitleH3","lineHeightTitleH4","lineHeightTitleH5","lineHeightTitleH6","lineHeightXl","lineHeightLg","lineHeightMd","lineHeightSm","lineHeightXs","lineHeightHuge","lineHeightBig","lineHeightLarge","lineHeightDefault","lineHeightSmall","lineHeightTiny","fontSizeFormLabel","fontSizeFormHelp","fontSizeBlotterTableCompact","fontSizeBlotterTableDefault","fontSizeBlotterTableHeader","blotterTableHeaderFontWeight","blotterTableHeaderTextTransform","rowHeightBlotterTableCompact","rowHeightBlotterTableDefault","rowHeightBlotterTableComfortable","rowHeightBlotterTableVeryComfortable","fontUrl","borderRadiusTiny","borderRadiusSmall","borderRadiusDefault","borderRadiusMedium","borderRadiusLarge","borderRadiusBig","borderRadiusHuge","borderRadiusCard","borderRadiusContent","borderRadiusLayoutWrapper","borderRadiusButtonTiny","borderRadiusButtonSmall","borderRadiusButtonDefault","borderRadiusButtonLarge","spacingLayout","spacingContent","spacingLayoutWrapper","borderWidthButton","indicatorDotSizeDefault","indicatorDotSizeLarge","darkColors","black","dim","mute","white","main","primary","green","red","yellow","orange","purple","DarkTheme","mapDarkTheme","dark","backgroundShadow","backgroundLayoutWrapper","backgroundContent","backgroundContentHover","backgroundDrawer","backdropFilterDrawer","backgroundPopover","backgroundPopoverHighlight","backgroundModal","borderColorModal","borderColorPopover","backgroundCard","boxShadowDraggedItem","backgroundOverlay","backgroundSidebar","borderColorSidebar","backgroundSidebarItemActive","backgroundSidebarItemHover","backdropFilterSidebar","colorTextSidebarItem","colorTextSidebarItemActive","colorTextSidebarItemHover","boxShadowContent","boxShadowHeader","backdropFilterContent","backdropFilterHeader","colorBlotterTableHeader","backgroundBlotterTableRow","backgroundBlotterTableRowSelected","backgroundBlotterTableRowHover","borderColorBlotterTable","borderColorContent","backgroundHeader","borderColorHeader","backgroundPriorityButton","backgroundPriorityButtonHover","backgroundPriorityButtonFocus","backgroundPriorityButtonActive","backgroundPriorityButtonDisabled","backgroundPrimaryButton","backgroundPrimaryButtonHover","backgroundPrimaryButtonFocus","backgroundPrimaryButtonActive","backgroundPrimaryButtonDisabled","backgroundPositiveButton","backgroundPositiveButtonHover","backgroundPositiveButtonFocus","backgroundPositiveButtonActive","backgroundPositiveButtonDisabled","backgroundNegativeButton","backgroundNegativeButtonHover","backgroundNegativeButtonFocus","backgroundNegativeButtonActive","backgroundNegativeButtonDisabled","backgroundWarningButton","backgroundWarningButtonHover","backgroundWarningButtonFocus","backgroundWarningButtonActive","backgroundWarningButtonDisabled","boxShadowPrimaryButton","boxShadowPrimaryButtonHover","boxShadowPrimaryButtonFocus","boxShadowPrimaryButtonActive","boxShadowPrimaryButtonDisabled","boxShadowPositiveButton","boxShadowPositiveButtonHover","boxShadowPositiveButtonFocus","boxShadowPositiveButtonActive","boxShadowPositiveButtonDisabled","boxShadowNegativeButton","boxShadowNegativeButtonHover","boxShadowNegativeButtonFocus","boxShadowNegativeButtonActive","boxShadowNegativeButtonDisabled","boxShadowPriorityButton","boxShadowPriorityButtonHover","boxShadowPriorityButtonFocus","boxShadowPriorityButtonActive","boxShadowPriorityButtonDisabled","boxShadowInput","boxShadowInputHover","boxShadowInputFocus","boxShadowInputInvalid","boxShadowInputDisabled","boxShadowInputReadOnly","boxShadowInputInvalidFocus","backgroundPrimary","backgroundPositive","backgroundNegative","backgroundPrimarySubtle","backgroundPositiveSubtle","backgroundNegativeSubtle","backgroundPrimaryMuted","backgroundPositiveMuted","backgroundNegativeMuted","backgroundSelectDropdown","backgroundToggle","backgroundToggleChecked","backgroundToggleSwitch","backgroundToggleSwitchChecked","backgroundToggleSwitchButton","backgroundToggleSwitchButtonActive","backgroundCheckbox","backgroundCheckboxHover","backgroundCheckboxChecked","backgroundCheckboxCheckedHover","colorCheckboxCheck","borderColorCheckbox","borderColorCheckboxFocus","borderColorCheckboxHover","borderColorCheckboxChecked","borderColorCheckboxCheckedFocus","backgroundRadiobutton","backgroundRadiobuttonHover","backgroundRadiobuttonChecked","backgroundRadiobuttonCheckedHover","colorRadiobuttonDot","borderColorRadiobutton","borderColorRadiobuttonFocus","borderColorRadiobuttonHover","borderColorRadiobuttonChecked","borderColorRadiobuttonCheckedFocus","backgroundProgressBar","backgroundProgressBarIndeterminate","backgroundProgressBarMeter","colorTextMuted","colorTextSubtle","colorTextAttention","colorTextDefaultDimButton","colorTextPriorityButton","colorTextPriorityButtonHover","colorTextPriorityButtonFocus","colorTextPriorityButtonActive","colorTextPriorityButtonDisabled","colorTextPriorityDimButton","colorTextPositiveButton","colorTextPositiveButtonHover","colorTextPositiveButtonFocus","colorTextPositiveButtonActive","colorTextPositiveButtonDisabled","colorTextNegativeButton","colorTextNegativeButtonHover","colorTextNegativeButtonFocus","colorTextNegativeButtonActive","colorTextNegativeButtonDisabled","colorTextWarningButton","colorTextWarningButtonHover","colorTextWarningButtonFocus","colorTextWarningButtonActive","colorTextWarningButtonDisabled","colorTextPrimaryButton","colorTextPrimaryButtonHover","colorTextPrimaryButtonFocus","colorTextPrimaryButtonActive","colorTextPrimaryButtonDisabled","colorTextPrimary","colorTextPrimarySubtle","colorTextPrimaryMuted","colorTextPositive","colorTextPositiveSubtle","colorTextPositiveMuted","colorTextNegative","colorTextNegativeSubtle","colorTextNegativeMuted","colorTextWarning","colorTextWarningSubtle","colorTextWarningMuted","colorDataBlue","borderColorInputInvalidFocus","borderColorPriorityButton","borderColorPriorityButtonHover","borderColorPriorityButtonFocus","borderColorPriorityButtonActive","borderColorPriorityButtonDisabled","borderColorPositiveButton","borderColorPositiveButtonHover","borderColorPositiveButtonFocus","borderColorPositiveButtonActive","borderColorPositiveButtonDisabled","borderColorNegativeButton","borderColorNegativeButtonHover","borderColorNegativeButtonFocus","borderColorNegativeButtonActive","borderColorNegativeButtonDisabled","borderColorPrimaryButton","borderColorPrimaryButtonHover","borderColorPrimaryButtonFocus","borderColorPrimaryButtonActive","borderColorPrimaryButtonDisabled","borderColorWarningButton","borderColorWarningButtonHover","borderColorWarningButtonFocus","borderColorWarningButtonActive","borderColorWarningButtonDisabled","borderColorChartAxis","borderColorChartGridLine","borderColorChartCrosshair","backgroundChartUpColor","backgroundChartDownColor","borderColorChartUpColor","borderColorChartDownColor","backgroundChart","borderColorDivider","backgroundDivider","borderColorTimeline","backgroundTimelineContent","backgroundTimelineOverlay","borderColorSelectionTable","borderColorSelectionTableActive","colorTab","colorTabHover","colorTabActive","colorTabSelected","borderColorTab","backgroundFilledTab","backgroundFilledTabList","borderColorTabSelected","boxShadowTab","boxShadowTabActive","backgroundResizeHandle","backgroundResizeHandleHover","backgroundLoader","borderColorDrawer","backgroundTabInput","colorTabInputButton","colorTabInputButtonHover","colorTabInputButtonActive","colorStepIconOpen","colorStepIconActive","colorStepIconDone","colorStepConnectionOpen","colorStepConnectionDone","backgroundAccordionContent","colorTextVolumeLadderSpread","backgroundVolumeLadderBidSpread","backgroundVolumeLadderOfferSpread","backgroundVolumeLadderTransparencyDirection","Asc","backgroundDropdownResults","backgroundDropdownInput","backgroundDropdownSelected","backgroundDropdownHovered","backgroundDropdownGroupHeader","boxShadowDropdown","backgroundModalHeader","colorModeCurrencyIcon","colorCurrencyIcon","colorStackedNumberHighlight","colorStackedNumberNoHighlight","columnDividerDefault","columnDividerHover","buttonGroupSharedBackground","DarkTalosTheme","lightColors","hsla","LightTheme","mapLightTheme","light","LightTalosTheme","hsl","DarkConservativeTheme","DarkGradientsTheme","DarkTransparencyTheme","LightConservativeTheme","sidebarThemeName","LightGradientsTheme","LightTransparencyTheme","DarkAbraTheme","DarkAnchorageTheme","DarkArchaxTheme","merge","cloneDeep","DarkBCBTheme","DarkBinalokaTheme","DarkBitpandaTheme","DarkCanarySidebarTheme","DarkCanaryTheme","customcolors","DarkCFTheme","DarkEtanaTheme","DarkGriffoDevTheme","DarkGriffoTheme","DarkHextrustSidebarTheme","DarkISPTheme","DarkJanuarTheme","DarkKeyrockTheme","DarkNeoChainTheme","DarkOneIOTheme","DarkOneLiquidityTheme","DarkPintuTheme","DarkPxTheme","DarkRainTheme","DarkSDMTheme","darkSeliniColors","DarkSeliniCapitalTheme","DarkStablehouseTheme","desaturate","DarkTDATheme","DarkWintermute2Theme","DarkWintermuteTheme","DarkXeroFTheme","DarkZerocapTheme","LightAbraTheme","LightAnchorageTheme","LightArchaxTheme","LightBCBTheme","LightBinalokaTheme","LightBitpandaTheme","LightCFTheme","LightEtanaTheme","LightGriffoDevTheme","LightGriffoTheme","LightHextrustSidebarTheme","LightISPTheme","LightJanuarTheme","LightKeyrockTheme","LightNeoChainTheme","LightOneIOTheme","LightOneLiquidityTheme","LightPintuTheme","LightPxTheme","LightRainTheme","LightSDMTheme","lightSeliniColors","LightSeliniCapitalTheme","LightStablehouseTheme","LightTDATheme","LightWintermute2Theme","LightWintermuteTheme","LightXeroFTheme","LightZerocapTheme","noForwardProps","box","w","h","maxHeight","minWidth","minHeight","aspectRatio","m","mx","my","mt","mr","mb","ml","p","px","py","pt","pr","pb","pl","flexBasis","alignSelf","justifySelf","flex","display","flexDirection","flexWrap","justifyContent","alignItems","gap","columnGap","rowGap","gridColumn","gridRow","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","position","top","right","bottom","left","inset","fontSize","lineHeight","fontWeight","textDecoration","textTransform","textAlign","textOverflow","whiteSpace","verticalAlign","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderWidth","borderStyle","borderRadius","overflow","overflowX","overflowY","opacity","zIndex","cursor","transition","boxShadow","backdropFilter","gridArea","Box","styled","withConfig","shouldForwardProp","prop","defaultValidatorFn","attrs","props","background","Flex","Grid","placeItems","justifyItems","columns","rows","HStack","defaultProps","VStack","Text","lineHeightFor","lineHeightProp","transform","weight","fontStyle","AbbrLimit","_jsxs","as","AccordionContext","displayName","Accordion","accordion","useDynamicCallback","callback","ref","useRef","args","apply","useElementSize","elementRef","useElementSizeOfRef","thresholds","debounceWait","debounceOptions","requestedFrame","setSize","observer","ResizeObserver","debounce","entry","setTimeout","checkSize","checkSizeImpl","target","prev","HTMLElement","sizeProps","offsetWidth","someThresholdCrossed","some","property","levels","prevValue","newValue","level","inRange","min","max","offsetLeft","offsetTop","scrollWidth","scrollHeight","offsetHeight","clientWidth","clientHeight","cancelAnimationFrame","requestAnimationFrame","observe","disconnect","Header","clickable","ghost","AccordionContent","animated","ContentWrapper","AccordionBody","animate","borderTopWhenOpened","useTheme","isOpen","initialOpen","onOpened","onClosed","useAccordionContext","useContext","setOverflow","latestCompletedState","setLatestCompletedState","animateOpening","setAnimateOpening","onStart","opened","onRest","useSpring","config","showBorderTop","AccordionGroupContext","AccordionGroup","accordionsMap","setAccordionsMap","toggleAllToOpen","setToggleAllToOpen","open","registerAccordion","curr","unregisterAccordion","delete","changeAccordionOpenState","openAccordion","closeAccordion","toggleAccordion","changeAllOpenStates","newOpen","newMap","_","closeAllAccordions","openAllAccordions","toggleAllAccordions","useMatchMedia","mediaQuery","mql","matchMedia","setMatch","matches","addEventListener","removeEventListener","useDeviceType","isTablet","isMobile","userAgent","OverridePopoverPropsContext","dropdownContextDefaultValue","withinDropdown","DropdownContext","PortalContext","usePortal","portalId","getElement","setElement","portalRef","setPortalRef","node","PORTAL_PARENT_CLASS","Portal","PortalCallback","createPortal","useTopLevelPortalElement","parentElem","querySelector","setAttribute","insertBefore","lastElementChild","nextElementSibling","Overlay","isCentered","isTransparent","DEFAULT_MODAL_MARGIN","Wrapper","useEventListener","eventName","handler","element","savedHandler","useLayoutEffect","targetElement","listener","event","useForwardedRef","innerRef","DROPDOWN_ID","useOnClickOutside","isClickingOutsideRef","autocompleteDropdown","getElementById","contains","onClick","useEvent","MODAL_TRANSITION","enter","leave","easing","easings","easeOutBack","delay","OVERLAY_TRANSITION","phase","Modal","forwardRef","close","closeOnEscape","closeOnClickOutside","useOverlay","portalID","autoFocusFirstElement","disableFocusLock","preventClosing","useTransition","onKeyDown","stopPropagation","noop","MockPortal","MaybePortal","ModalContext","modalContextDefaultValue","MaybeOverlay","t","FocusLock","autoFocus","disabled","className","_createElement","portalize","useModalContext","Target","span","Content","validator","variant","getContentBackground","Primary","Positive","Negative","Warning","placement","isSmall","noPaddingAndBorder","getTransition","direction","PopoverContent","transitionStyle","modalContext","dropdownContext","baseZIndex","role","aria-busy","PopoverTarget","Popover","onMouseEnterTarget","onMouseLeave","onFocusTarget","onBlurTarget","onClickTarget","setContentRef","setTargetRef","tabIndex","styles","attributes","state","spacing","preventOverflow","targetStyle","targetChild","contentChild","Children","toArray","transitions","maybeMaxWidth","popperContent","popper","ctrl","idle","data-testid","onMouseEnter","onFocus","onBlur","usePopoverState","onClickOutside","trigger","onOpen","onClose","modifiers","strategy","openTimer","closeTimer","targetRef","contentRef","overridePopoverProps","useOverridePopoverProps","setOpen","overflowModifier","enabled","requiresIfExists","fn","detectOverflow","usePopper","padding","update","toggle","isLeavingContent","isLeavingPopover","relatedTarget","isClickingOutsidePopover","isTouchScreen","handleClickOutside","clearTimeout","Tooltip","memo","tooltip","showUnderline","contentMaxWidth","tooltipTestID","Underlined","isEqual","JITTooltip","hovered","setHovered","wrapperProps","onMouseOver","ICON_SIZES","TINY","SMALL","MEDIUM","LARGE","DEFAULT","Icon","icon","rotate","rotating","spaceAfter","spaceBefore","SVGIcon","svg","height","PopoverStyles","AlertWrapper","isBordered","Guide","Alert","onDismiss","dismissable","showIcon","iconProps","getAlertIconProps","Close","ExclamationSolid","Notice","CheckCircleSolid","LightBulb","Info","InformationCircleSolid","high","low","none","WARNING_SEVERITY_TO_ALERT_VARIANT","WARNING_SEVERITY_TO_TEXT","prettyWarningSeverity","warningSeverity","warningSeverityTitle","WarningSeverityIcon","title","severity","HIGH","LOW","prettyWarningSeverityTitle","NONE","AccordionRowCell","td","tbody","AccordionTableHeader","th","table","stickyHeader","columnSpacing","drawCircle","drawLine","Circle","circle","Check","polyline","Checkmark","viewBox","version","cx","cy","r","points","FORM_CONTROL_SIZES","clockwise","spin","Timer","rotation","reverse","Loader","SpinnerWrapper","SpinnerContainer","Spinner","RADIUS","strokeWidth","fill","getFontSize","Xxs","Tiny","Small","Large","getLineHeight","getBorderRadius","getButtonBorderRadius","clippedButtonCss","customOffset","InternalButtonSpan","buttonStyle","prominent","getButtonSpacing","getIconSpacing","buttonColor","nonForwardedProps","ButtonWrapper","button","NavButtonWrapper","Link","getColors","getButtonVerticalSpacing","getButtonHorizontalSpacing","horizontalSpacingTiny","verticalSpacing","horizontalSpacing","getIconSize","getIconButtonSize","Button","startIcon","endIcon","done","ButtonGroup","orientation","shareBackground","rounded","IconButtonWrapper","minimal","getIconFontSize","IconButton","NavButton","to","RoundedNumber","FullNumber","align","Indicator","getColor","NumberWrapper","estimate","Highlight","largeHighlight","highlightSize","highlightColor","StackedNumber","large","largeSize","stack","defaultColor","Muted","getQuoteButtonTextColor","QuoteButton","ToggleButton","selected","selectedVariant","Priority","unselectedVariant","data-selected","aria-pressed","FormattedMessage","ReactIntlFormattedMessage","useConstant","constant","useAccordion","customID","headerClickable","alignChevron","uuid","useAccordionGroupContext","initialOpenRef","ControlPrefix","Label","FormSection","OrderFormHeader","formControlCSS","INPUT_BORDER_WIDTH","touched","invalid","readOnly","inputWrapperColor","inline","Focus","inputColor","getInputWrapperColor","getInputTextColor","InputWrapper","Prefix","isText","Suffix","Input","suffix","autoComplete","autoCorrect","autoCapitalize","spellCheck","wrapperRef","controlStyle","inputType","clearable","inputRef","useImperativeHandle","handleClearClick","setNativeValue","valueSetter","getOwnPropertyDescriptor","getPrototypeOf","prototypeValueSetter","call","dispatchEvent","Event","bubbles","clearIconStyles","pointerEvents","isPrefixText","isSuffixText","htmlFor","REGEX","POSITIVE_REGEX","FORMAT_OPTIONS","useNumberInput","onChange","minIncrement","defaultIncrement","largeIncrement","onValueChange","formattedValue","internalFormat","regex","gte","cleanValue","restrictToOneDecimal","endsWith","lte","rifm","useRifm","accept","setSelectionRange","parts","clampValue","altKey","shiftKey","preventDefault","increment","sub","step","cleanDecimals","isSecurity","asset","useAmountInput","minIncrementOverride","defaultIncrementOverride","DefaultSizeIncrement","DefaultPriceIncrement","MinIncrement","DefaultIncrement","AmountInput","inputProps","usedRef","AgGridAmountInput","colDef","parseValue","currencyField","currenciesBySymbol","handleChange","focus","rowHeight","AgGridButton","api","hide","isFunction","IndicatorBadgeWrapper","square","transparentize","IndicatorBadge","show","noWrap","defaultTheme","badgeStyle","content","TextWrapper","Results","ul","AutocompleteResultsWrapper","Title","Result","li","isHighlighted","isSelected","NoResults","IGNORED_AUTOCOMPLETE_GROUP","noResultsFound","AutocompleteResults","searchResultGroups","highlightedIndex","getItemProps","itemSize","groupMaxHeight","renderResult","selectedItem","selectedGroup","resultsRef","equalityChecker","RenderGroupHeader","AutoCompleteDropdownGroupHeader","renderEmpty","RenderEmpty","showGroupHeaders","setState","currState","newGroupsWithoutstate","newGroup","listRef","createRef","groupAndIndex","getGroupAndGroupIndexFromGlobalIndex","groups","globalIndex","count","items","indexOfLastItemThisFar","itemsBetweenGlobalIndexAndLastIndexInGroup","groupIndex","groupState","scrollToItem","output","groupIdx","showHeader","FixedSizeList","itemCount","globalItemIndex","getGlobalIndex","itemIdx","idx","isDisabled","dataItem","showCount","CURRENCY_COLORS","$pac","aave","abt","act","actn","ada","adx","ae","aeon","aeur","agi","agrs","aion","algo","amb","amp","ampl","ankr","ant","ape","apex","appc","ardr","arg","ark","arn","arnx","ary","ast","atlas","atm","atom","audr","aury","auto","avax","aywa","bab","bal","band","bat","bay","bcbc","bcc","bcd","bch","bcio","bcn","bco","bcpt","bdl","beam","bela","bix","blcn","blk","block","blz","bnb","bnt","bnty","booty","bos","bpt","bq","brd","bsd","bsv","btc","btcd","btch","btcp","btcz","btdx","btg","btm","bts","btt","btx","burst","bze","cc","cdn","cdt","cenz","chain","chat","chips","chsb","chz","cix","clam","cloak","cmm","cmt","cnd","cnx","cny","cob","colx","comp","coqui","cred","crpt","crv","crw","cs","ctr","ctxc","cvc","d","dai","dash","dat","dbc","dcn","dcr","deez","dent","dew","dgb","dgd","dlt","dnt","dock","doge","dot","drgn","drop","dta","dth","dtr","ebst","eca","edg","edo","edoge","ela","elec","elf","elix","ella","emb","emc","emc2","eng","enj","entrp","eon","eop","eos","eqli","equa","etc","eth","ethos","etn","etp","eur","evx","exmo","exp","fair","fct","fida","fil","fjc","fldc","flo","flux","fsn","ftc","fuel","fun","game","gas","gbp","gbx","gbyte","generic","gin","glxt","gmr","gmt","gno","gnt","gold","grc","grin","grs","grt","gsc","gto","gup","gusd","gvt","gxs","gzr","hight","hns","hodl","hot","hpb","hsr","ht","html","huc","husd","hush","icn","icp","icx","ignis","ilk","ink","ins","ion","iop","iost","iotx","iq","itc","jnt","jpy","kcs","kin","klown","knc","krb","ksm","lbc","lend","leo","link","lkk","loom","lpt","lrc","lsk","ltc","lun","maid","mana","matic","mcap","mco","mda","mds","med","meetone","mft","miota","mith","mkr","mln","mnx","mnz","moac","mona","msr","mth","mtl","music","mzc","nano","nas","nav","ncash","ndz","nebl","neo","neos","neu","nexo","ngc","nio","nkn","nlc2","nlg","nmc","nmr","npxs","ntbc","nuls","nxs","nxt","oax","omg","omni","one","ong","ont","oot","ost","ox","oxt","oxy","part","pasc","pasl","pax","paxg","pay","payx","pink","pirl","pivx","plr","poa","poe","polis","poly","pot","powr","ppc","ppp","ppt","pre","prl","pungo","pura","qash","qiwi","qlc","qnt","qrl","qsp","qtum","rads","rap","ray","rcn","rdd","rdn","ren","rep","repv2","req","rhoc","ric","rise","rlc","rpx","rub","rvn","ryo","safe","safemoon","sai","salt","san","sand","sbd","sberbank","sc","ser","shift","sib","sin","skl","sky","slr","sls","smart","sngls","snm","snt","snx","soc","sol","spacehbit","spank","sphtx","srn","stak","steem","storj","storm","stox","stq","strat","stx","sumo","sushi","sys","taas","tau","tbx","tel","ten","tern","tgch","theta","tix","tkn","tks","tnb","tnc","tnt","tomo","tpay","trig","trtl","trx","tusd","tzc","ubq","uma","uni","unity","usd","usdc","usdt","utk","veri","vet","via","vib","vibe","vivo","vrc","vrsc","vtc","vtho","wabi","wan","waves","wax","wbtc","wgr","wicc","wings","wpr","wtc","x","xas","xbc","xbp","xby","xcp","xdn","xem","xin","xlm","xmcc","xmg","xmo","xmr","xmy","xp","xpa","xpm","xpr","xrp","xsg","xtz","xuc","xvc","xvg","xzc","yfi","yoyow","zcl","zec","zel","zen","zest","zil","zilla","zrx","getCurrencyColor","creditExposuresCompositeIDPipe","pipe","exposure","mapToInitialSubscriptionResponse","latestMessage","initial","Remove","jsonDefinedAndMeaningful","useWsPaginationLimiter","startingLimit","nextPage","onLimitReachedChange","setLimit","Infinity","limitBehaviorSubject","BehaviorSubject","raiseLimit","raiseBy","wsPaginationLimiterInstance","wsPaginationLimiter","source","Observable","limitReached","limitSub","skip","subscribe","newLimit","newLimitReached","sourceSub","isPaginationMessage","page","lastRecord","unsubscribe","wsScanToMap","getUniqueKey","getInsertable","identity","newMapEachUpdate","shouldDelete","ensureRevisionOrdering","ensureTimestampOrdering","waitForAllPagesToLoad","scan","clear","isLoading","existingEntry","existingRevision","updateRevision","existingTimestamp","updateTimestamp","compareTimestampsWithMicrosecondPrecision","b","unixTsA","unixTsB","maybeUpdateAction","shouldDeleteUpdate","DISABLED_REASONABILITY_CHECK_STRATEGIES_SET","ORDER_CONTROL_REQUEST","ADDRESS","CURRENCY_CONVERSION","MARKET_DATA_SNAPSHOT","NEW_ORDER_SINGLE","ORDER","SECURITY","TRADE_DIRECTION","POSITION","QUOTE_REQUEST","QUOTE","QUOTE_CANCEL_REQUEST","TOTAL_TRADING_VOLUME","BidAskSpreadsDatapoint","Stream_Name","BID_ASK_SPREADS_DATAPOINTS","StartTime","SpreadBps","SizeBucket","SpreadType","Market","MarketAccount","Asset","ReleaseRevision","UpdateAction","AggregationWindow","MarketOrderOutcomeDatapoints","MARKET_ORDER_OUTCOME_DATAPOINTS","OutcomePct","OrderStatus","NumExecutionsDatapoint","NumberOfExecutions","ExecutionType","NumOrdersDatapoint","NUM_ORDERS_DATAPOINTS","NumberOfOrders","AnalyticsOrderDepth","StrategyType","OrderMarketability","OrdersSummaryDatapoint","ORDERS_SUMMARY_DATAPOINTS","AvgOrderAmount","TotalExchangeFees","EffectiveFeeRate","EquivalentCurrency","PostTradeOrderAnalyticsDatapoint","POST_TRADE_ORDER_ANALYTICS","OrderStartTime","OrderEndTime","OrderID","Side","TotalTradedAmt","OrderDurationMillis","ParticipationRate","MakerPct","ArrivalSlippageBps","TWAPSlippageBps","VWAPSlippageBps","AsOfTimestamp","SlippageDatapoint","SLIPPAGE_DATAPOINTS","SlippageBps","ReferencePrice","TotalTradingVolumeStats","TotalVolume","TradeType","AggressorFlag","LowerVPLimit","UpperVPLimit","getAgGridColId","column","colId","field","AssetTransaction","rowID","StreamName","BlotterExportName","defaultColumns","AggregationsContext","AuthContext","useAuthContext","useObservable","observableFactory","dependencies","isFirstRender","setSource","useObservableValue","observable","initialValue","setValue","useDebugValue","isObservable","subscription","BalancesContext","listBalances","of","balancesByCurrencyMarketAccount","balancesByMarketAccountCurrency","useBalancesContext","useBalancesByMarketAccountCurrency","ConnectionStatusContext","CurrenciesContext","useCurrenciesContext","useCurrencyUtils","abbreviateByCurrency","amount","CurrencyConversionContext","currencyRatesByCurrencyPair","homeCurrencyRatesByCurrency","registerSubscription","equivalentCurrency","registerSubscriptions","unregisterSubscription","unregisterSubscriptions","useCurrencyConversionContext","EndpointsContext","useEndpointsContext","DefaultFavoriteSecuritiesConfig","favoriteSecurities","DefaultFavoriteSecuritiesContext","setFavoriteSecurities","FavoriteSecuritiesContext","useFavoriteSecurities","HomeCurrencyContext","useHomeCurrencyContext","MarketAccountCurrenciesContext","MarketAccountsContext","MarketPriceContext","MarketsContext","useMarketsContext","MixpanelSourceContext","MixpanelSourceProvider","GET_MIXPANEL_MOCK","set_group","NOOP","add_group","remove_group","identify","register","time_event","track","properties","Source","MixpanelContext","useMixpanel","getMixpanelInstance","sourceContext","mixpanel","customSource","OrganizationContext","RecentSymbolsContext","useRecentSymbols","recentSymbolsContext","recentSymbols","setRecentSymbols","recentSymbolsList","setRecentSymbolsList","updateRecentSymbols","symbol","lastMonth","timestampOfNewSelection","isArray","ts","sort","RefRateContext","SecuritiesContext","useSecuritiesContext","SparklineContext","StrategiesContext","useStrategiesContext","UnderlyingPriceContext","underlyingAmountRecord","useUnderlyingPriceContext","UserContext","useUserContext","DefaultWatchlistSettingsConfig","showOnlyFavorites","securityTypes","isVisible","filteredCurrencies","DefaultWatchlistSettingsContext","setShowOnlyFavorites","setSecurityTypes","setIsVisible","setFilteredCurrencies","WatchlistSettingsContext","useWatchlistSettings","useCountdownTime","completionTime","refreshRate","time","setTime","timeLeft","ltime","addMilliseconds","interval","remaining","useIntlContext","useIntl","sharedIntl","useSharedIntl","useTranslatedOptionLabel","option","Dot","haloBackground","HaloDot","IndicatorDotWrapper","IndicatorDot","halo","iconPlacement","filled","rejected","systemPaused","paused","staged","waiting","filledAndCanceled","canceled","pendingCancel","pendingReplace","pendingFix","allCanceled","allFilled","allOpen","allRejected","doneForDay","holding","new","partiallyFilled","pendingNew","replaced","orderStatusTextMapping","New","Open","PartiallyFilled","Holding","Replaced","PendingFix","getOrderStatusText","orderQty","cumQty","decisionStatus","pricingMode","WaitingForTrigger","WaitingForStartTime","Waiting","orderStatusText","StatusIcon","CloseCircleSolid","ExclamationCircleSolid","PauseCircle","CircleDotted","Clock","StatusText","useStartTime","formattedCountdown","orderStatusTextTranslated","tooltipText","startTime","endTime","isPaused","orderCountdown","formattedOrderTime","ms","orderTimer","tooltipContent","renderOrderStatus","creditUtilization","deposit","filledPercent","progress","transfer","user","withdraw","orderStatus","side","ordType","amountCurrency","cumFee","avgPx","EID","OID","transactionType","addressType","addressRoutingType","orderID","tradeID","quoteID","externalID","buy","sell","counterparty","tradeStatus","submitTime","filledQtyCurrency","filledPriceCurrency","qtyCurrency","transactTime","price","longExposureLimit","longExposure","shortExposureLimit","shortExposure","addressID","customerUser","availableAmount","txHash","lastMismatchTime","reconWarning","cumAmt","fee","transactionID","customerAddressID","underlyingCrossSymbol","minimumSize","maximumSize","sizeBuckets","email","warnThreshold","rejectThreshold","thresholdCurrency","updateAction","tradingLimitID","description","subAccount","avgCost","outstandingBuy","outstandingSell","delta","lastUpdateTime","markPrice","directionalAmount","marketTransferID","transferID","marketDescription","marketTransferStatus","fromAddress","toAddress","reportID","unifiedLiquidity","parentRFQID","cxlRejReason","cancel","aggressorSide","allocation","sessionID","expectedFillQty","expectedFillPrice","parameters","parentOrderID","revision","execID","origClOrdID","timeInForce","remainQty","clOrdID","lastTradeTime","tradedMarketAccounts","selectedMarketAccounts","riskStatus","comments","connectionID","connectionType","beginString","senderCompID","targetCompID","quoteStatus","vega","execType","expiration","rho","reduceOnly","reduceFirst","credentialID","positionAsset","creditUsages","lastFee","limitID","bestBidIv","bestOfferIv","underlyingPrice","lastExecID","minPriceIncrement","minSizeIncrement","maxPriceIncrement","maxSizeIncrement","liquidationPrice","lastActive","executionStrategy","minNotionalThreshold","maxNotionalThreshold","minQuantityThreshold","maxQuantityThreshold","priority","ID","typeDescription","organization","tradedPx","tradedAmt","origQuoteReqID","internalText","effectiveOfferSpread","effectiveBidSpread","expectedHedgeOfferPx","expectedHedgeBidPx","offerAmt","offerPx","validUntilTime","bidPx","bidAmt","tradedQty","tradedSide","quoteReqID","messageID","updateUser","tradeAction","tradeSource","clTradeID","pricingParameters","ordRejReason","adminFillPrice","leavesQty","lastQty","lastPx","lastAmt","internalOrdRejReason","dealerAction","cancelSessionID","allowedSlippage","displaySymbol","sourceAccountID","gamma","creditUsageWarning","exposureDefinition","marketAccountID","auth0ID","vwapSlippage","arrivalSlippage","avgAmount","totalVolume","twapSlippage","cancelRate","fillRate","rejectRate","minimumAmount","talosFeeCurrency","talosFee","allocID","dealtCurrency","resolution","positionSource","rid","marketAccount","lastMarket","orderStartTime","orderEndTime","participationRate","ownership","ruleID","allInTier","feeTier","symbolGroup","rate","settleStatus","priceCurrency","realizedPnL","totalPnL","cumFees","feeCurrency","pnLcurrency","deltaCurrency","unrealizedPnL","deltaHomeCurrency","amountHomeCurrency","markPriceHomeCurrency","feeMode","tier","walletAddress","baseColumn","ignoreDefaultHeaderValue","omitBy","headerValueGetter","customIntlKey","effectiveField","titleIntlKeyValues","defaultTitle","headerTooltip","headerComponent","headerGroupToggle","headerComponentParams","columnsInGroup","sortable","editable","resizable","frozen","lockVisible","lockPinned","suppressMovable","pinned","checkboxSelection","showDisabledCheckboxes","headerCheckboxSelection","rowGroup","rowGroupIndex","enableRowGroup","suppressHeaderMenuButton","suppressColumnsToolPanel","tooltipField","tooltipValueGetter","tooltipComponent","cellStyle","headerClass","columnGroup","rowSpan","cellClass","cellClassRules","comparator","localeCompare","COLDEF_CUSTOM_KEY","exportable","isUndefined","getOrderStatusColor","DecisionStatus","CareOrderStatusEnum","generateCreditExposureRowID","EnrichedCreditExposure","getCustomerBalanceRowID","Counterparty","CustomerExecutionReport","CustomerDealSummary","PnL","CustomerOrder","enrichOrderWithCustomerSummary","customerOrderSummary","TargetSpread","ActualSpread","PerCurrencyPnL","PerCurrencyFees","SalesCommission","summary","Fees","FilledSpread","Spread","CustomerQuote","CustomerUserConfigTradingLayoutArrangements","Position","elpVsMp","LiquidationPrice","MarkPrice","ReconStatus","getReconStatusWarningSeverity","reconStatusEnum","MarketOffline","MarketStale","MatchingSinceLatestMismatch","LedgerAheadSinceLatestMismatch","Status","reconStatus","PositionSource","SubAccount","eodTotalPnL","dayTradePnl","PnLTags","EndOfDay","TradeUnrealizedPnL","openingPnl","OpeningUnrealizedPnL","dayTradePnlBig","openingPnlBig","plus","eodTotalPnLEquivalent","Equivalent","PnLTagEnum","Today","H24","WeekToDate","D7","MonthToDate","D30","YearToDate","D365","isFutureSecurity","HedgeOrderStatus","totalQty","unhedgedQtyBig","UnhedgedQty","cumHedgeQtyBig","CumHedgeQty","LedgerEvent","MarketAccountStreamName","MARKET_ACCOUNT_LEDGER_EVENT","SubAccountStreamName","SUB_ACCOUNT_LEDGER_EVENT","amountAssetWithFallback","AmountAsset","AccountType","AccountID","Revision","dayString","TransactTime","hourString","startingAmount","amountBig","resultingAmountBig","ResultingAmount","Balance","Trade","TradingFee","TradingFeeSet","BalanceDelta","TradeCancel","TradeAmend","Allocation","Unsettled","UnsettledDelta","FundingPnL","FundingPnLDelta","RealizedPnL","RealizedPnLDelta","ReconAdjustment","Deposit","Withdrawal","TransferFee","Delivery","StakingReward","LoanQuote","MarketDataCardState","NEW_CARD","UPDATED_CARD","MarketExecutionReport","MarketTrade","isOptionSecurity","StrikePrice","OptionType","Order","legSummaryLegs","Leg","legSummaryParent","PriceProtection","ReduceOnly","ReduceFirst","hasMultiSymbolMarkets","symbolsFoundInMarketsArray","uniq","getMarketWarnings","UnifiedLiquidity","filledPx","OrdType","LimitAllIn","AvgPxAllIn","AvgPx","selectedMarkets","tradedMarkets","selectedAndTradedMarkets","selectedAndTradedMarketAccounts","EndTime","allowedSlippageBPS","AllowedSlippage","isArchived","OrderAnnotations","ArchivedStatus","isArchivable","isComplete","isUnArchivable","isCancelable","isPendingOrdStatus","isModifiable","ParentOrderID","isCustomerOrderModifiable","canModify","customerPropertiesLoaded","customerAccount","customerQuantity","customerPrice","customerPricingParams","customerStrategy","isPausable","isPendingDecisionStatus","isResumable","PendingPause","PendingResume","isDDHHedgeOrder","RequestSource","OrderHedger","isDDHParentOrder","DynamicDeltaHedgeStrategy","customerParentOrderID","Customer","ddhParentOrderID","enrichOrderWithCustomerOrder","customerOrder","customerOrderID","customerSymbol","customerFilledQuantity","customerFilledCumAmt","customerAmountCurrency","customerAvgPx","customerSummary","PricingParameters","customerParameters","hasBeenEnrichedWithCustomerOrder","enrichWithHedgeOrderStatus","hedgeOrderStatus","enrichWithOrderAnnotation","orderAnnotations","includeTopLevelText","untradableMarkets","MarketDataStale","topLevelWarnings","warningItems","untradableMarket","isPerpSecurity","Quote","isTerminal","QuoteStatus","isPending","PendingFill","isProbablySalesRFQ","ParentRFQID","tradedMarket","TradedQty","MissedFees","MissedTrade","MissedTransfer","BelowThreshold","InitialPosition","ReconStateEnumLabels","PendingReview","ManualResolved","AutoResolved","Ignored","ReconStreamStatusEnumLabels","Matching","LedgerAhead","Enabled","SubAccountReconMatch","breakAmount","marketAccountEventAmount","MarketAccountEvent","subAccountEventsAmount","SubAccountEvents","hasBreak","subAccounts","Events","prettifyThresholdTypeEnum","thresholdType","NewOrderCount","NewOrderVolume","TotalActiveVolume","getThresholdTypeDescription","isErrorSubscriptionResponse","res","isObject","isManualBookedTrade","TradeSource","User","isOrphanTrade","isOrderIDCustomerOrderID","TERMINAL_TRANSFER_STATES","Completed","TERMINAL_TRANSFER_STATES_SET","Transfer","TRANSFER","getCounterpartyAddressTruncated","address","truncateBlockchainAddress","N_END_CHARS","lead","counterpartyAccountID","isTransferOutgoing","ToMarketAccountID","FromMarketAccountID","counterpartySourceAccountID","ToSourceAccountID","FromSourceAccountID","counterpartyAddress","ToAddress","FromAddress","getTransferDescription","marketAccountsByID","avoidMarketAccountIdDisplay","isCounterpartyExternalAccount","bigAmount","getAccountDisplay","avoidMarketIdDisplay","accountID","marketAccountDisplayableName","OwnerAccountID","TransferID","TreasuryLink","specificnessKey","getTreasuryLinkSpecificnessKey","Outbound","Inbound","getMarketAccountOrWildcard","isWSSubscriptionMemoryOutput","memory","memoryConsumptionWithMetadataReturnDefined","useBehaviorSubject","factory","subjectAndObservable","subject","asObservable","useUpdateEffect","useCountdownAction","countdownTarget","startTimeCountdowRef","useCurrency","useCurrencyConversionRate","rates","useCurrencyConversionRateValue","obs","DEFAULT_WL_ORG_CONFIG","favicon","layout","TradingLayout","supportPhone","supportEmail","supportWebsite","logo","enableBalanceTransactions","blotterRowsMax","disableCustomLadderSizeBuckets","hideRecordDepositButton","showMarketAccountDisplayName","usePreciseTopOfBookIncrement","allowMobile","WLCustomerConfigContext","useWLOrgConfigContext","WLOrgConfigProvider","useSearchParam","override","themeOverride","VITE_IS_MOBILE","VITE_BASE_URL","setConfig","setOverrides","useSessionStorage","sessionStorageValue","sessionStorage","getItem","setItem","serializedState","loadedConfig","ReplaySubject","canUseDefaultConfig","configUrl","fetchConfig","volumeLadderDecimalPrecision","reason","shouldRetry","wsTypeMappings","CareOrder","initiatingFrom","Annotations","ETP","InitiatingFrom","toJSON","WorkingQty","Timestamp","ClOrdID","OrigClOrdID","SubmitTime","ExecID","ExecType","LeavesQty","OrdRejReason","CxlRejReason","RequestUser","Comments","LastExecID","LastPx","LastQty","LastAmt","OrgID","fixingIndex","UpdateUser","DefaultSpreadIncrement","MinSpreadIncrement","SpreadDisplaySpec","ValidNominalIndexTime","NominalIndexTimeZone","IndexID","marketFixingIndex","Index","MarketSymbol","sortKey","msBetweenStartTimeEndTime","differenceInMilliseconds","timeBuffer","bufferedStartTime","subMilliseconds","bufferedEndTime","resolvable","State","getMaxBuy","useMaxOrderSize","buySizeBig","MaxBuyOrderSize","AvailableBuy","getMaxSell","sellSizeBig","MaxSellOrderSize","AvailableSell","getMaxSize","Buy","Sell","buySize","sellSize","tsr","Subscription","reqid","streams","overrideParticipant","loadAll","active","startedAt","handleJson","loadMore","instantiateClasses","Constructor","didReachLastPage","dispose","WEBSOCKET_CLOSE_CODES","ErrorCodesCausingInactiveSubscription","WebsocketErrorDuplicateReqID","WebsocketErrorInvalidRequest","WebsocketErrorInvalidStream","WebSocketClient","pingPongTypes","ping","pong","isConnected","requestCount","logError","websocket","sessionId","subscriptionsByAddress","subscriptionsByReqID","canceledSubscriptions","Subject","performance","pongSubject","pongObservable","publicationsByReqID","connect","initialRetryInterval","maxRetryInterval","maxRetryAttempts","socket","webSocket","openObserver","closeObserver","code","wasClean","connection","getConnectionData","rtt","effectiveType","downlink","saveData","socketSubscription","retry","numRetries","timer","repeat","handleMessage","handleError","closeAndReconnect","connectArgs","pongs","registerPublication","sendMessage","mark","sendTimedMessage","tag","updateSubscription","pageSubscription","stream","after","handlePublicationMessage","publicationErrorCallback","reqSub","isResponseToPublication","session_id","activeSubscriptions","entries","pingPayload","skew","clockSkew","onMessage","isIgnoredErrorCode","WebsocketErrorUnknownReqID","WebsocketErrorSubscriptionLimit","WebsocketErrorPermissionDenied","isCancelledSub","shouldLogError","cancelled","WebsocketErrorInternalServerError","measure","CAPTURED_STREAMS_KEY","LOG_SUBSCRIPTION_INFO_KEY","LOG_SUBSCRIPTION_INFO_TIME_LIMIT_KEY","WebSocketPerformance","didSendLatencyWarning","latencySinceLastReset","messagesSinceLastReset","latencyPerSecond","messagesPerSecond","started","subscriptionInfos","isLogSubscriptionInfo$","isLogSubscriptionInfo","capturedStreams","localStorage","reset","stats","primaryStream","requestStreams","totalMessages","capturedMessages","totalRecords","recordsInLastSecond","recordsSinceLastSecond","subscribedAt","latency","subscriptionInfo","recordsLength","streamName","isCapturedStream","loadTimeMs","unsubscribedAt","getSubscriptionStats","unsubscribed","filteredSubscriptions","reqId","recordsLastSecond","subscribedTime","toLocaleTimeString","unsubscribedTime","isLogSubscriptionInfoTimeLimitExceeded","setLogSubscriptionInfo","activeSubscriptionStats","canceledSubscriptionStats","stop","timeLimit","stopTime","getHours","toISOString","removeItem","setCapturedStream","WebSocketContext","CONNECTING","useSocketClient","client","WebSocketClientProvider","authContext","wsEndpoint","setClient","setStatus","socketUrl","setSocketUrl","isAuthenticated","urlWithVersion","wsClient","CONNECTED","RECONNECTING","usePageVisibility","hidden","handleVisibilityChange","useSubscription","replay","activeRequest","subscriberCount","setSubscriberCount","hasSubscriber","setIsLoading","useSocketStatus","isPageVisible","errors","subscriber","errorObservable","err","requestStream","unsubscribeOnPageInvisibility","useUnmount","errorSubscription","useCurrentFeeTier","setRequest","showUserFeeTier","currentFeeTierObs","FeeTier","useDisclosure","isOpenState","setIsOpen","initialIsOpen","isControlled","idCounter","useElementId","idPrefix","kebabCase","uniqueId","getCount","counter","uniqueIdGenerator","useEstimatedAmount","LimitPrice","marketRate","usingCounterCurrency","conversionCurrency","amtCurrency","Rate","conversionRate","estimatedAmount","limitPriceBig","orderQtyBig","marketRateBig","conversionRateBig","InlineFormattedNumberContext","showAllDecimals","DEFAULT_ICON_STYLE","marginRight","SMART_TRUNCATE_MAX_INCREMENT","trimZeroesFunc","trimZeroesRegExp","beforeDecimal","afterDecimal","exec","InlineFormattedNumber","fullParts","_increment","_isSmall","highlightAll","smartTruncate","None","smartTruncateThreshold","trimTrailingZeroes","Compact","currenciesContext","currencyInfo","incrementIsTooSmall","formatFn","fullNumberString","numberString","formattedFullNumberString","formattedNumberString","buildParts","sentiment","hi","StackedFormattedNumber","startHighlight","endHighlight","Fragment","useFlashSentiment","positiveDirection","lastValue","setSentiment","getSentiment","last","lastPrice","useStaticSubscription","WLCustomerMarketAccountContext","useWLCustomerMarketAccountContext","useWLSortedMarketAccounts","marketAccounts","SourceAccountID","MarketAccountID","useGetCustomerMarketAccountLabel","customerConfig","customerMarketAccountsBySourceAccountID","strategyTranslations","fullAmount","steadyPace","stopFullAmount","multilegAggressiveLimit","stopLimit","timeSliced","takeProfitFullAmount","takeProfitLimit","TWAP","stopMarket","rfq","useGetStrategyLikeLabel","useOHLCData","markets","liveUpdates","apiEndpoint","setObservable","sd","ed","marketsPart","Resolution","prices","newPrice","lastPriceTimestamp","newPriceTimestamp","pop","useHistoricalPrices","clearOnSymbolChange","symbolObservable","checkToClearOHLCData","ohlcData","currSymbol","firstRecord","ohlcDataObservable","combineLatestWith","useOnKeyDown","targetEvent","JsonModalContent","JsonModal","textRef","metaKey","getSelection","selectAllChildren","mapToObject","aMap","k","replacer","useSecurity","securitiesBySymbol","useMarketDataSnapshot","baseCurrency","depth","includeTradeDirection","priceIncrement","liquidityType","throttle","marketDataRequest","DepthType","PriceIncrement","FeeMode","LiquidityType","Throttle","Depth","AmountBuckets","SizeBuckets","requests","checkToClearMarketData","marketData","Bids","Offers","marketDataSnapshots","shareReplay","bufferSize","refCount","marketDataSnapshotsWithCheckToClear","tradeDirections","useMaxBalance","balances","formCurrency","oneToOneConversionRate","balance","DEFAULT_DELAY","clearRefAndTimeout","useMouseHover","_delay","onMouseEnterTimeoutRef","onMouseLeaveTimeoutRef","handleOnMouseEnter","handleOnMouseLeave","definedHandlers","returnProps","pick","useNamedState","initialState","states","useMultipleStreamsSubscription","subscriptionCallback","getRequest","getAllRequests","setRequests","requestMap","listeners","valueMapObservable","debounceTime","useOrderIncrements","getOrderIncrements","quantityIncrement","doc","getTextHeight","innerText","appendChild","texHeight","getBoundingClientRect","removeChild","isTextEllipsized","nodeWidth","nodeHeight","computedNodeStyles","getComputedStyle","getPropertyValue","fontVariant","wordBreak","textHeight","usePreferredColorScheme","isTalosUser","Roles","useScreenOrientation","screenOrientation","screen","setOrientation","UnifiedLiquidityContext","unifiedLiquidityTokenBySymbol","useMaxOrderQuantity","maxAmountProps","maxOrderAmountResponse","setMaxOrderAmountResponse","allowedToRequest","useBackendMaxAvailable","requesting","setRequesting","requiredFields","finally","loaded","useWLEffectiveMaxBalance","account","maxBalanceBase","maxBalanceQuote","baseMaxOrderAmountProps","quoteMaxOrderAmountProps","maxAmountBaseResponse","maxAmountQuoteResponse","baseToQuoteConversionRate","quoteToBaseConversionRate","effectiveMaxBase","MaxOrderAmount","effectiveMaxQuote","effectiveMaxBalance","WLUserApiKeyContext","useWLUserContext","userContext","useKyokoUserContext","userApiKeyContext","WLUserApiKeyContextProvider","userEndpoint","getUserApiKeys","userID","createUserApiKey","deleteUserApiKey","apiKeyID","updateUserApiKey","apiKey","useWLUser","WL_READ_ORDERS","WL_WRITE_ORDERS","WL_READ_POSITIONS","WL_READ_CFD","WL_READ_ENTITY","WL_USE_SYMBOL_SELECTOR","WL_VIEW_BLOTTERS","WL_VIEW_BLOTTERS_ACTIVE_ORDERS","WL_VIEW_BLOTTERS_ORDER_HISTORY","WL_VIEW_BLOTTERS_TRADES","WL_VIEW_BLOTTERS_BALANCES","WL_VIEW_BLOTTERS_CREDITS","WL_VIEW_BLOTTERS_TRANSFERS","WL_VIEW_BLOTTERS_FUNDING_EVENTS","WL_VIEW_BLOTTERS_WITHDRAW","WL_VIEW_BLOTTERS_POSITIONS","WL_VIEW_SETTINGS","WL_VIEW_FEE_TIERS","WL_SHOW_CANDLESTICKS_AND_MARKETDATA","WL_INITIATE_ORDER","WL_MODIFY_ORDER","WL_CANCEL_ORDER","WL_PAUSE_ORDER","WL_INITIATE_RFQ","WL_VIEW_FUNDING_SCHEDULE","WL_RULES","useWLRoleAuth","isAuthorized","isWLUserAuthorized","isRole","isWLUserRole","Permissions","rules","permission","useWLTradableCustomerMarketAccounts","MarketAccountAuthorizations","customerMarketAccountsList","authorizations","accounts","hasWriteAuthorization","getTabHeight","appearance","Pill","tab","getFontWeight","getPadding","isDragging","NavTabWrapper","TabWrapper","TabPanel","renderInBackground","TabsWrapper","TabListWrapper","getTabListHeight","TabBorder","TabIndicator","translateX","tabEditorBackground","TabEditorWrapper","RightItems","OverflowWrapper","CloseIcon","selectElementContent","range","createRange","selection","selectNodeContents","collapse","removeAllRanges","addRange","TabEditor","onSubmit","onCancel","disableSubmit","setDisableSumbit","closest","scrollIntoView","behavior","handleSubmit","contentEditable","onKeyUp","NavTab","closable","reorderable","onRename","onRemove","isAddingTab","labelMarginBottom","isEditing","setEditing","handleRename","handleCancel","handleRemove","aria-selected","onDoubleClick","marginLeft","Tab","showDot","dotVariant","maxTabLength","handleAuxClick","onAuxClick","TabButton","TabsContext","Tabs","selectedIndex","onSelect","onReorder","onAdd","showAddTab","allowClosingLastTab","countMore","TabList","rightItems","suppressOverflowList","renderAddTab","itemRefs","isMounted","useMountedState","translateXMap","setTranslateXMap","widthMap","setWidthMap","setIsDragging","numberOfChildren","maxVisible","setMaxVisible","containerSizeObserverRef","containerWidth","itemRef","containerRef","rightItemsRef","isHidden","visibility","availableWidth","nextTabWidth","findLast","droppableId","overflowDroppableId","handleDragEnd","destination","isSourceOnOverflow","isDestinationOnOverflow","destinationIndex","isMovingFromListToOverflow","getListStyle","listId","DraggableTab","draggableProvided","isDragged","child","withinOverflowList","draggableStyle","draggingStyles","draggableProps","dragHandleProps","userSelect","cloneElement","renderClone","provided","snapshot","rubric","getDroppable","Droppable","droppableProvided","droppableProps","isValidElement","isReorderable","Draggable","isDragDisabled","draggableId","placeholder","overflowList","ChevronUp","ChevronDown","lastAddedIndex","handleAdd","handleRef","el","DragDropContext","onDragStart","onDragEnd","Plus","TabPanels","unmountUnselected","TabPanelsWrapper","TabsStorage","getState","setSelectedIndex","setItems","Dialog","useGlobalDialog","DEFAULT_PARAMS","onConfirm","confirmLabel","cancelLabel","showClose","showCancel","showConfirm","stretchButtons","useTabs","initialSelectedIndex","initialItems","requireRemoveConfirmation","getConfirmationContent","onItemsChanged","onCreateTab","tabLabeler","currentTabs","getLabelToUse","isAdding","setAdding","usingSmartLabel","handleSelect","removeTab","onRemoveWithDialog","openDialog","newTab","hasLabel","newItems","reorderItems","startIndex","endIndex","selectedId","removed","splice","newSelectedIndex","findIndex","customReorderItems","getClonedTabLabel","clonedTab","updatedTabs","wrappedSetTabItems","setItemsAction","prevItems","prevItemsByID","updatedItems","prevItem","labelChanged","updateItem","updatedItem","currentItems","shouldGetLabelFromTabLabeler","ALL_TAB","getGroupsMetadata","groupMetadata","fuseOptions","includeMatches","includeScore","getLabelWrapper","getLabel","useAutocomplete","getDescription","isItemDisabled","initialSortByLabel","matchThreshold","minMatchCharLength","searchKeys","additionalSearchKeys","fuseDistance","sortFilterOverride","customFuseSearchResultsSorter","disableFuzzyMatching","groupSorter","isReadyRef","setResults","itemLabelSorter","maybeSortSearchResults","searchResults","searchString","itemsAlreadyGrouped","itemsAreAutocompleteGroups","firstItem","itemIsAutocompleteGroup","itemGroup","newGroups","initialTabItems","tabs","setTabItems","newTabItems","prevTabItems","renderedGroups","resultGroups","flattenedResults","resultsByGroup","_group","groupKey","arr","combobox","useCombobox","defaultHighlightedIndex","itemToString","onInputValueChange","inputValue","listEmpty","fuseSearchObjects","wrappedItem","additionalSearchKey","shouldSort","fuse","fuseKeys","Fuse","threshold","ignoreLocation","distance","useExtendedSearch","refIndex","score","extendedSearchString","fuseSearchResults","search","PopperHeader","iconColor","onCloseClicked","closeDisabled","boxProps","HeaderHStack","DropdownContentWrapper","Dropdown","menuStyles","referenceElement","dropdownWidth","setPopperElement","dropdownContentRef","onTabOut","isParentDropdown","dropdownHeight","headerProps","handleKeyDown","dropdownContent","AutocompleteDropdown","childrenAboveResults","showGroupTabs","groupsPrefix","autocompleteResultsProps","portalizeToUse","AutoCompleteResults","getMenuProps","suppressRefError","aria-hidden","CheckboxBox","CheckboxWrapper","checked","getCheckboxSize","selectedSizeMult","CheckBox","isChecked","isIndeterminate","CheckBoxLabel","Checkbox","indeterminate","forId","tickSize","Minus","ResultMatchHighlight","ResultMatchHighlightAll","FuseResultMatch","indices","matchIndex","FuseAutocompleteResult","searchResult","renderPrefix","labelMatch","descriptionMatch","anyMatches","CheckboxFuseAutocompleteDropdown","addSelectedItem","removeSelectedItem","selectedItems","selectedItemsSet","handleCheckedChange","newChecked","showBorder","showConnected","StyledSelection","EllipsisTextBase","EllipsisText","SuffixIconButtons","getStateColors","wrapperColor","textColor","backgroundColor","BaseSelectWrapper","showDescription","isDropdownOpened","isValueDefined","labelLevelCss","focused","readonly","buttonLevelCss","centered","BaseSelect","onClearClick","placeholderColor","showTitle","showChevron","handleOpenCloseClick","handleFocus","data-label","customButtonLayout","getOneFormControlSizeSmaller","inputSize","sizeIndex","AGGRID_AUTOCOLUMN_ID","getCellDisplayValue","invokedForRowGroupColumn","getColId","rowGroupColumn","isAgColumn","valueService","formatValue","getAllNodesInGroup","groupNode","nodes","performActionForChildNodesRecursively","childrenAfterFilter","getParamsFormatted","getValueForGroupedNode","isTreeBlotter","getGridOption","parents","getAllParentsOfNodeInclusive","parentNode","getCellValue","colKey","rowNode","rowGroupColumns","getRowGroupColumns","alphabeticalGroupOrder","nodeA","nodeB","nodeADisplayValue","nodeBDisplayValue","removeUnnecessarySeparators","first","workingNode","parent","isRowHeightExpanded","defaultRowHeight","DEFAULT_BLOTTER_SELECTION_SINGLE_PARAMS","checkboxes","enableClickSelection","isGridApiReady","isDestroyed","safeGridApi","FILTER_PARSER_REGEX","quickFilterParser","FormWrapper","form","FormFooter","ScrollContainer","SectionHeader","QuickOptionsContainer","CollapsibleFormSectionWrapper","isExpanded","ManagedCollapsibleFormSection","header","onToggle","rest","UnmanagedCollapsibleFormSection","initiallyExpanded","setIsExpanded","useDropdownPopper","dropdownPlacement","offset","popperElement","defaultDropdownContentRef","dropdownContentRefToUse","DayPicker","RawDayPicker","FormGroup","help","FormGroupWrapper","ErrorMessage","HelpText","DateTimeWrapper","DurationWrapper","InputOverlay","DurationDescription","DateTimeDurationPickerWrapper","DateTimePickerWrapper","DurationButtons","TimePickerWrapper","AutocompleteWrapper","foreground","tiny","Tag","tagContent","MultiSelectWrapper","Selection","formControlSize","MultiSelectInputWrapper","SearchSelectWrapper","SelectWrapper","TextAreaWrapper","FormMessage","OverflowFormMessageWrapper","getFormGroupMarginBottom","OverflowFormMessage","isOverflowing","ignoreMutations","setIsOverflowing","mutationObserver","checkOverflow","resizeObserver","MutationObserver","childList","subtree","characterData","labelSuffix","labelWidth","controlId","_tooltip","portalizeTooltip","renderTooltip","MultiSelectInput","useMultiSelectAutocomplete","selections","isSelectionLocked","clearInputAfterSelection","removeItemOnInputBackspace","highlightInputTextAfterSelection","multipleSelection","useMultipleSelection","onStateChange","stateReducer","actionAndChanges","changes","stateChangeTypes","DropdownKeyDownBackspace","changedItemsSet","invalidRemovedItems","oldItem","autocomplete","InputClick","InputKeyDownEnter","ItemClick","select","MenuMouseLeave","InputBlur","InputKeyDownEscape","autocompleteOutput","multipleSelectionOutput","MultiSelect","myRef","autoOpen","selectableOptions","selectionsSet","getSelectedItemProps","getDropdownProps","getInputProps","openMenu","dropdownReferenceElement","dropdownPopper","renderSelection","useRenderMultiSelectSelection","isLocked","PropertyButton","SelectionButtonWrapper","SelectionButton","SelectionsListWrapper","Middle","FilterBuilderContent","SelectionRemoveIcon","DropdownLabelContainer","ActionableText","FilterClauseWrapper","clearAll","selectAll","DropdownResultsHeader","showClearAll","onClearAll","showSelectAll","onSelectAll","filterOptions","FilterCheckboxDropdown","control","allowSelectAll","DEFAULT_FILTER_BUILDER_DROPDOWN_WIDTH","useMultiSelectSelectionManager","onSelectionsChange","getOptionLabel","optionSorter","propertySorter","latestConfirmedSelections","setLatestConfirmedSelections","sortedLatestConfirmedSelections","sortedSelectableOptions","unconfirmedAdditions","setUnconfirmedAdditions","combinedCurrentSelections","combinedSet","addition","dropdownItems","sortedLatestConfirmedSelectionsSet","selectableWithoutSelected","isSelectionDisabled","addUnconfirmedAdditions","newSelections","additions","newSelection","handleOpenChange","change","handleSelectionsChange","NumberInput","getRadioButtonSize","RadioButton","RadioButtonLabel","RadiobuttonWrapper","RadioButtonBullet","RadioButtonStyle","useSearchSelect","closeDropdownOnItemSelection","clearInputOnSelection","enableTabSelect","scrollSelectionIntoViewIndex","onIsOpenChange","restOfProps","onSelectedItemChange","haveSelectedItem","selectedItemIsDisabled","shouldIgnoreTabSelect","isTabSelectInvalid","blur","ControlledPropUpdatedSelectedItem","isProgrammaticChange","FunctionOpenMenu","nextState","InputChange","FunctionSetInputValue","selectedItemChangeProps","setInputValue","getStringLabel","SearchSelect","searchPlaceholder","showClear","incomingDropdownContentRef","dropdownSize","showDropdownSearch","selectorStyle","showDescriptionInButton","dropdownSuffix","searchPrefix","searchSelect","isOpenRef","handleSelectClick","handleSelectKeyDown","handleDropdownKeyDown","handleBlur","initialRender","defaultRenderResult","data-value","TextArea","onEnter","textarea","ToggleSwitchWrapper","ToggleSwitch","ToggleWrapper","Toggle","tooltipProps","data-checked","data-disabled","AgGridCheckbox","xmlns","g","fillRule","xmlnsXlink","defs","y","filterUnits","feOffset","dy","in","feGaussianBlur","stdDeviation","feColorMatrix","use","xlinkHref","linearGradient","x1","y1","x2","y2","stopColor","stopOpacity","fillOpacity","stroke","strokeLinecap","strokeLinejoin","colorInterpolationFilters","ellipse","rx","ry","currencyIconMap","$PAC","AAVE","ABT","ACT","ACTN","ADA","ADD","ADX","AE","AEON","AEUR","AGI","AGRS","AION","ALGO","AMB","AMP","AMPL","ANKR","ANT","APE","APEX","APPC","ARDR","ARG","ARK","ARN","ARNX","ARY","AST","ATLAS","ATM","ATOM","AUDR","AURY","AUTO","AVAX","AYWA","BAB","BAL","BAND","BAT","BAY","BCBC","BCC","BCD","BCH","BCIO","BCN","BCO","BCPT","BDL","BEAM","BELA","BIX","BLCN","BLK","BLOCK","BLZ","BNB","BNT","BNTY","BOOTY","BOS","BPT","BQ","BRD","BSD","BSV","BTC","BTCD","BTCH","BTCP","BTCZ","BTDX","BTG","BTM","BTS","BTT","BTX","BURST","BZE","CALL","CC","CDN","CDT","CENZ","CHAIN","CHAT","CHIPS","CHSB","CHZ","CIX","CLAM","CLOAK","CMM","CMT","CND","CNX","CNY","COB","COLX","COMP","COQUI","CRED","CRPT","CRV","CRW","CS","CTR","CTXC","CVC","D","DAI","DASH","DAT","DATA","DBC","DCN","DCR","DEEZ","DENT","DEW","DGB","DGD","DLT","DNT","DOCK","DOGE","DOT","DRGN","DROP","DTA","DTH","DTR","EBST","ECA","EDG","EDO","EDOGE","ELA","ELEC","ELF","ELIX","ELLA","EMB","EMC","EMC2","ENG","ENJ","ENTRP","EON","EOP","EOS","EQLI","EQUA","ETC","ETH","ETHOS","ETN","EUR","EVX","EXMO","EXP","FAIR","FCT","FIDA","FIL","FJC","FLDC","FLO","FLUX","FSN","FTC","FUEL","FUN","GAME","GAS","GBP","GBX","GBYTE","GENERIC","GIN","GLXT","GMR","GMT","GNO","GNT","GOLD","GRC","GRIN","GRS","GRT","GSC","GTO","GUP","GUSD","GVT","GXS","GZR","HIGHT","HNS","HODL","HOT","HPB","HSR","HT","HTML","HUC","HUSD","HUSH","ICN","ICP","ICX","IGNIS","ILK","INK","INS","ION","IOP","IOST","IOTX","IQ","ITC","JNT","JPY","KCS","KIN","KLOWN","KMD","KNC","KRB","KSM","LBC","LEND","LEO","LINK","LKK","LOOM","LPT","LRC","LSK","LTC","LUN","MAID","MANA","MATIC","MAX","MCAP","MCO","MDA","MDS","MED","MEETONE","MFT","MIOTA","MITH","MKR","MLN","MNX","MNZ","MOAC","MOD","MONA","MSR","MTH","MTL","MUSIC","MZC","NANO","NAS","NAV","NCASH","NDZ","NEBL","NEO","NEOS","NEU","NEXO","NGC","NIO","NKN","NLC2","NLG","NMC","NMR","NPXS","NTBC","NULS","NXS","NXT","OAX","OK","OMG","OMNI","ONE","ONG","ONT","OOT","OST","OX","OXT","OXY","PART","PASC","PASL","PAX","PAXG","PAY","PAYX","PINK","PIRL","PIVX","PLR","POA","POE","POLIS","POLY","POT","POWR","PPC","PPP","PPT","PRE","PRL","PUNGO","PURA","QASH","QIWI","QLC","QNT","QRL","QSP","QTUM","R","RADS","RAP","RAY","RCN","RDD","RDN","REN","REP","REPV2","REQ","RHOC","RIC","RISE","RLC","RPX","RUB","RVN","RYO","SAFE","SAFEMOON","SAI","SALT","SAN","SAND","SBD","SBERBANK","SC","SER","SHIFT","SIB","SIN","SKL","SKY","SLR","SLS","SMART","SNGLS","SNM","SNT","SNX","SOC","SOL","SPACEHBIT","SPANK","SPHTX","SRN","STAK","START","STEEM","STORJ","STORM","STOX","STQ","STRAT","STX","SUB","SUMO","SUSHI","SYS","TAAS","TAU","TBX","TEL","TEN","TERN","TGCH","THETA","TIX","TKN","TKS","TNB","TNC","TNT","TOMO","TPAY","TRIG","TRTL","TRX","TUSD","TZC","UBQ","UMA","UNI","UNITY","USD","USDC","USDT","UTK","VERI","VET","VIA","VIB","VIBE","VIVO","VRC","VRSC","VTC","VTHO","WABI","WAN","WAVES","WAX","WBTC","WGR","WICC","WINGS","WPR","WTC","X","XAS","XBC","XBP","XBY","XCP","XDN","XEM","XIN","XLM","XMCC","XMG","XMO","XMR","XMY","XP","XPA","XPM","XPR","XRP","XSG","XTZ","XUC","XVC","XVG","XZC","YFI","YOYOW","ZCL","ZEC","ZEL","ZEN","ZEST","ZIL","ZILLA","ZRX","CurrencyIcon","colorful","passedTheme","stacked","talosTheme","parsedSize","currencyItem","showRealIcon","allIcons","Icons","currencyColor","circleFill","CurrencyIconWrapper","preserveAspectRatio","textAnchor","CurrencyRenderer","currencyString","iconSize","labelTextColor","descriptionTextColor","dataTestId","hookTheme","themeToUse","ICON_STYLE","flexShrink","AG_GRID_CURRENCY_CELL_RENDERER_KEY","AgGridCurrency","currencies","shouldRenderDescription","Divider","thickness","PRECISION_TOOLKITS","delimiter","formatter","addLeadingZeroes","dateSetter","valueGetter","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","PRECISIONS","stepPrecisionValue","incOrDec","steppedValue","maxLength","TimePickerInputWrapper","TimePickerInput","Delimiter","PrecisionWrapper","formatTimeText","timeText","precisionToolkit","dateToTimeTextState","shouldFormat","o","timeTextValue","isInputTextInteger","reg","isInputTextValid","timeVal","keyToPrecision","precisionInputCompletedAndValid","precisionCompletedLength","TimePicker","maxPrecision","highlightTextOnFocus","moveCursorOnInputCompletion","setTouched","showedPrecisions","setTimeText","inputRefs","getDateFromTimeText","nonNullDate","newDate","updatingDate","toolkit","somethingHasChanged","updateDate","handleInputChange","nextInputRef","proposedText","prevTimeText","isSomeTextSelectedInInput","selectionStart","selectionEnd","isCursorAtExtremityOfInputText","extremity","cursorLocation","textLength","cursorShouldJump","incOrDecTimeTextValue","timeTextStr","prevInputRef","prevInput","nextInput","renderInput","inputChange","aria-label","capitalize","getDatesEveryXMinutes","dates","startOfDay","useTimeSelectorValidation","minutesInterval","datesAtInterval","okDate","TimeSelector","intervalMinutes","copiedSelection","valid","dateRangeMessages","today","past5Min","pastHour","past24Hours","pastWeek","past30Days","pastMonth","past90Days","pastYear","weekToDate","monthToDate","yearToDate","lifeToDate","LOOKBACKS","getStartDate","subMinutes","subHours","subDays","subMonths","startOfWeek","weekStartsOn","startOfMonth","startOfYear","DEFAULT_LOOKBACK_OPTIONS","isDateRange","val","lookbackOptionToDate","lookback","selectDates","submit","sinceDate","dateRange","custom","addDayToRange","DateUtils","CUSTOM_OPTION","noopShortcutFilter","fullList","DateRangePicker","shortcuts","canSubmitCleared","maxTimePickerPrecision","MILLISECOND","timePickerVariant","timeSelectorIntervalMinutes","fromTimeSelectorDropdownContentRef","toTimeSelectorDropdownContentRef","selectRef","initialMonth","selectedDatesOrLookback","setSelectedDatesOrLookback","handleShortcutChange","shortcutOption","shortcutOptions","selectedShortcutOption","usedShortcutOption","flattenAutocompleteGroupItems","groupOrItem","getAutoCompleteLabel","getShortcutLabel","handleSelectDay","newDates","newRange","day","endOfDay","startOfNextDay","handleChangeTime","handleClear","closeAfterClear","dateRangeOrLookbackToString","dateRangeOrLookback","maybeCustomLabel","canSubmit","Calendar","numberOfMonths","selectedDays","onDayClick","AgGridDateFilter","filterChangedCallback","setDates","doesFilterPass","dateIsBetween","isGtEq","isAfter","isLtEq","isBefore","isFilterActive","getModel","filterType","dateFrom","dateTo","setModel","model","AgTooltipSimpleStyle","AgTooltipSimple","AgGridDefaultHeaderTooltip","fallbackTooltipValue","visibilityHiddenStyle","AgGridFilterPermissionActionHeader","disableTooltip","InformationCircle","AgGridFormattedNumber","highlightNegative","AgGridFullWidthGroupRow","cellRendererParams","expanded","setExpanded","expandListener","RowContainer","ChevronRight","AgGridGroupToggleHeader","progressSort","allColumnsInGroupCollapsed","setAllColumnsInGroupCollapsed","updateColumnCollapsed","allColumns","getAllGridColumns","isAllCollapsed","onSortRequested","currentSort","setCurrentSort","getSort","onHandleColumnVisibilityChange","handleToggle","ev","setColumnsVisible","columnSortChanged","Columns","ExpandLeft","ArrowDown","ArrowUp","AgGridHamburgerMenu","renderItems","fallbackPlacements","itemsRef","handleClickTarget","nativeEvent","onClickCapture","DotsVertical","ItemsWrapper","AgGridIconButton","dataValue","rowPinned","onclick","AgGridInput","isRightAligned","fade","Square","fadeIn","LoaderWrapper","LoaderTalos","wrapperStyle","LoaderTalosIcon","AgGridLoadingOverlay","MeterWrapper","BarWrapper","roundLeftEdge","roundRightEdge","Bar","asPercent","valueBig","Meter","showLabel","showInitialAnimation","roundStartingEdge","percent","setPercent","alignBar","AgGridMeter","meterValue","getMeterFillPercentage","valueFormatted","meterProps","maybeTooltip","AgGridMultiSelectDropdown","multiSelectProps","noRows","EmptyStateWrapper","EmptyStateContent","EmptyState","AgGridNoRowsOverlay","NoRowsOverlay","BlotterTableOverlay","h2","AgGridPrice","showCurrency","showFeeIcon","sideColor","showReferencePrice","quoteCurrency","shouldShowFeeIcon","maybePricingMode","maybePricingReference","PricingReference","ReferencePriceTooltip","prettyPricingMode","renderedPricingMode","isPrettyPricingMessageKey","prettyPricingMessages","ProcessStepsWrapper","StepWrapper","StepLabel","StepConnectionWrapper","StepConnection","line","strokeDasharray","strokeDashoffset","StepIcon","mask","Active","Done","ProcessSteps","steps","showLabels","onClickStep","labelColor","AgGridProcessStep","activeIndex","statuses","currentSteps","AgGridSearchSelectDropdown","useSearchSelectParams","useDropdownParams","cellEditorParams","stopEditing","dropdownRef","eGridCell","DDHOrderIcon","DeltaStacked","DeltaSingle","SecurityRenderer","securityTooltip","DisplaySymbol","TourContext","Tour","tour","enqueue","useTour","enable","startTour","endTour","enqueueTour","dequeueTour","startOrEnqueue","UnifiedLiquidityTooltip","symbols","availableSymbols","displayStr","WARNING_ROW_CLASSNAME","AgGridSecurity","unsanitizedValue","tours","SecurityTooltipEnum","UNIFIED_LIQUIDITY","effectiveSuffix","SecurityToursEnum","DDH_ENABLED_ORDER","isRowExpanded","MultilegLegDirectionText","legIndex","Legs","isDirectionSameAsParent","Same","AgGridSize","inlineFormattedNumberAlignment","numericValue","workingIncrement","tryGetVariant","AgGridToggle","AgGridTooltipHeader","QuestionMarkCircle","AgGridWarning","tooltipWidth","HoverWarningIcon","WARNING_COLID","AgGridWarningHeader","setWarningSeverity","onHandleModelUpdate","highestSeverity","forEachNodeAfterFilterAndSort","currWarningSeverity","tryGetWarningSeverityFromNode","maybeWarningValue","handleModelUpdated","AG_GRID_OPTION_GROUP_KEY","AgGridOptionGroupCell","rawExpiration","formattedExpiration","underlyingAmount","ChevronLeft","AgGridOptionMark","MarkPriceIV","markPriceCurrency","Call","refreshCells","force","suppressFlash","rowNodes","AgGridOptionPriceQuote","underlyingQuoteCurrency","isPriceInQuote","getValue","underlyingQuoteCurrencyIncrement","shouldHighlight","underlying","data-highlight","AG_GRID_OPTION_STRIKE_PRICE_KEY","AgGridOptionStrikePrice","formattedStrikePrice","strikePrice","strikePriceOfExpiration","crossStrikeByExpiry","isCrossStrike","strikePriceToShow","HighlightedStrikePrice","HoverUnderlyingPrice","stripesCss","DrawerContent","DrawerFooter","DrawerWrapper","DrawerContentWrapper","useDrawer","resizeable","drawerRef","Drawer","adjustForGapMargin","isOptionDivider","required","getOptionKey","getFormState","drawerOptions","drawerOption","hideDrawerOption","hideField","InputsAndDropdownsDrawer","selectedEntity","onSave","allowDeleteEntity","onDelete","setForm","handleOnFormUpdate","handleDelete","confirm","handleOnSave","formWithInputTypesConverted","someRequiredInputNotPopulated","disabledWhenEditing","disableField","NotificationWrapper","Notification","fromNotificationVariantToIndicatorDotVariant","notification","Attention","ToastWrapper","TRANSITION","useToasts","timeouts","toasts","setToasts","toastDefaultProps","remove","toast","newToast","timeout","Toasts","stackingLimit","preventStacking","setPreventStacking","stackingStyle","Toast","GlobalToastsContext","useGlobalToasts","ModifyJsonDrawer","addToast","modifiedEntityString","setModifiedEntityString","modifiedEntity","showDeleteButton","AppwideDrawerContext","equalityAggFunc","firstValue","allValuesAreSame","EXIT_AGGREGATE","aggregate","priceAggFunc","unsanitizedValues","total","EMPTY_NO_AGG_RESULT","buildSizeAggFunc","aggregateIf","aggregateEmptyValues","aggValue","currencyToSum","firstCurrency","bigValue","maybeExistingBig","sizeCurrency","markCurrency","sizedAvgAggFunc","totals","currentValue","incomingValue","combinedValue","combinedSize","combinedMark","sumAggFunc","sum","density","getSpacing","Comfortable","blotterStyles","hoverBackgroundColor","columnDividerColor","columnDividerCss","Added","Updated","Removed","blotterPopupStyles","BlotterTableWrapper","pinnedRightBorderHidden","pinnedLeftOverlapping","CustomerRolePillWrapper","DEFAULT_COL_DEF","cellDataType","filterParams","buttons","getQuickFilterText","valueIsValueGetterReturn","getColDef","filterValueGetter","valueGetterValue","valueFormatterValue","valueFormatter","useFormatter","BlotterTable","gridOptions","extraComponents","hidePopupMenu","setPinnedLeftOverlapping","handleBodyScroll","memoizedGridOptions","suppressRowVirtualisation","suppressColumnVirtualisation","usePortalContextMenuClosing","AgGridReact","localeText","getAgGridLocaleText","AG_GRID_LOCALE_DE","AG_GRID_LOCALE_IT","AG_GRID_LOCALE_PL","AG_GRID_LOCALE_FR","AG_GRID_LOCALE_ES","AG_GRID_LOCALE_EN","defaultColDef","groupAllowUnbalanced","onBodyScroll","columnMenu","buttonColumn","checkbox","dateFilter","hamburgerMenuColumn","iconButtonColumn","loadingOverlay","noRowsOverlay","meterColumn","priceColumn","formattedNumberColumn","processStepColumn","sizeColumn","iconButton","amountInput","searchSelectDropdown","multiSelectDropdown","securityColumn","warningColumn","warningHeader","groupToggleHeader","tooltipHeader","tooltipShowDelay","loadingOverlayComponent","noRowsOverlayComponent","suppressMultiSort","suppressColumnMoveAnimation","setWrapperRef","blotterRenderedInPortal","handleDocumentClick","Element","clickIsWithinAgPopup","BlotterTableContext","useBlotterTableContext","FilterBuilderClearAllButton","removeAllFilterClauses","handleClearAllClick","filters","FilterBuilderToggleButton","filterClauses","handleOnClick","ClickOpenFilterBuilderButton","Filter","IconsContainer","FadingIcon","CopyButtonWrapperButton","CopyButton","_onClick","toastProps","mixpanelEvent","onCopy","copyToClipBoard","copiedValue","copied","setCopied","timeoutIdRef","handleCopy","COPY_TIMEOUT","computedValue","checkmarkColor","onlyIcon","ClipboardCopy","ACTION_BUTTON_MINWIDTH","headerIcon","headerIconColor","customActions","confirmDisabled","confirmLoading","alignContent","contentOverflow","onConfirmMouseOver","closeOnConfirm","closeOnCancel","preview","handleConfirm","hasPreview","getFirstSelectionInProperty","propertyRefs","empty","getCurrentlyFocusedPropertyIndex","currentlyFocusedProperty","refs","propertyKeys","refsByPropertyKey","propertyKey","useFilterBuilderRefs","filterClausesByPropertyKey","setRefsByPropertyKey","clause","createRefsObject","addButtonRef","updateSelectionRefs","currRefs","newRefsMap","checkedRefsSet","newRefs","resetAllPropertyRefs","filterClause","addPropertyRefs","removePropertyRefs","removeAllPropertyRefs","openClause","click","refsObj","firstSelection","tail","ListOfFilterClauseTypes","INCLUSIVE","EXCLUSIVE","isFilterClause","maybeFilterClause","useFilterBuilder","initialFilterClauses","permanentFilters","onFilterClausesChanged","propertiesByKey","handleFilterClausesChanged","setFilterClausesByPropertyKey","verifiedClauses","verifyFilterClauses","nSelectionsBeforeVerification","nSelectionsAfterVerification","filterBuilderRefs","resetFilterClauses","nextFilterClauses","alwaysPresent","filterKeysToExclude","addFilterClause","removeFilterClause","replaceFilterClause","oldProperty","newProperty","oldPropertyAlwaysPresent","setFilterClauseSelections","currClause","newClause","addAndOpenClause","valueArr","filterableProperty","maybeClause","verifyClauseSelections","maybeSelections","propertiesList","acceptableFilterClauses","acceptableSelections","isEmpty","workingSelections","clearUnsupportedSelectionsOnInit","optionsAvailable","uniqueAcceptableSelections","invalidFilterClause","deserializeFilterClauses","serializedFilterClauses","maybeFilterClauses","mfc","PasteWrapper","copyFilters","copiedFilters","pasteFilters","filterInstructions","invalidFilters","invalidFiltersCopiedToClipboard","reuseCopiedFilter","CopyPasteFilter","currentFilterClauses","onSubmitCopiedFilterClauses","reactClipBoard","copyToReactClipBoard","useCopyToClipboard","pastedText","setPastedText","pastedFilterClauses","handleOnDialogSubmit","handleOnDialogTextChange","handleOnDialogClose","pasteDialog","handleOnKeyDown","handleOnClickCopy","handleOnClickPaste","ClipboardPaste","clipboardIcon","PropertyDropdown","SelectionListButtons","visibleSelections","onOpenClick","onRemovePropertyClick","onRemoveSelectionClick","tailLength","entirePropertyRemovable","usePropertyMultiSelect","setReferenceElement","MAX_VISIBLE_SELECTIONS_PER_PROPERTY","lastSelectionRef","getOptionDescription","getOptionGroup","PropertyMultiSelectList","onDropdownTabOut","closeMenu","dropdownOptions","updatePopperPosition","handleOpenClick","handleRemoveSelectionClick","handleClearAll","handleSelectAll","handleDropdownTabOut","PropertySingleSelectList","onlyRef","handleSelectionChange","selectLabel","typeToSelect","PropertyTextList","handleInputValueChange","addFilter","filtersPasted","is","getFilterablePropertyLabel","FilterBuilder","showCopyPaste","ApplyFilterBuilderFilter","editProperty","setEditProperty","propertyInputRef","selectableProperties","handlePropertyChange","setDropdownRef","handlePropertyClick","handleTabForwards","currentlyFocusedPropertyKey","focusedSide","getNextElementToFocus","currentlyFocusedPropertyIndex","handleTabBackwards","getPreviousElementToFocus","firstProperty","handlePropertyDropdownTabOut","findCurrentlyFocusedPropertyLHSByRef","maybeFoundEntry","handleSelectionListDropdownTabOut","handleSubmitCopiedFilterClauses","newFilterClauses","propertyRef","SpecificCurrency","ReceiveCurrency","LenderFirm","BorrowerFirm","ORD_STATUS_MAPPING","incompleteOrderStatuses","without","ORD_TEXT_TO_STATUS_MAPPING","getOrderStatusOptions","includeStatusGroups","includeStandaloneStatuses","mappedStatuses","useSidesFilter","ArrowUpDown","useSymbolsFilter","availableSecurities","securitiesList","_securitiesList","CurrencyDollar","BlotterTablePauseButton","pause","resume","Play","Pause","BLOTTER_TABLE_FILTERS_CONTAINER_ID","getTimestampFieldLabel","tsf","BlotterTableFilters","quickFilterPrefix","accordionBodyPrefix","showQuickFilter","showQuickFilterOnly","quickFilterText","onQuickFilterTextChanged","showFilterBuilder","showDateRangePicker","dateRangePickerClearable","selectedTimestampField","timestampFields","dateRangeShortcuts","onDateRangeChanged","onTimestampFieldChanged","filterBuilder","canSubmitClearedDateRange","showPauseButton","quickFilterInputWidth","handleOnFilterTextChanged","FilterQuickSearch","handleOnDateRangeChanged","ChangeTimeFilter","timestampFieldDescription","timestampField","timestampFieldOptions","handleTimestampFieldChange","FilterTimeTypeChanged","dateRangePickerOptions","shortcut","hasPauseResumeProps","Search","BlotterTableNativeStorageContext","LeftMiddleRightFlexbox","middle","cell","minimize","Tr","tr","Th","Td","Thead","thead","Tbody","tfoot","tableStyle","bordered","insetPadding","Table","zebra","col","MeterTargetIndicatorWrapper","targetPercent","renderIndicator","ABBREVIATE_OPTIONS","PositionThresholdMeter","updated","jitWrapperProps","currentPercent","getPositionThresholdMeterValues","targetPosition","TargetPosition","shortLimit","ShortPositionLimit","longLimit","LongPositionLimit","currentPosition","CurrentPosition","targetOffset","positionLessThanZero","positionGreaterThanZero","bigTargetPosition","positionAtZero","meterColor","iconColorByHedgePositionStatus","HedgeControlStatus","PositionThresholdMeterTooltipContent","TargetAsset","iconByHedgePositionStatus","CloseCircle","Hedging","CheckCircle","Disabling","Incomplete","Complete","Synchronizing","Refresh","Tripped","Scale","AutoHedgingStatus","statusIcon","AutohedgingStatusIcon","SpinningGrid","AUTO_HEDGE_STATUS_SORT_ORDER","MarketColorDotWrapper","Bordered","DOT_SIZE","MarketColorDot","TWO_WAY_SIDES_FILTER","QuoteSide","Pending","Confirmed","getFriendlyAddressStatus","AddressStatus","getCareOrderStatusColor","unknown","CircleSolid","CareOrderStatus","ExposureStatus","getLoanStatusColor","getLoanQuoteStatusText","recipients","participant","loanQuoteStatusText","borrowLoanQuoteStatusTextMapping","TermSheetRequested","TermSheetSent","TermSheetAllSigned","Expired","lendLoanQuoteStatusTextMapping","signer","Participant","Signed","Borrow","LoanQuoteStatus","getLoanStatusText","transactions","loanStatusText","borrowLoanStatusTextMapping","Closed","lendLoanStatusTextMapping","activeTransactions","FromParticipant","ToParticipant","Lend","getIcon","ArrowLeftRight","LoanStatus","getLoanTransactionStatusColor","getLoanTransactionStatusText","loanTransactionStatusText","inboundLoanTransactionStatusTextMapping","RateRequestSent","RateRequestAckd","TransferPending","TransferProcessing","TransferSubmitted","TransferWaitingForExternalAuth","outboundLoanTransactionStatusTextMapping","KeyClock","LoanTransactionStatus","Excluded","quoteStatusTextMapping","TransientError","quoteStatusText","getQuoteStatusText","renderQuoteStatus","Matched","Resolved","Unmatched","UnmatchedMarketAccount","UnmatchedSubAccount","Discarded","RECON_MATCH_STATUS_TEXT_MAPPING","ReconMatchStatus","mainContent","Reconciled","Unreconciled","ExclamationCircle","ReconCheckpointStatus","ReconMismatchStatusIcon","ReconMismatchStatus","getTradeStatusIconName","TradeStatusIcon","TradeStatus","pendingApproval","pendingTransfer","waitingForExternalAuthorization","transferInitiated","transferPendingBlockchainConfirmation","completed","PendingApproval","PendingTransfer","WaitingForExternalAuth","getFriendlyTransferStatus","TransferInitiated","TransferPendingBlockchainConfirmation","TransferStatus","dateStringComparator","amountObjectComparator","numericColumnComparator","amountObjectValueFormatter","cmp","stringColumnComparator","getStringFormattedColumnComparator","valueA","valueB","getGridApiFromNode","beans","gridApi","agColumn","getColumn","columnHasValueFormatter","nodeAFormattedValue","nodeBFormattedValue","cellRenderer","twoWay","withdrawal","crypto","fiat","cellEditor","isPlainObject","isCellEditable","initialWidth","milliseconds","sortingOrder","headerName","menuTabs","alignment","Bullet","DotSolid","BulletText","StatusWrapper","iconRight","BulletAnimation","BulletSpinnerAnimation","BulletSpinner","BulletWithAnimation","BulletPopover","popoverPlacement","StatusIndicator","popoverText","showText","IndicatorWithSpinner","RefreshRecover","ConnectionStatusIndicator","CircleIconFromLabel","internalValueGetter","marketAccountName","marketAccountNameField","marketAccountsByName","CreditUsageWarnings","isWarningAggregatedFromChild","usage","OrderWarnings","marketsByName","groupCompareFn","useGroupCompareFn","getMarketLabel","getSymbolLabel","getCombinedItemLabel","symbolLabel","warningGroups","marketGroupsMap","marketType","typeGroupTuples","aType","bType","alertVariant","warningItem","marketLabel","colSpan","MARKET_GROUP_PRIORITY","Exchange","Dealer","Custodian","External","InternalAlgo","Dark","Other","aggFunc","isTreeGroupRow","myValue","highestChildValue","nodeId","ExpandRowButton","getExpandedHeight","handleExpandCollapseClick","setRowHeight","onRowHeightChanged","heightToExpandTo","showExpandCollapseButton","ListCollapse","ListExpand","greek","grouping","getGroupedColumn","innerRendererSelector","Logo","polygon","rect","marketLogoLookup","$binance","Y29pbl9tZXRyaWNz","clipRule","$erisx","$ftx","ZnR4X3Vz","bG1heF9kaWdpdGFs","$lmax","$osl","b3NsX2Ft","MarketLogo","logoName","snakeCase","tspan","tradeBookedManually","customerAccountID","sourceTransferAccount","destinationTransferAccount","wlOrgConfig","customerMarketAccount","marketAccountDisplayName","marketTypeByName","marketDisplayNameByName","marketDisplayName","prefixCustodianMarketAccounts","customerName","customer","customersByName","prefixCustomerMarketAccountsWithCpty","Bookmark","MarketAccountTooltipComponent","cellEditorPopup","suppressKeyboardEvent","ma","requiresCounterparty","getMarketAccountValue","marketAccountGroup","stringArray","marketsArray","sortedArr","aName","getDisplayName","bName","sortedStr","STRIKE_CLASSNAME","DEFAULT_SHORTCUTS","DEFAULT_DATE_PICKER_EOD","shouldEmitChange","oldDate","eod","DateTimePickerContent","showCalendar","showTimePicker","showShortcuts","showMilliseconds","timeSelectorDropdownContentRef","onSelection","customEOD","useDaySelectCustomEOD","customShortcutResolver","timePickerRef","getEOD","defaultShortcutResolver","handleSelectShortcut","resolver","limits","renderShortcutButton","shortcutKeys","activeElement","disabledDays","month","shortcutKey","ariaLabelForClearValueButton","ariaLabelForValueInput","DateTimePicker","currentTarget","Node","composedPath","dateFormatter","dateParser","parseString","inputValueRef","setShowClear","handleInputFocus","handleInputBlur","maybeEmitChange","maybeChangedDate","validateMinDate","newMinValue","setUTCDate","getUTCDate","setUTCHours","validateMaxDate","newMaxValue","handleTabOut","handleSelection","shouldClose","clearDisabled","parseDurationRegex","emptyDuration","days","calcDateFromDuration","relativeTo","isDateTimeDurationPickerValue","useParameterRows","orderStrategy","orderParameters","showEmptyParams","excludedParams","strategiesByName","aggregationsByName","getAggregationDisplayNameByName","parameter","paramName","param","orderParams","camelCase","Duration","formatDuration","separator","canParseAsDuration","Aggregation","Percent","Enum","enumValues","EnumValues","enumValue","DefaultValue","PriceOffset","Qty","Interval","ParametersTable","row","PMSRowWarnings","warningData","warnings","InProgress","ReconCheckpointEvalStatus","RECON_CHECKPOINT_EVAL_STATUS_TEXT_MAPPING","PositionWarnings","displayReconStatusDetails","TotalMismatch","LastMismatchTime","SecurityMarketData","bidsAndOffers","take","zip","bid","offer","Size","TreeLevelContainer","VerticalLevelLineContainer","IconContainer","VerticalLevelLine","highlighted","TextAndIconContainer","TitleText","DropDownIconButton","Details","TreeContainer","TreeView","tree","renderNode","toggleNode","openNodes","sortNodeChildren","scrollToId","setScrollToId","handleScroll","getNodeType","rootIds","treeWithSortedNodes","sortNodeAB","sortedTree","sortAndInsertChildren","treeNode","rootNode","getNodeDetail","highlightedLine","isRoot","nodeType","TriangleDown","TriangleRight","TreeViewTooltip","reducedTree","newTree","findRoots","SubaccountID","treeviewState","useTreeview","setOpenNodes","openNode","closeNode","closeAll","scrollToNode","openToNode","subAccountMembers","getSubAccountsForNode","members","pushMembers","Book","MinusMarginBox","Rollup","data-id","TreeDiagram","allSubAccounts","wildcard","defaultGetDropdownGroup","sa","defaultGetDropdownDescription","defaultGetCellDescription","subAccountToAutocompleteItem","lookbackPeriod","WINDOW_DURATIONS","baseTreeGroupColumnDef","cellRendererSelector","groupColumnValue","GroupCellRenderer","suppressCount","columnTypes","addressStatus","assetTypeProp","assetTypeField","isCurrency","bps","bitmap","getTypedKeys","cumBaseQty","getFilledBaseQuantity","connectionStatus","Up","Down","connectionStatusWithText","counterpartiesByName","showIconPrefix","counterparties","counterpartiesMap","cp","cpName","resetsMarketAccount","counterpartyFromMarketAccount","symbolField","securityCurrencyField","credentialAge","updatedAt","differenceInCalendarDays","ageWarningDays","ageAlertDays","ageInDays","valueIsAggregatedFromChild","customerRolesMapByName","customerRoles","expandRow","exposureDefinitionsByName","exposureStatus","exposureUtilization","with","Exposure","ExposureLimit","filledCounterAmount","filledNotional","filledQty","filledQtyField","totalQtyField","filledQtyBig","totalQtyBig","roundUp","numericComparator","bigA","bigB","filler","suppressFiltersToolPanel","formError","showRowGroup","groupedColumn","groupedColumnHasNoValueGetters","getCellFilterValue","filterValue","joinedParams","groupedColumnHeaderNames","Function","startCase","hamburgerMenu","Braces","loanParticipant","loanParticipantsByName","loanQuoteStatus","TermSheetRecipients","loanStatus","transactionsByLoanId","loanTransactionsByLoanId","LoanID","loanTransactionStatus","withColor","withLogo","marketName","marketAccountGroupDerived","marketAccountField","marketAccountSourceAccountID","marketAccountTradingStatus","CheckCheckbox","marketAccountTransfer","sourceOrDest","sourceOrDestination","showUnknownIfMarketAccountMissing","marketColor","modeWithMessage","adjustedValue","multiplier","columnGroupClass","openNotional","getOpenNotional","totalNotional","filterOrderStrategyParams","orderStrategyParams","strategyName","strategyParams","strategyParam","Hidden","TopLevelHidden","valueParser","oldValue","pmsWarnings","aggregateResult","messageBySeverityMap","allMessages","buyingPower","allowedToShowWarning","showExcessWarning","excess","positionDirection","Both","Long","Short","positionExpiry","expiry","formattedExpiry","isColumnBeingUsedInGrouping","isRowGroupActive","isRowPinned","isNonGroupingColumnLeafNode","positionUnderlyingAsset","AssetType","newValueBig","isReferencePrice","referencePrice","inputAsset","assetField","quoteCurrencyField","resolvedAsset","maybeSecurity","maybeCurrency","maybeQuoteCurrency","pricingAggregation","processStep","productTypeField","quoteMarkets","isQuoteDone","showFilledOnly","sortBy","quoteSide","fallbackValue","fallbackField","quoteValue","TradedPx","TradedAmt","securities","reconCheckpointStatus","reconCheckpointEvalStatus","reconMatchStatus","reconMismatchStatus","disabledTooltip","getRow","allowOnlyForAddedRows","Trash","formRow","suppressMenu","Modified","rowCount","showAsteriskOnEmpty","securityMarketData","marketDataCollectionPath","marketDataForSymbol","displayValue","columnHeaderTranslations","securityInfo","showCurrencyForNullPosition","workingCurrency","securityField","showInTermsOfContracts","noPositionCurrencyExists","PositionCurrency","positionAmount","decidedCurrency","sizedAvg","sizeField","markField","sizeCurrencyField","markCurrencyField","sizeBig","markBig","formattedMark","valueType","allocations","ValueType","Allocations","alloc","subAccountsByName","Percentage","Value","resolveName","subAccountByID","subAccountsByID","subAccountByName","subAccountNameOrId","identifier","subAccountName","getSubAccountName","getCellDescription","rollupTree","renderTree","selectableSubAccounts","subAccountOptionsOverride","unshift","getDropdownGroup","initialSelectedItem","positionThresholdMeter","prettyText","textArray","thresholdAsset","assetsBySymbol","limitAssetsBySymbol","keyOfMatchAssetToIncludeInOptions","maybeMatchAsset","margin","paddingLeft","transferDescription","tradingMarketAccounts","Accounts","filteredAccounts","Mode","transferStatus","RejectText","autohedgeStatus","textField","sortA","sortB","Download","Upload","referencedUser","valueFormatWithMap","userByEmail","userByID","currentUser","isCurrentUserTalosUser","isReferencedUserTalosUser","windowDuration","optionStrike","currencySymbol","optionSide","optionGroup","careOrderStatus","BlotterTableStorage","columnToColumnState","copyCell","copyRowsAsJson","copyRowsInGroupAsJson","copyRowsAsCSV","copyRowsInGroupAsCSV","selectAllRows","filterThisColumnLabel","filterByValue","filterByMultipleValues","cancelWithdrawalRequest","useGetDefaultContextMenuItems","copyDataCallback","CopyCell","copyRowAsJson","rowsToCopy","getRowsForCopying","copyingChildren","formattedName","nodeData","jsonData","CopyRowsInGroupAsJSON","CopyRowAsJSON","copyRowAsCsv","levelToCollect","rowIsGroup","rowHasData","getRowNodesToOperateOn","nodeLevel","forEachNodeAfterFilter","nodeIds","getDataAsCsv","skipRowGroups","onlySelected","suppressQuotes","columnSeparator","columnKeys","getAllDisplayedColumns","processCellCallback","shouldRowBeSkipped","innerParams","CopyRowsInGroupAsCSV","CopyRowAsCSV","export","exportAllData","exportFilteredData","exportCSV","ExportButton","DocumentDownload","onExportAction","useDateRangeFilter","changeFilter","additionalFilterDateRange","handleDateRangeChanged","newFilter","convertDateRangeToFilterValue","StartDate","EndDate","_start","handleTimestampFieldChanged","TimestampField","dateRangeValue","lastAdditionFilterDateRange","cleanupInitialFilterDateRange","initialFilter","filterExistsAndExcludes","filterKey","dataKey","filterPart","useAccordionFilterBuilder","filterBuilderProps","accordionProps","checkForExistingClauses","openFilterClause","filterBuilderOpenClause","onOpenedCallback","setOnOpenedCallback","useColumnDefs","handleClickJson","exportDataAsCSV","supportColumnColDefGroups","columnDefs","setColumnDefs","convertColumnToColDef","upperFirst","csvExport","wrappedExportDataAsCSV","ExportRows","onCellClicked","convertedColumnDefs","isColumnGroup","useBlotterTableMenus","getExtraMainMenuItems","getContextMenuItems","getDefaultContextMenuItems","getContextMenuItemsResolved","rightClickedNode","selectedNodes","getSelectedNodes","displayed","isRightClickedNodeInSelection","deselectAll","setNodesSelected","setSelected","getMainMenuItems","extras","useBlotterTable","dataObservable","pinnedRowDataPipe","pinnedRowDataObs","flatColumns","groupableColumns","flashRows","initialFlashRows","fitColumns","showPinnedRows","clientLocalFilter","onColumnsChanged","onSortChanged","customBlotterContext","quickSearchParams","pauseParams","customColumnUpdate","inputGridOptions","columnsToUse","setPaused","setApi","onGridReady","dataState","applyTransactionAsync","showNoRowsOverlay","compileTransactions","rowId","thisRun","flash","flashCells","getRowNode","flashDelay","fadeDelay","pinnedRowDataObsToUse","pinnedTopRow","getPinnedTopRow","setData","setGridOption","utilities","useBlotterTableUtilities","addRow","getRows","forEachNode","newData","getSelectedRows","selectedData","getRowsAfterFilter","getColumnKeysToUseForExport","includeHiddenColumns","ignoredColIds","ignoreColumn","startingColumns","getColumns","columnKeysToUse","customColDef","exportDataAsExcel","getSheetDataForExcel","skipPinnedTop","skipPinnedBottom","exportDataAsCsv","cellContent","safeCsvCellContent","cellCsvSafety","needsSafetyPrefix","char","getDataAsCSV","expandGroupRow","nodeKey","recursively","scrollToRow","ensureNodeVisible","scrollVerticallyToColumn","ensureColumnVisible","expandAllGroups","ExpandAllRows","expandAll","collapseAllGroups","CollapseAllRows","collapseAll","collapseAllLevelsGreaterThan","setRowNodeExpanded","setRowGroupColumns","columnsOrColIds","addRowGroupColumns","colIds","currentRowGroupColumns","addedRowGroupColumns","uniqueNewRowGroupColumns","uniqBy","removeRowGroupColumns","getRowGroupColumnIds","highlightRows","rowIDs","expandChildren","parentsAndNode","firstNode","highlightGroupRow","groupingKey","referencedNode","selectRows","refreshClientSideRowModel","resolvedGridOptions","useBlotterTableGridOptions","resolvedRowHeight","VeryComfortable","handleOnGridReady","useCallbackRef","deps","callbackRef","useInsertionEffect","onGridReadyCallback","rowClassRules","getRowId","blotterTableContext","agGridContext","startingGridOptions","outputOptions","animateRows","suppressAggFuncInHeader","isExternalFilterPresent","doesExternalFilterPass","cacheQuickFilter","initialGroupOrderComparator","processCellForClipboard","getColumnState","columnsFromState","columnState","useBlotterTableInitialSetup","autoGroupColumnDef","initialSorts","hasCustomColumnUpdate","workingColumnDefs","workingAutoGroupColumnDef","sortedColumnStates","shouldInitialise","initialSortArr","sortIndex","dir","columnDef","sortedColumnState","sizeColumnsToFit","cleanup","useBlotterTableEventHandlers","onRowClicked","previousColumns","handleColumnsChanged","finished","DragAndDropGrouping","ShowBlotterColumn","HideBlotterColumn","Column","previousSort","handleSortChanged","getBlotterTableSort","sortString","handleRowClicked","newSelectedState","setQuickFilterText","filterText","onFilterChanged","pauseProps","resetRowHeights","blotterTableFiltersProps","DropdownMenu","MenuItem","DropdownFilterWrapper","notFound","DropdownFilterRaw","getKey","renderItem","renderSelectedItem","buttonProps","menuProps","itemProps","getToggleButtonProps","useSelect","toggleButtonProps","menuElementProps","DropdownFilter","ToggleButtonFilterWrapper","ToggleButtonFilter","renderContent","onToggleChange","multiSelect","selectedFilters","selectionSet","handleClick","removeEmptyFilters","cleaned","useWsBlotterTable","initialRequest","initialSort","allowRequest","startingRowLimit","onInnerRequestChanged","endingColumns","activeRowID","setActiveRowID","setActiveRequest","activeColumns","initialRequestRef","requestSubject","requestObservable","distinctUntilChanged","throttleTime","asyncScheduler","leading","trailing","limitReachedState","setLimitReachedState","paginationLimitedSubscription","pipedSubscription","sort_by","didInitialSubscription","actualColumns","handleRequestChanged","updatedRequest","currentRequest","maybeNewRequest","blotterTable","onRequestChanged","paginationLimit","NewRequest","Review","useGenericFilter","filterableProperties","filterProps","setFilter","priorFilter","fromEntries","clauses","tooManyRecords","loadMoreRecords","loadMoreRecordsDescription","WSBlotterTableMaxRecordsReachedWarning","getTimestamp","showLimitReached","setShowLimitReached","MaxRecordsReachedWarning","dismiss","earliestTimestamp","onRaiseLimitClicked","handleRaiseLimitClicked","RaisePaginationLimit","formattedRecordsReceived","showRaiseLimitButton","usePersistedBlotterTable","blotterID","persistSort","persistFilter","persistColumns","setColumnState","setSortState","setFilterState","persistedColumns","persisted","specifiedCol","persistedCol","persistedOrder","specifiedOrder","AuthContextProvider","session","testSessionInstance","loginUrl","logoutUrl","sessionCookieName","setAuthenticated","login","newUrl","logout","canRenderChildren","pathname","cookieValue","readCookie","nameEQ","ca","parseCookie","atob","expires_at","CurrencyConversionProvider","homeCurrency","currencyListeners","Currencies","Heartbeats","getMarketPriceStreamRequestForSymbol","getMarketPriceStreamRequestForAllSymbols","bidPrice","offerPrice","spread","MarketPriceContextProvider","marketPricesBySymbol","MixpanelProvider","instance","setInstance","init","api_host","VITE_MIXPANEL_PROXY_URL","windowWidth","innerWidth","windowHeight","innerHeight","getInstance","PortalContextProvider","parentProvider","portals","setPortals","prevPortals","TALOS_DB","RDC_TYPE_TO_KEYPATH","Security","IndexedDBCache","CacheableTypes","isCacheable","_status","_errorSubject","_transactionCount","_initResolve","_initReject","_initProm","resolve","dbVersion","indexedDB","dbName","onsuccess","_db","onerror","onupgradeneeded","keypath","createObjectStore","keyPath","write","entities","perfMeasure","perfStartKey","perfEndKey","nextPerfKeys","objectStoreNames","trans","transaction","store","objectStore","put","oncomplete","commit","observeError","read","readAll","getAll","deleteDatabase","op","RefDataCacheContext","cache","isEnabled","SUB_OPTIONS","getCurrencyPairFromSecurity","SECURITY_REQUEST","createMockWebsocketContext","shouldSendToThisStream","binance","coinbase","kraken","enclave","one_inch","MOCK_CURRENCIES_CONTEXT","currenciesList","BTCUSDSecurity","MinimumSize","MaximumSize","PriceDisplaySpec","SizeDisplaySpec","NormalSize","Rank","USDEURSecurity","BTCUSDCSecurity","BTCUSDTSecurity","ETHUSDSecurity","ETHBTCSecurity","MOCK_SECURITIES_CONTEXT","MinAmountIncrement","UnderlyingSymbol","Category","MarketDataDepth","LegParams","CrossingAllowed","Initiating","MaxRestingLevels","searchableSecurities","securitiesListSortedByRank","STRATEGIES_MAP","Limit","MultilegLimit","AlgoType","InstrumentScope","MultilegTWAP","StrategyScope","EnclaveCross","USERS","Email","MOCK_STRATEGIES_CONTEXT","strategiesByNameObs","strategiesList","WatchlistVisibilityContext","useWatchlistVisibility","BALANCE","getBalanceKey","WLBalancesProvider","ShowZeroBalances","mktAcc","currencyMktAccsMap","mktAccCurrencies","initialRefDataState","strategiesBySymbol","referenceDataSlice","createSlice","reducers","setStrategiesBySymbol","setSecurities","setMarketAccounts","__setReferenceData","actions","orderSliceMessages","limitPrice","stopPrice","clipSize","clipInterval","variance","triggerPrice","BaseField","isTouched","isRequired","hasValue","hasError","hasWarning","errorString","getTranslatedErrorString","warningString","getTranslatedWarningString","getTranslatedValuesFromResult","hasInvalidValue","fieldsMessages","dataNameIsRequired","dataNameMustBePositive","dataNameExceedsMaximumDpsOfScale","minQuantityIsMinSizeCurrency","absoluteDateValue","paramValue","DateField","dateTimeDuration","DateTime","relativeDate","setRelativeDate","updatedData","updateData","invariantCheck","updateValue","isSystemOverride","setIsRequired","validate","Rule","rule","setDisabled","hasNoValue","isDateTimeDurationEmpty","isDateTimeZeroDuration","isZeroDuration","dataName","immerable","Field","isNumericText","getScaleFromIncrement","NumericField","scale","displayTrailingZeroes","util","getUnitUtils","decimalFormatter","decimalValueSetter","percentFormatter","percentValueSetter","notionalFormatter","notionalValueSetter","bpsFormatter","bpsValueSetter","userInput","userInputValid","updateUnit","updateScale","setMinimum","minimum","violateMin","minSize","dps","toLocaleString","minimumFractionDigits","maximumFractionDigits","isValidNumber","hasValidMultiplier","lastIndexOf","SelectorField","availableItems","hasAvailableItems","updateValueFromID","idValue","idProperty","updateAvailableItems","preventDefaultToValue","keepIsTouched","existingValue","LimitStrategy","Optional","MultilegAggressiveLimit","resolveDeprecatedStrategy","MultiSelectorField","existingValues","missingValue","numberIsPositive","validatePrecision","scaledQuantity","roundedQuantity","minIncrementIsMinIncr","quantityExceedsRejectionThreshold","quantityExceedsWarningThreshold","quantityIsRequired","quantityShouldBeANumber","marketAccountIsRequired","pleaseSelectAnOrderSide","displayNameIsRequired","displayNameShouldBeANumber","displayNameShouldBeGreaterThanZero","dateCannotBeInThePast","displayNameCannotBeAfter","displayNameCannotBeBefore","displayNameShouldBeADate","invalidPercentageValue","displayNameMustBeAValidInterval","endTimeCannotBeBeforeStartTime","startTimeCannotBeAfterEndTime","timeCannotBeInThePast","quantityCannotBeLessThanAlreadyExecutedQuantity","cantVerifyMinimumQuantity","validateQuantity","quantityField","quantitySymbolValidation","quantityTradingLimitsValidation","quantityMoreThanMinSize","quantityNotLessThanModifiedOrderCumQtyValidation","minIncr","orderCurrencyField","ccConversionRate","MinimumAmount","minimumSizeInBaseCurrency","minimumSizeInQuoteCurrency","minimumAmountInQuoteCurrency","minimumAmountInBaseCurrency","oppositeQuantity","oppositeCurrency","effectiveMinQuantity","orderBeingModified","tradingLimitsValidation","RejectThreshold","ThresholdCurrency","WarnThreshold","notInPastValidation","valueOf","endTimeValidation","comparingAgainstEndTime","toLocaleLowerCase","INITIAL_REFERENCEDATA_STATE","initialDependencies","getInitialState","initialSymbolParams","initialSecurity","initialSymbol","initialMarketAccountsReferenceData","initialSecuritiesReferenceData","initialStrategiesReferenceData","availableStrategies","initialStrategy","referenceData","sideField","strategyField","viewType","initializeStrategyParams","initialized","orderStep","focusedOrderID","quote","getSupportedStrategiesOfSymbol","strategies","handleSymbolChange","setTouchedValueForAllOrderFields","supportedStrategies","handleStrategyChange","handleCleanMarketAccount","availableCurrencies","newParameters","mapParameterToField","priceScale","quantityScale","TargetParticipationRate","Bps","cleanFormState","keepSymbol","keepStrategy","formCopy","newSide","Twoway","populateDropdownsFromRefData","initializeFieldsFromOrder","isModify","newStrat","allowEdit","validateForm","validateStrategyParams","parameterKey","parameterField","shouldValidateEndTimeRelativeToStartTime","validateEndTimeRelativeToStartTime","parameterLike","setFieldsDisabled","handleViewTypeChange","oldViewType","currentSide","keepMarketAccount","SourceData","CFDFundingSchedule","orderSlice","setReferenceData","setSide","setQuantity","setLimitPrice","setOrderCurrency","ClipSize","setStrategy","modifyOrder","setOpenForm","resubmitOrderForm","primeOrderForm","primedStrategy","currentStrategySupportsLimitPrice","primePayloadStrategy","isPrimedStrategyDifferentFromCurrent","setMarketAccount","setStrategyParams","triggerFormValidation","touchAll","resetState","newState","cleanState","setOrderStep","setFocusedOrderID","setError","setSymbol","touchField","setDependencies","prevDependencies","closeOrderForm","setViewType","unsetQuoteReqID","setQuote","cleanRFQ","sessionSlice","isBiometricallyVerified","archivedOrderIDSet","setIsBiometricallyVerified","archiveOrderID","enableMapSet","OrderFormContext","useWLOrderFormDispatch","createDispatchHook","withTypes","useWLOrderFormSelector","createSelectorHook","useWLOrderFormStore","createStoreHook","getWLOrderFormStore","configureStore","preloadedState","reducer","middleware","getDefaultMiddleware","serializableCheck","immutableCheck","devTools","selectIsFormValid","createSelector","parametersHasError","maybeBaseField","principalHasError","selectLimitPrice","selectForm","selectModifiedOrder","selectTradingLimitsValidation","selectOrderStep","selectQuoteReqID","selectQuote","selectError","selectSecurity","selectSymbol","selectIsFormOpen","selectFocusedOrderID","selectOrderViewType","selectTradingLimitsArguments","selectBalances","WLCustomerUserConfigContext","useWLCustomerUserConfigContext","useWLPriceLadderConfig","updateConfig","priceLadderConfig","priceLadderSymbolConfig","setPriceLadderSymbolConfig","symbolConfig","useWLMarketDataCardsConfig","marketDataCardsConfig","setMarketDataCardsConfig","newMarketDataCardsConfig","useWLLayoutArrangement","layoutArrangement","setLayoutArrangement","useWLSymbol","updateSymbol","newSymbol","useWLLayoutType","isConfigLoaded","orgConfig","isCustomerConfigLoaded","tradingLayout","LayoutType","SimpleRFQLayout","availableLayouts","layoutType","setLayoutType","useWLThemeType","themeType","allowThemeChange","themes","setThemeType","useWLHomeCurrency","setHomeCurrency","useWLPinSidebar","pinSidebar","setPinSidebar","useWLDefaultMarketAccount","defaultMarketAccount","setDefaultMarketAccount","WLExposuresContext","useWLExposuresContext","getExposurePercentage","NaN","padExposureZeroeValues","WLBuildCreditExposureInstancesWithSides","newExposureRecord","ExposureSide","WLExposuresProvider","sortedMarketAccounts","exposuresObs","ExposureSort","exposures","tap","exposureByMarketAccount","accMap","activeExposures","activeExposuresMap","hasExposures","currentExposure","currentExposurePercentage","WLFavoriteSecuritiesProvider","favoriteSecurites","BalanceDetails","SummaryLine","BalanceDetailsSummaryLine","baseBalance","quoteBalance","warnOnPositive","warnBase","warnQuote","availableCredit","openOrders","outstanding","CustomerBalanceDetails","baseAmount","baseAvailableAmount","baseCreditBalance","baseOutstandingBalance","pendingWithdrawal","quoteAmount","quoteAvailableAmount","quoteCreditBalance","quoteOutstandingBalance","baseOutstandingAmount","quoteOutstandingAmount","shouldUseOpenOrdersLabelForOutstandingBalance","availableAmountDetails","CustomerBalanceDetailsHeader","MaxAvailableWrapper","BalanceLabel","maxAvailable","MaxAvailable","IntervalInputWrapper","StyledInput","OptionsWrapper","OptionButtons","OptionsHeader","durationAndUnit","hoursAbbreviated","minutesAbbreviated","secondsAbbreviated","shortcutRegex","IntervalInput","_shortcuts","mh","minutesOrHours","fallbackUnit","u","handleUnitChange","handleNumberChange","maxSellAvailable","unableToRetrieveBalances","selectAccount","ADDITIONAL_SEARCH_KEYS","CustomerMarketAccountSelector","availableCustomerMarketAccounts","onChangeMarketAccount","CustomerMarketAccountResult","useCustomerMarketAccountResults","getMarketAccountLabel","hasBalances","tradableAccounts","getCustomerMarketAccountLabel","searchableItems","searchResultsSorter","aIndex","bIndex","numResults","FormattedPlural","other","MARKET_ACCOUNT_RESULT_HEIGHT","SlideItem","SlideContainer","FadedScrollableEdge","SlideSelector","setSelection","getId","selectedID","scrollState","setScrollState","updateScrollState","scrollContainer","scrollLeft","internalRef","internalScrollHandler","childId","getAttribute","scroll","DisplaySecurityWrapper","CurrencyPair","quoteCurrencies","showDisplaySymbol","showUnderlyingSymbols","CurrencyPairPart","showUnifiedLiquidity","currencyStr","StandardSecurityButton","GroupsPrefixWrapper","FavoritesButton","filterSymbolList","favorites","LIST_HEIGHT","groupOrder","SEARCH_KEYS","getGroupLabel","SymbolSelector","startOpen","onSymbolChanged","dropdownId","showGroups","centerBasicSelect","showFavorites","showSelectedSymbolDescription","favoriteSecuritiesSet","reversedList","recentSymbolIndex","maxRank","maxBy","groupsMetadata","useAutocompleteGroupSorter","groupsMap","g1","g2","g1Index","g2Index","renderGhostVariant","renderCurrencyPairVariant","renderBasicVariant","renderSearchVariant","toggleFavorite","isFavorite","newFavorites","FavoriteSymbol","renderFavoriteIcon","StarSolid","Star","handleFavoritesClick","FavoriteFilter","Reply","Basic","MemoizedSymbolSelector","SymbolSelectorComponent","mountKey","setMountKey","Container","QuickOptions","onOptionClick","tabbable","isOptionDisabled","labelIntlKey","isKeyIn","isMarketDataValid","optionValue","PriceQuickOptions","marketDataObs","priceInputMode","otherQuickOptionProps","handleOptionClicked","PriceOffsetBid","PriceOffsetOffer","priceToUse","PriceOffsetBPS","DEFAULT_PRICE_OPTIONS","PriceInput","quickOptions","contract","numContractEqualsValueCurrency","valuePercent","generateQtyQuickOptions","QuantityInput","allowCurrencyChange","allowQtyInContracts","allowedCurrencies","currencyDisabled","showQuickOptions","disableQuickOptions","onCurrencyChange","onQuickOptionClicked","handleChangeCurrency","data-currency","data-allowed-currencies","CurrencySelect","CurrencyButtons","getVariant","handleValueChange","showQuoteCurrency","VolumeLadderWrapper","Labels","LadderWrapper","Ladder","LadderStepSettings","Footer","BidLabel","SectionLabel","OfferLabel","LeftLabel","SpreadLabel","RightLabel","PriceValue","SizeValue","SpreadValue","Values","TruncatedBpsSpread","DisplayBps","RowWrapper","SpreadBars","BidSpreadBar","OfferSpreadBar","VolumeHeaderRow","MarketViewWrapper","TopOfBookWrapper","PriceButton","SpreadDisplay","SparklineWrapper","SettingsWrapper","SettingsContent","SparklineSettings","LadderSettings","BucketLabel","Bucket","SettingsHeader","SettingsFooter","Sparkline","customFill","customColor","showReferenceLines","setOpacity","High","Low","Volume","opens","highs","lows","closes","gradientID","startValue","adjustedMin","adjustedMax","fullRange","startPoint","minPoint","maxPoint","transparentColor","Sparklines","SparklinesCurve","SparklinesText","point","SparklinesReferenceLine","strokeOpacity","TopOfBook","topOfBookObservable","onClickRow","showSentiment","showSpread","bpsIncrement","topBid","topOffer","effectiveIncrement","bidSentiment","offerSentiment","pricePadding","isNarrow","handleClickBid","handleClickOffer","spreadBps","MarketView","marketDataObservable","sparklineDataObservable","OrderFormMarketView","ModifyOrderID","ModifyWrapper","sideCurrency","updateOrder","getQuotes","cancelQuote","optional","NewOrderForm","marketDataSnapshot","orderCcyField","parameterFields","handleStrategyParamChange","handleQuantityChange","handleOrderCurrencyChange","handleSideChange","handleMarketAccountChange","handleClearForm","handleTouchAll","handleTouchField","handleFormSubmit","_handleFormSubmit","balanceDetails","orderSummary","orderFormValid","orderViewType","pickQuoteView","balanceDetailsExpanded","setBalanceDetailsExpanded","handleOnQuickOptionClicked","percentage","FormParameterControl","orderCcy","curriedHandleTouchField","getStrategyLikeLabel","Ghost","enableTwoWayQuotes","CollapsibleFormSection","numSides","fieldKey","Line","Crossmark","SecuritySelectWrapper","RawInputWrapper","Preposition","CurrencySelectWrapper","inputItems","setInputItems","selectedCurrency","ccy","for","CurrencyPairSelector","setBaseCurrency","setQuoteCurrency","setInvalid","baseCurrencies","setBaseCurrencies","setCounterCurrencies","updateSecurity","baseCurrenciesMap","quoteCurrenciesMap","newQuoteCurrency","handleQuoteCurrency","handleBaseCurrency","preposition","prevDisabled","prevSide","prevSymbol","prevHomeCurrency","prevOnChange","nextDisabled","nextSide","nextSymbol","nextHomeCurrency","nextOnChange","chroma","hex","Buttons","SlippageWrapper","slippage","noBps","MAX_SLIPPAGE","DEFAULT_SLIPPAGES","CUSTOM_SLIPPAGE","SlippageControl","onApply","selectedSlippage","setSelectedSlippage","setIsValid","slippageLabelGetter","useSlippageLabelGetter","handleApply","isCustom","didChange","isInputValid","defaultSlippage","RemainingTimeWrapper","TimeBar","LoadingBar","TimeLabel","quoteExpired","durationInSeconds","RemainingTime","remainingTimeMs","setRemainingTimeMs","timeBarStyles","timeBarAnimation","ceil","QuoteButtons","QuotePrice","QuoteAmount","QuoteSpread","getQuoteSpreadDisplay","buyCurrency","sellCurrency","RFQForm","sending","useColoredButtonsForTwoWayQuotes","enableCurrencyPairSelector","showTwowaySpread","onFormChange","onFormSubmit","onFormClear","onAcceptQuote","onCancelQuote","onSymbolChange","marketAccountSelector","showOrderSlippage","setAllowedSlippage","handleAcceptQuote","runValidation","handleUpdateQty","handleUpdateCcy","handleUpdateSide","handleAllowedSlippage","ChangeAllowedSlippage","hasQuote","rejectedQuoteText","disableForm","expiredQuote","quoteSpread","BidPx","OfferPx","FormWarningType","FormWarningMessage","getRFQButtonVariant","BidAmt","OfferAmt","ValidUntilTime","isPercentParameterValue","isDateParameterValue","TradingLimitsContext","useMaxOrderSizeByKey","MATCHERS","CUSTOMER_USER","MARKET_ACCOUNT","COUNTERPARTY","SYMBOL","CURRENCY","RULES","createLimitMatcher","matcher","CustomerUser","createLimitKey","mapMaxOrderSizeLimits","byID","byKey","keyOfNewLimit","existingLimitResolvedFromKey","TradingLimitID","maxOrderSizeLimit","oldLimit","oldMatcher","oldKey","Update","WLTradingLimitsProvider","maxOrderSizeSubscription","maxOrderSizeObs","maxOrderSizeByKey","useWLTradingLimits","maxOrderSizeByKeyRef","useObservableRef","setCurrencies","limitCurrencies","homeCurrencyRates","useHomeCurrencyRatesValue","useHomeCurrencyRates","conversionRates","getMatchingCustomerTradeLimit","maxOrderSize","validationResult","matchingLimit","limitConversion","quantityConversion","sizeHomeCurrency","rejectLimitInHomeCurrency","warnLimitInHomeCurrency","useOMSDependencies","getStrategiesGivenSecurity","dispatcher","allCustomerMarketAccounts","tradableMarketAccountsSet","tradableMarketAccounts","omsReferenceDataState","setOrderSliceReferenceData","selectArchivedOrderIDSet","OrderService","webSocketClient","dismissesActionAfterTimeout","sessionOrdersObs","createActionPromise","clOrderID","expectedOrdStatus","complete","firstValueFrom","cancelOrder","requireSuccessfullyCanceled","EXEC_REPORT_RESPONSE_TIMEOUT_MS","pauseOrder","Action","resumeOrder","Resume","requestOrder","generateRequest","ReplaceRejected","formState","isModifyingOrderWithoutStrategy","getParameters","modifiedParameters","cleanParametersForOrder","currParameters","selectedStrategy","removeUnusedParameters","selectedParameters","formatDateParameters","dateValue","ErrorAction","GoodTillCancel","FillOrKill","clOrdId","modifyRequest","TimeInForce","shouldIgnoreDate","shouldIgnore","WLOrdersContext","useWLOrdersProvider","WLOrdersProvider","recentOrdersSub","months","mergeMap","ordersByOrdIDObs","recentOrders","orders","recentOrdersByOrdID","WLOrderServiceContext","useWLOrderServiceContext","React","RFQService","subscriptions","acceptQuote","QuoteReqID","rFQID","orderRequest","ClOrderID","report","requestQuote","quoteRequestData","quoteObs","quoteRequest","HideAPICalls","q","reqID","RFQServiceContext","useRFQServiceContext","useWLOrder","ordersByOrdID","cachedOrder","proposedCachedOrder","orderSub","fetchedOrder","proposedFetchedOrder","WLOrderFormProvider","getStrategiesBySymbol","WLUsersContext","useWLUsersContext","BreadcrumbWrapper","$isLast","elements","isLast","CardWrapper","Subtitle","algorithmCalcPoints","directionChange","childrenArea","plotX","plotY","plotWidth","plotHeight","keep","groupWidth","lastWidth","groupHeight","lastHeight","plot","elArr","newWidth","newHeight","Highcharts","correctFloat","addElement","TreemapAlgorithmGroup","startDirection","lastPoint","newRatio","lastRatio","useChartOptionsOverrides","seriesOptions","mergeAll","arrayMerge","DOMAIN","getColorScale","numberOfColors","lightScale","domain","baseScale","alternativeScale","STEPS","getSeriesId","series","useSeriesOptions","seriesObservable","chartRef","mergeSeriesUpdates","setSeriesOptions","newSeries","chart","serie","chartSerie","addPoint","useAxisZoomHandler","onAxisAfterSetExtremes","axisZoomed","setAxisZoomed","handleAxisAfterSetExtremes","axis","zoomingEnabled","userMax","userMin","dataMax","dataMin","HighchartsWrapper","ChartBlockingLoadingOverlay","showOverlay","seriesLabel","sunburst","highchartsMore","boost","coloraxis","treemap","seriesTypes","squarifiedWithPadding","parentHeight","parentWidth","parentX","parentY","pTot","pointAttribs","mapOptionsToLevel","stateOptions","getClassName","attr","dashstyle","borderDashStyle","brighten","brightness","drawPoints","renderer","styledMode","shadow","withinAnimationLimit","pointCount","animationLimit","allowTraversingTree","levelDynamic","animatableAttribs","attribs","hasGraphic","graphic","shapeArgs","shouldDraw","isInside","shouldAnimate","colorAttribs","survive","draw","imageUrl","shapeType","drillId","interactByLeaf","drillToByLeaf","drillToByGroup","allowedAttributes","showResetZoom","lang","numericSymbols","BaseChart","sizeAware","showOverlayWhenLoading","showLoadingCornerIcon","customOverlay","showNoData","customNoDataText","throttleResizing","onXAxisAfterSetExtremes","onYAxisAfterSetExtremes","onChartCreated","showResetZoomButton","onResetZoom","defaultOverrides","setLoaded","noData","setNoData","sizeObservable","reflow","xAxisZoomed","handleXAxisAfterSetExtremes","yAxisZoomed","handleYAxisAfterSetExtremes","dynamicOptions","events","xAxis","afterSetExtremes","yAxis","defaultChartOptions","useDefaultChartOptions","accessibility","zooming","mouseWheel","useUTC","font","subtitle","plotOptions","hover","candlestick","lineColor","upColor","upLineColor","bar","bubble","dataLabels","allowOverlap","textOutline","gridLineColor","gridLineWidth","minorGridLineColor","minorGridLineWidth","minorTickInterval","labels","tickColor","dateTimeLabelFormats","millisecond","second","minute","hour","week","year","lineWidth","tickWidth","legend","symbolPadding","symbolWidth","symbolHeight","symbolRadius","itemStyle","itemHoverStyle","credits","mergedOptions","cornerLoadingIconOverlay","container","handleCallback","HighchartsReact","highcharts","isZoomed","zoomOut","firstSeries","drillUp","ZoomReset","SunburstChart","setChartObject","defaultOptions","inactive","combinedOptions","Switch","defaultCase","matchingCase","Case","ChartTooltipValue","ChartTooltipWrapper","SunburstTooltip","dataPoints","getDataPointsForSeries","thisSeries","seriesData","userOptionsData","userOptions","rawData","dataPoint","dataPointObject","z","seriesXAxis","labelFormatter","defaultLabelFormatter","labelFormatterContext","isFirst","pos","tick","grouped","groupBy","groupTotal","sumBy","groupShare","allTotal","share","parentName","HOLE","renderCurrencyIcon","areRequiredFieldsSet","CustomerAddressCreator","enabledFields","showBackground","counterpartyOptions","effectiveAddressRoutingType","effectiveEnabledFields","effectiveRequiredFields","roundLeft","roundRight","CIRCLE_PROPERTIES","DonutChart","strokeColor","effectivePercent","EntityAdminDrawer","handleOnSaveEntity","handleOnDeleteEntity","allowAddEntity","allowEditEntity","addingChildEntity","drawerType","Panel","PanelHeader","PanelActions","PanelContent","EntityAdminPageTabsContext","EntityAdminPage","InputsAndDropdowns","entityName","panelActions","blotterTableFilters","openEntityDrawer","filtersContainerRef","tabsContext","useEntityAdminPageTabsContext","tabItems","inputComponent","tabItem","ENTITY_INTERNAL_ROW_ID","EntityPageClass","getField","entityIDField","childIDField","parentMap","parentKey","parentEntity","Proxy","entityID","childEntityID","isInherited","getEditColumn","Pencil","getDeleteColumn","getModeColumn","getAddChildEntityColumn","newEntity","getEntitiesByParentIDMap","applyInheritanceCellStyle","useEntityAdminPage","groupColumnDef","userTreeGroupColumnDef","_columns","apiEndpointOverride","blotterTableApiRef","allowModeSwitch","addChildEntityButtonProps","persistKey","getEditEntityName","_drawerOptions","getEntityDrawerOptions","sendNullForEmptyFields","postEntityInArray","getEntityForPost","getPostPath","userFilterFunc","filterFunc","getPatchDeletePath","setSelectedEntity","setAddingChildEntity","openDrawer","closeDrawer","useAppwideDrawerContext","orgApiEndpoint","getEntityDrawerTitle","setupEntity","setupIsChildEntity","childEntityName","closeEntityDrawer","onRowDoubleClicked","getRowStyle","getDataPath","filterResults","filterBuilderAccordion","filteredOut","filterPipe","useWSFilterPipe","filterFuncObs","subscriptionResponseType","instantiated","memoryOutput","takeUntil","changeObs","withLatestFrom","someEntityGoingFromInclusionToExclusion","initialNonFilteredResponse","parentMapRef","blotterTablePipe","treeDataProps","treeData","styledColumns","getPathWithApiEndpoint","postEntity","patchEntity","deleteEntity","handleOnUpdateEntity","updatedEntity","entityForPatch","mapValues","refresh","handleOnCreateNewEntity","colDefs","persistedTable","blotterTableProps","rowSelection","EntityAdminPageWS","wsRequest","entityAdminPage","blotterTableWS","MarketPart","StrategyPart","displayStrategy","ofCurrency","withCurrency","forCurrency","quoteSummary","SmartSummary","showSymbol","showPrice","showQty","showQtyCurrency","showSide","qtyField","showLastMarket","showStrategy","showPriceReference","showFixingDetails","getSideLabel","orderIncrements","underlyingSymbols","LastMarket","showFees","AtSymbol","PriceInlineFormatted","FixingDetails","Fixing","TradedSide","placedAmount","EntityPrice","getIconColor","ItemTrack","ItemContent","ItemHeaderDetails","Dl","Dt","Dd","FilledMeter","filledShare","progressBarColor","isMinimized","isContentExpanded","showMore","FilterInputWrapper","isActive","InputSuffix","FilterInput","alwaysExpanded","interacted","setInteracted","hasFocus","setHasFocus","AgGridStyleWrapper","unsavedChangesPrompt","FormTable","promptIfUnsavedChanges","formTable","isInvalid","filterPermissionActionHeader","Prompt","when","isDirty","stopEditingWhenCellsLoseFocus","suppressCellFocus","singleClickEdit","enableBrowserTooltips","popupParent","kbd","FlagLineContainer","supportedLocales","flag","LocaleSelector","handleUpdateLocale","newLocale","SetUILocale","Locale","l","isDraggable","SubHead","LeftSlot","CenterSlot","RightSlot","view","COMPACT","placeholderAnimation","summaryAnimation","MarketDataCard","ErrorBoundary","isVisibleRef","useInView","MarketDataCardComponent","MarketDataCardHeader","actionItems","activeOrder","renderClickToTradeConfirmation","slotFlexRule","bottomCenterItems","topCenterItems","topSubheader","topLeftItems","topRightItems","actionItemsRef","bottomCenterItemsRef","topCenterItemsRef","topLeftItemsRef","topRightItemsRef","MarketDataCardHeaderComponent","MenuContext","Menu","triggerContent","triggerIcon","triggerMinimal","triggerRound","triggerVariant","closeOnSelect","forwardedAs","NOTES_LOCAL_STORAGE_KEY","NotesContext","defaultStorage","slideIn","getVariantStyles","Announcement","pulse","random","OrderCardWrapper","SubTitle","Time","Summary","OrderSide","isBuy","isSell","OrderNumber","ProfitWrapper","MinTd","profit","OrderCardHeader","counterpartyName","customerFilled","OrderCardSummary","subAccountDetails","tableDetails","inlineFormattedNumberBg","renderedTableDetails","detail","getOrderSummaryRow","isCustomerRow","priceToDisplay","PowerSearchModalContext","PowerSearchHighlightContext","showPreview","boxHeight","SizeBar","TotalBar","Bid","Offer","HANDLE_SIZE","movementAndPlacementToSizeChange","movement","PercentageText","isFocusMode","$isSectionFocused","DistributionPart","indicatorWidth","$order","partPlacement","sidebarContextDefaultValues","isPinned","showSubNavItems","setPinned","setShowSubNavItems","SidebarContext","useSidebarContext","SidebarItem","hasSubNavItems","menuIndent","useLocation","getMainPath","handleNavClick","SidebarItemWrapper","NavLink","exact","Connector","ArrowRight","disableHoverStyles","getExpandedWidth","expandedWidth","SidebarWrapper","SideBarChildrenWrapper","SidebarContent","SidebarSection","SidebarHeaderWrapper","SidebarGroupWrapper","SidebarGroupItem","SidebarCurrentFeeTier","currentFeeTier","useRouteMatch","SidebarHeader","SidebarPinToggle","newPinnedState","SidebarPinned","SidebarUnpinned","PinSidebar","SwitchWrapper","ThemeToggle","onChangeThemeType","Moon","Theme","Sun","SidebarThemeToggle","ColorSwatch","Sidebar","initialPinned","hoverProps","barHeight","barBorderRadius","RCSlider","Stat","dl","StreamStatisticsBlotter","onShowMessages","showRecords","formatData","Inbox","NEVER","enableCellChangeFlash","dt","dd","DataTextArea","StreamDiagnosticsDialog","shownMessages","setShownMessages","setFilterText","onEnabledClick","evt","SymbolDisplayWrapper","SymbolDisplay","showJSON","jsonModal","customMixpanelEvent","selectedJsonItem","ShowJSON","float","timezone","library_path","widgetbar","details","watchlist","news","datawindow","watchlist_settings","default_symbols","studies_overrides","trading_customization","brokerConfig","configFlags","fullscreen","autosize","disabled_features","enabled_features","time_frames","client_id","user_id","charts_storage_api_version","intervals","chartTypes","indicators","drawingTools","setDebugMode","_innerAPI","onChartReady","_ready","_readyHandlers","headerReady","_innerWindowLoaded","_innerWindow","onGrayedObjectClicked","_doWhenInnerApiLoaded","onShortcut","_doWhenInnerWindowLoaded","createShortcutAction","getLanguage","_options","changeSymbol","_onWindowResize","_id","_iFrame","closePopupsAndDialogs","selectLineTool","selectedLineTool","save","saveChart","load","loadChart","extendedData","getSavedCharts","loadChartFromServer","saveChartToServer","removeChartFromServer","onContextMenu","createButton","createDropdown","showNoticeDialog","showConfirmDialog","showLoadChartDialog","showSaveAsChartDialog","symbolInterval","getSymbolInterval","mainSeriesPriceFormatter","getIntervals","getStudiesList","getStudyInputs","getStudyStyles","addCustomCSSFile","applyOverrides","applyStudiesOverrides","watchList","activeChart","activeChartIndex","setActiveChart","chartsCount","setLayout","layoutName","resetLayoutSizes","changeTheme","getTheme","takeScreenshot","lockAllDrawingTools","hideAllDrawingTools","drawOnAllChartsEnabled","drawOnAllCharts","magnetEnabled","magnetMode","undoRedoState","setIntervalLinkingEnabled","setDateRangeLinkingEnabled","setTimeFrame","symbolSync","intervalSync","crosshairSync","timeSync","dateRangeSync","setFeatureEnabled","getAllFeatures","clearUndoHistory","undo","redo","startFullscreen","exitFullscreen","takeClientScreenshot","navigationButtonsVisibility","getNavigationButtonsVisibility","paneButtonsVisibility","getPaneButtonsVisibility","dateFormat","getDateFormat","timeHoursFormat","getTimeHoursFormat","currencyAndUnitVisibility","getCurrencyAndUnitVisibility","supportedChartTypes","watermark","customSymbolStatus","setCSSCustomProperty","setProperty","getCSSCustomPropertyValue","unloadUnusedCharts","linking","tradingViewApi","contentWindow","doWhenApiIsReady","_autoResizeChart","_create","_render","widgetReady","initializationFinished","host","datafeed","customFormatters","custom_formatters","brokerFactory","broker_factory","studiesOverrides","tradingCustomization","disabledFeatures","enabledFeatures","broker_config","restConfig","numeric_formatting","rss_news_feed","rss_news_title","newsProvider","news_provider","loadLastChart","load_last_chart","saveLoadAdapter","save_load_adapter","loading_screen","settingsAdapter","settings_adapter","getCustomIndicators","custom_indicators_getter","additionalSymbolInfoFields","additional_symbol_info_fields","headerWidgetButtonsMode","header_widget_buttons_mode","customTranslateFunction","custom_translate_function","symbolSearchComplete","symbol_search_complete","contextMenu","context_menu","settingsOverrides","settings_overrides","timeframe","customTimezones","custom_timezones","customChartDescriptionFunction","custom_chart_description_function","saved_data","chartContent","saved_data_meta_info","chartContentExtendedData","iso","bundles","localeLanguage","htmlAttrs","libraryPath","Blob","createObjectURL","toolbar_bg","studies_access","drawings_access","charts_storage_url","custom_css_url","custom_font_family","auto_save_delay","snapshot_url","study_count_limit","symbol_search_request_delay","compare_symbols","time_scale","bind","log","TradingView","Chart","TV_TO_SUB_RESOLUTIONS","SUPPORTED_RESOLUTIONS","useTradingViewDatafeed","lastBar","onReady","supported_resolutions","searchSymbols","exchange","symbolType","onResult","resolveSymbol","symbolName","onResolve","pricescale","Intl","DateTimeFormat","resolvedOptions","timeZone","ticker","has_intraday","exchangeName","listed_exchange","minmov","minmove2","getBars","symbolInfo","periodParams","subResolution","bars","volume","meta","nextTime","subscribeBars","onTick","unsubscribeBars","TradingViewChart","tradingviewWidget","onResolutionChange","getChartId","chartId","onAutoSaveNeeded","handleIntervalChange","newInterval","intervalChangedSub","widgetOptions","widget","savedState","processedState","onIntervalChanged","getSeries","executeActionById","setChartStyleProperties","downColor","drawWick","drawBorder","borderUpColor","borderDownColor","wickColor","wickUpColor","wickDownColor","barColorsOnPrevClose","formatMarketData","bids","offers","midMarketPrice","bucket","bidSpread","offerSpread","maxSpreadStep","maxSpreadBps","validateBuckets","validateBucket","prevBucket","nextBucket","sparklineResolution","oneMinute","oneHour","resetBuckets","addSteps","buckets","volumeLadder","APPEAR_TRANSITION","Settings","showSettings","onChangeResolution","onChangeSizeBuckets","onResetSizeBuckets","setErrors","handleBucketChange","newSizeBuckets","handleAddBucket","handleRemoveBucket","isTall","HEIGHT_LIMIT","isShort","SHORT_HEIGHT_LIMIT","saveSettings","disclaimer","VolumeLadderHeader","onSettingsClick","onSaveSettings","disabledSymbolSelector","isCompact","showDisclaimer","hasErrors","Cog","getInputWidth","Row","onUpdateRow","bidSpreadBarWidth","getSpreadBarWidth","offerSpreadBarWidth","positiveSpread","truncatedBpsSpread","editingBucketData","setEditingBucketData","onKeyPress","handleEditSize","bucketSize","handleSaveSize","handleUpdateSize","isNonZeroNumericString","qty","VolumeLadderSteps","stepsObservable","maxSteps","LADDER_HEADER_HEIGHT","VolumeLadder","marketViewObservable","Placeholder","darkerBackground","FavoriteCell","CurrencyIconCell","SymbolCell","PriceCell","VolumeCell","ChangeCell","WatchListFiltersWrapper","WatchListWrapper","SearchWrapper","PercentChange","searchSymbol","DEFAULT_CURRENCIES","DEFAULT_LAYOUT","securityType","securityTypeFilterOptions","WatchlistFilters","onFilteredCurrenciesChange","onSecurityTypeChange","onShowOnlyFavorites","onSearchTextChange","searchText","selectableCurrencies","securityTypesOptions","deviceType","toggleOnlyFavorites","FilterWatchlist","dropdownItemProps","dropdownButtonProps","dropdownFilterProps","CalendarSpread","selectedCurrencies","toggleFilterProps","SearchComponent","SearchButton","setActive","useRenderedRows","renderedRowIds","setRenderedRowIds","filteredCallback","latestRenderedRowIds","getRenderedNodes","xor","REQUIRED_COLUMNS","useSecuritiesList","favoriteSecuritiesList","prevData","favorite","sparklineFill","colorPositive","colorNegative","colorDefault","svgHeight","svgWidth","ChangeCellRenderer","sparklineData","hasData","percentChange","deepDive","DeepDiveButton","Deepdive","DeepDiveButtonCellRenderer","FavoriteCellRenderer","handleToggleFavorite","onTouchEnd","marginTop","MarketPriceButtonCellRenderer","changeSentiment","MarketPriceCellRenderer","RefRateCellRenderer","currentPrice","prevPrice","hasPrices","trend","TrendUp","TrendDown","ReorderCellRenderer","registerRowDragger","draggerRef","Reorder","SecurityCellRenderer","hasSparklineData","shouldRenderPercentChange","columnWidth","getActualWidth","SpreadCellRenderer","SymbolCellRenderer","VolumeCellRenderer","VolumeHeader","volumeWindow","useColumns","getRank","rankComparator","enabledColumns","FAVORITES","availableColumns","paddingRight","columnChooserParams","suppressColumnFilter","suppressColumnSelectAll","suppressColumnExpandAll","filteredColumns","WatchList","extraGridOptions","setSearchText","Watchlist","updateSearchText","rowData","rank","rowNodeA","rowNodeB","MAX_VALUE","searchRegex","Perp","All","onRowDragMove","movingNode","overNode","movingSymbol","overSymbol","fromIndex","toIndex","newStore","moveInArray","applyColumnState","defaultState","setVolumeWindow","scrollbarWidth","alwaysShowVerticalScroll","suppressContextMenu","refreshHeader","suppressRowDrag","refRate","setGridApi","useDynamicRefRateSubscription","renderedRows","setRenderedRows","loadDataForRenderedRows","_event","refRatesSubscription","useRefRates","refRatesBySymbol","useRefRateContext","refRatesObservable","isWatchlistVisible","latestRefRates","iif","updates","prevRefRate","newRate","useDynamicSparklineSubscription","sparklinesObservable","useSparklinesData","sparklinesBySymbol","useSparklineContext","latestSparklines","sparkline","useDynamicMarketPriceSubscription","marketPricesSubscription","useMarketPrices","marketPricesObservable","latestMarketPrices","marketPrice","prevPrices","useFavoritesInGrid","prevFavorites","usePrevious","currFavoritesSet","prevFavoritesSet","ErrorBoundaryWrapper","ErrorTitle","getDerivedStateFromError","componentDidCatch","renderingError","componentStack","cause","LogoWrapper","LogoImg","img","logoUrl","src","alt","SupportWrapper","supportContacts","phone","telegram","website","SupportModal","supportTelegram","supportInfo","rel","LoginWrapper","Login","LoginContent","modalState","head","br","StrategiesProvider","byNameMap","DEPRECATED_ORDER_STRATEGIES","DEFAULT_ORDER_STRATEGIES","SupportedStrategies","SteadyPace","StopMarket","StopLimit","CustomerDepositWithdrawContext","useCustomerDepositWithdrawContext","getCustomerBalanceKey","cb","getCustomerAddressKey","AddressID","cancelOrderIdle","cancelingOrder","cancelOrderSuccess","cancelOrderFailed","tryAgain","return","GlobalCancelDialogContext","GlobalCancelDialog","dialogState","orderService","orderFormDispatch","CancelOrderDialog","orderSecurity","orderIsCanceled","CancelOrder","execReport","ShowFailedCancelOrderModal","alert","useGlobalCancelDialog","dialogReducer","MarketDataCardsContext","useMarketDataCards","MarketDataCardsProvider","defaultMarketDataCardsCollapsed","cardFilter","setCardFilter","isAddingCard","setIsAddingCard","isShowingPlaceholders","setIsShowingPlaceholders","cards","setCards","cardsAreDisplayed","setCardsAreDisplayed","cardsAreExpanded","card","detailsExpanded","showPlaceholderCards","hidePlaceholderCards","createCard","CreateMarketCard","activeSlideIndex","availableMarketAccounts","availableMarkets","topOfBookSizeBucket","moveCard","over","oldIndex","newIndex","MovedCard","ColumnIndex","arrayMove","saveCard","nextCard","UpdateMarketCard","deleteCard","DeleteCard","prevCard","ORDER_FORM","RFQ_FORM","DEFAULT_ORDER_FORM","OMSStateContext","DEFAULT_OMS_STATE","orderForm","archivedOrderIDs","OMSUtilsContext","DEFAULT_OMS_UTILS","archiveOrder","clearOrderForm","setOrderView","setRFQView","setOrderForm","initModifyOrder","initResubmitOrder","setSelectedClOrdID","useOMSStateContext","useOMSUtilsContext","OMSStateProvider","initialView","setView","setArchivedOrderIDs","selectedClOrdID","isSymbolInvalid","hasSecurities","firstSecurity","utils","updateOrderForm","newValues","orderId","currentView","newStrategy","WLOrderStrategy","formattedParameters","cleanParametersFromOrder","paramOptions","QuotesContext","useQuotesProvider","QuotesProvider","openQuotes","quotes","getRefRateStreamRequestForSymbol","getRefRateStreamRequestForAllSymbols","prevPricePoint","RefRateContextProvider","SparklineProvider","getOHCLVdata","ohclvCallback","usePreferredTheme","themeName","preferredType","preferredThemeType","getThemeFromType","preferredTheme","WatchlistSettingsContextProvider","watchlistConfig","updateWatchlistConfig","currentConfig","newConfig","EssentialProviders","wsProtocol","CustomerUserID","setUser","didForceSessionReplay","forceSessionReplay","startSessionReplayRecording","convertToCustomerMarketAccount","customerMarketAccountsBySourceAccountIDObs","customerMarketAccountsListObs","browserLocale","loadWLConfigSupportedLocales","allowedBrowserLocales","supportedLocaleValues","translations","localeSubtag","SharedIntlProvider","Providers","Config","Key","notes","setNotes","getDismissedNotes","storage","setDismissedNotes","addNote","note","noteStorage","removeNote","dismissedNotes","currenciesBySymbolObs","useCachedSubscription","isCacheLoading","setIsCacheLoading","hasSentFirstResponse","cachedRows","setCachedRows","wsSubscription","isWSSubLoading","isCachingEnabled","Unsupported","isCacheableRequest","records","latestRecordTimestamp","dateComparator","wsSub","responseWithCacheRecords","securitiesBySymbolObs","searchableSecuritiesObs","securitiesMap","recentSymbolsIndexMap","aRecencyWeighting","bRecencyWeighting","hasLoadedNow","dataset","perps","getPerpsFromSecurities","perpsByCurrencyPair","getPerpsByCurrencyPair","lookup","perp","currencyPair","list","futures","getFuturesFromSecurities","futuresByCurrencyPair","getFuturesByCurrencyPair","future","futuresByMarketByCurrency","getFuturesByMarketByCurrencyPair","futuresByMarketByCurrencyPair","expirationByMarket","expirationSet","expirationByMarketByCurrencyIdentity","getExpirationByMarketByCurrencyIdentity","UnderlyingCode","optionSecurityBySymbol","optionSecurityBySymbolObs","representativeOptionSecurityByKey","underlyingCode","strikesByOptionKey","getStrikesByOptionKey","baseMap","spotTradingPairsByBaseCurrency","quoteMap","spotTradingPairsByQuoteCurrency","getSpotTradingPairsByCurrency","spotSecurities","baseList","quoteList","users","setUsers","fetchUsers","refetchUsers","configRef","balanceSubscription","addressesSubscription","balanceObservable","addressesObservable","customerBalances","customerAddressesByAddressID","depositCustomerBalance","ClReqID","uuid4","Quantity","TxHashes","TxHash","ExternalComments","externalComments","withdrawCustomerBalance","contexts","externalComment","addressesEndpoint","decryptCustomerAddress","createCustomerAddress","addressDetails","isCurrenciesReady","isSecuritiesReady","isConfigReady","isUserReady","isCustomerConfigReady","isIntlReady","isUsersLoaded","isMarketAccountsLoaded","providersReady","setProvidersReady","disconnected","setDisconnected","scheme","placeSelf","paramsRef","dialog","StyledComponentsThemeProvider","service","useReducer","closeDialogTimeoutRef","cancelDialog","cancellationAttempted","contentSpec","setContentSpec","ALL_NAV_PATHS","ChartBarBox","checkRequiredPermissions","permissions","useNavigationItems","navigationItems","ni","requiredPermissions","navSidebarMessages","demoSettings","logOut","rfqLayout","support","apiSettings","addresses","feeTiers","NavigationSidebar","openDemoModal","openSupportModal","mainPath","pathData","sidebarTheme","NavigationBody","handleOnPinChange","ChangeSidebarPin","handleOpenSupportModal","OpenSupportModal","collapsedIcon","collapsedLogo","handleChangeLayout","ChangeLayout","handleThemeType","ChangeThemeType","navItems","showStreamDiagnostics","hideUserEmail","UserCircle","userInfo","NavPaths","navPaths","menuItems","Exit","Support","Logout","PresentationChartBar","allowLayoutChange","DeviceDesktop","isExternal","RestrictedIconWrapper","NoSecuritiesNotificationWrapper","useCurrentNavigationItem","reveal","noWalletAddress","noMemo","noDestinationTag","pleaseAwaitConfirmation","BlotterActions","BlotterWrapper","useCustomerMarketAccountsFilter","useOrdersFilter","persistedBlotterTable","saveFilter","prevFilter","clientSideFilter","filterExcludesOrderStatus","selectedOrderStatuses","ordStatusText","_statuses","customerMarketAccountsFilter","strategiesFilter","useStrategiesFilter","strategyObj","DocumentText","sidesFilter","orderStatusFilter","useOrderStatusFilter","symbolFilter","dateRangeFilter","blotterTableFilterProps","onlyServerFilterKeys","selectedFilterOrderStatuses","Statuses","orderStatusFilterTextToBackendStatus","ACTIVE_ORDER_STATUSES","ActiveOrdersRequest","HideApiCalls","modify","archive","resubmitOrder","COLUMNS","openGlobalCancelDialog","openOrderStatuses","handleArchiveOrder","ArchiveOrder","handleClickModifyOrder","OpenModifyOrder","OrdersBlotter","handleClickCancelOrder","handlePauseOrder","PauseOrder","handleResumeOrder","ResumeOrder","handleResubmitOrder","OpenResubmitOrder","isOpenOrder","DEFAULT_SORT","archiveAll","ActiveOrdersBlotter","maxRows","onStartLoading","onFinishedLoading","useActiveOrdersBlotter","useActiveOrdersBlotterColumn","filteredOrders","handleOnCellClicked","blotterRow","handleArchiveAllOrders","ClearAllOrders","DepositDialog","withdrawDialog","availableCurrenciesBySymbol","updateForm","handleCurrencyChange","newCurrency","newMarketAccount","handleOnChangeExternalComment","newExternalComment","newQuantity","handleTxHashChange","handleOnConfirm","marketAccountOptions","strong","OrderFormsWrapper","FeedbackMessage","addNew","availableToWithdraw","comment","unknownName","quantityExceedsAvailableBalance","cannotCreateAddressWithoutCurrency","couldNotCreateAddress","WithdrawDialog","removeToast","addingNewAddress","setAddingNewAddress","decryptedAddressCount","setDecryptedAddressCount","customerAddressesOfSelectedCurrency","decryptedAddressesOfSelectedCurrency","decryptedAddresses","RoutingInfo","requireWithdrawAddress","requireWithdrawalAddress","requireWithdrawComment","requireWithdrawalComment","maxAvailableBalance","amountWarning","handleMax","handleOnMarketAccountChange","handleOnChangeCurrency","handleOnChangeAmount","handleOnChangeAddress","handleAddNewCustomerAddress","handleCreateNewAddress","newAddressForm","AddressType","AddressRoutingType","WalletAddress","Memo","DestinationTag","useDateAndQuickTextFilter","valueHomeCurrency","generateRowID","balanceCompositeIDPipe","RowID","useBalancesBlotter","showZeroBalances","nodeValue","versionBy","filteredTrades","useBalancesFilter","localFilter","compositePipe","exportBalances","submitWithdrawRequest","BalancesBlotter","setShowZeroBalances","handleShowZeroBalances","ToggleShowZeroBalances","handleWithdraw","handleExportBalances","fileName","ExportBalances","useCreditExposuresBlotter","useCreditExposuresFilter","exportCredit","CreditExposuresBlotter","handleExportExposures","ExportCredit","useFundingEventsBlotter","filteredFundingEvents","useFundingEventsFilter","assetsFilter","useAssetsFilter","positionAssetsFilter","usePositionAsssetsFilter","exportEvents","FundingEventsBlotter","handleExportFundingEvents","ExportFundingEvents","useOrderHistoryBlotter","useOrderHistoryBlotterColumns","exportOrders","OrderHistoryBlotter","handleExportOrders","ExportOrders","usePositionsBlotter","filteredPositions","usePositionsFilter","exportPositions","PositionsBlotter","handleExportPositions","ExportPositions","useTradesBlotter","useTradesFilter","exportTrades","TradesBlotter","handleExportTrades","ExportTrades","notSpecified","useTransfersBlotter","useTransfersFilter","cancelPendingApprovalWithdrawalRequest","TransactionID","exportTransfers","submitDeposit","recordDeposit","TransfersBlotter","depositDialog","handleDeposit","handleExportTransfers","ExportTransactions","activeOrders","orderHistory","trades","credit","transfers","fundingEvents","positions","DEFAULT_BLOTTER_TABS","ActiveOrders","OrderHistory","Trades","Balances","Credits","Transfers","FundingEvents","Positions","TAB_TO_PERMISSION_LOOKUP_HASH","BlottersComponent","blotterTabs","setLoading","setStyle","blotterTabsLookupHash","blotterTab","mixpanelLabel","showExposureBlotter","SetBlotterTab","TabIndex","Blotter","useTimeoutFn","Blotters","CandleSticksWrapper","CandleSticksWrapperWithSymbolSelector","CandlesticksWithOMSSymbol","CandlesticksWithOwnSymbolSelector","defaultSymbol","ChangeSymbol","CandleSticks","Candlesticks","hasOwnSymbolSelector","yourCurrentFeeTierPrefix","generateApiKey","apiSecret","whitelistedIps","getApiSecret","ApiSecret","UserApiKeysFormTable","isSaving","setIsSaving","userApiKeys","setUserApiKeys","ApiKey","useFormTable","dirtyRowIds","deletedRowIds","domLayout","gridReady","dirtyRows","setDirtyRows","rowStatus","applyTransaction","addIndex","newDirtyRowIds","newDeletedRowIds","getRowStatus","didInitialReset","setDidInitialReset","handleCellValueChanged","noRowsOverlayComponentParams","handleSave","CustomerUserApiKeyID","allSettled","PORTAL_ID","setShowSettings","topOfBookSizes","setTopOfBookSizes","setSizeBuckets","initialSizeBuckets","setInitialSizeBuckets","setResolution","initialResolution","setInitialResolution","defaultSizeBuckets","history","useHistory","handleClickRow","ClickLadderRow","handleChangeSizeBuckets","ChangeSizeBuckets","handleResetSizeBuckets","handleChangeResolution","ChangeLadderResolution","handleSettingsClick","handleSaveSettings","handleChangeSymbol","BaseVolumeLadder","showSpreadOnVolumeLadder","baseCreditAmount","quoteCreditAmount","useOrderSummaryResponse","summaryProps","orderSummaryResponse","setOrderSummaryResponse","useBackendOrderSummary","OrderSummaryLine","estimatedTotal","estimatedFees","OrderSummary","homeCurrencyInfo","maybeLimitPrice","orderSummaryResponseProps","useEstimatedTotal","quantityCurrency","legSymbol","rateCurrency","isSpotProduct","quantityBig","useHomeCurrencyRateValue","useHomeCurrencyRate","counterCurrency","qtyIncrement","amtIncrement","showLimitPrice","hasOrderSummary","hasEstimateResponses","qtyNumber","amountNumber","limitPriceNumber","limitPriceCurrency","estimatedFeesNumber","Fee","estimatedFeesCurrency","FeeCurrency","estimatedTotalNumber","EstimatedTotal","estimatedTotalCurrency","estimatedTotalIncrement","OrderSummaryComponent","useLegacyFormValidation","fieldsDisabled","useOrderStartTime","formStartTime","setOrderStartTime","recalcStartTime","useOrderEndTime","formEndTime","setOrderEndTime","recalcEndTime","validSides","rejectionLimit","schema","nullable","typeError","oneOf","parametersSchema","getParameterValidationRule","parameterMetadata","object","shape","validationSchema","createError","mixed","validateSync","abortEarly","ValidationError","inner","SENDING","REQUESTING","REJECTED","CONFIRMED","QUOTE_REJECTED","RFQOrderForm","loadingState","setLoadingState","setClOrdID","setQuoteReqID","setFormSymbol","ordersSub","tIdRef","handleFormClear","handleRfqFormSubmit","SendRfq","AcceptRfqQuote","handleCancelQuote","CancelRfq","marketAccountBalances","handleMarketAccountUpdate","newMktAcc","ready","quoteRejected","confirmed","showSpreadOnRFQs","allowOrderSlippage","balancesMessages","totalBalances","MobileLabelMessages","trade","ladder","settings","MobileBlotter","titleKey","slideUp","ExecutionCardWrapper","attached","Section","ParametersSection","averageFillPrice","resubmit","ExecutionCard","onCancelOrder","onCloseCard","onModifyOrder","onArchiveOrder","onResubmitOrder","formattedParametersUnsorted","translatedLabel","WindowedExecutionCard","handleCancelOrder","handleModifyOrder","rowRef","ActiveOrdersList","resetAfterIndex","rowHeights","getRowHeight","itemData","AutoSizer","disableWidth","VariableSizeList","RecentOrdersList","orderCardsMessages","recent","useShouldRenderMobile","MessageWrapper","OmsToasts","PickQuoteView","rfqService","allowedSlippageBps","setAllowedSlippageBps","allowedSlippagePercent","getSideVariant","QuoteSideTSX","QuoteAmountTSX","OrderForms","NewOrderForms","sendingOrder","orderSent","orderFilled","orderUpdated","orderRejected","modifyRejected","cancelFailed","orderCanceled","continueConfirmation","thresholdWarning","warningThreshold","midPriceWarning","slowToRespondToast","useOrderDependencies","tradingLimitsProps","tradingLimitsValidationResult","maybeStartTime","maybeEndTime","startTimeValue","endTimeValue","onCountDownFinished","maybeQuote","sendRFQForm","sendOrderForm","ModifyOrder","SendOrder","setGlobalSymbol","OrderForm","marketDataSnapshotQuantity","marketDataSnapshotMarkets","maxOrderSizeDialog","midPriceDialog","midPriceToDisplay","setMidPriceToDisplay","midPrice","calculateMidPrice","bp","submitForm","shouldCheckReasonability","validateMidPriceDiff","allowedDiff","globalCancelDialog","currentQuote","confirmMidPrice","confirmMaxOrderSize","newConfirmation","updateConfirmation","updateRejected","newRejected","rfqExpired","cancelling","handleClickSubmitForm","OVERLAY_Z_INDEX","CLICKABLE_COLUMNS","watchlistSettings","BaseWatchList","watchListFilterCurrencies","WatchListScreen","securityRoute","onSecurityClicked","onBidClicked","onOfferClicked","MobileWatchList","ViewList","portrait","OrderFormsScreen","RFQFormScreen","OrderCardsScreen","OrderCards","recentOrdersObs","activeOrdersSub","unarchivedActiveOrders","selectedTab","setSelectedTab","Collection","BalancesScreen","wsScanToDoubleMap","getKey1","getKey2","newOuterMapEachUpdate","newInnerMapsEachUpdate","deleteInnerMapOnEmptied","outerMapAcc","outerMap","changedInnerMaps","key1","key2","shouldUpdateInnerMapThisUpdate","currentInnerMap","innerMap","accountsList","getColorVariations","numberOfItems","useHTML","levelSize","colorByPoint","useSunburstTooltip","omittedKeys","renderFunction","isPortrait","ChartDonut","TradesScreen","CreditScreen","TransfersScreen","requiredConfigs","OrdersScreen","SettingsScreen","LadderScreen","ChartScreen","CandleSticksWithSymbol","PresentationChartLine","tradingMobileScreens","SimpleRFQLayoutBlotterTabs","TradesBlotterTab","headerSymbolSelector","TOP","mobileScreens","ViewOnlySimpleRFQLayout","TradingLadderLayout","isOrderForms","shouldHandleEvent","cur","noDnd","parentElement","KeyboardSensor","DndKitKeyboardSensor","activators","PointerSensor","DndKitPointerSensor","DragHandle","VolumeLadderMarketViewWrapper","VolumeLadderStepsWrapper","FloatingDescription","oneMinAbbr","fiveMinAbbr","RESOLUTIONS","draggableAttributes","draggableListeners","onSaveCard","setQty","resolutionIndex","handleTOBSizeBucketBlur","handleTOBSizeBucketKeyPress","handleUpdateTOBSizeBucket","VolumeLadderMarketView","ensureNumberOfBuckets","numberOfBuckets","returnedBuckets","lastValidBucketSize","newBucketSize","setNodeRef","useSortable","CSS","Transform","handleUpdateRow","newBuckets","SharedMarketDataCard","AddButton","AddCard","MarketDataCardWrapper","MarketDataCardWrapperComponent","Cards","DroppableContainer","disableDrag","sensors","useSensors","useSensor","coordinateGetter","sortableKeyboardCoordinates","deletingCardConfig","setDeletingCardConfig","confirmDeleteCardDialog","draggingCardId","setDraggingCardId","handleClose","handleSymbolChanged","handleDeleteCard","confirmDeleteCard","DndContext","collisionDetection","closestCenter","SortableContext","rectSortingStrategy","MarketCard","Securities","renderCards","setRenderCards","hideTimer","useCards","CandlesticksAndMarketDataCardsArrangement","CandlesticksAndMarketDataCards","MarketDataCardsArrangement","MarketDataCards","SingleSymbolViewArrangement","SingleSymbolView","WMLayout1Arrangement","WMLayout1","data-no-dnd","WMLayout2Arrangement","WMLayout2","WatchlistAndMarketDataCardsArrangement","WatchlistAndMarketDataCards","WatchlistCandlesticksMarketDataCardsArrangement","WatchlistCandlesticksMarketDataCards","arrangements","ViewOnlyLayout","WatchListTradingLayout","RIGHT","LEFT","ViewOnlyLadderLayout","BlottersOnlyLayout","BalancesBlotterTab","SettingsLayout","AddressesLayout","Addresses","routingInfoMap","RevealRoutingInfoRenderer","EyeShow","firstRoutingInfo","FeeTiersLayout","FeeTiers","BalancesOnlyLayout","PortfolioLayout","TradingLayoutSpec","WatchListTradingLayoutSpec","TradingLadderLayoutSpec","SimpleRFQLayoutSpec","LayoutSpecs","tradingLayouts","DemoSettingsDialog","navigationOptions","layoutOptions","themeOptions","handleThemeChange","handleLayoutChange","exampleNavItems","EXAMPLE_NAV_ITEMS","layoutComponent","navigationType","orderFormToggle","ChartLine","ExternalLink","LayoutWrapper","PartsWrapper","PartWrapper","PartContent","MouseEventCapture","HorizontalHandle","VerticalHandle","Part","onMouseDown","resizing","collapsed","mounted","setMounted","handleMouseDown","handleTouchStart","noAppearance","BOTTOM","onTouchStart","PillBox","CreditUtilization","getAbbreviatedAmountByMarketAccount","useWLExposuresUtils","ExposureCurrency","CreditUtilizationTooltip","exposurePercentage","Users","FundingSchedule","fundingSchedule","showFundingSchedule","DEFAULT_ARRANGEMENT","useLayoutComponent","currentNavItem","layoutSpec","foundSpec","useSingleLayoutComponent","userConfigLayoutArrangement","siteConfigLayoutArrangement","useCurrentLayoutComponent","editLayout","singleSymbolView","marketDataCards","candlesticksAndMarketDataCards","watchlistAndMarketDataCards","watchlistCandlesticksMarketDataCards","EditLayoutButtonInner","arrangement","handleUpdateArrangement","newArrangement","newArrangementName","Template","EditLayoutButton","collapseCards","expandCards","ExpandCollapseCardsButton","cardsExpanded","toggleCards","expandCollapseCardsButton","HeaderContent","HeaderWrapper","showLocaleSelector","showSymbolSelector","formsOpen","setFormsOpen","headerTheme","headerThemeName","showOrderFormToggle","showCollapseCardButton","MobileHeaderWrapper","MobileHeader","onMenuClick","MobileTabBarWrapper","TabBarLink","MobileTabBar","incompleteOrders","MobileLayoutWrapper","MobileLayout","screens","authorizedScreens","tabBarItems","MobileGlobalStyles","Route","MobileSidebarMenu","sidebarMessages","NavigationDrawer","handleDrawerClose","UserMenu","showLayoutToggle","showThemeToggle","NavigationHeaderWrapper","NavigationHeader","sidebarToggle","drawerOpen","ti","hasNavItems","NavigationTabs","HEADER_CONTENT_HEIGHT","isNavSideBarMessage","handleResize","sizeChange","offsetSize","maxSize","layoutScrollSize","layoutOffsetSize","indexes","getRange","layoutWillOverflow","newSize","calculateNewSize","isTouchEvent","touches","isMouseEvent","movementX","movementY","LayoutPartComponent","isLefthandFormCollapsible","isRighthandFormCollapsible","mouseDown","Layout","partsWrapperRef","useResizableLayout","setColumns","setRows","setMouseDown","resizingElementRef","prevTouch","partsWrapperSize","handleMouseMove","MouseEvent","currentElement","currentPart","handleResizeRows","heightChange","touch","pageY","handleResizeColumns","widthChange","pageX","hasSidebar","NavigationTypes","hasDrawer","SidebarHeaderToggle","hasNavigatioHeader","CompactHeader","demoSettingsDialogState","navItem","Unauthorized","UnauthorizedContent","environment","initDatadog","applicationId","clientToken","proxy","startSessionReplayRecordingManually","isLocal","isProduction","commonConfiguration","site","env","useSecureSessionCookie","telemetrySampleRate","sessionSampleRate","compressIntakeRequests","allowFallbackToLocalStorage","trackUserInteractions","trackLongTasks","trackResources","sessionReplaySampleRate","beforeSend","consoleMethod","wasDiscarded","ignoredErrors","forwardErrorsToLogs","forwardConsoleLogs","setGlobalContextProperty","visibilityState","VITE_DATADOG_PROXY_URL","LicenseManager","setLicenseKey","rootElement","StrictMode","App","BrowserRouter","getCLS","getFID","getFCP","getLCP","getTTFB"],"sources":["../../../../../packages/kyoko/src/components/Icons/IconNames.ts","../../../../../packages/kyoko/src/tokens/mixpanel/index.ts","../../../../../packages/kyoko/src/types/types.ts","../../../../../packages/kyoko/src/components/Status/types.tsx","../../../../../packages/kyoko/src/types/OrderStrategy.ts","../../../../../packages/kyoko/src/utils/security.ts","../../../../../packages/kyoko/src/types/PricingMode.ts","../../../../../packages/kyoko/src/types/Auth.ts","../../../../../packages/kyoko/src/styles/themes/types.ts","../../../../../packages/kyoko/src/types/Direction.ts","../../../../../packages/kyoko/src/components/Popover/types.ts","../../../../../packages/kyoko/src/components/Alert/types.ts","../../../../../packages/kyoko/src/types/WarningSeverity/index.ts","../../../../../packages/kyoko/src/components/Form/types.ts","../../../../../packages/kyoko/src/components/Button/styles.tsx","../../../../../packages/kyoko/src/components/FormattedNumber/types.ts","../../../../../packages/kyoko/src/components/IndicatorBadge/styles.tsx","../../../../../packages/kyoko/src/types/Aggregation.ts","../../../../../packages/kyoko/src/tokens/card.ts","../../../../../packages/kyoko/src/tokens/customerOrderStrategies.ts","../../../../../packages/kyoko/src/tokens/heartbeats.ts","../../../../../packages/kyoko/src/tokens/socket.ts","../../../../../packages/kyoko/src/contexts/WatchlistSettingsContext.tsx","../../../../../packages/kyoko/src/components/IndicatorDot/styles.tsx","../../../../../packages/kyoko/src/types/ConnectionType.ts","../../../../../packages/kyoko/src/types/Exposure.ts","../../../../../packages/kyoko/src/types/CustomerUserConfigLayout.ts","../../../../../packages/kyoko/src/types/loanTypes.ts","../../../../../packages/kyoko/src/types/Order.ts","../../../../../packages/kyoko/src/types/OrderFormSides.ts","../../../../../packages/kyoko/src/types/PricingTier.ts","../../../../../packages/kyoko/src/types/SettlementPreview.ts","../../../../../packages/kyoko/src/types/SubAccountReconMatch.ts","../../../../../packages/kyoko/src/types/TreasuryLink.ts","../../../../../packages/kyoko/src/types/WLOrderStrategy.ts","../../../../../packages/kyoko/src/providers/types.ts","../../../../../packages/kyoko/src/hooks/useWLRoleAuth.tsx","../../../../../packages/kyoko/src/components/Tabs/types.tsx","../../../../../packages/kyoko/src/components/FuseResultMatch/types.ts","../../../../../packages/kyoko/src/components/BlotterTable/types.ts","../../../../../packages/kyoko/src/components/Tag/styles.ts","../../../../../packages/kyoko/src/components/TimePicker/TimePickerPrecision.ts","../../../../../packages/kyoko/src/components/DateRangePicker/dateRange.tsx","../../../../../packages/kyoko/src/components/LoaderTalos/index.tsx","../../../../../packages/kyoko/src/components/ProcessSteps/types.tsx","../../../../../packages/kyoko/src/components/Notification/types.tsx","../../../../../packages/kyoko/src/components/Drawer/utils.ts","../../../../../packages/kyoko/src/providers/AppwideDrawerProvider.tsx","../../../../../packages/kyoko/src/components/FormTable/types.ts","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/types.tsx","../../../../../packages/kyoko/src/components/Filters/ToggleButtonFilter/constants.tsx","../../../../../packages/kyoko/src/components/Table/types.ts","../../../../../packages/kyoko/src/components/MarketColor/types.tsx","../../../../../packages/kyoko/src/components/Status/LoanQuoteStatus.tsx","../../../../../packages/kyoko/src/components/Status/LoanStatus.tsx","../../../../../packages/kyoko/src/components/Status/LoanTransactionStatus.tsx","../../../../../packages/kyoko/src/components/Status/RecipientStatus.tsx","../../../../../packages/kyoko/src/components/DateTimeDurationPicker/index.tsx","../../../../../packages/kyoko/src/providers/RefDataCache.ts","../../../../../packages/kyoko/src/fields/BaseField.ts","../../../../../packages/kyoko/src/fields/NumericField.ts","../../../../../packages/kyoko/src/components/SymbolSelector/types.ts","../../../../../packages/kyoko/src/components/Charts/HighChartLayout.tsx","../../../../../packages/kyoko/src/components/Charts/Tooltip/types.ts","../../../../../packages/kyoko/src/components/DataTable/index.tsx","../../../../../packages/kyoko/src/components/EntityAdminPage/EntityAdminDrawer.tsx","../../../../../packages/kyoko/src/types/Status.tsx","../../../../../packages/kyoko/src/components/ExecutionTimeline/types.ts","../../../../../packages/kyoko/src/components/GridForm/types.ts","../../../../../packages/kyoko/src/components/Notes/types.ts","../../../../../packages/kyoko/src/components/PriceLadder/types.ts","../../../../../packages/kyoko/src/components/Resizer/useResizer.ts","../../../../../packages/kyoko/src/components/Accordion/AccordionGroup/AccordionGroupContext.tsx","../../../../../packages/kyoko/src/components/SymbolDisplay/index.tsx","../../../../../packages/kyoko/src/components/Watchlist/WatchListFilters.tsx","../../../src/components/OrderForms/index.tsx","../../../src/layouts/types.ts","../../../src/reportWebVitals.tsx","../../../../../packages/kyoko/src/init/datadog.ts","../../../../../packages/kyoko/src/utils/sugar.ts","../../../../../packages/kyoko/src/utils/array.ts","../../../../../packages/kyoko/src/utils/bufferedDispatcher.ts","../../../../../packages/kyoko/src/utils/composeComponents.tsx","../../../../../packages/kyoko/src/utils/connectionStatus.ts","../../../../../packages/kyoko/src/utils/cookies.ts","../../../../../packages/kyoko/src/utils/copyText.ts","../../../../../packages/kyoko/src/tokens/number.ts","../../../../../packages/kyoko/src/utils/logger.ts","../../../../../packages/kyoko/src/utils/number.tsx","../../../../../packages/kyoko/src/utils/creditAmount.ts","../../../../../packages/kyoko/src/utils/currency.ts","../../../../../packages/kyoko/src/utils/http.ts","../../../../../packages/kyoko/src/types/rest.ts","../../../../../packages/kyoko/src/utils/customerMarketAccounts.ts","../../../../../packages/kyoko/src/utils/date.ts","../../../../../packages/kyoko/src/utils/empty.ts","../../../../../packages/kyoko/src/utils/env.ts","../../../../../packages/kyoko/src/utils/fileExport.ts","../../../../../packages/kyoko/src/utils/feeMode.ts","../../../../../packages/kyoko/src/utils/isOrderComplete.ts","../../../../../packages/kyoko/src/utils/isOrderPaused.tsx","../../../../../packages/kyoko/src/utils/isOrderPending.ts","../../../../../packages/kyoko/src/utils/marketColor.ts","../../../../../packages/kyoko/src/utils/microseconds.ts","../../../../../packages/kyoko/src/types/ManualStrategy.ts","../../../../../packages/kyoko/src/utils/order.ts","../../../../../packages/kyoko/src/utils/notional.ts","../../../../../packages/kyoko/src/utils/multileg.ts","../../../../../packages/kyoko/src/utils/prettyPriceProtection.ts","../../../../../packages/kyoko/src/utils/pricingMode.ts","../../../../../packages/kyoko/src/contexts/IntlContext.tsx","../../../../../packages/kyoko/src/providers/IntlProvider.tsx","../../../../../packages/kyoko/src/utils/render.tsx","../../../../../packages/kyoko/src/utils/string.ts","../../../../../packages/kyoko/src/utils/timeUnits.ts","../../../../../packages/kyoko/src/utils/tryParseJSON.ts","../../../../../packages/kyoko/src/utils/types.ts","../../../../../packages/kyoko/src/utils/url.ts","../../../../../packages/kyoko/src/utils/ws.ts","../../../../../packages/kyoko/src/utils/index.ts","../../../../../packages/kyoko/src/styles/borders.ts","../../../../../packages/kyoko/src/styles/GlobalStyle.ts","../../../../../packages/kyoko/src/styles/cssVars.ts","../../../../../packages/kyoko/src/styles/layout.ts","../../../../../packages/kyoko/src/styles/media.ts","../../../../../packages/kyoko/src/styles/themes/hashTheme.ts","../../../../../packages/kyoko/src/styles/themes/hashThemeRunTime.tsx","../../../../../packages/kyoko/src/styles/themes/utils.ts","../../../../../packages/kyoko/src/styles/utils.ts","../../../../../packages/kyoko/src/styles/themes/BaseTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkTalosTheme.tsx","../../../../../packages/kyoko/src/styles/themes/LightTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightTalosTheme.tsx","../../../../../packages/kyoko/src/styles/themes/DarkConservativeTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkGradientsTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkTransparencyTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightConservativeTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightGradientsTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightTransparencyTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkAbraTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkAnchorageTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkArchaxTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkBCBTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkBinalokaTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkBitpandaTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkCanarySidebarTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkCanaryTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkCFTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkEtanaTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkGriffoDevTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkHextrustSidebarTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkISPTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkJanuarTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkKeyrockTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkNeoChainTheme.tsx","../../../../../packages/kyoko/src/styles/themes/DarkOneIOTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkOneLiquidityTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkPintuTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkPxTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkRainTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkSDMTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkSeliniCapitalTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkStablehouseTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkTDATheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkWintermute2Theme.ts","../../../../../packages/kyoko/src/styles/themes/DarkWintermuteTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkXeroFTheme.ts","../../../../../packages/kyoko/src/styles/themes/DarkZerocapTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightAbraTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightAnchorageTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightArchaxTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightBCBTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightBinalokaTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightBitpandaTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightCFTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightEtanaTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightGriffoDevTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightHextrustSidebarTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightISPTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightJanuarTheme.tsx","../../../../../packages/kyoko/src/styles/themes/LightKeyrockTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightNeoChainTheme.tsx","../../../../../packages/kyoko/src/styles/themes/LightOneIOTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightOneLiquidityTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightPintuTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightPxTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightRainTheme.tsx","../../../../../packages/kyoko/src/styles/themes/LightSDMTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightSeliniCapitalTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightStablehouseTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightTDATheme.ts","../../../../../packages/kyoko/src/styles/themes/LightWintermute2Theme.ts","../../../../../packages/kyoko/src/styles/themes/LightWintermuteTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightXeroFTheme.ts","../../../../../packages/kyoko/src/styles/themes/LightZerocapTheme.ts","../../../../../packages/kyoko/src/components/Core/Box.tsx","../../../../../packages/kyoko/src/components/Core/Flex.tsx","../../../../../packages/kyoko/src/components/Core/Grid.tsx","../../../../../packages/kyoko/src/components/Core/HStack.tsx","../../../../../packages/kyoko/src/components/Core/VStack.tsx","../../../../../packages/kyoko/src/components/Text/index.tsx","../../../../../packages/kyoko/src/components/AbbrLimit/index.tsx","../../../../../packages/kyoko/src/components/Accordion/AccordionContext.tsx","../../../../../packages/kyoko/src/components/Accordion/Accordion.tsx","../../../../../packages/kyoko/src/hooks/useDynamicCallback.ts","../../../../../packages/kyoko/src/hooks/useElementSize.tsx","../../../../../packages/kyoko/src/components/Accordion/styles.tsx","../../../../../packages/kyoko/src/components/Accordion/AccordionBody.tsx","../../../../../packages/kyoko/src/hooks/useMatchMedia.tsx","../../../../../packages/kyoko/src/hooks/useDeviceType.tsx","../../../../../packages/kyoko/src/providers/OverridePopoverPropsProvider.tsx","../../../../../packages/kyoko/src/components/Form/Dropdown/DropdownContext.tsx","../../../../../packages/kyoko/src/contexts/PortalContext.tsx","../../../../../packages/kyoko/src/hooks/usePortal.tsx","../../../../../packages/kyoko/src/components/Portal/index.tsx","../../../../../packages/kyoko/src/components/Modal/styles.tsx","../../../../../packages/kyoko/src/hooks/useEventListener.ts","../../../../../packages/kyoko/src/hooks/useForwardedRef.ts","../../../../../packages/kyoko/src/components/Form/Dropdown/tokens.tsx","../../../../../packages/kyoko/src/hooks/useOnClickOutside.tsx","../../../../../packages/kyoko/src/components/Modal/index.tsx","../../../../../packages/kyoko/src/components/Popover/styles.tsx","../../../../../packages/kyoko/src/components/Popover/index.tsx","../../../../../packages/kyoko/src/components/Tooltip/index.tsx","../../../../../packages/kyoko/src/components/Icons/Icon.tsx","../../../../../packages/kyoko/src/components/Icons/HelpIcon.tsx","../../../../../packages/kyoko/src/components/Alert/styles.ts","../../../../../packages/kyoko/src/components/Alert/index.tsx","../../../../../packages/kyoko/src/components/Icons/WarningSeverityIcon.tsx","../../../../../packages/kyoko/src/components/Accordion/AccordionTable/styles.tsx","../../../../../packages/kyoko/src/components/Checkmark/styles.tsx","../../../../../packages/kyoko/src/components/Checkmark/index.tsx","../../../../../packages/kyoko/src/components/Spinner/styles.tsx","../../../../../packages/kyoko/src/components/Spinner/index.tsx","../../../../../packages/kyoko/src/components/Form/utils.tsx","../../../../../packages/kyoko/src/components/Button/utils.tsx","../../../../../packages/kyoko/src/components/Button/Button.tsx","../../../../../packages/kyoko/src/components/Button/ButtonGroup/styles.tsx","../../../../../packages/kyoko/src/components/Button/IconButton/styles.tsx","../../../../../packages/kyoko/src/components/Button/IconButton/index.tsx","../../../../../packages/kyoko/src/components/Button/NavButton/index.tsx","../../../../../packages/kyoko/src/components/FormattedNumber/styles.tsx","../../../../../packages/kyoko/src/components/Button/QuoteButton/index.tsx","../../../../../packages/kyoko/src/components/Button/ToggleButton/index.tsx","../../../../../packages/kyoko/src/components/Intl/FormattedMessage.tsx","../../../../../packages/kyoko/src/hooks/useConstant.ts","../../../../../packages/kyoko/src/components/Accordion/useAccordion.tsx","../../../../../packages/kyoko/src/components/Form/styles.tsx","../../../../../packages/kyoko/src/components/Form/Input/styles.tsx","../../../../../packages/kyoko/src/components/Form/Input/Input.tsx","../../../../../packages/kyoko/src/utils/setNativeValue.ts","../../../../../packages/kyoko/src/components/Form/NumberInput/useNumberInput.tsx","../../../../../packages/kyoko/src/components/Forms/useAmountInput.tsx","../../../../../packages/kyoko/src/components/Forms/AmountInput/index.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridAmountInput.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridButton.tsx","../../../../../packages/kyoko/src/components/IndicatorBadge/IndicatorBadge.tsx","../../../../../packages/kyoko/src/components/IndicatorBadge/IndicatorBadgeWrapper.tsx","../../../../../packages/kyoko/src/components/Form/AutocompleteDropdown/styles.tsx","../../../../../packages/kyoko/src/components/Form/Autocomplete/tokens.tsx","../../../../../packages/kyoko/src/components/Form/Autocomplete/AutocompleteResults.tsx","../../../../../packages/kyoko/src/hooks/currencyColors/currencyColors.ts","../../../../../packages/kyoko/src/hooks/currencyColors/getCurrencyColor.tsx","../../../../../packages/kyoko/src/pipes/creditExposuresCompositeIDPipe.ts","../../../../../packages/kyoko/src/pipes/utils.ts","../../../../../packages/kyoko/src/pipes/testutils.ts","../../../../../packages/kyoko/src/pipes/wsPaginationLimiter.ts","../../../../../packages/kyoko/src/pipes/wsScanToMap.ts","../../../../../packages/kyoko/src/tokens/requestTypes.ts","../../../../../packages/kyoko/src/types/Analytics/BidAskSpread.ts","../../../../../packages/kyoko/src/types/Analytics/MarketOrderOutcome.ts","../../../../../packages/kyoko/src/types/Analytics/NumExecutions.ts","../../../../../packages/kyoko/src/types/Analytics/NumOrders.ts","../../../../../packages/kyoko/src/types/Analytics/OrdersSummary.ts","../../../../../packages/kyoko/src/types/Analytics/PostTradeOrderAnalytics.ts","../../../../../packages/kyoko/src/types/Analytics/Slippage.ts","../../../../../packages/kyoko/src/types/Analytics/TotalTradingVolume.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/getAgGridColId.ts","../../../../../packages/kyoko/src/types/AssetTransaction.ts","../../../../../packages/kyoko/src/contexts/AggregationsContext.tsx","../../../../../packages/kyoko/src/contexts/AuthContext.tsx","../../../../../packages/kyoko/src/hooks/useObservable.tsx","../../../../../packages/kyoko/src/contexts/BalancesContext.tsx","../../../../../packages/kyoko/src/contexts/ConnectionStatusContext.tsx","../../../../../packages/kyoko/src/contexts/CurrenciesContext.tsx","../../../../../packages/kyoko/src/contexts/CurrencyConversionContext.tsx","../../../../../packages/kyoko/src/contexts/EndpointsContext.tsx","../../../../../packages/kyoko/src/contexts/FavoriteSecuritiesContext.tsx","../../../../../packages/kyoko/src/contexts/HomeCurrencyContext.tsx","../../../../../packages/kyoko/src/contexts/MarketAccountCurrenciesContext.tsx","../../../../../packages/kyoko/src/contexts/MarketAccountsContext.tsx","../../../../../packages/kyoko/src/contexts/MarketPriceContext.tsx","../../../../../packages/kyoko/src/contexts/MarketsContext.tsx","../../../../../packages/kyoko/src/contexts/MixpanelSourceContext.tsx","../../../../../packages/kyoko/src/contexts/MixpanelContext.tsx","../../../../../packages/kyoko/src/contexts/OrganizationContext.tsx","../../../../../packages/kyoko/src/contexts/RecentSymbolsContext.tsx","../../../../../packages/kyoko/src/contexts/RefRateContext.tsx","../../../../../packages/kyoko/src/contexts/SecuritiesContext.tsx","../../../../../packages/kyoko/src/contexts/SparklineContext.tsx","../../../../../packages/kyoko/src/contexts/StrategiesContext.tsx","../../../../../packages/kyoko/src/contexts/UnderlyingPriceContext.tsx","../../../../../packages/kyoko/src/contexts/UserContext.tsx","../../../../../packages/kyoko/src/hooks/useCountdownTime.ts","../../../../../packages/kyoko/src/hooks/useIntlContext.tsx","../../../../../packages/kyoko/src/hooks/useIntl.ts","../../../../../packages/kyoko/src/components/IndicatorDot/index.tsx","../../../../../packages/kyoko/src/components/Status/styles.tsx","../../../../../packages/kyoko/src/components/Status/OrderStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/columnHeaderTranslations.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/baseColumn.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/filledPercent.tsx","../../../../../packages/kyoko/src/types/CareOrder.ts","../../../../../packages/kyoko/src/types/CustomerBalance.ts","../../../../../packages/kyoko/src/types/CustomerExecutionReport.ts","../../../../../packages/kyoko/src/types/CustomerOrderSummary.ts","../../../../../packages/kyoko/src/types/CustomerOrder.ts","../../../../../packages/kyoko/src/types/CustomerQuote.ts","../../../../../packages/kyoko/src/types/Position.ts","../../../../../packages/kyoko/src/types/FutureSecurity.ts","../../../../../packages/kyoko/src/types/HedgeOrderStatus.ts","../../../../../packages/kyoko/src/types/LedgerEvent.ts","../../../../../packages/kyoko/src/types/LoanQuote.ts","../../../../../packages/kyoko/src/types/MarketDataCard.ts","../../../../../packages/kyoko/src/types/MarketExecutionReport.ts","../../../../../packages/kyoko/src/types/MarketTrade.ts","../../../../../packages/kyoko/src/types/OptionSecurity.ts","../../../../../packages/kyoko/src/types/PerpSecurity.ts","../../../../../packages/kyoko/src/types/Quote.ts","../../../../../packages/kyoko/src/types/ReconMismatch.ts","../../../../../packages/kyoko/src/types/ReconStatus.ts","../../../../../packages/kyoko/src/types/Security.ts","../../../../../packages/kyoko/src/types/SubAccountWindowLimit.ts","../../../../../packages/kyoko/src/types/SubscriptionResponse.ts","../../../../../packages/kyoko/src/types/Trade.ts","../../../../../packages/kyoko/src/types/Transfer.ts","../../../../../packages/kyoko/src/utils/truncateBlockchainAddress.ts","../../../../../packages/kyoko/src/pipes/wsSubscriptionMemory.ts","../../../../../packages/kyoko/src/pipes/wsSubscriptionCache.ts","../../../../../packages/kyoko/src/hooks/useBehaviorSubject.tsx","../../../../../packages/kyoko/src/hooks/useCountdownAction.ts","../../../../../packages/kyoko/src/hooks/useCurrency.tsx","../../../../../packages/kyoko/src/hooks/useCurrencyConversionRate.tsx","../../../../../packages/kyoko/src/providers/WLOrgConfigProvider.tsx","../../../../../packages/kyoko/src/hooks/useSessionStorage.tsx","../../../../../packages/kyoko/src/providers/subscription.ts","../../../../../packages/kyoko/src/types/CareExecutionReport.ts","../../../../../packages/kyoko/src/types/MarketOrder.ts","../../../../../packages/kyoko/src/types/MarketQuote.ts","../../../../../packages/kyoko/src/types/ExecutionReport.ts","../../../../../packages/kyoko/src/types/Customer.ts","../../../../../packages/kyoko/src/types/CustomerTrade.ts","../../../../../packages/kyoko/src/types/FixingIndex.ts","../../../../../packages/kyoko/src/types/MarketFixingIndex.ts","../../../../../packages/kyoko/src/types/CustomerUser.ts","../../../../../packages/kyoko/src/types/CustomerTradingLimit.ts","../../../../../packages/kyoko/src/types/BuyingPower.ts","../../../../../packages/kyoko/src/types/TradeSettleReport.ts","../../../../../packages/kyoko/src/providers/WebSocketClient.ts","../../../../../packages/kyoko/src/providers/WebSocketClientProvider.tsx","../../../../../packages/kyoko/src/hooks/usePageVisibility.ts","../../../../../packages/kyoko/src/hooks/useSubscription.ts","../../../../../packages/kyoko/src/hooks/useCurrentFeeTier.ts","../../../../../packages/kyoko/src/hooks/useDisclosure.ts","../../../../../packages/kyoko/src/hooks/useElementId.tsx","../../../../../packages/kyoko/src/hooks/useEstimatedAmount.tsx","../../../../../packages/kyoko/src/components/FormattedNumber/InlineFormattedNumberContext.tsx","../../../../../packages/kyoko/src/components/FormattedNumber/InlineFormattedNumber.tsx","../../../../../packages/kyoko/src/components/FormattedNumber/StackedFormattedNumber.tsx","../../../../../packages/kyoko/src/hooks/useFlashSentiment.tsx","../../../../../packages/kyoko/src/hooks/useStaticSubscription.ts","../../../../../packages/kyoko/src/providers/WLCustomerMarketAccountsProvider.tsx","../../../../../packages/kyoko/src/hooks/useGetCustomerMarketAccountLabel.tsx","../../../../../packages/kyoko/src/hooks/useGetStrategyLikeLabel.ts","../../../../../packages/kyoko/src/hooks/useOHLCData.tsx","../../../../../packages/kyoko/src/hooks/useHistoricalPrices.ts","../../../../../packages/kyoko/src/hooks/useOnKeyPress.tsx","../../../../../packages/kyoko/src/components/JsonModal/styles.tsx","../../../../../packages/kyoko/src/components/JsonModal/index.tsx","../../../../../packages/kyoko/src/hooks/useJsonModal.tsx","../../../../../packages/kyoko/src/hooks/useSecurity.tsx","../../../../../packages/kyoko/src/hooks/useMarketDataSnapshot.tsx","../../../../../packages/kyoko/src/hooks/useMaxBalance.tsx","../../../../../packages/kyoko/src/hooks/useMouseHover.ts","../../../../../packages/kyoko/src/hooks/useNamedState.tsx","../../../../../packages/kyoko/src/hooks/useMultipleStreamsSubscription.tsx","../../../../../packages/kyoko/src/hooks/useOrderIncrements.tsx","../../../../../packages/kyoko/src/hooks/useOverflowHandler/isTextEllipsized.ts","../../../../../packages/kyoko/src/hooks/usePreferredColorScheme.tsx","../../../../../packages/kyoko/src/hooks/useRoleAuth.ts","../../../../../packages/kyoko/src/hooks/useScreenOrientation.tsx","../../../../../packages/kyoko/src/providers/UnifiedLiquidityProvider.tsx","../../../../../packages/kyoko/src/components/Forms/FormBalances/hooks.tsx","../../../../../packages/kyoko/src/hooks/useWLEffectiveMaxBalance.ts","../../../../../packages/kyoko/src/providers/WLUserContextProvider.tsx","../../../../../packages/kyoko/src/hooks/useWLTradableCustomerMarketAccounts.ts","../../../../../packages/kyoko/src/components/Tabs/styles.ts","../../../../../packages/kyoko/src/components/Tabs/TabEditor.tsx","../../../../../packages/kyoko/src/components/Tabs/NavTab.tsx","../../../../../packages/kyoko/src/components/Tabs/Tab.tsx","../../../../../packages/kyoko/src/components/Tabs/TabButton.tsx","../../../../../packages/kyoko/src/components/Tabs/Tabs.tsx","../../../../../packages/kyoko/src/components/Tabs/TabList.tsx","../../../../../packages/kyoko/src/components/Tabs/TabPanels.tsx","../../../../../packages/kyoko/src/components/Tabs/TabsStorage.tsx","../../../../../packages/kyoko/src/providers/DialogProvider.tsx","../../../../../packages/kyoko/src/components/Tabs/useTabs.ts","../../../../../packages/kyoko/src/components/Form/AutocompleteDropdown/types.ts","../../../../../packages/kyoko/src/components/Form/Autocomplete/utils.ts","../../../../../packages/kyoko/src/components/Form/Autocomplete/useAutocomplete.tsx","../../../../../packages/kyoko/src/components/PopperHeader/PopperHeader.tsx","../../../../../packages/kyoko/src/components/Form/Dropdown/styles.tsx","../../../../../packages/kyoko/src/components/Form/Dropdown/Dropdown.tsx","../../../../../packages/kyoko/src/components/Form/AutocompleteDropdown/AutocompleteDropdown.tsx","../../../../../packages/kyoko/src/components/Form/Checkbox/styles.tsx","../../../../../packages/kyoko/src/components/Form/Checkbox/index.tsx","../../../../../packages/kyoko/src/components/FuseResultMatch/styles.tsx","../../../../../packages/kyoko/src/components/FuseResultMatch/index.tsx","../../../../../packages/kyoko/src/components/Form/AutocompleteDropdown/FuseAutocompleteResult.tsx","../../../../../packages/kyoko/src/components/Form/AutocompleteDropdown/CheckboxFuseAutocompleteDropdown.tsx","../../../../../packages/kyoko/src/components/Form/AutocompleteGroupDropdown/styles.tsx","../../../../../packages/kyoko/src/components/Form/BaseSelect/styles.tsx","../../../../../packages/kyoko/src/components/Form/BaseSelect/BaseSelect.tsx","../../../../../packages/kyoko/src/components/AgGrid/agGridGetCellValue.ts","../../../../../packages/kyoko/src/components/BlotterTable/utils.ts","../../../../../packages/kyoko/src/components/Forms/styles.tsx","../../../../../packages/kyoko/src/components/Form/CollapsibleFormSection/CollapsibleFormSection.tsx","../../../../../packages/kyoko/src/components/Form/Dropdown/useDropdownPopper.tsx","../../../../../packages/kyoko/src/components/DayPicker/index.tsx","../../../../../packages/kyoko/src/components/DateTimeDurationPicker/styles.tsx","../../../../../packages/kyoko/src/components/DateTimePicker/styles.tsx","../../../../../packages/kyoko/src/components/Form/Autocomplete/styles.tsx","../../../../../packages/kyoko/src/components/Tag/index.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/styles.tsx","../../../../../packages/kyoko/src/components/Form/SearchSelect/styles.tsx","../../../../../packages/kyoko/src/components/Form/Select/styles.tsx","../../../../../packages/kyoko/src/components/Form/TextArea/styles.tsx","../../../../../packages/kyoko/src/components/Form/FormGroup/styles.tsx","../../../../../packages/kyoko/src/components/Form/FormGroup/OverflowFormMessage.tsx","../../../../../packages/kyoko/src/hooks/useOverflowHandler/useOverflowHandler.tsx","../../../../../packages/kyoko/src/components/Form/FormGroup/index.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/MultiSelectInput.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/useMultiselectAutocomplete.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/MultiSelect.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/useRenderMultiSelectSelection.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/styles.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/DropdownResultsHeader.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/FilterCheckboxDropdown.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/tokens.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelect/useMultiSelectSelectionManager.tsx","../../../../../packages/kyoko/src/components/Form/MultiSelectCheckboxDropdown/MultiSelectCheckboxDropdown.tsx","../../../../../packages/kyoko/src/components/Form/NumberInput/index.tsx","../../../../../packages/kyoko/src/components/Form/RadioButton/styles.tsx","../../../../../packages/kyoko/src/components/Form/RadioButton/index.tsx","../../../../../packages/kyoko/src/components/Form/SearchSelect/useSearchSelect.tsx","../../../../../packages/kyoko/src/components/Form/SearchSelect/SearchSelect.tsx","../../../../../packages/kyoko/src/components/Form/TextArea/index.tsx","../../../../../packages/kyoko/src/components/Form/Toggle/styles.tsx","../../../../../packages/kyoko/src/components/Form/Toggle/index.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridCheckbox.tsx","../../../../../packages/kyoko/src/components/CurrencyIcon/imports.tsx","../../../../../packages/kyoko/src/components/CurrencyIcon/map.tsx","../../../../../packages/kyoko/src/components/CurrencyIcon/index.tsx","../../../../../packages/kyoko/src/components/CurrencyRenderer/index.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridCurrency.tsx","../../../../../packages/kyoko/src/components/Divider/index.tsx","../../../../../packages/kyoko/src/components/TimePicker/styles.tsx","../../../../../packages/kyoko/src/components/TimePicker/index.tsx","../../../../../packages/kyoko/src/components/TimeSelector/utils.ts","../../../../../packages/kyoko/src/components/TimeSelector/useTimeSelectorValidation.tsx","../../../../../packages/kyoko/src/components/TimeSelector/TimeSelector.tsx","../../../../../packages/kyoko/src/components/DateRangePicker/deserializeDateRange.tsx","../../../../../packages/kyoko/src/components/DateRangePicker/index.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridDateFilter.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridDefaultHeaderTooltip.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridFilterPermissionActionHeader.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridFormattedNumber.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridFullWidthGroupRow.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridGroupToggleHeader.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridHamburgerMenu.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridIconButton.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridInput.tsx","../../../../../packages/kyoko/src/components/LoaderTalos/styles.ts","../../../../../packages/kyoko/src/components/AgGrid/AgGridLoadingOverlay.tsx","../../../../../packages/kyoko/src/components/Meter/styles.tsx","../../../../../packages/kyoko/src/components/Meter/index.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridMeter.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridMultiSelectDropdown.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridNoRowsOverlay.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridPrice.tsx","../../../../../packages/kyoko/src/components/ProcessSteps/styles.tsx","../../../../../packages/kyoko/src/components/ProcessSteps/StepConnection.tsx","../../../../../packages/kyoko/src/components/ProcessSteps/StepIcon.tsx","../../../../../packages/kyoko/src/components/ProcessSteps/ProcessSteps.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridProcessStep.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridSearchSelectDropdown.tsx","../../../../../packages/kyoko/src/components/DDH/DDHOrderIcon.tsx","../../../../../packages/kyoko/src/components/SecurityRenderer/styles.tsx","../../../../../packages/kyoko/src/components/SecurityRenderer/index.tsx","../../../../../packages/kyoko/src/components/Tour/TourContext.tsx","../../../../../packages/kyoko/src/components/Tour/Tour.tsx","../../../../../packages/kyoko/src/components/Tour/useTour.tsx","../../../../../packages/kyoko/src/components/UnifiedLiquidity/UnifiedLiquidityTooltip.tsx","../../../../../packages/kyoko/src/components/AgGrid/types.ts","../../../../../packages/kyoko/src/components/AgGrid/AgGridSecurity.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridSize.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridToggle.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridTooltipHeader.tsx","../../../../../packages/kyoko/src/components/AgGrid/AgGridWarning.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/warning.types.ts","../../../../../packages/kyoko/src/components/AgGrid/AgGridWarningHeader.tsx","../../../../../packages/kyoko/src/components/AgGrid/Option/AgGridOptionGroupCell.tsx","../../../../../packages/kyoko/src/components/AgGrid/Option/AgGridOptionMark.tsx","../../../../../packages/kyoko/src/components/AgGrid/Option/AgGridOptionPriceQuote.tsx","../../../../../packages/kyoko/src/components/AgGrid/Option/AgGridOptionStrikePrice.tsx","../../../../../packages/kyoko/src/components/AlertBanner/styles.tsx","../../../../../packages/kyoko/src/components/Drawer/styles.tsx","../../../../../packages/kyoko/src/components/Drawer/Drawer.tsx","../../../../../packages/kyoko/src/components/Drawer/DrawerCloseButton.tsx","../../../../../packages/kyoko/src/components/Drawer/InputsAndDropdownsDrawer.tsx","../../../../../packages/kyoko/src/components/Notification/styles.ts","../../../../../packages/kyoko/src/components/Notification/index.tsx","../../../../../packages/kyoko/src/components/Toast/styles.ts","../../../../../packages/kyoko/src/components/Toast/index.tsx","../../../../../packages/kyoko/src/providers/GlobalToastsProvider.tsx","../../../../../packages/kyoko/src/components/Drawer/ModifyJsonDrawer.tsx","../../../../../packages/kyoko/src/components/BlotterTable/aggFuncs/equalityAggFunc.ts","../../../../../packages/kyoko/src/components/Benchmark/styles.tsx","../../../../../packages/kyoko/src/components/BlotterTable/aggFuncs/priceAggFunc.ts","../../../../../packages/kyoko/src/components/BlotterTable/aggFuncs/sizeAggFunc.ts","../../../../../packages/kyoko/src/components/BlotterTable/aggFuncs/sizedAvgAggFunc.ts","../../../../../packages/kyoko/src/components/BlotterTable/aggFuncs/sumAggFunc.ts","../../../../../packages/kyoko/src/components/BlotterTable/styles.tsx","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTable.tsx","../../../../../packages/kyoko/src/utils/envCypress.ts","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTableContext.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/components/FilterBuilderClearAllButton.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/components/FilterBuilderToggleButton.tsx","../../../../../packages/kyoko/src/components/CopyButton/styles.tsx","../../../../../packages/kyoko/src/components/CopyButton/index.tsx","../../../../../packages/kyoko/src/components/Dialog/styles.tsx","../../../../../packages/kyoko/src/components/Dialog/index.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/utils/FocusTabHelper.ts","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/useFilterBuilderRefs.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/useFilterBuilder.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/CopyPasteFilter/deserializeFilterClauses.ts","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/CopyPasteFilter/styles.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/CopyPasteFilter/CopyPasteFilter.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/PropertyDropdown.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/SelectionListButtons.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/usePropertyMultiSelect.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/PropertyMultiSelectList.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/PropertySingleSelectList.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/RHS/PropertyTextList.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/FilterBuilder.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/useAssetsFilter.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/useMarketFeeModesFilter.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/useOrderStatusFilter.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/usePositionAsssetsFilter.tsx","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/useSidesFilter.ts","../../../../../packages/kyoko/src/components/Filters/FilterBuilder/filters/useSymbolsFilter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTablePauseButton.tsx","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTableFilters.tsx","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTableNativeStorageContext.ts","../../../../../packages/kyoko/src/components/LeftMiddleRightFlexbox/index.tsx","../../../../../packages/kyoko/src/components/Table/styles.tsx","../../../../../packages/kyoko/src/components/PositionThresholdMeter/styles.tsx","../../../../../packages/kyoko/src/components/PositionThresholdMeter/index.tsx","../../../../../packages/kyoko/src/components/PositionThresholdMeter/getPositionThresholdMeterPercents.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/autoHedgeStatus.tsx","../../../../../packages/kyoko/src/components/MarketColor/styles.tsx","../../../../../packages/kyoko/src/components/MarketColor/MarketColorDot.tsx","../../../../../packages/kyoko/src/components/Side/index.tsx","../../../../../packages/kyoko/src/components/Status/AddressStatus.tsx","../../../../../packages/kyoko/src/utils/careOrder.ts","../../../../../packages/kyoko/src/components/Status/CareOrderStatus.tsx","../../../../../packages/kyoko/src/components/Status/ExposureStatus.tsx","../../../../../packages/kyoko/src/components/Status/QuoteStatus.tsx","../../../../../packages/kyoko/src/components/Status/ReconMatchStatus.tsx","../../../../../packages/kyoko/src/components/Status/ReconCheckpointStatus.tsx","../../../../../packages/kyoko/src/components/Status/ReconMismatchStatus.tsx","../../../../../packages/kyoko/src/components/Status/TradeStatus.tsx","../../../../../packages/kyoko/src/components/Status/TransferStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/utils.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/toggle.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/columns.tsx","../../../../../packages/kyoko/src/components/Bullet/index.tsx","../../../../../packages/kyoko/src/components/StatusIndicator/styles.tsx","../../../../../packages/kyoko/src/components/StatusIndicator/index.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/counterparty.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/counterpartyFromMarketAccount.tsx","../../../../../packages/kyoko/src/components/CreditUsageWarnings/index.tsx","../../../../../packages/kyoko/src/components/OrderWarnings/index.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/warning.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/expandRow.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/greeks.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/group.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/binance.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/erisx.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/ftx.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/lmax.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/osl.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/index.ts","../../../../../packages/kyoko/src/components/MarketLogos/markets/alameda.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/b2c2.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/bitfinex.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/bitmex.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/bitstamp.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/bittrex.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/coinbase.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/coinMetrics.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/copper.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/cumberland.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/dvChain.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/enigma.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/24exchange.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/fireblocks.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/flowTraders.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/galaxy.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/gemini.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/genesis.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/hehmeyer.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/itbit.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/janeStreet.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/kraken.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/nydig.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/okcoin.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/okex.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/poloniex.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/silvergate.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/sucden.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/uniswapTrading.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/virtu.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/whalefin.tsx","../../../../../packages/kyoko/src/components/MarketLogos/markets/wintermute.tsx","../../../../../packages/kyoko/src/components/MarketLogos/index.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/marketAccount.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/marketAccountGroupDerived.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/stringArray.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/options.tsx","../../../../../packages/kyoko/src/components/DateTimePicker/utils.ts","../../../../../packages/kyoko/src/components/DateTimePicker/DateTimePickerContent.tsx","../../../../../packages/kyoko/src/components/DateTimePicker/DateTimePicker.tsx","../../../../../packages/kyoko/src/components/DateTimeDurationPicker/duration.ts","../../../../../packages/kyoko/src/components/ParametersTable/useParameterRows.tsx","../../../../../packages/kyoko/src/tokens/index.ts","../../../../../packages/kyoko/src/components/ParametersTable/index.tsx","../../../../../packages/kyoko/src/components/PMSRowWarnings/index.tsx","../../../../../packages/kyoko/src/components/Status/ReconCheckpointEvalStatus.tsx","../../../../../packages/kyoko/src/components/PositionWarnings/index.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/securityMarketData.tsx","../../../../../packages/kyoko/src/components/TreeView/styles.tsx","../../../../../packages/kyoko/src/components/TreeView/Tree.tsx","../../../../../packages/kyoko/src/components/TreeView/TreeViewTooltip.tsx","../../../../../packages/kyoko/src/components/TreeView/utils.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/subAccountName.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/user.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/windowDuration.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/treeGroup.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/index.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/connectionStatusWithText.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/credentialAge.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/creditUsageWarning.tsx","../../../../../packages/kyoko/src/types/CreditBlotterExposure.ts","../../../../../packages/kyoko/src/components/BlotterTable/columns/exposureDefinition.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/hamburgerMenu.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/market.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/markets.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/marketAccountTradingStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/marketAccounts.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/number.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/orderParameters.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/orderStartTime.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/orderStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/pmsWarning.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/buyingPower.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/positionDirection.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/positionExpiry.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/positionUnderlyingAsset.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/price.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/reconCheckpointStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/reconCheckpointEvalStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/reconMatchStatus.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/reconWarning.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/rowCount.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/size.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/sizedAvg.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/subAccount.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/positionThresholdMeter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/thresholdAsset.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/thresholdType.tsx","../../../../../packages/kyoko/src/components/BlotterTable/columns/transferDescription.ts","../../../../../packages/kyoko/src/components/BlotterTable/BlotterTableStorage.tsx","../../../../../packages/kyoko/src/components/BlotterTable/contextMenu.tsx","../../../../../packages/kyoko/src/components/BlotterTable/ExportDialog.tsx","../../../../../packages/kyoko/src/components/BlotterTable/filters/useDateRangeFilter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/helpers.ts","../../../../../packages/kyoko/src/components/BlotterTable/useAccordionFilterBuilder.tsx","../../../../../packages/kyoko/src/components/BlotterTable/useColumnDefs.tsx","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTableMainMenu.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTable.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTableUtilities.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTableGridOptions.ts","../../../../../packages/kyoko/src/hooks/useCallbackRef.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTableInitialSetup.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/applySortsToColumns.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/useBlotterTableEventHandlers.ts","../../../../../packages/kyoko/src/components/BlotterTable/useBlotterTable/getBlotterTableSort.ts","../../../../../packages/kyoko/src/components/Filters/DropdownFilter/styles.tsx","../../../../../packages/kyoko/src/components/Filters/DropdownFilter/index.tsx","../../../../../packages/kyoko/src/components/Filters/ToggleButtonFilter/styles.tsx","../../../../../packages/kyoko/src/components/Filters/ToggleButtonFilter/ToggleButtonFilter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/useWsBlotterTable.ts","../../../../../packages/kyoko/src/components/Filters/ToggleButtonFilter/StatusToggleButtonFilter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/useGenericFilter.tsx","../../../../../packages/kyoko/src/components/BlotterTable/useMaxRecordsReachedWarning.tsx","../../../../../packages/kyoko/src/components/BlotterTable/usePersistedBlotterTable.ts","../../../../../packages/kyoko/src/providers/AuthContextProvider.tsx","../../../../../packages/kyoko/src/providers/CurrencyConversionProvider.tsx","../../../../../packages/kyoko/src/providers/HeartbeatsProvider.tsx","../../../../../packages/kyoko/src/providers/MarketPriceContextProvider.tsx","../../../../../packages/kyoko/src/providers/MixpanelProvider.tsx","../../../../../packages/kyoko/src/providers/PortalContextProvider.tsx","../../../../../packages/kyoko/src/providers/RefDataCacheProvider.tsx","../../../../../packages/kyoko/src/hooks/useCachedSubscription.ts","../../../../../packages/kyoko/src/providers/SecuritiesProvider.tsx","../../../../../packages/kyoko/src/providers/TestProviders.tsx","../../../../../packages/kyoko/src/providers/WatchlistVisibilityProvider.tsx","../../../../../packages/kyoko/src/providers/WLBalancesProviders.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OMSReferenceDataSlice/reducer.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/messages.ts","../../../../../packages/kyoko/src/fields/messages.ts","../../../../../packages/kyoko/src/fields/DateField.ts","../../../../../packages/kyoko/src/fields/Field.ts","../../../../../packages/kyoko/src/fields/SelectorField.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/deprecatedStrategy.ts","../../../../../packages/kyoko/src/fields/MultiSelectorField.ts","../../../../../packages/kyoko/src/fields/validation/number.ts","../../../../../packages/kyoko/src/fields/validation/orderFormValidation.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/validation.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/utils.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/reducer.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/SessionSlice/reducer.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/WLOrderFormStore.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/selector.ts","../../../../../packages/kyoko/src/providers/WLCustomerUserConfigContextProvider.tsx","../../../../../packages/kyoko/src/providers/WLExposuresProvider.tsx","../../../../../packages/kyoko/src/providers/WLFavoriteSecuritiesProvider.tsx","../../../../../packages/kyoko/src/components/Forms/BalanceDetails/BalanceDetails.tsx","../../../../../packages/kyoko/src/components/Forms/SummaryLine.tsx","../../../../../packages/kyoko/src/components/Forms/BalanceDetails/BalanceDetailsSummaryLine.tsx","../../../../../packages/kyoko/src/components/Forms/CustomerBalanceDetails/CustomerBalanceDetails.tsx","../../../../../packages/kyoko/src/components/Forms/CustomerBalanceDetails/CustomerBalanceDetailsHeader.tsx","../../../../../packages/kyoko/src/components/Forms/FormBalances/styles.tsx","../../../../../packages/kyoko/src/components/Forms/FormBalances/MaxAvailable.tsx","../../../../../packages/kyoko/src/components/Forms/IntervalInput/styles.tsx","../../../../../packages/kyoko/src/components/Forms/IntervalInput/index.tsx","../../../../../packages/kyoko/src/components/CustomerMarketAccountSelector/hooks.tsx","../../../../../packages/kyoko/src/components/CustomerMarketAccountSelector/CustomerMarketAccountSelector.tsx","../../../../../packages/kyoko/src/components/SlideSelector/styles.tsx","../../../../../packages/kyoko/src/components/SlideSelector/index.tsx","../../../../../packages/kyoko/src/components/CurrencyPair/styles.tsx","../../../../../packages/kyoko/src/components/CurrencyPair/index.tsx","../../../../../packages/kyoko/src/components/SymbolSelector/styles.tsx","../../../../../packages/kyoko/src/components/SymbolSelector/SymbolSelector.tsx","../../../../../packages/kyoko/src/components/Form/Autocomplete/useAutocompleteGroupSorter.tsx","../../../../../packages/kyoko/src/components/SymbolSelector/index.tsx","../../../../../packages/kyoko/src/components/QuickOptions/styles.tsx","../../../../../packages/kyoko/src/components/QuickOptions/QuickOptions.tsx","../../../../../packages/kyoko/src/components/QuickOptions/PriceQuickOptions.tsx","../../../../../packages/kyoko/src/components/Forms/PriceInput/usePriceInput.tsx","../../../../../packages/kyoko/src/components/Forms/PriceInput/index.tsx","../../../../../packages/kyoko/src/components/Forms/QuantityInput/index.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/styles.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/Sparkline.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/TopOfBook.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/MarketView.tsx","../../../../../packages/kyoko/src/components/Forms/NewOrderForm/OrderFormMarketView.tsx","../../../../../packages/kyoko/src/components/Forms/NewOrderForm/styles.tsx","../../../../../packages/kyoko/src/components/Forms/NewOrderForm/index.tsx","../../../../../packages/kyoko/src/components/Crossmark/styles.tsx","../../../../../packages/kyoko/src/components/Crossmark/index.tsx","../../../../../packages/kyoko/src/components/CurrencyPairSelector/styles.tsx","../../../../../packages/kyoko/src/components/CurrencyPairSelector/CurrencySelect.tsx","../../../../../packages/kyoko/src/components/CurrencyPairSelector/index.tsx","../../../../../packages/kyoko/src/components/Slippage/styles.tsx","../../../../../packages/kyoko/src/components/Slippage/index.tsx","../../../../../packages/kyoko/src/components/Forms/RFQForm/RemainingTime/styles.tsx","../../../../../packages/kyoko/src/components/Forms/RFQForm/RemainingTime/index.tsx","../../../../../packages/kyoko/src/components/Forms/RFQForm/styles.tsx","../../../../../packages/kyoko/src/components/Forms/RFQForm/utils.ts","../../../../../packages/kyoko/src/components/Forms/RFQForm/index.tsx","../../../../../packages/kyoko/src/components/Forms/index.ts","../../../../../packages/kyoko/src/providers/WLTradingLimitsProvider.tsx","../../../../../packages/kyoko/src/hooks/useHomeCurrencyRate.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/state/useOMSDependencies.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/state/SessionSlice/selector.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/OrderService/OrderService.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/tokens.ts","../../../../../packages/kyoko/src/providers/WLOrdersProvider.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/OrderService/OrderServiceProvider.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/RFQService/RFQService.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/RFQService/RFQServiceProvider.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/useWLOrder.ts","../../../../../packages/kyoko/src/providers/WLOrderForm/WLOrderFormProvider.tsx","../../../../../packages/kyoko/src/providers/WLUsersContextProvider.tsx","../../../../../packages/kyoko/src/components/Breadcrumb/styles.tsx","../../../../../packages/kyoko/src/components/Breadcrumb/index.tsx","../../../../../packages/kyoko/src/components/Card/styles.ts","../../../../../packages/kyoko/src/components/Charts/hooks/useChartOptionsOverrides.tsx","../../../../../packages/kyoko/src/components/Charts/utils.ts","../../../../../packages/kyoko/src/components/Charts/hooks/useSeriesOptions.tsx","../../../../../packages/kyoko/src/components/Charts/hooks/useAxisZoomHandler.tsx","../../../../../packages/kyoko/src/components/Charts/styles.tsx","../../../../../packages/kyoko/src/components/Charts/BaseChart.tsx","../../../../../packages/kyoko/src/hooks/useResizeObservable.tsx","../../../../../packages/kyoko/src/components/Charts/hooks/useDefaultChartOptions.tsx","../../../../../packages/kyoko/src/components/Charts/SunburstChart.tsx","../../../../../packages/kyoko/src/components/Charts/hooks/useHighchartsRef.ts","../../../../../packages/kyoko/src/components/Switch/index.tsx","../../../../../packages/kyoko/src/components/Charts/Tooltip/ChartTooltipValue.tsx","../../../../../packages/kyoko/src/components/Charts/Tooltip/styles.tsx","../../../../../packages/kyoko/src/components/Charts/Tooltip/SunburstTooltip.tsx","../../../../../packages/kyoko/src/components/Charts/Tooltip/hooks/useSunburstTooltip.tsx","../../../../../packages/kyoko/src/components/CurrencySelect/index.tsx","../../../../../packages/kyoko/src/components/CustomerAddressCreator/index.tsx","../../../../../packages/kyoko/src/components/DataTable/styles.tsx","../../../../../packages/kyoko/src/components/DistributionBar/styles.tsx","../../../../../packages/kyoko/src/components/DonutChart/index.tsx","../../../../../packages/kyoko/src/components/EmptyView/styles.tsx","../../../../../packages/kyoko/src/components/Panel/styles.tsx","../../../../../packages/kyoko/src/styles/dimensions.ts","../../../../../packages/kyoko/src/components/EntityAdminPage/EntityAdminPageTabsWrapper.tsx","../../../../../packages/kyoko/src/components/EntityAdminPage/EntityAdminPage.tsx","../../../../../packages/kyoko/src/components/EntityAdminPage/types.ts","../../../../../packages/kyoko/src/components/EntityAdminPage/utils.tsx","../../../../../packages/kyoko/src/components/EntityAdminPage/useEntityAdminPage.tsx","../../../../../packages/kyoko/src/hooks/useWSFilterPipe.tsx","../../../../../packages/kyoko/src/pipes/wsSubscriptionFilter.ts","../../../../../packages/kyoko/src/pipes/resubscribeOnChange.ts","../../../../../packages/kyoko/src/components/EntityAdminPage/EntityAdminPageWS.tsx","../../../../../packages/kyoko/src/components/SmartSummary/MarketPart.tsx","../../../../../packages/kyoko/src/components/SmartSummary/StrategyPart.tsx","../../../../../packages/kyoko/src/components/EntityEditingDrawerContent/index.tsx","../../../../../packages/kyoko/src/components/SmartSummary/styles.ts","../../../../../packages/kyoko/src/components/SmartSummary/index.tsx","../../../../../packages/kyoko/src/components/ExecutionReportSummary/styles.ts","../../../../../packages/kyoko/src/components/ExecutionReportSummary/ExecutionReportDifference/styles.tsx","../../../../../packages/kyoko/src/components/Timeline/styles.tsx","../../../../../packages/kyoko/src/components/ExecutionTimeline/styles.ts","../../../../../packages/kyoko/src/components/Lists/Dl.tsx","../../../../../packages/kyoko/src/components/FilledMeter/index.tsx","../../../../../packages/kyoko/src/components/QuotesSummary/styles.tsx","../../../../../packages/kyoko/src/components/ExpandableBottomPanel/styles.tsx","../../../../../packages/kyoko/src/components/ExpandableText/index.tsx","../../../../../packages/kyoko/src/components/FileArea/styles.tsx","../../../../../packages/kyoko/src/components/FilterInput/styles.tsx","../../../../../packages/kyoko/src/components/FilterInput/index.tsx","../../../../../packages/kyoko/src/components/FormTable/styles.tsx","../../../../../packages/kyoko/src/components/FormTable/index.tsx","../../../../../packages/kyoko/src/components/Insight/styles.tsx","../../../../../packages/kyoko/src/components/Kbd/index.tsx","../../../../../packages/kyoko/src/components/LocaleSelector/styles.ts","../../../../../packages/kyoko/src/components/LocaleSelector/supportedLocales.ts","../../../../../packages/kyoko/src/components/LocaleSelector/LocaleSelector.tsx","../../../../../packages/kyoko/src/components/MarketDataCard/styles.tsx","../../../../../packages/kyoko/src/components/MarketDataCard/MarketDataCard.tsx","../../../../../packages/kyoko/src/components/MarketDataCard/index.tsx","../../../../../packages/kyoko/src/components/MarketDataCard/MarketDataCardHeader.tsx","../../../../../packages/kyoko/src/components/MarketPicker/styles.tsx","../../../../../packages/kyoko/src/components/Menu/index.tsx","../../../../../packages/kyoko/src/components/NoDataMessage/styles.tsx","../../../../../packages/kyoko/src/components/Notes/NotesProvider.tsx","../../../../../packages/kyoko/src/components/Notes/styles.tsx","../../../../../packages/kyoko/src/components/Onboarding/styles.tsx","../../../../../packages/kyoko/src/components/OrderCard/styles.tsx","../../../../../packages/kyoko/src/components/OrderCard/OrderCardHeader.tsx","../../../../../packages/kyoko/src/components/OrderCard/OrderCardSummary.tsx","../../../../../packages/kyoko/src/components/PowerSearch/PowerSearchContext.tsx","../../../../../packages/kyoko/src/components/PowerSearch/PowerSearchHighlightContext.tsx","../../../../../packages/kyoko/src/components/PowerSearch/PowerSearchItem.tsx","../../../../../packages/kyoko/src/components/PreviewView/index.tsx","../../../../../packages/kyoko/src/components/PriceLadder/styles.tsx","../../../../../packages/kyoko/src/components/Resizer/style.ts","../../../../../packages/kyoko/src/components/RichDistributionBar/styles.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarContext.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarItem.tsx","../../../../../packages/kyoko/src/components/Sidebar/styles.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarCurrentFeeTier.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarGroup.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarHeader.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarPinToggle.tsx","../../../../../packages/kyoko/src/components/ThemeToggle/styles.tsx","../../../../../packages/kyoko/src/components/ThemeToggle/index.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarThemeToggle.tsx","../../../../../packages/kyoko/src/components/Sidebar/SidebarTitle.tsx","../../../../../packages/kyoko/src/components/Sidebar/index.tsx","../../../../../packages/kyoko/src/components/SimpleDistributionBar/styles.tsx","../../../../../packages/kyoko/src/components/Slider/Slider.tsx","../../../../../packages/kyoko/src/components/Stat/index.tsx","../../../../../packages/kyoko/src/components/StreamDiagnosticsDialog/StreamDiagnosticsBlotter.tsx","../../../../../packages/kyoko/src/components/StreamDiagnosticsDialog/styles.tsx","../../../../../packages/kyoko/src/components/StreamDiagnosticsDialog/index.tsx","../../../../../packages/kyoko/src/components/SummaryLine/styles.tsx","../../../../../packages/kyoko/src/components/SymbolDisplay/styles.tsx","../../../../../packages/charting_library/charting_library.esm.js","../../../../../packages/kyoko/src/components/TradingViewChart/styles.tsx","../../../../../packages/kyoko/src/components/TradingViewChart/index.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/utils.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/Settings.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/VolumeLadderHeader.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/Row.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/VolumeLadderSteps.tsx","../../../../../packages/kyoko/src/components/VolumeLadder/VolumeLadder.tsx","../../../../../packages/kyoko/src/components/Watchlist/styles.tsx","../../../../../packages/kyoko/src/components/Watchlist/hooks/useRenderedRows.tsx","../../../../../packages/kyoko/src/components/Watchlist/hooks/useDynamicMarketPriceSubscription.tsx","../../../../../packages/kyoko/src/components/Watchlist/hooks/useDynamicRefRateSubscription.tsx","../../../../../packages/kyoko/src/components/Watchlist/hooks/useDynamicSparklineSubscription.tsx","../../../../../packages/kyoko/src/components/Watchlist/hooks/useSecuritiesList.tsx","../../../../../packages/kyoko/src/components/Watchlist/Sparkline.tsx","../../../../../packages/kyoko/src/components/Watchlist/ChangeCellRenderer.tsx","../../../../../packages/kyoko/src/components/DeepDiveButton/index.tsx","../../../../../packages/kyoko/src/components/Watchlist/DeepDiveButtonCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/FavoriteCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/MarketPriceButtonCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/MarketPriceCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/RefRateCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/ReorderCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/SecurityCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/SpreadCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/SymbolCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/VolumeCellRenderer.tsx","../../../../../packages/kyoko/src/components/Watchlist/VolumeHeader.tsx","../../../../../packages/kyoko/src/components/Watchlist/useColumns.tsx","../../../../../packages/kyoko/src/components/Watchlist/index.tsx","../../../../../packages/kyoko/src/hooks/useRefRate.tsx","../../../../../packages/kyoko/src/hooks/useSparklineData.tsx","../../../../../packages/kyoko/src/hooks/useMarketPrice.tsx","../../../src/components/ErrorBoundary/styles.tsx","../../../src/components/ErrorBoundary/index.tsx","../../../src/components/Logo/index.tsx","../../../src/components/SupportModal/styles.tsx","../../../src/components/SupportModal/index.tsx","../../../src/components/Login/styles.tsx","../../../src/components/Login/index.tsx","../../../src/providers/StrategiesProvider.tsx","../../../src/providers/CustomerDepositWithdrawProvider.tsx","../../../src/providers/GlobalCancelDialogProvider.tsx","../../../src/providers/MarketDataCardsContextProvider.tsx","../../../src/providers/OMSStateProvider.tsx","../../../src/providers/QuotesProvider.tsx","../../../src/providers/RefRateContextProvider.tsx","../../../src/providers/SparklineContextProvider.tsx","../../../src/hooks/usePreferredTheme.tsx","../../../src/providers/WatchlistSettingsContextProvider.tsx","../../../src/providers/WhitelabelOrderFormProvider.tsx","../../../src/components/Providers/index.tsx","../../../../../packages/kyoko/src/providers/EndpointsContextProvider.tsx","../../../src/providers/IntlProvider.tsx","../../../src/providers/RecentSymbolsProvider.tsx","../../../../../packages/kyoko/src/providers/CurrenciesProvider.tsx","../../../../../packages/kyoko/src/providers/WLHomeCurrencyProvider.tsx","../../../src/providers/BlotterTableStorageProvider.tsx","../../../src/providers/BlotterTableContextProvider.tsx","../../../src/providers/ProvidersGate.tsx","../../../src/providers/ThemeProvider.tsx","../../../src/components/NavigationSidebar/Nav.ts","../../../src/utils/layoutPermissions.ts","../../../src/hooks/useNavigationItems.ts","../../../src/components/NavigationSidebar/index.tsx","../../../src/components/RestrictedAccess/styles.tsx","../../../src/components/RestrictedAccess/index.tsx","../../../src/hooks/useCurrentNavigationItem.tsx","../../../src/components/Addresses/index.tsx","../../../src/components/Blotters/styles.tsx","../../../src/components/Filters/FilterBuilder/filters/useCustomerMarketAccountsFilter.tsx","../../../src/components/Filters/FilterBuilder/filters/useStrategiesFilter.tsx","../../../src/components/Filters/FilterBuilder/useOrdersFilter.ts","../../../src/tokens/order.ts","../../../src/components/Blotters/ActiveOrdersBlotter/OrderActions.tsx","../../../src/components/Blotters/ActiveOrdersBlotter/hooks/useActiveOrdersBlotterColumns.ts","../../../src/components/Blotters/ActiveOrdersBlotter/hooks/useActiveOrdersBlotter.ts","../../../src/components/Blotters/ActiveOrdersBlotter/ActiveOrdersBlotter.tsx","../../../src/components/Dialogs/DepositDialog.tsx","../../../src/components/OrderForms/RFQForm/styles.tsx","../../../src/components/Dialogs/WithdrawDialog.tsx","../../../src/components/Filters/FilterBuilder/useDateAndQuickTextFilter.ts","../../../src/components/Blotters/BalancesBlotter/hooks/useColumns.ts","../../../src/components/Blotters/BalancesBlotter/hooks/useBalancesBlotter.tsx","../../../src/components/Filters/FilterBuilder/useBalancesFilter.ts","../../../src/components/Blotters/BalancesBlotter/BalancesBlotter.tsx","../../../src/components/Blotters/CreditExposuresBlotter/hooks/useCreditExposuresBlotter.ts","../../../src/components/Filters/FilterBuilder/useCreditExposuresFilter.ts","../../../src/components/Blotters/CreditExposuresBlotter/CreditExposuresBlotter.tsx","../../../src/components/Blotters/FundingEventsBlotter/hooks/useFundingEventsBlotter.ts","../../../src/components/Filters/FilterBuilder/useFundingEventsFilter.ts","../../../src/components/Blotters/FundingEventsBlotter/FundingEventsBlotter.tsx","../../../src/components/Blotters/OrderHistoryBlotter/hooks/useOrderHistoryBlotterColumns.ts","../../../src/components/Blotters/OrderHistoryBlotter/hooks/useOrderHistoryBlotter.ts","../../../src/components/Blotters/OrderHistoryBlotter/OrderHistoryBlotter.tsx","../../../src/components/Blotters/PositionsBlotter/hooks/usePositionsBlotter.tsx","../../../src/components/Filters/FilterBuilder/usePositionsFilter.ts","../../../src/components/Blotters/PositionsBlotter/PositionsBlotter.tsx","../../../src/components/Blotters/TradesBlotter/hooks/useTradesBlotter.ts","../../../src/components/Filters/FilterBuilder/useTradesFilter.ts","../../../src/components/Blotters/TradesBlotter/TradesBlotter.tsx","../../../src/components/Blotters/TransfersBlotter/hooks/useTransfersBlotter.ts","../../../src/components/Filters/FilterBuilder/useTransfersFilter.ts","../../../src/components/Blotters/TransfersBlotter/TransfersBlotter.tsx","../../../src/components/Blotters/Blotters.tsx","../../../src/components/Candlesticks/styles.tsx","../../../src/components/Candlesticks/index.tsx","../../../src/components/FeeTiers/index.tsx","../../../src/components/Settings/ApiKeys.tsx","../../../src/components/Settings/index.tsx","../../../src/components/VolumeLadder/index.tsx","../../../src/components/OrderForms/BalanceDetails/BalanceDetails.tsx","../../../src/components/OrderForms/OrderSummary/hooks.tsx","../../../src/components/OrderForms/SummaryLine.tsx","../../../src/components/OrderForms/OrderSummary/OrderSummaryLine.tsx","../../../src/components/OrderForms/OrderSummary/OrderSummary.tsx","../../../../../packages/kyoko/src/hooks/useEstimatedTotal.tsx","../../../src/components/OrderForms/useLegacyFormValidation.tsx","../../../src/hooks/useOrderStartTime.tsx","../../../src/hooks/useOrderEndTime.ts","../../../src/components/OrderForms/RFQForm/index.tsx","../../../src/components/Balances/index.tsx","../../../src/layouts/mobileScreens/messages.ts","../../../src/components/Blotters/MobileBlotter.tsx","../../../src/components/OrderForms/ExecutionCard/styles.tsx","../../../src/components/OrderForms/ExecutionCard/index.tsx","../../../src/components/OrderCards/Card.tsx","../../../src/components/OrderCards/ActiveOrdersList.tsx","../../../src/components/OrderCards/RecentOrdersList.tsx","../../../src/components/OrderCards/index.tsx","../../../src/components/Layout/useShouldRenderMobile.ts","../../../src/components/OrderForms/RFQForm/utils.ts","../../../src/components/OrderForms/styles.tsx","../../../src/components/OrderForms/PickQuoteView.tsx","../../../../../packages/kyoko/src/providers/WLOrderForm/state/OrderSlice/useOrderDependencies.ts","../../../src/styles/dimensions.ts","../../../src/components/WatchList/index.tsx","../../../src/layouts/mobileScreens/screenLibrary.tsx","../../../src/components/WatchList/MobileWatchList.tsx","../../../../../packages/kyoko/src/pipes/wsScanToDoubleMap.ts","../../../src/components/Candlesticks/CandleSticksWithSymbol.tsx","../../../src/layouts/mobileScreens/tradingMobileScreens.tsx","../../../src/layouts/SimpleRFQLayout.tsx","../../../src/layouts/mobileScreens/simpleRFQMobileScreens.tsx","../../../src/layouts/TradingLadderLayout.tsx","../../../src/utils/dndKit/shouldHandleEvent.ts","../../../src/utils/dndKit/KeyboardSensor.ts","../../../src/utils/dndKit/PointerSensor.ts","../../../src/components/MarketDataCard/styles.tsx","../../../src/components/MarketDataCard/MarketDataCardHeader.tsx","../../../src/components/MarketDataCard/MarketDataCard.tsx","../../../src/components/Securities/styles.tsx","../../../src/components/Securities/DroppableContainer.tsx","../../../src/components/Securities/index.tsx","../../../src/components/Securities/hooks/useCards.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/CandlesticksAndMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/MarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/SingleSymbolViewArrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/WMLayout1Arrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/WMLayout2Arrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/WatchlistAndMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/WatchlistCandlesticksMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/TradingLayout/TradingLayout.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/CandlesticksAndMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/MarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/SingleSymbolViewArrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/WMLayout1Arrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/WMLayout2Arrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/WatchlistAndMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/WatchlistCandlesticksMarketDataCardsArrangement.tsx","../../../src/layouts/TradingLayoutSpec/ViewOnlyLayout/ViewOnlyLayout.tsx","../../../src/layouts/WatchListTradingLayout.tsx","../../../src/layouts/layout.tsx","../../../src/layouts/mobileScreens/viewOnlyMobileScreens.tsx","../../../src/layouts/mobileScreens/blottersOnlyMobileScreens.tsx","../../../src/components/DemoSettingsDialog/index.tsx","../../../src/components/Layout/styles.tsx","../../../src/components/Layout/Part.tsx","../../../src/components/CreditUtilization/styles.tsx","../../../src/components/CreditUtilization/index.tsx","../../../src/components/FundingSchedule/index.tsx","../../../src/components/Layout/useLayoutComponent.tsx","../../../src/components/Layout/useCurrentLayoutComponent.tsx","../../../src/components/Layout/Header/EditLayoutButtonInner.tsx","../../../src/components/Layout/Header/EditLayoutButton.tsx","../../../src/components/Layout/Header/ExpandCollapseCardsButton.tsx","../../../src/components/Layout/Header/styles.tsx","../../../src/components/Layout/Header/index.tsx","../../../src/components/Layout/MobileLayout/MobileHeader/styles.tsx","../../../src/components/Layout/MobileLayout/MobileHeader/index.tsx","../../../src/components/Layout/MobileLayout/MobileTabBar/styles.tsx","../../../src/components/Layout/MobileLayout/MobileTabBar/index.tsx","../../../src/components/Layout/MobileLayout/styles.tsx","../../../src/components/Layout/MobileLayout/index.tsx","../../../src/components/Layout/NavigationDrawer/styles.tsx","../../../src/components/Layout/NavigationDrawer/index.tsx","../../../src/components/Layout/NavigationHeader/UserMenu.tsx","../../../src/components/Layout/NavigationHeader/styles.tsx","../../../src/components/Layout/NavigationHeader/index.tsx","../../../src/components/Layout/useResizableLayout.tsx","../../../src/components/Layout/index.tsx","../../../src/components/Unauthorized/index.tsx","../../../src/utils/sugar.ts","../../../src/index.tsx","../../../../../packages/kyoko/src/init/agGrid.ts","../../../../../packages/kyoko/src/init/bigjs.ts","../../../src/App.tsx"],"sourcesContent":["/* DO NOT EDIT THIS FILE BY HAND!\n * This file is auto-generated by a script, generate-icon-enum.ts, based off the glyphs in the helix icons svg file.\n * To re-generate this file, run the following in the kyoko directory\n *\n * $> yarn generate\n */\n\n/**\n * Icons defined in our helix icons font.\n */\nexport enum IconName {\n Annotation = 'hi-annotation',\n Archive = 'hi-archive',\n Arrange = 'hi-arrange',\n ArrowDown = 'hi-arrow-down',\n ArrowDownCircle = 'hi-arrow-down-circle',\n ArrowLeft = 'hi-arrow-left',\n ArrowLeftCircle = 'hi-arrow-left-circle',\n ArrowLeftRight = 'hi-arrow-left-right',\n ArrowNarrowDown = 'hi-arrow-narrow-down',\n ArrowNarrowLeft = 'hi-arrow-narrow-left',\n ArrowNarrowRight = 'hi-arrow-narrow-right',\n ArrowNarrowUp = 'hi-arrow-narrow-up',\n ArrowRight = 'hi-arrow-right',\n ArrowRightCircle = 'hi-arrow-right-circle',\n ArrowUp = 'hi-arrow-up',\n ArrowUpCircle = 'hi-arrow-up-circle',\n ArrowUpDown = 'hi-arrow-up-down',\n ArrowsExpand = 'hi-arrows-expand',\n ArrowsReduce = 'hi-arrows-reduce',\n AtSymbol = 'hi-at-symbol',\n Ban = 'hi-ban',\n BarsHorizontal = 'hi-bars-horizontal',\n BarsVertical = 'hi-bars-vertical',\n Bell = 'hi-bell',\n BookOpen = 'hi-book-open',\n Bookmark = 'hi-bookmark',\n Braces = 'hi-braces',\n BringBackward = 'hi-bring-backward',\n BringForward = 'hi-bring-forward',\n Calculator = 'hi-calculator',\n Calendar = 'hi-calendar',\n CalendarEnd = 'hi-calendar-end',\n CalendarStart = 'hi-calendar-start',\n Camera = 'hi-camera',\n Cash = 'hi-cash',\n ChartBar = 'hi-chart-bar',\n ChartBarBox = 'hi-chart-bar-box',\n ChartDonut = 'hi-chart-donut',\n ChartLine = 'hi-chart-line',\n ChartPie = 'hi-chart-pie',\n Chat = 'hi-chat',\n Check = 'hi-check',\n CheckCheckbox = 'hi-check-checkbox',\n CheckCircle = 'hi-check-circle',\n CheckCircleSolid = 'hi-check-circle-solid',\n CheckIndeterminate = 'hi-check-indeterminate',\n CheckMultiple = 'hi-check-multiple',\n ChevronDoubleDown = 'hi-chevron-double-down',\n ChevronDoubleLeft = 'hi-chevron-double-left',\n ChevronDoubleRight = 'hi-chevron-double-right',\n ChevronDoubleUp = 'hi-chevron-double-up',\n ChevronDown = 'hi-chevron-down',\n ChevronLeft = 'hi-chevron-left',\n ChevronRight = 'hi-chevron-right',\n ChevronUp = 'hi-chevron-up',\n ChevronUpDown = 'hi-chevron-up-down',\n Chip = 'hi-chip',\n Circle = 'hi-circle',\n CircleDotted = 'hi-circle-dotted',\n CircleSolid = 'hi-circle-solid',\n ClipboardCheck = 'hi-clipboard-check',\n ClipboardCopy = 'hi-clipboard-copy',\n ClipboardList = 'hi-clipboard-list',\n ClipboardPaste = 'hi-clipboard-paste',\n Clock = 'hi-clock',\n ClockEnd = 'hi-clock-end',\n Close = 'hi-close',\n CloseCircle = 'hi-close-circle',\n CloseCircleSolid = 'hi-close-circle-solid',\n Cloud = 'hi-cloud',\n CloudDownload = 'hi-cloud-download',\n CloudUpload = 'hi-cloud-upload',\n Code = 'hi-code',\n Cog = 'hi-cog',\n Collection = 'hi-collection',\n ColorSwatch = 'hi-color-swatch',\n Columns = 'hi-columns',\n CommandCmd = 'hi-command-cmd',\n Comment = 'hi-comment',\n Connector = 'hi-connector',\n Counterparty = 'hi-counterparty',\n CreditCard = 'hi-credit-card',\n Crown = 'hi-crown',\n Cube = 'hi-cube',\n CubeTransparent = 'hi-cube-transparent',\n CurrencyDollar = 'hi-currency-dollar',\n CurrencyEuro = 'hi-currency-euro',\n CurrencyPound = 'hi-currency-pound',\n Database = 'hi-database',\n Deepdive = 'hi-deepdive',\n DeltaSingle = 'hi-delta-single',\n DeltaStacked = 'hi-delta-stacked',\n DeviceDesktop = 'hi-device-desktop',\n DeviceMobile = 'hi-device-mobile',\n DeviceTablet = 'hi-device-tablet',\n Document = 'hi-document',\n DocumentAdd = 'hi-document-add',\n DocumentDownload = 'hi-document-download',\n DocumentDuplicate = 'hi-document-duplicate',\n DocumentRemove = 'hi-document-remove',\n DocumentReport = 'hi-document-report',\n DocumentSearch = 'hi-document-search',\n DocumentSign = 'hi-document-sign',\n DocumentText = 'hi-document-text',\n DocumentUpload = 'hi-document-upload',\n Dot = 'hi-dot',\n DotSolid = 'hi-dot-solid',\n DotsHorizontal = 'hi-dots-horizontal',\n DotsVertical = 'hi-dots-vertical',\n Download = 'hi-download',\n DragHorizontal = 'hi-drag-horizontal',\n DragVertical = 'hi-drag-vertical',\n Duplicate = 'hi-duplicate',\n EmojiHappy = 'hi-emoji-happy',\n EmojiSad = 'hi-emoji-sad',\n Enter = 'hi-enter',\n Exclamation = 'hi-exclamation',\n ExclamationCircle = 'hi-exclamation-circle',\n ExclamationCircleSolid = 'hi-exclamation-circle-solid',\n ExclamationSolid = 'hi-exclamation-solid',\n Exit = 'hi-exit',\n ExpandLeft = 'hi-expand-left',\n ExpandRight = 'hi-expand-right',\n ExternalLink = 'hi-external-link',\n EyeHide = 'hi-eye-hide',\n EyeShow = 'hi-eye-show',\n FastForward = 'hi-fast-forward',\n FastRewind = 'hi-fast-rewind',\n Feed = 'hi-feed',\n Fees = 'hi-fees',\n Film = 'hi-film',\n Filter = 'hi-filter',\n Flag = 'hi-flag',\n Folder = 'hi-folder',\n FolderAdd = 'hi-folder-add',\n FolderDownload = 'hi-folder-download',\n FolderOpen = 'hi-folder-open',\n FolderRemove = 'hi-folder-remove',\n Globe = 'hi-globe',\n GridAdd = 'hi-grid-add',\n Hashtag = 'hi-hashtag',\n Heart = 'hi-heart',\n HeartSolid = 'hi-heart-solid',\n Home = 'hi-home',\n Identification = 'hi-identification',\n Image = 'hi-image',\n Inbox = 'hi-inbox',\n InboxIn = 'hi-inbox-in',\n InformationCircle = 'hi-information-circle',\n InformationCircleSolid = 'hi-information-circle-solid',\n Key = 'hi-key',\n KeyClock = 'hi-key-clock',\n LightBulb = 'hi-light-bulb',\n LightningBolt = 'hi-lightning-bolt',\n Link = 'hi-link',\n ListCollapse = 'hi-list-collapse',\n ListExpand = 'hi-list-expand',\n LocationMarker = 'hi-location-marker',\n LockClosed = 'hi-lock-closed',\n LockOpen = 'hi-lock-open',\n Login = 'hi-login',\n Logout = 'hi-logout',\n Mail = 'hi-mail',\n MailOpen = 'hi-mail-open',\n Map = 'hi-map',\n Menu = 'hi-menu',\n Microphone = 'hi-microphone',\n Minus = 'hi-minus',\n MinusBox = 'hi-minus-box',\n MinusCircle = 'hi-minus-circle',\n Moon = 'hi-moon',\n MusicNote = 'hi-music-note',\n Newspaper = 'hi-newspaper',\n OfficeBuilding = 'hi-office-building',\n OrderBook = 'hi-order-book',\n OrderBookAsks = 'hi-order-book-asks',\n OrderBookBids = 'hi-order-book-bids',\n PaperAirplane = 'hi-paper-airplane',\n PaperClip = 'hi-paper-clip',\n Pause = 'hi-pause',\n PauseCircle = 'hi-pause-circle',\n Pencil = 'hi-pencil',\n PencilField = 'hi-pencil-field',\n Phone = 'hi-phone',\n Pin = 'hi-pin',\n Play = 'hi-play',\n PlayCircle = 'hi-play-circle',\n Plus = 'hi-plus',\n PlusBox = 'hi-plus-box',\n PlusCircle = 'hi-plus-circle',\n Preferences = 'hi-preferences',\n PresentationChartBar = 'hi-presentation-chart-bar',\n PresentationChartLine = 'hi-presentation-chart-line',\n Printer = 'hi-printer',\n Puzzle = 'hi-puzzle',\n Qrcode = 'hi-qrcode',\n QuestionMarkCircle = 'hi-question-mark-circle',\n Refresh = 'hi-refresh',\n RefreshRecover = 'hi-refresh-recover',\n Reorder = 'hi-reorder',\n Repeat = 'hi-repeat',\n RepeatOnce = 'hi-repeat-once',\n Reply = 'hi-reply',\n RestTime = 'hi-rest-time',\n Save = 'hi-save',\n SaveAs = 'hi-save-as',\n Scale = 'hi-scale',\n Search = 'hi-search',\n Selector = 'hi-selector',\n Server = 'hi-server',\n Share = 'hi-share',\n Shield = 'hi-shield',\n ShieldCheck = 'hi-shield-check',\n ShieldExclamation = 'hi-shield-exclamation',\n SidebarPinned = 'hi-sidebar-pinned',\n SidebarUnpinned = 'hi-sidebar-unpinned',\n SortAscending = 'hi-sort-ascending',\n SortCumulative = 'hi-sort-cumulative',\n SortDescending = 'hi-sort-descending',\n SortUnordered = 'hi-sort-unordered',\n Speakerphone = 'hi-speakerphone',\n Star = 'hi-star',\n StarIntermediate = 'hi-star-intermediate',\n StarSolid = 'hi-star-solid',\n StatusOffline = 'hi-status-offline',\n StatusOnline = 'hi-status-online',\n Stop = 'hi-stop',\n StopCircle = 'hi-stop-circle',\n Sun = 'hi-sun',\n Support = 'hi-support',\n Table = 'hi-table',\n Template = 'hi-template',\n Terminal = 'hi-terminal',\n Theme = 'hi-theme',\n ThumbDown = 'hi-thumb-down',\n ThumbUp = 'hi-thumb-up',\n Ticket = 'hi-ticket',\n Timer = 'hi-timer',\n Translate = 'hi-translate',\n Trash = 'hi-trash',\n TreeDiagram = 'hi-tree-diagram',\n TrendDown = 'hi-trend-down',\n TrendUp = 'hi-trend-up',\n TrendingDown = 'hi-trending-down',\n TrendingUp = 'hi-trending-up',\n TriangleDown = 'hi-triangle-down',\n TriangleLeft = 'hi-triangle-left',\n TriangleRight = 'hi-triangle-right',\n TriangleUp = 'hi-triangle-up',\n Upload = 'hi-upload',\n User = 'hi-user',\n UserAdd = 'hi-user-add',\n UserCircle = 'hi-user-circle',\n UserGroup = 'hi-user-group',\n UserRemove = 'hi-user-remove',\n Users = 'hi-users',\n Variable = 'hi-variable',\n VideoCamera = 'hi-video-camera',\n ViewGrid = 'hi-view-grid',\n ViewList = 'hi-view-list',\n ViewListDrilldown = 'hi-view-list-drilldown',\n VolumeOff = 'hi-volume-off',\n VolumeUp = 'hi-volume-up',\n Wallet = 'hi-wallet',\n Wifi = 'hi-wifi',\n ZoomIn = 'hi-zoom-in',\n ZoomOut = 'hi-zoom-out',\n ZoomReset = 'hi-zoom-reset',\n}\n","/** MixpanelEvents get triggered by the mixpanel.track(...) method provided by useMixpanel() */\nexport enum MixpanelEvent {\n AcceptLoanQuoteRequest = 'Accept loan quote request',\n AcceptRfqQuote = 'Accept RFQ quote',\n AddCardCancel = 'Add card cancel',\n AddCardFinish = 'Add card finish',\n AddCardStart = 'Add card start',\n AddCredential = 'Add credential',\n AddMarketsTab = 'Add markets tab',\n AddMonitoringBlotterTab = 'Add monitoring blotter tab',\n AddLayoutGroup = 'Add layout group',\n AddLayoutPanel = 'Add layout panel',\n AddTab = 'Add tab',\n AddTreasuryLink = 'Add treasury link',\n AdjustBlotterHeight = 'Adjust blotter height',\n AllowSyntheticCounterCurrencyRequests = 'Allow synthetic counter currency requests',\n AllowSyntheticCrosses = 'Allow synthetic crosses',\n AlwaysDisplayBestBidOffer = 'Always Display Best Bid/Offer',\n ApiOrdersToggle = 'Api orders toggle',\n ApplyDetailsToOrderComment = 'Apply details to Order comment',\n ApplyFilterBuilderFilter = 'Apply FilterBuilder filter',\n ArchiveOrder = 'Archive order',\n BookManualTrade = 'Book manual trade',\n BulkEditSymbol = 'Bulk Edit Symbol',\n CalculateMargin = 'Calculate Margin',\n CancelAdmin = 'Cancel (admin)',\n CancelAllOrders = 'Cancel all orders',\n CancelBulkOrderSubmission = 'Cancel bulk order submission',\n CancelCustomerQuote = 'Cancel customer quote',\n CancelForce = 'Cancel (force)',\n CancelLoanQuoteRequest = 'Cancel loan quote request',\n CancelOrder = 'Cancel order',\n CancelRfq = 'Cancel RFQ',\n ChangeAllocations = 'Change allocations',\n ChangeAllowedSlippage = 'Change allowed slippage',\n ChangeAnalyticsTab = 'Change analytics tab',\n ChangeBlotterColumns = 'Change blotter columns',\n ChangeCardSlide = 'Change card slide',\n ChangeCredentialsTab = 'Change credentials tab',\n ChangeDisplayMode = 'Change display mode',\n ChangeHomeCurrency = 'Change Home currency',\n ChangeLadderIncrement = 'Change ladder increment',\n ChangeLadderResolution = 'Change ladder resolution',\n ChangeLayout = 'Change layout',\n ChangeLoanQuoteRequestType = 'Change request type',\n ChangeLoanSide = 'Change loan side',\n ChangeMarketAccount = 'Change market account',\n ChangeMarketDistributionTab = 'Change market distribution tab',\n ChangeMarketTab = 'Change market tab',\n ChangeMonitoringBlotterEntity = 'Change monitoring blotter entity',\n ChangeOrderCurrency = 'Change Order currency',\n ChangeOrderDetailsTab = 'Change order details tab',\n ChangeOrderFormSymbol = 'Change order form symbol',\n ChangeOrderFormTab = 'Change order form tab',\n ChangeOrderGroup = 'Change order group',\n ChangeOrderMarketAccounts = 'Change order market accounts',\n ChangeOrderPreset = 'Change order preset',\n ChangeOrderPrice = 'Change order price',\n ChangeOrderSide = 'Change order side',\n ChangeOrderStrategy = 'Change order strategy',\n ChangePayoutChartValues = 'Change payout chart values',\n ChangePriceBucketing = 'Change price bucketing',\n ChangeQuantityToggle = 'Change quantity toggle',\n ChangeRate = 'Change rate',\n ChangeReportMarket = 'Change report market',\n ChangeReportMonth = 'Change report month',\n ChangeReportSizeBucket = 'Change report size bucket',\n ChangeReportStrategy = 'Change report strategy',\n ChangeReportSymbol = 'Change report symbol',\n ChangeReportType = 'Change report type',\n ChangeRfqCurrency = 'Change RFQ currency',\n ChangeRfqGroup = 'Change RFQ group',\n ChangeRfqMarketAccounts = 'Change RFQ market accounts',\n ChangeRfqSide = 'Change RFQ side',\n ChangeRfqSymbol = 'Change RFQ symbol',\n ChangeSettlementPerspective = 'Change settlement perspective',\n ChangeSettlementTime = 'Change settlement time',\n ChangeSidebarPin = 'Change sidebar pin',\n ChangeSizeBuckets = 'Change size buckets',\n ChangeSubAccount = 'Change subAccount',\n ChangeSymbol = 'Change symbol',\n ChangeThemeType = 'Change theme type',\n ChangeTimeFilter = 'Change time filter',\n ChangeTimelineFilter = 'Change timeline filter',\n ChangeTopOfBookSize = 'Change Top of Book size',\n ClearAllNotifications = 'Clear all notifications',\n ClearAllOrders = 'Clear all orders',\n ClearCard = 'Clear card',\n ClickCreateHedgeRule = 'Click create hedge rule',\n ClickCreateNewAutohedgingRule = 'Click create new autohedging rule',\n ClickedNotification = 'Clicked notification',\n ClickGlobalAutoHedgingActionButton = 'Click global AutoHedging action button',\n ClickHeaderAutoHedgingButton = 'Click header AutoHedging button',\n ClickLadderRow = 'Click ladder row',\n ClickOpenFilterBuilderButton = 'Click open FilterBuilder button',\n ClickReportLegend = 'Click report legend',\n ClickUpdateHedgeRule = 'Click update hedge rule',\n CloneSubAccount = 'Clone Sub Account',\n CloneTab = 'Clone tab',\n CloseCardSettings = 'Close card settings',\n CloseMarketTabSettings = 'Close market tab settings',\n ClosePosition = 'Close position',\n CloseRfqForm = 'Close RFQ form',\n CloseTab = 'Close tab',\n CollapseAllRows = 'Collapse all rows',\n ConfirmGlobalAutohedgingCommand = 'Confirm Global Autohedging Command',\n CopyCell = 'Copy cell',\n CopyDetails = 'Copy details',\n CopyJSON = 'Copy JSON',\n CopyRowAsCSV = 'Copy row as CSV',\n CopyRowAsJSON = 'Copy row as JSON',\n CopyRowsInGroupAsCSV = 'Copy rows in group as CSV',\n CopyRowsInGroupAsJSON = 'Copy rows in group as JSON',\n CopyURL = 'Copy URL',\n CreateMarketCard = 'Create market card',\n CreateNewMultileg = 'CreateNewMultileg',\n CreatePassChangeUrl = 'Create Pass Change Url',\n CreateSubAccountClick = 'Create Sub Account Click',\n CreateTempAccountLedgerEventsDetailsTab = 'Create Temporary Account Ledger Events Details Tab',\n CreateTempReconMismatchDetailsTab = 'Create Temporary Recon Mismatch Details Tab',\n CustomerBlotterColumns = 'Customer blotter columns',\n CustomerPCApplyTotal = 'Customer Pricing Calculator Apply Total',\n CustomerPCCopyDetails = 'Customer Pricing Calculator Copy Details',\n CustomerPCLockCustomerPrice = 'Customer Pricing Calculator Lock Customer Price',\n CustomerPCResetConversionRate = 'Customer Pricing Calculator Reset Conversion Rate',\n CustomerPricingCalculatorInOrderForm = 'Customer Pricing Calculator in the Order Form',\n CustomerPricingCalculatorStartsExpanded = 'Customer Pricing Calculator starts expanded',\n DefaultStrategy = 'Default strategy',\n DeleteCard = 'Delete card',\n DisableEquityMarginRatioLimit = 'Disable Equity Margin Ratio Limit',\n DismissAllTours = 'Dismiss All Tours',\n DismissTour = 'Dismiss Tour',\n DragAndDropGrouping = 'Drag and Drop Grouping',\n DuplicateTab = 'Duplicate tab',\n DynamicDeltaHedgingOrdersShown = 'Dynamic Delta Hedging Orders Shown',\n DynamicDeltaHedgingOrdersHidden = 'Dynamic Delta Hedging Orders Hidden',\n EditBulkClosePositionSymbol = 'Edit Bulk Close Position Symbol',\n EditMultileg = 'Edit multileg',\n EditSymbol = 'Edit Symbol',\n EditUser = 'Edit user',\n EnableAdvancedOrderDetails = 'Enable Advanced Order Details',\n EnableBBOForPriceOffsets = 'Enable Price Offset Use Best Bid Offer',\n EnableCheckLimitPriceReasonability = 'Enable Check limit price reasonability',\n EnableClickToTrade = 'Enable Click to trade',\n EnableConfirmOrderCancels = 'Enable Confirm order cancels',\n EnableConfirmOrderResume = 'Enable Confirm order resume',\n EnableDefaultingDerivativeQuantityToContracts = 'Enable defaulting initial derivative quantity in Contract terms',\n EnableEquityMarginRatioLimit = 'Enable Equity Margin Ratio Limit',\n EnableFlexibleLayout = 'Enable flexible layout',\n EnableOldOrderForm = 'Use legacy order form',\n EnableOrderFilledSound = 'Enable Order filled sound',\n EnableReduceFirstByDefaultDisabled = 'Enable Reduce First by Default Disabled',\n EnableReduceFirstByDefaultEnabled = 'Enable Reduce First by Default Enabled',\n EnableReduceOnlyByDefaultDisabled = 'Enable Reduce Only by Default Disabled',\n EnableReduceOnlyByDefaultEnabled = 'Enable Reduce Only by Default Enabled',\n EnableTotalCostOnHover = 'Enable Total cost on hover',\n EnableTradingMarketAccount = 'Enable Trading - Market Account',\n ExclusivelyPrimePriceOnRePriming = 'Do not prime qty when re-priming rate in New Order',\n ExitConfirmGlobalAutohedgingCommand = 'Exit Confirm Global Autohedging Command',\n ExpandAllRows = 'Expand All Rows',\n ExpandBlotter = 'Expand blotter',\n ExpandMarketCardContractDetails = 'Expand market card contract details',\n ExpandRow = 'Expand row',\n ExportBalances = 'Export balances',\n ExportCredit = 'Export credit',\n ExportFundingEvents = 'Export Funding Events',\n ExportLoanQuotes = 'Export loan quotes',\n ExportLoans = 'Export loans',\n ExportOpenOrders = 'Export Open Orders',\n ExportOrders = 'Export orders',\n ExportPositions = 'Export Positions',\n ExportReport = 'Export report',\n ExportRows = 'Export rows',\n ExportRowsModalOpen = 'Export rows modal open',\n ExportRowsToExcel = 'Export rows (to Excel)',\n ExportSettlementReport = 'Export settlement report',\n ExportTrades = 'Export trades',\n ExportTransactions = 'Export transactions',\n FavoriteFilter = 'Favorite Filter',\n FavoriteOrderPreset = 'Favorite order preset',\n FavoriteSymbol = 'Favorite symbol',\n FilterCell = 'Filter cell',\n FilterColumn = 'Filter column',\n FilterQuickSearch = 'Filter QuickSearch',\n FilterTimeTypeChanged = 'Filter time type changed',\n FilterTransferConfigRows = 'Filter transfer config rows',\n FilterWatchlist = 'Filter watchlist',\n ForceLogout = 'Force Logout',\n GroupAccounts = 'Group accounts',\n GroupAssets = 'Group assets',\n GroupCustomer = 'Group Customer',\n GroupExpiries = 'Group expiries',\n GroupingRemoved = 'Grouping removed',\n GroupProducts = 'Group products',\n GroupProductType = 'Group Product Type',\n GroupSubAccounts = 'Group sub accounts',\n GroupUnderlying = 'Group Underlying',\n GenerateCustomerOrderSummary = 'Generate customer order summary',\n HideBlotterColumn = 'Hide blotter column',\n HoverReportLegend = 'Hover report legend',\n HoverUnderlyingPrice = 'Hover underlying price',\n HoverWarningIcon = 'Hover warning icon',\n InitiateCustomerTransfer = 'Initiate customer transfer',\n InitiateMarketplaceTransfer = 'Initiate marketplace transfer',\n InitiatePrincipalTransfer = 'Initiate principal transfer',\n InviteNewUser = 'Invite new user',\n KillSwitch = 'Kill switch',\n KnowledgeBase = 'Knowledge base',\n LinkCustomerHedgeSubaccount = 'Link customer hedge subaccount',\n LoadApp = 'Load app',\n LogOut = 'Log out',\n MarketSecurity = 'Market security',\n MarketSecurityEnableDisableDialogOpened = 'Market security enable/disable dialog opened',\n MarketTabClose = 'Market tab close',\n MarketTabDiscard = 'Market tab discard',\n MarketTabSave = 'Market tab save',\n MinimizeBlotter = 'Minimize blotter',\n ModifyManualTrade = 'Modify manual trade',\n ModifyOrder = 'Modify order',\n ModifyOrderGroup = 'Modify order group',\n ModifyOrders = 'Modify orders',\n ModifyOrphanTrade = 'Modify orphan trade',\n ModifySalesOrder = 'Modify sales order',\n ModifySubaccount = 'Modify Sub Account',\n MovedCard = 'Moved card',\n NavigateToCreditAndSettlement = 'Navigate to Credit and Settlement',\n NavigateToDealerConfigurations = 'Navigate to Dealer Configurations',\n NavigateToDealerPricingTiers = 'Navigate to Dealer Pricing Tiers',\n NavigateToDealerSymbolGroups = 'Navigate to Dealer Symbol Groups',\n NavigateToHedgeRulesTab = 'Navigate to Hedge Rules Tab',\n NavigateToPerformance = 'Navigate to Performance',\n NavigateToPortfolio = 'Navigate to Portfolio',\n NavigateToPortfolioAddresses = 'Navigate to Addresses',\n NavigateToPortfolioManagementOverview = 'Portfolio Management Overview',\n NavigateToPortfolioManagementPerformance = 'Portfolio Management Performance',\n NavigateToPortfolioManagementReports = 'Portfolio Management Reports',\n NavigateToPortfolioManagementTransactions = 'Portfolio Management Transactions',\n NavigateToPortfolioOperationsOverview = 'Portfolio Operations Overview',\n NavigateToPortfolioOperationsReconciliation = 'Portfolio Operations Reconciliation',\n NavigateToPortfolioOperationsReports = 'Portfolio Operations Reports',\n NavigateToPortfolioOperationsSettlement = 'Portfolio Operations Settlement',\n NavigateToPortfolioOperationsTransactions = 'Portfolio Operations Transactions',\n NavigateToPortfolioRecon = 'Navigate To Portfolio Recon',\n NavigateToPortfolioRiskExposures = 'Portfolio Risk Exposures',\n NavigateToSettlement = 'Navigate to Settlement',\n NavigateToTransfers = 'Navigate to Transfers',\n NavigateToTreasuryManagement = 'Navigate to Treasury Management',\n NavigateToUsers = 'Navigate to Users page',\n NavigateToWhatsNew = 'Navigate to Whats new',\n NegotiateLoanQuoteRequest = 'Negotiate loan quote request',\n NewUser = 'New user',\n NextTourStep = 'Next tour step',\n OpenAutoHedgePositionRuleDrawer = 'Open Auto Hedge Position Rule Drawer',\n OpenCardSettings = 'Open card settings',\n OpenCustomerOrderContext = 'Open customer order context',\n OpenCredentials = 'Open credentials',\n OpenDeepDive = 'Open DeepDive',\n OpenLayoutMenu = 'Open layout menu',\n OpenManualFillForm = 'Open manual fill form',\n OpenManualPricingForm = 'Open manual pricing form',\n OpenManualTradeForm = 'Open manual trade form',\n OpenModifyOrder = 'Open modify order',\n OpenMultilegDeepDive = 'OpenMultilegDeepDive',\n OpenOptionsChain = 'Open Options Chain',\n OpenOptionsColumnsSelector = 'Open options columns selector',\n OpenOrderAnalytics = 'Open order analytics',\n OpenOrderDetails = 'Open order details',\n OpenOrderForm = 'Open order form',\n OpenOrderImportForm = 'Open order import form',\n OpenOrderPresetDialog = 'Open order preset dialog',\n OpenPowerSearch = 'Open power search',\n OpenReconMismatchResolutionDrawer = 'Open Recon Mismatch Resolution Drawer',\n OpenReportTab = 'Open report tab',\n OpenResubmitOrder = 'Open resubmit order',\n OpenResubmitRemaining = 'Open resubmit remaining',\n OpenResubmitRfq = 'Open resubmit RFQ',\n OpenRfqForm = 'Open RFQ form',\n OpenSalesOrderForm = 'Open sales order form',\n OpenSalesRfqForm = 'Open Sales RFQ form',\n OpenSupportModal = 'Open Support Modal',\n OpenTabMenu = 'Open tab menu',\n OpenTradingControlsSettings = 'Open Trading Controls Settings',\n OpenTransfersDrawer = 'Open Transfers Drawer',\n OpenUpdateBalancesModal = 'Open update balances modal',\n OptionToBookCustomerTrade = 'option to Book Customer Trade',\n OrderArchivedSound = 'Order archived sound',\n OrderCanceledSound = 'Order canceled sound',\n OrderGroups = 'Order groups',\n OrderRejectedSound = 'Order rejected sound',\n PauseAllOrders = 'Pause all orders',\n PauseOrder = 'Pause order',\n PinSidebar = 'Pin sidebar',\n PlaceCard = 'Place card',\n PMSTreatStablecoinsAsCash = 'PMS: Treat Stablecoins as Cash',\n PMSPortfolioRiskInspectorOpen = 'PMS: Open Portfolio Risk Inspector',\n PMSPortfolioRiskInspectorUpdated = 'PMS: Update Portfolio Risk Inspector',\n PreviewSalesOrder = 'Preview sales order',\n PrevTourStep = 'Prev tour step',\n PrimeOrder = 'Prime order',\n PrimeOrderQty = 'Prime order + qty',\n PrimeOrderWithPreset = 'Prime Order with Preset',\n PrimeSymbolSelector = 'Prime order with symbol from search dropdown',\n PriceOffsetBid = 'Price Offset Bid',\n PriceOffsetOffer = 'Price Offset Offer',\n PriceOffsetBPS = 'Price Offset BPS',\n PriceOffsetBPSBehaviourIncrement = 'Price Offset BPS Behaviour Increment',\n PriceOffsetBPSBehaviourReset = 'Price Offset BPS Behaviour Reset',\n ReImportTabsForFlexibleLayout = 'Re-import tabs for flexible layout',\n RaisePaginationLimit = 'Raise pagination limit',\n RejectLoanQuoteRequest = 'Reject loan quote request',\n RemoveBulkClosePositionRow = 'Remove Bulk Close Position Row',\n RemoveLayoutGroup = 'Remove layout group',\n RemoveLayoutPanel = 'Remove layout panel',\n RemoveReportTab = 'Remove report tab',\n RemoveUser = 'Remove User',\n RenameTab = 'Rename tab',\n ReorderTab = 'Reorder tab',\n ResetAppConfig = 'Reset app config',\n ResetBlotterColumns = 'Reset blotter columns',\n ResetColumns = 'Reset columns',\n ResetLayout = 'Reset layout',\n ResetLayoutAndTabs = 'Reset layout and tabs',\n ResolveReconMismatches = 'Resolve Recon Mismatches',\n ResumeAllOrders = 'Resume all orders',\n ResumeOrder = 'Resume order',\n SalesWorkflow = 'Sales workflow',\n SaveMarketTabSettings = 'Save market tab settings',\n SaveOrderPreset = 'Save order preset',\n SearchMarketsTab = 'Search markets tab',\n SelectAllColumns = 'Select all columns',\n SelectAllRows = 'Select all rows',\n SelectFutureForm = 'Select future order form',\n SelectMultilegForm = 'Select multileg order form',\n SelectOptionForm = 'Select option order form',\n SelectOrderPreset = 'Select order preset',\n SelectPerpForm = 'Select perp order form',\n SelectSpotForm = 'Select spot order form',\n SendBulkClosePositionOrders = 'Send bulk close position orders',\n SendBulkOrder = 'Send bulk order',\n SendLoanQuoteRequest = 'Send loan quote request',\n SendOrder = 'Send order',\n SendPasswordResetEmail = 'Send Password Reset Email',\n SendRfq = 'Send RFQ',\n SetBlotterTab = 'Set blotter tab',\n SetDefaultSubAccount = 'Set default sub account',\n SetMarketCardTitle = 'Set market card title',\n SetMarketCardUnifiedLiquidity = 'Set market card unified liquidity',\n SetMarketCardView = 'Set market card view',\n SetPositionBlotterTab = 'Set position blotter tab',\n SettlementInitiated = 'Settlement initiated',\n SetTransfersBlotterTab = 'Set transfers blotter tab',\n SetUILocale = 'Set UI Locale',\n ShowArchiveOrdersToggle = 'Show archive orders toggle',\n ShowBlotterColumn = 'Show blotter column',\n ShowExpandedDetails = 'Show expanded details',\n ShowFailedCancelOrderModal = 'Show failed cancel order modal',\n ShowJSON = 'Show JSON',\n ShowPortfolioManagementSystem = 'Show Portfolio Management System',\n ShowWebAppInstallPrompt = 'Show web app install prompt',\n SortMarketsTab = 'Sort markets tab',\n SoundEffects = 'Sound effects',\n StagedOrder = 'Staged order',\n Support = 'Support',\n ToggleActiveOrders = 'Toggle active orders card',\n ToggleAlwaysDisplayMarketCardBestBidOffer = 'Toggle Always Display Market Card Best Bid/Offer',\n ToggleDetailsCard = 'Toggle details card',\n ToggleFees = 'Toggle Fees',\n ToggleFirmLiquidity = 'Toggle firm liquidity',\n ToggleMarkets = 'Toggle markets',\n ToggleReportInsights = 'Toggle report insights',\n ToggleReportSummary = 'Toggle report summary',\n ToggleShowActionRequiredOnly = 'Toggle show action required only',\n ToggleShowLoanQuoteHistory = 'Toggle show loan quote history',\n ToggleShowReviewTransfer = 'Toggle show review transfer',\n ToggleShowTotals = 'Toggle ShowTotals',\n ToggleShowZeroBalances = 'Toggle ShowZeroBalances',\n ToggleSubAccountPositionsBlotterHierarchical = 'Toggle Sub Account Positions Blotter Hierarchical',\n ToggleSubAccountPositionsIncludeCash = 'Toggle Sub Account Positions Blotter Include Cash',\n ToggleUnifiedPositionsIncludeCash = 'Toggle Unified Positions Include Cash',\n ToggleWatchlist = 'Toggle watchlist',\n TradingControlsDisableCustomerTrading = 'Disable Customer Trading',\n TradingControlsDisableDDHTrading = 'Disable Dynamic Delta Hedging Trading',\n TradingControlsDisablePositionAutoHedging = 'Disable Position Auto-Hedging',\n TradingControlsDisableTrading = 'Disable Trading',\n TradingControlsEnableCustomerTrading = 'Enable Customer Trading',\n TradingControlsEnableDDHTrading = 'Enable Dynamic Delta Hedging Trading',\n TradingControlsEnablePositionAutoHedging = 'Enable Position Auto-Hedging',\n TradingControlsEnableTrading = 'Enable Trading',\n TradingControlsOpenDialog = 'Open Trading Controls Modal',\n TradingControlsOpenMarketAccounts = 'Open Market Account Trading Controls',\n TreasuryDoughnutSliceClicked = 'Treasury doughnut slice clicked',\n UnarchiveOrder = 'Unarchive order',\n UpdateBalances = 'Updates balance',\n UpdateColumns = 'Update columns',\n UpdateCredential = 'Update credential',\n UpdateCustomerQuote = 'Update customer quote',\n UpdateLoanQuoteRequest = 'Update loan quote request',\n UpdateMarketAccount = 'Update market account',\n UpdateMarketCard = 'Update market card',\n UpdateMarketSelection = 'Update market selection',\n UpdateOptionFilter = 'Update option filter',\n UpdateOptionStrike = 'Update option strike',\n UpdateOrder = 'Update order',\n UpdateOrderPreset = 'Update order preset',\n UpdateTransferConfigRow = 'Update transfer config row',\n UploadFileForOrderImport = 'Upload file for order import',\n ViewAllDDHOrders = 'View All DDH Orders',\n ViewAllExpiries = 'View All Expiries',\n ViewAllOrderBooks = 'View All Order Books',\n ViewCredential = 'View Credential',\n ViewDeepDive = 'View DeepDive',\n ViewDynamicDeltaHedgingTooltip = 'View Dynamic Delta Hedging Tooltip',\n ViewMarketsTabSettings = 'View markets tab settings',\n ViewMktsTooltip = 'View Mkts tooltip',\n ViewOpenMarketOrder = 'View open market order',\n ViewParentOrderDetails = 'View Parent Order Details',\n ViewParamsTooltip = 'View params tooltip',\n ViewReportTooltip = 'View report tooltip',\n ViewSection = 'View section',\n ViewSingleExpiry = 'View Single Expiry',\n ViewStrategyTooltip = 'View strategy tooltip',\n ViewTimelineDiff = 'View timeline diff',\n ViewTimelineJSON = 'View timeline JSON',\n ViewTradeHistory = 'View trade history',\n ViewTradingControl = 'View Trading Control',\n ViewTradingControlDefaultSettings = 'View Default Settings',\n WebAppDismissed = 'Web app dismissed',\n WebAppInstalled = 'Web app installed',\n // Keep values sorted\n}\n\nexport enum MixpanelMetadata {\n AllowedSlippage = 'Allowed slippage',\n AlwaysDisplayBestBidOffer = 'Always Display Best Bid/Offer',\n BlotterTabCounts = 'Blotter Tab Counts',\n EnableClickToTrade = 'Enable click-to-trade',\n EnableOrderGroups = 'Enable order groups',\n EnableSyntheticCurrency = 'Enable synthetic counter ccy',\n Environment = 'Environment',\n FirmLiquidity = 'Firm Liquidity',\n LastSeen = 'Last seen',\n MaxCardColumns = 'Max card columns',\n MaxCardRows = 'Max card rows',\n MaxCards = 'Max cards',\n NumberOfCardsWithCompactView = 'Number of cards with compact view',\n NumberOfCardsWithExpandedView = 'Number of cards with expanded view',\n NumberOfCardsWithMarketsList = 'Number of cards with markets list',\n NumberOfCardsWithMiniChart = 'Number of cards with mini chart',\n NumberOfCardsWithPreset = 'Number of cards with Order Preset',\n NumberOfCardsWithPriceLadder = 'Number of cards with price ladder',\n NumberOfCardsWithVolumeLadder = 'Number of cards with volume ladder',\n NumberOfFavoriteSymbols = 'Number of Favorite Symbols',\n NumberOfOpenDeepDiveTabs = 'Number of Open DeepDive Tabs',\n NumberOfOpenMarketCards = 'Number of open Market Cards',\n NumberOfOpenMarketTabs = 'Number of open Markets Tabs',\n NumberOfOpenOptionTabs = 'Number of open Option Tabs',\n NumberOfOpenOrderDetailsTabs = 'Number of Open OrderDetails Tabs',\n NumberOfOrderPresets = 'Number of Order Presets',\n NumberOfTabs = 'Number Of tabs',\n Release = 'Release',\n ShowAllInPrices = 'Show AllIn prices',\n ShowWatchlist = 'Show Watchlist',\n UseSubaccounts = 'Use subaccounts',\n UseTradeAllocations = 'Use trade allocations',\n Version = 'Version',\n DisplayMode = 'Display mode',\n Locale = 'Locale',\n}\n\nexport enum MixpanelEventProperty {\n Amount = 'amount',\n App = 'app',\n Blotter = 'blotter',\n CardType = 'cardType',\n Checked = 'checked',\n Column = 'column',\n ColumnIndex = 'columnIndex',\n Columns = 'columns',\n Comment = 'comment',\n Currency = 'currency',\n Enabled = 'enabled',\n DisplayMode = 'DisplayMode',\n Existing = 'Existing',\n Expanded = 'expanded',\n Filter = 'filter',\n Height = 'height',\n Hide = 'Hide',\n ID = 'ID',\n IncludesComment = 'includesComment',\n Intent = 'intent',\n IsMonitoringUser = 'isMonitoringUser',\n Layout = 'layout',\n Locale = 'locale',\n Method = 'Method',\n Minimized = 'minimized',\n PanelType = 'Panel type',\n Path = 'path',\n Perspective = 'Perspective',\n Pinned = 'pinned',\n ProductType = 'productType',\n Section = 'section',\n Side = 'side',\n Size = 'size',\n Source = 'source',\n Strategy = 'strategy',\n TabIndex = 'tabIndex',\n TabLabel = 'tabLabel',\n TabLength = 'tabLength',\n TabType = 'tabType',\n Tag = 'tag',\n Title = 'Title',\n Tour = 'Tour',\n Type = 'type',\n Value = 'value',\n View = 'view',\n WindowHeight = 'windowHeight',\n WindowWidth = 'windowWidth',\n}\n\n/** MixpanelEventSource provide a context for the {@link MixpanelEvent} tracking events */\nexport enum MixpanelEventSource {\n AccountLedgerEventsDetails = 'Account Ledger Events Details',\n PositionAutoHedgingMiniBlotter = 'Position AutoHedging Mini Blotter',\n PositionAutoHedgingDrawer = 'Position AutoHedging Drawer',\n AllocationsBlotter = 'Allocations Blotter',\n PositionAutoHedging = 'Position Autohedging',\n AnalyticsDailyOverviewReport = 'Analytics daily overview report',\n AnalyticsMarketDetailsReport = 'Analytics market details report',\n AnalyticsMarketsOverviewReport = 'Analytics market overview report',\n AnalyticsMonthlyOverviewReport = 'Analytics monthly overview report',\n AnalyticsStrategiesOverviewReport = 'Analytics strategy overview report',\n AnalyticsStrategyDetailsReport = 'Analytics strategy details report',\n AnalyticsSymbolDetailsReport = 'Analytics symbol details report',\n AnalyticsSymbolsOverviewReport = 'Analytics symbol overview report',\n BalancesBlotter = 'Balances Blotter',\n BidOfferButtons = 'Bid/Offer buttons',\n BuyingPowerBlotter = 'Buying Power Blotter',\n CandleSticks = 'CandleSticks',\n CareExecutionReportsBlotter = 'Care Execution Reports Blotter',\n CareOrderBlotter = 'Care Order Blotter',\n CareOrderForm = 'CareOrderForm',\n Credentials = 'Credentials',\n CreditBlotter = 'Credit Blotter',\n CustomerExecutionReportsBlotter = 'CustomerExecutionReportsBlotter',\n CustomerOrdersBlotter = 'CustomerOrdersBlotter',\n CustomerQuotesBlotter = 'CustomerQuotesBlotter',\n CustomerTradesBlotter = 'CustomerTradesBlotter',\n CustomerSettlementDrawer = 'Customer Settlement Drawer',\n CancelOrderDialog = 'CancelOrderDialog',\n DDHOrders = 'DDH Orders',\n DeepDive = 'Deepdive',\n DetailsDrawer = 'Details drawer',\n ExecutionReportsBlotter = 'ExecutionReportsBlotter',\n Header = 'Header',\n KeyboardShortcut = 'Keyboard shortcut',\n LoanBook = 'Loanbook',\n LoanDetails = 'Loan details',\n MarketCard = 'Market Card',\n MarketExecutionReportsBlotter = 'MarketExecutionReportsBlotter',\n MarketOrdersBlotter = 'MarketOrdersBlotter',\n MarketQuotesBlotter = 'MarketQuotesBlotter',\n MarketsPanel = 'Markets Panel',\n MarketsTab = 'Markets tab',\n MarketTradesBlotter = 'MarketTradesBlotter',\n ManualPricingForm = 'Manual pricing form',\n MonitoringCustomerExecutionReportsBlotter = 'Monitoring Customer Execution Reports Blotter',\n MonitoringCustomerOrdersBlotter = 'Monitoring Customer Orders Blotter',\n MonitoringCustomerQuotesBlotter = 'Monitoring Customer Quotes Blotter',\n MonitoringCustomerTradesBlotter = 'Monitoring Customer Trades Blotter',\n MonitoringExecutionReportsBlotter = 'Monitoring Execution Reports Blotter',\n MonitoringMarketCashEventsBlotter = 'Monitoring Market Cash Transactions Blotter',\n MonitoringMarketExecutionReportsBlotter = 'Monitoring Market Execution Reports Blotter',\n MonitoringMarketOrdersBlotter = 'Monitoring Market Orders Blotter',\n MonitoringMarketQuotesBlotter = 'Monitoring Market Quotes Blotter',\n MonitoringMarketTradesBlotter = 'Monitoring Market Trades Blotter',\n MonitoringOrdersBlotter = 'Monitoring Orders Blotter',\n MonitoringQuotesBlotter = 'Monitoring Quotes Blotter',\n MonitoringTradesBlotter = 'Monitoring Trades Blotter',\n MultilegComboScreen = 'Multileg Combo Screen',\n MultilegModal = 'Multileg Modal',\n MultilegSecurityMaster = 'Multileg security master',\n PriceGrid = 'Price Grid',\n CareOrders = 'Care Orders',\n NavigationSidebar = 'Navigation sidebar',\n OMS = 'OMS',\n Options = 'Options',\n OptionsChain = 'Options chain',\n OrderAnalytic = 'Order Analytic',\n OrderCard = 'Order card',\n OrderDetails = 'Order Details',\n OrderDetailsAllocationsTab = 'Order Details Allocations Tab',\n OrderDetailsExecutionReportsTab = 'Order Details Execution Reports Tab',\n OrderDetailsMarketExecutionReportsTab = 'Order Details Market Execution Reports Tab',\n OrderDetailsMarketOrdersTab = 'Order Details Market Orders Tab',\n OrderDetailsTradesTab = 'Order Details Trades Tab',\n OrderForm = 'Order form',\n OrdersBlotter = 'Orders blotter',\n Portfolio = 'Portfolio',\n // replace after PMS fully releases\n PortfolioAddresses = 'Portfolio Addresses (a.k.a Settings->Address Defaults)',\n PortfolioCreditAndSettlement = 'Portfolio Credit And Settlement',\n PortfolioPerformance = 'Portfolio Performance',\n PortfolioRecon = 'Portfolio Recon',\n // replace after PMS fully releases\n PortfolioSettlement = 'Portfolio Settlement (a.k.a. Dealer->Client Settlement)',\n PortfolioDashboard = 'Portfolio Dashboard',\n // Start of Portfolio Management sources\n PortfolioManagementOverview = 'Portfolio Management Overview',\n PortfolioManagementPerformance = 'Portfolio Management Performance',\n PortfolioManagementTransactions = 'Portfolio Management Transactions',\n PortfolioManagementReports = 'Portfolio Management Reports',\n PortfolioRiskExposures = 'Portfolio Risk Exposures',\n PortfolioOperationsOverview = 'Portfolio Operations Overview',\n PortfolioOperationsTransactions = 'Portfolio Operations Transactions',\n PortfolioOperationsSettlement = 'Portfolio Operations Settlement',\n PortfolioOperationsReconciliation = 'Portfolio Operations Reconciliation',\n PortfolioOperationsReports = 'Portfolio Operations Reports',\n // End of Portfolio Management sources\n PositionsBlotter = 'Positions Blotter',\n PowerSearch = 'PowerSearch',\n PriceLadder = 'Price ladder',\n QuotesBlotter = 'Quotes Blotter',\n ReconMismatchesBlotter = 'Recon Mismatches Blotter',\n ReconMismatchesDetails = 'Recon Mismatches Details',\n ReconMismatchesDetailsResolveAllButton = 'Recon Mismatches Details Resolve All Button',\n ReconMismatchesDetailsResolveOneButton = 'Recon Mismatches Details Resolve One Button',\n ReconMismatchesResolutionDrawer = 'Recon Mismatches Resolution Drawer',\n RfqCard = 'RFQ card',\n RfqForm = 'RFQ form',\n RfqQuote = 'RFQ quote',\n RfqTradeBest = 'RFQ trade best',\n SalesRfqCard = 'Sales RFQ Card',\n SecurityMaster = 'Security Master',\n SubAccountRollups = 'SubAccount Rollups',\n SubAccounts = 'SubAccounts',\n SymbolSelector = 'Symbol Selector',\n TopOfBook = 'Top of Book',\n TradeAllocationsBlotter = 'Trade Allocations Blotter',\n PositionAutoHedgingBlotter = 'Position AutoHedging Blotter',\n TradesBlotter = 'Trades blotter',\n TradingAggregations = 'Trading Aggregations',\n TradingControls = 'Trading Controls',\n TransferBlotter = 'Transfers Blotter',\n TreasuryBlotter = 'Treasury blotter',\n TreasuryManagement = 'Treasury Management',\n Users = 'Users',\n VolumeLadder = 'Volume ladder',\n Watchlist = 'Watchlist',\n}\n","/* eslint-disable */\n// This file is auto-generated by sbegen, do not edit!\n\nexport enum AddressRoutingTypeEnum {\n /** Fiat routing info type */\n Fiat = 'Fiat',\n /** Crypto routing info type */\n Crypto = 'Crypto',\n}\n\nexport enum AggregationTypeEnum {\n /** System */\n System = 'System',\n /** Customer */\n Customer = 'Customer',\n /** User */\n User = 'User',\n}\n\nexport enum AggregationWindowEnum {\n /** One month */\n AggregationWindow_1MO = 'AggregationWindow_1MO',\n /** One week */\n AggregationWindow_1W = 'AggregationWindow_1W',\n /** One day */\n AggregationWindow_1D = 'AggregationWindow_1D',\n /** Last 7 days */\n AggregationWindow_L7D = 'AggregationWindow_L7D',\n /** Last 30 days */\n AggregationWindow_L30D = 'AggregationWindow_L30D',\n /** Month to Date */\n AggregationWindow_MTD = 'AggregationWindow_MTD',\n /** Week to Date */\n AggregationWindow_WTD = 'AggregationWindow_WTD',\n}\n\nexport enum AggregatorDebugFlagEnum {\n /** Pass Debug Flag to Aggregator ViewModel */\n Debug = 'Debug',\n /** Include Stale Markets in MarketDataSnapshot */\n IncludeStale = 'IncludeStale',\n /** Include market status in ReferenceRateSnapshot */\n RefRateIncludeMarkets = 'RefRateIncludeMarkets',\n /** Include Variance in ReferenceRateSnapshot */\n RefRateIncludeVariance = 'RefRateIncludeVariance',\n /** Include SpreadMeasure in ReferenceRateSnapshot */\n RefRateIncludeSpreadMeasure = 'RefRateIncludeSpreadMeasure',\n}\n\nexport enum AggressorFlagEnum {\n /** Passive */\n Passive = 'Passive',\n /** Active */\n Active = 'Active',\n /** Dealer */\n Dealer = 'Dealer',\n}\n\nexport enum AlgoConfigurationParameterEnum {\n /** Number of resting levels */\n NumRestingLevels = 'NumRestingLevels',\n /** Sweep dealer markets */\n SweepDealerMarkets = 'SweepDealerMarkets',\n /** Trade size multiplier */\n TradeSizeMultiplier = 'TradeSizeMultiplier',\n /** Child order slippage */\n ChildOrderSlippage = 'ChildOrderSlippage',\n /** Anti gaming exclude small sizes */\n AntiGamingExcludeSmallSizes = 'AntiGamingExcludeSmallSizes',\n /** Sweep dealer markets */\n AntiGamingPriceLevelMinAgeMillis = 'AntiGamingPriceLevelMinAgeMillis',\n /** Anti gaming min size adjustment */\n AntiGamingMinSizeAdjustment = 'AntiGamingMinSizeAdjustment',\n /** Anti gaming max levels to skip */\n AntiGamingMaxLevelsToSkip = 'AntiGamingMaxLevelsToSkip',\n /** Anti gaming only skip top levels */\n AntiGamingOnlySkipTopLevels = 'AntiGamingOnlySkipTopLevels',\n /** Deeper resting levels enabled */\n DeeperRestingLevelsEnabled = 'DeeperRestingLevelsEnabled',\n /** Auto reschedule behind ratio threshold */\n AutoRescheduleBehindRatioThreshold = 'AutoRescheduleBehindRatioThreshold',\n /** Auto reschedule tob size multiplier */\n AutoRescheduleTobSizeMultiplier = 'AutoRescheduleTobSizeMultiplier',\n /** Auto reschedule max attempt */\n AutoRescheduleMaxAttempt = 'AutoRescheduleMaxAttempt',\n /** Auto reschedule disable period millis */\n AutoRescheduleDisablePeriodMillis = 'AutoRescheduleDisablePeriodMillis',\n /** Auto reschedule wait period millis */\n AutoRescheduleWaitPeriodMillis = 'AutoRescheduleWaitPeriodMillis',\n /** Crossing agent max levels to consider for clip size */\n CrossingAgentMaxLevelsToConsiderForClipSize = 'CrossingAgentMaxLevelsToConsiderForClipSize',\n /** Crossing agent max clip size multiplier */\n CrossingAgentMaxClipSizeMultiplier = 'CrossingAgentMaxClipSizeMultiplier',\n /** Crossing agent max price through slippage */\n CrossingAgentMaxPriceThroughSlippage = 'CrossingAgentMaxPriceThroughSlippage',\n /** Crossing agent max size variance */\n CrossingAgentSizeVariance = 'CrossingAgentSizeVariance',\n /** Crossing agent min trade size in usd */\n CrossingAgentMinTradeSizeInUSD = 'CrossingAgentMinTradeSizeInUSD',\n /** Trade size throttle millis */\n TradeSizeThrottleMillis = 'TradeSizeThrottleMillis',\n /** Price protection disabled */\n PriceProtectionDisabled = 'PriceProtectionDisabled',\n /** Price protection exclusion threshold */\n PriceProtectionExclusionThreshold = 'PriceProtectionExclusionThreshold',\n /** Price protection passive price update seconds */\n PriceProtectionPassivePriceUpdateSeconds = 'PriceProtectionPassivePriceUpdateSeconds',\n /** Price protection passive leeway spread multiplier */\n PriceProtectionPassiveLeewaySpreadMultiplier = 'PriceProtectionPassiveLeewaySpreadMultiplier',\n /** Price protection aggressive price update seconds */\n PriceProtectionAggressivePriceUpdateSeconds = 'PriceProtectionAggressivePriceUpdateSeconds',\n /** Price protection aggressive leeway spread multiplier */\n PriceProtectionAggressiveLeewaySpreadMultiplier = 'PriceProtectionAggressiveLeewaySpreadMultiplier',\n /** Price protection SOR bps threshold */\n PriceProtectionSORThresholdBps = 'PriceProtectionSORThresholdBps',\n /** Price protection SOR usd loss threshold */\n PriceProtectionSORLossThresholdUsd = 'PriceProtectionSORLossThresholdUsd',\n /** Multileg max rest outside bps threshold */\n MultilegMaxRestOutsideThresholdBps = 'MultilegMaxRestOutsideThresholdBps',\n /** Multileg limit random resting qty USD threshold */\n MultilegLimitRandomRestingQtyThresholdUSD = 'MultilegLimitRandomRestingQtyThresholdUSD',\n /** Max percent of order ahead */\n MaxPercentOfOrderAhead = 'MaxPercentOfOrderAhead',\n /** Max percent of order behind */\n MaxPercentOfOrderBehind = 'MaxPercentOfOrderBehind',\n /** Max seconds ahead of schedule */\n MaxSecondsAheadOfSchedule = 'MaxSecondsAheadOfSchedule',\n /** Max seconds behind schedule */\n MaxSecondsBehindSchedule = 'MaxSecondsBehindSchedule',\n /** Max percent leg behind to hedge */\n MaxPercentLegBehindToHedge = 'MaxPercentLegBehindToHedge',\n /** Max percent of volume behind */\n MaxPercentOfVolumeBehind = 'MaxPercentOfVolumeBehind',\n /** Min target participation rate */\n MinTargetParticipationRate = 'MinTargetParticipationRate',\n /** Mid target participate rate */\n MidTargetParticipationRate = 'MidTargetParticipationRate',\n /** Max target participate rate */\n MaxTargetParticipationRate = 'MaxTargetParticipationRate',\n /** Minimum market volume predictability percentage */\n MinimumMarketVolumePredictabilityPercentage = 'MinimumMarketVolumePredictabilityPercentage',\n /** Enable conditional crossing based on spread changes for algo orders */\n EnableReactiveSpreadCrossing = 'EnableReactiveSpreadCrossing',\n /** Minimum spread multiplier */\n ReactiveSpreadMinMultiplier = 'ReactiveSpreadMinMultiplier',\n /** Maximum spread multiplier */\n ReactiveSpreadMaxMultiplier = 'ReactiveSpreadMaxMultiplier',\n /** Disable parallel lower bound for TWAPs */\n DisableTwapParallelLowerBound = 'DisableTwapParallelLowerBound',\n /** When set, the highest supported TimeInForce value is used for crossing child orders */\n UseHighestTimeInForceForCrossing = 'UseHighestTimeInForceForCrossing',\n /** Enable price cap for TWAP resting orders */\n EnableTwapRestingPriceCap = 'EnableTwapRestingPriceCap',\n /** Minimum USD amount required for resting */\n MinRestingSizeInUSD = 'MinRestingSizeInUSD',\n /** Aggressive child orders should be aligned or not */\n AlignAggressiveChildOrders = 'AlignAggressiveChildOrders',\n /** Mean response time for a given market when aligning child orders */\n MeanMarketResponseTimeMillis = 'MeanMarketResponseTimeMillis',\n /** Threshold for reduce first resting orders to activate the feature */\n ReduceFirstRestingThresholdActivate = 'ReduceFirstRestingThresholdActivate',\n /** Threshold for reduce first resting orders to deactivate the feature */\n ReduceFirstRestingThresholdDeactivate = 'ReduceFirstRestingThresholdDeactivate',\n}\n\nexport enum AlgoInstructionsEnum {\n /** PostOnly */\n PostOnly = 'PostOnly',\n /** Iceberg */\n Iceberg = 'Iceberg',\n /** FullAmount */\n FullAmount = 'FullAmount',\n /** Passthrough */\n Passthrough = 'Passthrough',\n /** LegCrossingToInitiate */\n LegCrossingToInitiate = 'LegCrossingToInitiate',\n /** LegRestingToInitiate */\n LegRestingToInitiate = 'LegRestingToInitiate',\n /** LegRestPegged */\n LegRestPegged = 'LegRestPegged',\n /** LegHedgePassivePegged */\n LegHedgePassivePegged = 'LegHedgePassivePegged',\n /** LegHedgeAggressiveAtMarket */\n LegHedgeAggressiveAtMarket = 'LegHedgeAggressiveAtMarket',\n /** LegRestingAgainstPassiveExit */\n LegRestingAgainstPassiveExit = 'LegRestingAgainstPassiveExit',\n /** MakerOnly */\n MakerOnly = 'MakerOnly',\n}\n\nexport enum AlgoTypeEnum {\n /** Default strategy type */\n Base = 'Base',\n /** TWAP strategy */\n TWAP = 'TWAP',\n /** Pegged strategy */\n Pegged = 'Pegged',\n /** TimeSliced strategy */\n TimeSliced = 'TimeSliced',\n /** SteadyPace strategy */\n SteadyPace = 'SteadyPace',\n /** Percentage of volume strategy */\n POV = 'POV',\n}\n\nexport enum AllocationReasonEnum {\n /** OpportunisticSpread */\n OpportunisticSpread = 'OpportunisticSpread',\n}\n\nexport enum AllocationRequestTypeEnum {\n /** New */\n New = 'New',\n /** Update */\n Update = 'Update',\n /** Close */\n Close = 'Close',\n}\n\nexport enum AllocationStatusEnum {\n /** Open */\n Open = 'Open',\n /** Closed */\n Closed = 'Closed',\n}\n\nexport enum AllocationTypeEnum {\n /** Resting */\n Resting = 'Resting',\n /** Crossing */\n Crossing = 'Crossing',\n}\n\nexport enum AllocationValueTypeEnum {\n /** Percentage */\n Percentage = 'Percentage',\n /** Quantity */\n Quantity = 'Quantity',\n}\n\nexport enum AnalyticsOrderDepthEnum {\n /** Parent */\n Parent = 'Parent',\n /** Child */\n Child = 'Child',\n}\n\nexport enum AnalyticsSpreadTypeEnum {\n /** BidHalfSpread */\n BidHalfSpread = 'BidHalfSpread',\n /** AskHalfSpread */\n AskHalfSpread = 'AskHalfSpread',\n /** RFQHalfSpread */\n RFQHalfSpread = 'RFQHalfSpread',\n}\n\nexport enum ApiPermissionActionEnum {\n /** All */\n All = 'All',\n /** Read */\n Read = 'Read',\n /** Write */\n Write = 'Write',\n /** Admin */\n Admin = 'Admin',\n}\n\nexport enum ArchivedStatusEnum {\n /** order is not archived */\n UnArchived = 'UnArchived',\n /** order is archived */\n Archived = 'Archived',\n}\n\nexport enum AssetTransactionAllocationStatusEnum {\n /** Unset initial state */\n Unallocated = 'Unallocated',\n /** Inferred based on account mappings and position sizes */\n Inferred = 'Inferred',\n /** Manually set by a user */\n Manual = 'Manual',\n}\n\nexport enum AssetTransactionSettlementStatusEnum {\n /** Settled, previously unseen */\n Settled = 'Settled',\n /** Unsettled */\n Unsettled = 'Unsettled',\n /** Settled, previously seen as Unsettled */\n SettledButWasUnsettled = 'SettledButWasUnsettled',\n}\n\nexport enum AssetTransactionTypeEnum {\n /** Misc transactions that affect balances */\n Misc = 'Misc',\n /** Derivative funding event. May affect RealizedPnL */\n Funding = 'Funding',\n /** PnL realization event */\n RealizedPnL = 'RealizedPnL',\n /** Trading fees. See also TradeCapture.Fee */\n TradingFee = 'TradingFee',\n /** Delivery fees. */\n DeliveryFee = 'DeliveryFee',\n /** Settlement fees. */\n SettlementFee = 'SettlementFee',\n /** Deposits. */\n Deposit = 'Deposit',\n /** Withdrawals. */\n Withdrawal = 'Withdrawal',\n /** Transfers. */\n Transfer = 'Transfer',\n /** Deposit fees. */\n DepositFee = 'DepositFee',\n /** Withdrawal fees. */\n WithdrawalFee = 'WithdrawalFee',\n /** Transfer fees. */\n TransferFee = 'TransferFee',\n /** Balance change due to spot trade */\n SpotTrade = 'SpotTrade',\n /** Transfer fees. */\n Liquidation = 'Liquidation',\n /** Transfer fees. */\n LiquidationFee = 'LiquidationFee',\n /** Unrealized (floating) PnL */\n UnrealizedPnL = 'UnrealizedPnL',\n /** Delivery of a deliverable contract (e.g. Options/Futures). Affects position. */\n Delivery = 'Delivery',\n /** Recon adjustment */\n ReconAdjustment = 'ReconAdjustment',\n /** Reward from staked assets */\n StakingReward = 'StakingReward',\n}\n\nexport enum BalanceEntryTypeEnum {\n /** Balance Reset */\n BalanceReset = 'BalanceReset',\n /** Balance Update */\n BalanceUpdate = 'BalanceUpdate',\n /** Balance Stale */\n BalanceStale = 'BalanceStale',\n /** Balance Keepalive */\n BalanceKeepalive = 'BalanceKeepalive',\n /** Trades Offline */\n BalanceOffline = 'BalanceOffline',\n}\n\nexport enum BalanceTransactionInitiatorEnum {\n /** Balance transaction request was initiated by the customer */\n Customer = 'Customer',\n /** Balance transaction request was initiated by the dealer */\n Dealer = 'Dealer',\n /** Balance transaction was created from incoming transfer */\n Transfer = 'Transfer',\n}\n\nexport enum BookTypeEnum {\n /** Raw market data */\n Raw = 'Raw',\n /** Market data is taker fee aware */\n TakerFeeAware = 'TakerFeeAware',\n /** Market data is maker fee aware */\n MakerFeeAware = 'MakerFeeAware',\n}\n\nexport enum BoolEnum {\n /** True value */\n True = 'True',\n /** False value */\n False = 'False',\n}\n\nexport enum CheckpointTypeEnum {\n /** When checkpointing is done by trade timestamp */\n TimeBased = 'TimeBased',\n /** When checkpointing is done with a monotonically increasing execution ID */\n SequenceBased = 'SequenceBased',\n}\n\nexport enum ConnectionCapabilitiesEnum {\n /** MarketDepth */\n MarketData = 'MarketData',\n /** Orders */\n Orders = 'Orders',\n /** RFQ */\n RFQ = 'RFQ',\n /** Balances */\n Balances = 'Balances',\n /** Transfers */\n Transfers = 'Transfers',\n /** No capabilities. Useful in modes to remove capabilities */\n None = 'None',\n}\n\nexport enum ConnectionDetailsEnum {\n /** MarketDepth */\n MarketDataDepth = 'MarketDataDepth',\n /** Trades */\n MarketDataTrades = 'MarketDataTrades',\n /** Orders */\n OrdersRequests = 'OrdersRequests',\n /** Orders */\n OrdersUpdates = 'OrdersUpdates',\n /** Balances */\n BalanceUpdates = 'BalanceUpdates',\n /** TradesUpdates */\n TradesUpdates = 'TradesUpdates',\n /** RFQ Requests */\n RFQ = 'RFQ',\n /** RFQ Updates */\n Transfers = 'Transfers',\n /** OrdersUpdatesPerSymbol */\n OrdersUpdatesPerSymbol = 'OrdersUpdatesPerSymbol',\n /** TradesUpdatesPerSymbol */\n TradesUpdatesPerSymbol = 'TradesUpdatesPerSymbol',\n /** Fees */\n Fees = 'Fees',\n /** Margins */\n Margins = 'Margins',\n /** TradesRecovery */\n TradesRecovery = 'TradesRecovery',\n /** AssetTransactions */\n AssetTransactions = 'AssetTransactions',\n}\n\nexport enum ConnectionErrorCodeEnum {\n /** No error */\n None = 'None',\n /** General error */\n GeneralError = 'GeneralError',\n /** Bad credentials were provided */\n BadCredentials = 'BadCredentials',\n /** Connection is unsupported by this gateway */\n UnsupportedConnection = 'UnsupportedConnection',\n}\n\nexport enum ConnectionModeEnum {\n /** Up */\n Up = 'Up',\n /** Down */\n Down = 'Down',\n}\n\nexport enum ConnectionStatusEnum {\n /** Connection is initializing */\n Starting = 'Starting',\n /** Connection is up */\n Online = 'Online',\n /** Connection keepalive */\n Keepalive = 'Keepalive',\n /** Connection is down */\n Offline = 'Offline',\n /** Connection had an error */\n Error = 'Error',\n /** Connection is stopping */\n Stopping = 'Stopping',\n /** Connection is stale */\n Stale = 'Stale',\n /** Connection is unavailable */\n Unavailable = 'Unavailable',\n /** Connection is not in session */\n NotInSession = 'NotInSession',\n /** Connection is disabled */\n Disabled = 'Disabled',\n /** Connection is rate limited */\n RateLimited = 'RateLimited',\n}\n\nexport enum ConnectionTypeEnum {\n /** MarketDepth */\n MarketDataDepth = 'MarketDataDepth',\n /** Trades */\n MarketDataTrades = 'MarketDataTrades',\n /** Orders */\n OrdersRequests = 'OrdersRequests',\n /** Orders */\n OrdersUpdates = 'OrdersUpdates',\n /** Balances */\n BalanceUpdates = 'BalanceUpdates',\n /** TradesUpdates */\n TradesUpdates = 'TradesUpdates',\n /** RFQ Requests */\n RFQ = 'RFQ',\n /** Transfers */\n Transfers = 'Transfers',\n}\n\nexport enum ConversionSourceUnitEnum {\n /** The quantity to be converted is expressed in default units (i.e. in currency if asset is a currency, or in contracts/position currency if asset is a security */\n Default = 'Default',\n /** The quantity to be converted is expressed in the base currency of the security (only valid if asset is a security) */\n BaseCurrency = 'BaseCurrency',\n /** The quantity to be converted is expressed in the quote currency of the security (only valid if asset is a security) */\n QuoteCurrency = 'QuoteCurrency',\n}\n\nexport enum CounterpartyTypeEnum {\n /** Exchange */\n Exchange = 'Exchange',\n /** Dealer */\n Dealer = 'Dealer',\n /** Custodian */\n Custodian = 'Custodian',\n /** Customer */\n Customer = 'Customer',\n /** AuthorizedParticipant */\n AuthorizedParticipant = 'AuthorizedParticipant',\n}\n\nexport enum CurrencyTagEnum {\n /** Fiat */\n Fiat = 'Fiat',\n /** StableCoin */\n StableCoin = 'StableCoin',\n}\n\nexport enum CustomInstrumentDeleteRequestStatusEnum {\n /** Security has been disabled */\n Disabled = 'Disabled',\n /** Security has been obliterated */\n Obliterated = 'Obliterated',\n /** An error occurred while processing the request */\n Error = 'Error',\n}\n\nexport enum CustomInstrumentRequestStatusEnum {\n /** A new Custom Instrument has been created */\n Created = 'Created',\n /** A matching Custom Instrument has been found */\n LookedUp = 'LookedUp',\n /** An error occurred while processing the request */\n Error = 'Error',\n /** Custom Instrument has been updated */\n Updated = 'Updated',\n /** The request was invalid or failed validation */\n Rejected = 'Rejected',\n}\n\nexport enum CustomInstrumentRequestTypeEnum {\n /** Request to create/lookup a multileg instrument */\n Multileg = 'Multileg',\n /** Request to create/lookup an option contract */\n Option = 'Option',\n}\n\nexport enum CustomerAddressStatusEnum {\n /** Customer address in pending confirmation state */\n Pending = 'Pending',\n /** Customer address in confirmed state */\n Confirmed = 'Confirmed',\n}\n\nexport enum CustomerAddressTypeEnum {\n /** Address for withdrawals */\n Withdrawal = 'Withdrawal',\n /** Address for deposits */\n Deposit = 'Deposit',\n}\n\nexport enum CustomerBalanceTransactionStatusEnum {\n /** PendingApproval */\n PendingApproval = 'PendingApproval',\n /** Rejected */\n Rejected = 'Rejected',\n /** PendingTransfer */\n PendingTransfer = 'PendingTransfer',\n /** Completed */\n Completed = 'Completed',\n /** Completed */\n Canceled = 'Canceled',\n /** Transfer has been initiated (gateway accepted the transfer request) */\n TransferInitiated = 'TransferInitiated',\n /** Transfer has been registered (request passed the validation and transfer request has been sent) */\n TransferRegistered = 'TransferRegistered',\n /** Transfer has been sent to blockchain and have txHash. Waiting for block confirmations */\n TransferPendingBlockchainConfirmation = 'TransferPendingBlockchainConfirmation',\n}\n\nexport enum CustomerBalanceTransactionTypeEnum {\n /** Customer initiated withdrawal */\n Withdrawal = 'Withdrawal',\n /** Customer initiated deposit */\n Deposit = 'Deposit',\n /** A forced customer withdrawal that can take the amount into negative */\n ForceWithdrawal = 'ForceWithdrawal',\n}\n\nexport enum CustomerContextTypeEnum {\n /** Customer context generated on new order */\n NewOrder = 'NewOrder',\n /** Customer context generated on order modification */\n OrderModification = 'OrderModification',\n /** Customer context generated when falling back to Riskless Principal */\n SwitchToRiskless = 'SwitchToRiskless',\n /** Customer context generated when order is triggered */\n OrderTriggered = 'OrderTriggered',\n}\n\nexport enum CustomerExecutionStrategyEnum {\n /** Execute with a Cover and Deal Strategy */\n RisklessPrincipal = 'RisklessPrincipal',\n /** Execute Customer Order Unhedged */\n OrderAcceptance = 'OrderAcceptance',\n}\n\nexport enum CustomerLedgerUpdateTypeEnum {\n /** Set Balance */\n Set = 'Set',\n /** Submit a Deposit Transaction */\n Deposit = 'Deposit',\n /** Submit a Withdraw Transaction */\n Withdraw = 'Withdraw',\n /** Customer Trade Resulting in Balance Transaction */\n Trade = 'Trade',\n /** Customer Trade Cancel */\n TradeCancel = 'TradeCancel',\n /** Customer Trade Amend */\n TradeAmend = 'TradeAmend',\n /** Charge a fee for customer trade */\n TradingFee = 'TradingFee',\n /** Unsettled trade resulting in balance transaction */\n Unsettled = 'Unsettled',\n}\n\nexport enum CustomerLockSourceEnum {\n /** Internal */\n Internal = 'Internal',\n /** External */\n External = 'External',\n}\n\nexport enum CustomerLockStatusEnum {\n /** Dispatched */\n Dispatched = 'Dispatched',\n /** Approved */\n Approved = 'Approved',\n /** Rejected */\n Rejected = 'Rejected',\n /** Closed */\n Closed = 'Closed',\n /** TimedOut */\n TimedOut = 'TimedOut',\n /** Updated */\n Updated = 'Updated',\n}\n\nexport enum CustomerOrderPayPreviewStatusEnum {\n /** Completed */\n Completed = 'Completed',\n /** Failed */\n Failed = 'Failed',\n /** Staled */\n Staled = 'Staled',\n}\n\nexport enum CustomerOrderPreviewTypeEnum {\n /** The preview is requested for a CustomerNewOrderSingle */\n NewOrderSingle = 'NewOrderSingle',\n /** The preview is requested for a CustomerOrderCancelReplace */\n OrderCancelReplace = 'OrderCancelReplace',\n /** The preview is requested for a customer execution */\n ExecutionReport = 'ExecutionReport',\n}\n\nexport enum CustomerOrderSummaryActionEnum {\n /** New */\n New = 'New',\n /** OrderFill */\n OrderFill = 'OrderFill',\n /** OrderCancel */\n OrderCancel = 'OrderCancel',\n /** HedgeTrade */\n HedgeTrade = 'HedgeTrade',\n /** HedgeTradeUpdate */\n HedgeTradeUpdate = 'HedgeTradeUpdate',\n /** HedgeTradeCancel */\n HedgeTradeCancel = 'HedgeTradeCancel',\n /** TradeUpdate */\n TradeUpdate = 'TradeUpdate',\n /** TradeCancel */\n TradeCancel = 'TradeCancel',\n /** Trade */\n Trade = 'Trade',\n /** DoneForDay */\n DoneForDay = 'DoneForDay',\n /** Regenerate */\n Regenerate = 'Regenerate',\n}\n\nexport enum CustomerPermissionActionEnum {\n /** Read */\n Read = 'Read',\n /** Write */\n Write = 'Write',\n /** Admin */\n Admin = 'Admin',\n}\n\nexport enum CustomerResourceEnum {\n /** Websocket Subscription: Security */\n WSSecuritySub = 'WSSecuritySub',\n /** Websocket Subscription: Currency */\n WSCurrencySub = 'WSCurrencySub',\n /** Websocket Subscription: CurrencyConversion */\n WSCurrencyConversionSub = 'WSCurrencyConversionSub',\n /** Websocket Subscription: MarketDataSnapshot */\n WSMarketDataSnapshotSub = 'WSMarketDataSnapshotSub',\n /** Websocket Subscription: OHLCV */\n WSOHLCVSub = 'WSOHLCVSub',\n /** Websocket Subscription: Balance */\n WSBalanceSub = 'WSBalanceSub',\n /** Websocket Subscription: Exposure */\n WSExposureSub = 'WSExposureSub',\n /** Websocket Subscription: Order */\n WSOrderSub = 'WSOrderSub',\n /** Websocket Subscription: ExecutionReport */\n WSExecutionReportSub = 'WSExecutionReportSub',\n /** Websocket Subscription: Trade */\n WSTradeSub = 'WSTradeSub',\n /** Websocket Subscription: Quote */\n WSQuoteSub = 'WSQuoteSub',\n /** Websocket Subscription: User */\n WSUserSub = 'WSUserSub',\n /** Websocket Subscription: MarketAccount */\n WSMarketAccountSub = 'WSMarketAccountSub',\n /** Websocket Subscription: MaxOrderSizeLimit */\n WSMaxOrderSizeLimitSub = 'WSMaxOrderSizeLimitSub',\n /** Websocket Command: NewOrderSingle */\n WSNewOrderSingle = 'WSNewOrderSingle',\n /** Websocket Command: OrderCancelRequest */\n WSOrderCancelRequest = 'WSOrderCancelRequest',\n /** Websocket Command: OrderCancelReplaceRequest */\n WSOrderCancelReplaceRequest = 'WSOrderCancelReplaceRequest',\n /** Websocket Command: QuoteRequest */\n WSQuoteRequest = 'WSQuoteRequest',\n /** Websocket Command: QuoteCancelRequest */\n WSQuoteCancelRequest = 'WSQuoteCancelRequest',\n /** Websocket Command: OrderControlRequest */\n WSOrderControlRequest = 'WSOrderControlRequest',\n /** Websocket Command: UserConfig */\n WSUserConfig = 'WSUserConfig',\n /** REST Request - GET: OHLCV */\n REST_GET_OHLCV = 'REST_GET_OHLCV',\n /** REST Request - GET: ApiKeys */\n REST_GET_ApiKeys = 'REST_GET_ApiKeys',\n /** REST Request - POST: ApiKey */\n REST_POST_ApiKey = 'REST_POST_ApiKey',\n /** REST Request - DELETE: ApiKey */\n REST_DELETE_ApiKey = 'REST_DELETE_ApiKey',\n /** Websocket Subscription - BalanceTransaction */\n WSBalanceTransactionSub = 'WSBalanceTransactionSub',\n /** Websocket Command - NewWithdrawRequest */\n WSNewWithdrawRequest = 'WSNewWithdrawRequest',\n /** REST Request - PATCH: ApiKey Permissions */\n REST_PATCH_ApiKey_Perms = 'REST_PATCH_ApiKey_Perms',\n /** FIX Message - NewOrderSingle */\n FIXNewOrderSingle = 'FIXNewOrderSingle',\n /** FIX Message - OrderCancelRequest */\n FIXOrderCancelRequest = 'FIXOrderCancelRequest',\n /** FIX Message - OrderCancelReplaceRequest */\n FIXOrderCancelReplaceRequest = 'FIXOrderCancelReplaceRequest',\n /** FIX Message - MarketDataSnapshot */\n FIXMarketDataRequest = 'FIXMarketDataRequest',\n /** FIX Message - SecurityListRequest */\n FIXSecurityListRequest = 'FIXSecurityListRequest',\n /** FIX Message - ExecutionReport */\n FIXExecutionReport = 'FIXExecutionReport',\n /** FIX Message - CancelReject */\n FIXCancelReject = 'FIXCancelReject',\n /** REST Request - PATCH: ApiKey */\n REST_PATCH_ApiKey = 'REST_PATCH_ApiKey',\n /** Websocket Command - NewDepositRequest */\n WSNewDepositRequest = 'WSNewDepositRequest',\n /** Websocket Subscription: Address */\n WSAddressSub = 'WSAddressSub',\n /** REST Request - GET: Address */\n REST_GET_Address = 'REST_GET_Address',\n /** REST Request - POST: Address */\n REST_POST_Address = 'REST_POST_Address',\n /** REST Request - GET: Users */\n REST_GET_Users = 'REST_GET_Users',\n /** Websocket Subscription: Ping */\n WSPing = 'WSPing',\n /** FIX Message - QuoteRequest */\n FIXQuoteRequest = 'FIXQuoteRequest',\n /** FIX Message - QuoteRequestReject */\n FIXQuoteRequestReject = 'FIXQuoteRequestReject',\n /** FIX Message - Quote */\n FIXQuote = 'FIXQuote',\n /** FIX Message - QuoteCancel */\n FIXQuoteCancel = 'FIXQuoteCancel',\n /** Websocket Subscription: Position */\n WSPositionSub = 'WSPositionSub',\n /** Websocket Subscription: FundingEvent */\n WSFundingEventSub = 'WSFundingEventSub',\n /** Websocket Subscription: FeeTier */\n WSFeeTier = 'WSFeeTier',\n /** Websocket Subscription: CurrentFeeTier */\n WSCurrentFeeTier = 'WSCurrentFeeTier',\n /** REST Request - POST: Max order amount */\n REST_POST_MaxOrderAmount = 'REST_POST_MaxOrderAmount',\n /** REST Request - POST: Order pay preview */\n REST_POST_OrderPayPreview = 'REST_POST_OrderPayPreview',\n}\n\nexport enum CustomerRiskApprovalStatusEnum {\n /** Order or QuoteRequest is approved for trading */\n Approved = 'Approved',\n /** Order or QuoteRequest is rejected */\n Rejected = 'Rejected',\n /** Order or QuoteRequest is pending approval */\n Pending = 'Pending',\n}\n\nexport enum CustomerTransactionRejectReasonEnum {\n /** Exceeds balances */\n ExceedsBalances = 'ExceedsBalances',\n /** Validation error */\n ValidationError = 'ValidationError',\n /** Internal error */\n InternalError = 'InternalError',\n /** Related transfer was rejected */\n TransferRejected = 'TransferRejected',\n}\n\nexport enum CustomerViewCancelTypeEnum {\n /** Cancel a single request */\n Request = 'Request',\n /** Cancel all requests for a customer */\n Customer = 'Customer',\n /** Cancel all requests for a client */\n Client = 'Client',\n /** Cancel all requests for a customer session */\n Session = 'Session',\n}\n\nexport enum CustomerWorkflowEnum {\n /** Order Actions Originating from the System */\n System = 'System',\n /** Order Actions Originating from the Whitelabel RFQ Workflow */\n WhitelabelRFQ = 'WhitelabelRFQ',\n /** Order Actions Originating from the Whitelabel Order Workflow */\n WhitelabelOrder = 'WhitelabelOrder',\n /** Order Actions Originating from the CustomerAPI RFQ Workflow */\n CustomerAPIRFQ = 'CustomerAPIRFQ',\n /** Order Actions from the CustomerAPI Order Workflow */\n CustomerAPIOrder = 'CustomerAPIOrder',\n /** Order Actions Originating from the Sales RFQ Workflow */\n SalesRFQ = 'SalesRFQ',\n /** Order Actions Originating from the Sales Orders Workflow */\n SalesOrder = 'SalesOrder',\n /** Order Actions Originating from Non-Sales DealerProxy RFQ Workflow */\n DealerProxyRFQ = 'DealerProxyRFQ',\n /** Order Actions Originating from Non-Sales DealerProxy Order Workflow */\n DealerProxyOrder = 'DealerProxyOrder',\n /** Order Actions originating from the Mobile WL RFQ Workflow */\n MobileWhitelabelRFQ = 'MobileWhitelabelRFQ',\n /** Order Actions originating from the Mobile WL Order Workflow */\n MobileWhitelabelOrder = 'MobileWhitelabelOrder',\n /** Order Actions originating from the Customer FIX Order Workflow */\n CustomerFIXOrder = 'CustomerFIXOrder',\n /** Order Actions originating from the Customer FIX RFQ Workflow */\n CustomerFIXRFQ = 'CustomerFIXRFQ',\n}\n\nexport enum CxlRejReasonEnum {\n /** UnknownOrder */\n UnknownOrder = 'UnknownOrder',\n /** Broker */\n Broker = 'Broker',\n /** OrderAlreadyInPendingCancelOrPendingReplaceStatus */\n OrderAlreadyInPendingCancelOrPendingReplaceStatus = 'OrderAlreadyInPendingCancelOrPendingReplaceStatus',\n /** DuplicateClOrdID */\n DuplicateClOrdID = 'DuplicateClOrdID',\n /** TooLateToCancel */\n TooLateToCancel = 'TooLateToCancel',\n /** StaleRequest */\n StaleRequest = 'StaleRequest',\n /** RateLimit */\n RateLimit = 'RateLimit',\n /** InvalidStrategy */\n InvalidStrategy = 'InvalidStrategy',\n /** InternalError */\n InternalError = 'InternalError',\n /** AmbiguousMarketAccount */\n AmbiguousMarketAccount = 'AmbiguousMarketAccount',\n /** OrderExceedsLimit */\n OrderExceedsLimit = 'OrderExceedsLimit',\n /** SubAccountPermission */\n SubAccountPermission = 'SubAccountPermission',\n /** SelfTradePrevention */\n SelfTradePrevention = 'SelfTradePrevention',\n /** Other */\n Other = 'Other',\n}\n\nexport enum CxlRejResponseToEnum {\n /** OrderCancelRequest */\n OrderCancelRequest = 'OrderCancelRequest',\n /** OrderCancelReplaceRequest */\n OrderCancelReplaceRequest = 'OrderCancelReplaceRequest',\n /** OrderPauseRequest */\n OrderPauseRequest = 'OrderPauseRequest',\n /** OrderResumeRequest */\n OrderResumeRequest = 'OrderResumeRequest',\n /** OrderAdminRequest */\n OrderAdminRequest = 'OrderAdminRequest',\n}\n\nexport enum DecisionLogTypeEnum {\n /** NewDecision */\n NewDecision = 'NewDecision',\n /** Periodic */\n Periodic = 'Periodic',\n}\n\nexport enum DecisionStatusEnum {\n /** Order routing decision is running normally */\n Active = 'Active',\n /** Order routing decision is paused */\n Paused = 'Paused',\n /** Order routing decision is pending pausing */\n PendingPause = 'PendingPause',\n /** Order routing decision is pending resuming */\n PendingResume = 'PendingResume',\n /** Waiting for start time */\n WaitingForStartTime = 'WaitingForStartTime',\n /** Waiting for trigger */\n WaitingForTrigger = 'WaitingForTrigger',\n /** Staged order executes once user resumes order */\n Staged = 'Staged',\n /** Order routing decision is temporarily paused by the system due to error(s) */\n SystemPaused = 'SystemPaused',\n}\n\nexport enum DedupModelEntryTypeEnum {\n /** Entry is part of the current lookback period. */\n Current = 'Current',\n /** Entry is part of the previous lookback period. */\n Previous = 'Previous',\n}\n\nexport enum DeleteOperationEnum {\n /** Disabled, a soft-delete */\n Disable = 'Disable',\n /** Full or hard-delete */\n Delete = 'Delete',\n}\n\nexport enum DeprecatedApplicationEventTypeEnum {\n /** Startup */\n Startup = 'Startup',\n /** Shutdown */\n Shutdown = 'Shutdown',\n /** Error */\n Error = 'Error',\n}\n\nexport enum DeprecatedCustomInstrumentSnapshotRequestStatusEnum {\n /** Snapshot start */\n SnapshotStart = 'SnapshotStart',\n /** Snapshot end */\n SnapshotEnd = 'SnapshotEnd',\n /** An error occurred while processing the request */\n Error = 'Error',\n}\n\nexport enum DepthTypeEnum {\n /** Price levels */\n Price = 'Price',\n /** VWAP levels */\n VWAP = 'VWAP',\n /** Interpolated levels */\n Interpolated = 'Interpolated',\n}\n\nexport enum ESignGatewayEventTypeEnum {\n /** Sent */\n Sent = 'Sent',\n /** Signed */\n Signed = 'Signed',\n /** Completed */\n Completed = 'Completed',\n /** Declined */\n Declined = 'Declined',\n /** Error */\n Error = 'Error',\n /** Voided */\n Voided = 'Voided',\n /** Expired */\n Expired = 'Expired',\n}\n\nexport enum ESignRecipientStatusEnum {\n /** PendingSignature */\n PendingSignature = 'PendingSignature',\n /** Signed */\n Signed = 'Signed',\n /** Rejected */\n Rejected = 'Rejected',\n}\n\nexport enum ESignStatusEnum {\n /** PendingCreate */\n PendingCreate = 'PendingCreate',\n /** PendingSignatures */\n PendingSignatures = 'PendingSignatures',\n /** Completed */\n Completed = 'Completed',\n /** Declined */\n Declined = 'Declined',\n /** Error */\n Error = 'Error',\n /** Voided */\n Voided = 'Voided',\n /** Expired */\n Expired = 'Expired',\n}\n\nexport enum ErrorActionEnum {\n /** Cancel */\n Cancel = 'Cancel',\n /** Pause */\n Pause = 'Pause',\n}\n\nexport enum EventIndicatorEnum {\n /** 0=Reserved for future use */\n Reserved1 = 'Reserved1',\n /** 0=Reserved for future use */\n Reserved2 = 'Reserved2',\n /** 0=Reserved for future use */\n Reserved3 = 'Reserved3',\n /** 0=Reserved for future use */\n Reserved4 = 'Reserved4',\n /** 1=Message is for tracking internal state and not for external distribution */\n InternalFlag = 'InternalFlag',\n /** 1=Message is sent during recovery process */\n RecoveryFlag = 'RecoveryFlag',\n /** 1=Message is the beginning of a stream or a snapshot */\n ResetFlag = 'ResetFlag',\n /** 0=Last message for the event, 1=Expect more messages for this atomic event */\n ContinuationFlag = 'ContinuationFlag',\n}\n\nexport enum ExecTypeEnum {\n /** New */\n New = 'New',\n /** Trade */\n Trade = 'Trade',\n /** Canceled */\n Canceled = 'Canceled',\n /** Replaced */\n Replaced = 'Replaced',\n /** PendingCancel */\n PendingCancel = 'PendingCancel',\n /** Rejected */\n Rejected = 'Rejected',\n /** PendingNew */\n PendingNew = 'PendingNew',\n /** Restated */\n Restated = 'Restated',\n /** PendingReplace */\n PendingReplace = 'PendingReplace',\n /** DoneForDay */\n DoneForDay = 'DoneForDay',\n /** CancelRejected */\n CancelRejected = 'CancelRejected',\n /** ReplaceRejected */\n ReplaceRejected = 'ReplaceRejected',\n /** Expired */\n Expired = 'Expired',\n /** Stale */\n Stale = 'Stale',\n /** NewRequest */\n NewRequest = 'NewRequest',\n /** ReplaceRequest */\n ReplaceRequest = 'ReplaceRequest',\n /** CancelRequest */\n CancelRequest = 'CancelRequest',\n /** ForceCancelRequest */\n ForceCancelRequest = 'ForceCancelRequest',\n /** ControlRequest */\n ControlRequest = 'ControlRequest',\n /** Updated */\n Updated = 'Updated',\n /** Triggered */\n Triggered = 'Triggered',\n /** PauseRequest */\n PauseRequest = 'PauseRequest',\n /** PendingPause */\n PendingPause = 'PendingPause',\n /** Paused */\n Paused = 'Paused',\n /** PauseRejected */\n PauseRejected = 'PauseRejected',\n /** ResumeRequest */\n ResumeRequest = 'ResumeRequest',\n /** PendingResume */\n PendingResume = 'PendingResume',\n /** Resumed */\n Resumed = 'Resumed',\n /** ResumeRejected */\n ResumeRejected = 'ResumeRejected',\n /** Started */\n Started = 'Started',\n /** PendingRiskCheck */\n PendingRiskCheck = 'PendingRiskCheck',\n /** RiskApproved */\n RiskApproved = 'RiskApproved',\n /** PendingUpdate */\n PendingUpdate = 'PendingUpdate',\n /** UpdateRejected */\n UpdateRejected = 'UpdateRejected',\n /** LegTrade */\n LegTrade = 'LegTrade',\n /** OrderQtyReducedDueToInsufficientPosition */\n QtyReducedInsufficientPosition = 'QtyReducedInsufficientPosition',\n}\n\nexport enum ExecTypeReasonEnum {\n /** OrdQtyReducedBySelfTradePrevention */\n OrdQtyReducedBySelfTradePrevention = 'OrdQtyReducedBySelfTradePrevention',\n}\n\nexport enum ExecutionInstructionsEnum {\n /** reduce only */\n ReduceOnly = 'ReduceOnly',\n}\n\nexport enum ExposureCalculationTypeEnum {\n /** The available after applying all exposure limits. */\n BuyingPower = 'BuyingPower',\n /** Calculate NOP in the specified currency. */\n NOP = 'NOP',\n /** Net exposure per currency, and take the absolute value, optionally convert to currency. */\n NOPPerCurrency = 'NOPPerCurrency',\n /** Gross exposure for whole account expressed in the one currency. */\n Gross = 'Gross',\n /** Gross exposure per currency. */\n GrossPerCurrency = 'GrossPerCurrency',\n /** NOP calculated by sum all owed (negative) balances. */\n OwedNOP = 'OwedNOP',\n /** NOP calculated by sum all positive balances. */\n PositiveNOP = 'PositiveNOP',\n /** SDP pass-through exposure from gateways. */\n SDPPassThrough = 'SDPPassThrough',\n /** SDP pass-through per-currency exposure from gateways. */\n SDPPassThroughPerCurrency = 'SDPPassThroughPerCurrency',\n}\n\nexport enum ExposureLimitSideTypeEnum {\n /** Both */\n Both = 'Both',\n /** Long */\n Long = 'Long',\n /** Short */\n Short = 'Short',\n}\n\nexport enum ExposureModeEnum {\n /** Balance */\n Balance = 'Balance',\n /** Credit */\n Credit = 'Credit',\n}\n\nexport enum ExposureSourceEnum {\n /** Internal exposure source. */\n Internal = 'Internal',\n /** External exposure source. */\n External = 'External',\n}\n\nexport enum ExposureStatusEnum {\n /** Online */\n Online = 'Online',\n /** Offline */\n Offline = 'Offline',\n}\n\nexport enum ExternalTypeEnum {\n /** ExternalID assigned by the dealer */\n Dealer = 'Dealer',\n /** ExternalID assigned by the customer user */\n Customer = 'Customer',\n /** ExternalID assigned by the Talos system */\n System = 'System',\n}\n\nexport enum FIXFlagsEnum {\n /** 0=Determines if sequence numbers should be reset when receiving a logon request. Acceptors only. */\n ResetOnLogon = 'ResetOnLogon',\n /** 1=Determines if messages should be saved. */\n PersistMessages = 'PersistMessages',\n}\n\nexport enum FeeConfigUpdateActionEnum {\n /** New */\n New = 'New',\n /** Update */\n Update = 'Update',\n /** Delete */\n Delete = 'Delete',\n}\n\nexport enum FeeModeEnum {\n /** Net Fee Mode */\n Net = 'Net',\n /** Calculate for Maker Fees */\n Maker = 'Maker',\n /** Calculate for Taker Fees */\n Taker = 'Taker',\n}\n\nexport enum FeeResponseStatusEnum {\n /** Update has been applied successfully */\n Completed = 'Completed',\n /** Failed to apply the update */\n Rejected = 'Rejected',\n /** An error occurred while trying to apply the update */\n Error = 'Error',\n}\n\nexport enum FeeSourceEnum {\n /** Fee reported by exchange */\n Exchange = 'Exchange',\n /** Fee reported by user */\n Override = 'Override',\n}\n\nexport enum FixedPricingModeEnum {\n /** Fixed Price for Customer RFQ */\n Price = 'Price',\n /** Fixed Spread for Customer RFQ */\n Spread = 'Spread',\n}\n\nexport enum HedgeActionEnum {\n /** Indicates the Hedger is Monitoring Unhedged Positions */\n Monitor = 'Monitor',\n /** Indicates the Hedger is Deferring Applying the Hedge Decision Due to Throttle */\n Deferring = 'Deferring',\n /** Action where the Hedger Requests a New Order with Details */\n RequestNewOrder = 'RequestNewOrder',\n /** Action that Indicates a New Hedge Order Has been Submitted and the Hedger is Awaiting Acceptance */\n NewOrderSubmitted = 'NewOrderSubmitted',\n /** Action that Indicates that a Newly Submitted Hedge Order was Rejected */\n NewOrderFailed = 'NewOrderFailed',\n /** Action where the Hedger Requests an Order Modification with Details */\n RequestOrderModification = 'RequestOrderModification',\n /** Action that Indicates an Order Modification Has been Submitted and the Hedger is Awaiting Acceptance */\n OrderModificationSubmitted = 'OrderModificationSubmitted',\n /** Action that Indicates that a Submitted Hedge Order Modification was Rejected */\n OrderModificationFailed = 'OrderModificationFailed',\n /** Action where the Hedger Requests an Order Cancelation with Details */\n RequestOrderCancel = 'RequestOrderCancel',\n /** Action that Indicates an Order Cancelation Has been Submitted and the Hedger is Awaiting Acceptance */\n OrderCancelSubmitted = 'OrderCancelSubmitted',\n /** Action that Indicates that a Submitted Hedge Order Cancelation was Rejected */\n OrderCancelFailed = 'OrderCancelFailed',\n /** Indicates that the Hedge Control needs to Move to an Error State */\n Error = 'Error',\n /** Action Set on CancelToAgress Decision to Indicate that the Cancel Side is Complete */\n OrderCanceled = 'OrderCanceled',\n}\n\nexport enum HedgeCommandEnum {\n /** Indicates a request to kill one or all Hedge Controls */\n Kill = 'Kill',\n /** Indicates a request to activate a currently inactivated Hedge Control */\n Activate = 'Activate',\n /** Indicates a request to synchronize HedgerLedger with SubAccountPositionLedger */\n Synchronize = 'Synchronize',\n}\n\nexport enum HedgeCommandStatusEnum {\n /** Indicates the requested command was successful */\n Success = 'Success',\n /** Indicates the requested command failed and an error is supplied */\n Error = 'Error',\n}\n\nexport enum HedgeControlStatusEnum {\n /** Indicates this Hedge Control is Currently Disabled */\n Disabled = 'Disabled',\n /** Indicates this Hedge Control is Active and Monitoring for Threshold Breaches */\n Waiting = 'Waiting',\n /** Indicates this Hedge Control is Active and Currently Hedging to Close to Target */\n Hedging = 'Hedging',\n /** Indicates this Hedge Control is in an Error State */\n Error = 'Error',\n /** Indicates this Hedge Control is in progress being disabled */\n Disabling = 'Disabling',\n /** Indicates this Hedge Control has completed hedging */\n Complete = 'Complete',\n /** Hedge control was rejected likely due to faulty setup */\n Rejected = 'Rejected',\n /** Indicates this Hedge Control closed with unhedged qty possible due to errror */\n Incomplete = 'Incomplete',\n /** Indicates this Hedge Control had an error Tripped and may end up going to error state */\n Tripped = 'Tripped',\n /** Indicates this Hedge Control is Synchronizing with the SubAccountPositionLedger */\n Synchronizing = 'Synchronizing',\n}\n\nexport enum HedgeControlTypeEnum {\n /** The requested control is associated with the state of the entire hedger */\n Global = 'Global',\n /** The requested control is associated with a specific Account/Asset Position */\n Position = 'Position',\n /** The requested control is associated with a specific to an order */\n Order = 'Order',\n /** Special Control Type used for Filtering */\n All = 'All',\n}\n\nexport enum HedgeDecisionEnum {\n /** Indicates the Decision is to Continue Monitoring Unhedged Position */\n Monitor = 'Monitor',\n /** Indicates the Decision is to Submit a New Hedge Order */\n NewHedgeOrder = 'NewHedgeOrder',\n /** Indicates the Decision is to Modify the Hedge Order */\n ModifyHedgeOrder = 'ModifyHedgeOrder',\n /** Indicates the Decision is to Modify the Hedge Order */\n CancelHedgeOrder = 'CancelHedgeOrder',\n /** Internal Decision to Order Model Signaling Intent to Make a Hedge Order Decision */\n Hedge = 'Hedge',\n /** Indicates the Decision is to Cancel the existing order and Aggress */\n CancelToAggress = 'CancelToAggress',\n /** Indicates an Issue has Occurred which should Trigger Error Evaluation */\n Trip = 'Trip',\n /** Indicates the Decision is to Move the Hedge Control to Error State */\n Error = 'Error',\n}\n\nexport enum HedgeDeltaAttributionEnum {\n /** Indicates Delta is Initially Due to Position Change Detected in Ledger */\n PositionChange = 'PositionChange',\n /** Indicates Detla is Initially Due to a Mark Change on Conversion */\n MarkChange = 'MarkChange',\n /** Indicates Detla is Due to Hedge Order Fills */\n HedgeOrderFill = 'HedgeOrderFill',\n}\n\nexport enum HedgerLedgerStatusEnum {\n /** Live operating status for HedgerLedger - Hedge Positions can be evaluated */\n Live = 'Live',\n /** HedgerLedger synchronization in progress - Hedge Positions should not be evaluated */\n Synchronizing = 'Synchronizing',\n /** HedgerLedger recon break identified */\n ReconBreak = 'ReconBreak',\n}\n\nexport enum HedgingStatusEnum {\n /** Indicates hedging is enabled */\n Enabled = 'Enabled',\n /** Indicates hedging is disabled */\n Disabled = 'Disabled',\n /** Indicates there was an internal error */\n Error = 'Error',\n /** Indicates hedging status is unknown */\n Unknown = 'Unknown',\n}\n\nexport enum InjectionActionEnum {\n /** Inject the provided value */\n Inject = 'Inject',\n /** Panic when injection site is reached */\n Panic = 'Panic',\n}\n\nexport enum InstrumentCompositionEnum {\n /** An instrument traded natively with a counterparty */\n Native = 'Native',\n /** An instrument constructed locally composed of one or more native instruments */\n Synthetic = 'Synthetic',\n}\n\nexport enum LedgerAccountTypeEnum {\n /** MarketAccountLedger */\n MarketAccount = 'MarketAccount',\n /** SubAccountLedger */\n SubAccount = 'SubAccount',\n}\n\nexport enum LedgerUpdateStatusEnum {\n /** Update is pending approval */\n PendingApproval = 'PendingApproval',\n /** Update has been applied successfully */\n Completed = 'Completed',\n /** Failed to apply the update */\n Rejected = 'Rejected',\n /** An error occurred while trying to apply the update */\n Error = 'Error',\n}\n\nexport enum LedgerUpdateTypeEnum {\n /** Set the balance to a value */\n Balance = 'Balance',\n /** Trade in account */\n Trade = 'Trade',\n /** Charge trading fee from account */\n TradingFee = 'TradingFee',\n /** Set trading fees for account */\n TradingFeeSet = 'TradingFeeSet',\n /** Adjust the balance by a delta, ie: a transfer in or out of the account */\n BalanceDelta = 'BalanceDelta',\n /** Trade Cancel */\n TradeCancel = 'TradeCancel',\n /** Trade Amend */\n TradeAmend = 'TradeAmend',\n /** Trade allocation to account */\n Allocation = 'Allocation',\n /** Set the Unsettled balance / position */\n Unsettled = 'Unsettled',\n /** Adjust the Unsettled balance / position */\n UnsettledDelta = 'UnsettledDelta',\n /** Set the FundingPnL associated with this ledger */\n FundingPnL = 'FundingPnL',\n /** Adjust the FundingPnL associated with this ledger */\n FundingPnLDelta = 'FundingPnLDelta',\n /** Set the RealizedPnL associated with this ledger */\n RealizedPnL = 'RealizedPnL',\n /** Adjust the RealizedPnL associated with this ledger */\n RealizedPnLDelta = 'RealizedPnLDelta',\n /** A balance delta from Reconciliation */\n ReconAdjustment = 'ReconAdjustment',\n /** A balance delta from Deposit */\n Deposit = 'Deposit',\n /** A balance delta from Withdrawal */\n Withdrawal = 'Withdrawal',\n /** A balance delta fee from a Transfer */\n TransferFee = 'TransferFee',\n /** A balance delta fee from a Transfer */\n Delivery = 'Delivery',\n /** Balance delta for rewards from staked assets */\n StakingReward = 'StakingReward',\n}\n\nexport enum LegDirectionEnum {\n /** Same direction (buy or sell) as the parent order */\n Same = 'Same',\n /** Opposite direction (buy or sell) as the parent order */\n Opposite = 'Opposite',\n}\n\nexport enum LendingRelationshipStatusEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum LimitStatusEnum {\n /** Valid/ok state */\n Valid = 'Valid',\n /** Invalid/breached state */\n Breached = 'Breached',\n}\n\nexport enum LiquidityTypeEnum {\n /** Indicative liquidity */\n Indicative = 'Indicative',\n /** Firm liquidity */\n Firm = 'Firm',\n}\n\nexport enum LoanActionEnum {\n /** Move the loan to the closed state */\n CloseLoan = 'CloseLoan',\n}\n\nexport enum LoanAdminActionEnum {\n /** Move the loan to the closed state */\n CloseLoan = 'CloseLoan',\n}\n\nexport enum LoanCollateralCurrencyStatusEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum LoanHandlingErrorEnum {\n /** The requested revision is no longer available. Try again. */\n RevisionConflict = 'RevisionConflict',\n /** A referenced Loan could not be found. */\n UnknownLoan = 'UnknownLoan',\n /** The requested action is not allowed in the current Loan state. */\n InvalidRequest = 'InvalidRequest',\n /** Unexpected system conditions encountered. */\n SystemError = 'SystemError',\n /** An ID that should be unique was reused. */\n DuplicateID = 'DuplicateID',\n /** Request attempted to Handle an Inactive Loan */\n InactiveLoan = 'InactiveLoan',\n}\n\nexport enum LoanPrincipalCurrencyStatusEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum LoanQuoteAdminActionEnum {\n /** Move the loan quote to an error state */\n ErrorLoanQuote = 'ErrorLoanQuote',\n}\n\nexport enum LoanQuoteRequestTypeEnum {\n /** A request that results in a non-executable quote. */\n Indicative = 'Indicative',\n /** A request that results in an executable quote. */\n Executable = 'Executable',\n}\n\nexport enum LoanQuoteStatusEnum {\n /** Quote is submitted, pending response. */\n PendingNew = 'PendingNew',\n /** Lender has provided a firm quote which can be accepted or negotiated. */\n LenderFirm = 'LenderFirm',\n /** Borrower has provided a firm quote which can be accepted or negotiated. */\n BorrowerFirm = 'BorrowerFirm',\n /** An error has occurred processing the quote. */\n Error = 'Error',\n /** The quote is filled */\n Filled = 'Filled',\n /** The term sheet has been request from the ESign system and creation and distribution are pending. */\n TermSheetRequested = 'TermSheetRequested',\n /** The ESign system as sent the term sheet to the recipients and awaits signatures. */\n TermSheetSent = 'TermSheetSent',\n /** The term sheet has been signed by all recipients. */\n TermSheetAllSigned = 'TermSheetAllSigned',\n /** Canceled by Initiator */\n Canceled = 'Canceled',\n /** Rejected by Responder */\n Rejected = 'Rejected',\n /** Quote reached EndTime before negotiation finished. */\n Expired = 'Expired',\n}\n\nexport enum LoanQuoteTerminationTypeEnum {\n /** Fixed term */\n Fixed = 'Fixed',\n /** Open term */\n OpenTerm = 'OpenTerm',\n}\n\nexport enum LoanQuoteValidationErrorEnum {\n /** The requested revision is no longer available. Try again. */\n RevisionConflict = 'RevisionConflict',\n /** A referenced quote could not be found. */\n UnknownQuote = 'UnknownQuote',\n /** The requested action is not allowed in the current quote state. */\n InvalidRequest = 'InvalidRequest',\n /** Unexpected system conditions encountered. */\n SystemError = 'SystemError',\n /** An ID that should be unique was reused. */\n DuplicateID = 'DuplicateID',\n}\n\nexport enum LoanStatusEnum {\n /** The loan terms are set, has not reached termination, and is in good state for activity. */\n Open = 'Open',\n /** The loan reached termination and will have no further activity. */\n Closed = 'Closed',\n /** An error has occurred processing the loan. */\n Error = 'Error',\n}\n\nexport enum LoanTransactionAdminActionEnum {\n /** Move the loan transaction to an error state */\n ErrorLoanTransaction = 'ErrorLoanTransaction',\n}\n\nexport enum LoanTransactionHandlingErrorEnum {\n /** The requested revision is no longer available. Try again. */\n RevisionConflict = 'RevisionConflict',\n /** A referenced Loan Transaction could not be found. */\n UnknownLoanTxn = 'UnknownLoanTxn',\n /** The requested action is not allowed in the current Loan Transaction state. */\n InvalidRequest = 'InvalidRequest',\n /** Unexpected system conditions encountered. */\n SystemError = 'SystemError',\n /** An ID that should be unique was reused. */\n DuplicateID = 'DuplicateID',\n /** An issue was found with at least one market account involved in this transaction */\n MarketAccountError = 'MarketAccountError',\n /** Request attempted to Handle an Inactive Loan Transaction */\n InactiveLoanTransaction = 'InactiveLoanTransaction',\n}\n\nexport enum LoanTransactionStatusEnum {\n /** The conversion rate needed to calculate the transaction's amount has been sent. */\n RateRequestSent = 'RateRequestSent',\n /** The transaction's conversion rate request has been acknowledged. The rate is pending. */\n RateRequestAckd = 'RateRequestAckd',\n /** The transaction has been generated and awaits instructions. */\n New = 'New',\n /** The transaction has been reviewed and transfer initiation has been requested. */\n TransferSubmitted = 'TransferSubmitted',\n /** The transfer gateway has acknowledged the transfer request. */\n TransferPending = 'TransferPending',\n /** The transfers gateway has indicated that further auth is required before the transfer can proceed */\n TransferWaitingForExternalAuth = 'TransferWaitingForExternalAuth',\n /** The transfers subsystem has reported that the provider has acknowledged the request. */\n TransferProcessing = 'TransferProcessing',\n /** The transaction and associated transfer has completed successfully. */\n Completed = 'Completed',\n /** The transaction and associated transfer has been rejected. This is triggered by the provider or end-user action at the provider. */\n Rejected = 'Rejected',\n /** The transaction has been canceled. This is triggered by end-user action on the system. */\n Canceled = 'Canceled',\n /** An error has occurred processing the transaction. */\n Error = 'Error',\n}\n\nexport enum LoanTransactionTypeEnum {\n /** The transaction is related to principal. */\n Principal = 'Principal',\n /** The transaction is related to collateral. */\n Collateral = 'Collateral',\n}\n\nexport enum LockRequestTypeEnum {\n /** Lock */\n Lock = 'Lock',\n /** Release */\n Release = 'Release',\n}\n\nexport enum LockUnderlyingObjectTypeEnum {\n /** Order */\n Order = 'Order',\n /** RFQ */\n RFQ = 'RFQ',\n /** Withdrawal */\n Withdrawal = 'Withdrawal',\n}\n\nexport enum MDEntryTypeEnum {\n /** Bid */\n Bid = 'Bid',\n /** Offer */\n Offer = 'Offer',\n /** Trade */\n Trade = 'Trade',\n /** Book Reset */\n BookReset = 'BookReset',\n /** Book Stale */\n BookStale = 'BookStale',\n /** Book Keepalive */\n BookKeepalive = 'BookKeepalive',\n /** Trades Reset */\n TradesReset = 'TradesReset',\n /** Trades Stale */\n TradesStale = 'TradesStale',\n /** Trades Keepalive */\n TradesKeepalive = 'TradesKeepalive',\n /** Margin Funding Rate */\n FundingRate = 'FundingRate',\n /** Margin Funding Time */\n FundingTime = 'FundingTime',\n /** Predicted Next Funding Rate */\n PredictedNextFundingRate = 'PredictedNextFundingRate',\n /** Next Funding Time */\n NextFundingTime = 'NextFundingTime',\n /** Volume24h */\n Volume24h = 'Volume24h',\n /** Turnover24h */\n Turnover24h = 'Turnover24h',\n /** Open Interest */\n OpenInterest = 'OpenInterest',\n /** Mark Price */\n MarkPrice = 'MarkPrice',\n /** Open Value */\n OpenValue = 'OpenValue',\n /** Book Offline */\n BookOffline = 'BookOffline',\n /** Trades Offline */\n TradesOffline = 'TradesOffline',\n /** Delta */\n Delta = 'Delta',\n /** Gamma */\n Gamma = 'Gamma',\n /** Vega */\n Vega = 'Vega',\n /** Theta */\n Theta = 'Theta',\n /** Rho */\n Rho = 'Rho',\n /** Mark Price IV */\n MarkPriceIV = 'MarkPriceIV',\n /** Best Bid IV */\n BestBidIV = 'BestBidIV',\n /** Best Bid IV */\n BestOfferIV = 'BestOfferIV',\n /** Underlying Price */\n UnderlyingPrice = 'UnderlyingPrice',\n /** Index Price */\n IndexPrice = 'IndexPrice',\n /** Last Price */\n LastPrice = 'LastPrice',\n /** Minimum Order Price */\n MinOrderPrice = 'MinOrderPrice',\n /** Maximum Order Price */\n MaxOrderPrice = 'MaxOrderPrice',\n}\n\nexport enum MDUpdateActionEnum {\n /** New */\n New = 'New',\n /** Change */\n Change = 'Change',\n /** Delete */\n Delete = 'Delete',\n /** SizeDelta */\n SizeDelta = 'SizeDelta',\n}\n\nexport enum MarginAccountTypeEnum {\n /** Account uses standard margin */\n StandardMargin = 'StandardMargin',\n /** Account uses portfolio margin */\n PortfolioMargin = 'PortfolioMargin',\n}\n\nexport enum MarginAllocationTypeEnum {\n /** Margin collateral is allocated per position */\n Isolated = 'Isolated',\n /** Margin collateral is shared by positions using the same wallet (e.g. BTC wallet) */\n CrossWallet = 'CrossWallet',\n /** Margin collateral is shared by all positions */\n CrossAccount = 'CrossAccount',\n}\n\nexport enum MarginCostStatusEnum {\n /** Margin cost information has been retrieved successfully */\n Success = 'Success',\n /** Margin cost is not supported for this market */\n NotSupported = 'NotSupported',\n /** There was an error processing the margin cost request */\n Error = 'Error',\n}\n\nexport enum MarginReportingTypeEnum {\n /** Equity / IM / MM reported is specific to the Currency specified */\n Currency = 'Currency',\n /** Equity / IM / MM reported is specific to the market account */\n Account = 'Account',\n}\n\nexport enum MarketAccountCapabilitiesEnum {\n /** TransferOutgoingSource */\n TransferOutgoingSource = 'TransferOutgoingSource',\n /** TransferIncomingDest */\n TransferIncomingDest = 'TransferIncomingDest',\n /** TransferOutgoingDest */\n TransferOutgoingDest = 'TransferOutgoingDest',\n /** EquityMarginRatioCheckRequired */\n EquityMarginRatioCheckRequired = 'EquityMarginRatioCheckRequired',\n /** AcceptAllCurrencies */\n AcceptAllCurrencies = 'AcceptAllCurrencies',\n}\n\nexport enum MarketAccountOwnershipEnum {\n /** Internal */\n Internal = 'Internal',\n /** External */\n External = 'External',\n}\n\nexport enum MarketAccountStatusEnum {\n /** Active */\n Active = 'Active',\n /** Inactive */\n Inactive = 'Inactive',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum MarketAccountTypeEnum {\n /** Indicates market account which represents a gateway (transfer connections). */\n Gateway = 'Gateway',\n /** Indicates market account for trading. */\n Trading = 'Trading',\n /** Indicates market account for transfers. */\n Transfer = 'Transfer',\n /** Indicates market account for customers. */\n Customer = 'Customer',\n /** Unknown */\n Unknown = 'Unknown',\n}\n\nexport enum MarketFeeModeEnum {\n /** Fee is charged in the quote currency */\n QuoteCurrency = 'QuoteCurrency',\n /** Fee is charged in the currency received e.g Buy BTC-USD will be charged in BTC */\n ReceiveCurrency = 'ReceiveCurrency',\n /** Fee is charged using ReceiveCurrency mode for maker orders and QuoteCurrency mode for taker orders */\n MakerReceiveTakerQuote = 'MakerReceiveTakerQuote',\n /** Fee is charged in the currency received for positive fees and outgoing currency for negative fees */\n PositiveReceiveNegativeOutgoing = 'PositiveReceiveNegativeOutgoing',\n /** DEPRACATED: Fee is charged in currency that's unrelated to the traded symbol. E.g: always charge fees in USD regardless of traded symbol */\n UnrelatedCurrency = 'UnrelatedCurrency',\n /** Fee is charged in currency in the amount currency of the order. E.g: regular order => Quote, Counter Currency Order => Base */\n AmountCurrency = 'AmountCurrency',\n /** Fee is charged in a specific currency. */\n SpecificCurrency = 'SpecificCurrency',\n /** Fee is charged in the outgoing currency e.g Buy BTC-USD will be charged in USD, Sell will be charged in BTC */\n OutgoingCurrency = 'OutgoingCurrency',\n}\n\nexport enum MarketFlagsEnum {\n /** Indicates if a quote from this market will at exactly the quoted price */\n QuotesFillAtRequestedPrice = 'QuotesFillAtRequestedPrice',\n /** Indicates if the market supports native counter currency */\n SupportsNativeCounterCurrency = 'SupportsNativeCounterCurrency',\n /** Indicates if orders on this market fill at exactly the requested price, e.g. the market does not support price improvement */\n OrdersFillAtRequestedPrice = 'OrdersFillAtRequestedPrice',\n /** Indicates that the exchange market supports credit limits */\n SupportsExchangeCredit = 'SupportsExchangeCredit',\n /** Indicates that the market provides asymmetric limits for trading */\n AsymmetricTradeLimits = 'AsymmetricTradeLimits',\n /** Indicates that the market supports sending average price when sweeping through multiple levels */\n SupportsOrdersAtAveragePrice = 'SupportsOrdersAtAveragePrice',\n /** Indicates that the market requires buy orders in quote and sell orders in base currencies */\n BuyInQuoteSellInBaseCurrency = 'BuyInQuoteSellInBaseCurrency',\n /** Indicates that the market supports margin cost calculation */\n SupportsMarginCost = 'SupportsMarginCost',\n /** Indicates that the market supports reduce only */\n SupportsReduceOnly = 'SupportsReduceOnly',\n /** Indicates that the market supports SpreadToFixing PricingMode */\n SupportsSpreadToFixing = 'SupportsSpreadToFixing',\n /** Indicates that the market will publish a book that incorporates fees */\n SupportsFeeBooks = 'SupportsFeeBooks',\n}\n\nexport enum MarketParameterPropertyEnum {\n /** ParentStrategy */\n ParentStrategy = 'ParentStrategy',\n /** UnifiedLiquidityConversionRate */\n UnifiedLiquidityConversionRate = 'UnifiedLiquidityConversionRate',\n}\n\nexport enum MarketTypeEnum {\n /** Exchange */\n Exchange = 'Exchange',\n /** Dealer */\n Dealer = 'Dealer',\n /** Custodian */\n Custodian = 'Custodian',\n /** External */\n External = 'External',\n /** Internal order-processing algo */\n InternalAlgo = 'InternalAlgo',\n /** Dark pool */\n Dark = 'Dark',\n}\n\nexport enum MessageDirectionEnum {\n /** Inbound message */\n Inbound = 'Inbound',\n /** Outbound message */\n Outbound = 'Outbound',\n}\n\nexport enum MessageProcessingRateLimitDefinitionTypeEnum {\n /** Tallies the number of customer market data snapshot subscriptions */\n CustomerMarketDataSubscription = 'CustomerMarketDataSubscription',\n /** Tallies the number of customer quote requests */\n CustomerQuoteRequests = 'CustomerQuoteRequests',\n /** Tallies the number of customer order requests */\n CustomerOrderRequests = 'CustomerOrderRequests',\n}\n\nexport enum ModeEnum {\n /** Enabled/up/on state */\n Enabled = 'Enabled',\n /** Disabled/down/off state */\n Disabled = 'Disabled',\n}\n\nexport enum MoneynessBucketEnum {\n /** Outright */\n Outright = 'Outright',\n /** D10 */\n D10 = 'D10',\n /** D25 */\n D25 = 'D25',\n /** D50 */\n D50 = 'D50',\n /** D75 */\n D75 = 'D75',\n /** D90 */\n D90 = 'D90',\n}\n\nexport enum MultilegReportingTypeEnum {\n /** Parent */\n Parent = 'Parent',\n /** Leg */\n Leg = 'Leg',\n}\n\nexport enum OMSOrderPropertyEnum {\n /** LowerBound */\n LowerBound = 'LowerBound',\n /** UpperBound */\n UpperBound = 'UpperBound',\n /** TargetQty */\n TargetQty = 'TargetQty',\n /** CrossingFilledQty */\n CrossingFilledQty = 'CrossingFilledQty',\n /** MarketAlloc */\n CrossingAlloc = 'CrossingAlloc',\n /** LimitAlloc */\n RestingAlloc = 'RestingAlloc',\n /** ReferenceRate */\n ReferenceRate = 'ReferenceRate',\n /** TriggerRate */\n TriggerRate = 'TriggerRate',\n /** PriceProtectionRefRate */\n PriceProtectionRefRate = 'PriceProtectionRefRate',\n /** TargetParticipationRate */\n TargetParticipationRate = 'TargetParticipationRate',\n /** RestingSizeVariance */\n RestingSizeVariance = 'RestingSizeVariance',\n /** PassiveFairPrice */\n PassiveFairPrice = 'PassiveFairPrice',\n /** AggressiveFairPrice */\n AggressiveFairPrice = 'AggressiveFairPrice',\n /** MedianSpread */\n MedianSpread = 'MedianSpread',\n /** HedgeBound */\n HedgeBound = 'HedgeBound',\n /** LegLeavesQty */\n LegLeavesQty = 'LegLeavesQty',\n /** LegLeavesAmt */\n LegLeavesAmt = 'LegLeavesAmt',\n /** LegCumQty */\n LegCumQty = 'LegCumQty',\n /** LegCumAmt */\n LegCumAmt = 'LegCumAmt',\n /** LegPendingFillQty */\n LegPendingFillQty = 'LegPendingFillQty',\n /** LegPendingFillPx */\n LegPendingFillPx = 'LegPendingFillPx',\n /** VolumeInLimit */\n VolumeInLimit = 'VolumeInLimit',\n /** Adjustment */\n Adjustment = 'Adjustment',\n /** AheadBehindRatio */\n AheadBehindRatio = 'AheadBehindRatio',\n /** ParentCumQty */\n ParentCumQty = 'ParentCumQty',\n /** RestingAllInPriceCap */\n RestingAllInPriceCap = 'RestingAllInPriceCap',\n /** RestingAllInPriceCapSize */\n RestingAllInPriceCapSize = 'RestingAllInPriceCapSize',\n}\n\nexport enum OPAScopeTypeEnum {\n /** A release containing exclusively data points with one day (1D) aggregation windows */\n OPAScopeType_1D = 'OPAScopeType_1D',\n /** A release containing exclusively data points with one month (1MO) aggregation windows */\n OPAScopeType_1MO = 'OPAScopeType_1MO',\n /** A release containing exclusively data points with last seven days (L7D) aggregation windows */\n OPAScopeType_L7D = 'OPAScopeType_L7D',\n /** A release containing exclusively data points with last thirty days (L30D) aggregation windows */\n OPAScopeType_L30D = 'OPAScopeType_L30D',\n /** A release containing exclusively data points with month-to-date (MTD) aggregation windows */\n OPAScopeType_MTD = 'OPAScopeType_MTD',\n /** A release containing exclusively data points with month-to-date (WTD) aggregation windows */\n OPAScopeType_WTD = 'OPAScopeType_WTD',\n /** A release potentially containing 1D, 1MO, and 1W which make up the full suite of analytics for the month they are in. */\n OPAScopeType_Legacy = 'OPAScopeType_Legacy',\n}\n\nexport enum OnPlatformAnalyticsTierEnum {\n /** Only the standard set of On-Platform Analytics as established in 2.44 is available to the Customer: Everything but L7D, L30D, MTD, WTD for previous months */\n Standard = 'Standard',\n /** The definition of premium established in release 2.44: New AggregationWindows (L7D, L30D, MTD, WTD), and data availability within a couple days once calcuated (vs waiting a month) */\n Premium = 'Premium',\n}\n\nexport enum OptionTypeEnum {\n /** Call option */\n Call = 'Call',\n /** Put option */\n Put = 'Put',\n}\n\nexport enum OrdRejReasonEnum {\n /** UnknownSymbol */\n UnknownSymbol = 'UnknownSymbol',\n /** ExchangeClosed */\n ExchangeClosed = 'ExchangeClosed',\n /** OrderExceedsLimit */\n OrderExceedsLimit = 'OrderExceedsLimit',\n /** TooLateToEnter */\n TooLateToEnter = 'TooLateToEnter',\n /** UnknownOrder */\n UnknownOrder = 'UnknownOrder',\n /** DuplicateOrder */\n DuplicateOrder = 'DuplicateOrder',\n /** StaleRequest */\n StaleRequest = 'StaleRequest',\n /** UnknownMarket */\n UnknownMarket = 'UnknownMarket',\n /** InternalError */\n InternalError = 'InternalError',\n /** BrokerOption */\n BrokerOption = 'BrokerOption',\n /** RateLimit */\n RateLimit = 'RateLimit',\n /** ForceCancel */\n ForceCancel = 'ForceCancel',\n /** ImmediateOrderDidNotCross */\n ImmediateOrderDidNotCross = 'ImmediateOrderDidNotCross',\n /** PostOnlyOrderWouldCross */\n PostOnlyOrderWouldCross = 'PostOnlyOrderWouldCross',\n /** InvalidStrategy */\n InvalidStrategy = 'InvalidStrategy',\n /** QuoteRequestTimeout */\n QuoteRequestTimeout = 'QuoteRequestTimeout',\n /** QuoteExpired */\n QuoteExpired = 'QuoteExpired',\n /** TransientError */\n TransientError = 'TransientError',\n /** RecoveredDoneOrder */\n RecoveredDoneOrder = 'RecoveredDoneOrder',\n /** RemainingSizeTooSmall */\n RemainingSizeTooSmall = 'RemainingSizeTooSmall',\n /** Crossed */\n Crossed = 'Crossed',\n /** FailedToCompleteAllLegs */\n FailedToCompleteAllLegs = 'FailedToCompleteAllLegs',\n /** SelfTradePrevention */\n SelfTradePrevention = 'SelfTradePrevention',\n /** PendingApproval */\n PendingApproval = 'PendingApproval',\n /** InvalidSizeIncrement */\n InvalidSizeIncrement = 'InvalidSizeIncrement',\n /** AmbiguousMarketAccount */\n AmbiguousMarketAccount = 'AmbiguousMarketAccount',\n /** SymbolDisabled */\n SymbolDisabled = 'SymbolDisabled',\n /** NoAvailableMarket */\n NoAvailableMarket = 'NoAvailableMarket',\n /** SubAccountPermission */\n SubAccountPermission = 'SubAccountPermission',\n /** TradingDisabled */\n TradingDisabled = 'TradingDisabled',\n /** InsufficientPositionToReduce */\n InsufficientPositionToReduce = 'InsufficientPositionToReduce',\n /** MarketDoesNotSupportReduceOnly */\n MarketDoesNotSupportReduceOnly = 'MarketDoesNotSupportReduceOnly',\n /** InvalidSymbol */\n InvalidSymbol = 'InvalidSymbol',\n}\n\nexport enum OrdRiskStatusEnum {\n /** Legged */\n Legged = 'Legged',\n}\n\nexport enum OrdStatusEnum {\n /** New */\n New = 'New',\n /** PartiallyFilled */\n PartiallyFilled = 'PartiallyFilled',\n /** Filled */\n Filled = 'Filled',\n /** Canceled */\n Canceled = 'Canceled',\n /** Replaced */\n Replaced = 'Replaced',\n /** PendingCancel */\n PendingCancel = 'PendingCancel',\n /** Rejected */\n Rejected = 'Rejected',\n /** PendingNew */\n PendingNew = 'PendingNew',\n /** PendingReplace */\n PendingReplace = 'PendingReplace',\n /** DoneForDay */\n DoneForDay = 'DoneForDay',\n /** Holding Until execution of previous legs after which this will turn PendingNew */\n Holding = 'Holding',\n /** Order confirmed in relative pricing, awaiting fixing */\n PendingFix = 'PendingFix',\n}\n\nexport enum OrdTypeEnum {\n /** Market */\n Market = 'Market',\n /** Limit */\n Limit = 'Limit',\n /** RFQ */\n RFQ = 'RFQ',\n /** LimitAllIn */\n LimitAllIn = 'LimitAllIn',\n}\n\nexport enum OrderAdminActionEnum {\n /** force cancel order(s) */\n ForceCancelOrder = 'ForceCancelOrder',\n /** cancel order(s) */\n CancelOrder = 'CancelOrder',\n /** force fill customer order */\n ForceFill = 'ForceFill',\n /** manual fill order */\n ManualFill = 'ManualFill',\n /** disables trading and cancels all active orders */\n DisableAndCancelAll = 'DisableAndCancelAll',\n /** system canceled order due to profit loss */\n ProfitLossCancel = 'ProfitLossCancel',\n /** apply fixing at fixing price */\n ApplyFixing = 'ApplyFixing',\n}\n\nexport enum OrderControlActionEnum {\n /** stop making routing decisions and cancel open child orders */\n Pause = 'Pause',\n /** resume making routing decisions */\n Resume = 'Resume',\n}\n\nexport enum OrderMarketStatusEnum {\n /** Market is online */\n Online = 'Online',\n /** Market is disabled by user */\n Disabled = 'Disabled',\n /** Market error limit exceeded */\n Error = 'Error',\n /** Order is less than market minimum */\n LessThanMinSize = 'LessThanMinSize',\n /** No crossing size exists on this market */\n NoCrossingSize = 'NoCrossingSize',\n /** Insufficient balances */\n InsufficientBalances = 'InsufficientBalances',\n /** Market data is offline */\n MarketDataOffline = 'MarketDataOffline',\n /** Orders are offline */\n OrdersOffline = 'OrdersOffline',\n /** User has no credentials on this market */\n NoCredentials = 'NoCredentials',\n /** TimeInForce is not supported for this market */\n TimeInForceNotSupported = 'TimeInForceNotSupported',\n /** Exposure limit exceeded */\n ExposureLimitExceeded = 'ExposureLimitExceeded',\n /** Market is not available for trading */\n NotAvailable = 'NotAvailable',\n /** Market data is offline */\n MarketDataStale = 'MarketDataStale',\n /** Market is crossed */\n MarketDataCrossed = 'MarketDataCrossed',\n /** Price is away from the reference price */\n PriceProtection = 'PriceProtection',\n /** PostOnly order would immediately cross */\n PostOnlyOrderWouldCross = 'PostOnlyOrderWouldCross',\n /** Symbol is disabled on this market account ID */\n SymbolDisabled = 'SymbolDisabled',\n /** User has no permission on this market */\n NoPermission = 'NoPermission',\n /** Market has reached MaxAllocationPercentagePerMarket limit */\n MaxAllocationReached = 'MaxAllocationReached',\n /** Market account is disabled by user */\n AccountDisabled = 'AccountDisabled',\n /** Market child order rate limit breached */\n RateLimit = 'RateLimit',\n /** Equity margin ratio limit reached for the market */\n EquityMarginRatioLimitReached = 'EquityMarginRatioLimitReached',\n}\n\nexport enum OrderMarketabilityEnum {\n /** Marketable */\n Marketable = 'Marketable',\n /** Limited */\n Limited = 'Limited',\n}\n\nexport enum ParticipantEntityTypeEnum {\n /** Organization */\n Organization = 'Organization',\n}\n\nexport enum PegReferenceTypeEnum {\n /** Peg to the same side as order */\n Near = 'Near',\n /** Peg to the mid */\n Mid = 'Mid',\n}\n\nexport enum PnlLookbackEnum {\n /** Today */\n Today = 'Today',\n /** 24 hours */\n H24 = 'H24',\n /** Week to date */\n WeekToDate = 'WeekToDate',\n /** Seven days */\n D7 = 'D7',\n /** Month to date */\n MonthToDate = 'MonthToDate',\n /** 30 days */\n D30 = 'D30',\n /** Year to date */\n YearToDate = 'YearToDate',\n /** 365 days */\n D365 = 'D365',\n}\n\nexport enum PortfolioAdminRequestTypeEnum {\n /** Reset reconciliation (and balances) for a particular account */\n ReconReset = 'ReconReset',\n /** Recalculate position and position stats as of a given timestamp (TransactTime) */\n PositionRecalc = 'PositionRecalc',\n /** Cancel existing conversion views and rerequest rates */\n ConversionsReset = 'ConversionsReset',\n /** Migrate AvgCost-units to quote-currency and PnL-units to settlement-currency */\n MigrateCurrencyUnits = 'MigrateCurrencyUnits',\n /** Log a snapshot of debug information for MarketAccount Recon */\n ReconDebugSnapshot = 'ReconDebugSnapshot',\n}\n\nexport enum PositionLimitScopeEnum {\n /** All */\n All = 'All',\n /** CoreTrading */\n CoreTrading = 'CoreTrading',\n /** CustomerOrderAcceptance */\n CustomerOrderAcceptance = 'CustomerOrderAcceptance',\n}\n\nexport enum PositionSideTypeEnum {\n /** Both */\n Both = 'Both',\n /** Long */\n Long = 'Long',\n /** Short */\n Short = 'Short',\n}\n\nexport enum PositionUpdateSourceEnum {\n /** Gateway */\n Gateway = 'Gateway',\n /** Internal Live Updates */\n Internal = 'Internal',\n}\n\nexport enum PositionUpdateTypeEnum {\n /** Position Reset */\n PositionReset = 'PositionReset',\n /** Position Update */\n PositionUpdate = 'PositionUpdate',\n /** Position Stale */\n PositionStale = 'PositionStale',\n /** Position Keepalive */\n PositionKeepalive = 'PositionKeepalive',\n /** Position Offline */\n PositionOffline = 'PositionOffline',\n}\n\nexport enum PresenceEnum {\n /** Required */\n Required = 'Required',\n /** Optional */\n Optional = 'Optional',\n /** Hidden */\n Hidden = 'Hidden',\n /** TopLevelHidden */\n TopLevelHidden = 'TopLevelHidden',\n}\n\nexport enum PriceMarkSourceEnum {\n /** Talos defined market mid-point */\n Internal = 'Internal',\n /** Externally defined market mid-point */\n External = 'External',\n /** Historic backfill from market data */\n Historic = 'Historic',\n}\n\nexport enum PriceMarkTagsEnum {\n /** PriceMark for end-of-day */\n EndOfDay = 'EndOfDay',\n}\n\nexport enum PriceOffsetUnitsEnum {\n /** Price Units */\n PriceUnits = 'PriceUnits',\n /** Basis Points */\n BasisPoints = 'BasisPoints',\n /** Price Increments */\n PriceIncrements = 'PriceIncrements',\n}\n\nexport enum PriceProtectionEnum {\n /** Error */\n Error = 'Error',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum PricingModeEnum {\n /** Price is in IV */\n ImpliedVolatility = 'ImpliedVolatility',\n /** Price is in underlying quote currency */\n UnderlyingQuoteCurrency = 'UnderlyingQuoteCurrency',\n /** Price is in spread to index until fixing */\n SpreadToFixing = 'SpreadToFixing',\n}\n\nexport enum PricingModesEnum {\n /** Price is in IV */\n ImpliedVolatility = 'ImpliedVolatility',\n /** Price is in underlying quote currency */\n UnderlyingQuoteCurrency = 'UnderlyingQuoteCurrency',\n /** Price is in spread to index until fixing */\n SpreadToFixing = 'SpreadToFixing',\n}\n\nexport enum PricingRuleTypeEnum {\n /** Counterparty tier */\n Counterparty = 'Counterparty',\n /** AllInTier */\n AllInTier = 'AllInTier',\n /** FeeTier */\n FeeTier = 'FeeTier',\n /** SymbolGroup */\n SymbolGroup = 'SymbolGroup',\n /** Global */\n Global = 'Global',\n}\n\nexport enum ProductTypeEnum {\n /** Spot type */\n Spot = 'Spot',\n /** Perpetual Swap type */\n PerpetualSwap = 'PerpetualSwap',\n /** Future type */\n Future = 'Future',\n /** Basis */\n Basis = 'Basis',\n /** Option type */\n Option = 'Option',\n /** CFD type */\n CFD = 'CFD',\n /** Multileg Synthetic product */\n Synthetic = 'Synthetic',\n /** Calendar Spread product */\n CalendarSpread = 'CalendarSpread',\n /** Exchange Traded Fund */\n ExchangeTradedFund = 'ExchangeTradedFund',\n}\n\nexport enum QuoteStatusEnum {\n /** Quote request has been sent */\n PendingNew = 'PendingNew',\n /** Quote request has been accepted and venue sends price */\n Open = 'Open',\n /** Cancel quote request has been sent */\n PendingCancel = 'PendingCancel',\n /** Quote was canceled successfully */\n Canceled = 'Canceled',\n /** Quote has been accepted and waiting to be filled */\n PendingFill = 'PendingFill',\n /** Quote has been filled (partially or entirely) */\n Filled = 'Filled',\n /** Quote has been closed */\n Closed = 'Closed',\n /** Quote request has been rejected */\n Rejected = 'Rejected',\n /** Order on this market failed and it is excluded from retry */\n Excluded = 'Excluded',\n /** Order is waiting for the previous legs to fill before being processed */\n Holding = 'Holding',\n /** Transient error */\n TransientError = 'TransientError',\n /** Quote has been accepted and waiting to be fixed */\n PendingFix = 'PendingFix',\n}\n\nexport enum QuoteTypeEnum {\n /** Indicative quote type */\n Indicative = 'Indicative',\n /** Firm quote type */\n Firm = 'Firm',\n}\n\nexport enum RPCHeaderIndicatorEnum {\n /** 0=Reserved for future use */\n Reserved1 = 'Reserved1',\n /** 0=Reserved for future use */\n Reserved2 = 'Reserved2',\n /** 0=Reserved for future use */\n Reserved3 = 'Reserved3',\n /** 0=Reserved for future use */\n Reserved4 = 'Reserved4',\n /** 0=Reserved for future use */\n Reserved5 = 'Reserved5',\n /** 0=Reserved for future use */\n Reserved6 = 'Reserved6',\n /** 0=Reserved for future use */\n Reserved7 = 'Reserved7',\n /** 1=Last message for the event, 0=Expect more messages */\n CompleteFlag = 'CompleteFlag',\n}\n\nexport enum RPCSessionActionEnum {\n /** New session */\n New = 'New',\n /** Delete session */\n Delete = 'Delete',\n}\n\nexport enum RPCSessionStatusEnum {\n /** Active session */\n Active = 'Active',\n /** Closed session */\n Closed = 'Closed',\n /** Error creating session */\n Error = 'Error',\n}\n\nexport enum RateLimitGroupByScopeEnum {\n /** Requests bucketed based on counterparty ID */\n CounterpartyID = 'CounterpartyID',\n /** Requests bucketed based on customer user ID */\n CustomerUserID = 'CustomerUserID',\n /** Requests bucketed based on the associated market account ID */\n MarketAccountID = 'MarketAccountID',\n /** Requests bucketed based on session */\n SessionID = 'SessionID',\n}\n\nexport enum ReconResolutionEnum {\n /** Unknown */\n Unknown = 'Unknown',\n /** Missing or errored Trades */\n MissedTrade = 'MissedTrade',\n /** Missing or errored Transfers */\n MissedTransfer = 'MissedTransfer',\n /** Missing or errored Fees */\n MissedFees = 'MissedFees',\n /** Initial accepted position */\n InitialPosition = 'InitialPosition',\n /** Below a defined threshold */\n BelowThreshold = 'BelowThreshold',\n}\n\nexport enum ReconStateEnum {\n /** Waiting for manual review */\n PendingReview = 'PendingReview',\n /** Mismatch applied / resolved automatically */\n AutoResolved = 'AutoResolved',\n /** Mismatch ignored by user */\n Ignored = 'Ignored',\n /** Mismatch applied / resolved by a user */\n ManualResolved = 'ManualResolved',\n}\n\nexport enum ReconStreamStatusEnum {\n /** Unknown */\n Unknown = 'Unknown',\n /** Matching including the most recent update */\n Matching = 'Matching',\n /** Matching, ignoring recent known activity */\n LedgerAhead = 'LedgerAhead',\n /** Matching since the most recent mismatch */\n MatchingSinceLatestMismatch = 'MatchingSinceLatestMismatch',\n /** Matching since the most recent mismatch, ignoring recent known activity */\n LedgerAheadSinceLatestMismatch = 'LedgerAheadSinceLatestMismatch',\n /** MarketStale */\n MarketStale = 'MarketStale',\n /** MarketOffline */\n MarketOffline = 'MarketOffline',\n}\n\nexport enum ReconTruthTypeEnum {\n /** Update form external source */\n Update = 'Update',\n /** Bootstrap from 0 or process snapshot */\n Bootstrap = 'Bootstrap',\n /** Keepalive from external source */\n Keepalive = 'Keepalive',\n /** Reset from external source */\n Reset = 'Reset',\n}\n\nexport enum RecordAckTypeEnum {\n /** Error */\n Error = 'Error',\n /** Started */\n Started = 'Started',\n /** Stopped */\n Stopped = 'Stopped',\n}\n\nexport enum RecordRequestTypeEnum {\n /** Start */\n Start = 'Start',\n /** Stop */\n Stop = 'Stop',\n}\n\nexport enum ReduceFirstEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum ReduceOnlyEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum ReplayAckTypeEnum {\n /** Error */\n Error = 'Error',\n /** Start */\n Start = 'Start',\n /** Backlog */\n Backlog = 'Backlog',\n /** Stop */\n Stop = 'Stop',\n}\n\nexport enum ReplayRequestTypeEnum {\n /** None */\n None = 'None',\n /** Continuous */\n Continuous = 'Continuous',\n /** Catchup */\n Catchup = 'Catchup',\n /** Stop */\n Stop = 'Stop',\n /** Volatile */\n Volatile = 'Volatile',\n /** Recorded */\n Recorded = 'Recorded',\n /** RecordedFromHead */\n RecordedFromHead = 'RecordedFromHead',\n}\n\nexport enum RequestIndicatorTypeEnum {\n /** DEPRECATED */\n Direct = 'Direct',\n /** DEPRECATED */\n Algo = 'Algo',\n /** Limit or market orders generated via UI */\n Manual = 'Manual',\n /** Order generated from a non-UI source or a non-limit/market order */\n Auto = 'Auto',\n}\n\nexport enum RequestSourceEnum {\n /** Request is initiated via Talos UI */\n UI = 'UI',\n /** Request is initiated via API */\n API = 'API',\n /** Request is initiated via Position Hedger */\n Hedger = 'Hedger',\n /** Request is initiated via Customer */\n Customer = 'Customer',\n /** Request is initiated via Order Hedger */\n OrderHedger = 'OrderHedger',\n}\n\nexport enum RequestTypeEnum {\n /** MarketDataDeltas */\n MarketDataDeltas = 'MarketDataDeltas',\n /** MarketDataSnapshot */\n MarketDataSnapshot = 'MarketDataSnapshot',\n /** MarketDataTrades */\n MarketDataTrades = 'MarketDataTrades',\n /** NewOrderSingle */\n NewOrderSingle = 'NewOrderSingle',\n /** OrderCancelRequest */\n OrderCancelRequest = 'OrderCancelRequest',\n /** OrderCancelReplaceRequest */\n OrderCancelReplaceRequest = 'OrderCancelReplaceRequest',\n /** Orders Deltas */\n OrdersDeltas = 'OrdersDeltas',\n /** Orders Snapshot */\n OrdersSnapshot = 'OrdersSnapshot',\n /** Balances Snapshot */\n BalancesSnapshot = 'BalancesSnapshot',\n /** Orders Recovery */\n OrdersRecovery = 'OrdersRecovery',\n /** Fills Recovery */\n FillsRecovery = 'FillsRecovery',\n /** Trade Status */\n TradeStatus = 'TradeStatus',\n /** Reference Rate */\n ReferenceRate = 'ReferenceRate',\n}\n\nexport enum ResolutionEnum {\n /** Live */\n Resolution_Live = 'Resolution_Live',\n /** One second */\n Resolution_1S = 'Resolution_1S',\n /** One minute */\n Resolution_1M = 'Resolution_1M',\n /** One hour */\n Resolution_1H = 'Resolution_1H',\n /** One day */\n Resolution_1D = 'Resolution_1D',\n /** Discrete event */\n Resolution_X = 'Resolution_X',\n /** Five minutes */\n Resolution_5M = 'Resolution_5M',\n /** Four hours */\n Resolution_4H = 'Resolution_4H',\n /** Ten seconds */\n Resolution_10S = 'Resolution_10S',\n /** Fifteen minutes */\n Resolution_15M = 'Resolution_15M',\n /** One Month */\n Resolution_1MO = 'Resolution_1MO',\n /** One Week */\n Resolution_1W = 'Resolution_1W',\n}\n\nexport enum RiskEvaluationModeEnum {\n /** Customer orders and RFQs not checked for balances */\n AutoApprove = 'AutoApprove',\n /** Balances are checked for customer orders and RFQs */\n Prefunded = 'Prefunded',\n /** External dealer server has to approve or reject each customer order and RFQ */\n External = 'External',\n}\n\nexport enum SecurityOwnerEnum {\n /** Security is a standard security owned by secmaster */\n Secmaster = 'Secmaster',\n /** Security is a custom security owned by the org */\n Org = 'Org',\n}\n\nexport enum SequencerConnectResponseStatusEnum {\n /** Pending */\n Pending = 'Pending',\n /** Ready */\n Ready = 'Ready',\n /** Error */\n Error = 'Error',\n}\n\nexport enum ServiceStatusEnum {\n /** Indicates the Service is Currently Starting */\n Starting = 'Starting',\n /** Indicates the Service is Currently Running */\n Running = 'Running',\n /** Indicates the Service has been Requested to Shutdown */\n Shutdown = 'Shutdown',\n}\n\nexport enum SessionEventTypeEnum {\n /** Session connect */\n Connect = 'Connect',\n /** Session disconnect */\n Disconnect = 'Disconnect',\n /** Session timeout */\n Timeout = 'Timeout',\n}\n\nexport enum SessionSourceEnum {\n /** Websocket */\n Websocket = 'Websocket',\n /** REST */\n REST = 'REST',\n /** FIX */\n FIX = 'FIX',\n}\n\nexport enum SettleValueTypeEnum {\n /** Regular */\n Regular = 'Regular',\n /** Inverted */\n Inverted = 'Inverted',\n}\n\nexport enum SettlementBatchRejectReasonEnum {\n /** Settlement batch is expired */\n BatchExpired = 'BatchExpired',\n /** The batch is invalid */\n InvalidBatch = 'InvalidBatch',\n /** One of the trades is invalid */\n InvalidTrade = 'InvalidTrade',\n /** Internal error */\n InternalError = 'InternalError',\n}\n\nexport enum SettlementBatchStatusEnum {\n /** Settlement batch is created but has pending updates */\n Proposed = 'Proposed',\n /** Settlement batch is reified and ready to be settled */\n Initiated = 'Initiated',\n /** Settlement batch is completed */\n Completed = 'Completed',\n /** Settlement batch is rejected */\n Rejected = 'Rejected',\n /** Settlement batch is cancelled */\n Cancelled = 'Cancelled',\n}\n\nexport enum SettlementClassEnum {\n /** None */\n None = 'None',\n /** OTC settlement class */\n OTC = 'OTC',\n /** Customer settlement class */\n Customer = 'Customer',\n}\n\nexport enum SettlementInstructionDirectionEnum {\n /** Outbound direction, e.g., customer withdrawals or settlements to OTCs */\n Outbound = 'Outbound',\n /** Inbound direction, e.g., customer deposits or settlements from OTCs */\n Inbound = 'Inbound',\n}\n\nexport enum SideEnum {\n /** Buy */\n Buy = 'Buy',\n /** Sell */\n Sell = 'Sell',\n}\n\nexport enum SlippageReferencePriceEnum {\n /** TWAP */\n TWAP = 'TWAP',\n /** VWAP */\n VWAP = 'VWAP',\n /** Arrival */\n Arrival = 'Arrival',\n /** TalosEstimated */\n TalosEstimated = 'TalosEstimated',\n}\n\nexport enum SnapshotBlockEntryTypeEnum {\n /** Start */\n Start = 'Start',\n /** End */\n End = 'End',\n}\n\nexport enum StrategyParameterSettingEnum {\n /** MaxPercentOfOrderAhead */\n MaxPercentOfOrderAhead = 'MaxPercentOfOrderAhead',\n /** MaxPercentOfOrderBehind */\n MaxPercentOfOrderBehind = 'MaxPercentOfOrderBehind',\n /** MaxSecondsAheadOfSchedule */\n MaxSecondsAheadOfSchedule = 'MaxSecondsAheadOfSchedule',\n /** MaxSecondsBehindSchedule */\n MaxSecondsBehindSchedule = 'MaxSecondsBehindSchedule',\n /** MinTargetParticipationRate */\n MinTargetParticipationRate = 'MinTargetParticipationRate',\n /** MidTargetParticipationRate */\n MidTargetParticipationRate = 'MidTargetParticipationRate',\n /** MaxTargetParticipationRate */\n MaxTargetParticipationRate = 'MaxTargetParticipationRate',\n /** DeeperRestingLevelsMinSkipIntervals */\n DeeperRestingLevelsMinSkipIntervals = 'DeeperRestingLevelsMinSkipIntervals',\n /** MaxPercentLegBehindToHedge */\n MaxPercentLegBehindToHedge = 'MaxPercentLegBehindToHedge',\n /** MaxPercentOfVolumeBehind */\n MaxPercentOfVolumeBehind = 'MaxPercentOfVolumeBehind',\n}\n\nexport enum StrategyScopeEnum {\n /** Strategy that can be specified on OMS Orders */\n OrderStrategy = 'OrderStrategy',\n /** Strategy that can be specified as a child of an OrderStrategy - for use in DDH */\n DDHSubStrategy = 'DDHSubStrategy',\n /** Strategy that can configured on a HedgeRule for HedgeOrder execution */\n AutoHedgingStrategy = 'AutoHedgingStrategy',\n}\n\nexport enum StrategyTypeEnum {\n /** SmartOrderRouter */\n SmartOrderRouter = 'SmartOrderRouter',\n /** Algorithm */\n Algorithm = 'Algorithm',\n}\n\nexport enum SubAccountReconCheckpointEvalStatusEnum {\n /** Evaluation completed */\n Done = 'Done',\n /** Requested resolution / changes, pending re-evaluation */\n Pending = 'Pending',\n /** Evaluation is currently in progress */\n InProgress = 'InProgress',\n}\n\nexport enum SubAccountReconCheckpointStatusEnum {\n /** Has unatched events or balances */\n Unreconciled = 'Unreconciled',\n /** All events and balances match */\n Reconciled = 'Reconciled',\n /** No longer valid account / grouping */\n Discarded = 'Discarded',\n}\n\nexport enum SubAccountReconMatchStatusEnum {\n /** Unmatched */\n Unmatched = 'Unmatched',\n /** Only SubAccount event(s) exist */\n UnmatchedSubAccount = 'UnmatchedSubAccount',\n /** Only MarketAccount event(s) exist */\n UnmatchedMarketAccount = 'UnmatchedMarketAccount',\n /** Events exist and match */\n Matched = 'Matched',\n /** Manually Resolved */\n Resolved = 'Resolved',\n /** No a longer has matching events */\n Discarded = 'Discarded',\n /** Manually ignored, not applied to SubAccounts */\n Ignored = 'Ignored',\n}\n\nexport enum SubAccountSMPCheckTypeEnum {\n /** None */\n None = 'None',\n /** RejectNew */\n RejectNew = 'RejectNew',\n}\n\nexport enum SubAccountTradeRoutingModeEnum {\n /** None */\n None = 'None',\n /** Connected config value is a SubAccount name */\n SpecificSubAccount = 'SpecificSubAccount',\n /** Routes trades to the only SubAccount mapped to a MarketAccount. Does not route if there are multiple mappings */\n OnlyMappedSubAccount = 'OnlyMappedSubAccount',\n /** Routes trades to a deterministic (but arbitrary) SubAccount from those mapped to a MarketAccount */\n FirstMappedSubAccount = 'FirstMappedSubAccount',\n}\n\nexport enum SubAccountTypeEnum {\n /** Base subaccount type book */\n Book = 'Book',\n /** Subaccount type composed of books and/or other rollups */\n Rollup = 'Rollup',\n}\n\nexport enum SubscriptionRequestTypeEnum {\n /** Subscribe */\n Subscribe = 'Subscribe',\n /** Unsubscribe */\n Unsubscribe = 'Unsubscribe',\n /** Snoop */\n Snoop = 'Snoop',\n /** Snapshot */\n Snapshot = 'Snapshot',\n}\n\nexport enum SyntheticProductTypeEnum {\n /** unknown */\n Unknown = 'Unknown',\n /** Synthetic Cross */\n Cross = 'Cross',\n /** Delta-1 Spread */\n Delta1Spread = 'Delta1Spread',\n /** Call Calendar */\n CallCalendarSpread = 'CallCalendarSpread',\n /** Put Calendar */\n PutCalendarSpread = 'PutCalendarSpread',\n /** Call Spread */\n CallSpread = 'CallSpread',\n /** Put Spread */\n PutSpread = 'PutSpread',\n}\n\nexport enum TenorBucketEnum {\n /** Outright */\n Outright = 'Outright',\n /** W1 */\n W1 = 'W1',\n /** M1 */\n M1 = 'M1',\n /** M3 */\n M3 = 'M3',\n /** M6 */\n M6 = 'M6',\n /** M9 */\n M9 = 'M9',\n /** Y1 */\n Y1 = 'Y1',\n}\n\nexport enum ThresholdTypeEnum {\n /** NewOrderCount */\n NewOrderCount = 'NewOrderCount',\n /** TotalActiveVolume */\n TotalActiveVolume = 'TotalActiveVolume',\n /** NewOrderVolume */\n NewOrderVolume = 'NewOrderVolume',\n}\n\nexport enum TimeInForceEnum {\n /** GoodTillCancel */\n GoodTillCancel = 'GoodTillCancel',\n /** Day */\n Day = 'Day',\n /** FillAndKill */\n FillAndKill = 'FillAndKill',\n /** FillOrKill */\n FillOrKill = 'FillOrKill',\n /** PostOnly */\n PostOnly = 'PostOnly',\n}\n\nexport enum TopicStatusEnum {\n /** Requesting */\n Requesting = 'Requesting',\n /** Streaming */\n Streaming = 'Streaming',\n /** NotAvailable */\n NotAvailable = 'NotAvailable',\n}\n\nexport enum TradeActionEnum {\n /** New */\n New = 'New',\n /** Confirmed */\n Confirmed = 'Confirmed',\n /** Updated */\n Updated = 'Updated',\n /** Canceled */\n Canceled = 'Canceled',\n}\n\nexport enum TradeRecoveryActionEnum {\n /** start processing a trade recovery request */\n Process = 'Process',\n /** cancel processing a trade recovery request */\n Cancel = 'Cancel',\n /** report status of a trade recovery request */\n Status = 'Status',\n}\n\nexport enum TradeRecoveryStatusEnum {\n /** request has been accepted and awaiting processing */\n PendingProcessing = 'PendingProcessing',\n /** request is being processed */\n Processing = 'Processing',\n /** request has been requested to cancel */\n PendingCancel = 'PendingCancel',\n /** request has been cancelled */\n Cancelled = 'Cancelled',\n /** request has completed successfully */\n Completed = 'Completed',\n /** request has been rejected */\n Rejected = 'Rejected',\n /** request has failed due to an error */\n Failed = 'Failed',\n}\n\nexport enum TradeRefDataTypeEnum {\n /** Delta of an option */\n Delta = 'Delta',\n /** Underlying price of an option */\n UnderlyingPrice = 'UnderlyingPrice',\n /** Conversion rate for unified liquidity trades */\n UnifiedLiquidityConversionRate = 'UnifiedLiquidityConversionRate',\n}\n\nexport enum TradeSettleActionEnum {\n /** Trade report is created */\n Created = 'Created',\n /** Trade report is settled */\n Settlement = 'Settlement',\n /** Trade was amended causing update of this trade settle report */\n TradeAmend = 'TradeAmend',\n /** Trade was canceled causing update of this trade settle report */\n TradeCancel = 'TradeCancel',\n /** Trade report is cancelled */\n Cancel = 'Cancel',\n}\n\nexport enum TradeSettleSourceEnum {\n /** Size was prefunded */\n Prefunded = 'Prefunded',\n /** Settled because of deposit */\n Deposit = 'Deposit',\n /** Settled because of settlement process */\n Settlement = 'Settlement',\n}\n\nexport enum TradeSettleStatusEnum {\n /** Trade is settled */\n Settled = 'Settled',\n /** Trade is unsettled */\n Unsettled = 'Unsettled',\n /** Trade is canceled */\n Canceled = 'Canceled',\n}\n\nexport enum TradeSourceEnum {\n /** Market trade source */\n Market = 'Market',\n /** User trade source */\n User = 'User',\n /** Dealer trade source */\n Dealer = 'Dealer',\n /** Dealer trade manually added */\n DealerUser = 'DealerUser',\n}\n\nexport enum TradeStatusEnum {\n /** Trade capture has arrived, or no capture is expected */\n Confirmed = 'Confirmed',\n /** Trade capture will come later */\n Pending = 'Pending',\n /** Trade capture was canceled (didn't happen or added by mistake) */\n Canceled = 'Canceled',\n}\n\nexport enum TradeTypeEnum {\n /** RFQ */\n RFQ = 'RFQ',\n /** EXC */\n EXC = 'EXC',\n}\n\nexport enum TradeUpdateRequestTypeEnum {\n /** Update requested trade with specified param values */\n TradeUpdate = 'TradeUpdate',\n /** Cancel requested trade */\n TradeCancel = 'TradeCancel',\n /** Update requested order with specified param values */\n OrderUpdate = 'OrderUpdate',\n /** Update requested customer trade with specified param values */\n CustomerTradeUpdate = 'CustomerTradeUpdate',\n /** Cancel requested customertrade */\n CustomerTradeCancel = 'CustomerTradeCancel',\n /** Update requested dealer trade ledgers */\n DealerTradeUpdate = 'DealerTradeUpdate',\n /** Cancel requested dealer trade ledgers */\n DealerTradeCancel = 'DealerTradeCancel',\n}\n\nexport enum TransactionExecTypeEnum {\n /** Transaction was successfully created */\n Created = 'Created',\n /** Transaction is fully approved */\n Approved = 'Approved',\n /** Transfer has been initiated by transfer gateway */\n TransferInitiated = 'TransferInitiated',\n /** Transfer has been rejected by transfer gateway */\n TransferRejected = 'TransferRejected',\n /** Transfer has been completed */\n TransferCompleted = 'TransferCompleted',\n /** Transaction has been canceled by the user */\n Canceled = 'Canceled',\n /** Transaction has been rejected either by Talos user or external system */\n Rejected = 'Rejected',\n /** Transaction has been completed either by manual action or by transfer complete */\n Completed = 'Completed',\n /** Transaction got some update but didn't change its status */\n Restated = 'Restated',\n /** Update request was rejected */\n UpdateRejected = 'UpdateRejected',\n /** Transfer has been registered (request passed the validation and transfer request has been sent) */\n TransferRegistered = 'TransferRegistered',\n /** Transfer has been sent to blockchain and have txHash. Waiting for block confirmations */\n TransferPendingBlockchainConfirmation = 'TransferPendingBlockchainConfirmation',\n /** Child transaction update caused status change */\n GroupChildStatusUpdate = 'GroupChildStatusUpdate',\n}\n\nexport enum TransactionRejectReasonEnum {\n /** Exceeds balances */\n ExceedsBalances = 'ExceedsBalances',\n /** Validation error */\n ValidationError = 'ValidationError',\n /** Transition is not possible with current transaction state */\n TransitionNotPossible = 'TransitionNotPossible',\n /** Internal error */\n InternalError = 'InternalError',\n /** Related transfer was rejected */\n TransferRejected = 'TransferRejected',\n}\n\nexport enum TransactionStatusEnum {\n /** PendingApproval. Transaction passed validation and needs to be approved by authorized party */\n PendingApproval = 'PendingApproval',\n /** Rejected by Talos or external system */\n Rejected = 'Rejected',\n /** PendingTransfer. Transaction was authorized and transfer needs to be initiated either by automatic solution or manual */\n PendingTransfer = 'PendingTransfer',\n /** Completed */\n Completed = 'Completed',\n /** Canceled by the user */\n Canceled = 'Canceled',\n /** Transfer has been initiated (gateway accepted the transfer request) */\n TransferInitiated = 'TransferInitiated',\n /** Transfer has been registered (request passed the validation and transfer request has been sent) */\n TransferRegistered = 'TransferRegistered',\n /** Transfer has been sent to blockchain and have txHash. Waiting for block confirmations */\n TransferPendingBlockchainConfirmation = 'TransferPendingBlockchainConfirmation',\n /** General / aggregate active status */\n InProgress = 'InProgress',\n}\n\nexport enum TransactionTypeEnum {\n /** Customer initiated withdrawal */\n CustomerWithdrawal = 'CustomerWithdrawal',\n /** Customer initiated deposit */\n CustomerDeposit = 'CustomerDeposit',\n /** Settlement batch parent transaction */\n SettlementBatch = 'SettlementBatch',\n /** Outgoing settlement */\n SettlementOutgoing = 'SettlementOutgoing',\n /** Incoming settlement (expected) */\n SettlementIncoming = 'SettlementIncoming',\n /** A forced customer withdrawal that can take the amount into negative */\n CustomerForceWithdrawal = 'CustomerForceWithdrawal',\n}\n\nexport enum TransactionUpdateActionEnum {\n /** User approves the transaction */\n Approve = 'Approve',\n /** User initiates the transfer */\n InitiateTransfer = 'InitiateTransfer',\n /** User cancels the transaction */\n Cancel = 'Cancel',\n /** User rejects the transaction */\n Reject = 'Reject',\n /** User completes the transaction. This means closing the transaction and creating ledger event */\n Complete = 'Complete',\n}\n\nexport enum TransferAutomationStatusEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum TransferRequestTypeEnum {\n /** OMS */\n OMS = 'OMS',\n /** Gateway */\n Gateway = 'Gateway',\n /** Customer */\n Customer = 'Customer',\n}\n\nexport enum TransferStatusEnum {\n /** Pending */\n Pending = 'Pending',\n /** Processing */\n Processing = 'Processing',\n /** Completed */\n Completed = 'Completed',\n /** Failed */\n Rejected = 'Rejected',\n /** WaitingForExternalAuth */\n WaitingForExternalAuth = 'WaitingForExternalAuth',\n}\n\nexport enum TransferUpdateStatusEnum {\n /** Update has been applied successfully */\n Updated = 'Updated',\n /** Failed to apply the update */\n Rejected = 'Rejected',\n}\n\nexport enum TreasuryLinkDirectionEnum {\n /** Outbound mapping, e.g., customer withdrawals or settlements to OTCs */\n Outbound = 'Outbound',\n /** Inbound mapping, e.g., customer deposits or settlements from OTCs */\n Inbound = 'Inbound',\n}\n\nexport enum TreasuryLinkTypeEnum {\n /** Treasury to whitelisted OTC settlement account */\n OTCSettlement = 'OTCSettlement',\n /** Treasury to/from exchange accounts */\n ExchangeRebalance = 'ExchangeRebalance',\n /** Treasury to/from customer user accounts facilitating customer deposits and withdrawals */\n CustomerTransfer = 'CustomerTransfer',\n}\n\nexport enum TriggerTypeEnum {\n /** Cross */\n Cross = 'Cross',\n /** Stop */\n Stop = 'Stop',\n /** TakeProfit */\n TakeProfit = 'TakeProfit',\n}\n\nexport enum TypeEnum {\n /** SubAccount */\n SubAccount = 'SubAccount',\n /** MarketAccount */\n MarketAccount = 'MarketAccount',\n}\n\nexport enum UnifiedLiquidityEnum {\n /** Enabled */\n Enabled = 'Enabled',\n /** Disabled */\n Disabled = 'Disabled',\n}\n\nexport enum UpdateActionEnum {\n /** Add or update the item with this key */\n Update = 'Update',\n /** Remove the item with this key */\n Remove = 'Remove',\n /** Set when this is the Initial Update sent */\n Initial = 'Initial',\n /** Reset */\n Reset = 'Reset',\n}\n\nexport enum UserMarketDataLimitRequestStatusEnum {\n /** MD request has been accepted and is active */\n Active = 'Active',\n /** MD request has been closed */\n Closed = 'Closed',\n /** MD request has been rejected */\n Rejected = 'Rejected',\n}\n\nexport enum ViewCancelTypeEnum {\n /** Cancel a single request */\n Request = 'Request',\n /** Cancel all requests for client process */\n Client = 'Client',\n /** Cancel all requests for a session */\n Session = 'Session',\n}\n\n/** Contains information about transfer state upon startup */\nexport interface ITransferCheckpoint {\n /** The last time for which we've queries for historical transfers */\n LastHistoricalTransferTime: JSON_UTCTimestamp;\n\n /** Credential associated with this transfer. */\n CredentialID: number;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Contains information about the point time or execID from which we should start recovering trades from */\nexport interface ITradeCheckpoint {\n /** Time of last update */\n Timestamp: JSON_UTCTimestamp;\n\n /** Checkpoint Type */\n CheckpointType: CheckpointTypeEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential associated with this trade. */\n CredentialID: number;\n\n /** Optional Security ID. If not provided, we checkpoint based on credential ID */\n Symbol: JSON_Security;\n\n /** The time of the last trade we. Used when we use TimeBased checkpoints. */\n LastTradeTime: JSON_UTCTimestamp;\n\n /** The time from which we should recover trades from. Used when we use TimeBased checkpoints. */\n CheckpointTime: JSON_UTCTimestamp;\n\n /** All trades after this time should be kept in memory. This will always be set to a time before the CheckpointTime. Used when we use TimeBased checkpoints. */\n LookbackTime: JSON_UTCTimestamp;\n\n /** The last ExecID we've seen in a trade. Used when we use SequenceBased checkpoints. */\n LastTradeID: number;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Snapshot for a HeartbeatModel */\nexport interface IHeartbeatModelSnapshot {\n /** The ID of this HeartbeatModel */\n SenderID: number;\n\n /** Timestamp of the last heartbeat published by this HeartbeatModel */\n LastPublishedHeartbeatTime: JSON_UTCTimestamp;\n\n /** The set of most recent heartbeats this HeartbeatModel has received by sender */\n LastReceivedHeartbeats: IHeartbeatModelSnapshot11300LastReceivedHeartbeats[];\n}\n\n/** The set of most recent heartbeats this HeartbeatModel has received by sender */\nexport interface IHeartbeatModelSnapshot11300LastReceivedHeartbeats {\n /** The ID of the Sender of this heartbeat */\n SenderID: number;\n\n /** Timestamp of the last heartbeat received from this sender */\n Timestamp: JSON_UTCTimestamp;\n}\n\n/** Message for publishing market data to internal gateway */\nexport interface IUpdateMarketData {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Price origination timestamp */\n TransactTime: JSON_UTCTimestamp;\n\n /** Timestamp until the provided prices are invalid */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** SessionID for data action */\n SessionID: JSON_Int64ID;\n\n /** SessionID for market data to be reset when the session resets */\n CancelSessionID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Market for this market data update - not publicly exposed, just used for internal routing */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** Bid Entries */\n Bids: IUpdateMarketData6700Bids[];\n\n /** Offer Entries */\n Offers: IUpdateMarketData6700Offers[];\n}\n\n/** Bid Entries */\nexport interface IUpdateMarketData6700Bids {\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n}\n\n/** Offer Entries */\nexport interface IUpdateMarketData6700Offers {\n /** Offer Price */\n Price: JSON_Decimal;\n\n /** Offer Size */\n Size: JSON_Decimal;\n}\n\n/** Messgae for publishing customer balance updates to the customer process */\nexport interface IUpdateCustomerBalance {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** ID of the counterparty these balances belong to */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** The Currency of the balance entry, if non-zero */\n Currency: string;\n\n /** Price origination timestamp */\n TransactTime: JSON_UTCTimestamp;\n\n /** Realtime amount including all trade executions */\n Amount: JSON_Decimal;\n\n /** Available amount not tied up in open orders */\n AvailableAmount: JSON_Decimal;\n\n /** Amount of open orders on the buy side */\n OutstandingBuy: JSON_Decimal;\n\n /** Amount of open orders on the sell side */\n OutstandingSell: JSON_Decimal;\n\n /** Pending withdrawal amount */\n PendingWithdrawal: JSON_Decimal;\n}\n\n/** A benchmark index for underlying security or basket of securities */\nexport interface IIndex {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** Specified when source=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** This Index's OID style ID */\n IndexID: JSON_Int64ID;\n\n /** Canonical symbol for this index */\n Name: string;\n\n /** Canonical symbol for this index */\n DisplayName: string;\n\n /** Default price increment (Display Field) */\n DefaultSpreadIncrement: JSON_Decimal;\n\n /** Canonical min increment for expressing the underlying price as a spread to the index */\n MinSpreadIncrement: JSON_Decimal;\n\n /** Display spec for spread (Display Field) */\n SpreadDisplaySpec: string;\n\n /** Index fixing time */\n ValidNominalIndexTime: number;\n\n /** Timezone definition that captures daylight savings on a given date. */\n NominalIndexTimeZone: string;\n\n /** Description of the index */\n Description: string;\n}\n\n/** Maps Indexes to the Markets that support them */\nexport interface IMarketIndex {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Specified when source=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** Revision */\n Revision: number;\n\n /** The ID of this record's market */\n Market: JSON_Market;\n\n /** The ID of this record's index */\n IndexID: number;\n\n /** Symbol used by this market */\n MarketSymbol: string;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n}\n\n/** MD Book Subscription Request */\nexport interface IMarketViewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Security ID for Subscription Request */\n Symbol: JSON_Security;\n\n /** User ID */\n User: JSON_User;\n\n /** Canonical price increment */\n PriceIncrement: JSON_Decimal;\n\n /** Requested Fee Mode */\n FeeMode: FeeModeEnum;\n\n /** Equivalent Currency ID */\n EquivalentCurrency: string;\n\n /** Requested Price Depth for Market View */\n Depth: number;\n\n /** Debug and additional flags */\n Debug: Record;\n\n /** Depth type */\n DepthType: DepthTypeEnum;\n\n /** Liquidity type */\n LiquidityType: LiquidityTypeEnum;\n\n /** Unique ID of the aggregation */\n Aggregation: JSON_Int64ID;\n\n /** Enabling/disabling uncrossing of multiple markets */\n UncrossMarkets: BoolEnum;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: UnifiedLiquidityEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Requested Price Depth for Market View */\n SizeBuckets: IMarketViewRequest4146SizeBuckets[];\n\n /** Requested Price Depth for Market View */\n AmountBuckets: IMarketViewRequest4146AmountBuckets[];\n\n /** Requested Markets */\n Markets: IMarketViewRequest4146Markets[];\n}\n\n/** Requested Price Depth for Market View */\nexport interface IMarketViewRequest4146AmountBuckets {\n /** Amount Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** Requested Markets */\nexport interface IMarketViewRequest4146Markets {\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Requested Price Depth for Market View */\nexport interface IMarketViewRequest4146SizeBuckets {\n /** Size Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** MD Book Subscription Response */\nexport interface IViewResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** ID of MarketView */\n ViewID: JSON_Int64ID;\n\n /** SenderID of view handler process */\n SenderID: number;\n}\n\n/** (TenantID:OrgID)(ResourceName:PositionUpdate Key:UpdateSource,MarketAccountID,AssetID,PositionSide PrimaryKey:Generated ExtraIndexes:UpdateSource;UpdateSource,MarketAccountID;UpdateSource,AssetID,PositionSide GoTableExtras:LastUpdateTime:time.Time) */\nexport interface IPositionUpdate {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Source of this position update message */\n UpdateSource: PositionUpdateSourceEnum;\n\n /** Type of position update message */\n UpdateType: PositionUpdateTypeEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** The asset of the position */\n Asset: string;\n\n /** Side of the Position */\n PositionSide: PositionSideTypeEnum;\n\n /** Position Amount */\n Amount: JSON_Decimal;\n\n /** Position average (entry) price */\n AvgCost: JSON_Decimal;\n\n /** The Currency units of average cost */\n AvgCostCurrency: string;\n\n /** Position (forced) liquidation price */\n LiquidationPrice: JSON_Decimal;\n\n /** Accumulated Realized PnL (pre-fee) */\n RealizedPnL: JSON_Decimal;\n\n /** Unrealized PnL */\n UnrealizedPnL: JSON_Decimal;\n\n /** The Currency unit of PnL properties */\n PnLCurrency: string;\n\n /** Position update time as given by the Exchange or zero if not given by the exchange */\n TransactTime: JSON_UTCTimestamp;\n\n /** Unique batch update belongs to */\n BatchID: JSON_Int64ID;\n\n /** Bitmap field of eight Boolean type indicators signaling if there are more entries to follow. Only the ContinuationFlag is used. */\n EventIndicator: Record;\n\n /** First derivative of asset value with respect to underlying index price */\n Delta: JSON_Decimal;\n\n /** Second derivative of asset value with respect to underlying index price */\n Gamma: JSON_Decimal;\n\n /** First derivative of asset value with respect to underlying volatility */\n Vega: JSON_Decimal;\n\n /** First derivative of asset value with respect to time */\n Theta: JSON_Decimal;\n\n /** First derivative of asset value with respect to risk free interest rate */\n Rho: JSON_Decimal;\n\n /** Mark price of the instrument (derivatives only) */\n MarkPrice: JSON_Decimal;\n\n /** Index price of the underlying instrument (options only) */\n UnderlyingPrice: JSON_Decimal;\n\n /** The quote currency of the underlying instrument (options only) */\n UnderlyingQuoteCurrency: string;\n\n /** Expiration date/time of the security (options and futures) */\n Expiration: JSON_UTCTimestamp;\n\n /** Currency of the delta */\n DeltaCurrency: string;\n\n /** Cumulative Fees attributed to this asset */\n CumFees: JSON_Decimal;\n\n /** Currency of CumFees */\n FeeCurrency: string;\n\n /** Cumulative FundingPnL attributed to this asset */\n FundingPnL: JSON_Decimal;\n\n /** The Currency units of FundingPnL */\n FundingPnLCurrency: string;\n\n /** Unsettled amount for this position */\n UnsettledAmount: JSON_Decimal;\n\n /** Average cost of the UnsettledAmount */\n UnsettledAvgCost: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (TenantID:OrgID)(ResourceName:SubAccountPositionUpdate Key:UpdateSource,SubAccountID,AssetID,PositionSide PrimaryKey:Generated ExtraIndexes:UpdateSource;UpdateSource,SubAccountID GoTableExtras:LastUpdateTime:time.Time) */\nexport interface ISubAccountPositionUpdate {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Source of this position update message */\n UpdateSource: PositionUpdateSourceEnum;\n\n /** Type of position update message */\n UpdateType: PositionUpdateTypeEnum;\n\n /** Unique ID of the account */\n SubAccount: JSON_SubAccount;\n\n /** The asset of the position */\n Asset: string;\n\n /** Side of the Position */\n PositionSide: PositionSideTypeEnum;\n\n /** Position Amount */\n Amount: JSON_Decimal;\n\n /** Position average (entry) price */\n AvgCost: JSON_Decimal;\n\n /** The Currency units of average cost */\n AvgCostCurrency: string;\n\n /** Accumulated Realized PnL (pre-fee) */\n RealizedPnL: JSON_Decimal;\n\n /** Unrealized PnL */\n UnrealizedPnL: JSON_Decimal;\n\n /** The Currency unit of PnL properties */\n PnLCurrency: string;\n\n /** Position update time as given by the Exchange or zero if not given by the exchange */\n TransactTime: JSON_UTCTimestamp;\n\n /** Unique batch update belongs to */\n BatchID: JSON_Int64ID;\n\n /** Bitmap field of eight Boolean type indicators signaling if there are more entries to follow. Only the ContinuationFlag is used. */\n EventIndicator: Record;\n\n /** Amount of open orders on the buy side */\n OutstandingBuy: JSON_Decimal;\n\n /** Amount of open orders on the sell side */\n OutstandingSell: JSON_Decimal;\n\n /** Cumulative Fees attributed to this asset, in pnl-currency units */\n CumFees: JSON_Decimal;\n\n /** Cumulative FundingPnL attributed to this asset */\n FundingPnL: JSON_Decimal;\n\n /** The Currency units of FundingPnL */\n FundingPnLCurrency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Inflows for this subaccount + asset */\n Inflows: JSON_Decimal;\n\n /** Average cost of inflows */\n InflowAvgCost: JSON_Decimal;\n\n /** Outflows for this subaccount + asset */\n Outflows: JSON_Decimal;\n\n /** Average cost of outflows */\n OutflowAvgCost: JSON_Decimal;\n\n /** The Currency units of CumFees */\n FeeCurrency: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (ResourceName:AssetRiskValuation Key:SourceService,AssetID,RiskSide,UnitCurrencyID PrimaryKey:id PrimaryKeyType:int64) */\nexport interface IAssetRiskValuation {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this valuation / keys. Assigned by the SourceService */\n ID: JSON_Int64ID;\n\n /** Revision */\n Revision: number;\n\n /** The originating service */\n SourceService: JSON_ServiceIdentifier;\n\n /** AssetID for this vaulation */\n Asset: string;\n\n /** Side to which this valuation applies */\n RiskSide: PositionSideTypeEnum;\n\n /** Currency for unit Net/Gross values */\n UnitCurrency: string;\n\n /** Tenor bucket for the asset */\n Tenor: TenorBucketEnum;\n\n /** Current Moneyness bucket for the asset */\n Moneyness: MoneynessBucketEnum;\n\n /** Unitless Delta */\n Delta: JSON_Decimal;\n\n /** Unitless Gamma */\n Gamma: JSON_Decimal;\n\n /** Unitless Vega */\n Vega: JSON_Decimal;\n\n /** Unitless Rho */\n Rho: JSON_Decimal;\n\n /** Unitless Theta */\n Theta: JSON_Decimal;\n\n /** Unitless Vanna */\n Vanna: JSON_Decimal;\n\n /** Unitless Volga */\n Volga: JSON_Decimal;\n\n /** Unitless Delta Net */\n UnitCurrencyDelta_Net: JSON_Decimal;\n\n /** Unitless Delta Gross */\n UnitCurrencyDelta_Gross: JSON_Decimal;\n\n /** Unitless Gamma Net */\n UnitCurrencyGamma_Net: JSON_Decimal;\n\n /** Unitless Gamma Gross */\n UnitCurrencyGamma_Gross: JSON_Decimal;\n\n /** Unitless Vega Net */\n UnitCurrencyVega_Net: JSON_Decimal;\n\n /** Unitless Vega Gross */\n UnitCurrencyVega_Gross: JSON_Decimal;\n\n /** Unitless Rho Net */\n UnitCurrencyRho_Net: JSON_Decimal;\n\n /** Unitless Rho Gross */\n UnitCurrencyRho_Gross: JSON_Decimal;\n\n /** Unitless Theta Net */\n UnitCurrencyTheta_Net: JSON_Decimal;\n\n /** Unitless Theta Gross */\n UnitCurrencyTheta_Gross: JSON_Decimal;\n\n /** Unitless Vanna Net */\n UnitCurrencyVanna_Net: JSON_Decimal;\n\n /** Unitless Vanna Gross */\n UnitCurrencyVanna_Gross: JSON_Decimal;\n\n /** Unitless Volga Net */\n UnitCurrencyVolga_Net: JSON_Decimal;\n\n /** Unitless Volga Gross */\n UnitCurrencyVolga_Gross: JSON_Decimal;\n\n /** Computation time from the underlying data source */\n TransactTime: JSON_UTCTimestamp;\n\n /** Batch this valuation belongs to */\n BatchID: JSON_Int64ID;\n\n /** EventIndicator */\n EventIndicator: Record;\n\n /** Unitless Delta Exposure Net */\n UnitCurrencyDeltaExposure_Net: JSON_Decimal;\n\n /** Unitless Delta Exposure Gross */\n UnitCurrencyDeltaExposure_Gross: JSON_Decimal;\n\n /** Present Value */\n PV: JSON_Decimal;\n\n /** Implied Volatility */\n IV: JSON_Decimal;\n}\n\n/** Request a connection to the sequencer and return details for the session */\nexport interface ISequencerConnectRequest {\n /** Client-generated request ID */\n RequestID: number;\n\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** The service's partition ID */\n PartitionID: number;\n}\n\n/** Response to a sequencer connect request */\nexport interface ISequencerConnectResponse {\n /** The request ID that this status is in response to, if any. */\n RequestID: number;\n\n /** Last service sequence number the sequencer sequenced */\n LastServiceSequenceNumber: number;\n\n /** Last sequence position the service ACKed */\n LastServiceAckPosition: number;\n\n /** Stream ID the client should use to publish messages to the sequencer */\n IncomingDataStreamID: number;\n\n /** Stream ID the client should use to consume messages from the sequencer */\n OutgoingDataStreamID: number;\n\n /** The status of this connection */\n Status: SequencerConnectResponseStatusEnum;\n\n /** Stream ID the client should use to consume admin messages from the sequencer */\n OutgoingAdminStreamID: number;\n\n /** Current head position of the sequenced stream */\n CurrentPosition: number;\n\n /** Current global sequence number */\n CurrentGlobalSequenceNumber: number;\n\n /** Channel the client should publish messages to */\n IncomingDataEndpoint: string;\n\n /** Channel the client should subscribe to for messages from the sequencer */\n OutgoingDataEndpoint: string;\n\n /** Channel the client should subscribe to for admin messages from the sequencer */\n OutgoingAdminEndpoint: string;\n}\n\n/** Header for each message passed from the service to the sequencer */\nexport interface ISequencerServiceHeader {\n /** Time the service sent this message */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** Sequence number of this message on the service */\n ServiceSequenceNo: number;\n\n /** The service's partition ID */\n PartitionID: number;\n\n /** Optional topic */\n Topic: number;\n}\n\n/** Header for each message produced by the sequencer */\nexport interface ISequencerHeader {\n /** Time the sequencer sequenced this message */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique identifier for the source service */\n SourceServiceID: number;\n\n /** Sequence number of this message on the source service */\n SourceSequenceNo: number;\n\n /** The source service's partition ID */\n SourcePartitionID: number;\n\n /** Global sequence number of this message */\n SequenceNumber: number;\n\n /** Optional topic */\n Topic: number;\n}\n\n/** Message to announce having finished processed a sequenced message */\nexport interface ISequencerACK {\n /** Position of the message being ACKed */\n Position: number;\n}\n\n/** Sequencer's current position */\nexport interface ISequencerPosition {\n /** Unique ID of this sequencer */\n SequencerID: number;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Current position in this sequencer's recording */\n Position: number;\n\n /** Current global sequence number */\n SequenceNumber: number;\n}\n\n/** Sequencer's current state for a service */\nexport interface ISequencerServiceSnapshot {\n /** Unique ID of this sequencer */\n SequencerID: number;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique identifier for a service */\n ServiceID: number;\n\n /** Last sequence number processed from the service */\n SequenceNumber: number;\n\n /** Last position ACKed by the service */\n AckPosition: number;\n\n /** The service's partition ID */\n PartitionID: number;\n}\n\n/** Describes a request relating to trade recovery */\nexport interface ITradeRecoveryRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID associated with the account to this market */\n CredentialID: number;\n\n /** Unique ID of the market account (required when gateway has multiple market accounts) */\n MarketAccount: JSON_MarketAccount;\n\n /** User ID that made this request */\n User: JSON_User;\n\n /** A unique correlation ID for this request that responses will use */\n RequestID: JSON_Int64ID;\n\n /** Unique ID of this request (when action is Process) or of the request being targeted (when action is not Process) */\n TargetRequestID: JSON_Int64ID;\n\n /** Indicates what action to be performed on this request */\n Action: TradeRecoveryActionEnum;\n\n /** Trade recovery start time in number of nanoseconds since Unix epoch (required only when action is Process) */\n StartTime: JSON_UTCTimestamp;\n\n /** Trade recovery end time in number of nanoseconds since Unix epoch (required only when action is Process) */\n EndTime: JSON_UTCTimestamp;\n\n /** Security ID for trade recovery request (optional and used only when action is Process; recovers all securities when missing) */\n Symbol: JSON_Security;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Snapshot for a SequencerClient */\nexport interface ISequencerClientSnapshot {\n /** Position in the sequenced stream */\n Position: number;\n\n /** Sequence number the SequencerClient has produced up to */\n SequenceNo: number;\n\n /** Timestamp of the heartbeat this service last received from itself */\n LastHeartbeatTimestamp: JSON_UTCTimestamp;\n\n /** Global sequence number the SequencerClient has received up to */\n GlobalSequenceNo: number;\n}\n\n/** Describes the response to a trade recovery request */\nexport interface ITradeRecoveryResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID associated with the account to this market */\n CredentialID: number;\n\n /** Unique ID of the market account (required when gateway has multiple market accounts) */\n MarketAccount: JSON_MarketAccount;\n\n /** Correlation ID of the request that this response relates to */\n RequestID: JSON_Int64ID;\n\n /** Unique ID of the request being targeted or the requested target id is a duplicate of (required only when action is not Process) */\n TargetRequestID: JSON_Int64ID;\n\n /** Status of trade recovery request that this response relates to */\n Status: TradeRecoveryStatusEnum;\n\n /** Measure of completion (in range [0.0, 1.0]) of the underlying request, as a percentage of the total date range to be recovered */\n ProgressPct: JSON_Decimal;\n\n /** Additional information when the relevant request has an unsuccessful status */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** TimerRegister entry snapshot */\nexport interface ITimerRegisterSnapshotEntry {\n /** Timestamp this timer should trigger at */\n TriggerTime: JSON_UTCTimestamp;\n\n /** Correlation ID for this timer */\n CorrelationID: number;\n}\n\n/** Request information about margin cost for a particular order */\nexport interface IMarginCostRequest {\n /** Unique identifier of this request */\n RequestID: JSON_Int64ID;\n\n /** ID of the traded security (must be a derivative) */\n Symbol: JSON_Security;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID associated with the account to this market */\n CredentialID: number;\n\n /** Unique ID of the market account */\n MarketAccount: JSON_MarketAccount;\n\n /** Order side */\n Side: SideEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Currency of the order quantity (optional) */\n Currency: string;\n\n /** Execution Price */\n Price: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** An in-flight message the sequencer client is waiting to get back from the sequencer */\nexport interface ISequencerClientInflightMessageSnapshot {\n /** Service sequence number of this message */\n SequenceNo: number;\n\n /** The time the message was last sent */\n LastSentTime: JSON_UTCTimestamp;\n\n /** The template ID of the message contents */\n TemplateID: number;\n\n /** Optional topic */\n Topic: number;\n\n /** The message contents in JSON */\n Message: number;\n}\n\n/** Information about margin cost */\nexport interface IMarginCost {\n /** Unique identifier of the request */\n RequestID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The status of the margin cost request */\n Status: MarginCostStatusEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID associated with the account to this market */\n CredentialID: number;\n\n /** Unique ID of the market account */\n MarketAccount: JSON_MarketAccount;\n\n /** The margin account type */\n MarginAccountType: MarginAccountTypeEnum;\n\n /** The margin allocation type */\n MarginAllocationType: MarginAllocationTypeEnum;\n\n /** Currency of the initial margin */\n InitialMarginCurrency: string;\n\n /** The total IM required after placing this order */\n InitialMargin: JSON_Decimal;\n\n /** The total PM required after placing this order (optional) */\n PortfolioMargin: JSON_Decimal;\n\n /** The maximum order qty that can be placed (optional) */\n MaxOrderQty: JSON_Decimal;\n\n /** Currency of the portfolio margin */\n PortfolioMarginCurrency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Additional information in case the request was not successful */\n Text: string;\n\n /** What the exchange calls the margin account type */\n MarketMarginAccountType: string;\n}\n\n/** A message that the sequencer sends to itself to know when it has finished processing all pending messages */\nexport interface ISequencerConnectMarker {\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** The service's partition ID */\n PartitionID: number;\n\n /** The client-generated request ID this marker refers to */\n RequestID: number;\n}\n\n/** An event message containing the maximum service sequence number that has been recorded for a service */\nexport interface ISequencerProgressEvent {\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** The service's partition ID */\n PartitionID: number;\n\n /** Maximum service sequence number that has been recorded */\n SequenceNo: number;\n}\n\n/** Window constraint for limiting subaccount orders */\nexport interface ISubAccountWindowLimit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** Threshold type of the window limit */\n ThresholdType: ThresholdTypeEnum;\n\n /** The asset of the threshold definition (optional) */\n ThresholdAsset: string;\n\n /** Threshold to breach window limit */\n ThresholdValue: JSON_Decimal;\n\n /** The duration of the window limit */\n WindowDuration: JSON_DurationMillis;\n\n /** Side of the window limit */\n Direction: PositionSideTypeEnum;\n\n /** SubaccountID (book or rollup) of this window limit */\n SubAccount: JSON_SubAccount;\n\n /** Asset for which this limit applies */\n MatchAsset: string;\n\n /** ID of user for which this limit applies */\n MatchUser: JSON_User;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of this subaccount window limit */\n Revision: number;\n\n /** ID of user who last updated this subaccount window limit */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Description of this limit */\n Description: string;\n}\n\n/** Window data snapshot for capturing window limit state */\nexport interface ISubAccountWindowLimitSnapshot {\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** SubaccountID (book or rollup) of this window limit */\n SubAccount: JSON_SubAccount;\n\n /** Asset for which this limit applies */\n MatchAsset: string;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n StartTimestamp: JSON_UTCTimestamp;\n\n /** Window bucket startoffset */\n StartOffset: number;\n\n /** Number of buckets */\n Size: number;\n\n /** Total count */\n TotalNewOrderCount: JSON_Decimal;\n\n /** Total fill volume */\n TotalFillVolume: JSON_Decimal;\n\n /** Total new order volume */\n TotalNewOrderVolume: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Window data buckets */\n SizeBuckets: ISubAccountWindowLimitSnapshot4681SizeBuckets[];\n\n /** In-window order-quantity increases */\n WindowOrderSizeIncreases: ISubAccountWindowLimitSnapshot4681WindowOrderSizeIncreases[];\n}\n\n/** Window data buckets */\nexport interface ISubAccountWindowLimitSnapshot4681SizeBuckets {\n /** Bucket new order count */\n NewOrderCount: JSON_Decimal;\n\n /** Bucket fill volume */\n FillVolume: JSON_Decimal;\n\n /** Bucket new order volume */\n NewOrderVolume: JSON_Decimal;\n}\n\n/** In-window order-quantity increases */\nexport interface ISubAccountWindowLimitSnapshot4681WindowOrderSizeIncreases {\n /** Time in nanoseconds that the increase occurred */\n Timestamp: JSON_UTCTimestamp;\n\n /** The ID of the order */\n OrderID: string;\n\n /** Increase at the timestamp */\n Increase: JSON_Decimal;\n}\n\n/** (TenantID:OrgID)(ResourceName:SubAccountWindowLimitStatus Key:LimitID,SubAccountID,MatchAssetID PrimaryKey:Generated GoTableExtras:LastUpdateTime:time.Time) */\nexport interface ISubAccountWindowLimitStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** SubaccountID (book or rollup) of this window limit */\n SubAccount: JSON_SubAccount;\n\n /** Asset for which this limit applies */\n MatchAsset: string;\n\n /** Current limit Status */\n Status: LimitStatusEnum;\n\n /** Lastest value of window limit */\n LatestValue: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Record that all messages from the given queue have been processed */\nexport interface IStreamPosition {\n /** StreamID that the incoming message came from */\n StreamID: number;\n\n /** The position processed as an offset of the given RecordingID */\n Position: number;\n\n /** The recordingID of the started recording */\n RecordingID: number;\n}\n\n/** Reset the log position for this streamID, sent following snapshot data to resume the stream */\nexport interface IStreamPositionReset {\n /** StreamID to reset message came from */\n StreamID: number;\n\n /** The log position to reset to */\n Position: number;\n\n /** RecordingID reset to */\n RecordingID: number;\n}\n\n/** Indicate the beginning of a stream, and is published as the first message on any recorded stream by publisher */\nexport interface IStreamStart {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** StreamID */\n StreamID: number;\n\n /** RecordingID */\n RecordingID: number;\n}\n\n/** A security traded */\nexport interface IStreamPositionCheckpoint {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** The service's partition ID */\n PartitionID: number;\n\n /** StreamID that the incoming message came from */\n StreamID: number;\n\n /** The recordingID of the started recording */\n RecordingID: number;\n\n /** The position processed as an offset of the given RecordingID */\n Position: number;\n\n /** Channel of this stream recording position */\n Channel: string;\n}\n\n/** Realtime balance request */\nexport interface IRealtimeBalanceSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Aeron ClientID of the requestor */\n ClientID: number;\n}\n\n/** Market balance request */\nexport interface IMarketBalanceSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n}\n\n/** (TenantID:OrgID)(ResourceName:ReconMismatch DatabaseName:recon_mismatches Key:ID TimestampField:Timestamp PrimaryKey:id DBType:OrgDB)(ResourceName:ReconMismatchHistory DatabaseName:recon_mismatch_histories Key:ID,Revision TimestampField:Timestamp PrimaryKey:Generated DBType:OrgDB) */\nexport interface IReconMismatch {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID for this mismatch */\n ID: JSON_Int64ID;\n\n /** MarketAccount of this reconciliation */\n MarketAccount: JSON_MarketAccount;\n\n /** Asset of this reconciliation */\n Asset: string;\n\n /** Start time of the interval in which this missing delta occurred */\n StartTime: JSON_UTCTimestamp;\n\n /** End time of the interval in which this missing delta occurred */\n EndTime: JSON_UTCTimestamp;\n\n /** Revision of this mismatch */\n Revision: number;\n\n /** Delta between internal and externally calculated positions */\n MissingDelta: JSON_Decimal;\n\n /** External position amount at the end of this interval */\n ResultAmount: JSON_Decimal;\n\n /** Latest (workflow) state of this mismatch */\n State: ReconStateEnum;\n\n /** User ID for the last update to this mismatch */\n User: JSON_User;\n\n /** Resolution / reason for this mismatch */\n Resolution: ReconResolutionEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** External position amount at the start of this interval */\n StartAmount: JSON_Decimal;\n\n /** Sum of known ledger events for this interval */\n EventsDelta: JSON_Decimal;\n\n /** Additional information relating to this mismatch / resolution */\n Comments: string;\n}\n\n/** (TenantID:OrgID)(ResourceName:SubAccountReconCheckpoint DatabaseName:sub_account_recon_checkpoints Key:EndTime,AssetID,AccountsKey TimestampField:Timestamp PrimaryKey:id PrimaryKeyType:int64 DBType:OrgDB)(ResourceName:SubAccountReconCheckpointHistory DatabaseName:sub_account_recon_checkpoint_histories Key:EndTime,AssetID,AccountsKey,Revision TimestampField:Timestamp PrimaryKey:Generated DBType:OrgDB) */\nexport interface ISubAccountReconCheckpoint {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID of this checkpoint */\n ID: JSON_Int64ID;\n\n /** AssetID for this checkpoint */\n Asset: string;\n\n /** StartTime (inclusive) for this checkpoint */\n StartTime: JSON_UTCTimestamp;\n\n /** EndTime (exclusive) for this checkpoint */\n EndTime: JSON_UTCTimestamp;\n\n /** Timestamp when this checkpoint was last updated */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Revision */\n Revision: number;\n\n /** Status */\n Status: SubAccountReconCheckpointStatusEnum;\n\n /** EvalStatus */\n EvalStatus: SubAccountReconCheckpointEvalStatusEnum;\n\n /** Composite key from SubAccounts */\n AccountsKey: string;\n\n /** List of SubAccount recon summaries */\n ReconSubAccounts: ISubAccountReconCheckpoint4690ReconSubAccounts[];\n\n /** List of MarketAccount recon summaries */\n ReconMarketAccounts: ISubAccountReconCheckpoint4690ReconMarketAccounts[];\n}\n\n/** List of MarketAccount recon summaries */\nexport interface ISubAccountReconCheckpoint4690ReconMarketAccounts {\n /** MarketAccountID */\n MarketAccount: JSON_MarketAccount;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Count of unmatched events */\n Unmatched_Count: number;\n\n /** Total unmatched value */\n Unmatched_Amount: JSON_Decimal;\n\n /** Status */\n Status: SubAccountReconCheckpointStatusEnum;\n}\n\n/** List of SubAccount recon summaries */\nexport interface ISubAccountReconCheckpoint4690ReconSubAccounts {\n /** SubAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Count of unmatched events */\n Unmatched_Count: number;\n\n /** Total unmatched value */\n Unmatched_Amount: JSON_Decimal;\n\n /** Status */\n Status: SubAccountReconCheckpointStatusEnum;\n}\n\n/** (TenantID:OrgID)(ResourceName:ReconStatus DatabaseName:recon_status Key:MarketAccountID,AssetID TimestampField:Timestamp PrimaryKey:Generated DBType:OrgDB) */\nexport interface IReconStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** MarketAccount of this reconciliation */\n MarketAccount: JSON_MarketAccount;\n\n /** Asset of this reconciliation */\n Asset: string;\n\n /** Revision of this mismatch */\n Revision: number;\n\n /** Delta between internal and externally calculated positions */\n TotalMismatch: JSON_Decimal;\n\n /** Last time of a reconciliation delta / mismatch */\n LastMismatchTime: JSON_UTCTimestamp;\n\n /** Status */\n Status: ReconStreamStatusEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Request sent by client to create a new care order */\nexport interface ICareNewOrderSingle {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Indicates the user that created the new order single request */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique identifier of this request, as assigned by client */\n ClOrdID: string;\n\n /** Counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** Side */\n Side: SideEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order entry time as provided by remote in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Order submission time published internally on wire in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** String assigned when the order is submitted, suitable for holding external order ids */\n Group: string;\n\n /** Additional string information relating to the care order */\n Comments: string;\n\n /** JSON dictionary of additional care order information */\n Annotations: number;\n}\n\n/** (TenantID:OrgID)(ResourceName:SubAccountReconMatch DatabaseName:sub_account_recon_matches Key:CheckpointID,AssetID,TransactTime,EventType,TradeID,ExternalID TimestampField:Timestamp PrimaryKey:id PrimaryKeyType:int64 DBType:OrgDB)(ResourceName:SubAccountReconMatchHistory DatabaseName:sub_account_recon_match_histories Key:CheckpointID,AssetID,TransactTime,EventType,TradeID,ExternalID,Revision TimestampField:Timestamp PrimaryKey:Generated DBType:OrgDB) */\nexport interface ISubAccountReconMatch {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID of this checkpoint */\n ID: JSON_Int64ID;\n\n /** Parent checkpoint ID */\n CheckpointID: JSON_Int64ID;\n\n /** AssetID for this vaulation */\n Asset: string;\n\n /** Timestamp of the underlying event(s) */\n TransactTime: JSON_UTCTimestamp;\n\n /** EventType */\n EventType: LedgerUpdateTypeEnum;\n\n /** The underlying ID of the event that generated the ledger-event */\n TradeID: string;\n\n /** Underlying external-id if applicable */\n ExternalID: string;\n\n /** Timestamp when this checkpoint was last updated */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Revision */\n Revision: number;\n\n /** User to last update this Match */\n UpdateUser: JSON_User;\n\n /** Status */\n Status: SubAccountReconMatchStatusEnum;\n\n /** Composite key from SubAccounts */\n AccountsKey: string;\n\n /** List of SubAccount event summaries */\n ReconSubAccountEvents: ISubAccountReconMatch4691ReconSubAccountEvents[];\n\n /** List of MarketAccount event summaries */\n ReconMarketAccountEvents: ISubAccountReconMatch4691ReconMarketAccountEvents[];\n\n /** List of comments */\n ReconMatchComments: ISubAccountReconMatch4691ReconMatchComments[];\n}\n\n/** List of MarketAccount event summaries */\nexport interface ISubAccountReconMatch4691ReconMarketAccountEvents {\n /** MarketAccountID */\n MarketAccount: JSON_MarketAccount;\n\n /** The event amount */\n Amount: JSON_Decimal;\n\n /** AvgCost of the event */\n AvgCost: JSON_Decimal;\n\n /** Units of AvgCost */\n AvgCostCurrency: string;\n\n /** Comments */\n Comments: string;\n}\n\n/** List of comments */\nexport interface ISubAccountReconMatch4691ReconMatchComments {\n /** Comments */\n Comments: string;\n}\n\n/** List of SubAccount event summaries */\nexport interface ISubAccountReconMatch4691ReconSubAccountEvents {\n /** SubAccountID */\n SubAccount: JSON_SubAccount;\n\n /** The event amount */\n Amount: JSON_Decimal;\n\n /** AvgCost of the event */\n AvgCost: JSON_Decimal;\n\n /** Units of AvgCost */\n AvgCostCurrency: string;\n\n /** Comments */\n Comments: string;\n}\n\n/** Balance snapshot for capturing reconciliation state */\nexport interface IReconSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** MarketAccount of this reconciliation */\n MarketAccount: JSON_MarketAccount;\n\n /** Asset of this reconciliation */\n Asset: string;\n\n /** Amount of this snapshot */\n Amount: JSON_Decimal;\n\n /** Type of this external truth value */\n TruthType: ReconTruthTypeEnum;\n}\n\n/** Care Execution Report is an individual update on the specified OrderID */\nexport interface ICareExecutionReport {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Indicates the user that created the order referred to in this ER */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Unique identifier of this request, as assigned by client */\n ClOrdID: string;\n\n /** Revision of the order */\n Revision: number;\n\n /** Counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ExecID */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** OMSExecID */\n LastExecID: string;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Order submission time published internally on wire in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** ID of user who issued the most recent modify/cancel order request */\n RequestUser: JSON_User;\n\n /** String assigned when the order is submitted, suitable for holding external order ids */\n Group: string;\n\n /** Additional string information from the end users relating to the care order */\n Comments: string;\n\n /** JSON dictionary of additional care order information */\n Annotations: number;\n\n /** Error string after reject */\n Text: string;\n}\n\n/** MD Book Subscription Cancel */\nexport interface IViewCancelRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Type of cancellation */\n ViewCancelType: ViewCancelTypeEnum;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n}\n\n/** Portfolio service admin commands */\nexport interface IPortfolioAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Type of this admin request */\n RequestType: PortfolioAdminRequestTypeEnum;\n\n /** Unique ID for the incoming request */\n ExternalID: string;\n\n /** ID of requested account (subaccount or marketaccount). Unset implies all */\n AccountID: number;\n\n /** Asset in scope for this request. Unset implies all */\n Asset: string;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Request sent by client to change the parameters of an existing care order. */\nexport interface ICareOrderCancelReplaceRequest {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Indicates the user that created the replace request */\n User: JSON_User;\n\n /** Unique identifier of replacement order as assigned by client */\n ClOrdID: string;\n\n /** Initial ClOrdID of the order to be replaced. */\n OrigClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Msg submission time published internally on wire in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** String assigned when the order is submitted, suitable for holding external order ids */\n Group: string;\n\n /** Additional string information relating to the care order */\n Comments: string;\n\n /** JSON dictionary of additional care order information */\n Annotations: number;\n}\n\n/** Portfolio asset details */\nexport interface IPortfolioAssetDetail {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** AssetID */\n Asset: string;\n\n /** Canonical symbol for this asset */\n Symbol: string;\n\n /** Product Type */\n ProductType: ProductTypeEnum;\n\n /** The notional multiplier for this asset */\n NotionalMultiplier: JSON_Decimal;\n\n /** Expiration */\n Expiration: JSON_UTCTimestamp;\n\n /** The type of calculation used to compute the settlement value of this asset */\n SettleValueType: SettleValueTypeEnum;\n}\n\n/** Request sent by client to cancel all of the remaining quantity of an existing care order */\nexport interface ICareOrderCancelRequest {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Indicates the user that created the cancel request */\n User: JSON_User;\n\n /** Unique identifier of cancel order as assigned by client */\n ClOrdID: string;\n\n /** Initial ClOrdID of the order to be canceled */\n OrigClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Msg submission time published internally on wire in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n}\n\n/** Message published to client upon receipt of a cancel request or cancel/replace request message which cannot be honored */\nexport interface ICareOrderCancelReject {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Indicates the user that created the cancel/replace request */\n User: JSON_User;\n\n /** OrderID */\n OrderID: string;\n\n /** Unique identifier of replacement order as assigned by client */\n ClOrdID: string;\n\n /** Initial ClOrdID of the order to be canceled or replaced */\n OrigClOrdID: string;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Identifies the type of request that a Cancel Reject is in response to */\n CxlRejResponseTo: CxlRejResponseToEnum;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Text */\n Text: string;\n}\n\n/** Admin action for CO service to control order */\nexport interface ICareOrderAdminRequest {\n /** Internal time when last published in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** The ID of the care order upon which to act */\n OrderID: string;\n\n /** Action type for CO service to carry out */\n Action: OrderAdminActionEnum;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n}\n\n/** Heartbeat for monitoring publisher liveliness */\nexport interface IKeepalive {\n /** Internal send time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** SenderID of Heartbeating publisher process */\n SenderID: number;\n}\n\n/** Message for delivery of websocket MarketDataSnapshots */\nexport interface IMarketDataSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Optional Market View ID */\n ViewID: JSON_Int64ID;\n\n /** Optional RequestID Indicates initial Snapshot on reused view */\n ViewRequestID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Depth type */\n DepthType: DepthTypeEnum;\n\n /** Liquidity type */\n LiquidityType: LiquidityTypeEnum;\n\n /** Latest exchange message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n ExchangeTime: JSON_UTCTimestamp;\n\n /** Latest system message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n SystemTime: JSON_UTCTimestamp;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: UnifiedLiquidityEnum;\n\n /** Bid Entries */\n Bids: IMarketDataSnapshot4195Bids[];\n\n /** Offer Entries */\n Offers: IMarketDataSnapshot4195Offers[];\n\n /** Market Statuses for this MarketView */\n Markets: IMarketDataSnapshot4195Markets[];\n}\n\n/** Bid Entries */\nexport interface IMarketDataSnapshot4195Bids {\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid VWAP Price */\n VWAP: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n\n /** Bid Amount */\n Amount: JSON_Decimal;\n\n /** Bid Price Equivalent */\n Equivalent_Price: JSON_Decimal;\n\n /** Bid VWAP Price Equivalent */\n Equivalent_VWAP: JSON_Decimal;\n\n /** Equivalent Conversion Rate */\n Equivalent_ConversionRate: JSON_Decimal;\n\n /** Bid Amount Equivalent */\n Equivalent_Amount: JSON_Decimal;\n}\n\n/** Market Statuses for this MarketView */\nexport interface IMarketDataSnapshot4195Markets {\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Status of conversion rate */\n Status: ConnectionStatusEnum;\n\n /** Time the exchange published the latest price in number of nanoseconds since the Unix epoch */\n ExchangeTime: JSON_UTCTimestamp;\n\n /** Time when the latest price update was received on this market, when constructing the snapshot, in number of nanoseconds since the Unix epoch */\n WebsocketTime: JSON_UTCTimestamp;\n\n /** Time the gateway published the latest price in number of nanoseconds since the Unix epoch */\n SystemTime: JSON_UTCTimestamp;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Text */\n Text: string;\n}\n\n/** Offer Entries */\nexport interface IMarketDataSnapshot4195Offers {\n /** Offer Price */\n Price: JSON_Decimal;\n\n /** Offer VWAP Price */\n VWAP: JSON_Decimal;\n\n /** Offer Size */\n Size: JSON_Decimal;\n\n /** Offer Amount */\n Amount: JSON_Decimal;\n\n /** Offer Price Equivalent */\n Equivalent_Price: JSON_Decimal;\n\n /** Offer VWAP Price Equivalent */\n Equivalent_VWAP: JSON_Decimal;\n\n /** Equivalent Conversion Rate */\n Equivalent_ConversionRate: JSON_Decimal;\n\n /** Offer Amount Equivalent */\n Equivalent_Amount: JSON_Decimal;\n}\n\n/** Customer user session event */\nexport interface ICustomerSessionEvent {\n /** Assigned counterparty */\n CounterpartyID: number;\n\n /** Connect/Disconnect event type */\n SessionEventType: SessionEventTypeEnum;\n}\n\n/** OMSNewOrderSingle */\nexport interface IOMSNewOrderSingle {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Order entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Quote request ID */\n RFQID: string;\n\n /** SessionID for this order */\n SessionID: JSON_Int64ID;\n\n /** SessionID for this order to be cancelled when the session resets */\n CancelSessionID: JSON_Int64ID;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Strategy ID of the order strategy used */\n Strategy: JSON_Strategy;\n\n /** Parent Customer Order ID */\n ParentOrderID: string;\n\n /** Start time when order should be executed */\n StartTime: JSON_UTCTimestamp;\n\n /** End time when order should be completed */\n EndTime: JSON_UTCTimestamp;\n\n /** Slippage for limit orders where we decide the route */\n AllowedSlippage: JSON_Decimal;\n\n /** Initial decision status on an order */\n InitialDecisionStatus: DecisionStatusEnum;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** If present, Price is expressed in units determined by PricingMode, otherwise Price is in quote currency */\n PricingMode: PricingModeEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** optional allocation request */\n Allocation: IAllocationRequest;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Algo leg parameters */\n MultilegParams: IMultilegParameters;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of markets to be used for this order */\n Markets: IOMSNewOrderSingle4200Markets[];\n\n /** Aggregations used for this order */\n Aggregations: IOMSNewOrderSingle4200Aggregations[];\n}\n\n/** Aggregations used for this order */\nexport interface IOMSNewOrderSingle4200Aggregations {\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n}\n\n/** Number of markets to be used for this order */\nexport interface IOMSNewOrderSingle4200Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Index of synthetic leg if this leg is a child leg */\n LegIndex: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Security ID of the parent security if this is the synthetic leg market security */\n ParentSymbol: JSON_Security;\n}\n\n/** OMSOrderCancelReplaceRequest4201 */\nexport interface IOMSOrderCancelReplaceRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Strategy ID of the order strategy used */\n Strategy: JSON_Strategy;\n\n /** End time when order should be completed */\n EndTime: JSON_UTCTimestamp;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** Arbitrary string assigned to the order */\n Group: string;\n\n /** Optional allocation request */\n Allocation: IAllocationRequest;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Algo leg parameters */\n MultilegParams: IMultilegParameters;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of markets to be used for this order */\n Markets: IOMSOrderCancelReplaceRequest4201Markets[];\n\n /** Aggregations used for this order */\n Aggregations: IOMSOrderCancelReplaceRequest4201Aggregations[];\n}\n\n/** Aggregations used for this order */\nexport interface IOMSOrderCancelReplaceRequest4201Aggregations {\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n}\n\n/** Number of markets to be used for this order */\nexport interface IOMSOrderCancelReplaceRequest4201Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Index of synthetic leg if this leg is a child leg */\n LegIndex: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Security ID of the parent security if this is the synthetic leg market security */\n ParentSymbol: JSON_Security;\n}\n\n/** Execution Report is an individual update on an order */\nexport interface IOMSExecutionReport {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Order Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** ExecID */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Last MarketID, 0 if not a fill message */\n LastMarket: JSON_Market;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n LastFeeCurrency: string;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Currency ID for the cumulative fee */\n FeeCurrency: string;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** MarketExecID */\n LastExecID: string;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Order routing status */\n DecisionStatus: DecisionStatusEnum;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** SessionID for this order */\n SessionID: JSON_Int64ID;\n\n /** SessionID for this order to be cancelled when the session resets */\n CancelSessionID: JSON_Int64ID;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** StrategyID of the order strategy */\n Strategy: JSON_Strategy;\n\n /** Average price including fees */\n AvgPxAllIn: JSON_Decimal;\n\n /** Quote request ID */\n RFQID: string;\n\n /** Customer RFQ ID */\n ParentRFQID: string;\n\n /** Parent Customer Order ID */\n ParentOrderID: string;\n\n /** Start time when order should be executed */\n StartTime: JSON_UTCTimestamp | undefined;\n\n /** End time when order should be completed */\n EndTime: JSON_UTCTimestamp | undefined;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Slippage for limit orders where we decide the route */\n AllowedSlippage: JSON_Decimal;\n\n /** Bitmap of message characteristics */\n EventIndicator: Record;\n\n /** Last Talos fee */\n LastTalosFee: JSON_Decimal;\n\n /** Cumulative Talos fee */\n CumTalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n TalosFeeCurrency: string;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** ID of user who did a change or send modify/cancel order request */\n RequestUser: JSON_User;\n\n /** Internal time the last request message for this order entered the system in number of nanoseconds since Unix epoch */\n LastRequestTimestamp: JSON_UTCTimestamp | undefined;\n\n /** Bitmap of risk status characteristics */\n RiskStatus: Record;\n\n /** Timestamp of the last trade as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n LastTradeTime: JSON_UTCTimestamp;\n\n /** Last MarketAccountID, 0 if not a fill message */\n LastMarketAccount: JSON_MarketAccount;\n\n /** If present determines the units of PricingReference. Price is always in quote currency */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Revision of the order */\n Revision: number;\n\n /** Time when the order got triggered */\n TriggerTime: JSON_UTCTimestamp | undefined;\n\n /** Organization ID */\n OrgID: number;\n\n /** The service processing the parent order and producing the execution report */\n ProcessingService: JSON_ServiceIdentifier;\n\n /** Source of where the order is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Source of where the most recent request is generated from */\n LastRequestSource: RequestSourceEnum;\n\n /** Text */\n Text: string;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** optional allocation */\n Allocation: IAllocation;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Algo leg parameters */\n MultilegParams: IMultilegParameters;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of markets used for this order */\n Markets: IOMSExecutionReport4203Markets[];\n\n /** For multileg orders, leg execution details will be aggregated here */\n LegSummary: IOMSExecutionReport4203LegSummary[];\n\n /** Aggregations used for this order */\n Aggregations: IOMSExecutionReport4203Aggregations[];\n\n /** List of assets and amount received or paid when executing the order */\n TransactedAssets: IOMSExecutionReport4203TransactedAssets[];\n}\n\n/** Aggregations used for this order */\nexport interface IOMSExecutionReport4203Aggregations {\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Leg Index in LegSummary array */\n LegIndex: number;\n}\n\n/** For multileg orders, leg execution details will be aggregated here */\nexport interface IOMSExecutionReport4203LegSummary {\n /** Index of synthetic leg if this leg is a child leg */\n LegIndex: number;\n\n /** Total remaining qty to be traded on the leg */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity traded on the leg */\n CumQty: JSON_Decimal;\n\n /** Average price traded on the leg */\n AvgPx: JSON_Decimal;\n\n /** Cumulative quantity traded on the leg converted into the size units of the parent order */\n ParentCumQty: JSON_Decimal;\n\n /** Total amount not hedged after order is closed */\n UnhedgedAmt: JSON_Decimal;\n\n /** Currency of UnhedgedAmt */\n UnhedgedAmtCurrency: string;\n\n /** Cumulative amount traded on the leg */\n CumAmt: JSON_Decimal;\n\n /** Currency in which Amount is specified. */\n AmountCurrency: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Currency in which qty is specified. */\n Currency: string;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** fee currency */\n FeeCurrency: string;\n\n /** Average price traded on the leg including fees */\n AvgPxAllIn: JSON_Decimal;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last MarketID, 0 if not a fill message */\n LastMarket: JSON_Market;\n\n /** Last MarketAccountID, 0 if not a fill message */\n LastMarketAccount: JSON_MarketAccount;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Last fee currency */\n LastFeeCurrency: string;\n\n /** Last amount traded on the leg */\n LastAmt: JSON_Decimal;\n\n /** Last stable price cached for this leg */\n LastSeenPrice: JSON_Decimal;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Security ID of the parent security if this is the synthetic leg summary */\n ParentSymbol: JSON_Security;\n\n /** Multileg reporting type */\n MultilegReportingType: MultilegReportingTypeEnum;\n}\n\n/** Number of markets used for this order */\nexport interface IOMSExecutionReport4203Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** Last fee currency */\n FeeCurrency: string;\n\n /** MarketStatus */\n MarketStatus: OrderMarketStatusEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Side */\n Side: SideEnum;\n\n /** [Deprecate]Index of synthetic leg if this leg is a child leg */\n LegIndex: number;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n LastFeeCurrency: string;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Average price including fees */\n AvgPxAllIn: JSON_Decimal;\n\n /** Leg Index in LegSummary array */\n LegSummaryIndex: number;\n\n /** Text */\n Text: string;\n}\n\n/** List of assets and amount received or paid when executing the order */\nexport interface IOMSExecutionReport4203TransactedAssets {\n /** [Deprecate] Index of synthetic leg if this leg is a child leg */\n LegIndex: number;\n\n /** Transacted asset */\n Asset: string;\n\n /** Cumulative amount transacted for the currency. Positive for received amount, negative for paid amount */\n Amount: JSON_Decimal;\n\n /** Leg Index in LegSummary array */\n LegSummaryIndex: number;\n}\n\n/** UserCredential associates a user to a credential on a market */\nexport interface IUserCredential {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User ID */\n User: JSON_User;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** Data linked to specific credential */\n Data: number;\n}\n\n/** Login details for a market */\nexport interface ICredential {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID */\n CredentialID: number;\n\n /** The connection mode (Up / Down) */\n Mode: ConnectionModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User who performed the most recent update */\n UpdateUser: JSON_User;\n\n /** Revision */\n Revision: number;\n\n /** The last time the secrets where modified in number of nanoseconds since Unix epoch */\n SecretsUpdatedAt: JSON_UTCTimestamp;\n\n /** The time until which the credential age alert is muted in number of nanoseconds since Unix epoch */\n AlertMutedUntil: JSON_UTCTimestamp;\n\n /** The user that muted the credential age alert */\n AlertMutedByUser: JSON_User;\n\n /** Credential name */\n Name: string;\n\n /** Credential label */\n Label: string;\n\n /** Type(s) of connections supported by this credential */\n ConnectionType: string;\n\n /** Credential secrets */\n Secrets: string;\n\n /** Credential attributes (non-secrets) */\n Attributes: number;\n}\n\n/** OMSOrderCancelRequest4207 */\nexport interface IOMSOrderCancelRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** customer user entity */\nexport interface ICustomerUser {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n CustomerUser: JSON_Int64ID;\n\n /** External Identifier For User */\n ExternalID: string;\n\n /** (DEPRECATED please use 256 length DisplayName). Friendly user name for display */\n DeprecatedDisplayName: string;\n\n /** ID of the counterparty for this user */\n Counterparty: JSON_Counterparty;\n\n /** Enable/disable customer user */\n Mode: ModeEnum;\n\n /** Revision of that customer user update */\n Revision: number;\n\n /** User who performed an update of that entity */\n UpdateUser: JSON_User;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Friendly user name for display */\n DisplayName: string;\n\n /** User email - unique identifier */\n Email: string;\n}\n\n/** OMSOrderCancelReject4208 */\nexport interface IOMSOrderCancelReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Cancel reject response to */\n CxlRejResponseTo: CxlRejResponseToEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Text */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Contains information about transfer state upon startup */\nexport interface ICounterparty {\n /** Time of last update */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the counterparty */\n CounterpartyID: number;\n\n /** String64 */\n Name: string;\n\n /** String64. Deprecated, please use the 256 length DisplayName instead/ */\n DeprecatedDisplayName: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Type of counterparty */\n Type: CounterpartyTypeEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** String256 */\n DisplayName: string;\n\n /** Counterparty properties */\n Properties: number;\n}\n\n/** config setting for customer users */\nexport interface ICustomerUserConfig {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n CustomerUser: JSON_Int64ID;\n\n /** Config Status */\n Mode: ModeEnum;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Key in Key-Value Customer User Config Pairs */\n Key: string;\n\n /** Value in Key-Value Customer User Config Pairs */\n Value: string;\n}\n\n/** OMSOrderRecord associates a ClOrdID to a generated OrderID */\nexport interface IOMSOrderRecord {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID of the OMS order */\n OrderID: string;\n\n /** User ID of the OMS order */\n User: JSON_User;\n\n /** ClOrdID of the OMS order */\n ClOrdID: string;\n}\n\n/** role mappings for customer users */\nexport interface ICustomerUserRole {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n CustomerUser: JSON_Int64ID;\n\n /** Customer User Role */\n RoleID: number;\n\n /** Role Status */\n Mode: ModeEnum;\n\n /** Revision of that customer user role update */\n Revision: number;\n\n /** User who performed an update of that entity */\n UpdateUser: JSON_User;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** Admin action for OMS to control order */\nexport interface IOMSOrderAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Action type for OMS to carry out */\n Action: OrderAdminActionEnum;\n\n /** Request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** SessionID to cancel orders for */\n SessionID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** trade capture message in oms component */\nexport interface IOMSTradeCapture {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ExecID */\n TradeID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** MarketID for this trade */\n Market: JSON_Market;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Fee */\n Fee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n FeeCurrency: string;\n\n /** MarketTradeID */\n MarketTradeID: string;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Currency ID for contra */\n AmountCurrency: string;\n\n /** Currency ID for dealt currency */\n DealtCurrency: string;\n\n /** Quote request ID */\n RFQID: string;\n\n /** Optional subaccountID */\n SubAccount: JSON_SubAccount;\n\n /** Customer Trade ID */\n ParentTradeID: string;\n\n /** ID of the counterparty for this trade. 0 means trading with liquidity provider */\n Counterparty: JSON_Counterparty;\n\n /** Talos fee */\n TalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n TalosFeeCurrency: string;\n\n /** Price with fees included */\n PriceAllIn: JSON_Decimal;\n\n /** Source of the trade information */\n TradeSource: TradeSourceEnum;\n\n /** Name of the action taken on the trade */\n TradeAction: TradeActionEnum;\n\n /** Revision of that trade */\n Revision: number;\n\n /** Specified when TradeSource=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** optional allocation ID */\n AllocID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount | undefined;\n\n /** Unique Trade ID provided by the dealer when booking trade manually */\n ClTradeID: string;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** If present determines the units of PricingReference. */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** For an options trade, the offset delta exposure in the units of the underlying quote currency */\n OffsetDelta: JSON_Decimal;\n\n /** The market order id for this trade */\n MarketOrderID: string;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Additional information attached to trade */\n Comments: string;\n\n /** optional allocation */\n Allocation: IAllocation;\n\n /** Miscellaneous transaction attributes */\n Attributes: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Reference data for a trade */\n RefData: IOMSTradeCapture4211RefData[];\n}\n\n/** Reference data for a trade */\nexport interface IOMSTradeCapture4211RefData {\n /** Value of ref data */\n Value: JSON_Decimal;\n\n /** Type of ref data */\n Type: TradeRefDataTypeEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n}\n\n/** api key for customer users */\nexport interface ICustomerUserApiKey {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique Identifier for Customer User ApiKey */\n CustomerUserApiKeyID: JSON_Int64ID;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User ID */\n CustomerUser: JSON_Int64ID;\n\n /** Customer User ApiKey */\n ApiKey: string;\n\n /** Customer User ApiSecret */\n ApiSecret: string;\n\n /** Revision */\n Revision: number;\n\n /** Concatenated list of Whitelisted IPs for Customer ApiKey Authentication */\n WhitelistedIps: string;\n}\n\n/** trade allocation */\nexport interface ITradeAllocation {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ExecID */\n TradeID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** MarketID for this trade */\n Market: JSON_Market;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Fee */\n Fee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n FeeCurrency: string;\n\n /** MarketTradeID */\n MarketTradeID: string;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Currency ID for contra */\n AmountCurrency: string;\n\n /** Currency ID for dealt currency */\n DealtCurrency: string;\n\n /** Quote request ID */\n RFQID: string;\n\n /** Customer Trade ID */\n ParentTradeID: string;\n\n /** ID of the counterparty for this trade. 0 means trading with liquidity provider */\n Counterparty: JSON_Counterparty;\n\n /** Talos fee */\n TalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n TalosFeeCurrency: string;\n\n /** Price with fees included */\n PriceAllIn: JSON_Decimal;\n\n /** Source of the trade information */\n TradeSource: TradeSourceEnum;\n\n /** Name of the action taken on the trade */\n TradeAction: TradeActionEnum;\n\n /** Revision of that trade */\n Revision: number;\n\n /** Specified when TradeSource=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** Allocation ID */\n AllocID: string;\n\n /** Allocation value type */\n ValueType: AllocationValueTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** The market order id for this trade */\n MarketOrderID: string;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Additional information attached to trade */\n Comments: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Allocations set */\n Allocations: ITradeAllocation4212Allocations[];\n}\n\n/** Allocations set */\nexport interface ITradeAllocation4212Allocations {\n /** SubAccountID associated with given allocation value */\n SubAccount: JSON_SubAccount;\n\n /** Value for this allocation */\n Value: JSON_Decimal;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Allocated fee */\n Fee: JSON_Decimal;\n\n /** Allocation fee */\n TalosFee: JSON_Decimal;\n\n /** External reference */\n ExternalRef: string;\n}\n\n/** permission for customer functions */\nexport interface ICustomerPermission {\n /** Internal time representing creation time */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique Identifier for Permission */\n PermissionID: number;\n\n /** Action of permission */\n Action: CustomerPermissionActionEnum;\n\n /** Object Group of Permissions */\n ObjectGroup: string;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** allocation */\nexport interface IAllocation {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** optional allocation ID */\n AllocID: string;\n\n /** Allocation status */\n Status: AllocationStatusEnum;\n\n /** Allocation value type */\n ValueType: AllocationValueTypeEnum;\n\n /** Currency ID allocation values (For Percentage allocation is 0). */\n Currency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Allocations set */\n Allocations: IAllocation4213Allocations[];\n}\n\n/** Allocations set */\nexport interface IAllocation4213Allocations {\n /** SubAccountID associated with given allocation value */\n SubAccount: JSON_SubAccount;\n\n /** Value for this allocation */\n Value: JSON_Decimal;\n\n /** External reference */\n ExternalRef: string;\n}\n\n/** mapping of customer permissions to roles */\nexport interface ICustomerRolePermission {\n /** Internal time representing creation time */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer User Role */\n RoleID: number;\n\n /** Unique Identifier for Permission */\n PermissionID: number;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** allocation request */\nexport interface IAllocationRequest {\n /** optional allocation ID */\n AllocID: string;\n\n /** Allocation request type */\n RequestType: AllocationRequestTypeEnum;\n\n /** Allocation value type */\n ValueType: AllocationValueTypeEnum;\n\n /** Currency ID allocation values (For Percentage allocation is 0). */\n Currency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Allocations set */\n Allocations: IAllocationRequest4214Allocations[];\n}\n\n/** Allocations set */\nexport interface IAllocationRequest4214Allocations {\n /** SubAccountID associated with given allocation value */\n SubAccount: JSON_SubAccount;\n\n /** Value for this allocation */\n Value: JSON_Decimal;\n\n /** External reference */\n ExternalRef: string;\n}\n\n/** roles configured for a customer */\nexport interface ICustomerRole {\n /** Internal time representing creation time */\n Timestamp: JSON_UTCTimestamp;\n\n /** Internal system id for role */\n RoleID: number;\n\n /** Name of role to use for reference */\n Name: string;\n\n /** DisplayName of role for display purposes */\n DisplayName: string;\n\n /** Role Status - Can be used to filter out roles from use */\n Mode: ModeEnum;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** Snapshot of parent order state */\nexport interface IOMSOrderState {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Cumulative pending fee */\n CumPendingFees: JSON_Decimal;\n\n /** Cumulative fee charged in order currency */\n CumFeeChargedInOrderCcy: JSON_Decimal;\n\n /** Precise cumulative amount */\n CumPxTimesQty: JSON_Dec128;\n\n /** Total confirmed trade quantity */\n TradeExposureQty: JSON_Decimal;\n\n /** Total confirmed trade amount */\n TradeExposureAmt: JSON_Decimal;\n\n /** Total quantity as traded as taker */\n CrossingFilledQty: JSON_Decimal;\n\n /** Latest scheduled quantity */\n ScheduleQty: JSON_Decimal;\n\n /** Latest adjustment quantity */\n AdjustmentQty: JSON_Decimal;\n\n /** Latest base lower bound value */\n BaseLowerBound: JSON_Decimal;\n\n /** Latest base upper bound value */\n BaseUpperBound: JSON_Decimal;\n\n /** Latest base upper bound value */\n VolumeInLimit: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Cumulative quantity with more precision */\n PreciseCumQty: JSON_Dec128;\n\n /** Cumulative amount with more precision */\n PreciseCumAmt: JSON_Dec128;\n\n /** OMSExecutionReport message from the current order state */\n OrderExecutionReport: IOMSExecutionReport;\n\n /** Markets used for this order */\n Markets: IOMSOrderState4215Markets[];\n\n /** Markets used for this order */\n ClOrdIDKeys: IOMSOrderState4215ClOrdIDKeys[];\n}\n\n/** Markets used for this order */\nexport interface IOMSOrderState4215ClOrdIDKeys {\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** ClOrdID */\n ClOrdID: string;\n}\n\n/** Markets used for this order */\nexport interface IOMSOrderState4215Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Last fee currency */\n FeeCurrency: string;\n\n /** Precise cumulative amount */\n CumPxTimesQty: JSON_Dec128;\n\n /** Last error time */\n LastErrTime: JSON_UTCTimestamp;\n\n /** Last error weight */\n LastErrWeight: number;\n\n /** Last error OID */\n LastErrOID: JSON_Int64ID;\n\n /** Last error reject reason */\n LastErrRejectReason: OrdRejReasonEnum;\n\n /** Error bucket wait interval */\n ErrorBucketCurrWait: JSON_DurationMillis;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Cumulative quantity with more precision */\n PreciseCumQty: JSON_Dec128;\n\n /** Conversion rate for unified liquidity symbols */\n UnifiedLiquidityConversionRate: JSON_Decimal;\n\n /** Last error message */\n LastErrMessage: string;\n}\n\n/** customer user api key permission */\nexport interface ICustomerUserApiKeyPermission {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique Identifier for Customer User ApiKey */\n CustomerUserApiKeyID: JSON_Int64ID;\n\n /** Unique Identifier for Permission */\n PermissionID: number;\n\n /** Filter specification */\n Filter: JSON_ApiPermissionFilterSpec;\n\n /** Revision */\n Revision: number;\n}\n\n/** mapping of customer resources to permissions */\nexport interface ICustomerResourcePermission {\n /** Internal time representing creation time */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer Resource */\n Resource: CustomerResourceEnum;\n\n /** Unique Identifier for Permission */\n PermissionID: number;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** Configurations for message processing rate limits based on various parameters */\nexport interface IMessageProcessingRateLimit {\n /** Unique identifier for this rate limit */\n RateLimitID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Definition for the metric that this rate limit is controlling */\n RateLimitDefinition: MessageProcessingRateLimitDefinitionTypeEnum;\n\n /** The duration, within which the rate limit should be evaluated */\n Window: JSON_DurationMillis;\n\n /** The maximum amount allowed within the specified window */\n Threshold: JSON_Decimal;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** ID of the counterparty this scope filters for */\n Counterparty: JSON_Counterparty;\n\n /** ID of the customer user this scope filters for */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the market account this scope filters for */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Revision of the rate limit */\n Revision: number;\n\n /** User who performed an update of the rate limit */\n UpdateUser: JSON_User;\n\n /** A string describing the purpose of this rate limit */\n Description: string;\n\n /** The scopes that the messages are aggregated based on */\n Scopes: IMessageProcessingRateLimit6777Scopes[];\n}\n\n/** The scopes that the messages are aggregated based on */\nexport interface IMessageProcessingRateLimit6777Scopes {\n /** The scope to group the messages based on */\n GroupByScope: RateLimitGroupByScopeEnum;\n}\n\n/** Market specific counterparty mapping */\nexport interface IMarketCounterparty {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** CounterpartyID */\n Counterparty: JSON_Counterparty;\n\n /** Symbol used by this market */\n MarketSymbol: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n}\n\n/** customer user permission */\nexport interface ICustomerUserPermission {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique Identifier for Customer User */\n CustomerUser: JSON_Int64ID;\n\n /** Unique Identifier for Permission */\n PermissionID: number;\n\n /** Filter specification */\n Filter: JSON_ApiPermissionFilterSpec;\n\n /** Revision */\n Revision: number;\n}\n\n/** persistent version of customer user object filters that should overlay on top of roles to build available permissions */\nexport interface ICustomerUserObjectFilter {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique Identifier for Customer User */\n CustomerUser: JSON_Int64ID;\n\n /** Action of permission */\n Action: CustomerPermissionActionEnum;\n\n /** Filter specification */\n Filter: JSON_ApiPermissionFilterSpec;\n\n /** Revision */\n Revision: number;\n}\n\n/** User action for OMS to control order */\nexport interface IOMSOrderControlRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Action type for OMS to carry out */\n Action: OrderControlActionEnum;\n\n /** Request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface ICustomerNewOrderSingle {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Order entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Customer Quote ID */\n QuoteID: string;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** SessionID for this order */\n SessionID: JSON_Int64ID;\n\n /** SessionID for this order to be cancelled when the session resets */\n CancelSessionID: JSON_Int64ID;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Strategy ID of the order strategy used */\n Strategy: JSON_Strategy;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** Slippage for limit orders where we decide the route */\n AllowedSlippage: JSON_Decimal;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** customer request parameters */\n PricingParameters: IQuoteParameters;\n\n /** Specification for how the hedge NewOrderSingle should be routed */\n RoutedNewOrderSingle: IOMSNewOrderSingle;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Summarizes updates for customer execution reports */\nexport interface ICustomerExecutionReport {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Order Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** ExecID */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n LastFeeCurrency: string;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Currency ID for the cumulative fee */\n FeeCurrency: string;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Order routing status */\n DecisionStatus: DecisionStatusEnum;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** SessionID for this order */\n SessionID: JSON_Int64ID;\n\n /** SessionID for this order to be cancelled when the session resets */\n CancelSessionID: JSON_Int64ID;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** StrategyID of the order strategy */\n Strategy: JSON_Strategy;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** Slippage for limit orders where we decide the route */\n AllowedSlippage: JSON_Decimal;\n\n /** Internal Order reject reason */\n InternalOrdRejReason: OrdRejReasonEnum;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_CustomerMarketAccount | undefined;\n\n /** Manual dealer action on this order */\n DealerAction: OrderAdminActionEnum;\n\n /** Fill price set by dealer in force fill flow */\n AdminFillPrice: JSON_Decimal;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Average fee-inclusive price */\n AvgPxAllIn: JSON_Decimal;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Indication of whether order is executed with RisklessPrincipal or OrderAcceptance */\n ExecutionStrategy: CustomerExecutionStrategyEnum;\n\n /** Text */\n Text: string;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** quote / pricing parameters */\n PricingParameters: IQuoteParameters;\n\n /** Internal reason for rejection */\n InternalText: string;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** customer trade capture message */\nexport interface ICustomerTradeCapture {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ExecID */\n TradeID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Fee */\n Fee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n FeeCurrency: string;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Currency ID for contra */\n AmountCurrency: string;\n\n /** Currency ID for dealt currency */\n DealtCurrency: string;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** Optional subaccountID */\n SubAccount: JSON_SubAccount;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_CustomerMarketAccount | undefined;\n\n /** Unique Trade ID provided by the dealer when booking trade manually */\n ClTradeID: string;\n\n /** Revision of that trade */\n Revision: number;\n\n /** Source of the trade information */\n TradeSource: TradeSourceEnum;\n\n /** Name of the action taken on the trade */\n TradeAction: TradeActionEnum;\n\n /** Specified when TradeSource=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** PriceAllIn */\n PriceAllIn: JSON_Decimal;\n\n /** If present determines the units of PricingReference. */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface ICustomerOrderCancelRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface ICustomerOrderCancelReplaceRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Strategy ID of the order strategy used */\n Strategy: JSON_Strategy;\n\n /** End time when order should be completed */\n EndTime: JSON_UTCTimestamp;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Algo parameters */\n Parameters: IStrategyParameters;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** customer request parameters */\n PricingParameters: IQuoteParameters;\n\n /** Specification for how the hedge OrderCancelReplaceRequest should be routed */\n RoutedOrderCancelReplaceRequest: IOMSOrderCancelReplaceRequest;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Pegged Algo */\nexport interface IPeggedStrategy {\n /** Price offset from the reference price, positive offsets are more passive prices */\n PriceOffset: JSON_Decimal;\n\n /** Size to show on the market when resting */\n ShowQty: JSON_Decimal;\n}\n\n/** User action for OMS to control order */\nexport interface ICustomerOrderControlRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Action type for OMS to carry out */\n Action: OrderControlActionEnum;\n\n /** Request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Admin action for managing Customer Orders */\nexport interface ICustomerOrderAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID of the user submitting the request */\n User: JSON_User;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Action type for OMS to carry out */\n Action: OrderAdminActionEnum;\n\n /** Request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** SessionID to cancel orders for */\n SessionID: JSON_Int64ID;\n\n /** Optional fill price in force-fill customer flow */\n FillPrice: JSON_Decimal;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Admin action to cancel a stuck order */\nexport interface IOrderAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** ClOrdID for this request */\n ClOID: JSON_Int64ID;\n\n /** OID of the order to cancel */\n OID: JSON_Int64ID;\n\n /** Action type for OMS to carry out */\n Action: OrderAdminActionEnum;\n\n /** Request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Indicates which side is the aggressor in the manual fill to book */\n AggressorSide: SideEnum;\n\n /** The ID of the order on which the manual fill is to be booked */\n OrderID: string;\n\n /** The execution ID of the manual fill to book */\n ExecID: string;\n\n /** Execution time in number of nanoseconds since Unix epoch of the manual fill to book */\n ExecTime: JSON_UTCTimestamp;\n\n /** Executed Price of the manual fill to book */\n ExecPrice: JSON_Decimal;\n\n /** Executed Quantity of the manual fill to book */\n ExecQty: JSON_Decimal;\n\n /** Executed Amount of the manual fill to book */\n ExecAmount: JSON_Decimal;\n\n /** Execution Fee of the manual fill to book */\n ExecFee: JSON_Decimal;\n\n /** Currency ID of the execution fee of the manual fill to book */\n ExecFeeCurrency: string;\n\n /** Currency ID for the dealt currency in the manual fill to book */\n Currency: string;\n\n /** Currency ID for amount in the manual fill to book */\n AmountCurrency: string;\n\n /** Source of where the request is generated from */\n RequestSource: RequestSourceEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Permission filters */\nexport interface IApiPermissionFilter {\n /** Internal time representing creation time */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique Identifier for filter */\n FilterID: JSON_Int64ID;\n\n /** Filter subject */\n Subject: JSON_ApiPermissionSubject;\n\n /** Action of permission */\n Action: ApiPermissionActionEnum;\n\n /** Filter specification */\n Filter: JSON_ApiPermissionFilterSpec;\n\n /** Revision of the filter */\n Revision: number;\n\n /** User who performed an update */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** A message describing the reason for the change */\n Comments: string;\n}\n\n/** instruction to book new customer trade capture */\nexport interface ICustomerTradeCaptureRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique Trade ID provided by the dealer */\n ClTradeID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Currency ID for contra */\n AmountCurrency: string;\n\n /** Optional subaccountID */\n SubAccount: JSON_SubAccount;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Optional subAccountID. If provided, it will be attached to dealer side of the trade as SubAccountID */\n RiskSubAccount: JSON_SubAccount;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** The amount of fee to charge for the trade */\n Fee: JSON_Decimal;\n\n /** Currency ID for the fee */\n FeeCurrency: string;\n\n /** Arbitrary string assigned when the trade is submitted */\n Group: string;\n\n /** Additional information attached to the order */\n Comments: string;\n}\n\n/** Snapshot for a conversionRateCache */\nexport interface IConversionRateCacheSnapshot {\n /** The view request ID the cache is interested in. */\n ViewRequestID: number;\n\n /** The view ID the cache is interested in. */\n ViewID: number;\n\n /** The sender ID the cache is interested in. */\n SenderID: number;\n}\n\n/** */\nexport interface ICustomerOrderCancelReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Cancel reject response to */\n CxlRejResponseTo: CxlRejResponseToEnum;\n\n /** ID of the counterparty that request is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Text */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Analytics for an order execution */\nexport interface IOrderAnalytics {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID */\n OrderID: string;\n\n /** Time resolution of analytics */\n Resolution: ResolutionEnum;\n\n /** Start time of this interval in number of nanoseconds since Unix epoch */\n StartTime: number;\n\n /** End time of this interval in number of nanoseconds since Unix epoch */\n EndTime: number;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Arrival price */\n ArrivalPx: JSON_Decimal;\n\n /** Cumulative market VWAP for the duration of the order's execution */\n CumulativeVWAP: JSON_Decimal;\n\n /** Total quantity as traded as taker */\n CrossingFilledQty: JSON_Decimal;\n\n /** Percentage traded of total market volume during this period */\n ParticipationRate: JSON_Decimal;\n\n /** Percentage fees paid in relation to total order quantity */\n EffectiveRate: JSON_Decimal;\n\n /** Lower bound, if this is a TWAP order */\n LowerBound: JSON_Decimal;\n\n /** Upper bound, if this is a TWAP order */\n UpperBound: JSON_Decimal;\n\n /** Average best mid price over all enabled markets */\n MarketMidPx: JSON_Decimal;\n\n /** Number of trades that occured during this interval */\n TradeCount: JSON_Decimal;\n\n /** Avg price traded at during this interval */\n TradedAvgPx: JSON_Decimal;\n\n /** Quantity traded during this interval */\n TradedQty: JSON_Decimal;\n\n /** Amount traded during this interval */\n TradedAmt: JSON_Decimal;\n\n /** DecisionStatus */\n DecisionStatus: DecisionStatusEnum;\n\n /** Reference price for this security */\n ReferencePx: JSON_Decimal;\n\n /** Percentage traded of global total market volume during this period */\n GlobalParticipationRate: JSON_Decimal;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n\n /** Multileg reporting type */\n MultilegReportingType: MultilegReportingTypeEnum;\n\n /** Expected fill price in the order markets */\n ExpectedPx: JSON_Decimal;\n\n /** Expected fill quantity in the order markets */\n ExpectedQty: JSON_Decimal;\n\n /** Expected fill price (up to the limit price) in the order markets */\n ExpectedPxLimit: JSON_Decimal;\n\n /** Expected fill quantity (up to the limit price) in the order markets */\n ExpectedQtyLimit: JSON_Decimal;\n\n /** Number of trades that occured during this interval */\n OrderRestingCount: JSON_Decimal;\n\n /** Number of trades that occured during this interval */\n OrderCrossingCount: JSON_Decimal;\n\n /** Number of trades that occured during this interval */\n OrderExchangeCount: JSON_Decimal;\n\n /** Number of trades that occured during this interval */\n OrderDealerCount: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Total duration in milliseconds the parent order had open child order at a market */\n TimeInMarket: JSON_DurationMillis;\n\n /** Total market volume on Buy side in parent order size space */\n MarketParticipationCumSizeBuy: JSON_Decimal;\n\n /** Total market volume on Sell side in parent order size space */\n MarketParticipationCumSizeSell: JSON_Decimal;\n\n /** Total global market volume on Buy side in parent order size space */\n GlobalParticipationCumSizeBuy: JSON_Decimal;\n\n /** Total global market volume on Sell side in parent order size space */\n GlobalParticipationCumSizeSell: JSON_Decimal;\n\n /** Percentage of missed total market volume during order had no child order open at markets */\n MissedMarketParticipationRate: JSON_Decimal;\n\n /** Missed total market volume on buy side */\n MissedMarketParticipationCumSizeBuy: JSON_Decimal;\n\n /** Missed total market volume on sell side */\n MissedMarketParticipationCumSizeSell: JSON_Decimal;\n\n /** Markets used for this order */\n Markets: number;\n}\n\n/** Trade settle report contains information about fundings and settlement for trade */\nexport interface ITradeSettleReport {\n /** Unique identifier of the report generated by Talos */\n ReportID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of related trade */\n TradeID: string;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TradeTransactTime: JSON_UTCTimestamp;\n\n /** Trade side */\n TradeSide: SideEnum;\n\n /** Revision of this report */\n Revision: number;\n\n /** Status of this report */\n Status: TradeSettleStatusEnum;\n\n /** Asset which Due, CumSettledDue and LastSettledDue are expressed in */\n DueAsset: string;\n\n /** Total due asset for the report. Qty for sell, Amt for buy trade */\n Due: JSON_Decimal;\n\n /** Cumulative settled due asset for the report */\n CumSettledDue: JSON_Decimal;\n\n /** Asset which Proceeds, CumSettledProceeds and LastSettledProceeds are expressed in */\n ProceedsAsset: string;\n\n /** Total proceeds asset for the report. Amt for sell, Qty for buy trade */\n Proceeds: JSON_Decimal;\n\n /** Cumulative settled proceeds asset for the report */\n CumSettledProceeds: JSON_Decimal;\n\n /** Trade price */\n Price: JSON_Decimal;\n\n /** Last settled due asset for the report */\n LastSettledDue: JSON_Decimal;\n\n /** Last settled proceeds asset for the report */\n LastSettledProceeds: JSON_Decimal;\n\n /** Source for last settlement reported in LastSettledDue and LastSettledProceeds */\n LastSettledSource: TradeSettleSourceEnum;\n\n /** Source ID as OID or [36]byte */\n LastSourceID: string;\n\n /** Traded MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Optional subaccountID */\n SubAccount: JSON_SubAccount;\n\n /** Timestamp when report was created in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Action that caused this Trade settle report */\n LastAction: TradeSettleActionEnum;\n\n /** Counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** Initial fundings of proceeds */\n InitialProceeds: number;\n\n /** Optional allocation */\n Allocation: IAllocation;\n}\n\n/** A batch specifying the group of trades that needs to be settled */\nexport interface ISettlementBatch {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Optional ID of user who initiated this settlement batch request */\n InitiatorUser: JSON_User;\n\n /** Client defined request ID */\n ClReqID: string;\n\n /** Unique ID for this batch */\n SettlementID: JSON_Int64ID;\n\n /** Status for this trade settlement batch */\n Status: SettlementBatchStatusEnum;\n\n /** The service originating this settlement batch */\n SourceService: JSON_ServiceIdentifier;\n\n /** Revision of this settlement batch */\n Revision: number;\n\n /** Reason for why the batch is rejected */\n RejectReason: SettlementBatchRejectReasonEnum;\n\n /** RejectText */\n RejectText: string;\n\n /** Additional information relating to the settlement batch */\n Comments: string;\n}\n\n/** A trade belonging to a settlement batch */\nexport interface ISettlementBatchTrade {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID for the parent settlement batch */\n ParentSettlementID: JSON_Int64ID;\n\n /** ID of related trade */\n TradeID: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Bitmap field of indicators signaling if there are more entries to follow. Only the ContinuationFlag is used. */\n EventIndicator: Record;\n}\n\n/** Customer Trade settle report contains information about fundings and settlement for customer trade */\nexport interface ICustomerTradeSettleReport {\n /** Unique identifier of the report generated by Talos */\n ReportID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of related trade */\n TradeID: string;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TradeTransactTime: JSON_UTCTimestamp;\n\n /** Trade side */\n TradeSide: SideEnum;\n\n /** Revision of this report */\n Revision: number;\n\n /** Status of this report */\n Status: TradeSettleStatusEnum;\n\n /** Asset which Due, CumSettledDue and LastSettledDue are expressed in */\n DueAsset: string;\n\n /** Total due asset for the report. Qty for sell, Amt for buy trade */\n Due: JSON_Decimal;\n\n /** Cumulative settled due asset for the report */\n CumSettledDue: JSON_Decimal;\n\n /** Asset which Proceeds, CumSettledProceeds and LastSettledProceeds are expressed in */\n ProceedsAsset: string;\n\n /** Total proceeds asset for the report. Amt for sell, Qty for buy trade */\n Proceeds: JSON_Decimal;\n\n /** Cumulative settled proceeds asset for the report */\n CumSettledProceeds: JSON_Decimal;\n\n /** Trade price */\n Price: JSON_Decimal;\n\n /** Last settled due asset for the report */\n LastSettledDue: JSON_Decimal;\n\n /** Last settled proceeds asset for the report */\n LastSettledProceeds: JSON_Decimal;\n\n /** Source for last settlement reported in LastSettledDue and LastSettledProceeds */\n LastSettledSource: TradeSettleSourceEnum;\n\n /** Source ID as OID or [36]byte */\n LastSourceID: string;\n\n /** Customer MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Customer counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** Timestamp when report was created in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Action that caused this Trade settle report */\n LastAction: TradeSettleActionEnum;\n\n /** Initial fundings of due */\n InitialDue: number;\n}\n\n/** View Request for ConversionRate feed */\nexport interface IConversionRateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Tolerance of Conversion Changes, as a raw percentage (0.01 for 1%). */\n Tolerance: JSON_Decimal;\n\n /** Equivalent Currency ID */\n EquivalentCurrency: string;\n\n /** Debug and additional flags */\n Debug: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source Currency/Security to Map to Equivalent Currency */\n AssetIDs: IConversionRateRequest4245AssetIDs[];\n}\n\n/** Source Currency/Security to Map to Equivalent Currency */\nexport interface IConversionRateRequest4245AssetIDs {\n /** AssetID */\n Asset: string;\n\n /** SourceUnit */\n SourceUnit: ConversionSourceUnitEnum;\n}\n\n/** Represents an update to an existing customer quote request */\nexport interface ICustomerQuoteUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote request ID for Update Request */\n QuoteReqID: string;\n\n /** Original Quote request ID */\n OrigQuoteReqID: string;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Arbitrary string assigned when the customer request is submitted */\n Group: string;\n\n /** customer request parameters */\n Parameters: IQuoteParameters;\n\n /** Additional information attached to the quote */\n Comments: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Represents an parameters update request to an existing customer order */\nexport interface ICustomerOrderParamsUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** The ID or the order upon which to act */\n OrderID: string;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** customer request parameters */\n Parameters: IQuoteParameters;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Conversion Rate Delta for the View */\nexport interface IConversionRateDelta {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of MarketView */\n ViewID: JSON_Int64ID;\n\n /** Optional RequestID Indicates initial Snapshot on reused view */\n ViewRequestID: JSON_Int64ID;\n\n /** Equivalent Currency ID */\n EquivalentCurrency: string;\n\n /** Key for the conversion pair */\n PairKey: string;\n\n /** Asset of the delta */\n Asset: string;\n\n /** Conversion rate */\n Rate: JSON_Decimal;\n\n /** Status of conversion rate */\n Status: ConnectionStatusEnum;\n\n /** Implied asset price in Equivalent Currency */\n ImpliedPrice: JSON_Decimal;\n\n /** SourceUnit */\n SourceUnit: ConversionSourceUnitEnum;\n\n /** Paths to Calculate the Currency Rate */\n ConversionPath: string;\n}\n\n/** (TenantID:OrgID) */\nexport interface IBalanceUpdate {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of balance entries */\n Balances: IBalanceUpdate4760Balances[];\n}\n\n/** Number of balance entries */\nexport interface IBalanceUpdate4760Balances {\n /** Balance Entry Type */\n BalanceEntryType: BalanceEntryTypeEnum;\n\n /** Account */\n Account: string;\n\n /** The Currency updated, if non-zero */\n Currency: string;\n\n /** The Security updated, if non-zero */\n Symbol: JSON_Security;\n\n /** Balance Amount */\n Amount: JSON_Decimal;\n\n /** Available Amount not tied up in open orders */\n AvailableAmount: JSON_Decimal;\n\n /** Balance update time as given by the Exchange or zero if not given by the exchange */\n TransactTime: JSON_UTCTimestamp;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Available Margin */\n AvailableMargin: JSON_Decimal;\n\n /** Initial Margin */\n InitialMargin: JSON_Decimal;\n\n /** Maintenance Margin */\n MaintenanceMargin: JSON_Decimal;\n\n /** Equity */\n Equity: JSON_Decimal;\n\n /** The total delta accross all options positions in this currency */\n OptionsDelta: JSON_Decimal;\n\n /** The total delta accross all positions in this currency */\n TotalDelta: JSON_Decimal;\n\n /** MarginReportingType */\n MarginReportingType: MarginReportingTypeEnum;\n\n /** The blockchain chain id on which this currency's balance exists */\n ChainID: number;\n}\n\n/** Settlement instruction belonging to a settlement batch */\nexport interface ISettlementInstruction {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique identifier of the instruction generated by Talos */\n InstructionID: JSON_Int64ID;\n\n /** Unique ID for the parent settlement batch. Empty for preview */\n ParentSettlementID: JSON_Int64ID;\n\n /** Account affected by that instruction */\n OnBehalfOfAccountID: number;\n\n /** Direction of settlement instruction from the client perspective */\n Direction: SettlementInstructionDirectionEnum;\n\n /** Settlement instruction amount */\n Amount: JSON_Decimal;\n\n /** Settlement instruction asset */\n Asset: string;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n}\n\n/** Data for each possible market supporting the decision at the time the decision was made. */\nexport interface ITradeAnalytics {\n /** Timestamp of when the trade was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID of the parent order. */\n OrderID: string;\n\n /** SecurityID of Security that was traded. */\n Symbol: JSON_Security;\n\n /** Side of this trade */\n Side: SideEnum;\n\n /** TradeID of this trade. Generated by Talos. */\n TradeID: string;\n\n /** Timestamp of the trade as reported by the market. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Market for this trade. */\n Market: JSON_Market;\n\n /** TradeID as reported by the market. */\n MarketTradeID: string;\n\n /** Price of the trade */\n Price: JSON_Decimal;\n\n /** Price of the trade with fees included. */\n PriceAllIn: JSON_Decimal;\n\n /** Quantity of the trade. */\n Quantity: JSON_Decimal;\n\n /** Currency of the Quantity of the trade. */\n Currency: string;\n\n /** Amount of the trade, i.e. Price times Quantity. */\n Amount: JSON_Decimal;\n\n /** Currency in which Amount is specified. */\n AmountCurrency: string;\n\n /** Currency in which Quantity was specified. */\n DealtCurrency: string;\n\n /** Fee on the trade as reported by the exchange. */\n Fee: JSON_Decimal;\n\n /** Fee currency, may be missing if no fees were paid. */\n FeeCurrency: string;\n\n /** Market for this analytics. If missing these analytics are aggregate values for a liquidity bucket instead of an individual market. */\n CandidateMarket: JSON_Market;\n\n /** The index of the Liquidity Bucket the market for these analytics belongs to. If CandidateMarketID is missing, then the index assigned to the liquidity bucket. */\n CandidateLiquidityBucketIdx: number;\n\n /** Expected fill price fee inclusive for this record. */\n CandidateExpectedFillPrice: JSON_Decimal;\n\n /** Expected fill quantity for this record. */\n CandidateExpectedFillQty: JSON_Decimal;\n\n /** Bps from best aggregate liquidity bucket price. */\n CandidateBpsFromBest: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Best bid on the candidate market */\n CandidateMarketBestBid: JSON_Decimal;\n\n /** Best offer on the candidate market */\n CandidateMarketBestOffer: JSON_Decimal;\n\n /** The market order id for this trade */\n MarketOrderID: string;\n}\n\n/** Snapshot message for a snowflake node */\nexport interface ISnowflakeNodeSnapshot {\n /** Timestamp node treats as the epoch */\n Epoch: JSON_UTCTimestamp;\n\n /** Last timestamp seen by this node */\n Time: number;\n\n /** Seed node number */\n Node: number;\n\n /** Current step this node is on */\n Step: number;\n\n /** Number of bits used for node number */\n NodeBits: number;\n\n /** Number of bits used for step */\n StepBits: number;\n}\n\n/** Message signaling the start of a DedupModel snapshot */\nexport interface IDedupModelSnapshotStartBlock {\n /** ID of the DedupModel, used to differentiate DedupModel snapshots */\n ID: number;\n\n /** Start time of the current lookback period */\n StartTime: JSON_UTCTimestamp;\n\n /** Duration of the lookback period */\n LookbackPeriod: JSON_DurationMillis;\n}\n\n/** DedupModel entry snapshot */\nexport interface IDedupModelSnapshotEntry {\n /** ID of the DedupModel this entry is a member of */\n DedupModelID: number;\n\n /** Bitmap field of eight Boolean type indicators signaling if there are more entries to follow. Only the ContinuationFlag is used. */\n EventIndicator: Record;\n\n /** A DedupModel entry */\n Entry: string;\n\n /** Type of this entry */\n EntryType: DedupModelEntryTypeEnum;\n}\n\n/** Snapshot message for a UuidV4Provider */\nexport interface IUuidV4ProviderSnapshot {\n /** The marshaled state of the RNG source */\n Source: string;\n}\n\n/** Snapshot of customer transaction data */\nexport interface ICustomerState {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The ID of the customer RFQ upon which to act */\n RFQID: string;\n\n /** The ID of the customer order upon which to act */\n OrderID: string;\n\n /** Effective Side of Executing RFQ */\n EffectiveSide: SideEnum;\n\n /** Order type - necessary for dispatching to the correct state in the model */\n OrdType: OrdTypeEnum;\n\n /** Pending Customer ClOrdID */\n PendingClOrdID: string;\n\n /** Pending Customer ClOrdID */\n PendingOMSClOrdID: string;\n\n /** Pending Quantity to Replace */\n PendingReplaceQty: JSON_Decimal;\n\n /** Pending Price to Replace */\n PendingReplacePrice: JSON_Decimal;\n\n /** Whether the leg is allowed to send crossing and/or resting orders, as requested by the order strategy */\n SplitHedges: BoolEnum;\n\n /** Hedge Quote ID for bid quote */\n BidHedgeQuoteID: string;\n\n /** Hedge Quote ID for offer quote */\n OfferHedgeQuoteID: string;\n\n /** Strategy For Customer Order Execution */\n ExecutionStrategy: CustomerExecutionStrategyEnum;\n\n /** Effective Pricing Parameters from the current customer transaction */\n EffectiveParameters: IQuoteParameters;\n\n /** Computed Pricing Parameters from the current customer transaction */\n PendingReplaceParameters: IQuoteParameters;\n\n /** Computed Pricing Parameters from the current customer transaction */\n PendingDirectParameters: IQuoteParameters;\n\n /** CustomerQuote message from the current rfq state */\n CustomerQuote: ICustomerQuote;\n\n /** CustomerExecutionReport message from the current order state */\n CustomerExecutionReport: ICustomerExecutionReport;\n\n /** omsLatestUpdate Quote in memory */\n OMSQuote: IOMSQuote;\n\n /** Existing Utilized OrderIDs, RFQIDs, ClOrdIDs, ClReqIDs */\n UtilizedOrderIDs: ICustomerState4255UtilizedOrderIDs[];\n\n /** Received Risk Responses */\n RiskApprovals: ICustomerState4255RiskApprovals[];\n\n /** The alignment of hedge quote ids */\n SplitHedgeStateByQuoteID: ICustomerState4255SplitHedgeStateByQuoteID[];\n\n /** Mapping of hedge quote to customer quote id */\n HedgeQuoteByCustomerQuoteID: ICustomerState4255HedgeQuoteByCustomerQuoteID[];\n}\n\n/** Mapping of hedge quote to customer quote id */\nexport interface ICustomerState4255HedgeQuoteByCustomerQuoteID {\n /** CustomerQuoteID for Hedge Quote */\n CustomerQuoteID: string;\n\n /** Hedge Quote ID */\n HedgeQuoteID: string;\n}\n\n/** Received Risk Responses */\nexport interface ICustomerState4255RiskApprovals {\n /** A Single Captured Risk Approval */\n Approval: ICustomerRiskResponse;\n}\n\n/** The alignment of hedge quote ids */\nexport interface ICustomerState4255SplitHedgeStateByQuoteID {\n /** Selected Hedge Quote ID for split hedges */\n UnifiedHedgeQuoteID: string;\n\n /** Hedge Quote ID for bid quote */\n BidHedgeQuoteID: string;\n\n /** Hedge Quote ID for offer quote */\n OfferHedgeQuoteID: string;\n}\n\n/** Existing Utilized OrderIDs, RFQIDs, ClOrdIDs, ClReqIDs */\nexport interface ICustomerState4255UtilizedOrderIDs {\n /** A utilized ID */\n OrderID: string;\n}\n\n/** Provide an enriched stream of pub/sub registrations for enriching monitoring/metrics with system details */\nexport interface IStreamRegistration {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** StreamID */\n StreamID: number;\n\n /** Stream Registration Id */\n RegistrationID: number;\n\n /** Name of Service registering pub/sub with stream */\n ServiceName: string;\n\n /** Hostname for Service registering pub/sub with stream */\n ServiceHost: string;\n\n /** Channel */\n Channel: string;\n}\n\n/** Request for volatile data stream info */\nexport interface IVolatileJoinRequest {\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n}\n\n/** Runtime configuration */\nexport interface IConfiguration {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of the most recent update */\n Revision: number;\n\n /** User who performed the most recent update */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Configuration key in the form a.b.c */\n Key: string;\n\n /** Configuration value as a string */\n Value: string;\n}\n\n/** Response to an Volatile Join request with the update/snapshot streams */\nexport interface IVolatileJoinResponse {\n /** The request ID that this response is for. */\n RequestID: number;\n\n /** Last time the sequence numbers were reset */\n LastResetTime: number;\n\n /** Stream ID the client should use to consume update messages */\n UpdateStreamID: number;\n\n /** Stream ID the client should use to consume snapshot messages */\n SnapshotStreamID: number;\n\n /** Channel the client should subscribe to receive updates(deltas) */\n UpdateChannel: string;\n\n /** Channel the client should subscribe to receive snapshots */\n SnapshotChannel: string;\n}\n\n/** Acknowledges receipt of a Volatile request */\nexport interface IVolatileRequestAck {\n /** The request ID that this response is for. */\n RequestID: number;\n\n /** Was this request successfully queued */\n Failure: BoolEnum;\n\n /** Reason for failure */\n FailureReason: string;\n}\n\n/** Header for Volatile message passed in response to a request */\nexport interface IVolatileSnapshotHeader {\n /** Service that generated this message */\n ServiceID: JSON_Int64ID;\n\n /** Correlation ID to associate Volatile request/response */\n RequestID: JSON_Int64ID;\n\n /** ID of item to snapshot */\n TopicID: JSON_Int64ID;\n\n /** The sequence number of this message in the Topic stream */\n SequenceNumber: number;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n}\n\n/** Request to update an account ledger */\nexport interface ILedgerUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** A client-generated snowflake ID for this request */\n RequestID: JSON_Int64ID;\n\n /** The type of ledger update request */\n Type: LedgerUpdateTypeEnum;\n\n /** ID of the ledger account */\n AccountID: number;\n\n /** The Asset to be updated */\n Asset: string;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Average cost of the Amount, meaning depends on the Type */\n AvgCost: JSON_Decimal;\n\n /** The Currency units of average cost */\n AvgCostCurrency: string;\n\n /** Internal time in number of nanoseconds since Unix epoch representing the last time the balance changed in the system of record. */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Client-generated unique ID for incoming request if applicable */\n ExternalID: string;\n\n /** The ID of the OMS trade that generated this event, if applicable */\n TradeID: string;\n\n /** The type of account that AccountID references */\n AccountType: LedgerAccountTypeEnum;\n\n /** Indicates what is origin of ExternalID */\n ExternalType: ExternalTypeEnum;\n\n /** Optional units of Amount. If unset, then AssetID is assumed */\n AmountAsset: string;\n\n /** The optional intended / target type of the generated ledger event, if different than the request type */\n IntendedType: LedgerUpdateTypeEnum;\n\n /** Additional information relating to the update */\n Comments: string;\n}\n\n/** Header for Volatile message sent on updates */\nexport interface IVolatileUpdateHeader {\n /** ID of item to snapshot */\n TopicID: JSON_Int64ID;\n\n /** The sequence number of this message in the Topic stream */\n SequenceNumber: number;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n}\n\n/** Response to updating an account ledger */\nexport interface ILedgerUpdateResponse {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** A client-generated snowflake ID for this request */\n RequestID: JSON_Int64ID;\n\n /** The type of ledger update request */\n Type: LedgerUpdateTypeEnum;\n\n /** ID of the ledger account */\n AccountID: number;\n\n /** The Asset to be updated */\n Asset: string;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Average cost of the Amount, meaning depends on the Type */\n AvgCost: JSON_Decimal;\n\n /** The Currency units of average cost */\n AvgCostCurrency: string;\n\n /** Status of the update request */\n Status: LedgerUpdateStatusEnum;\n\n /** Client-generated unique ID for incoming request if applicable */\n ExternalID: string;\n\n /** The type of account that AccountID references */\n AccountType: LedgerAccountTypeEnum;\n\n /** Indicates what is origin of ExternalID */\n ExternalType: ExternalTypeEnum;\n\n /** Timestamp representing when the balance changed in the system of record. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Optional units of Amount. If unset, then AssetID is assumed */\n AmountAsset: string;\n\n /** The service originating this ledger */\n SourceService: JSON_ServiceIdentifier;\n\n /** Revision of the account that will be reflected on the LedgerAccountBalance if it is completed */\n Revision: number;\n\n /** The optional intended / target type of the generated ledger event, if different than the request type */\n IntendedType: LedgerUpdateTypeEnum;\n\n /** Text */\n Text: string;\n}\n\n/** Reset a stream */\nexport interface IVolatileReset {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of item to snapshot */\n TopicID: JSON_Int64ID;\n}\n\n/** An event on a ledger */\nexport interface ILedgerEvent {\n /** Internal time in number of nanoseconds since Unix epoch representing when the event was generated */\n TransactTime: JSON_UTCTimestamp;\n\n /** The ID of the ledger request that generated this event, if applicable */\n RequestID: JSON_Int64ID;\n\n /** The type of ledger update request */\n Type: LedgerUpdateTypeEnum;\n\n /** ID of the ledger account */\n AccountID: number;\n\n /** The Asset for this event */\n Asset: string;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Price of Amount, meaning depends on the Type */\n Price: JSON_Decimal;\n\n /** The Currency units of price */\n PriceCurrency: string;\n\n /** Average cost of the Amount, meaning depends on the Type */\n AvgCost: JSON_Decimal;\n\n /** The Currency units of average cost */\n AvgCostCurrency: string;\n\n /** Status of the update request */\n Status: LedgerUpdateStatusEnum;\n\n /** Revision of the account that will be reflected on the LedgerAccountBalance if it is completed */\n Revision: number;\n\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** The ID of the OMS trade that generated this event, if applicable */\n TradeID: string;\n\n /** Client-generated unique ID for incoming request if applicable */\n ExternalID: string;\n\n /** Current ledger amount after applying this ledger event */\n ResultingAmount: JSON_Decimal;\n\n /** The type of account that AccountID references */\n AccountType: LedgerAccountTypeEnum;\n\n /** Indicates what is origin of ExternalID */\n ExternalType: ExternalTypeEnum;\n\n /** The service originating this ledger */\n SourceService: JSON_ServiceIdentifier;\n\n /** Fee attributed to this event */\n Fee: JSON_Decimal;\n\n /** Currency ID for the fee */\n FeeCurrency: string;\n\n /** Optional units of Amount. If unset, then AssetID is assumed */\n AmountAsset: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Sequence number of this event affecting ResultingAmount, in transaction-time order */\n SequenceNumber: number;\n\n /** Additional information relating to the update */\n Comments: string;\n}\n\n/** Signal market data is still alive */\nexport interface IVolatileKeepAlive {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of item to snapshot */\n TopicID: JSON_Int64ID;\n}\n\n/** The current state of an account */\nexport interface ILedgerAccountBalance {\n /** Internal time in number of nanoseconds since Unix epoch representing when the last event was applied */\n TransactTime: JSON_UTCTimestamp;\n\n /** ID of the ledger account */\n AccountID: number;\n\n /** The Asset of this balance */\n Asset: string;\n\n /** Resulting Balance / Position for the ledger */\n Amount: JSON_Decimal;\n\n /** Average cost of the Amount, meaning depends on the Type */\n AvgCost: JSON_Decimal;\n\n /** Accumulated realized PnL for this balance / position */\n RealizedPnL: JSON_Decimal;\n\n /** The Currency units of average cost */\n CostCurrency: string;\n\n /** Revision of the account, which corresponds to the latest LedgerEvent that has been applied */\n Revision: number;\n\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** The type of account that AccountID references */\n AccountType: LedgerAccountTypeEnum;\n\n /** The service originating this ledger balance */\n SourceService: JSON_ServiceIdentifier;\n\n /** Cumulative Fees attributed to this asset, in cost currency units */\n CumFees: JSON_Decimal;\n\n /** Resulting Unsettled Balance / Position for the ledger */\n UnsettledAmount: JSON_Decimal;\n\n /** Average cost of the UnsettledAmount, meaning depends on the Type */\n UnsettledAvgCost: JSON_Decimal;\n\n /** Cumulative FundingPnL attributed to this asset */\n FundingPnL: JSON_Decimal;\n\n /** The Currency units of FundingPnL */\n FundingPnLCurrency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** The Currency units of RealizedPnL */\n RealizedPnLCurrency: string;\n\n /** The Currency units of CumFees */\n FeeCurrency: string;\n}\n\n/** Signals the end of the snapshot messages for a snapshot request */\nexport interface IVolatileSnapshotEnd {\n /** The ID of the snapshot request */\n RequestID: number;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Number of snapshot messages sent for this request */\n SnapshotsSent: number;\n}\n\n/** TradeSummary */\nexport interface ITradeSummary {\n /** Internal processing time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ExecID */\n TradeID: string;\n\n /** Trade price */\n Price: JSON_Decimal;\n\n /** Trade quantity */\n Size: JSON_Decimal;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n}\n\n/** Request to send out a snapshot of ledger details */\nexport interface ILedgerSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** A client-generated UUID for this request */\n RequestID: JSON_Int64ID;\n}\n\n/** ConversionRate */\nexport interface IConversionRate {\n /** Internal processing time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Currency ID */\n Currency: string;\n\n /** Equivalent Currency ID */\n EquivalentCurrency: string;\n\n /** Conversion rate */\n Rate: JSON_Decimal;\n\n /** Status of conversion rate */\n Status: ConnectionStatusEnum;\n}\n\n/** Request to update a customer account ledger */\nexport interface ICustomerLedgerUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** A client-generated unique ID for this request */\n ExternalID: string;\n\n /** The type of ledger update request */\n Type: CustomerLedgerUpdateTypeEnum;\n\n /** ID of the counterparty for this user */\n Counterparty: JSON_Counterparty;\n\n /** The Currency to be updated, if non-zero */\n Currency: string;\n\n /** The Security to be updated, if non-zero */\n Symbol: JSON_Security;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Internal time in number of nanoseconds since Unix epoch representing the last time the balance changed in the system of record. */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Additional information relating to the update */\n Comments: string;\n}\n\n/** Notifies VolatileClient of a topic for its request */\nexport interface IVolatileTopicAnnouncement {\n /** ID of item to snapshot */\n TopicID: JSON_Int64ID;\n\n /** The current status for the topic */\n TopicStatus: TopicStatusEnum;\n\n /** Data */\n Data: string;\n\n /** Number of requests */\n Requests: IVolatileTopicAnnouncement14009Requests[];\n}\n\n/** Number of requests */\nexport interface IVolatileTopicAnnouncement14009Requests {\n /** A requestID that would be interested in this announcement */\n RequestID: JSON_Int64ID;\n}\n\n/** Ohlcv */\nexport interface IOhlcv {\n /** Resolution Timestamp */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Open */\n Open: JSON_Decimal;\n\n /** High */\n High: JSON_Decimal;\n\n /** Low */\n Low: JSON_Decimal;\n\n /** Close */\n Close: JSON_Decimal;\n\n /** Volume */\n Volume: JSON_Decimal;\n\n /** Ticks */\n Ticks: number;\n}\n\n/** Response to updating a customer account ledger */\nexport interface ICustomerLedgerUpdateResponse {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** A client-generated unique ID for this request */\n ExternalID: string;\n\n /** The type of ledger update request */\n Type: CustomerLedgerUpdateTypeEnum;\n\n /** ID of the counterparty for this user */\n Counterparty: JSON_Counterparty;\n\n /** The Currency to be updated, if non-zero */\n Currency: string;\n\n /** The Security to be updated, if non-zero */\n Symbol: JSON_Security;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Status of the update request */\n Status: LedgerUpdateStatusEnum;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Text */\n Text: string;\n\n /** Additional information relating to the update */\n Comments: string;\n}\n\n/** Requests a snapshot for a set of topics */\nexport interface ITopicSnapshotRequest {\n /** Number of topics to subscribe to */\n Topics: ITopicSnapshotRequest14010Topics[];\n}\n\n/** Number of topics to subscribe to */\nexport interface ITopicSnapshotRequest14010Topics {\n /** TopicID ID */\n TopicID: number;\n\n /** RequestID for this topic */\n RequestID: number;\n}\n\n/** Sparkline */\nexport interface ISparkline {\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Volume */\n Volume: JSON_Decimal;\n\n /** Open */\n Open: JSON_Decimal;\n\n /** Close */\n Close: JSON_Decimal;\n\n /** Values */\n Values: number[];\n}\n\n/** */\nexport interface ICustomerBalanceUpdate {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the counterparty for this user */\n Counterparty: JSON_Counterparty;\n\n /** Revision of the account, which corresponds to the latest LedgerEvent that has been applied */\n Revision: number;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of balance entries */\n Balances: ICustomerBalanceUpdate5307Balances[];\n}\n\n/** Number of balance entries */\nexport interface ICustomerBalanceUpdate5307Balances {\n /** Balance Entry Type */\n BalanceEntryType: BalanceEntryTypeEnum;\n\n /** The Currency to be updated, if non-zero */\n Currency: string;\n\n /** The Security to be updated, if non-zero */\n Symbol: JSON_Security;\n\n /** Balance Amount */\n Amount: JSON_Decimal;\n\n /** Available Amount not tied up in open orders */\n AvailableAmount: JSON_Decimal;\n\n /** Balance update time as given by the Exchange or zero if not given by the exchange */\n TransactTime: JSON_UTCTimestamp;\n\n /** Available Margin */\n AvailableMargin: JSON_Decimal;\n\n /** Amount that may get from open customer orders */\n OutstandingBuy: JSON_Decimal;\n\n /** Amount locked in open customer orders */\n OutstandingSell: JSON_Decimal;\n}\n\n/** An event on a ledger */\nexport interface ICustomerLedgerEvent {\n /** The ID of the ledger request that generated this event, if applicable */\n RequestID: JSON_Int64ID;\n\n /** The type of ledger update request */\n Type: CustomerLedgerUpdateTypeEnum;\n\n /** ID of the counterparty for this event */\n Counterparty: JSON_Counterparty;\n\n /** The Currency of this event, if non-zero */\n Currency: string;\n\n /** The Security of this event, if non-zero */\n Symbol: JSON_Security;\n\n /** Amount of the ledger update, meaning depends on the Type */\n Amount: JSON_Decimal;\n\n /** Status of the update request */\n Status: LedgerUpdateStatusEnum;\n\n /** Revision of the account that will be reflected on the LedgerAccountBalance if it is completed */\n Revision: number;\n\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** The ID of the OMS trade that generated this event, if applicable */\n TradeID: string;\n\n /** Client-generated unique ID for incoming request if applicable */\n ExternalID: string;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Indicates what is origin of ExternalID */\n ExternalType: ExternalTypeEnum;\n\n /** Resulting amount of the ledger event */\n ResultingAmount: JSON_Decimal;\n\n /** Additional information relating to the update */\n Comments: string;\n}\n\n/** View Request for ReferenceRate feed */\nexport interface IReferenceRateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Tolerance of market moving average(s) from the median */\n Tolerance: JSON_Decimal;\n\n /** Frequency of reference rate updates */\n Throttle: JSON_DurationMillis;\n\n /** Debug and additional flags */\n Debug: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** Requested Markets */\n Markets: IReferenceRateRequest5310Markets[];\n}\n\n/** Requested Markets */\nexport interface IReferenceRateRequest5310Markets {\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Message for delivery of websocket ReferenceRateSnapshots */\nexport interface IReferenceRateSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Optional Market View ID */\n ViewID: JSON_Int64ID;\n\n /** Optional RequestID Indicates initial Snapshot on reused view */\n ViewRequestID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Reference Rate */\n Rate: JSON_Decimal;\n\n /** Overall rate status */\n Status: ConnectionStatusEnum;\n\n /** Variance of underlying markets from the calculated reference rate */\n Variance: JSON_Decimal;\n\n /** A spread-like measure of underlying markets */\n SpreadMeasure: JSON_Decimal;\n\n /** Market Statuses for this MarketView */\n Markets: IReferenceRateSnapshot5311Markets[];\n}\n\n/** Market Statuses for this MarketView */\nexport interface IReferenceRateSnapshot5311Markets {\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Status of this market in the reference rate */\n MarketStatus: OrderMarketStatusEnum;\n\n /** Price for this market */\n Price: JSON_Decimal;\n\n /** Type of this market's price if included in the ref-rate */\n PriceType: DepthTypeEnum;\n}\n\n/** Realtime balance specific to whitelabel customers, generated from RealtimeBalance5100 */\nexport interface ICustomerRealtimeBalance {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** ID of the customer counterparty */\n Counterparty: JSON_Counterparty;\n\n /** Number of balance entries */\n Balances: ICustomerRealtimeBalance5312Balances[];\n}\n\n/** Number of balance entries */\nexport interface ICustomerRealtimeBalance5312Balances {\n /** Latest time this balance was updated */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Message type indicating snapshot or update */\n BalanceEntryType: BalanceEntryTypeEnum;\n\n /** The Currency of the balance entry, if non-zero */\n Currency: string;\n\n /** The Security of the balance entry, if non-zero */\n Symbol: JSON_Security;\n\n /** Realtime amount including all trade executions */\n Amount: JSON_Decimal;\n\n /** Available amount not tied up in open orders */\n AvailableAmount: JSON_Decimal;\n\n /** Available margin */\n AvailableMargin: JSON_Decimal;\n\n /** Amount of open orders on the buy side */\n OutstandingBuy: JSON_Decimal;\n\n /** Amount of open orders on the sell side */\n OutstandingSell: JSON_Decimal;\n\n /** Account */\n Account: string;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Pending withdrawal amount */\n PendingWithdrawal: JSON_Decimal;\n\n /** Unsettled amount */\n UnsettledAmount: JSON_Decimal;\n}\n\n/** Snapshot request of all CustomerRealtimeBalance */\nexport interface ICustomerRealtimeBalanceSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Aeron ClientID of the requestor */\n ClientID: number;\n}\n\n/** Represents the a snapshot of the position stats in the given resolution, for an asset of an account. */\nexport interface IPositionStat {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Time resolution of position stats */\n WindowResolution: ResolutionEnum;\n\n /** The type of account that AccountID references */\n AccountType: LedgerAccountTypeEnum;\n\n /** Account ID for this position stat */\n AccountID: number;\n\n /** Asset ID for this position stat */\n Asset: string;\n\n /** Highest position reached during time interval, in asset */\n HighPosition: JSON_Decimal;\n\n /** Lowest position reached during time interval, in asset */\n LowPosition: JSON_Decimal;\n\n /** Closing position of the time interval, in asset */\n ClosePosition: JSON_Decimal;\n\n /** Total quantity of asset bought (in absolute value) in the time interval */\n BuyVolume: JSON_Decimal;\n\n /** Quantity of asset bought for Life to date (LTD) (approx) */\n BuyVolumeToDate: JSON_Decimal;\n\n /** Total quantity of asset sold (in absolute value) in the time interval */\n SellVolume: JSON_Decimal;\n\n /** Quantity of asset sold for Life to date (LTD) (approx) */\n SellVolumeToDate: JSON_Decimal;\n\n /** Close Realized PnL for the interval (in CostCurrency) */\n CloseRealizedPnL: JSON_Decimal;\n\n /** Close Realized PnL for Life to date (in CostCurrency, approx) */\n CloseRealizedPnLToDate: JSON_Decimal;\n\n /** Close average cost (Life to date) */\n CloseAvgCost: JSON_Decimal;\n\n /** Cost currency ID (CostCurrency) */\n CostCurrency: string;\n\n /** Fees for the interval (in CostCurrency) */\n CloseFees: JSON_Decimal;\n\n /** Fees for Life to date (in CostCurrency, approx) */\n CloseFeesToDate: JSON_Decimal;\n\n /** FundingPnL for the interval (in CostCurrency) */\n CloseFundingPnL: JSON_Decimal;\n\n /** FundingPnL for Life to date (in CostCurrency, approx) */\n CloseFundingPnLToDate: JSON_Decimal;\n\n /** Revision of the ledger account balance */\n Revision: number;\n\n /** Last update time for offline stream in nanoseconds since Unix epoch, zero for live stream */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Position delta of the time interval, in asset */\n PositionDelta: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Close average cost of BuyVolume (Life to date, in CostCurrency) */\n BuyVolumeToDateAvgCost: JSON_Decimal;\n\n /** Close average cost of SellVolume (Life to date, in CostCurrency) */\n SellVolumeToDateAvgCost: JSON_Decimal;\n\n /** Currency units of RealizedPnL */\n RealizedPnLCurrency: string;\n\n /** Currency units of FundingPnL */\n FundingPnLCurrency: string;\n\n /** Currency units of Fees */\n FeeCurrency: string;\n}\n\n/** Risk constraint for limiting the size of orders */\nexport interface IMaxOrderSizeLimit {\n /** Max Order Size Limit ID */\n TradingLimitID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Emit a warning when breaching this threshold */\n WarnThreshold: JSON_Decimal;\n\n /** Prevent submitting the order when breaching this threshold */\n RejectThreshold: JSON_Decimal;\n\n /** Currency for which this limit applies */\n ThresholdCurrency: string;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User for which this limit applies */\n User: JSON_User;\n\n /** User group for which this limit applies */\n UserGroupID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID */\n Currency: string;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** A name to distinguish this limit from others */\n Description: string;\n}\n\n/** Represents a conversion rate that will be used to calculate the USD value positions and PnL */\nexport interface IPriceMark {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** How the price mark was calculated */\n Source: PriceMarkSourceEnum;\n\n /** Asset ID for this price mark */\n Asset: string;\n\n /** Currency that the price mark is calculated with */\n EquivalentCurrency: string;\n\n /** Implied asset price in Equivalent Currency */\n Price: JSON_Decimal;\n\n /** Conversion rate */\n ConversionRate: JSON_Decimal;\n\n /** Status for the price mark */\n Status: MarketAccountStatusEnum;\n\n /** User who update that price mark */\n UpdateUser: JSON_User;\n\n /** Revision of this price mark */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** External tags */\n Tags: Record;\n}\n\n/** A group of users */\nexport interface IUserGroup {\n /** ID of this group */\n GroupID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** DisplayName */\n DisplayName: string;\n}\n\n/** Many-to-many mapping between a user group and a user */\nexport interface IUserGroupMembership {\n /** ID of the user group */\n GroupID: JSON_Int64ID;\n\n /** ID of the user */\n User: JSON_User;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Usage limits for market data for users */\nexport interface IUserMarketDataLimit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** Market data subs limit */\n ViewLimit: number;\n\n /** ID of the user */\n User: JSON_User;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Whether this limit is for API usage */\n IsApi: BoolEnum;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** ID of user who last updated this MD position limit */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Description */\n Description: string;\n}\n\n/** Usage limit audit logs for market data for users */\nexport interface IUserMarketDataAccessAudit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of the user */\n User: JSON_User;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Whether this audit is for the API */\n IsApi: BoolEnum;\n\n /** Market data session current count */\n MaxCount: number;\n\n /** Status of user MD request */\n Status: UserMarketDataLimitRequestStatusEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Equity margin ratio limit for market accounts */\nexport interface IEquityMarginRatioLimit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** Market account which the limit applies to */\n MarketAccount: JSON_MarketAccount;\n\n /** Equity margin ratio limit */\n Ratio: JSON_Decimal;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** ID of user who last updated this limit */\n UpdateUser: JSON_User;\n\n /** Revision */\n Revision: number;\n}\n\n/** Request to send out a data-snapshot of specific templates */\nexport interface IDataSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** Generated request ID to be referenced in responses */\n RequestID: JSON_Int64ID;\n\n /** Template IDs requested */\n TemplateIDs: IDataSnapshotRequest5320TemplateIDs[];\n}\n\n/** Template IDs requested */\nexport interface IDataSnapshotRequest5320TemplateIDs {\n /** TemplateID */\n TemplateID: number;\n}\n\n/** Request for reference data snapshot */\nexport interface IReferenceDataSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n\n /** Tables */\n Tables: IReferenceDataSnapshotRequest13000Tables[];\n}\n\n/** */\nexport interface IReferenceDataSnapshotRequest13000Tables {\n /** The database type: OrgDB=1, AvaDB=2, LoanDB=3 */\n DBType: number;\n\n /** Name of the requested table */\n TableName: string;\n}\n\n/** Response to a data-snapshot request */\nexport interface IDataSnapshotResponse {\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** Request ID in response to */\n RequestID: JSON_Int64ID;\n\n /** Template ID in this response */\n TemplateID: number;\n\n /** Generated response ID to be referenced in the start / end block */\n ResponseID: JSON_Int64ID;\n\n /** EntryType */\n EntryType: SnapshotBlockEntryTypeEnum;\n}\n\n/** Rejection of request for reference data snapshot */\nexport interface IReferenceDataSnapshotReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n\n /** Reason for rejection */\n Reason: string;\n}\n\n/** Customer balance transaction holds information about customer initiated deposit or withdrawal state */\nexport interface ICustomerBalanceTransaction {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer defined request ID */\n ClReqID: string;\n\n /** Unique ID generated by Talos for customer transaction */\n TransactionID: JSON_Int64ID;\n\n /** Revision of this customer transaction */\n Revision: number;\n\n /** Type of balance transaction */\n TransactionType: CustomerBalanceTransactionTypeEnum;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the counterparty for this customer user */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Transaction quantity */\n Quantity: JSON_Decimal;\n\n /** Transaction currency */\n Currency: string;\n\n /** ID to related customer address record */\n CustomerAddressID: JSON_Int64ID;\n\n /** Status of this customer balance transaction */\n Status: CustomerBalanceTransactionStatusEnum;\n\n /** Optional ID of user with dealer permission who touched this customer transaction */\n DealerUser: JSON_User;\n\n /** Optional ID of user with treasury permission who touched this customer transaction */\n TreasuryUser: JSON_User;\n\n /** Customer transaction reject reason */\n RejectReason: CustomerTransactionRejectReasonEnum;\n\n /** optional transfer ID */\n TransferID: JSON_Int64ID;\n\n /** Balance transaction initiator */\n Initiator: BalanceTransactionInitiatorEnum;\n\n /** Internal time in number of nanoseconds since Unix epoch representing the last time the balance changed in the system of record. */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Optional ID of user with dealer permission who initiated this customer transaction */\n InitiatorUser: JSON_User;\n\n /** RejectText */\n RejectText: string;\n\n /** Additional information relating to the transaction */\n Comments: string;\n\n /** Optional transaction hash provided by the dealer to track transfer */\n TxHash: string;\n\n /** additional routing information provided like WalletAddress, BankAddress etc. Printed if routing info provided alongside CustomerBalanceTransactionRequest is not recognized(TemplateID:4813) */\n RoutingInfo: ICustomerRoutingInfo;\n\n /** Additional comments supplied by the external user */\n ExternalComments: string;\n\n /** Optional list of transaction hashes */\n TxHashes: ICustomerBalanceTransaction4810TxHashes[];\n}\n\n/** Optional list of transaction hashes */\nexport interface ICustomerBalanceTransaction4810TxHashes {\n /** Blockchain transaction hash provided to track moving funds */\n TxHash: string;\n}\n\n/** Marks the start of a reference data snapshot */\nexport interface IReferenceDataSnapshotStart {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n}\n\n/** Customer balance transaction request holds information about customer initiated deposit or withdrawal */\nexport interface ICustomerBalanceTransactionRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer defined request ID */\n ClReqID: string;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the counterparty for this customer user */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Type of balance transaction */\n TransactionType: CustomerBalanceTransactionTypeEnum;\n\n /** Transaction quantity */\n Quantity: JSON_Decimal;\n\n /** Transaction currency */\n Currency: string;\n\n /** Balance transaction initiator */\n Initiator: BalanceTransactionInitiatorEnum;\n\n /** Internal time in number of nanoseconds since Unix epoch representing the last time the balance changed in the system of record. */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Optional ID of user with dealer permission who initiated this customer transaction */\n InitiatorUser: JSON_User;\n\n /** ID to related address record */\n AddressID: JSON_Int64ID;\n\n /** routing information provided by customer like WalletAddress, BankAddress etc. */\n RoutingInfo: ICustomerRoutingInfo;\n\n /** Additional information relating to the transaction */\n Comments: string;\n\n /** Additional comments supplied by the external user */\n ExternalComments: string;\n\n /** Optional list of transaction hashes */\n TxHashes: ICustomerBalanceTransactionRequest4811TxHashes[];\n}\n\n/** Optional list of transaction hashes */\nexport interface ICustomerBalanceTransactionRequest4811TxHashes {\n /** Blockchain transaction hash provided to track moving funds */\n TxHash: string;\n}\n\n/** Marks the end of a reference data snapshot */\nexport interface IReferenceDataSnapshotEnd {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n}\n\n/** ClientFIXConnection configures a FIX session */\nexport interface IClientFIXConnection {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique ID of this connection */\n ConnectionID: number;\n\n /** Canonical name for this connection */\n Name: string;\n\n /** User ID */\n User: JSON_User;\n\n /** Type of functionality supported by this connection */\n ConnectionType: Record;\n\n /** URL to connect or listen on, of the form fix://localhost:123 or fixs://:123 */\n URL: string;\n\n /** BeginString */\n BeginString: string;\n\n /** SenderCompID */\n SenderCompID: string;\n\n /** SenderSubID */\n SenderSubID: string;\n\n /** TargetCompID */\n TargetCompID: string;\n\n /** TargetSubID */\n TargetSubID: string;\n\n /** Time zone for this session; if specified, the session start and end will be converted from this zone to UTC */\n TimeZone: string;\n\n /** Time of day that this FIX session becomes activated in time in the format of HH:MM:SS */\n StartTime: string;\n\n /** Time of day that this FIX session becomes activated in time in the format of HH:MM:SS */\n EndTime: string;\n\n /** For week long sessions, the starting day of week for the session. Use in combination with StartTime. Full day of week in English, or 3 letter abbreviation (i.e. Monday and Mon are valid) */\n StartDay: string;\n\n /** For week long sessions, the ending day of week for the session. Use in combination with EndTime. Full day of week in English, or 3 letter abbreviation (i.e. Monday and Mon are valid) */\n EndDay: string;\n\n /** Bitmap to configure this session */\n Flags: Record;\n\n /** MarketAccountId bound to this session for DMA flow */\n MarketAccountID: number;\n\n /** MarketID bound to this session for DMA flow */\n MarketID: number;\n\n /** Revision */\n Revision: number;\n\n /** The service id responsible for the connection */\n ServiceID: number;\n}\n\n/** Risk constraint for limiting the size of customer orders */\nexport interface ICustomerMaxOrderSizeLimit {\n /** Max Order Size Limit ID */\n TradingLimitID: JSON_Int64ID;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Emit a warning when breaching this threshold */\n WarnThreshold: JSON_Decimal;\n\n /** Prevent submitting the order when breaching this threshold */\n RejectThreshold: JSON_Decimal;\n\n /** Currency for which this limit applies */\n ThresholdCurrency: string;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the counterparty that trading limit is referring to */\n Counterparty: JSON_Counterparty;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID */\n Currency: string;\n\n /** Revision of that customer trading limit */\n Revision: number;\n\n /** User who performed an update of that entity */\n UpdateUser: JSON_User;\n\n /** ID of the customer's market account that trading limit is referring to */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** A name to distinguish this limit from others */\n Description: string;\n}\n\n/** Marks the position of a reference data snapshot within the sequenced stream */\nexport interface IReferenceDataSnapshotPosition {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n}\n\n/** CustomerRoutingInfo holds information about provided crypto or fiat routing details */\nexport interface ICustomerRoutingInfo {\n /** crypto wallet address */\n WalletAddress: string;\n\n /** Optional memo attached to wallet address */\n Memo: string;\n\n /** Optional destination tag attached to wallet address */\n DestinationTag: string;\n}\n\n/** Reference data client snapshot, contains whether it has received or is still waiting for a ReferenceDataSnapshotPosition13004 */\nexport interface IReferenceDataClientSnapshot {\n /** True if a ReferenceDataSnapshotPosition13004 has been received */\n ReceivedSnapshot: BoolEnum;\n\n /** ID of the request */\n RequestID: JSON_Int64ID;\n}\n\n/** CustomerAddress holds information about active customer addresses for deposit and withdrawal */\nexport interface ICustomerAddress {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID generated by Talos for customer address */\n CustomerAddressID: JSON_Int64ID;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the counterparty for this customer user */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Customer address currency */\n Currency: string;\n\n /** Type of customer address. Either Deposit or Withdrawal */\n AddressType: CustomerAddressTypeEnum;\n\n /** Type of routing address. Either Fiat or Crypto */\n AddressRoutingType: AddressRoutingTypeEnum;\n\n /** Config Status */\n Mode: ModeEnum;\n\n /** Optional ID of user who last touched customer address record */\n UpdateUser: JSON_User;\n\n /** Status of customer address */\n Status: CustomerAddressStatusEnum;\n\n /** Revision */\n Revision: number;\n\n /** String64 */\n Name: string;\n\n /** routing information provided by customer like WalletAddress, BankAddress etc. */\n RoutingInfo: ICustomerRoutingInfo;\n}\n\n/** FIXSession records the beginning of a FIX session */\nexport interface IFIXSession {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this connection */\n ConnectionID: number;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n}\n\n/** EncryptedCustomerAddress holds encrypted customer address information */\nexport interface IEncryptedCustomerAddress {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID generated by Talos for customer address */\n CustomerAddressID: JSON_Int64ID;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** ID of the counterparty for this customer user */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_MarketAccount;\n\n /** Customer address currency */\n Currency: string;\n\n /** Type of customer address. Either Deposit or Withdrawal */\n AddressType: CustomerAddressTypeEnum;\n\n /** Type of routing address. Either Fiat or Crypto */\n AddressRoutingType: AddressRoutingTypeEnum;\n\n /** Config Status */\n Mode: ModeEnum;\n\n /** Optional ID of user who last touched customer address record */\n UpdateUser: JSON_User;\n\n /** Status of customer address */\n Status: CustomerAddressStatusEnum;\n\n /** Revision */\n Revision: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** String64 */\n Name: string;\n\n /** Encrypting key ID */\n EncryptingKeyID: string;\n\n /** Encrypted content */\n Content: string;\n\n /** Routing info hash. Used for comparison identity of routing address without decrypting */\n RoutingInfoHash: string;\n}\n\n/** FIXSequence records sequence numbers */\nexport interface IFIXSequence {\n /** Direction */\n Direction: MessageDirectionEnum;\n\n /** Last sent message */\n MessageID: IMessageID;\n}\n\n/** WSSession records the beginning of a WS session */\nexport interface IWSSession {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** URL that the client connected to */\n LocalURL: string;\n\n /** URL that the client connected from */\n RemoteURL: string;\n}\n\n/** SessionReset records the end of a session */\nexport interface ISessionReset {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n}\n\n/** CustomerFIXConnection configures a FIX session */\nexport interface ICustomerFIXConnection {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique ID of this connection */\n ConnectionID: number;\n\n /** Canonical name for this connection */\n Name: string;\n\n /** Customer User ID */\n CustomerUser: JSON_CustomerUser;\n\n /** Type of functionality supported by this connection */\n ConnectionType: Record;\n\n /** URL to connect or listen on, of the form fix://localhost:123 or fixs://:123 */\n URL: string;\n\n /** BeginString */\n BeginString: string;\n\n /** SenderCompID */\n SenderCompID: string;\n\n /** SenderSubID */\n SenderSubID: string;\n\n /** TargetCompID */\n TargetCompID: string;\n\n /** TargetSubID */\n TargetSubID: string;\n\n /** Time zone for this session; if specified, the session start and end will be converted from this zone to UTC */\n TimeZone: string;\n\n /** Time of day that this FIX session becomes activated in time in the format of HH:MM:SS */\n StartTime: string;\n\n /** Time of day that this FIX session becomes activated in time in the format of HH:MM:SS */\n EndTime: string;\n\n /** For week long sessions, the starting day of week for the session. Use in combination with StartTime. Full day of week in English, or 3 letter abbreviation (i.e. Monday and Mon are valid) */\n StartDay: string;\n\n /** For week long sessions, the ending day of week for the session. Use in combination with EndTime. Full day of week in English, or 3 letter abbreviation (i.e. Monday and Mon are valid) */\n EndDay: string;\n\n /** Bitmap to configure this session */\n Flags: Record;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Revision */\n Revision: number;\n\n /** The service id responsible for the connection */\n ServiceID: number;\n}\n\n/** Records sessions details */\nexport interface ISessionDetails {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** The source of the session, e.g. Websocket, REST, FIX. */\n Source: SessionSourceEnum;\n\n /** LocalAddress */\n LocalAddress: string;\n\n /** RemoteAddress */\n RemoteAddress: string;\n}\n\n/** Lookup or create a custom instrument */\nexport interface ICustomInstrumentRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Request type */\n RequestType: CustomInstrumentRequestTypeEnum;\n\n /** Canonical symbol (only for multileg instruments) */\n Symbol: string;\n\n /** Product (only for the multileg instruments) */\n ProductType: ProductTypeEnum;\n\n /** Synthetic Product Type if ProductType is Synthetic */\n SyntheticProductType: SyntheticProductTypeEnum;\n\n /** Requested fee mode for output market data (only for multileg instruments) */\n FeeMode: FeeModeEnum;\n\n /** Display symbol (only for multileg instruments) */\n DisplaySymbol: string;\n\n /** Requested price increment (only for multileg instruments) */\n MinPriceIncrement: JSON_Decimal;\n\n /** requested size increment (only for multileg instruments) */\n MinSizeIncrement: JSON_Decimal;\n\n /** OID for this request */\n RequestID: JSON_Int64ID;\n\n /** Market ID (only for options) */\n Market: JSON_Market;\n\n /** Base currency ID (only for options) */\n BaseCurrency: string;\n\n /** Quote currency ID (only for options) */\n QuoteCurrency: string;\n\n /** Expiration (only for options) */\n Expiration: JSON_UTCTimestamp;\n\n /** Strike price (only for options) */\n StrikePrice: JSON_Decimal;\n\n /** Option type (only for options) */\n OptionType: OptionTypeEnum;\n\n /** Contract size (only for options) */\n ContractSize: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Max number of market data levels to process for the symbol */\n MaxMarketDataDepth: number;\n\n /** parent parameters */\n Parameters: IMultilegParameters;\n\n /** Description of the security (only for multileg instruments) */\n Description: string;\n\n /** The legs to use on the multileg instrument */\n ReqLegs: ICustomInstrumentRequest12000ReqLegs[];\n}\n\n/** Markets to be used for this leg */\nexport interface IReqLegsMarkets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** The legs to use on the multileg instrument */\nexport interface ICustomInstrumentRequest12000ReqLegs {\n /** Security/Instrument ID */\n Symbol: JSON_Security;\n\n /** Direction this leg will trade compared to the parent order side (Same, Opposite) */\n Direction: LegDirectionEnum;\n\n /** Leg category */\n Category: string;\n\n /** Markets to be used for this leg */\n Markets: IReqLegsMarkets[];\n}\n\n/** Contain parameters for a synthetic multileg instrument */\nexport interface IMultilegParameters {\n /** The legs to use on the multileg instrument */\n LegParams: IMultilegParameters12001LegParams[];\n}\n\n/** The legs to use on the multileg instrument */\nexport interface IMultilegParameters12001LegParams {\n /** Cap on the number of levels to rest on a leg */\n MaxRestingLevels: number;\n\n /** Whether the leg is allowed to send crossing orders */\n CrossingAllowed: BoolEnum;\n\n /** Whether the leg is allowed to send crossing and/or resting orders, as requested by the order strategy */\n Initiating: BoolEnum;\n}\n\n/** The response of a CustomInstrumentRequest */\nexport interface ICustomInstrumentRequestResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Status of the request */\n Status: CustomInstrumentRequestStatusEnum;\n\n /** OID for this request */\n RequestID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Error reason */\n Text: string;\n}\n\n/** Custom Securities snapshot request */\nexport interface IDeprecatedCustomInstrumentSnapshotRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n}\n\n/** Custom Securities snapshot */\nexport interface IDeprecatedCustomInstrumentSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Status of the CustomInstrumentSnapshot */\n Status: DeprecatedCustomInstrumentSnapshotRequestStatusEnum;\n\n /** The error message that occurred */\n Text: string;\n}\n\n/** Request to delete a multileg synthetic instrument */\nexport interface ICustomInstrumentDeleteRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security/Instrument ID */\n SecurityID: number;\n\n /** Type of deletion */\n DeleteOperation: DeleteOperationEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Rule for configuring the hedge behavior */\nexport interface IHedgeRule {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique Identifier Generated for HedgeRule */\n HedgeRuleID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of Position Status */\n Revision: number;\n\n /** User who update that price mark */\n UpdateUser: JSON_User;\n\n /** Flag to enable or disable this rule */\n Mode: ModeEnum;\n\n /** Rule evaluation priority, lower value is higher priority */\n Priority: number;\n\n /** Account ID for the tracked hedge position */\n AccountID: number;\n\n /** Asset ID for the tracked hedge position */\n Asset: string;\n\n /** Asset for which the hedger compares the threshold positions */\n TargetAsset: string;\n\n /** Target Position to Maintain */\n TargetPosition: JSON_Decimal;\n\n /** Long Threshold to Begin Hedging Toward Target */\n LongPositionLimit: JSON_Decimal;\n\n /** Short Threshold to Begin Hedging Toward Target */\n ShortPositionLimit: JSON_Decimal;\n\n /** Hedge Order Target Account ID - Should close the position */\n TargetAccountID: number;\n\n /** Selected Execution Strategy for Hedge Order Execution */\n HedgeStrategy: JSON_Strategy;\n\n /** AggregationID to send on the Hedge Order for this Rule */\n HedgeAggregation: JSON_Aggregation;\n\n /** Hedge Security to override computed HedgeSecurity */\n HedgeSymbol: JSON_Security;\n}\n\n/** Response to a request to delete a multileg synthetic security */\nexport interface ICustomInstrumentDeleteRequestResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Status of the request */\n Status: CustomInstrumentDeleteRequestStatusEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Error reason */\n Text: string;\n}\n\n/** Request to change a multileg synthetic instrument */\nexport interface ICustomInstrumentUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** OID for this request */\n RequestID: JSON_Int64ID;\n\n /** Security/Instrument ID */\n SecurityID: number;\n\n /** Canonical symbol (only for multileg instruments or options) */\n Symbol: string;\n\n /** Requested fee mode for output market data (only for multileg instruments) */\n FeeMode: FeeModeEnum;\n\n /** Requested price increment (only for multileg instruments or options) */\n MinPriceIncrement: JSON_Decimal;\n\n /** requested size increment (only for multileg instruments or options) */\n MinSizeIncrement: JSON_Decimal;\n\n /** Canonical size increment (only for options) */\n MinimumSize: JSON_Decimal;\n\n /** Canonical size increment (only for options) */\n MaximumSize: JSON_Decimal;\n\n /** Default price increment (Display Field) (only for options) */\n DefaultPriceIncrement: JSON_Decimal;\n\n /** Default size increment (Display Field) (only for options) */\n DefaultSizeIncrement: JSON_Decimal;\n\n /** Display spec for prices (Display Field) (only for options) */\n PriceDisplaySpec: string;\n\n /** Display spec for sizes (Display Field) (only for options) */\n SizeDisplaySpec: string;\n\n /** Normal size for display (Display Field) (only for options) */\n NormalSize: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Max number of market data levels to process for the symbol */\n MaxMarketDataDepth: number;\n\n /** parent parameters */\n Parameters: IMultilegParameters;\n\n /** Description of the security (only for multileg instruments or options) */\n Description: string;\n\n /** Display symbol (only for multileg instruments or options) */\n DisplaySymbol: string;\n\n /** The legs to use on the multileg instrument */\n UpdateReqLegs: ICustomInstrumentUpdateRequest12007UpdateReqLegs[];\n\n /** Default list of size buckets (Display Field) */\n SizeBuckets: ICustomInstrumentUpdateRequest12007SizeBuckets[];\n}\n\n/** Markets to be used for this leg */\nexport interface IUpdateReqLegsMarkets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Default list of size buckets (Display Field) */\nexport interface ICustomInstrumentUpdateRequest12007SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** The legs to use on the multileg instrument */\nexport interface ICustomInstrumentUpdateRequest12007UpdateReqLegs {\n /** Security/Instrument ID, cannot differ from the existing security for this leg index */\n Symbol: JSON_Security;\n\n /** Leg category */\n Category: string;\n\n /** Markets to be used for this leg */\n Markets: IUpdateReqLegsMarkets[];\n}\n\n/** Response to a request to update a multileg synthetic security */\nexport interface ICustomInstrumentUpdateResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** OID for this request */\n RequestID: JSON_Int64ID;\n\n /** Security/Instrument ID */\n Symbol: JSON_Security;\n\n /** Status of the request */\n Status: CustomInstrumentRequestStatusEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Error reason */\n Text: string;\n}\n\n/** Contain parameters for child markets */\nexport interface IMarketParameters {\n /** List of market parameters */\n MarketParams: IMarketParameters12009MarketParams[];\n}\n\n/** List of market parameters */\nexport interface IMarketParameters12009MarketParams {\n /** Property */\n Property: MarketParameterPropertyEnum;\n\n /** Property value as a string */\n Value: string;\n}\n\n/** Tracks the current status of a hedge control */\nexport interface IHedgePositionStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Identifier for the Hedge Rule that created this Hedge Control */\n HedgeRuleID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision of Position Status */\n Revision: number;\n\n /** Account ID for the tracked hedge position */\n AccountID: number;\n\n /** Asset ID for the tracked hedge position */\n Asset: string;\n\n /** Asset for which the hedger compares the threshold positions */\n TargetAsset: string;\n\n /** Target Position to Maintain */\n TargetPosition: JSON_Decimal;\n\n /** Current Computed Asset Position (native asset) */\n CurrentAssetPosition: JSON_Decimal;\n\n /** Current Computed Position (converted asset) */\n CurrentPosition: JSON_Decimal;\n\n /** Long Threshold to Begin Hedging Toward Target */\n LongPositionLimit: JSON_Decimal;\n\n /** Last Long Asset Delta Since the Previous Status */\n LastLongAssetPositionDelta: JSON_Decimal;\n\n /** Last Long Position Delta (converted asset) Since the Previous Status */\n LastLongPositionDelta: JSON_Decimal;\n\n /** Reason for Last Long Position Delta */\n LongDeltaAttribution: HedgeDeltaAttributionEnum;\n\n /** Short Threshold to Begin Hedging Toward Target */\n ShortPositionLimit: JSON_Decimal;\n\n /** Last Short Asset Delta Since the Previous Status */\n LastShortAssetPositionDelta: JSON_Decimal;\n\n /** Last Short Position Delta (converted asset) Since the Previous Status */\n LastShortPositionDelta: JSON_Decimal;\n\n /** Reason for Last Short Position Delta */\n ShortDeltaAttribution: HedgeDeltaAttributionEnum;\n\n /** Status for this Hedge Control */\n HedgeControlStatus: HedgeControlStatusEnum;\n\n /** Last Decision Made for this Hedge Control */\n HedgeDecision: HedgeDecisionEnum;\n\n /** Last Action Taken by this Hedge Control */\n HedgeAction: HedgeActionEnum;\n\n /** Active Hedge Order ID if it Exists */\n HedgeOrderID: string;\n\n /** Hedge Security submitted on Hedge Order */\n HedgeSymbol: JSON_Security;\n\n /** Classification of HedgeControl associated with this report */\n HedgeControlType: HedgeControlTypeEnum;\n\n /** Unique identifier for the hedge control */\n HedgeControlID: JSON_Int64ID;\n\n /** JSON Data representation of Hedge Decision Data */\n HedgeDecisionData: number;\n\n /** HedgeControl Error Text */\n Text: string;\n}\n\n/** Snapshot state of a given Hedge Control */\nexport interface IHedgeControl {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Identifier for the Hedge Rule that created this Hedge Control */\n HedgeRuleID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision of Position Status */\n Revision: number;\n\n /** Account ID for the tracked hedge position */\n AccountID: number;\n\n /** Asset ID for the tracked hedge position */\n Asset: string;\n\n /** The Last Time a Hedge Decision was Applied to the Control */\n LastApplicationTime: JSON_UTCTimestamp;\n\n /** Unique identifier for the hedge control */\n HedgeControlID: JSON_Int64ID;\n\n /** OrderID of the initiating order to be hedged for order hedge controls */\n InitiatingOrderID: string;\n\n /** Classification of HedgeControl */\n HedgeControlType: HedgeControlTypeEnum;\n\n /** Current Computed Hedge Security on the Hedge Control */\n HedgeSymbol: JSON_Security;\n\n /** Boolean indicator whether the Hedge Security needs to be inverted */\n HedgeSecurityInverted: BoolEnum;\n\n /** JSON representation of the current Hedge Rule State for this Control */\n HedgeRule: number;\n\n /** JSON representation of the Last Position Status published for this Control */\n LastPositionStatus: number;\n\n /** JSON representation of the Active Order Associated with this Control if one exists */\n ActiveOrder: number;\n\n /** JSON representation of the Active Order Associated with this Control if one exists */\n InitiatingOrder: number;\n\n /** JSON representation of the Last Order Status published for this Control when ControlType is Order */\n LastOrderStatus: number;\n\n /** JSON representation of OrderControlState */\n OrderControlState: number;\n}\n\n/** Snapshot message */\nexport interface ISnapshotMessage {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The snapshot ID this message belongs to */\n SnapshotID: number;\n\n /** The sequence number of this message within the snapshot */\n SequenceNumber: number;\n\n /** The service ID the snapshot belongs to */\n ServiceID: number;\n\n /** The partition ID the snapshot belongs to */\n PartitionID: number;\n\n /** The template ID of the message contents */\n TemplateID: number;\n\n /** The timestamp of the message */\n MessageTimestamp: JSON_UTCTimestamp;\n\n /** The message contents in JSON */\n Message: string;\n}\n\n/** Hedge status of an order */\nexport interface IHedgeOrderStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Org ID */\n OrgID: number;\n\n /** Revision of hedge order status */\n Revision: number;\n\n /** OrderID of the initiating order to be hedged */\n InitiatingOrderID: string;\n\n /** Status for this Hedge Control */\n HedgeControlStatus: HedgeControlStatusEnum;\n\n /** Last Decision Made for this Hedge Control */\n HedgeDecision: HedgeDecisionEnum;\n\n /** Security ID */\n HedgeSymbol: JSON_Security;\n\n /** Security ID */\n OrderSymbol: JSON_Security;\n\n /** Side */\n HedgeSide: SideEnum;\n\n /** Hedge strategy */\n HedgeStrategy: JSON_Strategy;\n\n /** OrderID of the current active hedge order */\n ActiveHedgeOrderID: string;\n\n /** Unhedged qty */\n UnhedgedQty: JSON_Decimal;\n\n /** Cum hedge qty */\n CumHedgeQty: JSON_Decimal;\n\n /** Cum hedge amt */\n CumHedgeAmt: JSON_Decimal;\n\n /** Average price paid to hedge */\n AvgHedgePx: JSON_Decimal;\n\n /** Average price paid to hedge fee inclusive */\n AvgHedgePxAllIn: JSON_Decimal;\n\n /** Total fees paid to hedge */\n CumHedgeFee: JSON_Decimal;\n\n /** Currency ID for fees */\n FeeCurrency: string;\n\n /** Currency ID for hedge quantity */\n Currency: string;\n\n /** Currency ID for hedge amount */\n AmountCurrency: string;\n\n /** Last delta we've received on a initiating trade */\n LastDelta: JSON_Decimal;\n\n /** Number of hedge orders sent */\n NumHedgeOrders: number;\n\n /** Hedging params */\n HedgeStrategyParams: IStrategyParameters;\n\n /** JSON Data representation of Hedge Decision Data */\n HedgeDecisionData: number;\n\n /** Provides additional info about the hedge order status e.g in case there is an error */\n Text: string;\n}\n\n/** Snapshot ID message */\nexport interface ISnapshotID {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The service ID the snapshot belongs to */\n ServiceID: number;\n\n /** The partition ID the snapshot belongs to */\n PartitionID: number;\n\n /** The snapshot ID */\n SnapshotID: number;\n\n /** The name of the process that wrote this snapshot. FOR READABILITY PURPOSES ONLY. DO NOT USE IN CODE. */\n Process: string;\n}\n\n/** Max snapshot ID */\nexport interface IMaxSnapshotID {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** DB table key. Always 0. */\n Key: number;\n\n /** The current maximum snapshot ID */\n MaxSnapshotID: number;\n}\n\n/** Hedger status */\nexport interface IHedgerStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Org ID */\n OrgID: number;\n\n /** Unique ID of this session - absent if generated by websocket */\n SessionID: JSON_Int64ID;\n\n /** Order hedging status */\n OrderHedgingStatus: HedgingStatusEnum;\n\n /** Position hedging status */\n PositionHedgingStatus: HedgingStatusEnum;\n}\n\n/** order annotations that complement OMSExecutionReport4203 */\nexport interface IOrderAnnotation {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Org ID */\n OrgID: number;\n\n /** Order ID */\n OrderID: string;\n\n /** Revision of order annotation */\n Revision: number;\n\n /** Most recent order execution report when annotation is modified */\n ExecutionReportRevision: number;\n\n /** Order status when it's completed */\n ArchivedStatus: ArchivedStatusEnum;\n\n /** User ID */\n User: JSON_User;\n}\n\n/** Common trade sizes seen for a particular security */\nexport interface ITradeSize {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Trade sizes and their weights for securities */\n Sizes: ITradeSize4850Sizes[];\n}\n\n/** Trade sizes and their weights for securities */\nexport interface ITradeSize4850Sizes {\n /** Trade size */\n Size: JSON_Decimal;\n\n /** Weight of trade size */\n Weight: JSON_Decimal;\n}\n\n/** MarketSecurityOrg is information sourced by the gateways for a market/marketaccount and can be used by the rest of the system */\nexport interface IMarketSecurityOrg {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Market Account ID */\n MarketAccountID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Whether this security is enabled */\n Enabled: BoolEnum;\n\n /** Type of functionality supported by this market security */\n Capabilities: Record;\n\n /** Min market price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Min market size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Min market size */\n MinimumSize: JSON_Decimal;\n\n /** Max market size */\n MaximumSize: JSON_Decimal;\n\n /** Minimum amount required to place an order */\n MinimumAmount: JSON_Decimal;\n\n /** Min amount increment */\n MinAmountIncrement: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Default list of size buckets (Display Field) */\n SizeBuckets: IMarketSecurityOrg11000SizeBuckets[];\n}\n\n/** Default list of size buckets (Display Field) */\nexport interface IMarketSecurityOrg11000SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** MarketSecurityStatus records if a security is enabled for this market/marketaccountid */\nexport interface IMarketSecurityStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Market Account ID */\n MarketAccount: JSON_MarketAccount;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Type of functionality supported by this connection */\n ConnectionType: Record;\n\n /** Overall status */\n Status: ConnectionStatusEnum;\n\n /** Min price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Min size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Minimum size */\n MinimumSize: JSON_Decimal;\n\n /** Maximum size */\n MaximumSize: JSON_Decimal;\n\n /** Type of functionality supported by this market security */\n Capabilities: Record;\n\n /** Minimum amount required to place an order */\n MinimumAmount: JSON_Decimal;\n\n /** Whether this security is enabled according to the market */\n MarketEnabled: ConnectionModeEnum;\n\n /** Market min price increment */\n MarketMinPriceIncrement: JSON_Decimal;\n\n /** Market min size increment */\n MarketMinSizeIncrement: JSON_Decimal;\n\n /** Market minimum size */\n MarketMinimumSize: JSON_Decimal;\n\n /** Market maximum size */\n MarketMaximumSize: JSON_Decimal;\n\n /** Market Minimum amount required to place an order */\n MarketMinimumAmount: JSON_Decimal;\n\n /** Type of functionality supported by this market security */\n MarketCapabilities: Record;\n\n /** The requested connection mode (Up / Down) */\n RequestedEnabled: ConnectionModeEnum;\n\n /** Requested min price increment */\n RequestedMinPriceIncrement: JSON_Decimal;\n\n /** Requested max size increment */\n RequestedMinSizeIncrement: JSON_Decimal;\n\n /** Requested minimum size */\n RequestedMinimumSize: JSON_Decimal;\n\n /** Requested maximum size */\n RequestedMaximumSize: JSON_Decimal;\n\n /** Requested Minimum amount required to place an order */\n RequestedMinimumAmount: JSON_Decimal;\n\n /** Type of functionality supported by this market security */\n RequestedCapabilities: Record;\n\n /** Whether this security is enabled as a result of market or user overrides */\n Enabled: ConnectionModeEnum;\n\n /** Min amount increment */\n MinAmountIncrement: JSON_Decimal;\n\n /** Market min amount increment */\n MarketMinAmountIncrement: JSON_Decimal;\n\n /** Requested min amount increment */\n RequestedMinAmountIncrement: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Active list of size buckets (Display Field) */\n SizeBuckets: IMarketSecurityStatus11001SizeBuckets[];\n\n /** Active list of size buckets (Display Field) */\n MarketSizeBuckets: IMarketSecurityStatus11001MarketSizeBuckets[];\n\n /** Active list of size buckets (Display Field) */\n RequestedSizeBuckets: IMarketSecurityStatus11001RequestedSizeBuckets[];\n}\n\n/** Active list of size buckets (Display Field) */\nexport interface IMarketSecurityStatus11001MarketSizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** Active list of size buckets (Display Field) */\nexport interface IMarketSecurityStatus11001RequestedSizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** Active list of size buckets (Display Field) */\nexport interface IMarketSecurityStatus11001SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** Tracks the current status of a service within the org */\nexport interface IServiceStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique identifier for the service */\n ServiceID: number;\n\n /** Current Status of the service */\n ServiceStatus: ServiceStatusEnum;\n}\n\n/** MarketSecurityStatusRequest is sent by the receiving models to all gateways to signal to them to send their full models */\nexport interface IMarketSecurityStatusRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n}\n\n/** User supplied command to take action at the hedger */\nexport interface IHedgeCommand {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Identifier for the Hedge Rule that created this Hedge Control */\n HedgeRuleID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique client supplied identifier for this hedge command */\n HedgeCommandID: string;\n\n /** Account ID for the tracked hedge position */\n AccountID: number;\n\n /** Asset ID for the tracked hedge position */\n Asset: string;\n\n /** Command to take action on at this scope */\n Command: HedgeCommandEnum;\n\n /** Classification of HedgeControl */\n HedgeControlType: HedgeControlTypeEnum;\n}\n\n/** Response to Command for acknowledging the action taken */\nexport interface IHedgeCommandResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique client supplied identifier for this hedge command */\n HedgeCommandID: string;\n\n /** Command that this is in response to */\n Command: HedgeCommandEnum;\n\n /** Status of this command */\n Status: HedgeCommandStatusEnum;\n\n /** Optional Error Text to Report Back */\n Error: string;\n}\n\n/** Order strategy */\nexport interface IStrategy {\n /** ID of the strategy */\n Strategy: JSON_Strategy;\n\n /** Strategy name */\n Name: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Strategy group */\n Group: string;\n\n /** Strategy type */\n AlgoType: AlgoTypeEnum;\n\n /** Indicates what securities a strategy supports */\n InstrumentScope: string;\n\n /** Revision */\n Revision: number;\n\n /** Scope in which this strategy can be used */\n StrategyScope: StrategyScopeEnum;\n\n /** Strategy description */\n Description: string;\n\n /** Strategy display name */\n DisplayName: string;\n\n /** Strategy metadata */\n Metadata: string;\n\n /** Parameters of the strategy */\n Parameters: IStrategy4860Parameters[];\n}\n\n/** When Type=Enum, this list will contain the allowed values */\nexport interface IParametersEnumValues {\n /** The index of the value within the set, which can be used both for sorting and an identifier */\n Index: number;\n\n /** Short name for this enum value */\n Name: string;\n\n /** Parameter description */\n Description: string;\n}\n\n/** Parameters of the strategy */\nexport interface IStrategy4860Parameters {\n /** ID of the strategy parameter */\n ParameterID: number;\n\n /** Parameter name */\n Name: string;\n\n /** Parameter type */\n Type: string;\n\n /** Whether param is optional, required etc */\n Presence: PresenceEnum;\n\n /** Parameter description */\n Description: string;\n\n /** Parameter display name */\n DisplayName: string;\n\n /** Parameter default value */\n DefaultValue: string;\n\n /** Parameter metadata */\n Metadata: string;\n\n /** When Type=Enum, this list will contain the allowed values */\n EnumValues: IParametersEnumValues[];\n}\n\n/** Snapshot message for HedgerLedger aggregate state */\nexport interface IHedgerLedgerStatus {\n /** Current Status of HedgerLedger */\n HedgerLedgerStatus: HedgerLedgerStatusEnum;\n\n /** Identifier of in-progress Data Snapshot request */\n DataSnapshotRequestID: JSON_Int64ID;\n\n /** Timestamp of last recon timer */\n LastReconTime: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** List of outstanding Rollup IDs to Recalculate */\n RollupsToRecalc: IHedgerLedgerStatus5373RollupsToRecalc[];\n}\n\n/** List of outstanding Rollup IDs to Recalculate */\nexport interface IHedgerLedgerStatus5373RollupsToRecalc {\n /** Rollup Account ID waiting to Recalc */\n RollupAccountID: number;\n}\n\n/** Snapshot message for HedgerLedger PositionDeltas */\nexport interface IHedgerLedgerPositionDelta {\n /** Account ID for the position delta */\n AccountID: number;\n\n /** Asset ID for the position delta */\n Asset: string;\n\n /** Current Short Position Delta */\n ShortPositionDelta: JSON_Decimal;\n\n /** Current Short Position Delta */\n LongPositionDelta: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Snapshot message for hydrating hedger ledger positionStatus and reconBreaks */\nexport interface IHedgerLedgerPositionStatus {\n /** Account ID hedge position status */\n AccountID: number;\n\n /** Asset ID hedge position status */\n Asset: string;\n\n /** Current Status of Position */\n Status: HedgerLedgerStatusEnum;\n\n /** Recon break delta if in status ReconBreak */\n ReconBreak: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** An empty message designed to ensure there are frequent-enough messages being sequenced */\nexport interface ITimerMessage {\n /** Interval in milliseconds timer messages are generated */\n IntervalMs: number;\n}\n\n/** Command generated by publisher for esign service to prepare and send document to all recipients. */\nexport interface IESignCreateAndSend {\n /** ID of the esign gateway service where the document should be sent from. */\n ESignGateway: JSON_ESignGateway;\n\n /** ID, generated by publisher, to be assigned to the document being created/sent. */\n DocumentID: JSON_Int64ID;\n\n /** Esign platform identifier of the document template (e.g. DocuSign template ID). */\n ESignTemplateID: string;\n\n /** User friendly name for the document. */\n DocumentDisplayName: string;\n\n /** Recipients of the document. */\n Recipients: IESignCreateAndSend11010Recipients[];\n\n /** All the tab labels required for this document. */\n Tabs: IESignCreateAndSend11010Tabs[];\n}\n\n/** Recipients of the document. */\nexport interface IESignCreateAndSend11010Recipients {\n /** Name of recipient to be used at the esign venue. Not necessarily an individual. */\n LegalName: string;\n\n /** Delivery identifier used by esign platforms for the recipient (e.g. email address). */\n DeliveryID: string;\n\n /** ESign platform role name associated with the recipient. */\n Role: string;\n}\n\n/** All the tab labels required for this document. */\nexport interface IESignCreateAndSend11010Tabs {\n /** Tab label name. */\n Label: string;\n\n /** Tab label value. */\n Value: string;\n}\n\n/** ESign gateway update events for a document. */\nexport interface IESignGatewayEvent {\n /** Timestamp of when this event was generated by the document gateway service. */\n Timestamp: JSON_UTCTimestamp;\n\n /** Timestamp of when the event was generate at esign platform. */\n RemoteTimestamp: JSON_UTCTimestamp;\n\n /** Unique identifier of the document assigned during creation. */\n DocumentID: JSON_Int64ID;\n\n /** Events published by esign gateway (e.g. created, signed, completed). */\n EventType: ESignGatewayEventTypeEnum;\n\n /** Delivery identifier used by esign platforms for the recipient (e.g. email address). */\n RecipientDeliveryID: string;\n\n /** Additional details for the event (e.g. cancellation reason). */\n Text: string;\n\n /** Identifier generated by eSign platform to uniquely identify this document. */\n RemoteDocumentID: string;\n}\n\n/** Cumulative status update for a document.(ResourceName:ESignStatus DatabaseName:esign_statuses Key:DocumentID TimestampField:Timestamp AeronCols:true ConstantGroupLength:true PrimaryKey:Generated DBType:LoanDB)(ResourceName:ESignStatusHistory DatabaseName:esign_status_history Key:DocumentID,Revision TimestampField:Timestamp AeronCols:true ConstantGroupLength:true PrimaryKey:Generated DBType:LoanDB) */\nexport interface IESignStatus {\n /** Timestamp of when this event was generated by the document service. */\n Timestamp: JSON_UTCTimestamp;\n\n /** An increasing sequence number for this DocumentID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** Unique identifier of the document assigned during creation. */\n DocumentID: JSON_Int64ID;\n\n /** Esign platform identifier of template (e.g. DocuSign template ID) used to generate document. */\n ESignTemplateID: string;\n\n /** Latest state of the document (e.g. created, signed, completed) for this recipient. */\n DocumentStatus: ESignStatusEnum;\n\n /** Additional details for the event (e.g. cancellation reason). */\n Text: string;\n\n /** User friendly name for the document. */\n DocumentDisplayName: string;\n\n /** Identifier generated by eSign platform to uniquely identify this document. */\n RemoteDocumentID: string;\n\n /** States of all the recipients of this document. */\n Recipients: IESignStatus11012Recipients[];\n\n /** All the tab labels used to create this document. */\n RequestedTabs: IESignStatus11012RequestedTabs[];\n}\n\n/** States of all the recipients of this document. */\nexport interface IESignStatus11012Recipients {\n /** Remote timestamp, from ESign platform, when this entry was last updated. */\n Timestamp: JSON_UTCTimestamp;\n\n /** Latest recipient status (e.g. PendingSignature, Signed, Rejected). */\n Status: ESignRecipientStatusEnum;\n\n /** Name of recipient to be used at the esign venue. Not necessarily an individual. */\n LegalName: string;\n\n /** Delivery identifier used by esign platforms for the recipient (e.g. email address). */\n DeliveryID: string;\n\n /** ESign platform role name associated with the recipient. */\n Role: string;\n}\n\n/** All the tab labels used to create this document. */\nexport interface IESignStatus11012RequestedTabs {\n /** Tab label name. */\n Label: string;\n\n /** Tab label value. */\n Value: string;\n}\n\n/** Command generated by esign service for esign gateway to prepare and send document to all recipients. */\nexport interface IESignGatewayCreateAndSend {\n /** ID of the esign gateway service where this message should be processed. */\n ESignGateway: JSON_ESignGateway;\n\n /** ID, generated by publisher, to be assigned to the document being created/sent. */\n DocumentID: JSON_Int64ID;\n\n /** ESign platform identifier of the document template (e.g. DocuSign template ID). */\n ESignTemplateID: string;\n\n /** User friendly name for the document. */\n DocumentDisplayName: string;\n\n /** Recipients of the document. */\n Recipients: IESignGatewayCreateAndSend11013Recipients[];\n\n /** All the tab labels required for this document. */\n Tabs: IESignGatewayCreateAndSend11013Tabs[];\n}\n\n/** Recipients of the document. */\nexport interface IESignGatewayCreateAndSend11013Recipients {\n /** Name of recipient to be used at the esign venue. Not necessarily an individual. */\n LegalName: string;\n\n /** Delivery identifier used by esign platforms for the recipient (e.g. email address). */\n DeliveryID: string;\n\n /** ESign platform role name associated with the recipient. */\n Role: string;\n}\n\n/** All the tab labels required for this document. */\nexport interface IESignGatewayCreateAndSend11013Tabs {\n /** Tab label name. */\n Label: string;\n\n /** Tab label value. */\n Value: string;\n}\n\n/** The configuration of enum values for strategy parameters, which can optionally change internal settings */\nexport interface IStrategyParameterEnum {\n /** ID of the strategy parameter */\n ParameterID: number;\n\n /** The index of the value within the set, which can be used both for sorting and an identifier. Zero is the null value of Enums inside Strategy Parameters, so these should start at 1. */\n Index: number;\n\n /** Short name for this enum value */\n Name: string;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Revision */\n Revision: number;\n\n /** Parameter description */\n Description: string;\n\n /** Internal algo settings modified by selecting this enum value, if any */\n Settings: IStrategyParameterEnum4870Settings[];\n}\n\n/** Internal algo settings modified by selecting this enum value, if any */\nexport interface IStrategyParameterEnum4870Settings {\n /** An internal setting to be set for this effect */\n Setting: StrategyParameterSettingEnum;\n\n /** Value of the internal setting represented as a string */\n Value: string;\n\n /** If non-zero represents an override of the setting for that Security ID */\n Symbol: JSON_Security;\n\n /** Override for the setting */\n Override: string;\n}\n\n/** Whitelist for unused enums to be generated */\nexport interface IWhitelist {\n /** Lookback */\n Lookback: PnlLookbackEnum;\n\n /** OnPlatformAnalyticsTier */\n OnPlatformAnalyticsTier: OnPlatformAnalyticsTierEnum;\n\n /** SubAccountSMPCheckType */\n SubAccountSMPCheckType: SubAccountSMPCheckTypeEnum;\n\n /** SubAccountTradeRoutingMode */\n SubAccountTradeRoutingMode: SubAccountTradeRoutingModeEnum;\n}\n\n/** Different statistics per security and per market */\nexport interface ISecurityStats {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Average top of book bid size */\n AvgBidSize: JSON_Decimal;\n\n /** Average top of book ask size */\n AvgAskSize: JSON_Decimal;\n\n /** Average daily volume */\n AvgDailyVolume: JSON_Decimal;\n\n /** Revision */\n Revision: number;\n\n /** Average bid size on level (JSON list of Dec). */\n AvgBidSizeOnLevel: ISecurityStats4880AvgBidSizeOnLevel[];\n\n /** Average ask size on level (JSON list of Dec). */\n AvgAskSizeOnLevel: ISecurityStats4880AvgAskSizeOnLevel[];\n}\n\n/** Average ask size on level (JSON list of Dec). */\nexport interface ISecurityStats4880AvgAskSizeOnLevel {\n /** Average ask size on level */\n Size: JSON_Decimal;\n}\n\n/** Average bid size on level (JSON list of Dec). */\nexport interface ISecurityStats4880AvgBidSizeOnLevel {\n /** Average bid size on level */\n Size: JSON_Decimal;\n}\n\n/** Configured fee snapshot request from EXCHANGE or OVERRIDE */\nexport interface IFeeConfigSnapshotRequest {\n /** Request correlation ID */\n RequestID: JSON_Int64ID;\n\n /** Source of the fee event, i.e. EXCHANGE/OVERRIDE */\n Source: FeeSourceEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Fee request */\nexport interface IFeeSnapshotRequest {\n /** Request correlation ID */\n RequestID: JSON_Int64ID;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Get market fee rates response */\nexport interface IFeeEvent {\n /** Request correlation ID */\n RequestID: JSON_Int64ID;\n\n /** MarketID for this fee */\n Market: JSON_Market;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Maker fee rate */\n MakerFeeRate: JSON_Decimal;\n\n /** Taker fee rate */\n TakerFeeRate: JSON_Decimal;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Source of the fee event, i.e. EXCHANGE/OVERRIDE */\n Source: FeeSourceEnum;\n\n /** Internal time in number of nanoseconds since Unix epoch representing when the message was sent */\n Timestamp: JSON_UTCTimestamp;\n\n /** How the market charges fees */\n MarketFeeMode: MarketFeeModeEnum;\n\n /** Only specified (non-zero) if fees are charged in the exchange token */\n ExchangeTokenID: string;\n\n /** The maximum maker fee (always in quote currency) */\n MaxMakerFee: JSON_Decimal;\n\n /** The maximum taker fee (always in quote currency) */\n MaxTakerFee: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Fee request */\nexport interface IFeeUpdateConfigRequest {\n /** Request correlation ID */\n RequestID: JSON_Int64ID;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Maker fee rate */\n MakerFeeRate: JSON_Decimal;\n\n /** Taker fee rate */\n TakerFeeRate: JSON_Decimal;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Action */\n Action: FeeConfigUpdateActionEnum;\n\n /** The maximum maker fee (always in quote currency) */\n MaxMakerFee: JSON_Decimal;\n\n /** The maximum taker fee (always in quote currency) */\n MaxTakerFee: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Response from Fee service */\nexport interface IFeeResponse {\n /** Request correlation ID */\n RequestID: JSON_Int64ID;\n\n /** Status of the update request */\n Status: FeeResponseStatusEnum;\n\n /** Error while fetching fees */\n Text: string;\n\n /** Maker fee rate */\n MakerFeeRate: JSON_Decimal;\n\n /** Taker fee rate */\n TakerFeeRate: JSON_Decimal;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** The maximum maker fee (always in quote currency) */\n MaxMakerFee: JSON_Decimal;\n\n /** The maximum taker fee (always in quote currency) */\n MaxTakerFee: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Links a trading MarketAccount with a settlement MarketAccount */\nexport interface ITreasuryAccountLink {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of the account this link is for. Either CounterpartyID or MarketAccountID must be set. */\n MarketAccount: JSON_MarketAccount;\n\n /** Currency supported by the link. */\n Currency: string;\n\n /** Unique ID of the transfer destination account */\n DestinationMarketAccount: JSON_MarketAccount;\n\n /** Unique ID of the transfer source account */\n SourceMarketAccount: JSON_MarketAccount;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Status of the account link */\n Status: MarketAccountStatusEnum;\n\n /** Type of the account link */\n Type: TreasuryLinkTypeEnum;\n\n /** Direction of the account link from the client perspective */\n Direction: TreasuryLinkDirectionEnum;\n\n /** ID of the counterparty for link. Either CounterpartyID or MarketAccountID must be set1. */\n Counterparty: JSON_Counterparty;\n\n /** Unique ID generated by Talos for this link */\n LinkID: JSON_Int64ID;\n\n /** Revision */\n Revision: number;\n\n /** ID of user who last updated this treasury account link */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Optional destination blockchain address */\n DestinationAddress: string;\n}\n\n/** Parameters for strategies */\nexport interface IStrategyParameters {\n /** Price offset from the reference price, positive offsets are more passive prices */\n PriceOffset: JSON_Decimal;\n\n /** Size to show on the market when resting */\n ShowQty: JSON_Decimal;\n\n /** Datetime when order is closed */\n EndTime: JSON_UTCTimestamp;\n\n /** Duration of the order */\n Duration: JSON_DurationMillis;\n\n /** Size for crossing orders */\n ClipSize: JSON_Decimal;\n\n /** Value between 0 and 1 applied to randomize child order sizes */\n Variance: JSON_Decimal;\n\n /** Interval to send clip sizes */\n ClipInterval: JSON_DurationMillis;\n\n /** Max amount of time order is paused after spread widening */\n SpreadWideningWaitPeriod: JSON_DurationMillis;\n\n /** Allowed percentage deviation from average spread */\n SpreadWideningDeviation: JSON_Decimal;\n\n /** Trigger price market must hit to activate an order */\n TriggerPrice: JSON_Decimal;\n\n /** Type of trigger e.g stop or cross */\n TriggerType: TriggerTypeEnum;\n\n /** Action to take in response to passing a threshold of certain error responses. e.g cancel or pause */\n ErrorAction: ErrorActionEnum;\n\n /** Datetime when order should start */\n StartTime: JSON_UTCTimestamp;\n\n /** Reference price by which to compare the gateway prices against */\n ReferencePrice: JSON_Decimal;\n\n /** Source aggregation-id of trigger reference prices. */\n TriggerSource: number;\n\n /** The minimum spread to be maintained when appying price-offset */\n MinPriceOffsetSpread: JSON_Decimal;\n\n /** The type/units of the PriceOffset and MinPriceOffsetSpread, e.g. Price or BasisPoints */\n PriceOffsetUnits: PriceOffsetUnitsEnum;\n\n /** Source aggregation-id of price protection reference prices. */\n PriceProtectionSource: number;\n\n /** The index of the enum value chosen for BoundsControl. The allowed values are provided on the API. */\n BoundsControl: number;\n\n /** The index of the enum value chosen for Urgency. The allowed values are provided on the API. */\n Urgency: number;\n\n /** Type of the algo defined by the strategy. */\n AlgoType: AlgoTypeEnum;\n\n /** Algo instruction flags. */\n AlgoInstructions: Record;\n\n /** Determines how to peg resting orders */\n PegReferenceType: PegReferenceTypeEnum;\n\n /** Control price protection check. Error excludes market, Disabled does not run logic. */\n PriceProtection: PriceProtectionEnum;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: UnifiedLiquidityEnum;\n\n /** Target participation rate. */\n TargetParticipationRate: JSON_Decimal;\n\n /** Maximum amount to allow the legs to be imbalanced */\n MaxImbalanceAmt: JSON_Decimal;\n\n /** Currency for the max imbalanced amount */\n MaxImbalanceAmtCurrency: string;\n\n /** Max amount of time to wait for hedge fills passively */\n HedgePassiveTimeout: JSON_DurationMillis;\n\n /** Percent above the limit price willing to pay up to hedge out. Decimal value between 0 and 1 */\n HedgePayExtra: JSON_Decimal;\n\n /** Max allocation allowed for each market (value should be between 0 and 1), must be >= order qty divided by number of markets */\n MaxAllocationPerMarket: JSON_Decimal;\n\n /** order will only reduce open positions */\n ReduceOnly: ReduceOnlyEnum;\n\n /** order will reduce open positions when possible */\n ReduceFirst: ReduceFirstEnum;\n\n /** Percent further away the limit price willing to hedge out at market. Decimal value between 0 and 1 */\n MarketHedgeTrigger: JSON_Decimal;\n\n /** Dynamic delta hedge strategy (consumed by hedger) */\n DynamicDeltaHedgeStrategy: JSON_Strategy;\n\n /** Dynamic delta hedge instrument used to hedge (consumed by hedger) */\n DynamicDeltaHedgeSymbol: JSON_Security;\n\n /** Dynamic delta hedging params consumed by hedger */\n DynamicDeltaHedgeStrategyParams: IStrategyParameters;\n\n /** Leg specific parameters */\n LegParameters: IStrategyParameters4900LegParameters[];\n}\n\n/** Leg specific parameters */\nexport interface IStrategyParameters4900LegParameters {\n /** Index of the leg these parameters apply to */\n LegIndex: number;\n\n /** Whether the leg is allowed to initiate */\n Initiating: BoolEnum;\n}\n\n/** SnapshotBlock indicates the start or end of service snapshot */\nexport interface ISnapshotBlock {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** EntryType */\n EntryType: SnapshotBlockEntryTypeEnum;\n\n /** Snapshot version number */\n Version: number;\n}\n\n/** DeprecatedApplicationEvent is no longer used */\nexport interface IDeprecatedApplicationEvent {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** EventType */\n EventType: DeprecatedApplicationEventTypeEnum;\n}\n\n/** SnapshotSection indicates the start or end of specific snapshot section */\nexport interface ISnapshotSection {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** EntryType */\n EntryType: SnapshotBlockEntryTypeEnum;\n\n /** Name */\n Name: string;\n}\n\n/** Request injection of values into an injection site */\nexport interface IInjectionRequest {\n /** ID of the targeted service */\n ServiceID: JSON_ServiceIdentifier;\n\n /** The action to take when reaching the injection site */\n Action: InjectionActionEnum;\n\n /** Inject this many times before removing the request, use 0 to keep request permanently */\n Count: number;\n\n /** Only process this request before this time (in nanoseconds since Unix epoch) */\n SetBefore: number;\n\n /** Clear injection after this time (in nanoseconds since Unix epoch) */\n ClearAfter: number;\n\n /** Fully qualified name of the function that contains the injection site */\n Function: string;\n\n /** Key of the injection site. Leave blank to match all keys. */\n Key: string;\n\n /** Message to be logged and passed to the injection site (optional) */\n Message: string;\n}\n\n/** Remove all injection requests for a specific service */\nexport interface IInjectionClear {\n /** ID of the targeted service */\n ServiceID: JSON_ServiceIdentifier;\n}\n\n/** A security traded */\nexport interface ITradedSecurity {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Security ID of the position entry (if non-zero) */\n Symbol: JSON_Security;\n}\n\n/** Sent to cause a security to be re-subscribed in a gateway as it may be crossed or stale */\nexport interface IMarketSecurityMode {\n /** Time of last update */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** The connection mode (Up / Down) */\n Mode: ConnectionModeEnum;\n\n /** The restart counter, increasing this number will cause a restart */\n RestartCounter: number;\n\n /** Type of functionality supported by this market security */\n Capabilities: Record;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Market price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Market size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Market size increment */\n MinimumSize: JSON_Decimal;\n\n /** Market size increment */\n MaximumSize: JSON_Decimal;\n\n /** Minimum amount required to place an order */\n MinimumAmount: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** Market amount increment */\n MinAmountIncrement: JSON_Decimal;\n\n /** Default list of size buckets (Display Field) */\n SizeBuckets: IMarketSecurityMode4911SizeBuckets[];\n}\n\n/** Default list of size buckets (Display Field) */\nexport interface IMarketSecurityMode4911SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** Represents a user request against one or more LPs */\nexport interface IOMSQuoteRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Parent Customer RFQ ID */\n ParentRFQID: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Arbitrary string assigned when the quote request is submitted */\n Group: string;\n\n /** quote request parameters */\n Parameters: IQuoteParameters;\n\n /** optional allocation request */\n Allocation: IAllocationRequest;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of markets to be used for this request for quote */\n Markets: IOMSQuoteRequest4400Markets[];\n\n /** Aggregations used for this quote */\n Aggregations: IOMSQuoteRequest4400Aggregations[];\n}\n\n/** Aggregations used for this quote */\nexport interface IOMSQuoteRequest4400Aggregations {\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n}\n\n/** Number of markets to be used for this request for quote */\nexport interface IOMSQuoteRequest4400Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Summarizes quotes for a single request across one or more LPs */\nexport interface IOMSQuote {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote request ID */\n RFQID: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Quote OMS ID */\n QuoteID: string;\n\n /** Quote request reject reason */\n QuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** Quote Request Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n FirstTransactTime: JSON_UTCTimestamp;\n\n /** Internal timestamp at which the rfq will end - expressed in nanoseconds since Unix epoch. May be not set for RFQ with no end timestamp (infinitive) */\n EndTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Quote request side */\n Side: SideEnum;\n\n /** Traded price */\n TradedPx: JSON_Decimal;\n\n /** Traded quantity */\n TradedQty: JSON_Decimal;\n\n /** Traded amount in opposite currency */\n TradedAmt: JSON_Decimal;\n\n /** Traded side */\n TradedSide: SideEnum;\n\n /** Parent Customer RFQ ID */\n ParentRFQID: string;\n\n /** External time, either client provided request time or latest dealer response time, in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Bitmap of message characteristics */\n EventIndicator: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Text */\n Text: string;\n\n /** Arbitrary string assigned when the quote is submitted */\n Group: string;\n\n /** quote request parameters */\n Parameters: IQuoteParameters;\n\n /** optional allocation */\n Allocation: IAllocation;\n\n /** Additional information attached to the order */\n Comments: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of markets used for this quote */\n Markets: IOMSQuote4401Markets[];\n\n /** Number of pricing legs used in this quote */\n Legs: IOMSQuote4401Legs[];\n\n /** Aggregations used for this quote */\n Aggregations: IOMSQuote4401Aggregations[];\n}\n\n/** Aggregations used for this quote */\nexport interface IOMSQuote4401Aggregations {\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n}\n\n/** Number of pricing legs used for this quote */\nexport interface IMarketsLegIndexes {\n /** Leg Index in Legs array */\n LegIndex: number;\n}\n\n/** Number of pricing legs used in this quote */\nexport interface IOMSQuote4401Legs {\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Leg Bid Quantity */\n BidQty: JSON_Decimal;\n\n /** Leg Offer Quantity */\n OfferQty: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Timestamp when quote will expire */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** Bid price of quote (may not be set) */\n BidPx: JSON_Decimal;\n\n /** Bid Amount in opposite currency */\n BidAmt: JSON_Decimal;\n\n /** Offer price of quote (may not be set) */\n OfferPx: JSON_Decimal;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Offer Amount in opposite currency */\n OfferAmt: JSON_Decimal;\n\n /** Quote request side */\n Side: SideEnum;\n\n /** Quote request reject reason */\n QuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** Quote type */\n QuoteType: QuoteTypeEnum;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n FirstTransactTime: JSON_UTCTimestamp;\n\n /** Traded price (may not be set) */\n TradedPx: JSON_Decimal;\n\n /** Traded quantity (may not be set) */\n TradedQty: JSON_Decimal;\n\n /** Traded amount in opposite currency (may not be set) */\n TradedAmt: JSON_Decimal;\n\n /** Traded side (may not be set) */\n TradedSide: SideEnum;\n\n /** Gateway internal ID of the quote */\n QID: JSON_Int64ID;\n\n /** Limit bid price of quote (set only when leg is using sampling to get prices) */\n LimitBidPx: JSON_Decimal;\n\n /** Limit offer price of quote (set only when leg is using sampling to get prices) */\n LimitOfferPx: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount | undefined;\n\n /** Last update time of gateway quote receipt in number of nanoseconds since Unix epoch */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Text */\n Text: string;\n}\n\n/** Number of markets used for this quote */\nexport interface IOMSQuote4401Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Timestamp when quote will expire */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** Bid price of quote (may not be set) */\n BidPx: JSON_Decimal;\n\n /** Bid Amount in opposite currency */\n BidAmt: JSON_Decimal;\n\n /** Offer price of quote (may not be set) */\n OfferPx: JSON_Decimal;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Offer Amount in opposite currency */\n OfferAmt: JSON_Decimal;\n\n /** Quote request reject reason */\n QuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** Quote type */\n QuoteType: QuoteTypeEnum;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n FirstTransactTime: JSON_UTCTimestamp;\n\n /** Traded price (may not be set) */\n TradedPx: JSON_Decimal;\n\n /** Traded quantity (may not be set) */\n TradedQty: JSON_Decimal;\n\n /** Traded amount in opposite currency (may not be set) */\n TradedAmt: JSON_Decimal;\n\n /** Traded side (may not be set) */\n TradedSide: SideEnum;\n\n /** Gateway internal ID of the quote */\n QID: JSON_Int64ID;\n\n /** Limit bid price of quote (set only when market is using sampling to get prices) */\n LimitBidPx: JSON_Decimal;\n\n /** Limit offer price of quote (set only when market is using sampling to get prices) */\n LimitOfferPx: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount | undefined;\n\n /** Last update time of gateway quote receipt in number of nanoseconds since Unix epoch */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Text */\n Text: string;\n\n /** Number of pricing legs used for this quote */\n LegIndexes: IMarketsLegIndexes[];\n}\n\n/** Represents a user request to cancel an open RFQ against one or more LPs */\nexport interface IOMSQuoteCancel {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** This field is deprecated and no longer used */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote request ID specified by the client */\n RFQID: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Contain parameters for quote request */\nexport interface IQuoteParameters {\n /** Spread applied both to bid and ask price like 0.01 */\n Spread: JSON_Decimal;\n\n /** Time to live for individual quote in millisecond */\n QuoteTTL: JSON_DurationMillis;\n\n /** Time to live for entire RFQ in millisecond */\n RFQTTL: JSON_DurationMillis;\n\n /** If price improvement happens this param indicates how much price improvement benefit goes to counterparty */\n PriceImprovementRatio: JSON_Decimal;\n\n /** Maximum time in millisecond for first price update. 0 means no waiting for getting all market prices */\n PricesTimeout: JSON_DurationMillis;\n\n /** Price leniency when deciding whether to accept a previously quoted price as a ratio of the customer price. This specifies the maximum amount of slippage that the dealer is willing to take. */\n AcceptPriceLeniency: JSON_Decimal;\n\n /** Time leniency to apply on top of the QuoteTTL as a duration string */\n AcceptTimeLeniency: JSON_DurationMillis;\n\n /** Enabling/disabling synthetic counter currency support */\n EnableSyntheticCounterCurrency: BoolEnum;\n\n /** Minimum supported MarketData throttle */\n MinMarketDataThrottle: JSON_DurationMillis | undefined;\n\n /** Order version of PriceImprovementRatio - regular is for RFQ */\n OrderPriceImprovementRatio: JSON_Decimal;\n\n /** Switch to publish expected hedge prices */\n PublishExpectedHedgePrice: BoolEnum;\n\n /** Flag to indicate the expected pricing mode */\n FixedPricingMode: FixedPricingModeEnum;\n\n /** Fixed customer bid price */\n CustomerBidPrice: JSON_Decimal;\n\n /** Fixed customer offer price */\n CustomerOfferPrice: JSON_Decimal;\n\n /** Assymetric bid spread */\n BidSpread: JSON_Decimal;\n\n /** Assymetric offer spread */\n OfferSpread: JSON_Decimal;\n\n /** Aggregation id containing list of underlying markets to use for pricing. */\n PricingAggregation: JSON_Aggregation;\n\n /** Ensure profits are taken in the quote currency */\n TakeProfitInQuoteCurrency: BoolEnum;\n\n /** Optional hedge subaccount sets on hedge executions */\n HedgeSubAccount: JSON_SubAccount;\n\n /** Optional trade subaccount sets on dealer-side trades */\n TradeSubAccount: JSON_SubAccount;\n\n /** Controls whether customer and dealer trades are booked fill-by-fill, or only for terminal order state */\n BookSingleTrade: BoolEnum;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** Post-trade fee to take on top of the trade */\n Fee: JSON_Decimal;\n\n /** How the fee will be charged from the customer */\n FeeMode: MarketFeeModeEnum;\n\n /** The currency the fee will be charged in */\n FeeCurrency: string;\n\n /** Number of AllowedCrossCurrencies */\n AllowedCrossCurrencies: IQuoteParameters4403AllowedCrossCurrencies[];\n\n /** Number of AllowedCrossMarkets */\n AllowedCrossMarkets: IQuoteParameters4403AllowedCrossMarkets[];\n\n /** Explicit markets set by the Customer process to be used for this request */\n PricingMarkets: IQuoteParameters4403PricingMarkets[];\n}\n\n/** Number of AllowedCrossCurrencies */\nexport interface IQuoteParameters4403AllowedCrossCurrencies {\n /** Currency ID for amount */\n Currency: string;\n}\n\n/** Number of AllowedCrossMarkets */\nexport interface IQuoteParameters4403AllowedCrossMarkets {\n /** Market ID */\n Market: JSON_Market;\n}\n\n/** Explicit markets set by the Customer process to be used for this request */\nexport interface IQuoteParameters4403PricingMarkets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Rules to define unified liquidity tokens */\nexport interface IUnifiedLiquidityRules {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of the rule */\n RuleID: JSON_Int64ID;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Input currency or security for the rule */\n SourceAsset: string;\n\n /** Market ID */\n SourceMarket: JSON_Market;\n\n /** Unified currency or security */\n UnifiedAsset: string;\n\n /** Revision */\n Revision: number;\n\n /** Product type */\n ProductType: ProductTypeEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Matches given counterpartyID with quote parameters */\nexport interface IPricingRule {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Counterparty ID */\n Counterparty: JSON_Counterparty;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Spread applied both to bid and ask price like 0.01 (applied if no BidSpread and OfferSpread is provided) */\n Spread: JSON_Decimal;\n\n /** Time to live for individual quote in millisecond */\n QuoteTTL: JSON_DurationMillis | undefined;\n\n /** Time to live for entire RFQ in millisecond */\n RFQTTL: JSON_DurationMillis | undefined;\n\n /** If price improvement happens this param indicates how much price improvement benefit goes to counterparty */\n PriceImprovementRatio: JSON_Decimal;\n\n /** Maximum time in millisecond for first price update. 0 means no waiting for getting all market prices */\n PricesTimeout: JSON_DurationMillis | undefined;\n\n /** Price leniency when deciding whether to accept a previously quoted price as a ratio of the customer price. This specifies the maximum amount of slippage that the dealer is willing to take. */\n AcceptPriceLeniency: JSON_Decimal;\n\n /** Time leniency to apply on top of the QuoteTTL as a duration string */\n AcceptTimeLeniency: JSON_DurationMillis | undefined;\n\n /** Enabling/disabling synthetic counter currency support */\n EnableSyntheticCounterCurrency: BoolEnum;\n\n /** Controls if trading and market data is enabled */\n Mode: ModeEnum;\n\n /** Minimum supported MarketData throttle */\n MinMarketDataThrottle: JSON_DurationMillis | undefined;\n\n /** Order version of PriceImprovementRatio - regular is for RFQ */\n OrderPriceImprovementRatio: JSON_Decimal;\n\n /** Spread applied to bid price like 0.01 */\n BidSpread: JSON_Decimal;\n\n /** Spread applied to offer price like 0.01 */\n OfferSpread: JSON_Decimal;\n\n /** Aggregation id containing list of underlying markets to use for pricing. */\n PricingAggregation: JSON_Aggregation;\n\n /** Ensure profits are taken in the quote currency */\n TakeProfitInQuoteCurrency: BoolEnum;\n\n /** Revision of that pricing rule */\n Revision: number;\n\n /** User who update that revision */\n UpdateUser: JSON_User;\n\n /** Optional hedge subaccount sets on hedge executions */\n HedgeSubAccount: JSON_SubAccount;\n\n /** Optional trade subaccount sets on dealer-side trades */\n TradeSubAccount: JSON_SubAccount;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** Post-trade fee to take on top of the trade */\n Fee: JSON_Decimal;\n\n /** How the fee will be charged from the customer */\n FeeMode: MarketFeeModeEnum;\n\n /** The currency the fee will be charged in */\n FeeCurrency: string;\n\n /** Pricing rule type */\n Type: PricingRuleTypeEnum;\n\n /** Optional ID of the tier */\n Tier: JSON_PricingTier;\n\n /** Controls if this rule should be excluded in evaluation of effective pricing parameters. Empty means not ignore */\n Excluded: BoolEnum;\n\n /** Number of AllowedCrossCurrencies */\n AllowedCrossCurrencies: IPricingRule4404AllowedCrossCurrencies[];\n\n /** Number of AllowedCrossMarkets */\n AllowedCrossMarkets: IPricingRule4404AllowedCrossMarkets[];\n}\n\n/** Number of AllowedCrossCurrencies */\nexport interface IPricingRule4404AllowedCrossCurrencies {\n /** Currency ID for amount */\n Currency: string;\n}\n\n/** Number of AllowedCrossMarkets */\nexport interface IPricingRule4404AllowedCrossMarkets {\n /** Market ID */\n Market: JSON_Market;\n}\n\n/** Unified Liquidity token */\nexport interface IUnifiedLiquidityToken {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Base security for unified liquidity tokens */\n Symbol: JSON_Security;\n\n /** List of unified liquidity tokens */\n Tokens: IUnifiedLiquidityToken8501Tokens[];\n}\n\n/** List of unified liquidity tokens */\nexport interface IUnifiedLiquidityToken8501Tokens {\n /** Market ID */\n Market: JSON_Market;\n\n /** Unified security */\n Symbol: JSON_Security;\n}\n\n/** Rules for determining how customer Orders are Executed */\nexport interface ICustomerOrderExecutionRule {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique Identifier Generated for CustomerOrderExecutionRule */\n RuleID: JSON_Int64ID;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Rule evaluation priority, lower value is higher priority */\n Priority: number;\n\n /** Counterparty Associated with Order */\n Counterparty: JSON_Counterparty;\n\n /** Security Associated with Order */\n Symbol: JSON_Security;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Order Type */\n OrdType: OrdTypeEnum;\n\n /** Time in Force Associated with Order */\n TimeInForce: TimeInForceEnum;\n\n /** StrategyID Associated with Order */\n Strategy: JSON_Strategy;\n\n /** Lower Limit of Quantity Threshold */\n MinQuantityThreshold: JSON_Decimal;\n\n /** Upper Limit of Quantity Threshold */\n MaxQuantityThreshold: JSON_Decimal;\n\n /** Lower Limit of Notional Amount */\n MinNotionalThreshold: JSON_Decimal;\n\n /** Upper Limit of Notional Amount */\n MaxNotionalThreshold: JSON_Decimal;\n\n /** Output of Rule - Strategy to Utilize for Customer Order Execution */\n ExecutionStrategy: CustomerExecutionStrategyEnum;\n\n /** Revision of the Execution Rule */\n Revision: number;\n\n /** User who updates latest revision of Execution Rule */\n UpdateUser: JSON_User;\n\n /** Rule to apply when prior execution rule fails to execute */\n OnFallback: BoolEnum;\n\n /** UTC Start time for rule application - format HH24:MM:SS.zzzzzz */\n StartTime: string;\n\n /** UTC End time for rule application - format HH24:MM:SS.zzzzzz - must be present include rule that has StartTime */\n EndTime: string;\n}\n\n/** PricingTier represents tier that has name, display name and type. */\nexport interface IPricingTier {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of the tier */\n Tier: JSON_Int64ID;\n\n /** Unique name of the tier */\n Name: string;\n\n /** Display name for tier */\n DisplayName: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** User who made an update */\n UpdateUser: JSON_User;\n\n /** Type of tier */\n Type: PricingRuleTypeEnum;\n\n /** Mode of this pricing tier */\n Mode: ModeEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n}\n\n/** CustomerConfiguration represents various configuration for customer. */\nexport interface ICustomerConfiguration {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the counterparty that this configuration applies for */\n Counterparty: JSON_Counterparty;\n\n /** ID of the tier that resolves spread, commission and aggregation */\n AllInTier: JSON_PricingTier;\n\n /** ID of the tier that resolves post-trade fee parameters */\n FeeTier: JSON_PricingTier;\n\n /** ID of the tier that group of available customer securities */\n SymbolGroup: JSON_PricingTier;\n\n /** Mode of this configuration */\n Mode: ModeEnum;\n\n /** User who made an update */\n UpdateUser: JSON_User;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n}\n\n/** Represents a QuoteRequest to a particular gateway / LP */\nexport interface IQuoteRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Internal ID for this request */\n RID: JSON_Int64ID;\n\n /** Side */\n Side: SideEnum;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** OMS Quote request ID */\n ParentRFQID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Represents a Quote from an LP */\nexport interface IQuote {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Internal ID of request for quote */\n RID: JSON_Int64ID;\n\n /** Internal ID of the quote */\n QID: JSON_Int64ID;\n\n /** Quote request ID generated by the gateway to the LP */\n QuoteReqID: string;\n\n /** Quote type */\n QuoteType: QuoteTypeEnum;\n\n /** Side */\n Side: SideEnum;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Timestamp when quote will expire */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** Bid price of quote (may be not set) */\n BidPx: JSON_Decimal;\n\n /** Bid Amount in opposite currency */\n BidAmt: JSON_Decimal;\n\n /** Offer price of quote (may be not set) */\n OfferPx: JSON_Decimal;\n\n /** Offer Amount in opposite currency */\n OfferAmt: JSON_Decimal;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Quote request reject reason */\n QuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** OMS Quote request ID */\n ParentRFQID: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Quote Request Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp | undefined;\n\n /** Traded side */\n TradedSide: SideEnum;\n\n /** Traded price */\n TradedPx: JSON_Decimal;\n\n /** Traded quantity */\n TradedQty: JSON_Decimal;\n\n /** Traded amount in opposite currency */\n TradedAmt: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Buy QuoteID given by the venue */\n BuyQuoteID: string;\n\n /** Sell QuoteID given by the venue */\n SellQuoteID: string;\n\n /** Text */\n Text: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Book message for delivery of streamed data out of AVA */\nexport interface IMDBookLevel {\n /** Internal time in number of nanoseconds since Unix epoch */\n SystemTimestamp: JSON_UTCTimestamp;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Latest exchange message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n MarketExchangeTime: JSON_UTCTimestamp;\n\n /** Bid Price */\n BidPrice: JSON_Decimal;\n\n /** Bid Size */\n BidSize: JSON_Decimal;\n\n /** Bid Amount */\n BidAmount: JSON_Decimal;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n BidLevelSystemTime: JSON_UTCTimestamp;\n\n /** Latest exchange message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n BidLevelExchangeTime: JSON_UTCTimestamp;\n\n /** Offer Price */\n AskPrice: JSON_Decimal;\n\n /** Offer Size */\n AskSize: JSON_Decimal;\n\n /** Offer Amount */\n AskAmount: JSON_Decimal;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n AskLevelSystemTime: JSON_UTCTimestamp;\n\n /** Latest exchange message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n AskLevelExchangeTime: JSON_UTCTimestamp;\n\n /** Market Data entry tupe used to track also MD Books behavior */\n Flags: MDEntryTypeEnum;\n\n /** Capture id */\n Capture: string;\n}\n\n/** Represents a quote cancel request to particular LP */\nexport interface IQuoteCancel {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Internal ID of request for quote */\n RID: JSON_Int64ID;\n\n /** Cancel quote request entry time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** OMS Quote request ID */\n ParentRFQID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Trade message for delivery of streamed data out of AVA */\nexport interface IMDTrade {\n /** Internal time in number of nanoseconds since Unix epoch */\n SystemTimestamp: JSON_UTCTimestamp;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** MarketID for requested Market */\n Market: JSON_Market;\n\n /** Latest exchange message timestamp from the markets used on this snapshot. Number of nanoseconds since the Unix epoch. */\n MarketExchangeTime: JSON_UTCTimestamp;\n\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n\n /** ExecID */\n TradeID: string;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** Capture id */\n Capture: string;\n}\n\n/** Represents a Quote with multiple buckets for internally by the simulator */\nexport interface ISimQuote {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Quote request ID generated by the gateway to the LP */\n QuoteReqID: string;\n\n /** Quote type */\n QuoteType: QuoteTypeEnum;\n\n /** Timestamp when quote will expire */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** Depth type */\n DepthType: DepthTypeEnum;\n\n /** Number of entries in SimQuote message */\n Entries: ISimQuote4413Entries[];\n}\n\n/** Number of entries in SimQuote message */\nexport interface ISimQuote4413Entries {\n /** Order price */\n MDEntryPx: JSON_Decimal;\n\n /** Market Data entry size */\n MDEntrySize: JSON_Decimal;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n\n /** Legs */\n Legs: IEntriesLegs[];\n}\n\n/** */\nexport interface IEntriesLegs {\n /** Order price */\n MDEntryPx: JSON_Decimal;\n\n /** Market Data entry size */\n MDEntrySize: JSON_Decimal;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n}\n\n/** Represents a cancel of a streaming quote request */\nexport interface IStreamingQuoteCancel {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** The Quote request ID we would like to cancel */\n QuoteReqID: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Approval or Rejection of Customer Order Risk Check */\nexport interface ICustomerRiskResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID */\n OrderID: string;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** Status of customer risk request */\n ApprovalStatus: CustomerRiskApprovalStatusEnum;\n\n /** Side */\n Side: SideEnum;\n\n /** Approval Rejection Reason */\n Text: string;\n}\n\n/** A request to initiate negotiations with one or more responders. */\nexport interface ILoanQuoteRequest {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the initiator referring to the overall request to all responders. */\n QuoteReqID: string;\n\n /** ID of the participant representing the borrower. */\n Borrower: JSON_Participant;\n\n /** The ID of the requesting user. */\n User: JSON_User;\n\n /** Currency ID for the borrowed currency. */\n PrincipalCurrency: string;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** The interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan quote, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan would terminate. */\n TerminationTime: JSON_UTCTimestamp;\n\n /** Indicates the desired state resulting from this request. */\n RequestType: LoanQuoteRequestTypeEnum;\n\n /** A message relevant to the terms of this request. It will be sent to all Lenders. */\n Comments: string;\n\n /** The responders who should receive the request */\n Lenders: ILoanQuoteRequest8001Lenders[];\n}\n\n/** The responders who should receive the request */\nexport interface ILoanQuoteRequest8001Lenders {\n /** ID of the participant representing a target responder. */\n Lender: JSON_Participant;\n}\n\n/** A request by the responder to set firm terms on a LoanQuote. */\nexport interface ILoanQuoteLenderUpdate {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to be updated. */\n NegotiationID: JSON_Int64ID;\n\n /** The revision of the LoanQuote to be updated. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** ID of the updating participant. */\n Participant: JSON_Participant;\n\n /** The ID of the updating user. */\n User: JSON_User;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** The interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan quote, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan would terminate. */\n TerminationTime: JSON_UTCTimestamp;\n\n /** A message relevant to the terms of this update. */\n Comments: string;\n}\n\n/** A request by the initiator to accept the firm terms of a LoanQuote. */\nexport interface ILoanQuoteBorrowerAccept {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to accept. */\n NegotiationID: JSON_Int64ID;\n\n /** The revision of the LoanQuote to accept. It's only possible to accept the most recent revision. */\n TargetRevision: number;\n\n /** ID of the accepting participant. */\n Participant: JSON_Participant;\n\n /** The ID of the accepting user. */\n User: JSON_User;\n}\n\n/** Represents a customer request to the dealer */\nexport interface ICustomerQuoteRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Arbitrary string assigned when the customer request is submitted */\n Group: string;\n\n /** customer request parameters */\n Parameters: IQuoteParameters;\n\n /** Additional information attached to the quote */\n Comments: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Lock request that Talos sends to dealer external server for customer RFQ/order */\nexport interface IExternalLockRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** LockID */\n LockID: string;\n\n /** Type of Lock Request. Either Lock to lock funds or Release to release funds */\n RequestType: LockRequestTypeEnum;\n\n /** User ID for that lock request */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** customer quantity */\n CustomerQuantity: JSON_Decimal;\n\n /** customer currency */\n CustomerCurrency: string;\n\n /** dealer quantity */\n DealerQuantity: JSON_Decimal;\n\n /** dealer currency */\n DealerCurrency: string;\n\n /** Type of underlying object: Order or RFQ */\n Type: LockUnderlyingObjectTypeEnum;\n\n /** ID of the counterparty for this lock */\n CustomerID: number;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** underlying customer order */\n Order: ICustomerExecutionReport;\n\n /** underlying customer RFQ */\n RFQ: ICustomerQuote;\n}\n\n/** A request to cancel a LoanQuote. */\nexport interface ILoanQuoteCancel {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to be canceled. */\n NegotiationID: JSON_Int64ID;\n\n /** ID of the canceling participant. */\n Participant: JSON_Participant;\n\n /** The ID of the canceling user. */\n User: JSON_User;\n\n /** A message relevant to this cancelation. */\n Comments: string;\n}\n\n/** Summarizes quote updates for customer quote request */\nexport interface ICustomerQuote {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Quote status */\n QuoteStatus: QuoteStatusEnum;\n\n /** Customer Quote ID */\n QuoteID: string;\n\n /** Quote request reject reason */\n QuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** Quote Request Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Quantity */\n OrderQty: JSON_Decimal;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Internal timestamp at which the rfq will end - expressed in nanoseconds since Unix epoch. May be not set for RFQ with no end timestamp (infinitive) */\n EndTime: JSON_UTCTimestamp;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Quote request side */\n Side: SideEnum;\n\n /** Traded price */\n TradedPx: JSON_Decimal;\n\n /** Traded quantity */\n TradedQty: JSON_Decimal;\n\n /** Traded amount in opposite currency */\n TradedAmt: JSON_Decimal;\n\n /** Traded side */\n TradedSide: SideEnum;\n\n /** ID of the counterparty that request is made for */\n Counterparty: JSON_Counterparty;\n\n /** Bid price of quote (may not be set) */\n BidPx: JSON_Decimal;\n\n /** Bid amount in opposite currency */\n BidAmt: JSON_Decimal;\n\n /** Offer price of quote (may not be set) */\n OfferPx: JSON_Decimal;\n\n /** Offer amount in opposite currency */\n OfferAmt: JSON_Decimal;\n\n /** Timestamp till quote is valid */\n ValidUntilTime: JSON_UTCTimestamp;\n\n /** ReferenceQuoteID matches QuoteID from underlying OMSQuote4401 */\n ReferenceQuoteID: string;\n\n /** Internal Quote request reject reason */\n InternalQuoteRequestRejectReason: OrdRejReasonEnum;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_CustomerMarketAccount | undefined;\n\n /** Expected Bid Price for Hedge Order */\n ExpectedHedgeBidPx: JSON_Decimal;\n\n /** Expected Offer Price for Hedge Order */\n ExpectedHedgeOfferPx: JSON_Decimal;\n\n /** Effective Spread for Bid Side */\n EffectiveBidSpread: JSON_Decimal;\n\n /** Effective Spread for Offer Side */\n EffectiveOfferSpread: JSON_Decimal;\n\n /** Original Quote request ID */\n OrigQuoteReqID: string;\n\n /** Bitmap of message characteristics */\n EventIndicator: Record;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** Buy side risk approval status */\n BuySideApprovalStatus: CustomerRiskApprovalStatusEnum;\n\n /** Sell side risk approval status */\n SellSideApprovalStatus: CustomerRiskApprovalStatusEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Text */\n Text: string;\n\n /** Arbitrary string assigned when the quote is submitted */\n Group: string;\n\n /** quote parameters */\n Parameters: IQuoteParameters;\n\n /** Internal reason for rejection */\n InternalText: string;\n\n /** Additional information attached to the quote */\n Comments: string;\n\n /** Market Level Errors For Internal Analytics */\n InternalMarketErrors: string;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Response from external dealer server for lock request */\nexport interface IExternalLockResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** LockID */\n LockID: string;\n\n /** Status for external risk request */\n ApprovalStatus: CustomerRiskApprovalStatusEnum;\n\n /** Approval Rejection Reason */\n Text: string;\n}\n\n/** A request to reject a LoanQuote. */\nexport interface ILoanQuoteReject {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to be rejected. */\n NegotiationID: JSON_Int64ID;\n\n /** ID of the rejecting participant. */\n Participant: JSON_Participant;\n\n /** The ID of the rejecting user. */\n User: JSON_User;\n\n /** A message relevant to this rejection. */\n Comments: string;\n}\n\n/** Represents a customer request to cancel an open Customer RFQ */\nexport interface ICustomerQuoteCancel {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Internal unique ID for customer quote request */\n RFQID: string;\n\n /** Quote request ID specified by the client */\n QuoteReqID: string;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ID of the counterparty that request is made for */\n Counterparty: JSON_Counterparty;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Workflow Associated with Order */\n Workflow: CustomerWorkflowEnum;\n\n /** If present determines the units of PricingReference */\n PricingMode: PricingModeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Holds information about status and encumbered quantities for customer lock */\nexport interface ICustomerLock {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** LockID */\n LockID: string;\n\n /** Revision of the customer lock */\n Revision: number;\n\n /** User ID for that lock request */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** customer quantity */\n CustomerQuantity: JSON_Decimal;\n\n /** customer currency */\n CustomerCurrency: string;\n\n /** dealer quantity */\n DealerQuantity: JSON_Decimal;\n\n /** dealer currency */\n DealerCurrency: string;\n\n /** Type of underlying object: Order or RFQ */\n Type: LockUnderlyingObjectTypeEnum;\n\n /** ID of the counterparty for this lock */\n CustomerID: number;\n\n /** Status of Customer */\n Status: CustomerLockStatusEnum;\n\n /** Source of Customer */\n Source: CustomerLockSourceEnum;\n\n /** customer outstanding sell quantity */\n CustomerOutstandingSell: JSON_Decimal;\n\n /** customer outstanding buy quantity */\n CustomerOutstandingBuy: JSON_Decimal;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** quantity of related transaction */\n TransactionQuantity: JSON_Decimal;\n\n /** currency of related transaction */\n TransactionCurrency: string;\n\n /** Indicator if fees are included in CustomerQuantity and CustomerOutstandingSell */\n FeesIncluded: BoolEnum;\n\n /** underlying customer order */\n Order: ICustomerExecutionReport;\n\n /** underlying customer RFQ */\n RFQ: ICustomerQuote;\n\n /** underlying customer transaction */\n Transaction: ICustomerBalanceTransaction;\n}\n\n/** The current state of a loan negotiation from the lender's perspective. */\nexport interface ILoanQuoteLender {\n /** Timestamp of when the most recent request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID for the responses between one responder and the initiator for the full lifecycle of this QuoteReqID. Generated by Talos. */\n NegotiationID: JSON_Int64ID;\n\n /** An increasing sequence number for this NegotiationID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** An increasing sequence number for this NegotiationID and revision. A new value for the same Revision indicates updated information is available without negotiation state changing. Commonly used to report errors on commands received since the last state change. Generated by Talos. */\n AmendmentCount: number;\n\n /** A unique ID corresponding to the borrower's OrigQuoteReqID. For the lender 1:1 with NegotiationID. Generated by Talos. */\n ReqID: JSON_Int64ID;\n\n /** The QuoteReqID from the most recent lender request reflected in this message. */\n QuoteReqID: string;\n\n /** Timestamp of when the first message for this negotiation was processed. */\n SubmitTime: JSON_UTCTimestamp;\n\n /** The current status of this loan quote. */\n QuoteStatus: LoanQuoteStatusEnum;\n\n /** ID of the participant representing the lender. May be omitted on error conditions. */\n Lender: JSON_Participant;\n\n /** ID of the participant representing the borrower. May be omitted on error conditions. */\n Borrower: JSON_Participant;\n\n /** The ID of the most recent user at the lender to submit a request. */\n User: JSON_User | undefined;\n\n /** The user at the lender that owns this quote. */\n Owner: JSON_User | undefined;\n\n /** Currency ID for the borrowed currency. */\n PrincipalCurrency: string;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string | undefined;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** The interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan quote, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan would terminate. */\n TerminationTime: JSON_UTCTimestamp | undefined;\n\n /** If present, the reason validation failed for the QuoteReqID. */\n ValidationError: LoanQuoteValidationErrorEnum;\n\n /** Unique identifier of the term sheet for this quote provided to the document service. */\n TermSheetDocID: JSON_Int64ID;\n\n /** The date and time when the quote will expire if negotiations haven't concluded. */\n EndTime: JSON_UTCTimestamp;\n\n /** Esign platform identifier of the term sheet template for this loan quote. */\n TermSheetTemplateID: string;\n\n /** The ID of the document gateway to use for the term sheet. */\n TermSheetGateway: JSON_ESignGateway;\n\n /** The Qty on this loan quote must be an even multiple of this increment. */\n QtyIncrement: JSON_Decimal;\n\n /** The Rate on this loan quote must be an even multiple of this increment. */\n RateIncrement: JSON_Decimal;\n\n /** The CollateralRatio on this loan quote must be an even multiple of this increment. */\n CollateralRatioIncrement: JSON_Decimal;\n\n /** Minimum quantity of principal allowed to be borrowed. */\n MinQty: JSON_Decimal;\n\n /** Summary of the current quote state suitable for display. Will be populated if ValidationError is present. */\n Text: string;\n\n /** A message relevant to the terms of this Revision. */\n Comments: string;\n\n /** The set of collateral currencies allowed for this loan quote. */\n EnabledCollateralCurrencies: ILoanQuoteLender8006EnabledCollateralCurrencies[];\n\n /** States for each of the recipients of of the term sheet for this quote. */\n TermSheetRecipients: ILoanQuoteLender8006TermSheetRecipients[];\n}\n\n/** The set of collateral currencies allowed for this loan quote. */\nexport interface ILoanQuoteLender8006EnabledCollateralCurrencies {\n /** Currency ID */\n Currency: string;\n}\n\n/** States for each of the recipients of of the term sheet for this quote. */\nexport interface ILoanQuoteLender8006TermSheetRecipients {\n /** Timestamp when this entry was last updated. */\n Timestamp: JSON_UTCTimestamp;\n\n /** Latest status in the documentation workflow for this entry's participant. */\n Status: ESignRecipientStatusEnum;\n\n /** ID of the participant this entry applies to. */\n Participant: JSON_Participant;\n\n /** Name of the entry's recipient. */\n DisplayName: string;\n\n /** Delivery identifier used by esign platforms for this recipient. */\n DeliveryID: string;\n}\n\n/** Customer lock release request is used to manually release customer lock */\nexport interface ICustomerLockReleaseRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** LockID */\n LockID: string;\n\n /** optional customer quantity to release in case of External risk evaluation mode */\n ReleaseCustomerQuantity: JSON_Decimal;\n\n /** optional dealer quantity to release in case of External risk evaluation mode */\n ReleaseDealerQuantity: JSON_Decimal;\n\n /** User who release the lock */\n User: JSON_User;\n}\n\n/** The current state of a loan negotiation from the borrower's perspective. */\nexport interface ILoanQuoteBorrower {\n /** Timestamp of when the most recent request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID for the responses between one responder and the initiator for the full lifecycle of this QuoteReqID. Generated by Talos. */\n NegotiationID: JSON_Int64ID;\n\n /** An increasing sequence number for this NegotiationID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** An increasing sequence number for this NegotiationID and revision. A new value for the same Revision indicates updated information is available with out Negotiation state changing. Commonly used to report errors on commands received since the last state change. Generated by Talos. */\n AmendmentCount: number;\n\n /** A unique ID corresponding to the OrigQuoteReqID. Generated by Talos. */\n ReqID: JSON_Int64ID;\n\n /** The original QuoteReqID from the initiating LoanQuoteRequest. Refers to the overall request to all responders */\n OrigQuoteReqID: string;\n\n /** The QuoteReqID from the most recent borrower request reflected in this message. */\n QuoteReqID: string;\n\n /** Timestamp of when the first message for this negotiation was processed. */\n SubmitTime: JSON_UTCTimestamp;\n\n /** The current status of this loan quote. */\n QuoteStatus: LoanQuoteStatusEnum;\n\n /** ID of the participant representing the lender. May be omitted on error conditions. */\n Lender: JSON_Participant;\n\n /** ID of the participant representing the borrower. May be omitted on error conditions. */\n Borrower: JSON_Participant;\n\n /** The ID of the most recent user at the borrower to submit a request. */\n User: JSON_User | undefined;\n\n /** The user at the borrower that owns this quote. */\n Owner: JSON_User;\n\n /** Currency ID for the borrowed currency. */\n PrincipalCurrency: string;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string | undefined;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** The interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan quote, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan would terminate. */\n TerminationTime: JSON_UTCTimestamp | undefined;\n\n /** If present, the reason validation failed for the QuoteReqID. */\n ValidationError: LoanQuoteValidationErrorEnum;\n\n /** Unique identifier of the term sheet for this quote provided to the document service. */\n TermSheetDocID: JSON_Int64ID;\n\n /** The date and time when the quote will expire if negotiations haven't concluded. */\n EndTime: JSON_UTCTimestamp;\n\n /** Esign platform identifier of the term sheet template for this loan quote. */\n TermSheetTemplateID: string;\n\n /** The ID of the document gateway to use for the term sheet. */\n TermSheetGateway: JSON_ESignGateway;\n\n /** The Qty on this loan quote must be an even multiple of this increment. */\n QtyIncrement: JSON_Decimal;\n\n /** The Rate on this loan quote must be an even multiple of this increment. */\n RateIncrement: JSON_Decimal;\n\n /** The CollateralRatio on this loan quote must be an even multiple of this increment. */\n CollateralRatioIncrement: JSON_Decimal;\n\n /** Minimum quantity of principal allowed to be borrowed. */\n MinQty: JSON_Decimal;\n\n /** Summary of the current quote state suitable for display. Will be populated if ValidationError is present. */\n Text: string;\n\n /** A message relevant to the terms of this Revision. */\n Comments: string;\n\n /** The set of collateral currencies allowed for this loan quote. */\n EnabledCollateralCurrencies: ILoanQuoteBorrower8007EnabledCollateralCurrencies[];\n\n /** States for each of the recipients of of the term sheet for this quote. */\n TermSheetRecipients: ILoanQuoteBorrower8007TermSheetRecipients[];\n}\n\n/** The set of collateral currencies allowed for this loan quote. */\nexport interface ILoanQuoteBorrower8007EnabledCollateralCurrencies {\n /** Currency ID */\n Currency: string;\n}\n\n/** States for each of the recipients of of the term sheet for this quote. */\nexport interface ILoanQuoteBorrower8007TermSheetRecipients {\n /** Timestamp when this entry was last updated. */\n Timestamp: JSON_UTCTimestamp;\n\n /** Latest status in the documentation workflow for this entry's participant. */\n Status: ESignRecipientStatusEnum;\n\n /** ID of the participant this entry applies to. */\n Participant: JSON_Participant;\n\n /** Name of the entry's recipient. */\n DisplayName: string;\n\n /** Delivery identifier used by esign platforms for this recipient. */\n DeliveryID: string;\n}\n\n/** A request by the initiator to set firm terms on a LoanQuote. */\nexport interface ILoanQuoteBorrowerUpdate {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to be updated. */\n NegotiationID: JSON_Int64ID;\n\n /** The revision of the LoanQuote to be updated. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** ID of the updating participant. */\n Participant: JSON_Participant;\n\n /** The ID of the updating user. */\n User: JSON_User;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** TThe interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan quote, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan would terminate. */\n TerminationTime: JSON_UTCTimestamp;\n\n /** A message relevant to the terms of this update. */\n Comments: string;\n}\n\n/** Cancel a specific customer view */\nexport interface ICancelCustomerView {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Type of cancellation */\n CustomerViewCancelType: CustomerViewCancelTypeEnum;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n}\n\n/** A request by the responder to accept the firm terms of a LoanQuote. */\nexport interface ILoanQuoteLenderAccept {\n /** Timestamp of when the request was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The ID of the LoanQuote to accept. */\n NegotiationID: JSON_Int64ID;\n\n /** The revision of the LoanQuote to accept. It's only possible to accept the most recent revision. */\n TargetRevision: number;\n\n /** ID of the accepting participant. */\n Participant: JSON_Participant;\n\n /** The ID of the accepting user. */\n User: JSON_User;\n}\n\n/** A request from the Customer API for steaming markets */\nexport interface ICustomerMarketViewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Security ID for Subscription Request */\n Symbol: JSON_Security;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** Canonical price increment */\n PriceIncrement: JSON_Decimal;\n\n /** Requested Price Depth for Market View */\n Depth: number;\n\n /** Frequency of market data snapshot updates */\n Throttle: JSON_DurationMillis;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** User ID of Principal User */\n User: JSON_User;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: UnifiedLiquidityEnum;\n\n /** customer request parameters */\n PricingParameters: IQuoteParameters;\n\n /** Requested Price Depth for Market View */\n SizeBuckets: ICustomerMarketViewRequest4426SizeBuckets[];\n\n /** Requested Price Depth for Market View - Amounts */\n AmountBuckets: ICustomerMarketViewRequest4426AmountBuckets[];\n}\n\n/** Requested Price Depth for Market View - Amounts */\nexport interface ICustomerMarketViewRequest4426AmountBuckets {\n /** Amount Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** Requested Price Depth for Market View */\nexport interface ICustomerMarketViewRequest4426SizeBuckets {\n /** Size Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** A record configuring the relationship between a lender and a borrower. More specific values take precedence. */\nexport interface ILendingRelationship {\n /** ID of the lender participant for this relationship. */\n Lender: JSON_Participant;\n\n /** ID of the borrower participant for this relationship. If zero, applies to all borrowers this lender faces. */\n Borrower: JSON_Participant;\n\n /** Indicates the status of the relationship. */\n RelationshipStatus: LendingRelationshipStatusEnum;\n\n /** Update timestamp for DB Poller Infrastructure */\n Timestamp: JSON_UTCTimestamp;\n\n /** Esign platform identifier of the term sheet template for this relationship. */\n TermSheetTemplateID: string;\n\n /** The ID of the document gateway to use for the term sheet. */\n TermSheetGateway: JSON_ESignGateway;\n\n /** An increasing sequence number for this relationship. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** ID of user who created this revision, i.e. updated the lending relationship. */\n RevisionBy: number;\n\n /** Indicates whether transfer automation should be used for the lender in this relationship. */\n LenderTransferAutomationStatus: TransferAutomationStatusEnum;\n\n /** Indicates whether transfer automation should be used for the borrower in this relationship. */\n BorrowerTransferAutomationStatus: TransferAutomationStatusEnum;\n\n /** The settings for currencies lent by this lender. */\n PrincipalCurrencies: ILendingRelationship8010PrincipalCurrencies[];\n\n /** The settings for currencies accepted as collateral by this lender. */\n CollateralCurrencies: ILendingRelationship8010CollateralCurrencies[];\n\n /** Recipients of the term sheet for this relationship. */\n TermSheetRecipients: ILendingRelationship8010TermSheetRecipients[];\n}\n\n/** The settings for currencies accepted as collateral by this lender. */\nexport interface ILendingRelationship8010CollateralCurrencies {\n /** Currency ID for these settings. If zero, applies to all currencies. */\n Currency: string;\n\n /** The status of this currency for use as collateral with this lender. */\n Status: LoanCollateralCurrencyStatusEnum;\n}\n\n/** The settings for currencies lent by this lender. */\nexport interface ILendingRelationship8010PrincipalCurrencies {\n /** Currency ID for these settings. If zero, applies to all currencies. */\n Currency: string;\n\n /** The status of this currency for borrowing from this lender. */\n Status: LoanPrincipalCurrencyStatusEnum;\n\n /** The Qty requested must be equal to or greater than this value which is denominated in CurrencyID. */\n MinQty: JSON_Decimal;\n}\n\n/** Recipients of the term sheet for this relationship. */\nexport interface ILendingRelationship8010TermSheetRecipients {\n /** ID of the Participant this recipient is associated with. */\n Participant: JSON_Participant;\n\n /** The name to refer this recipient as in the esign platform envelope. */\n DisplayName: string;\n\n /** Delivery identifier used by esign platforms for this recipient. */\n DeliveryID: string;\n}\n\n/** Message for delivery of Customer API MarketDataSnapshots */\nexport interface ICustomerMarketDataSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Optional RequestID Indicates initial Snapshot on reused view */\n ViewRequestID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ID of the counterparty that is requesting */\n Counterparty: JSON_Counterparty;\n\n /** Status of customer connection to dealer liquidity */\n Status: ConnectionStatusEnum;\n\n /** Spread applied both to bid and ask price like 0.01 */\n Spread: JSON_Decimal;\n\n /** Time to live for individual quote in millisecond */\n QuoteTTL: JSON_DurationMillis | undefined;\n\n /** If price improvement happens this param indicates how much price improvement benefit goes to counterparty */\n PriceImprovementRatio: JSON_Decimal;\n\n /** Price leniency when deciding whether to accept a previously quoted price as a ratio of the customer price. This specifies the maximum amount of slippage that the dealer is willing to take. */\n AcceptPriceLeniency: JSON_Decimal;\n\n /** Minimum supported MarketData throttle */\n MinMarketDataThrottle: JSON_DurationMillis | undefined;\n\n /** Order version of PriceImprovementRatio - regular is for RFQ */\n OrderPriceImprovementRatio: JSON_Decimal;\n\n /** Spread applied to bid price like 0.01 */\n BidSpread: JSON_Decimal;\n\n /** Spread applied to offer price like 0.01 */\n OfferSpread: JSON_Decimal;\n\n /** Unique ID of the customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** View ID */\n ViewID: JSON_Int64ID;\n\n /** Requested Price Depth for Market View */\n SizeBuckets: ICustomerMarketDataSnapshot4427SizeBuckets[];\n\n /** Bid Entries */\n Bids: ICustomerMarketDataSnapshot4427Bids[];\n\n /** Offer Entries */\n Offers: ICustomerMarketDataSnapshot4427Offers[];\n\n /** Requested Price Depth for Market View - Amounts */\n AmountBuckets: ICustomerMarketDataSnapshot4427AmountBuckets[];\n}\n\n/** Requested Price Depth for Market View - Amounts */\nexport interface ICustomerMarketDataSnapshot4427AmountBuckets {\n /** Amount Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** Bid Entries */\nexport interface ICustomerMarketDataSnapshot4427Bids {\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n\n /** Bid Amount */\n Amount: JSON_Decimal;\n}\n\n/** Offer Entries */\nexport interface ICustomerMarketDataSnapshot4427Offers {\n /** Offer Price */\n Price: JSON_Decimal;\n\n /** Offer Size */\n Size: JSON_Decimal;\n\n /** Offer Amount */\n Amount: JSON_Decimal;\n}\n\n/** Requested Price Depth for Market View */\nexport interface ICustomerMarketDataSnapshot4427SizeBuckets {\n /** Size Bucket */\n Bucket: JSON_Decimal;\n}\n\n/** */\nexport interface ICustomerOrderHedgePreviewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Unique ID for this preview request */\n RequestID: JSON_Int64ID;\n\n /** An enum denoting what type of preview is requested */\n PreviewType: CustomerOrderPreviewTypeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Hedge execution reports */\n HedgeExecutions: ICustomerOrderHedgePreviewRequest4428HedgeExecutions[];\n}\n\n/** Hedge execution reports */\nexport interface ICustomerOrderHedgePreviewRequest4428HedgeExecutions {\n /** Hedge execution reports */\n ExecutionReport: IOMSExecutionReport;\n}\n\n/** */\nexport interface ICustomerOrderHedgePreview {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Unique ID for this preview request */\n RequestID: JSON_Int64ID;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** internal order reject reason */\n InternalOrdRejReason: OrdRejReasonEnum;\n\n /** Text */\n Text: string;\n\n /** Internal reason for rejection */\n InternalText: string;\n\n /** quote / pricing parameters */\n PricingParameters: IQuoteParameters;\n\n /** A preview of the hedge new order request */\n RoutedNewOrderSingle: IOMSNewOrderSingle;\n\n /** A preview of the hedge new order cancel replace request */\n RoutedOrderCancelReplaceRequest: IOMSOrderCancelReplaceRequest;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Customer execution reports */\n CustomerExecutions: ICustomerOrderHedgePreview4429CustomerExecutions[];\n}\n\n/** Customer execution reports */\nexport interface ICustomerOrderHedgePreview4429CustomerExecutions {\n /** Customer execution reports */\n ExecutionReport: ICustomerExecutionReport;\n}\n\n/** Aggregation definition */\nexport interface IAggregation {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique ID of the aggregation */\n Aggregation: JSON_Int64ID;\n\n /** Unique name of the aggregation */\n Name: string;\n\n /** Display name for the aggregation */\n DisplayName: string;\n\n /** Type of aggregation */\n AggregationType: AggregationTypeEnum;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** Market available for an aggregation */\nexport interface IAggregationMarket {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Unique ID of the aggregation */\n Aggregation: JSON_Aggregation;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Aggregation market state */\n Mode: ModeEnum;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** An summary containing PnL details regarding a customer order's execution */\nexport interface ICustomerOrderSummary {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** Revision of this customer order summary */\n Revision: number;\n\n /** ID of the associate customer order */\n OrderID: string;\n\n /** ID of the associate customer RFQ */\n RFQID: string;\n\n /** ID of the associate customer execution report */\n ExecID: string;\n\n /** Side of the associated order */\n Side: SideEnum;\n\n /** Last action that updated the order summary */\n LastAction: CustomerOrderSummaryActionEnum;\n\n /** Manual dealer action on this order */\n DealerAction: OrderAdminActionEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** Currency ID for the quote currency */\n AmountCurrency: string;\n\n /** ID of the customer's market account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** ID of the counterparty that the order is made for. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** Status of the associated order */\n OrdStatus: OrdStatusEnum;\n\n /** Target spread for the order */\n TargetSpread: JSON_Decimal;\n\n /** Order quantity requested by the customer, expressed in the base currency */\n Quantity: JSON_Decimal;\n\n /** Order amount requested by the customer, expressed in the quote currency */\n Amount: JSON_Decimal;\n\n /** Average dealer price for the order */\n AvgDealerPx: JSON_Decimal;\n\n /** Average dealer all-in price for the order */\n AvgDealerPxAllIn: JSON_Decimal;\n\n /** Cumulative dealer quantity */\n CumDealerQty: JSON_Decimal;\n\n /** Cumulative dealer amount */\n CumDealerAmt: JSON_Decimal;\n\n /** Cumulative dealer fee */\n CumDealerFee: JSON_Decimal;\n\n /** Currency ID for the dealer fee */\n DealerFeeCurrency: string;\n\n /** Average hedge price for the order */\n AvgHedgePx: JSON_Decimal;\n\n /** Average hedge all-in price for the order */\n AvgHedgePxAllIn: JSON_Decimal;\n\n /** Cumulative hedge quantity */\n CumHedgeQty: JSON_Decimal;\n\n /** Cumulative hedge amount */\n CumHedgeAmt: JSON_Decimal;\n\n /** Cumulative hedge fee */\n CumHedgeFee: JSON_Decimal;\n\n /** Currency ID for the hedge fee */\n HedgeFeeCurrency: string;\n\n /** Actual spread for the order */\n ActualSpread: JSON_Decimal;\n\n /** Sales commission for the order */\n SalesCommission: JSON_Decimal;\n\n /** Order Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Dealer leniency expressed in ratio */\n DealerLeniency: JSON_Decimal;\n\n /** Per-currency PnL details */\n PerCurrencyPnL: ICustomerOrderSummary4432PerCurrencyPnL[];\n\n /** Per-currency fee details */\n PerCurrencyFees: ICustomerOrderSummary4432PerCurrencyFees[];\n}\n\n/** Per-currency fee details */\nexport interface ICustomerOrderSummary4432PerCurrencyFees {\n /** Currency ID */\n Currency: string;\n\n /** Fee amount for the currency */\n Amount: JSON_Decimal;\n}\n\n/** Per-currency PnL details */\nexport interface ICustomerOrderSummary4432PerCurrencyPnL {\n /** Currency ID */\n Currency: string;\n\n /** PnL amount for the currency */\n Amount: JSON_Decimal;\n}\n\n/** Request to regenerate customer order summary */\nexport interface ICustomerOrderSummaryRegenRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n User: JSON_User;\n\n /** ID of the associate customer order */\n OrderID: string;\n\n /** ID of the associated customer RFQ */\n RFQID: string;\n\n /** ExecID */\n DealerTradeID: string;\n\n /** Revision of the trade */\n DealerTradeRevision: number;\n}\n\n/** A participant in the loan marketplace */\nexport interface IParticipant {\n /** Update timestamp for DB Poller Infrastructure */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of a participant in the loan marketplace */\n Participant: JSON_Int64ID;\n\n /** Name of participant in the loan marketplace */\n Name: string;\n\n /** The underlying participant entity identifier */\n EntityID: number;\n\n /** The type of the underlying participant entity */\n EntityType: ParticipantEntityTypeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Friendly participant name for display */\n DisplayName: string;\n\n /** Revision */\n Revision: number;\n}\n\n/** Header for RPC message passed along every request/response */\nexport interface IRPCHeader {\n /** Correlation ID to associate RPC request/response */\n RequestID: JSON_Int64ID;\n\n /** Bitmap of message characteristics */\n Indicator: Record;\n}\n\n/** Historical positions captured from snapshots */\nexport interface IHistoricalAccountPosition {\n /** Internal as-of time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Asset of this position entry */\n Asset: string;\n\n /** Historical position amount */\n Position: JSON_Decimal;\n\n /** Latest time this position was updated */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Currency ID for equivalence. No rates if zero */\n EquivalentCurrency: string;\n\n /** Position converted to equivalent currency */\n EquivalentPosition: JSON_Decimal;\n\n /** Time resolution of this position snapshot */\n Resolution: ResolutionEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** ConversionRate in equivalent currency */\n EquivalentRate: JSON_Decimal;\n\n /** Equity at the timestamp */\n Equity: JSON_Decimal;\n\n /** InitialMargin at the timestamp */\n InitialMargin: JSON_Decimal;\n\n /** MaintenanceMargin at the timestamp */\n MaintenanceMargin: JSON_Decimal;\n}\n\n/** config setting for loan user configs */\nexport interface ILoanUserConfig {\n /** Time in nanos since epoch at which this config was updated */\n Timestamp: JSON_UTCTimestamp;\n\n /** User ID */\n LoanUser: JSON_User;\n\n /** Config Status */\n Mode: ModeEnum;\n\n /** Revision */\n Revision: number;\n\n /** Key in Key-Value Marketplace User Config Pairs */\n Key: string;\n\n /** Value in Key-Value Marketplace User Config Pairs */\n Value: string;\n}\n\n/** */\nexport interface ICustomerOrderPayPreviewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the counterparty requesting preview */\n Counterparty: JSON_Counterparty;\n\n /** Customer user requesting preview */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Selected customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID for this preview request */\n RequestID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID */\n Currency: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Optional equivalent currency ID */\n EquivalentCurrency: string;\n\n /** Strategy ID of the order strategy used */\n Strategy: JSON_Strategy;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n}\n\n/** */\nexport interface ICustomerOrderPayPreview {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of the counterparty requesting preview */\n Counterparty: JSON_Counterparty;\n\n /** Customer user requesting preview */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Selected customer account */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID for this preview request */\n RequestID: JSON_Int64ID;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Currency ID */\n Currency: string;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Amount currency ID */\n AmountCurrency: string;\n\n /** Estimated fee */\n Fee: JSON_Decimal;\n\n /** Fee currency ID */\n FeeCurrency: string;\n\n /** Estimated total expressed in equivalent currency */\n EstimatedTotal: JSON_Decimal;\n\n /** Optional equivalent currency ID */\n EquivalentCurrency: string;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Side */\n Side: SideEnum;\n\n /** Returns true if order is likely to be rejected wrt balances */\n BalanceExceeding: BoolEnum;\n\n /** Status of the pay preview */\n Status: CustomerOrderPayPreviewStatusEnum;\n}\n\n/** Heartbeat message to be used in accordance with the sequencer */\nexport interface IHeartbeatMessage {\n /** Unique identifier for a service */\n ServiceID: number;\n\n /** The service's partition ID */\n PartitionID: number;\n}\n\n/** Admin action to control loan quote */\nexport interface ILoanQuoteAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch that this command was received. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this request. */\n QuoteReqID: string;\n\n /** The NegotiationID of the LoanQuote to be acted upon. */\n NegotiationID: JSON_Int64ID;\n\n /** The ID of the rejecting user. */\n User: JSON_User;\n\n /** Action type to carry out */\n Action: LoanQuoteAdminActionEnum;\n}\n\n/** RawMessage */\nexport interface IRawMessage {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** RequestID this message was received for. */\n RequestID: number;\n\n /** Direction */\n Direction: MessageDirectionEnum;\n\n /** Data */\n Data: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Status messages around a FIX Connection */\nexport interface IRawConnectionEvent {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** RequestID this message was received for. */\n RequestID: number;\n\n /** Data */\n Data: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Represents a loan whose negotiation has successfully concluded. */\nexport interface ILoan {\n /** Timestamp of when the most recent update was applied. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID for the loan. Generated by Talos. */\n LoanID: JSON_Int64ID;\n\n /** An increasing sequence number for this LoanID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** ID of user who created this revision, i.e. sent the command changing the state. */\n RevisionBy: number;\n\n /** The NegotiationID of the LoanQuote whose negotiation led to this Loan. */\n NegotiationID: JSON_Int64ID;\n\n /** Timestamp of when the the loan was committed to. */\n OriginationTime: JSON_UTCTimestamp;\n\n /** The ClientID from the most recent state change command applied to this message. */\n ClientID: string;\n\n /** The current status of this loan. */\n Status: LoanStatusEnum;\n\n /** ID of the participant representing the lender. */\n Lender: JSON_Participant;\n\n /** ID of the participant representing the borrower. */\n Borrower: JSON_Participant;\n\n /** Currency ID for the borrowed currency. */\n PrincipalCurrency: string;\n\n /** Currency ID for the collateral currency, if secured. */\n CollateralCurrency: string | undefined;\n\n /** The quantity of principal to be borrowed. */\n Qty: JSON_Decimal;\n\n /** The interest rate due on borrowed Qty per the term sheet conventions. */\n Rate: JSON_Decimal;\n\n /** The ratio of collateral value to principal value. */\n CollateralRatio: JSON_Decimal;\n\n /** The termination type of this loan, fixed or open. */\n TerminationType: LoanQuoteTerminationTypeEnum;\n\n /** The date and time when the loan will terminate. Omitted if termination type is Open and termination notice has not been given. */\n TerminationTime: JSON_UTCTimestamp | undefined;\n\n /** An increasing sequence number for this LoanID and Revision. A new value for the same Revision indicates updated information is available without the Loan changing. Commonly used to report errors on commands received since the last state change. Generated by Talos. */\n AmendmentCount: number;\n\n /** If present, the reason an attempt at handling the loan failed. */\n HandlingError: LoanHandlingErrorEnum;\n\n /** Summary of the current quote state suitable for display. Will be populated if HandlingError is present. */\n Text: string;\n\n /** Loan Participants who should receive this message */\n EligibleRecipients: ILoan8050EligibleRecipients[];\n}\n\n/** Loan Participants who should receive this message */\nexport interface ILoan8050EligibleRecipients {\n /** ID of a participant receiving the loan error. */\n Participant: JSON_Participant;\n}\n\n/** A transaction from one participant to another to be resolved with the help of an account link. */\nexport interface ILoanTransaction {\n /** Timestamp of when the most recent update was applied. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID for the transaction. Generated by Talos. */\n TransactionID: JSON_Int64ID;\n\n /** The ID of the Loan this transaction relates to. */\n LoanID: JSON_Int64ID;\n\n /** An increasing sequence number for this TransactionID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** ID of user who created this revision, i.e. sent the command changing the state. */\n RevisionBy: number;\n\n /** Timestamp of when the first message for this transaction ID was created. */\n CreateTime: JSON_UTCTimestamp;\n\n /** The ClientID from the most recent state change command applied to this message. */\n ClientID: string;\n\n /** The current status of this transaction. */\n Status: LoanTransactionStatusEnum;\n\n /** ID of the participant sending the transaction. */\n FromParticipant: JSON_Participant;\n\n /** ID of the participant receiving the transaction. */\n ToParticipant: JSON_Participant;\n\n /** The amount of currency to be transacted. */\n Amount: JSON_Decimal;\n\n /** The exchange rate fixing, if any, used to calculate the Amount. */\n ConversionRate: JSON_Decimal;\n\n /** Currency ID to be transacted. */\n Currency: string;\n\n /** Which facet of the instrument the transaction applies to. */\n Type: LoanTransactionTypeEnum;\n\n /** The ClientID used to request a transfer for this transaction. */\n TransferClientID: string;\n\n /** ID of the transfer returned by the transfer subsystem in response to our request for this transaction. */\n SenderTransferID: JSON_Int64ID | undefined;\n\n /** The sender's market account id to be used as a source of funds. */\n SendersFromMarketAccount: JSON_MarketAccount | undefined;\n\n /** The sender's market account id to be used as the funds' destination. */\n SendersToMarketAccount: JSON_MarketAccount | undefined;\n\n /** The recipient's market account id to be used as the funds' destination. */\n RecipientsToMarketAccount: JSON_MarketAccount | undefined;\n\n /** The ViewID assigned to this transaction's conversion rate request. */\n ConversionRateViewID: JSON_Int64ID | undefined;\n\n /** An increasing sequence number for this TransactionID and Revision. A new value for the same Revision indicates updated information is available without the Transaction changing. Commonly used to report errors on commands received since the last state change. Generated by Talos. */\n AmendmentCount: number;\n\n /** If present, the reason an attempt at handling the Loan Transaction failed. */\n HandlingError: LoanTransactionHandlingErrorEnum;\n\n /** Summary of the current quote state suitable for display. Will be populated if HandlingError is present. */\n Text: string;\n\n /** A note from the sender to be shared with the recipient. */\n Comments: string;\n\n /** Loan Participants who should receive this message */\n EligibleRecipients: ILoanTransaction8060EligibleRecipients[];\n}\n\n/** Loan Participants who should receive this message */\nexport interface ILoanTransaction8060EligibleRecipients {\n /** ID of a participant receiving the transaction error. */\n Participant: JSON_Participant;\n}\n\n/** A command to advance the transaction by initiating a transfer. */\nexport interface ILoanTransactionSubmission {\n /** Timestamp of when the command was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this command. */\n ClientID: string;\n\n /** The ID of the ParticipantLinkTransaction to submit. */\n TransactionID: JSON_Int64ID;\n\n /** The revision of the ParticipantLinkTransaction to accept. It's only possible to accept the most recent revision. */\n TargetRevision: number;\n\n /** ID of the submitting participant. */\n Participant: JSON_Participant;\n\n /** The ID of the submitting user. */\n User: JSON_User;\n\n /** A note from the sender to be shared with the recipient. */\n Comments: string;\n}\n\n/** A command to modify the transaction. */\nexport interface ILoanTransactionUpdate {\n /** Timestamp of when the command was received by Talos. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this command. */\n ClientID: string;\n\n /** The ID of the ParticipantLinkTransaction to update. */\n TransactionID: JSON_Int64ID;\n\n /** The revision of the ParticipantLinkTransaction to update. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** The revised exchange rate fixing for the transaction. */\n ConversionRate: JSON_Decimal;\n\n /** ID of the updating participant. */\n Participant: JSON_Participant;\n\n /** The ID of the updating user. */\n User: JSON_User;\n}\n\n/** Relates the source and destination market accounts to be used between two participants. */\nexport interface IParticipantTransferConfig {\n /** Timestamp of when the config was last updated. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID for the config. Generated by Talos. */\n ConfigID: JSON_Int64ID;\n\n /** Account IDs will be from the perspective of this participant. */\n OwnerParticipant: JSON_Participant;\n\n /** Config applies when the participant with this ID is sending. */\n FromParticipant: JSON_Participant;\n\n /** Config applies when the participant with this ID is receiving.. */\n ToParticipant: JSON_Participant;\n\n /** Config applies to the Currency with this ID. */\n Currency: string;\n\n /** An increasing sequence number for this ConfigID. A new value indicates state has changed. Generated by Talos. */\n Revision: number;\n\n /** ID of user who created this revision, i.e. sent the command changing the state. */\n RevisionBy: number;\n\n /** ID from the owner's API of the MarketAccount to source sender's funds from. */\n FromMarketAccount: JSON_MarketAccount | undefined;\n\n /** ID from the owner's API of the recipient's MarketAccount to send funds to. */\n ToMarketAccount: JSON_MarketAccount | undefined;\n\n /** Update action to identify in and out of scope events. */\n UpdateAction: UpdateActionEnum;\n\n /** The blockchain address associated with the ToMarketAccountID. */\n ToBlockchainAddress: string;\n}\n\n/** (TenantID:OrgID)(ResourceName:MarketExecutionReport DatabaseName:market_execution_reports_new PartitionKey:EID Key:EID TimestampField:Timestamp AeronCols:true ConstantGroupLength:true PrimaryKey:Generated IDQueryFields:OrderID,ParentOrderID IsPrimaryResource:true DBType:OrgDB)(ResourceName:MarketOrder DatabaseName:market_orders_new PartitionKey:OID Key:OID TimestampField:SubmitTime,Timestamp AeronCols:true ConstantGroupLength:true PrimaryKey:Generated IDQueryFields:ParentOrderID DBType:OrgDB) */\nexport interface IExecutionReport {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** OrderID of this order at the market */\n OrderID: string;\n\n /** ClOrdID of this order at the market */\n ClOrdID: string;\n\n /** OrigClOrdID of this order at the market */\n OrigClOrdID: string;\n\n /** Order Submission Time in nanoseconds since Unix epoc */\n SubmitTime: JSON_UTCTimestamp;\n\n /** ExecID of this execution at the market */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the last update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Cumulative quantity */\n CumQty: JSON_Decimal;\n\n /** Average price */\n AvgPx: JSON_Decimal;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Cumulative amount */\n CumAmt: JSON_Decimal;\n\n /** Cumulative fee */\n CumFee: JSON_Decimal;\n\n /** Currency ID for the cumulative fee */\n FeeCurrency: string;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** ClOrdID of the request we're responding to */\n ClOID: JSON_Int64ID;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** Internal ID of the quote; optional */\n QID: JSON_Int64ID;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Parent OMS order OrderID, may be blank for orders that do not belong to an OMS order */\n ParentOrderID: string;\n\n /** Internal ID of request for quote */\n RID: JSON_Int64ID;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** If present determines the units of PricingReference. Price is always in quote currency */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** User ID */\n User: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Bitmap of execution instructions */\n ExecutionInstructions: Record;\n\n /** Child order RequestIndicator */\n RequestIndicator: RequestIndicatorTypeEnum;\n\n /** Additional reason for ExecType */\n ExecTypeReason: ExecTypeReasonEnum;\n\n /** Text */\n Text: string;\n\n /** Market parameters */\n Parameters: IMarketParameters;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** End-user action to control loan */\nexport interface ILoanRequest {\n /** Internal time in number of nanoseconds since Unix epoch that this command was received. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this command. */\n ClientID: string;\n\n /** The ID of the Loan this request relates to. */\n LoanID: JSON_Int64ID;\n\n /** The revision of the Loan to be modified. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** ID of the participant the user issuing the command belongs to. */\n Participant: JSON_Participant;\n\n /** The ID of the user issuing the command. */\n User: JSON_User;\n\n /** Action type to carry out */\n Action: LoanActionEnum;\n}\n\n/** Talos admin action to control loan. */\nexport interface ILoanAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch that this command was received. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this command. */\n ClientID: string;\n\n /** The ID of the Loan this transaction relates to. */\n LoanID: JSON_Int64ID;\n\n /** The revision of the Loan to be modified. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** The ID of the user issuing the command. */\n User: JSON_User;\n\n /** Action type to carry out */\n Action: LoanAdminActionEnum;\n}\n\n/** Information about OMS Decision */\nexport interface IOMSDecisionInfo {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** DecisionID */\n OrderID: string;\n\n /** Target leaves quantity */\n TargetLeavesQty: JSON_Decimal;\n\n /** Target price */\n TargetPrice: JSON_Decimal;\n\n /** Type of decision */\n DecisionLogType: DecisionLogTypeEnum;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n\n /** Multileg reporting type */\n MultilegReportingType: MultilegReportingTypeEnum;\n\n /** Target pricing reference */\n TargetPricingReference: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Nanoseconds taken for order evaluation for this decision */\n OrderEvalTime: number;\n\n /** Number of decision action logs */\n Messages: IOMSDecisionInfo5010Messages[];\n\n /** Number of markets used for this order */\n Markets: IOMSDecisionInfo5010Markets[];\n\n /** Number of crossing and resting decisions */\n Decisions: IOMSDecisionInfo5010Decisions[];\n\n /** Number of open orders */\n OpenOrders: IOMSDecisionInfo5010OpenOrders[];\n\n /** Number of pending parent orders */\n PendingRequests: IOMSDecisionInfo5010PendingRequests[];\n\n /** Order properties */\n Properties: IOMSDecisionInfo5010Properties[];\n\n /** Expected prices and sizes for each liquidity bucket and its child markets considered for the decision. */\n LiquidityBuckets: IOMSDecisionInfo5010LiquidityBuckets[];\n}\n\n/** Balances */\nexport interface IMarketsBalances {\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Available amount */\n Amount: JSON_Decimal;\n\n /** Amount */\n AvailableAmount: JSON_Decimal;\n}\n\n/** Number of child orders */\nexport interface IPendingRequestsChildOrders {\n /** OrderID */\n OID: JSON_Int64ID;\n\n /** Number of requested cancel orders */\n CancelRequestCount: number;\n\n /** Number of accepted cancel orders */\n CancelAcceptedCount: number;\n\n /** Number of reejected cancel orders */\n CancelRejectedCount: number;\n}\n\n/** Number of crossing and resting decisions */\nexport interface IOMSDecisionInfo5010Decisions {\n /** Market ID */\n Market: JSON_Market;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Show quantity */\n ShowQty: JSON_Decimal;\n\n /** Resting, crossing etc */\n AllocationType: AllocationTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Fee allocated */\n Fee: JSON_Decimal;\n\n /** Level index */\n LevelIndex: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Reason for the allocation, ie.: spread collapsed, etc */\n AllocationReason: Record;\n\n /** Reduce only flag */\n ReduceOnly: BoolEnum;\n\n /** Open child orders for this decision */\n Orders: IDecisionsOrders[];\n}\n\n/** Expected prices and sizes for each liquidity bucket and its child markets considered for the decision. */\nexport interface IOMSDecisionInfo5010LiquidityBuckets {\n /** Market ID of the provider this record applies to. If zero this record is aggregate data for a Liquidity Bucket. */\n Market: JSON_Market;\n\n /** Expected fill price fee inclusive */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected fill qty */\n ExpectedFillQty: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** If the record is a Liquidity bucket, the bucket's index. Otherwise the index of the Liquidity Bucket this provider was part of. */\n LiquidityBucketIdx: number;\n}\n\n/** Number market order book levels */\nexport interface IMarketsMarketLevels {\n /** Market Data entry price */\n MDEntryPx: JSON_Decimal;\n\n /** Market Data entry size */\n MDEntrySize: JSON_Decimal;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n}\n\n/** Number of markets used for this order */\nexport interface IOMSDecisionInfo5010Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Number of times new order rejected */\n NewCount: number;\n\n /** First new order error time */\n FirstNewTime: JSON_UTCTimestamp;\n\n /** Last new order error time */\n LastNewTime: JSON_UTCTimestamp;\n\n /** Last price update receive time in nanoseconds */\n PriceUpdateTime: JSON_UTCTimestamp;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n PriceTransactTime: JSON_UTCTimestamp;\n\n /** Last price update SessionID. */\n PriceSessionID: JSON_Int64ID;\n\n /** Last price update SequenceNo. */\n PriceSequenceNo: number;\n\n /** Average spread in bps */\n MASpread: JSON_Decimal;\n\n /** Period of MA for the spread */\n MASpreadPeriod: JSON_DurationMillis;\n\n /** Maker fee */\n MakerFeeRate: JSON_Decimal;\n\n /** Taker fee */\n TakerFeeRate: JSON_Decimal;\n\n /** Current available quantity to buy */\n AvailableBuy: JSON_Decimal;\n\n /** Current available quantity to sell */\n AvailableSell: JSON_Decimal;\n\n /** Current available quantity to buy respecting trading windows */\n MaxBuyOrderSize: JSON_Decimal;\n\n /** Current available quantity to sell respecting trading windows */\n MaxSellOrderSize: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Number of skipped resting levels */\n SkippedRestingLevels: number;\n\n /** Size of the skipped resting levels */\n SkippedRestingSize: JSON_Decimal;\n\n /** Currency ID for the skipped resting sizes */\n SkippedRestingSizeCurrency: string;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Median spread in bps */\n MedianSpread: JSON_Decimal;\n\n /** Period of median spread */\n MedianSpreadPeriod: JSON_DurationMillis;\n\n /** Max allocation available to this market */\n MaxAllocationSize: JSON_Decimal;\n\n /** Open position on current symbol/market from gateway */\n OpenPosition: JSON_Decimal;\n\n /** Leaves quantity of all open orders on current symbol/market with same trading direction across the current OMS instance */\n AggregatedOpenOrderLeavesQty: JSON_Decimal;\n\n /** Leaves quantity of all open orders originated from current order */\n OpenOrderLeavesQty: JSON_Decimal;\n\n /** Available quantity to send ReduceOnly orders */\n AvailableToReduce: JSON_Decimal;\n\n /** Position last updated time */\n PositionUpdatedTime: JSON_UTCTimestamp;\n\n /** Most recent time of position related exchange feedback time */\n LastPosFeedbackTime: JSON_UTCTimestamp;\n\n /** Number of times child orders got rate limited */\n RateLimitCount: number;\n\n /** Equity reported by the venue */\n Equity: JSON_Decimal;\n\n /** Maintenance margin reported by the venue */\n MaintenanceMargin: JSON_Decimal;\n\n /** Equity margin ratio limit */\n EquityMarginRatioLimit: JSON_Decimal;\n\n /** Factor used on market levels to adjust prices when comparing */\n PriceAdjustmentFactor: JSON_Decimal;\n\n /** Conversion rate for unified liquidity symbols */\n UnifiedLiquidityConversionRate: JSON_Decimal;\n\n /** Initial margin reported by the venue */\n InitialMargin: JSON_Decimal;\n\n /** Number market order book levels */\n MarketLevels: IMarketsMarketLevels[];\n\n /** Balances */\n Balances: IMarketsBalances[];\n\n /** Real-time moving averages of the market where the order would rest */\n MovingAverages: IMarketsMovingAverages[];\n}\n\n/** Number of decision action logs */\nexport interface IOMSDecisionInfo5010Messages {\n /** Log Message */\n Text: string;\n}\n\n/** Real-time moving averages of the market where the order would rest */\nexport interface IMarketsMovingAverages {\n /** Index of the market level */\n LevelIndex: number;\n\n /** Average level size */\n AverageSize: JSON_Decimal;\n}\n\n/** Number of open orders */\nexport interface IOMSDecisionInfo5010OpenOrders {\n /** OrderID */\n OID: JSON_Int64ID;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Time order last acted upon */\n LastActionTime: JSON_UTCTimestamp;\n\n /** Times trying to cancel */\n CancelCount: number;\n\n /** First cancel time */\n FirstCancelTime: JSON_UTCTimestamp;\n\n /** Last cancel time */\n LastCancelTime: JSON_UTCTimestamp;\n\n /** Amount matched */\n MatchedSize: JSON_Decimal;\n\n /** Reduce only flag */\n ReduceOnly: BoolEnum;\n}\n\n/** Open child orders for this decision */\nexport interface IDecisionsOrders {\n /** OrderID */\n OID: JSON_Int64ID;\n}\n\n/** Number of pending parent orders */\nexport interface IOMSDecisionInfo5010PendingRequests {\n /** ClOrdID */\n ClOrdID: string;\n\n /** Request type */\n RequestType: ExecTypeEnum;\n\n /** Number of requested new orders */\n NewRequestCount: number;\n\n /** Number of accepted new orders */\n NewAcceptedCount: number;\n\n /** Number of reejected new orders */\n NewRejectedCount: number;\n\n /** Number of child orders */\n ChildOrders: IPendingRequestsChildOrders[];\n}\n\n/** Order properties */\nexport interface IOMSDecisionInfo5010Properties {\n /** Property */\n Property: OMSOrderPropertyEnum;\n\n /** Value of property */\n Value: JSON_Decimal;\n\n /** Market ID (valid only if property is market dependent) */\n Market: JSON_Market;\n}\n\n/** Talos admin action to control loan transaction. */\nexport interface ILoanTransactionAdminRequest {\n /** Internal time in number of nanoseconds since Unix epoch that this command was received. */\n Timestamp: JSON_UTCTimestamp;\n\n /** A unique ID provided by the sender of this command. */\n ClientID: string;\n\n /** The ID of the LoanTransaction this request relates to. */\n TransactionID: JSON_Int64ID;\n\n /** The revision of the LoanTransaction to be modified. It's only possible to update the most recent revision. */\n TargetRevision: number;\n\n /** The ID of the user issuing the command. */\n User: JSON_User;\n\n /** Action type to carry out */\n Action: LoanTransactionAdminActionEnum;\n}\n\n/** Represents the membership of a Subaccount (any type) in a particular Rollup, without cycles. */\nexport interface IRollupMembership {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of this parent rollup SubAccount */\n ParentID: number;\n\n /** ID of this member SubAccount */\n ChildID: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of this rollupmembership */\n Revision: number;\n\n /** ID of user who last updated rollup membership record */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** An Account that contains some balances on a given Market */\nexport interface IMarketAccount {\n /** Unique ID of the account */\n MarketAccountID: number;\n\n /** Unique ID that market assigns to this account. Unique only within the market */\n SourceAccountID: string;\n\n /** ID of the market this account belongs to. */\n Market: JSON_Market;\n\n /** Credential associated with this account. 0 if this is an external account */\n CredentialID: number;\n\n /** ID of the counterparty that owns this account. For client owned accounts this is 0 */\n Counterparty: JSON_Counterparty;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Type of ownership defined for the market account */\n Ownership: MarketAccountOwnershipEnum;\n\n /** Status of the market account */\n Status: MarketAccountStatusEnum;\n\n /** Type of the market account */\n Type: MarketAccountTypeEnum;\n\n /** Exposure mode to use for the market account */\n ExposureMode: ExposureModeEnum;\n\n /** Capabilities */\n Capabilities: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** ID of user who last updated the market account */\n UpdateUser: JSON_User;\n\n /** Reference data used with external accounts for various purposes */\n ReferenceData: string;\n\n /** Description of the account */\n Description: string;\n\n /** Display name for the account */\n DisplayName: string;\n\n /** Miscellaneous market account data */\n SourceData: string;\n\n /** Description of the account type */\n TypeDescription: string;\n\n /** Arbitrary string to group accounts */\n Group: string;\n\n /** Unique name of the market account */\n Name: string;\n}\n\n/** Position constraint for limiting subaccount orders */\nexport interface ISubaccountPositionLimit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this Limit */\n LimitID: JSON_Int64ID;\n\n /** Side of the position limit */\n Direction: PositionSideTypeEnum;\n\n /** Position threshold to emit a warning (optional) */\n WarnThreshold: JSON_Decimal;\n\n /** Position threshold to prevent submitting the order */\n RejectThreshold: JSON_Decimal;\n\n /** The asset of the threshold definitions */\n ThresholdAsset: string;\n\n /** SubaccountID (book or rollup) of this position limit */\n SubAccount: JSON_SubAccount;\n\n /** Asset for which this limit applies */\n MatchAsset: string;\n\n /** Enable or disable this limit */\n Mode: ModeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of this subaccount position limit */\n Revision: number;\n\n /** ID of user who last updated this subaccount position limit */\n UpdateUser: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Application scope of this limit */\n Scope: PositionLimitScopeEnum;\n\n /** Description of this limit */\n Description: string;\n}\n\n/** (ResourceName:ServiceConfigurationSnapshot DatabaseName:service_configuration_snapshots Key:ServiceConfigurationSnapshotID TimestampField:Timestamp AeronCols:false ConstantGroupLength:true PrimaryKey:Generated DBType:OrgDB) */\nexport interface IServiceConfigurationSnapshot {\n /** The service originating this transaction */\n SourceService: JSON_ServiceIdentifier;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Snapshot ID */\n ServiceConfigurationSnapshotID: number;\n\n /** Git hash */\n GitHash: string;\n\n /** Release version */\n ReleaseVersion: string;\n\n /** Schema version */\n SchemaVersion: number;\n\n /** List of configs */\n ServiceConfig: IServiceConfigurationSnapshot8085ServiceConfig[];\n}\n\n/** List of configs */\nexport interface IServiceConfigurationSnapshot8085ServiceConfig {\n /** Configuration Key */\n Key: string;\n\n /** Configuration value as a string */\n DefaultValue: string;\n\n /** Configuration overrides */\n Overrides: string;\n}\n\n/** (ResourceName:OrderConfigurationSnapshot DatabaseName:order_configuration_snapshots Key:OrderConfigurationSnapshotID,OrderID TimestampField:Timestamp AeronCols:false ConstantGroupLength:true PrimaryKey:Generated DBType:OrgDB) */\nexport interface IOrderConfigurationSnapshot {\n /** The service originating this transaction */\n SourceService: JSON_ServiceIdentifier;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID */\n OrderConfigurationSnapshotID: number;\n\n /** ID */\n ServiceConfigurationSnapshotID: number;\n\n /** OrderID only present for order snapshots */\n OrderID: string;\n\n /** Leg Index in Legs array */\n LegIndex: number;\n\n /** Multileg reporting type */\n MultilegReportingType: MultilegReportingTypeEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** List of configs */\n OrderConfig: IOrderConfigurationSnapshot8086OrderConfig[];\n}\n\n/** List of configs */\nexport interface IOrderConfigurationSnapshot8086OrderConfig {\n /** Config name */\n Param: AlgoConfigurationParameterEnum;\n\n /** Value */\n Value: JSON_Decimal;\n\n /** Market ID */\n Market: JSON_Market;\n}\n\n/** An aggregated statistic datapoint detailing the total trading volume for a set of dimensions. */\nexport interface ITotalTradingVolumeDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** Total trading volume */\n TotalVolume: JSON_Decimal;\n\n /** Currency that the Total trading volume is represented by */\n EquivalentCurrency: string;\n\n /** Market ID. Defaults to 0 if not set. */\n Market: JSON_Market;\n\n /** Asset ID. Both Currency and Security IDs default to 0 if not set. */\n Asset: string;\n\n /** The type of trade counted towards this datapoint. */\n TradeType: TradeTypeEnum;\n\n /** Whether the volume is from passively making liquidity or actively taking liquidity. */\n AggressorFlag: AggressorFlagEnum;\n\n /** The strategy considered towards this datapoint. Defaults to 0 if not set. */\n Strategy: JSON_Strategy;\n\n /** The type of strategy considered towards this datapoint. */\n StrategyType: StrategyTypeEnum;\n\n /** Whether or not the volume for the datapoint is calculated from entirely Marketable orders, or from at least partially Limited orders. Terminology is from current reports. */\n OrderMarketability: OrderMarketabilityEnum;\n\n /** Revision */\n Revision: number;\n\n /** The lower limit of the VP participation range for this datapoint. [lower, upper). 1.0 = 100% */\n LowerVPLimit: JSON_Decimal;\n\n /** The upper limit of the VP participation range for this datapoint. [lower, upper). 1.0 = 100% */\n UpperVPLimit: JSON_Decimal;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n}\n\n/** An object denoting the availability of the full suite of analytics for a given resolution and start time. */\nexport interface IAnalyticsAvailabilityUpdate {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Start of the aggregation period (inclusive) */\n StartTime: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** A categorization of the types of messages included in this release. */\n ScopeType: OPAScopeTypeEnum;\n\n /** End of the aggregation period (exclusive) */\n EndTime: JSON_UTCTimestamp;\n}\n\n/** An aggregated statistic datapoint detailing the number of orders for a set of dimensions. */\nexport interface INumOrdersDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** Number of orders for the specified set of dimensions */\n NumberOfOrders: number;\n\n /** If present, the market this datapoint's trades were routed through. */\n Market: JSON_Market;\n\n /** If present, the security traded for this datapoint */\n Asset: string;\n\n /** The depth of order counted towards this datapoint. */\n AnalyticsOrderDepth: AnalyticsOrderDepthEnum;\n\n /** If present, the strategy used for the orders counted towards this datapoint. */\n Strategy: JSON_Strategy;\n\n /** If present, the type of strategy considered towards this datapoint. */\n StrategyType: StrategyTypeEnum;\n\n /** Whether or not this datapoint is calculated from entirely Marketable orders, or from at least partially Limited orders. */\n OrderMarketability: OrderMarketabilityEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing . */\nexport interface IExecutionMarkoutDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The seconds after the execution. Values may be negative to indicate markouts before the execution */\n SecondsFromExecution: number;\n\n /** The execution markout for the specified set of dimensions. 1.0 = 10000 Bps */\n MarkoutSpreadBps: JSON_Decimal;\n\n /** The value of the upper band of the execution markout range for the specified set of dimensions. 1.0 = 10000 Bps */\n TopMarkoutBps: JSON_Decimal;\n\n /** The value of the lower band of the execution markout range for the specified set of dimensions. 1.0 = 10000 Bps */\n BottomMarkoutBps: JSON_Decimal;\n\n /** The standard deviation of the execution markout range for the specified set of dimensions. 1.0 = 10000 Bps */\n MarkoutStdDevBps: JSON_Decimal;\n\n /** The strategy considered towards this datapoint. Defaults to 0 if not set. */\n Strategy: JSON_Strategy;\n\n /** The type of execution counted towards these datapoints. */\n ExecutionType: AggressorFlagEnum;\n\n /** Market ID. Defaults to 0 if not set. */\n Market: JSON_Market;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing the round trip times with a dealer by dimension set. */\nexport interface IDealerRTTDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The median amount of millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n MedianMillis: JSON_Decimal;\n\n /** The standard deviation RTT in millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n StdDevMillis: JSON_Decimal;\n\n /** The 25th percentile RTT in millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n Pct25thMillis: JSON_Decimal;\n\n /** The 75th percentile RTT in millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n Pct75thMillis: JSON_Decimal;\n\n /** The 5th percentile RTT in millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n Pct5thMillis: JSON_Decimal;\n\n /** The 95th percentile RTT in millis for the specified set of dimensions. 1.0 = 1 Millisecond */\n Pct95thMillis: JSON_Decimal;\n\n /** The market this datapoint's RTT concerns. */\n Market: JSON_Market;\n\n /** Order status for this datapoint */\n OrderStatus: OrdStatusEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing the percent of order outcomes by a dimension set. */\nexport interface IMarketOrderOutcomeDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The percentage of outcomes matching the specified set of dimensions. 1.0 = 100% */\n OutcomePct: JSON_Decimal;\n\n /** The market this datapoint concerns. */\n Market: JSON_Market;\n\n /** Order status for this datapoint */\n OrderStatus: OrdStatusEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing the percentage of time a market was available by a dimension set. */\nexport interface IMarketUptimeDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The percentage of time the market was available for the specified set of dimensions. 1.0 = 100% */\n UptimePct: JSON_Decimal;\n\n /** The market this datapoint concerns. */\n Market: JSON_Market;\n\n /** The type of market for this datapoint */\n MarketType: MarketTypeEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** SubAccount enables categorization of trades to a child entity */\nexport interface ISubaccount {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID of this SubAccount */\n SubaccountID: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Subaccount type either Book or Rollup */\n Type: SubAccountTypeEnum;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** ID of user who last updated this subaccount */\n UpdateUser: JSON_User;\n\n /** Canonical name for this subaccount */\n Name: string;\n\n /** Display name for this subaccount */\n DisplayName: string;\n}\n\n/** An aggregated statistic datapoint detailing the slippage of orders conforming to a dimension set. */\nexport interface ISlippageDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The slippage in Bps for the specified set of dimensions. 1.0 = 10000 Bps */\n SlippageBps: JSON_Decimal;\n\n /** The reference price of this datapoint. */\n ReferencePrice: SlippageReferencePriceEnum;\n\n /** The depth of order counted towards this datapoint. */\n AnalyticsOrderDepth: AnalyticsOrderDepthEnum;\n\n /** If present, the market this datapoint's trades were routed through */\n Market: JSON_Market;\n\n /** If present, the strategy used for the orders counted towards this datapoint. */\n Strategy: JSON_Strategy;\n\n /** If present, the type of strategy considered towards this datapoint. */\n StrategyType: StrategyTypeEnum;\n\n /** Whether or not this datapoint is calculated from entirely Marketable orders, or from at least partially Limited orders. */\n OrderMarketability: OrderMarketabilityEnum;\n\n /** The asset traded for this slippage */\n Asset: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing Bid / Ask spreads for a dimension set. */\nexport interface IBidAskSpreadsDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The spread for the specified set of dimensions. 1.0 = 10000 Bps */\n SpreadBps: JSON_Decimal;\n\n /** The size for this spread datapoint */\n SizeBucket: JSON_Decimal;\n\n /** The type of spread represented in this datapoint. */\n SpreadType: AnalyticsSpreadTypeEnum;\n\n /** The market this datapoint's spreads were calculated for */\n Market: JSON_Market;\n\n /** The asset considered for this datapoint */\n Asset: string;\n\n /** Market account associated with this datapoint. */\n MarketAccount: JSON_MarketAccount;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing execution spreads for a dimension set. */\nexport interface IExecutionSpreadsDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The average spread wrt the market's fair price and the all-in price paid for the specified set of dimensions. 1.0 = 10000bps */\n AvgSpreadPaid: JSON_Decimal;\n\n /** The median units traded for this datapoint */\n MedianQuantity: JSON_Decimal;\n\n /** The market this datapoint's execution spreads were calculated for */\n Market: JSON_Market;\n\n /** The asset considered for this datapoint */\n Asset: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing the number of orders for a set of dimensions. */\nexport interface IParentOrdersDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** Average amount traded for the specified set of dimensions. 1.0 = 1 unit of currency */\n AvgAmount: JSON_Decimal;\n\n /** Average duration of the parent order in minutes for the specified set of dimensions */\n AvgOrderMinutes: JSON_Decimal;\n\n /** Currency that the average amount is calculated with */\n EquivalentCurrency: string;\n\n /** If present, the strategy used for the orders counted towards this datapoint. */\n Strategy: JSON_Strategy;\n\n /** If present, the type of strategy considered towards this datapoint. */\n StrategyType: StrategyTypeEnum;\n\n /** Whether or not this datapoint is calculated from entirely Marketable orders, or from at least partially Limited orders. */\n OrderMarketability: OrderMarketabilityEnum;\n\n /** Volume executed in exchanges for this order divided by total volume executed at exchanges over the execution horizon of this order. 1.0 = 100% */\n ParticipationRate: JSON_Decimal;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint detailing the number of executions for a set of dimensions. */\nexport interface INumExecutionsDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** Number of executions for the specified set of dimensions */\n NumberOfExecutions: number;\n\n /** If present, the market this datapoint's executions were routed through. */\n Market: JSON_Market;\n\n /** If present, the security executed for this datapoint */\n Asset: string;\n\n /** If present, the strategy used for the orders counted towards this datapoint. */\n Strategy: JSON_Strategy;\n\n /** The type of execution counted towards these datapoints. */\n ExecutionType: AggressorFlagEnum;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n}\n\n/** An aggregated statistic datapoint summarizing some statistics of orders conforming to a dimension set. */\nexport interface IOrdersSummaryDatapoint {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** Time resolution of analytics */\n AggregationWindow: AggregationWindowEnum;\n\n /** Start of the aggregation period */\n StartTime: JSON_UTCTimestamp;\n\n /** The average order amount traded for the specified set of dimensions. 1.0 = 1 unit of currency */\n AvgOrderAmount: JSON_Decimal;\n\n /** The total exchange fees paid for the specified set of dimensions. 1.0 = 1 unit of currency */\n TotalExchangeFees: JSON_Decimal;\n\n /** The percentage of exchange volume paid in fees across venues, not including Talos fees or transfer fees, for the specified set of dimensions. 1.0 = 10000bps */\n EffectiveFeeRate: JSON_Decimal;\n\n /** The currency this datapoint's spreads were calculated for */\n EquivalentCurrency: string;\n\n /** The asset considered for this datapoint */\n Asset: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** If present, the strategy used for the orders counted towards this datapoint. */\n Strategy: JSON_Strategy;\n}\n\n/** ChildOrder relates a child ClOrdID to a parent OrderID */\nexport interface IChildOrder {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID of the parent order */\n OrderID: string;\n\n /** OrderID */\n OID: JSON_Int64ID;\n}\n\n/** Post-trade analytics for an order. */\nexport interface IPostTradeOrderAnalytics {\n /** Internal time when this message was created in nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The revision of the release (currently the timestamp at which this datapoint was inserted into the source DB in nanoseconds since epoch) */\n ReleaseRevision: JSON_UTCTimestamp;\n\n /** DEPRECATED. Should be completely ignored as of 2.45 */\n AggregationWindow: AggregationWindowEnum;\n\n /** DEPRECATED. Should be completely ignored as of 2.45 */\n StartTime: JSON_UTCTimestamp;\n\n /** Start time of the order in number of nanoseconds since Unix epoch */\n OrderStartTime: JSON_UTCTimestamp;\n\n /** End time of the order in number of nanoseconds since Unix epoch */\n OrderEndTime: JSON_UTCTimestamp;\n\n /** OrderID */\n OrderID: string;\n\n /** Currency that the total trading amount is represented by */\n EquivalentCurrency: string;\n\n /** Strategy used for this order */\n Strategy: JSON_Strategy;\n\n /** Asset traded */\n Asset: string;\n\n /** Product Type associated with the AssetID on this message */\n ProductType: ProductTypeEnum;\n\n /** Order side */\n Side: SideEnum;\n\n /** Total amount traded as part of this order as of the end of the aggregation period (StartTime datetime + resolution) */\n TotalTradedAmt: JSON_Decimal;\n\n /** Duration of the order. 1 = one millisecond */\n OrderDurationMillis: number;\n\n /** The percentage of the total volume during the execution horizon this order was responsible for. 1.0 = 100% */\n ParticipationRate: JSON_Decimal;\n\n /** The percentage of the volume executed while paying maker fees. 1.0 = 100% */\n MakerPct: JSON_Decimal;\n\n /** The arrival slippage of the order. 1.0 = 10000 bps */\n ArrivalSlippageBps: JSON_Decimal;\n\n /** The TWAP slippage of the order. 1.0 = 10000 bps */\n TWAPSlippageBps: JSON_Decimal;\n\n /** The VWAP slippage of the order. 1.0 = 10000 bps */\n VWAPSlippageBps: JSON_Decimal;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** The timestamp in number of nanoseconds since Unix epoch after which (and including) events are not considered for the calculation of statistics on this datapoint */\n AsOfTimestamp: JSON_UTCTimestamp;\n\n /** Strategy parameters */\n Parameters: IStrategyParameters;\n}\n\n/** OMSRequestRecord request record indicates that a parent request has been acked */\nexport interface IOMSRequestRecord {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID of the parent order */\n OrderID: string;\n\n /** ClOrdID of the parent request */\n ClOrdID: string;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n}\n\n/** A transfer between two accounts */\nexport interface ITransfer {\n /** Unique ID of the transfer */\n TransferID: JSON_Int64ID;\n\n /** ID of the market the transfer took place on */\n Market: JSON_Market;\n\n /** Account ID of the owner of the transfer */\n OwnerAccountID: number;\n\n /** Transfer amount */\n Amount: JSON_Decimal;\n\n /** Currency ID for amount */\n Currency: string;\n\n /** Transfer status */\n Status: TransferStatusEnum;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Time at which transfer happened */\n TransactTime: JSON_UTCTimestamp;\n\n /** Credential associated with this transfer. */\n CredentialID: number;\n\n /** ClientID */\n ClientID: string;\n\n /** User ID */\n User: JSON_User;\n\n /** The time the transfer was submitted. Set by gateway if its talos transfer otherwise set to */\n SubmitTime: JSON_UTCTimestamp;\n\n /** Sender of transfer's MarketAccountID */\n FromMarketAccountID: number;\n\n /** Receiver of transfer's MarketAccountID */\n ToMarketAccountID: number;\n\n /** Provider published Effective Date of Transfer */\n EffectiveDate: JSON_UTCTimestamp;\n\n /** Optional symbol for identifying blockchain to use for transfer */\n ChainCurrencySymbol: string;\n\n /** Transfer fee amount */\n FeeAmount: JSON_Decimal;\n\n /** Currency ID for FeeAmount */\n FeeCurrency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Optional ID of related transaction object */\n ParentTransactionID: JSON_Int64ID;\n\n /** Provider published transfer status */\n MarketTransferStatus: string;\n\n /** Unique ID assigned to transfer by the market */\n MarketTransferID: string;\n\n /** Owner's SourceAccountID used to identify direction of transfer */\n OwnerSourceAccountID: string;\n\n /** Sender of transfer's SourceAccountID */\n FromSourceAccountID: string;\n\n /** Receiver of transfer's SourceAccountID */\n ToSourceAccountID: string;\n\n /** Description of the transfer */\n Description: string;\n\n /** Text associated with status of transfer */\n Text: string;\n\n /** Reference data used with external accounts for various purposes */\n ReferenceData: string;\n\n /** Market provided description of the transaction */\n MarketDescription: string;\n\n /** Miscellaneous transaction data */\n SourceData: number;\n\n /** ExternalID of the InitiatingUser. */\n ExternalInitiatingUserInfo: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Represents a one-sided transaction, possibly connected to an existing position */\nexport interface IAssetTransaction {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Type */\n Type: AssetTransactionTypeEnum;\n\n /** Assigned OID of this transaction */\n TID: JSON_Int64ID;\n\n /** MarketID */\n Market: JSON_Market;\n\n /** CredentialID */\n CredentialID: number;\n\n /** MarketAccountID */\n MarketAccount: JSON_MarketAccount;\n\n /** AssetID */\n Asset: string;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** A rate associated with this transaction */\n Rate: JSON_Decimal;\n\n /** Optional asset this transaction is associated with */\n PositionAsset: string;\n\n /** ID of this transaction at the market */\n TransactionID: string;\n\n /** Timestamp of this transaction at the market */\n TransactTime: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Settlement status. Encodes how this transaciton update should affect ledgers */\n SettleStatus: AssetTransactionSettlementStatusEnum;\n\n /** User who performed the most recent update */\n UpdateUser: JSON_User;\n\n /** Revision */\n Revision: number;\n\n /** Optional subAccountID */\n SubAccount: JSON_SubAccount;\n\n /** Status of allocation on this transaction */\n AllocationStatus: AssetTransactionAllocationStatusEnum;\n\n /** optional allocation */\n Allocation: IAllocation;\n}\n\n/** Context when evaluating customer order */\nexport interface ICustomerContext {\n /** Internal time in number of nanoseconds since Unix epoch when this message was generated */\n Timestamp: JSON_UTCTimestamp;\n\n /** OrderID */\n OrderID: string;\n\n /** RFQID */\n RFQID: string;\n\n /** ExecID */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Currency ID */\n Currency: string;\n\n /** Order price. Null for market orders */\n Price: JSON_Decimal;\n\n /** Assigned counterparty */\n Counterparty: JSON_Counterparty;\n\n /** Assigned customer user */\n CustomerUser: JSON_CustomerUser;\n\n /** Assigned MarketAccount */\n MarketAccount: JSON_CustomerMarketAccount;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Internal Order reject reason */\n InternalOrdRejReason: OrdRejReasonEnum;\n\n /** Risk evaluation mode */\n RiskEvaluationMode: RiskEvaluationModeEnum;\n\n /** OrderID */\n HedgeOrderID: string;\n\n /** Customer context type */\n ContextType: CustomerContextTypeEnum;\n\n /** Customer security min size. Might be null */\n CustomerSecurityMinSize: JSON_Decimal;\n\n /** Customer security max size. Might be null */\n CustomerSecurityMaxSize: JSON_Decimal;\n\n /** Customer security canonical size increment */\n CustomerSecurityMinSizeIncrement: JSON_Decimal;\n\n /** Customer security canonical price increment */\n CustomerSecurityMinPriceIncrement: JSON_Decimal;\n\n /** Currency ID for balance */\n BalanceCurrency: string;\n\n /** Security ID for balance */\n BalanceSymbol: JSON_Security;\n\n /** Available amount */\n BalanceAmount: JSON_Decimal;\n\n /** Amount */\n BalanceAvailableAmount: JSON_Decimal;\n\n /** Exact or estimated paying amount */\n PayingAmount: JSON_Decimal;\n\n /** Customer security canonical amount increment */\n CustomerSecurityMinAmtIncrement: JSON_Decimal;\n\n /** Enable or disable unified liquidity feature. */\n CustomerSecurityUnifiedLiquidity: ModeEnum;\n\n /** Customer security min amount. Might be null */\n CustomerSecurityMinAmount: JSON_Decimal;\n\n /** Reason for rejection */\n Text: string;\n\n /** Internal reason for rejection */\n InternalText: string;\n\n /** Order parameters */\n Parameters: IStrategyParameters;\n\n /** Effective pricing rule */\n EffectivePricingRule: IQuoteParameters;\n\n /** List of status and market data for aggregation markets */\n AggregationMarketStatus: ICustomerContext4010AggregationMarketStatus[];\n\n /** Bid Entries */\n Bids: ICustomerContext4010Bids[];\n\n /** Offer Entries */\n Offers: ICustomerContext4010Offers[];\n\n /** Additional list of internal configuration */\n InternalConfiguration: ICustomerContext4010InternalConfiguration[];\n\n /** List of unified symbol and markets */\n UnifiedMarkets: ICustomerContext4010UnifiedMarkets[];\n}\n\n/** List of status and market data for aggregation markets */\nexport interface ICustomerContext4010AggregationMarketStatus {\n /** MarketID */\n Market: JSON_Market;\n\n /** MarketAccountID */\n MarketAccount: JSON_MarketAccount;\n\n /** Status of market data for given market */\n Status: ConnectionStatusEnum;\n\n /** Hedge market bid entries */\n HedgeBids: IAggregationMarketStatusHedgeBids[];\n\n /** Hedge market offer entries */\n HedgeOffers: IAggregationMarketStatusHedgeOffers[];\n}\n\n/** Bid Entries */\nexport interface ICustomerContext4010Bids {\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n}\n\n/** Hedge market bid entries */\nexport interface IAggregationMarketStatusHedgeBids {\n /** Bid Price */\n Price: JSON_Decimal;\n\n /** Bid Size */\n Size: JSON_Decimal;\n}\n\n/** Hedge market offer entries */\nexport interface IAggregationMarketStatusHedgeOffers {\n /** Offer Price */\n Price: JSON_Decimal;\n\n /** Offer Size */\n Size: JSON_Decimal;\n}\n\n/** Additional list of internal configuration */\nexport interface ICustomerContext4010InternalConfiguration {\n /** Configuration key */\n Key: string;\n\n /** Configuration value as a string */\n Value: string;\n}\n\n/** Offer Entries */\nexport interface ICustomerContext4010Offers {\n /** Offer Price */\n Price: JSON_Decimal;\n\n /** Offer Size */\n Size: JSON_Decimal;\n}\n\n/** List of unified symbol and markets */\nexport interface ICustomerContext4010UnifiedMarkets {\n /** MarketID */\n Market: JSON_Market;\n\n /** SecurityID */\n Symbol: JSON_Security;\n}\n\n/** Contains information about the time from which we should start recovering transactions from */\nexport interface IAssetTransactionCheckpoint {\n /** Time of last update */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential associated with this transaction. */\n CredentialID: number;\n\n /** Optional asset ID. If not provided, we checkpoint based on credential ID */\n Asset: string;\n\n /** The time of the last transaction we received. */\n LastTransactionTime: JSON_UTCTimestamp;\n\n /** The time from which we should recover transactions from. */\n CheckpointTime: JSON_UTCTimestamp;\n\n /** All transactions after this time should be kept in memory. This will always be set to a time before the CheckpointTime. */\n LookbackTime: JSON_UTCTimestamp;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** AssetTransactionsSnapshot indicates the start or end of an asset transactions snapshot */\nexport interface IAssetTransactionsSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** EntryType */\n EntryType: SnapshotBlockEntryTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** (TenantID:OrgID)trade update request */\nexport interface ITradeUpdateRequest {\n /** Type of this trade update request */\n RequestType: TradeUpdateRequestTypeEnum;\n\n /** Client defined request ID */\n ClReqID: string;\n\n /** OrderID */\n OrderID: string;\n\n /** ExecID */\n TradeID: string;\n\n /** Revision of the trade or order to be updated */\n Revision: number;\n\n /** Revision of the customer trade to be updated */\n CustomerTradeRevision: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Side */\n Side: SideEnum;\n\n /** Timestamp of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Currency ID for the base currency */\n Currency: string;\n\n /** MarketID for this trade */\n Market: JSON_Market;\n\n /** Price */\n Price: JSON_Decimal;\n\n /** Quantity */\n Quantity: JSON_Decimal;\n\n /** Amount */\n Amount: JSON_Decimal;\n\n /** Fee */\n Fee: JSON_Decimal;\n\n /** Currency ID for the last fee */\n FeeCurrency: string;\n\n /** MarketTradeID */\n MarketTradeID: string;\n\n /** Currency ID for contra */\n AmountCurrency: string;\n\n /** Currency ID for dealt currency */\n DealtCurrency: string;\n\n /** Optional subaccountID */\n SubAccount: JSON_SubAccount;\n\n /** Talos fee */\n TalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n TalosFeeCurrency: string;\n\n /** User requesting the trade update */\n UpdateUser: JSON_User;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount | undefined;\n\n /** Sales commission to take from the trade */\n SalesCommission: JSON_Decimal;\n\n /** ID of the counterparty for this trade. 0 means trading with liquidity provider */\n Counterparty: JSON_Counterparty;\n\n /** Parent Customer Order ID */\n ParentOrderID: string;\n\n /** User ID */\n CustomerUser: JSON_CustomerUser | undefined;\n\n /** Optional subAccountID. If provided, it will be attached to dealer side of the trade as SubAccountID */\n RiskSubAccount: JSON_SubAccount;\n\n /** Organization ID */\n OrgID: number;\n\n /** The market order id for this trade */\n MarketOrderID: string;\n\n /** Arbitrary string assigned when the order is submitted */\n Group: string;\n\n /** Additional information attached to trade */\n Comments: string;\n\n /** optional allocation */\n Allocation: IAllocation;\n}\n\n/** Message for delivery of websocket MarketDataStatistics */\nexport interface IMarketDataStatistics {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Security for this statistic */\n Symbol: JSON_Security;\n\n /** Market for this statistic */\n Market: JSON_Market;\n\n /** Margin Funding Rate */\n FundingRate: JSON_Decimal;\n\n /** Margin Funding Time */\n FundingTime: JSON_UTCTimestamp;\n\n /** Predicted Next Funding Rate */\n PredictedNextFundingRate: JSON_Decimal;\n\n /** Next Funding Time */\n NextFundingTime: JSON_UTCTimestamp;\n\n /** Volume24h */\n Volume24h: JSON_Decimal;\n\n /** Turnover24h */\n Turnover24h: JSON_Decimal;\n\n /** Open Interest */\n OpenInterest: JSON_Decimal;\n\n /** Mark Price */\n MarkPrice: JSON_Decimal;\n\n /** Open Value */\n OpenValue: JSON_Decimal;\n\n /** Delta */\n Delta: JSON_Decimal;\n\n /** Gamma */\n Gamma: JSON_Decimal;\n\n /** Vega */\n Vega: JSON_Decimal;\n\n /** Theta */\n Theta: JSON_Decimal;\n\n /** Rho */\n Rho: JSON_Decimal;\n\n /** Mark Price IV */\n MarkPriceIV: JSON_Decimal;\n\n /** Best Bid IV */\n BestBidIV: JSON_Decimal;\n\n /** Best Bid IV */\n BestOfferIV: JSON_Decimal;\n\n /** Underlying Price */\n UnderlyingPrice: JSON_Decimal;\n\n /** Index Price */\n IndexPrice: JSON_Decimal;\n\n /** Last Price */\n LastPrice: JSON_Decimal;\n\n /** Minimum Order Price */\n MinOrderPrice: JSON_Decimal;\n\n /** Maximum Order Price */\n MaxOrderPrice: JSON_Decimal;\n}\n\n/** Available currency for the given market account */\nexport interface IMarketAccountCurrency {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the account */\n MarketAccountID: number;\n\n /** Currency ID for amount */\n Currency: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** Symbol used by this market */\n MarketSymbol: string;\n\n /** Symbols for this currency's supported chain currencies */\n ChainCurrencySymbols: number;\n}\n\n/** DeprecatedSecurityDisplay has information about displaying a security to the user */\nexport interface IDeprecatedSecurityDisplay {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Default price increment */\n DefaultPriceIncrement: JSON_Decimal;\n\n /** Default size increment */\n DefaultSizeIncrement: JSON_Decimal;\n\n /** Display spec for prices */\n PriceDisplaySpec: string;\n\n /** Display spec for sizes */\n SizeDisplaySpec: string;\n\n /** Normal size for display */\n NormalSize: JSON_Decimal;\n\n /** DisplaySymbol */\n DisplaySymbol: string;\n\n /** Default list of size buckets */\n SizeBuckets: IDeprecatedSecurityDisplay4027SizeBuckets[];\n}\n\n/** Default list of size buckets */\nexport interface IDeprecatedSecurityDisplay4027SizeBuckets {\n /** Size bucket */\n Size: JSON_Decimal;\n}\n\n/** */\nexport interface IRemoteOrder {\n /** Unique name the remote, e.g. a FIX session specifier */\n Remote: string;\n\n /** ClOrdID specified by the remote party */\n RemoteClOrdID: string;\n\n /** OrigClOrdID specified by the remote party */\n RemoteOrigClOrdID: string;\n\n /** System ClOrdID */\n LocalClOrdID: string;\n}\n\n/** MarketCurrency represents a currency on a market */\nexport interface IMarketCurrency {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Currency ID */\n Currency: string;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n\n /** Dis-ambiguity tag for market currency */\n Tag: string;\n\n /** Revision */\n Revision: number;\n\n /** Symbol used by this market */\n MarketSymbol: string;\n\n /** Alias for Currency ID */\n AliasForCurrencyID: number;\n\n /** Alias for Chain Symbol */\n AliasForChainSymbol: string;\n\n /** Symbols for this currency's supported chain currencies */\n ChainCurrencySymbols: number;\n}\n\n/** */\nexport interface IRemoteOrderPosition {\n /** Unique name the remote, e.g. a FIX session specifier */\n Remote: string;\n\n /** The position processed */\n Position: number;\n}\n\n/** Currency represents a fiat currency or token */\nexport interface ICurrency {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Currency ID */\n CurrencyID: number;\n\n /** Canonical symbol for this currency */\n Symbol: string;\n\n /** Minimum increment for an amount of this currency. */\n MinIncrement: JSON_Decimal;\n\n /** Canonical increment for an amount of this currency */\n DefaultIncrement: JSON_Decimal;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n\n /** Revision */\n Revision: number;\n\n /** Description of the currency */\n Description: string;\n\n /** List of Tags for this Currency */\n Tags: ICurrency4029Tags[];\n}\n\n/** List of Tags for this Currency */\nexport interface ICurrency4029Tags {\n /** Currency Tag value */\n Tag: CurrencyTagEnum;\n}\n\n/** Blockchain represents specific details for a blockchain including the ChainID, block explorer base link, and other onchain details */\nexport interface IBlockchain {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Chain ID */\n ChainID: number;\n\n /** Chain Symbol */\n ChainSymbol: string;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision */\n Revision: number;\n\n /** Specified when source=User or on user updates. */\n UpdateUser: JSON_User;\n\n /** Block Explorer Base Link */\n ChainExplorerBaseLink: string;\n\n /** Description of the blockchain */\n Description: string;\n\n /** Data integrity hash. Used for ensuring data integrity of details stored in DB */\n DataIntegrityHash: string;\n}\n\n/** Request for a connection to an aggregator */\nexport interface IAggregatorConnectRequest {\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n}\n\n/** MarketDataRequest */\nexport interface IMarketDataRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Must be unique, or the ID of previous MarketDataRequest to unsubscribe */\n MDReqID: number;\n\n /** SubscriptionRequestType, e.g. where to subscribe or unsubscribe */\n SubscriptionRequestType: SubscriptionRequestTypeEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Number of requests */\n Symbols: IMarketDataRequest4033Symbols[];\n\n /** Number of markets to be used for this order */\n Markets: IMarketDataRequest4033Markets[];\n}\n\n/** Number of markets to be used for this order */\nexport interface IMarketDataRequest4033Markets {\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Number of requests */\nexport interface IMarketDataRequest4033Symbols {\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Market depth to subscribe to, 0 - full book depth, 1 - top of book, 2 - book depth (number of levels) */\n MarketDepth: number;\n}\n\n/** Response to an aggregator connect request */\nexport interface IAggregatorConnectResponse {\n /** The request ID that this response is for. */\n RequestID: number;\n\n /** Stream ID the client should use to consume messages from the aggregator */\n OutgoingDataStreamID: number;\n\n /** Channel the client should subscribe to for messages from the aggregator */\n OutgoingDataChannel: string;\n}\n\n/** Security represents something that is tradeable, like a currency pair */\nexport interface ISecurity {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Security ID */\n SecurityID: number;\n\n /** Canonical symbol for this security */\n Symbol: string;\n\n /** Canonical price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Canonical size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Canonical size increment */\n MinimumSize: JSON_Decimal;\n\n /** Canonical size increment */\n MaximumSize: JSON_Decimal;\n\n /** The quote currency for this symbol, i.e USD for BTC-USD. This is the currency that the price is quoted in. */\n QuoteCurrency: string;\n\n /** The base currency for this symbol, i.e BTC for BTC-USD. */\n BaseCurrency: string;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n\n /** Default price increment (Display Field) */\n DefaultPriceIncrement: JSON_Decimal;\n\n /** Default size increment (Display Field) */\n DefaultSizeIncrement: JSON_Decimal;\n\n /** Display spec for prices (Display Field) */\n PriceDisplaySpec: string;\n\n /** Display spec for sizes (Display Field) */\n SizeDisplaySpec: string;\n\n /** Normal size for display (Display Field) */\n NormalSize: JSON_Decimal;\n\n /** Product Type */\n ProductType: ProductTypeEnum;\n\n /** The position currency for this security. This is the default currency for quantities of this instrument. May be missing if quantities don't correspond to any currency, i.e. derivatives contracts. For spot, this will be the same as `BaseCurrency`. */\n PositionCurrency: string;\n\n /** The settlement currency for this security. This is the currency that trading this instrument takes PnL in by default. For spot, this will be the same as `QuoteCurrency`. */\n SettlementCurrency: string;\n\n /** The notional multiplier for this security. `Quantity * Price * NotionalMultiplier = Total in SettlementCurrency`. */\n NotionalMultiplier: JSON_Decimal;\n\n /** Expiration */\n Expiration: JSON_UTCTimestamp;\n\n /** The type of calculation used to compute the settlement value of this security */\n SettleValueType: SettleValueTypeEnum;\n\n /** The rank of this security, primarily used for UI ordering */\n Rank: number;\n\n /** Instrument composition */\n Composition: InstrumentCompositionEnum;\n\n /** Strike price for an options contract */\n StrikePrice: JSON_Decimal;\n\n /** Option type */\n OptionType: OptionTypeEnum;\n\n /** ID of the underlying security for an options contract */\n UnderlyingSymbol: JSON_Security;\n\n /** Owner of this security */\n Owner: SecurityOwnerEnum;\n\n /** Revision */\n Revision: number;\n\n /** The quote currency of the underlying security for an options contract */\n UnderlyingQuoteCurrency: string;\n\n /** Pricing modes supported by this security */\n SupportedPricingModes: Record;\n\n /** Market amount increment */\n MinAmountIncrement: JSON_Decimal;\n\n /** The underlying code for security */\n UnderlyingCode: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Date it was listed */\n StartTime: JSON_UTCTimestamp;\n\n /** DisplaySymbol field (Display Field) */\n DisplaySymbol: string;\n\n /** Description of the security */\n Description: string;\n\n /** MultiLeg configuration */\n MultilegDetails: string;\n\n /** Default list of size buckets (Display Field) */\n SizeBuckets: ISecurity4034SizeBuckets[];\n\n /** The legs if this is a calendar spread instrument product */\n Legs: ISecurity4034Legs[];\n}\n\n/** The legs if this is a calendar spread instrument product */\nexport interface ISecurity4034Legs {\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Direction this leg will trade compared to the parent order side (Same, Opposite) */\n Direction: LegDirectionEnum;\n}\n\n/** Default list of size buckets (Display Field) */\nexport interface ISecurity4034SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** MarketSecurity */\nexport interface IMarketSecurity {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Market price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Market size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Market size increment */\n MinimumSize: JSON_Decimal;\n\n /** Market size increment */\n MaximumSize: JSON_Decimal;\n\n /** Symbol used by this market */\n MarketSymbol: string;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n\n /** Type of functionality supported by this market security */\n Capabilities: Record;\n\n /** Minimum amount required to place an order */\n MinimumAmount: JSON_Decimal;\n\n /** Revision */\n Revision: number;\n\n /** Market amount increment */\n MinAmountIncrement: JSON_Decimal;\n\n /** Organization ID */\n OrgID: number;\n\n /** Date it was listed */\n StartTime: JSON_UTCTimestamp;\n\n /** Number of alternative symbols, these are ordered and meaning is exchange dependent */\n AltSymbols: IMarketSecurity4035AltSymbols[];\n}\n\n/** Number of alternative symbols, these are ordered and meaning is exchange dependent */\nexport interface IMarketSecurity4035AltSymbols {\n /** Alternative symbol used by this market */\n Symbol: string;\n}\n\n/** Market */\nexport interface IMarket {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n MarketID: number;\n\n /** Canonical name for this market */\n Name: string;\n\n /** Short display name for this market */\n ShortName: string;\n\n /** Date it was delisted */\n EndTime: JSON_UTCTimestamp;\n\n /** Type of functionality supported by this market */\n Capabilities: Record;\n\n /** Type of the market */\n Type: MarketTypeEnum;\n\n /** Additional properties of market */\n Flags: Record;\n\n /** Revision */\n Revision: number;\n\n /** DisplayName */\n DisplayName: string;\n\n /** List of supported TimeInForce values for this market */\n SupportedTimeInForce: IMarket4036SupportedTimeInForce[];\n}\n\n/** List of supported TimeInForce values for this market */\nexport interface IMarket4036SupportedTimeInForce {\n /** Supported time in force value */\n TimeInForce: TimeInForceEnum;\n}\n\n/** Market */\nexport interface IMarketOverride {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n MarketID: number;\n\n /** Type of functionality supported by this market */\n Capabilities: Record;\n\n /** Additional properties of market */\n Flags: Record;\n\n /** Revision */\n Revision: number;\n\n /** List of supported TimeInForce values for this market */\n SupportedTimeInForce: IMarketOverride4037SupportedTimeInForce[];\n}\n\n/** List of supported TimeInForce values for this market */\nexport interface IMarketOverride4037SupportedTimeInForce {\n /** Supported time in force value */\n TimeInForce: TimeInForceEnum;\n}\n\n/** Transaction is a state for transaction state machine which is responsible for managing initiating transfers and getting approvals */\nexport interface ITransaction {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** External defined request ID */\n ClReqID: string;\n\n /** Unique ID generated by Talos for transaction */\n TransactionID: JSON_Int64ID;\n\n /** Optional group transaction ID indicating that this particular transaction is part of transaction group */\n GroupTransactionID: JSON_Int64ID;\n\n /** Revision of this transaction */\n Revision: number;\n\n /** An increasing sequence number for this TransactionID and revision. A new value for the same Revision indicates updated information is available without state changing. Commonly used to report errors on commands received since the last state change. Generated by Talos. */\n AmendmentCount: number;\n\n /** Type of transaction */\n TransactionType: TransactionTypeEnum;\n\n /** Sender of transfer's MarketAccountID */\n FromMarketAccount: JSON_MarketAccount;\n\n /** Receiver of transfer's MarketAccountID */\n ToMarketAccount: JSON_MarketAccount;\n\n /** On behalf account */\n OnBehalfOfAccountID: number;\n\n /** Transaction quantity */\n Quantity: JSON_Decimal;\n\n /** Transaction currency */\n Currency: string;\n\n /** The ID of the user initiating the transaction. */\n InitiatorUser: JSON_User;\n\n /** Status of this transaction */\n Status: TransactionStatusEnum;\n\n /** Exec type of this transaction */\n ExecType: TransactionExecTypeEnum;\n\n /** Optional ID of user who performed update (state transition) for transaction */\n UpdateUser: JSON_User;\n\n /** Transaction reject reason */\n RejectReason: TransactionRejectReasonEnum;\n\n /** optional transfer ID */\n TransferID: JSON_Int64ID;\n\n /** ClientID of the attached transfer */\n TransferClientID: string;\n\n /** ID to related address record */\n AddressID: JSON_Int64ID;\n\n /** Optional ExternalID to use while creating ledger event */\n ExternalID: string;\n\n /** External defined request ID for transaction update request. Used to notify response for update request. Cleared on status change */\n UpdateClReqID: string;\n\n /** The service originating this transaction */\n SourceService: JSON_ServiceIdentifier;\n\n /** Optional ID of user who approved transaction */\n ApproveUser: JSON_User;\n\n /** Settlement class */\n SettlementClass: SettlementClassEnum;\n\n /** RejectText */\n RejectText: string;\n\n /** Additional information relating to the transaction */\n Comments: string;\n\n /** Deprecated. Optional transaction hash provided by the custody or manually by the user */\n TxHash: string;\n\n /** additional routing information provided like WalletAddress, BankAddress etc. Printed if routing info provided alongside TransactionRequest is not recognized(TemplateID:4813) */\n RoutingInfo: ICustomerRoutingInfo;\n\n /** Additional comments supplied by external users */\n ExternalComments: string;\n\n /** Transaction subject contains authentication information about the entity that requested the transaction */\n Subject: ISubject;\n\n /** Optional list of transaction hashes */\n TxHashes: ITransaction4550TxHashes[];\n}\n\n/** Optional list of transaction hashes */\nexport interface ITransaction4550TxHashes {\n /** Blockchain transaction hash provided to track moving funds */\n TxHash: string;\n}\n\n/** (TenantID:Subject.OrgID) Transaction request command */\nexport interface ITransactionRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer defined request ID */\n ClReqID: string;\n\n /** Type of transaction */\n TransactionType: TransactionTypeEnum;\n\n /** Sender of transfer's MarketAccountID */\n FromMarketAccount: JSON_MarketAccount;\n\n /** Receiver of transfer's MarketAccountID */\n ToMarketAccount: JSON_MarketAccount;\n\n /** On behalf account */\n OnBehalfOfAccountID: number;\n\n /** Transaction quantity */\n Quantity: JSON_Decimal;\n\n /** Transaction currency */\n Currency: string;\n\n /** The ID of the user initiating the transaction. */\n User: JSON_User;\n\n /** Optional ExternalID to use while creating ledger event */\n ExternalID: string;\n\n /** optional transfer ID */\n TransferID: JSON_Int64ID;\n\n /** Optional ID of the transfer credential when transfer ID is provided */\n TransferCredentialID: number;\n\n /** Optional ID of the transfer market when transfer ID is provided */\n TransferMarket: JSON_Market;\n\n /** Optional group transaction ID indicating that this particular transaction shoult be part of transaction group */\n GroupTransactionID: JSON_Int64ID;\n\n /** Unique batch this transaction request belongs to */\n BatchID: JSON_Int64ID;\n\n /** Bitmap field of indicators signaling if there are more entries to follow. Only the ContinuationFlag is used. */\n EventIndicator: Record;\n\n /** ID to related address record */\n AddressID: JSON_Int64ID;\n\n /** Settlement class */\n SettlementClass: SettlementClassEnum;\n\n /** additional routing information provided like WalletAddress, BankAddress etc. */\n RoutingInfo: ICustomerRoutingInfo;\n\n /** Additional information relating to the transaction */\n Comments: string;\n\n /** Additional comments supplied by the external user */\n ExternalComments: string;\n\n /** Transaction subject */\n Subject: ISubject;\n\n /** Optional list of transaction hashes */\n TxHashes: ITransactionRequest4551TxHashes[];\n}\n\n/** Optional list of transaction hashes */\nexport interface ITransactionRequest4551TxHashes {\n /** Blockchain transaction hash provided to track moving funds */\n TxHash: string;\n}\n\n/** MarketRequest */\nexport interface IMarketRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** SessionID for this subscription. */\n SessionID: JSON_Int64ID;\n\n /** Unique RequestID for this subscription. */\n RequestID: number;\n\n /** Type of request to make */\n RequestType: RequestTypeEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Connection ID */\n ConnectionID: number;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID (optional) */\n Symbol: JSON_Security;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Reference data poll time */\nexport interface IReferenceDataPollTime {\n /** Unique ID of this service */\n ServiceID: number;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** The database type: OrgDB=1, AvaDB=2, LoanDB=3 */\n DBType: number;\n\n /** (OBSOLETE) Time this database type was last polled */\n OBSOLETE_LastPollTime: JSON_UTCTimestamp;\n\n /** The service's partition ID */\n PartitionID: number;\n\n /** The tables that were polled for this database, comma-delimited */\n TableNames: string;\n\n /** Times each table registered in this database type was last polled */\n LastPollTimes: number;\n}\n\n/** (TenantID:Subject.OrgID) Transaction update request command */\nexport interface ITransactionUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer defined request ID */\n ClReqID: string;\n\n /** Unique ID generated by Talos for transaction */\n TransactionID: JSON_Int64ID;\n\n /** Type of update action */\n Action: TransactionUpdateActionEnum;\n\n /** The ID of the user performing that request. */\n User: JSON_User;\n\n /** optional transfer ID */\n TransferID: JSON_Int64ID;\n\n /** Deprecated. Optional transaction hash provided by the custody or manually by the user */\n TxHash: string;\n\n /** Transaction update subject */\n Subject: ISubject;\n\n /** Optional list of transaction hashes */\n TxHashes: ITransactionUpdateRequest4552TxHashes[];\n}\n\n/** Optional list of transaction hashes */\nexport interface ITransactionUpdateRequest4552TxHashes {\n /** Blockchain transaction hash provided to track moving funds */\n TxHash: string;\n}\n\n/** A request to initiate a transfer for a transaction */\nexport interface ITransactionTransferRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Customer defined request ID */\n ClReqID: string;\n\n /** Client-specified ID for transfer request based on this command */\n ClientID: string;\n\n /** ID of transaction to link generated transfer */\n TransactionID: JSON_Int64ID;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** User ID */\n User: JSON_User;\n\n /** Credential associated with this transfer. */\n CredentialID: number;\n\n /** Sender of transfer's market account */\n FromMarketAccount: JSON_MarketAccount;\n\n /** Receiver of transfer's market account */\n ToMarketAccount: JSON_MarketAccount;\n\n /** Optional symbol for identifying blockchain to use for transfer */\n ChainCurrencySymbol: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Reference data used with external accounts for various purposes */\n ReferenceData: string;\n\n /** Description of the transfer */\n Description: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** MDIncrementalRefreshOrderBook */\nexport interface IMDIncrementalRefreshOrderBook {\n /** Internal processing time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n\n /** Credential ID that this stream is associated with */\n CredentialID: number;\n\n /** Depth type */\n DepthType: DepthTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Latest exchange message timestamp from the market used on this snapshot. Number of nanoseconds since the Unix epoch. */\n ExchangeTime: JSON_UTCTimestamp;\n\n /** Type of book */\n BookType: BookTypeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of entries in Market Data message */\n Entries: IMDIncrementalRefreshOrderBook4043Entries[];\n}\n\n/** Number of entries in Market Data message */\nexport interface IMDIncrementalRefreshOrderBook4043Entries {\n /** Order ID */\n OrderID: string;\n\n /** Order price */\n MDEntryPx: JSON_Decimal;\n\n /** Market Data entry size */\n MDEntrySize: JSON_Decimal;\n\n /** Order book update action to be applied to the order referenced by OrderID */\n MDUpdateAction: MDUpdateActionEnum;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n}\n\n/** MDIncrementalRefreshBook */\nexport interface IMDIncrementalRefreshBook {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n\n /** Credential ID that this stream is associated with */\n CredentialID: number;\n\n /** Depth type */\n DepthType: DepthTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Latest exchange message timestamp from the market used on this snapshot. Number of nanoseconds since the Unix epoch. */\n ExchangeTime: JSON_UTCTimestamp;\n\n /** Type of book */\n BookType: BookTypeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of entries in Market Data message */\n Entries: IMDIncrementalRefreshBook4046Entries[];\n}\n\n/** Number of entries in Market Data message */\nexport interface IMDIncrementalRefreshBook4046Entries {\n /** Market Data entry price */\n MDEntryPx: JSON_Decimal;\n\n /** Market Data entry size */\n MDEntrySize: JSON_Decimal;\n\n /** Market Data update action */\n MDUpdateAction: MDUpdateActionEnum;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n\n /** Aggregate number of orders at given price level */\n NumberOfOrders: number;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n}\n\n/** MDIncrementalRefreshTradeSummary */\nexport interface IMDIncrementalRefreshTradeSummary {\n /** Internal processing time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Bitmap field of eight Boolean type indicators reflecting the end of updates for a given event */\n EventIndicator: Record;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Source message for this update */\n MessageID: IMessageID;\n\n /** Number of Trade Summary entries */\n Entries: IMDIncrementalRefreshTradeSummary4048Entries[];\n}\n\n/** Number of Trade Summary entries */\nexport interface IMDIncrementalRefreshTradeSummary4048Entries {\n /** Trade price */\n MDEntryPx: JSON_Decimal;\n\n /** Trade quantity */\n MDEntrySize: JSON_Decimal;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** Market Data update action */\n MDUpdateAction: MDUpdateActionEnum;\n\n /** Market Data entry type */\n MDEntryType: MDEntryTypeEnum;\n\n /** Market Data Trade entry ID */\n MDTradeEntryID: string;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n}\n\n/** (TenantID:OrgID) */\nexport interface INewOrderSingle {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OID for this request */\n ClOID: JSON_Int64ID;\n\n /** Side */\n Side: SideEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Internal ID of the quote; optional */\n QID: JSON_Int64ID;\n\n /** Parent OMS order OrderID */\n ParentOrderID: string;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Expected average filled price */\n ExpectedFillPrice: JSON_Decimal;\n\n /** Expected filled quantity in units of Currency */\n ExpectedFillQty: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** If present, Price is expressed in units determined by PricingMode, otherwise Price is in quote currency */\n PricingMode: PricingModeEnum;\n\n /** User ID */\n User: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Bitmap of execution instructions */\n ExecutionInstructions: Record;\n\n /** Child order RequestIndicator */\n RequestIndicator: RequestIndicatorTypeEnum;\n\n /** Market parameters */\n Parameters: IMarketParameters;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (TenantID:OrgID) */\nexport interface IOrderCancelRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ClOrdID for this request */\n ClOID: JSON_Int64ID;\n\n /** OID of the order to cancel */\n OID: JSON_Int64ID;\n\n /** Parent OMS order OrderID */\n ParentOrderID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** User ID */\n User: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Child order RequestIndicator */\n RequestIndicator: RequestIndicatorTypeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (TenantID:OrgID) */\nexport interface IOrderCancelReplaceRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection to use */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** ClOrdID for this request */\n ClOID: JSON_Int64ID;\n\n /** OID of the order to replace */\n OID: JSON_Int64ID;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Parent OMS order OrderID */\n ParentOrderID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Internal time the message was sent in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** User ID */\n User: JSON_User;\n\n /** Organization ID */\n OrgID: number;\n\n /** Child order RequestIndicator */\n RequestIndicator: RequestIndicatorTypeEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** Request a connection to an RPC provider and return details for the session */\nexport interface IRPCSessionRequest {\n /** Client-generated request ID */\n RequestID: number;\n\n /** Session ID this request is acting on, if it's in relation to an existing session */\n SessionID: number;\n\n /** Action */\n Action: RPCSessionActionEnum;\n\n /** ResponseStreamID */\n ResponseStreamID: number;\n\n /** ResponseChannel */\n ResponseChannel: string;\n}\n\n/** Report of the RPC servers state for a given session */\nexport interface IRPCSessionStatus {\n /** The request ID that this status is in response to, if any. */\n RequestID: number;\n\n /** Server-generate session ID */\n SessionID: number;\n\n /** Status */\n Status: RPCSessionStatusEnum;\n}\n\n/** SimMarket configures a simulator to publish market data and accept orders */\nexport interface ISimMarket {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Normal market price */\n NormalPrice: JSON_Decimal;\n\n /** Normal market size */\n NormalSize: JSON_Decimal;\n\n /** Normal order count */\n NormalOrderCount: number;\n\n /** Normal market depth */\n NormalDepth: number;\n\n /** Normal market spread */\n NormalSpread: JSON_Decimal;\n\n /** Percentage drift (mu) */\n Drift: JSON_Decimal;\n\n /** Percentage volatility (sigma) */\n Volatility: JSON_Decimal;\n\n /** Percentage of open orders canceled */\n CancelRate: JSON_Decimal;\n\n /** Percentage of crossing orders */\n FillRate: JSON_Decimal;\n\n /** Market normal price increment */\n NormalPriceIncrement: JSON_Decimal;\n\n /** Market normal size increment */\n NormalSizeIncrement: JSON_Decimal;\n\n /** Market minimum size */\n NormalMinimumSize: JSON_Decimal;\n\n /** Market maximum size */\n NormalMaximumSize: JSON_Decimal;\n}\n\n/** ExecutionReportNew indicates the order is acked or restated */\nexport interface IExecutionReportNew {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** OrderID of this order at the market */\n OrderID: string;\n\n /** ClOrdID of this order at the market */\n ClOrdID: string;\n\n /** ExecID of this execution at the market */\n ExecID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** Order entry time as provided by the submitter of the order in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeNew */\n ExecType: number;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Order quantity */\n OrderQty: JSON_Decimal;\n\n /** Order type */\n OrdType: OrdTypeEnum;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Time in force */\n TimeInForce: TimeInForceEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** If present determines the units of PricingReference. Price is always in quote currency */\n PricingMode: PricingModeEnum;\n\n /** Pricing reference in units of PricingMode */\n PricingReference: JSON_Decimal;\n\n /** Bitmap of execution instructions */\n ExecutionInstructions: Record;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface IExecutionReportTrade {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** ExecID */\n ExecID: string;\n\n /** Time of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeTrade */\n ExecType: number;\n\n /** Side */\n Side: SideEnum;\n\n /** Last price */\n LastPx: JSON_Decimal;\n\n /** Last qty */\n LastQty: JSON_Decimal;\n\n /** Last amount */\n LastAmt: JSON_Decimal;\n\n /** Last fee */\n LastFee: JSON_Decimal;\n\n /** Last fee currency */\n LastFeeCurrency: string;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Talos fee */\n LastTalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n LastTalosFeeCurrency: string;\n\n /** Miscellaneous transaction attributes */\n Attributes: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface IExecutionReportReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeRejected */\n ExecType: number;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Text */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface IExecutionReportCancel {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeCanceled */\n ExecType: number;\n\n /** Canceled quantity */\n CanceledQty: JSON_Decimal;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Executed quantity, used if CanceledQty = 0 */\n ExecQty: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Text */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface IExecutionReportReplace {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeReplaced */\n ExecType: number;\n\n /** Leaves quantity */\n LeavesQty: JSON_Decimal;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** An ID to help us dedup DeltaQty messages */\n ReplaceID: string;\n\n /** How much the qty has changed */\n DeltaQty: JSON_Decimal;\n\n /** New order qty */\n NewOrderQty: JSON_Decimal;\n\n /** Additional reason for ExecType */\n ExecTypeReason: ExecTypeReasonEnum;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (TenantID:OrgID) */\nexport interface IOrderCancelReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Cancel reject response to */\n CxlRejResponseTo: CxlRejResponseToEnum;\n\n /** ClOrdID for this request */\n ClOID: JSON_Int64ID;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** Parent OMS order OrderID, may be blank for orders that do not belong to an OMS order */\n ParentOrderID: string;\n\n /** OrdStatus */\n OrdStatus: OrdStatusEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** Organization ID */\n OrgID: number;\n\n /** Text */\n Text: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** (TenantID:OrgID)(ResourceName:MarketTrade DatabaseName:market_trades_new Key:EID TimestampField:TransactTime AeronCols:true ConstantGroupLength:true PrimaryKey:Generated IDQueryFields:OrderID DBType:OrgDB) */\nexport interface ITradeCapture {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency ID for the dealt currency */\n Currency: string;\n\n /** OrderID */\n OrderID: string;\n\n /** ExecID */\n TradeID: string;\n\n /** Time of the trade as provided by remote in number of nanoseconds since Unix epoch. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecType */\n ExecType: ExecTypeEnum;\n\n /** Side */\n Side: SideEnum;\n\n /** Trade price */\n Price: JSON_Decimal;\n\n /** Trade quantity */\n Quantity: JSON_Decimal;\n\n /** Trade amount */\n Amount: JSON_Decimal;\n\n /** Trade fee */\n Fee: JSON_Decimal;\n\n /** Trade fee currency */\n FeeCurrency: string;\n\n /** Trade capture info */\n TradeStatus: TradeStatusEnum;\n\n /** Indicates which side is the aggressor */\n AggressorSide: SideEnum;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** EID of this execution */\n EID: JSON_Int64ID;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** Internal ID of the quote; optional */\n QID: JSON_Int64ID;\n\n /** Currency ID for amount */\n AmountCurrency: string;\n\n /** Currency ID for dealt currency */\n DealtCurrency: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** The service originating the child order */\n ParentService: JSON_ServiceIdentifier;\n\n /** Organization ID */\n OrgID: number;\n\n /** Talos fee */\n TalosFee: JSON_Decimal;\n\n /** Currency ID for the Talos fee */\n TalosFeeCurrency: string;\n\n /** Miscellaneous transaction attributes */\n Attributes: number;\n\n /** Fixing details for spread to fixing */\n FixingDetails: number;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** */\nexport interface IExecutionReportStale {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** Timestamp of the update as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeStale */\n ExecType: number;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** ExecutionReportRestate indicates that the order has changed */\nexport interface IExecutionReportRestate {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** OrderID of this order at the market */\n OrderID: string;\n\n /** ClOrdID of this order at the market */\n ClOrdID: string;\n\n /** ExecID of this execution at the market */\n ExecID: string;\n\n /** Order entry time as provided by the submitter of the order in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** ExecTypeRestated */\n ExecType: number;\n\n /** Limit price */\n Price: JSON_Decimal;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** A request to initiate a transfer */\nexport interface ITransferRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Request type */\n RequestType: TransferRequestTypeEnum;\n\n /** ClOrdID */\n ClientID: string;\n\n /** Currency ID for amount */\n Currency: string;\n\n /** Transfer amount */\n Amount: JSON_Decimal;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** User ID */\n User: JSON_User;\n\n /** Credential associated with this transfer. */\n CredentialID: number;\n\n /** Account ID of the owner of the transfer */\n OwnerAccountID: number;\n\n /** Sender of transfer's MarketAccountID */\n FromMarketAccountID: number;\n\n /** Receiver of transfer's MarketAccountID */\n ToMarketAccountID: number;\n\n /** Optional symbol for identifying blockchain to use for transfer */\n ChainCurrencySymbol: string;\n\n /** Organization ID */\n OrgID: number;\n\n /** Optional ID of related transaction object */\n ParentTransactionID: JSON_Int64ID;\n\n /** Reference data used with external accounts for various purposes */\n ReferenceData: string;\n\n /** Description of the transfer */\n Description: string;\n\n /** ExternalID of the InitiatingUser. */\n ExternalInitiatingUserInfo: string;\n\n /** Source message for this update */\n MessageID: IMessageID;\n}\n\n/** A request to update done of live transfer */\nexport interface ITransferUpdateRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID of the transfer update request */\n RequestID: JSON_Int64ID;\n\n /** ID of the transfer to update */\n TransferID: JSON_Int64ID;\n\n /** ID of the market the transfer took place on */\n Market: JSON_Market;\n\n /** Credential associated with this transfer update request. */\n CredentialID: number;\n\n /** List of fields to update */\n Fields: ITransferUpdateRequest4581Fields[];\n}\n\n/** List of fields to update */\nexport interface ITransferUpdateRequest4581Fields {\n /** Key name */\n Key: string;\n\n /** New value */\n Value: string;\n}\n\n/** OrderRequest */\nexport interface IOrderRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** SessionID for this outgoing message. */\n SessionID: JSON_Int64ID;\n\n /** Unique RequestID for this outgoing message. */\n RequestID: number;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Connection ID */\n ConnectionID: number;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** ClOrdID of the request */\n ClOID: JSON_Int64ID;\n\n /** Type of request to make */\n RequestType: RequestTypeEnum;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Side */\n Side: SideEnum;\n\n /** QID */\n QID: JSON_Int64ID;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** The SubmitTime of the originating request, if available, in number of nanoseconds since Unix epoch */\n SubmitTime: JSON_UTCTimestamp;\n\n /** QuoteID given by the venue */\n QuoteID: string;\n}\n\n/** A response for transfer update request */\nexport interface ITransferUpdateResponse {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Organization ID */\n OrgID: number;\n\n /** Unique ID of the transfer update request */\n RequestID: JSON_Int64ID;\n\n /** ID of the transfer to update */\n TransferID: JSON_Int64ID;\n\n /** Status of the transfer update */\n UpdateStatus: TransferUpdateStatusEnum;\n}\n\n/** OrderRequestReject */\nexport interface IOrderRequestReject {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential ID */\n CredentialID: number;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** OID of the order */\n OID: JSON_Int64ID;\n\n /** ClOrdID of the request */\n ClOID: JSON_Int64ID;\n\n /** Type of request to make */\n RequestType: RequestTypeEnum;\n\n /** Order reject reason */\n OrdRejReason: OrdRejReasonEnum;\n\n /** Cancel reject reason */\n CxlRejReason: CxlRejReasonEnum;\n\n /** Cancel reject response to */\n CxlRejResponseTo: CxlRejResponseToEnum;\n\n /** Parent OMS order OrderID */\n ParentOrderID: string;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Text */\n Text: string;\n}\n\n/** OrderRecord records that an unsolicited order was received */\nexport interface IOrderRecord {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** OrderID */\n OID: JSON_Int64ID;\n\n /** OrderID */\n OrderID: string;\n\n /** ClOrdID */\n ClOrdID: string;\n\n /** OrigClOrdID */\n OrigClOrdID: string;\n\n /** Execution time in number of nanoseconds since Unix epoch */\n TransactTime: JSON_UTCTimestamp;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** TradesSnapshot indicates the start or end of a trades snapshot */\nexport interface ITradesSnapshot {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of the connection used */\n CredentialID: number;\n\n /** EntryType */\n EntryType: SnapshotBlockEntryTypeEnum;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Realtime balances generated by exchange balance snapshots and realtime trades */\nexport interface IRealtimeBalance {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Account ID of the account holding the balance */\n DeprecatedAccountID: number;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Used before Account ID's are used universally */\n CredentialID: number;\n\n /** Organization ID */\n OrgID: number;\n\n /** Number of balance entries */\n Balances: IRealtimeBalance5100Balances[];\n}\n\n/** Number of balance entries */\nexport interface IRealtimeBalance5100Balances {\n /** Latest time this balance was updated */\n LastUpdateTime: JSON_UTCTimestamp;\n\n /** Message type indicating snapshot or update */\n BalanceEntryType: BalanceEntryTypeEnum;\n\n /** The Currency of the balance entry, if non-zero */\n Currency: string;\n\n /** The Security of the balance entry, if non-zero */\n Symbol: JSON_Security;\n\n /** Realtime amount including all trade executions */\n Amount: JSON_Decimal;\n\n /** Available amount not tied up in open orders */\n AvailableAmount: JSON_Decimal;\n\n /** Available margin */\n AvailableMargin: JSON_Decimal;\n\n /** Amount of open orders on the buy side */\n OutstandingBuy: JSON_Decimal;\n\n /** Amount of open orders on the sell side */\n OutstandingSell: JSON_Decimal;\n\n /** Account */\n Account: string;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Pending withdrawal amount (currently used for customer balances) */\n PendingWithdrawal: JSON_Decimal;\n\n /** Initial Margin */\n InitialMargin: JSON_Decimal;\n\n /** Maintenance Margin */\n MaintenanceMargin: JSON_Decimal;\n\n /** Equity */\n Equity: JSON_Decimal;\n\n /** The total delta accross all options positions in this currency */\n OptionsDelta: JSON_Decimal;\n\n /** The total delta accross all positions in this currency */\n TotalDelta: JSON_Decimal;\n\n /** The total unsettled position in this currency */\n UnsettledAmount: JSON_Decimal;\n\n /** MarginReportingType */\n MarginReportingType: MarginReportingTypeEnum;\n\n /** The blockchain chain id on which this currency's balance exists */\n ChainID: number;\n}\n\n/** Deprecated CreditExposure5101 contains information about current credit limit against the venue */\nexport interface IDeprecratedCreditExposure {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential associated with this account. 0 if this is an external account */\n CredentialID: number;\n\n /** Unique ID of the account */\n MarketAccountID: number;\n\n /** Currency ID for exposure */\n ExposureCurrency: string;\n\n /** Total exposure with given market expressed in exposure currency */\n TotalExposure: JSON_Decimal;\n\n /** Exposure limit set by the venue expressed in exposure currency */\n ExposureLimit: JSON_Decimal;\n}\n\n/** ExposureLimit5102 represents user defined exposure limit with the venue */\nexport interface IExposureLimit {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** CounterpartyID */\n Counterparty: JSON_Counterparty;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Enable/disable exposure limit */\n Mode: ModeEnum;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** Currency that all exposure values are expressed in */\n ExposureCurrency: string;\n\n /** Asset currency. May be 0 if limit is global. */\n Currency: string;\n\n /** Exposure limit expressed in ExposureCurrencyID */\n Qty: JSON_Decimal;\n\n /** Exposure limit ID */\n ExposureLimitID: JSON_Int64ID;\n\n /** Exposure definition ID */\n ExposureDefinition: JSON_ExposureDefinition;\n\n /** Revision */\n Revision: number;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** ExposureDefinition5103 represents client understanding of exposure */\nexport interface IExposureDefinition {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** ID of aggregation used to calculate total exposure. Currently always set to 0 */\n AggregationID: number;\n\n /** Exposure calculation type */\n CalculationType: ExposureCalculationTypeEnum;\n\n /** Exposure definition source */\n Source: ExposureSourceEnum;\n\n /** Exposure definition ID */\n ExposureDefinition: JSON_Int64ID;\n\n /** Revision */\n Revision: number;\n\n /** Name of the exposure definition */\n Name: string;\n\n /** DisplayName of the exposure definition */\n DisplayName: string;\n\n /** List of currency weights for exposure definition */\n CurrencyWeights: IExposureDefinition5103CurrencyWeights[];\n}\n\n/** List of currency weights for exposure definition */\nexport interface IExposureDefinition5103CurrencyWeights {\n /** Currency ID */\n Currency: string;\n\n /** Value between 0 and 1 indicating what friction of outstanding balance should be used in calculating total exposure. 0 means do not use balance with given currency ID (effectively home currency) */\n Weight: JSON_Decimal;\n}\n\n/** MarketConnection is a connection configured by the user */\nexport interface IMarketConnection {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Unique ID of this connection */\n ConnectionID: number;\n\n /** Type of functionality supported by this connection */\n ConnectionType: Record;\n\n /** Optional credential to be used by this connection, if 0 then this is a public connection */\n CredentialID: number;\n\n /** The connection mode (Up / Down) */\n Mode: ConnectionModeEnum;\n\n /** The restart counter, increasing this number will cause a restart */\n RestartCounter: number;\n\n /** If equal to requested RestartCounter, the gateway should force a seq num reset on FIX connections */\n ResetSeqNumOnRestart: number;\n\n /** Detailed functionality supported by this connection */\n ConnectionDetails: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** Revision */\n Revision: number;\n\n /** The nudge counter, increasing this number will cause a nudge on the sub-connections that support it */\n NudgeCounter: number;\n}\n\n/** MarketExposure5104 contains information about current credit limit against the market */\nexport interface IMarketExposure {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Timestamp as provided by remote in number of nanoseconds since Unix epoch. May be zero if not provided by remote. */\n TransactTime: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Credential associated with this account. 0 if this is an external account */\n CredentialID: number;\n\n /** Unique ID of the account */\n MarketAccount: JSON_MarketAccount;\n\n /** CounterpartyID */\n Counterparty: JSON_Counterparty;\n\n /** Current exposure quantity expressed in exposure currency */\n Exposure: JSON_Decimal;\n\n /** Current exposure limit expressed in exposure limit currency */\n ExposureLimit: JSON_Decimal;\n\n /** Asset currency. May be 0 if exposure is global. */\n Currency: string;\n\n /** Currency that all exposure values are expressed in */\n ExposureCurrency: string;\n\n /** Status of exposure */\n Status: ExposureStatusEnum;\n\n /** Exposure definition ID */\n ExposureDefinition: JSON_ExposureDefinition;\n\n /** Side of the Exposure */\n ExposureSide: ExposureLimitSideTypeEnum;\n\n /** Organization ID */\n OrgID: number;\n}\n\n/** ConnectionStatus reports the status of a connection */\nexport interface IConnectionStatus {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** ConnectionID for this session */\n ConnectionID: number;\n\n /** Type of functionality supported by this connection */\n ConnectionType: Record;\n\n /** Optional credential to be used by this connection, if 0 then this is a public connection */\n CredentialID: number;\n\n /** Status of this connection */\n Status: ConnectionStatusEnum;\n\n /** ErrorCode for this connection */\n ErrorCode: ConnectionErrorCodeEnum;\n\n /** Organization ID */\n OrgID: number;\n\n /** Error message text. Multiple errors are newline delimited. */\n Text: string;\n}\n\n/** View Request for Exposure feed */\nexport interface IExposureViewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Tolerance of Exposure Changes */\n Tolerance: JSON_Decimal;\n\n /** Frequency of exposure updates based on conversion rate change */\n Throttle: JSON_DurationMillis;\n\n /** Debug and additional flags */\n Debug: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** List of counterparty IDs */\n CounterpartyIDs: IExposureViewRequest5105CounterpartyIDs[];\n\n /** List of calculation types */\n CalculationTypes: IExposureViewRequest5105CalculationTypes[];\n}\n\n/** List of calculation types */\nexport interface IExposureViewRequest5105CalculationTypes {\n /** Exposure calculation type */\n CalculationType: ExposureCalculationTypeEnum;\n}\n\n/** List of counterparty IDs */\nexport interface IExposureViewRequest5105CounterpartyIDs {\n /** ID of the counterparty */\n Counterparty: JSON_Counterparty;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Request a replay */\nexport interface IReplayRequest {\n /** Unique RequestID */\n RequestID: number;\n\n /** ReplayRequestType */\n ReplayRequestType: ReplayRequestTypeEnum;\n\n /** StreamID */\n StreamID: number;\n\n /** ReplayStreamID */\n ReplayStreamID: number;\n\n /** Start RecordingID when replaying multiple recordings */\n StartRecordingID: number;\n\n /** Position to start the replay from, negative values indicate offsets from head */\n StartPosition: number;\n\n /** ReplayID of an existing recording if stopping */\n ReplayID: number;\n\n /** ResponseStreamID */\n ResponseStreamID: number;\n\n /** Aeron ClientID of the requestor */\n ClientID: number;\n\n /** Channel */\n Channel: string;\n\n /** ReplayChannel */\n ReplayChannel: string;\n\n /** ResponseChannel */\n ResponseChannel: string;\n}\n\n/** Exposure changes for the View */\nexport interface IExposureView {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of MarketView */\n ViewID: JSON_Int64ID;\n\n /** CounterpartyID */\n Counterparty: JSON_Counterparty;\n\n /** Current exposure quantity expressed in ExposureCurrency. Set only if CurrencyID is 0 */\n Exposure: JSON_Decimal;\n\n /** Current exposure limit expressed in exposure currency */\n ExposureLimit: JSON_Decimal;\n\n /** Current exposure quantity delivered by market */\n MarketExposure: JSON_Decimal;\n\n /** Current exposure limit delivered by market */\n MarketLimit: JSON_Decimal;\n\n /** Current available quantity expressed in exposure currency */\n Available: JSON_Decimal;\n\n /** Currency that all exposure values except Balance are expressed in */\n ExposureCurrency: string;\n\n /** Asset currency. May be 0 if exposure is in security or global. */\n Currency: string;\n\n /** Asset security. May be 0 if exposure is in currency or global. */\n Symbol: JSON_Security;\n\n /** Status of exposure */\n Status: ExposureStatusEnum;\n\n /** Exposure definition ID */\n ExposureDefinition: JSON_ExposureDefinition;\n\n /** Current available quantity to buy expressed in exposure currency */\n AvailableBuy: JSON_Decimal;\n\n /** Current available quantity to sell expressed in exposure currency */\n AvailableSell: JSON_Decimal;\n\n /** Current balance of the CurrencyID expressed in CurrencyID. Set only if CurrencyID is not 0 */\n Balance: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Side of the Exposure */\n ExposureSide: ExposureLimitSideTypeEnum;\n\n /** Text */\n Text: string;\n}\n\n/** Request the status of a connection for a market */\nexport interface IConnectionStatusRequest {\n /** The ID of the snapshot request */\n RequestID: number;\n\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Market ID */\n Market: JSON_Market;\n\n /** Optional CredentialID for this Connection */\n ConnectionID: number;\n}\n\n/** Ack for a replay request */\nexport interface IReplayAck {\n /** Unique RequestID */\n RequestID: number;\n\n /** ReplayAckType */\n ReplayAckType: ReplayAckTypeEnum;\n\n /** ReplayID */\n ReplayID: number;\n\n /** RecordingID being replayed */\n RecordingID: number;\n\n /** The original sessionID to be replayed */\n SessionID: number;\n\n /** The current head of the replay */\n HeadPosition: number;\n\n /** The end position of the replay, or -1 if the recording is live */\n EndPosition: number;\n\n /** Position that the replay starts from in the given recording */\n StartPosition: number;\n}\n\n/** View Request for BuyingPower feed */\nexport interface IBuyingPowerViewRequest {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Unique ID representing this Request */\n ViewRequestID: JSON_Int64ID;\n\n /** Stable ID of Requesting Client Process */\n ClientID: JSON_Int64ID;\n\n /** Unique ID of this session */\n SessionID: JSON_Int64ID;\n\n /** ID of Subscription */\n SubscriptionID: JSON_Int64ID;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Frequency of buying power updates */\n Throttle: JSON_DurationMillis;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: UnifiedLiquidityEnum;\n\n /** Debug and additional flags */\n Debug: Record;\n\n /** Organization ID */\n OrgID: number;\n\n /** List of counterparty IDs */\n CounterpartyIDs: IBuyingPowerViewRequest5107CounterpartyIDs[];\n}\n\n/** List of counterparty IDs */\nexport interface IBuyingPowerViewRequest5107CounterpartyIDs {\n /** ID of the counterparty */\n Counterparty: JSON_Counterparty;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n}\n\n/** Query For Market Data Snapshot + Updates */\nexport interface IMarketDataQuery {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Must be unique, or the ID of previous MarketDataRequest to unsubscribe */\n MDReqID: number;\n\n /** SubscriptionRequestType, e.g. where to subscribe or unsubscribe */\n SubscriptionRequestType: SubscriptionRequestTypeEnum;\n\n /** Query */\n Query: string;\n}\n\n/** Request a recording, requests are idempotent. */\nexport interface IRecordRequest {\n /** Unique RequestID */\n RequestID: number;\n\n /** RecordRequestType */\n RecordRequestType: RecordRequestTypeEnum;\n\n /** StreamID */\n StreamID: number;\n\n /** SessionID */\n SessionID: number;\n\n /** ResponseStreamID */\n ResponseStreamID: number;\n\n /** Aeron ClientID of the requestor */\n ClientID: number;\n\n /** Channel */\n Channel: string;\n\n /** ResponseChannel */\n ResponseChannel: string;\n}\n\n/** Buying power updates */\nexport interface IBuyingPowerView {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of MarketView */\n ViewID: JSON_Int64ID;\n\n /** CounterpartyID */\n Counterparty: JSON_Counterparty;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Currency that AvailableBuy and AvailableSell are expressed in */\n Currency: string;\n\n /** Current available quantity to buy expressed in currency */\n AvailableBuy: JSON_Decimal;\n\n /** Current available quantity to sell expressed in currency */\n AvailableSell: JSON_Decimal;\n\n /** Status of buying power */\n Status: ExposureStatusEnum;\n\n /** Current available quantity to buy respecting trading windows expressed in CurrencyID */\n MaxBuyOrderSize: JSON_Decimal;\n\n /** Current available quantity to sell respecting trading windows expressed in CurrencyID */\n MaxSellOrderSize: JSON_Decimal;\n\n /** Selected MarketAccount */\n MarketAccount: JSON_MarketAccount;\n\n /** Text */\n Text: string;\n}\n\n/** An identifier for the underlying resources hosting orgs in a multi-tenant environment */\nexport interface ISystem {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of system */\n ID: number;\n\n /** Unique name for this system used as an external identifier */\n Name: string;\n\n /** Last updated by user */\n UpdateUser: JSON_User;\n\n /** Revision of the system to be updated */\n Revision: number;\n\n /** Unique human readable name for this system */\n DisplayName: string;\n}\n\n/** Ack for a record request indicating recording has started */\nexport interface IRecordAck {\n /** Unique RequestID */\n RequestID: number;\n\n /** RecordAckType */\n RecordAckType: RecordAckTypeEnum;\n\n /** The recordingID of the started recording */\n RecordingID: number;\n}\n\n/** Internal representation of a business entity or institution that uses Talos platform for trading activities */\nexport interface IOrganization {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** ID of organization */\n ID: number;\n\n /** Unique name for this system used across infrastructure */\n Name: string;\n\n /** ID of a system hosting this organization. null field mean organization is not hosted in multi-tenant system. */\n SystemID: number;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Revision of the system to be updated */\n Revision: number;\n\n /** Attributes (e.g. hasOrgVM) of this organization */\n Attrs: number;\n\n /** Human readable name for this system */\n DisplayName: string;\n}\n\n/** Customer security definition */\nexport interface ICustomerSecurity {\n /** Internal time in number of nanoseconds since Unix epoch */\n Timestamp: JSON_UTCTimestamp;\n\n /** Update action */\n UpdateAction: UpdateActionEnum;\n\n /** Security ID */\n Symbol: JSON_Security;\n\n /** Canonical size increment */\n MinSizeIncrement: JSON_Decimal;\n\n /** Canonical price increment */\n MinPriceIncrement: JSON_Decimal;\n\n /** Market size increment */\n MaximumSize: JSON_Decimal;\n\n /** Customer security status */\n Mode: ModeEnum;\n\n /** Market size increment */\n MinimumSize: JSON_Decimal;\n\n /** Default pricing rule more for this security */\n DefaultPricingRuleMode: ModeEnum;\n\n /** When enabled, price this symbol via the synthetic cross */\n PriceViaSyntheticCross: ModeEnum;\n\n /** Revision of that customer user update */\n Revision: number;\n\n /** User who performed an update of that entity */\n UpdateUser: JSON_User;\n\n /** Multileg security to map this 'native' pair to */\n UnderlyingCrossSymbol: JSON_Security;\n\n /** Canonical amount increment */\n MinAmtIncrement: JSON_Decimal;\n\n /** Enable or disable unified liquidity feature. */\n UnifiedLiquidity: ModeEnum;\n\n /** Optional minimum amount */\n MinimumAmount: JSON_Decimal;\n\n /** DisplaySymbol field (Display Field) */\n DisplaySymbol: string;\n\n /** Description of the customer security */\n Description: string;\n\n /** Default list of size buckets (Display Field) */\n SizeBuckets: ICustomerSecurity4600SizeBuckets[];\n}\n\n/** Default list of size buckets (Display Field) */\nexport interface ICustomerSecurity4600SizeBuckets {\n /** Size bucket (Display Field) */\n Size: JSON_Decimal;\n}\n\n/** Source message for this update */\nexport interface IMessageID {\n /** session */\n SessionID: JSON_Int64ID;\n\n /** system sequence number */\n SequenceNo: number;\n\n /** source sequence number */\n SourceSequenceNo: number;\n}\n\n/** Transaction subject contains authentication information about the entity that requested the transaction */\nexport interface ISubject {\n /** Counterparty is a subject for that transaction */\n CounterpartyID: number;\n\n /** Customer user is a subject for that transaction */\n CustomerUserID: number;\n\n /** User is a subject for that transaction */\n UserID: number;\n\n /** Organization is a subject for that transaction */\n OrgID: number;\n}\n\n/*\n * These are hard-coded types to match the marshalling defined\n * in 'gocode/json/semanticmarshaller.go'.\n */\n\n/** UTC Timestamp in ISO8601 format */\nexport type JSON_UTCTimestamp = string;\n\n/** Human readable form, e.g. '72h3m0.5s' */\nexport type JSON_DurationMillis = string;\n\n/**\n * Crockford Base 32 encoded number\n *\n * @description\n * Don't try to parse this value, treat it purely as an opaque string id\n */\nexport type JSON_Int64ID = string;\n\n/** Decimal value in a string */\nexport type JSON_Decimal = string | undefined;\n\n/** Decimal128 value in a string */\nexport type JSON_Dec128 = string | undefined;\n\n/** Aggregation.name */\nexport type JSON_Aggregation = string;\n\n/** Security.name\n * @link JSON_Security */\nexport type JSON_AllowedCrossCurrencies = JSON_Security[];\n\n/** Market.name\n * @link JSON_Market */\nexport type JSON_AllowedCrossMarkets = JSON_Market[];\n\n/** Counterparty.name */\nexport type JSON_Counterparty = string;\n\n/** CustomerMarketDataSnapshot.Bids **/\nexport type JSON_CustomerBids = {\n Price: JSON_Decimal;\n Size: JSON_Decimal;\n}[];\n\n/** CustomerMarketDataSnapshot.SizeBuckets.Bucket **/\nexport type JSON_CustomerMarketDataSnapshotSizeBuckets = JSON_Decimal[];\n\n/** CustomerMarketData.Offers **/\nexport type JSON_CustomerOffers = {\n Price: JSON_Decimal;\n Size: JSON_Decimal;\n}[];\n\n/** Bucket.size */\nexport type JSON_CustomerSecuritySizeBuckets = string[];\n\n/** CustomerUser.email */\nexport type JSON_CustomerUser = string;\n\n/** MarketAccount.name for principal; MarketAccount.source_account_id for customer */\nexport type JSON_CustomerMarketAccount = string;\n\n/** StrategyParameter.EnumValues **/\nexport type JSON_EnumValues = {\n Index: number;\n Name: string;\n Description: string;\n}[];\n\n/** ESignCreateAndSend.Recipients **/\nexport type JSON_ESignCreateAndSendRecipients = {\n LegalName: string;\n DeliveryID: string;\n Role: string;\n}[];\n\n/** ESignCreateAndSend.Tabs **/\nexport type JSON_ESignCreateAndSendTabs = {\n Label: string;\n Value: string;\n}[];\n\n/** ESignStatus.Recipients **/\nexport type JSON_ESignRecipients = {\n LegalName: string;\n DeliveryID: string;\n Role: string;\n Status: string;\n Timestamp: JSON_UTCTimestamp;\n};\n\n/** IApiPermissionFilter.Subject **/\nexport type JSON_ApiPermissionSubject = {\n User: JSON_User | undefined;\n SubAccount: JSON_SubAccount | undefined;\n};\n\n/** IApiPermissionFilter.Filter **/\nexport type JSON_ApiPermissionFilterSpec = {\n SubAccount: JSON_SubAccount | undefined;\n MarketAccount: JSON_MarketAccount | undefined;\n};\n\n/** ExposureDefinition.name */\nexport type JSON_ExposureDefinition = string;\n\n/** Participant.name\n * @link JSON_Participant */\nexport type JSON_Lenders = JSON_Participant[];\n\n/** Market.name */\nexport type JSON_Market = string;\n\n/** MarketAccount.name */\nexport type JSON_MarketAccount = string;\n\n/** ESignGateway.name */\nexport type JSON_ESignGateway = string;\n\n/** UpdateMarketData.Bids **/\nexport type JSON_InternalBids = {\n Price: JSON_Decimal;\n Size: JSON_Decimal;\n}[];\n\n/** UpdateMarketData.Offers **/\nexport type JSON_InternalOffers = {\n Price: JSON_Decimal;\n Size: JSON_Decimal;\n}[];\n\n/** Participant.name */\nexport type JSON_Participant = string;\n\n/** Security.symbol\n * @link JSON_Security */\nexport type JSON_PricingRuleAllowedCrossCurrencies = JSON_Security[];\n\n/** Market.name\n * @link JSON_Market */\nexport type JSON_PricingRuleAllowedCrossMarkets = JSON_Market[];\n\n/** Security.symbol */\nexport type JSON_Security = string;\n\n/** MarketSecurityMode.SizeBuckets.Size */\nexport type JSON_SecurityModeSizeBuckets = string[];\n\n/** Security.SizeBuckets.Size */\nexport type JSON_SecuritySizeBuckets = string[];\n\n/** Strategy.Name */\nexport type JSON_Strategy = string;\n\n/** SubAccount.name */\nexport type JSON_SubAccount = string;\n\n/** User.name */\nexport type JSON_User = string;\n\n/** ServiceIdentifier **/\nexport type JSON_ServiceIdentifier = {\n ServiceID: number;\n PartitionID: number;\n};\n\n/** PricingTier */\nexport type JSON_PricingTier = string;\n","export enum OrderStatusText {\n Paused = 'Paused',\n Waiting = 'Waiting',\n Staged = 'Staged',\n Filled = 'Filled',\n FilledAndCanceled = 'Filled & Canceled',\n Canceled = 'Canceled',\n PendingCancel = 'Pending Cancel',\n PendingReplace = 'Pending Replace',\n Rejected = 'Rejected',\n Open = 'Open',\n SystemPaused = 'System Paused',\n PendingFix = 'Pending Fix',\n}\n\nexport enum OrderStatusSize {\n Small,\n Default,\n}\n\nexport enum QuoteStatusText {\n Filled = 'Filled',\n Canceled = 'Canceled',\n PendingNew = 'Pending New',\n PendingCancel = 'Pending Cancel',\n Rejected = 'Rejected',\n Open = 'Open',\n PendingFix = 'Pending Fix',\n}\n","import type { IStrategy, IStrategy4860Parameters, OrdTypeEnum, PresenceEnum } from './types';\n\n/**\n * Note the types in this file should really only be used for Orders in Principal and not Orders in White Label\n */\nexport interface OrderStrategy extends Omit {\n Parameters: Parameter[];\n InstrumentScope: 'Native' | 'Synthetic' | 'All';\n}\n\nexport interface Parameter extends Omit {\n DefaultValue: IStrategy4860Parameters['DefaultValue'] | undefined;\n Type: ParameterTypeEnum;\n}\n\nexport enum ParameterTypeEnum {\n PriceOffset = 'PriceOffset',\n PriceProtection = 'PriceProtection',\n Qty = 'Qty',\n Date = 'Date',\n Duration = 'Duration',\n Interval = 'Interval',\n Percent = 'Percent',\n Price = 'Price',\n Bps = 'Bps',\n Aggregation = 'Aggregation',\n String = 'String',\n Enum = 'Enum',\n UnifiedLiquidity = 'UnifiedLiquidity',\n TargetParticipationRate = 'TargetParticipationRate',\n ReduceOnly = 'ReduceOnly',\n ReduceFirst = 'ReduceFirst',\n JSON = 'JSON',\n}\n\n// These \"Like\" interfaces are used in Kyoko components that use both Principal+Whitelabel Strategy Params\nexport interface ParameterLike {\n DisplayName: string;\n Name: string;\n Type: ParameterTypeEnum;\n Presence: PresenceEnum;\n Description: string;\n DefaultValue?: string;\n EnumValues?: EnumParameter[];\n}\n\nexport interface EnumParameter {\n Index: number;\n Name: string;\n Description: string;\n}\n\nexport interface StrategyLike {\n Name: string;\n DisplayName: string;\n Parameters: ParameterLike[];\n Group?: string;\n Description?: string;\n OrdType?: OrdTypeEnum;\n}\n","import type { Security } from '../types/Security';\nimport {\n InstrumentCompositionEnum,\n ProductTypeEnum,\n SettleValueTypeEnum,\n SyntheticProductTypeEnum,\n} from '../types/types';\nimport { toBigWithDefault } from './number';\n\n/**\n * Returns true if the Security supports being traded in counter currency amounts.\n * Security needs a PositionCurrency https://talostrading.atlassian.net/wiki/spaces/AVA/pages/1097760782/How+to+use+currencies#Performing-conversions-for-derivatives\n */\nexport const canCcyFutureOrPerp = (security?: Security | undefined): boolean => {\n return !isSecurityQuantoFuture(security);\n};\n\n/**\n * Identifies Quanto contract by checking if SettlementCurrency is neither the base nor quote currency on the instrument.\n * https://talostrading.atlassian.net/wiki/spaces/AVA/pages/2199552112/Future+and+Perpetual+Contract+Types\n */\nexport const isSecurityQuantoFuture = (security?: Security): boolean => {\n return (\n !!security &&\n security.ProductType !== ProductTypeEnum.Spot &&\n ![security.BaseCurrency, security.QuoteCurrency].includes(security.SettlementCurrency)\n );\n};\n\nexport const isSecurityExpired = (security?: Security): boolean => {\n if (!security || !security.Expiration) {\n return false;\n }\n return new Date(security.Expiration) < new Date();\n};\n\nexport const isSecurityCME = (security?: Security): boolean => {\n return security?.Markets?.includes('cme') || false;\n};\n\nexport const isSecurityDeribit = (security?: Security): boolean => {\n return security?.Markets?.includes('deribit') || false;\n};\n\nexport const isDeribitLinearOption = (security?: Security) => {\n return (\n security &&\n isSecurityDeribit(security) &&\n isOption(security) &&\n security.BaseCurrency !== security.QuoteCurrency &&\n security.SettleValueType === SettleValueTypeEnum.Regular\n );\n};\n\nexport const isLinearOption = (security?: Security) => {\n return (\n security &&\n security.SettlementCurrency === security.QuoteCurrency &&\n security.SettlementCurrency !== security.BaseCurrency\n );\n};\n\nexport const isInvertedOption = (security?: Security) => {\n return (\n security &&\n security.SettlementCurrency === security.QuoteCurrency &&\n security.SettlementCurrency === security.BaseCurrency\n );\n};\n\nexport const isSpot = (security?: Security) => {\n return (\n security &&\n security.ProductType === ProductTypeEnum.Spot &&\n security.Composition !== InstrumentCompositionEnum.Synthetic\n );\n};\n\nexport const isPerpetualSwap = (security?: Security) => {\n return security && security.ProductType === ProductTypeEnum.PerpetualSwap;\n};\n\nexport const isInversePerp = (security?: Security) => {\n return isPerpetualSwap(security) && security?.SettleValueType === SettleValueTypeEnum.Inverted;\n};\n\nexport const isLinearPerp = (security?: Security) => {\n return isPerpetualSwap(security) && security?.SettleValueType === SettleValueTypeEnum.Regular;\n};\n\nexport const isFuture = (security?: Security) => {\n return security && security.ProductType === ProductTypeEnum.Future;\n};\n\nexport const isCFD = (security?: Security) => {\n return security && security.ProductType === ProductTypeEnum.CFD;\n};\n\nexport const isETF = (security?: Security) => {\n return security && security.ProductType === ProductTypeEnum.ExchangeTradedFund;\n};\n\nexport const isOption = (security?: Security) => {\n return security && security.ProductType === ProductTypeEnum.Option;\n};\n\nexport const isMultileg = (security?: Security) => {\n return Boolean(security && security?.Composition === InstrumentCompositionEnum.Synthetic);\n};\n\nexport const isDelta1Multileg = (security?: Security) => {\n return security && security?.MultilegDetails?.SyntheticProductType === SyntheticProductTypeEnum.Delta1Spread;\n};\n\nexport const isCross = (security?: Security) => {\n return security && security?.MultilegDetails?.SyntheticProductType === SyntheticProductTypeEnum.Cross;\n};\n\nexport const isCalendarSpread = (security?: Security): boolean => {\n return security != null && security.ProductType === ProductTypeEnum.CalendarSpread;\n};\n\nexport const isOptionStrategy = (security?: Security) => {\n if (!security?.MultilegDetails?.SyntheticProductType) {\n return false;\n }\n\n return [\n SyntheticProductTypeEnum.CallSpread,\n SyntheticProductTypeEnum.PutSpread,\n SyntheticProductTypeEnum.CallCalendarSpread,\n SyntheticProductTypeEnum.PutCalendarSpread,\n ].includes(security.MultilegDetails.SyntheticProductType);\n};\n\nexport const isBasis = (security?: Security) => {\n // ProductType Basis is legacy\n return (\n security &&\n (security.ProductType === ProductTypeEnum.Basis ||\n security.ProductType === ProductTypeEnum.CalendarSpread ||\n (isMultileg(security) && security.MultilegDetails?.SyntheticProductType !== SyntheticProductTypeEnum.Cross))\n );\n};\n\nexport const getProductType = (security?: Security) => {\n if (!security) {\n return '';\n }\n\n if (isMultileg(security) && !security?.MultilegDetails?.SyntheticProductType) {\n return '';\n }\n\n return isMultileg(security)\n ? productTypeToString(security.MultilegDetails!.SyntheticProductType)\n : productTypeToString(security.ProductType);\n};\n\n// Not the same as ProductTypeEnum since it's not 1:1, i.e. Multi isn't a ProductType\nexport type ProductGroup =\n | 'Spot'\n | 'Perp'\n | 'Future'\n | 'Multi'\n | 'Option'\n | 'Basis'\n | 'CFD'\n | 'Synthetic'\n | 'Unknown'\n | 'Cross'\n | 'Delta1Spread'\n | 'CallCalendarSpread'\n | 'PutCalendarSpread'\n | 'CalendarSpread'\n | 'CallSpread'\n | 'PutSpread'\n | 'ExchangeTradedFund';\n\nexport const getProductGroupLabel = (productGroup: ProductGroup): string => {\n switch (productGroup) {\n case 'CalendarSpread':\n return 'Calendar Spread';\n case 'Delta1Spread':\n return 'Delta 1 Spread';\n case 'CallCalendarSpread':\n return 'Call Calendar Spread';\n case 'PutCalendarSpread':\n return 'Put Calendar Spread';\n case 'CallSpread':\n return 'Call Spread';\n case 'PutSpread':\n return 'Put Spread';\n case 'ExchangeTradedFund':\n return 'ETF';\n case 'CFD':\n return 'Swap';\n default:\n return productGroup;\n }\n};\n\nexport const productTypeToString = (productType: ProductTypeEnum | SyntheticProductTypeEnum): ProductGroup => {\n switch (productType) {\n case ProductTypeEnum.PerpetualSwap:\n return 'Perp';\n default:\n return productType;\n }\n};\n\nexport const productTypeLabel = (productType: ProductTypeEnum | SyntheticProductTypeEnum): string => {\n return getProductGroupLabel(productTypeToString(productType));\n};\n\nexport const getGroup = (sec: Security): ProductGroup =>\n sec.Composition === InstrumentCompositionEnum.Synthetic ? 'Multi' : productTypeToString(sec.ProductType);\n\nexport enum SpreadUnit {\n BPS = 'BPS',\n PRICE = 'Price',\n}\n\nexport const getSpreadUnit = (security?: Security): SpreadUnit =>\n isOption(security) || isBasis(security) ? SpreadUnit.PRICE : SpreadUnit.BPS;\n\n// Contracts are allowed if NotionalMultiplier != 1\n// Mandatory and enforced for Quanto Symbols\nexport const allowContracts = (security?: Security) =>\n security &&\n (!toBigWithDefault(security?.NotionalMultiplier, 1).eq(1) ||\n isSecurityQuantoFuture(security) ||\n isDeribitLinearOption(security));\n\nexport const getMinIncrementForContract = (security: Security, currency: string | undefined): string | undefined => {\n if (\n (security.SettlementCurrency === security.BaseCurrency && currency === security.QuoteCurrency) ||\n (security.SettlementCurrency === security.QuoteCurrency && currency === security.BaseCurrency)\n ) {\n return security.NotionalMultiplier;\n }\n};\n\nexport const canViewDeepDive = (security?: Security) => {\n return security != null;\n};\n\nexport const isExpired = (security?: Security) => {\n return security?.Expiration != null && new Date(security.Expiration) < new Date();\n};\n","// Similar to PricingModeEnum provided in types.ts provided by back end; however we need a value to represent the Default case as well on UI\n\nexport enum PricingMode {\n ImpliedVolatility = 'ImpliedVolatility', // %\n UnderlyingQuoteCurrency = 'UnderlyingQuoteCurrency', // USD\n Default = 'Default',\n}\n","// roles\nexport enum ROLE {\n NONE = '',\n READ_ONLY = 'org.viewer',\n TRADER = 'org.trader',\n TRADING_CONFIG = 'org.trading.config',\n ADMIN = 'org.admin',\n USER_ADMIN = 'org.user.admin',\n CREDENTIALS_ADMIN = 'org.credentials.admin',\n DEALER = 'org.dealer',\n DEALER_VIEWER = 'org.dealer.viewer',\n DEALER_ADMIN_OPS = 'org.dealer.admin.ops',\n TRANSFERS = 'org.transfers',\n TRANSFERS_HIDDEN = 'org.transfers.hidden',\n TALOS_SUPPORT = 'talos.support',\n TALOS_ADMIN = 'talos.admin',\n TALOS_ONBOARDING_ADMIN = 'talos.onboarding.admin',\n TALOS_TEST_RUNNER = 'talos.testrunner',\n TALOS_VIEWER = 'talos.viewer',\n TALOS_CANCEL_ORDERS = 'talos.orders.cancel',\n EXCHANGE_SETTLEMENT = 'exchange.settlement',\n CUSTODIAN_SETTLEMENT = 'custodian.settlement',\n MARKETPLACE_VIEWER = 'marketplace.viewer',\n MARKETPLACE_TRADER = 'marketplace.trader',\n MARKETPLACE_ADMIN = 'marketplace.admin',\n PORTFOLIO = 'org.portfolio',\n PORTFOLIO_BETA = 'org.portfolio.beta',\n ANALYTICS = 'org.analytics',\n TREASURY = 'org.treasury',\n SECMASTER = 'org.secmaster',\n MARKETPLACE_OPS = 'marketplace.ops',\n TRADING_CONTROLS_ADMIN = 'org.trading.controls.admin',\n PORTFOLIO_ENGINEERING = 'org.portfolio.engineering',\n PORTFOLIO_RECON = 'org.portfolio.recon',\n AUTOHEDGING_VIEW = 'org.autohedger.view',\n AUTOHEDGING_ADMIN = 'org.autohedger.admin',\n DEALER_CONFIGURATION = 'org.dealer.configuration',\n}\n\n// actions\nexport enum ACTION {\n VIEW_ORDER_FORM = 'order-form.view',\n VIEW_RFQ_FORM = 'rfq-form.view',\n VIEW_SALES_ORDER_FORM = 'sales-order-form.view',\n VIEW_SALES_RFQ_FORM = 'sales-rfq-form.view',\n VIEW_ORDER = 'order.view',\n VIEW_AUTOHEDGING = 'autohedging.view',\n EDIT_AUTOHEDGING = 'autohedging.edit',\n SUBMIT_ORDER = 'order.submit',\n PAUSE_ORDER = 'order.pause',\n RESUME_ORDER = 'order.resume',\n CANCEL_ORDER = 'order.cancel',\n ARCHIVE_ORDER = 'order.archive',\n REQUEST_RFQ = 'rfq.request',\n ACCEPT_RFQ = 'rfq.accept',\n EDIT_TRADE = 'trade.edit',\n EDIT_MARKET_SETTINGS = 'settings.markets.edit',\n EDIT_AGGREGATION_SETTINGS = 'settings.aggregations.edit',\n EDIT_SUB_ACCOUNTS = 'settings.subaccounts.edit',\n CLONE_SUB_ACCOUNTS = 'settings.subaccounts.clone',\n EDIT_SECMASTER = 'settings.secmaster.edit',\n EDIT_SECMASTER_ADVANCED = 'settings.secmaster.editadvanced',\n SUBMIT_TRANSFER = 'transfer.submit',\n EDIT_LIMITS = 'limits.edit',\n EDIT_MAX_ORDER_SIZE_LIMITS = 'limits.max-order-size.edit',\n EDIT_COUNTERPARTY_LIMITS = 'limits.counterparty.edit',\n TOGGLE_KILLSWITCH = 'killswitch.toggle',\n EDIT_BALANCE = 'balance.edit',\n VIEW_DEALER = 'dealer.view',\n APPROVE_PENDING_TRANSACTION = 'dealer.approve.transaction',\n APPROVE_PENDING_TRANSFER = 'dealer.approve.transfer',\n FORCE_WITHDRAWAL = 'dealer.force-withdrawal',\n DEALER_TRADING = 'dealer.trading',\n VIEW_FIX_CONNECTIONS = 'dealer.fixconnections.view',\n EDIT_DEFAULT_PRICING_RULE = 'dealer.edit.default-pricing-rule',\n EDIT_EXECUTION_RULES_MODE = 'dealer.edit.execution-rules-mode',\n EDIT_CUSTOMER_BALANCE = 'dealer.edit.customer-balance',\n EDIT_DEALER_TRADING = 'dealer.edit.trading',\n EDIT_POSITION = 'position.edit',\n VIEW_ORDER_ANALYTICS = 'orderanalytics.view',\n VIEW_PORTFOLIO = 'portfolio.view',\n VIEW_TALOS_ADMIN_SETTINGS = 'talos.admin.view',\n EDIT_FILTER_PERMISSIONS = 'settings.filterpermissions.read',\n EDIT_ROLLUPS = 'settings.rollups.edit',\n EDIT_MARKET_SESSION_LIMIT = 'settings.users.edit.market-session-limit',\n EDIT_MARKET_CREDENTIALS = 'settings.users.edit.market-credentials',\n EDIT_ADDRESSES = 'settings.addresses.edit',\n MANUAL_ORDER_FILL = 'manual.order.fill',\n MANUAL_RFQ_PRICING = 'manual.rfq.pricing',\n EDIT_USERS = 'settings.users.edit',\n HEDGER_SYNCHRONIZATION = 'hedger.synchronization',\n VIEW_LEDGER_EVENTS = 'ledger.events.view',\n VIEW_CUSTOMER_CONFIGURATIONS = 'dealer.configurations.view',\n EDIT_CUSTOMER_CONFIGURATIONS = 'dealer.configurations.edit',\n VIEW_CUSTOMER_PRICING_TIERS = 'dealer.pricing-tiers.view',\n EDIT_CUSTOMER_PRICING_TIERS = 'dealer.pricing-tiers.edit',\n VIEW_CUSTOMER_SYMBOL_GROUPS = 'dealer.symbol-groups.view',\n EDIT_CUSTOMER_SYMBOL_GROUPS = 'dealer.symbol-groups.edit',\n\n VIEW_MONITORING_ORDER_CONTEXT = 'monitoring.ordercontext.view',\n /**\n * Bypass filter permissions and be allowed to trade on all subaccounts\n */\n VIEW_FILTER_PERMISSIONS_FEATURE_DISABLED = 'settings.filterpermissions.viewfeaturedisabled',\n VIEW_ANALYTICS = 'analytics.view',\n /**\n * View the ApiFilterPermissions even if the flag `'trading.EnableAccountSegregation'` is disabled\n */\n BYPASS_FILTER_PERMISSIONS_RESTRICTIONS_SUBACCOUNTS = 'principal.filterpermissions.bypass.subaccounts',\n\n // Talos-specific permissions\n FORCE_CANCEL_ORDER = 'order.force-cancel',\n FORCE_FILL_ORDER = 'order.force-fill',\n USE_ORGANIZATION = 'organization.use',\n EDIT_CONFIGURATIONS = 'settings.configurations.edit',\n EDIT_ORGANIZATIONS = 'organizations.edit',\n EDIT_MARKET_ACCOUNTS = 'market-accounts.edit',\n EDIT_COUNTERPARTIES = 'counterparties.edit',\n EDIT_MARKET_CONNECTIONS = 'market-connections.edit',\n EDIT_PROCESSES = 'processes.edit',\n MORPH_USER = 'user.morph',\n\n // Credentials specific\n VIEW_CREDENTIALS = 'settings.credentials.view',\n EDIT_CREDENTIALS = 'settings.credentials.edit',\n\n // Trading Controls\n VIEW_TRADING_CONTROLS = 'settings.trading-controls.view',\n VIEW_ALL_MARKET_ACCOUNTS_IN_TRADING_CONTROLS = 'settings.trading-controls.view.all.market.accounts',\n REQUEST_EQUITY_MARGIN_RATE_LIMIT = 'equity-margin-ratio-limit.request',\n VIEW_TRADING_CONTROLS_DIALOG = 'trading-controls-dialog.view',\n\n // Portfolio Engineering\n EDIT_PORTFOLIO_ENGINEERING = 'portfolio-engineering.edit',\n\n SUBMIT_CARE_ORDER = 'careOrder.submit',\n\n VIEW_PORTFOLIO_RECON = 'portfolio.recon.view',\n EDIT_PORTFOLIO_RECON = 'portfolio.recon.edit',\n\n // Account Segregaation\n\n /** Show all market accounts regardless of MarketAccounts Read Permission */\n VIEW_ALL_MARKET_ACCOUNTS_IN_ACCOUNT_SEG = 'settings.account-segregation.view.all.market.accounts',\n}\n\n//marketplace actions\nexport enum MARKETPLACE_ACTION {\n VIEW_LOAN_QUOTE_REQUEST = 'loanQuote.view',\n SUBMIT_LOAN_QUOTE_REQUEST = 'loanQuote.submit',\n SUBMIT_CLOSE_LOAN = 'loan.submitClose',\n EDIT_CREDENTIALS = 'credentials.edit',\n SUBMIT_INITIATE_TRANSFER = 'transaction.submitTransfer',\n}\n","export enum ThemeTypes {\n dark = 'dark',\n light = 'light',\n auto = 'auto',\n}\n","export enum Direction {\n Asc = 'ASC',\n Desc = 'DESC',\n}\n","import type { Placement, PositioningStrategy, SideObject, State } from '@popperjs/core';\nimport type { SpringValues } from '@react-spring/web';\nimport type React from 'react';\nimport type { AriaAttributes, CSSProperties, MouseEventHandler, ReactNode } from 'react';\nimport type { Modifier } from 'react-popper';\nimport type { ReMap } from '../../utils/types';\nexport interface PopoverStateProps {\n closeOnClickOutside?: boolean;\n onClickOutside?: (e: MouseEvent) => void;\n trigger?: 'click' | 'hover' | '';\n isSmall?: boolean;\n usePortal?: boolean;\n onOpen?: () => void;\n onClose?: () => void;\n placement?: Placement;\n delay?: number;\n modifiers?: Modifier[];\n strategy?: PositioningStrategy;\n preventOverflow?: boolean;\n noPaddingAndBorder?: boolean;\n}\n\nexport type PopoverProps = React.PropsWithChildren<\n ReMap<\n Omit &\n Omit\n >\n>;\n\nexport type PopoverState = {\n onClickTarget: ((e: Event) => void) | (() => void);\n onMouseEnterTarget: () => void;\n onMouseLeave: MouseEventHandler;\n onFocusTarget: () => void;\n onBlurTarget: () => void;\n targetRef: HTMLElement | null;\n contentRef: HTMLDivElement | null;\n setTargetRef: React.RefCallback;\n setContentRef: React.RefCallback;\n tabIndex?: number;\n state: State | null;\n update: (() => Promise>) | null;\n /** Amount of spacing around overflow prevention */\n spacing: number;\n overflow: SideObject;\n close: () => void;\n open: () => void;\n isOpen: boolean;\n toggle: () => void;\n placement?: Placement;\n isSmall: boolean;\n usePortal: boolean;\n styles: { popper: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n preventOverflow?: boolean;\n noPaddingAndBorder: boolean;\n /** Optional to set a zIndex over complex components -\n * use {@see Z_INDEX} from kyoko/src/styles/layout.ts as a basis */\n zIndex?: number;\n};\n\nexport type PopoverContentProps = Pick & {\n style?: CSSProperties;\n placement?: Placement;\n variant?: PopoverVariant;\n transitionStyle?: SpringValues;\n isSmall?: boolean;\n children: ReactNode;\n onMouseLeave?: MouseEventHandler;\n overflow?: SideObject;\n overflowY?: React.CSSProperties['overflowY'];\n targetStyle?: CSSProperties;\n noPaddingAndBorder?: boolean;\n 'aria-busy'?: AriaAttributes['aria-busy'];\n};\n\nexport enum PopoverVariant {\n Default = 'DEFAULT',\n Primary = 'PRIMARY',\n Positive = 'POSITIVE',\n Negative = 'NEGATIVE',\n Warning = 'WARNING',\n}\n","export enum AlertVariants {\n Default = 'DEFAULT',\n Info = 'INFO',\n Positive = 'POSITIVE',\n Negative = 'NEGATIVE',\n Warning = 'WARNING',\n Notice = 'NOTICE',\n Guide = 'GUIDE',\n}\n","import { defineMessages } from 'react-intl';\nimport { AlertVariants } from '../../components/Alert';\nimport type { IntlWithFormatter } from '../../contexts/IntlContext';\n\nconst messages = defineMessages({\n high: {\n defaultMessage: 'High',\n id: 'types.WarningSeverity.high',\n },\n low: {\n defaultMessage: 'Low',\n id: 'types.WarningSeverity.low',\n },\n medium: {\n defaultMessage: 'Medium',\n id: 'types.WarningSeverity.medium',\n },\n none: {\n defaultMessage: 'None',\n id: 'types.WarningSeverity.none',\n },\n});\n\ntype MessageKey = keyof typeof messages;\n\nexport enum WarningSeverity {\n NONE,\n LOW,\n MEDIUM,\n HIGH,\n}\n\nexport const WARNING_SEVERITY_TO_ALERT_VARIANT: Record = {\n [WarningSeverity.NONE]: AlertVariants.Default,\n [WarningSeverity.LOW]: AlertVariants.Notice,\n [WarningSeverity.MEDIUM]: AlertVariants.Warning,\n [WarningSeverity.HIGH]: AlertVariants.Negative,\n};\n\nexport const WARNING_SEVERITY_TO_TEXT: Record = {\n [WarningSeverity.NONE]: 'none',\n [WarningSeverity.LOW]: 'low',\n [WarningSeverity.MEDIUM]: 'medium',\n [WarningSeverity.HIGH]: 'high',\n};\n\nexport const prettyWarningSeverity = (warningSeverity: WarningSeverity, intl: IntlWithFormatter) =>\n WARNING_SEVERITY_TO_TEXT[warningSeverity]\n ? intl.formatMessage(messages[WARNING_SEVERITY_TO_TEXT[warningSeverity]])\n : '';\n","import { isNumber } from 'lodash';\nimport type { CSSProperties, ForwardedRef, InputHTMLAttributes, ReactNode } from 'react';\n\nexport enum InputVariants {\n Default = 'Default',\n Primary = 'Primary',\n Positive = 'Positive',\n Negative = 'Negative',\n Warning = 'Warning',\n}\n\nexport enum InputStates {\n Default = '',\n Hover = 'Hover',\n Focus = 'Focus',\n}\n\nexport enum FormControlSizes {\n Xxs = 0.75, // Mostly the same as Tiny (same font size, line height) except with less vertical padding\n Tiny = 1,\n Small = 1.5,\n Default = 2,\n Large = 2.5,\n}\n\nexport const FORM_CONTROL_SIZES = Object.values(FormControlSizes).filter(isNumber);\n\nexport type ValueTypes = 'text' | 'number';\nexport type FormControlProps = Omit, 'prefix'> & {\n size?: FormControlSizes;\n width?: CSSProperties['width'];\n inline?: boolean;\n prefix?: ReactNode;\n suffix?: ReactNode;\n type?: ValueTypes;\n touched?: boolean;\n invalid?: boolean;\n wrapperRef?: ForwardedRef;\n controlStyle?: any;\n clearable?: boolean;\n variant?: InputVariants;\n};\n","import type { AnchorHTMLAttributes, ButtonHTMLAttributes, CSSProperties } from 'react';\nimport { Link } from 'react-router-dom';\nimport styled, { css, type DefaultTheme } from 'styled-components';\n\nimport { parseDimension } from '../../styles';\nimport { FormControlSizes } from '../Form/types';\nimport { getFontSize, getLineHeight } from '../Form/utils';\nimport type { IconName } from '../Icons';\nimport { clippedButtonCss, getButtonBorderRadius } from './utils';\n\nexport enum ButtonVariants {\n Priority = 'Priority',\n Primary = 'Primary',\n Positive = 'Positive',\n Negative = 'Negative',\n Default = 'Default',\n /**\n * A button that can be used as an \"off\"-state for toggle buttons, for example in a button-group\n * with shared background color.\n */\n Muted = 'Muted',\n}\n\nexport enum ButtonStates {\n Default = '',\n Hover = 'Hover',\n Focus = 'Focus',\n Active = 'Active',\n Disabled = 'Disabled',\n}\n\nexport const InternalButtonSpan = styled.span`\n font-size: inherit;\n width: 100%;\n`;\n\nexport const buttonStyle = (\n theme: DefaultTheme,\n size?: FormControlSizes,\n variant?: ButtonVariants,\n disabled?: boolean,\n ghost?: boolean,\n prominent?: boolean,\n dim?: boolean,\n width?: CSSProperties['width'],\n height?: CSSProperties['height'],\n justifyContent: CSSProperties['justifyContent'] = 'center',\n flex?: CSSProperties['flex']\n) => css`\n ${flex &&\n css`\n &&& {\n flex: ${flex};\n }\n `}\n text-decoration: none; // Useful when using forwardedAs={Link}\n position: relative;\n padding: ${getButtonSpacing(theme, size)};\n font-weight: ${({ theme }) => theme.fontWeightMedium};\n border-radius: ${getButtonBorderRadius(theme, size)}px;\n font-size: ${getFontSize(theme, size)}rem;\n ${height && `min-height: ${height}px;`}\n width: ${width ? parseDimension(theme, width) : 'auto'};\n border: solid ${({ theme }) => theme.borderWidthButton}px;\n cursor: ${disabled ? 'not-allowed' : 'pointer'};\n display: inline-flex;\n gap: ${() => getIconSpacing(size)}px;\n align-items: center;\n justify-content: ${justifyContent};\n text-align: center;\n white-space: nowrap;\n transition: box-shadow 200ms ease, background 200ms ease, border 200ms ease, opacity 200ms ease;\n line-height: ${getLineHeight(theme, size)}rem;\n\n ${buttonColor(theme, variant, disabled, ghost, dim)}\n > ${InternalButtonSpan} {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex: 0 1;\n }\n\n ${prominent && theme.chamferMultiplier > 0 && clippedButtonCss({ size, theme })}\n`;\n\nconst nonForwardedProps = new Set('size');\nexport const ButtonWrapper = styled.button\n .attrs(({ type = 'button' }) => ({ type }))\n .withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !nonForwardedProps.has(prop) && defaultValidatorFn(prop),\n })`\n ${({ theme, size, variant, disabled, ghost, prominent, dim, width, height, justifyContent, flex }) =>\n buttonStyle(theme, size, variant, disabled, ghost, prominent, dim, width, height, justifyContent, flex)}`;\n\nexport const NavButtonWrapper = styled(Link)>>`\n text-decoration: none;\n ${({ theme, size, variant, disabled, ghost, dim, prominent, width, height, justifyContent, flex }) =>\n buttonStyle(theme, size, variant, disabled, ghost, dim, prominent, width, height, justifyContent, flex)}\n text-decoration: none;\n`;\n\nconst buttonColor = (\n theme: DefaultTheme,\n variant?: ButtonVariants,\n disabled?: boolean,\n ghost?: boolean,\n dim?: boolean\n) => css`\n opacity: ${disabled ? 0.5 : 1};\n\n ${disabled\n ? getColors(theme, variant, ghost, dim, ButtonStates.Disabled)\n : `\n ${getColors(theme, variant, ghost, dim, ButtonStates.Default)}\n &:focus {\n ${getColors(theme, variant, ghost, dim, ButtonStates.Focus)}\n outline: none;\n }\n &:hover {\n ${getColors(theme, variant, ghost, dim, ButtonStates.Hover)}\n }\n &:active {\n ${getColors(theme, variant, ghost, dim, ButtonStates.Active)}\n }`}\n`;\n\nexport type ButtonProps> = Omit & {\n disabled?: boolean;\n variant?: ButtonVariants;\n size?: FormControlSizes;\n startIcon?: IconName;\n endIcon?: IconName;\n ghost?: boolean;\n /**\n * If a button is prominent, it will have an altered apperance dependent on the theme.\n * For example, it can have chamfered edges, or be extended to have a different background color.\n */\n prominent?: boolean;\n dim?: boolean;\n done?: boolean;\n loading?: boolean;\n height?: CSSProperties['height'];\n width?: CSSProperties['width'];\n justifyContent?: CSSProperties['justifyContent'];\n flex?: CSSProperties['flex'];\n};\n\nexport const getButtonVerticalSpacing = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return theme.spacingTiny - theme.borderWidthButton;\n }\n case FormControlSizes.Tiny: {\n return theme.spacingSmall - theme.borderWidthButton;\n }\n case FormControlSizes.Small: {\n return theme.spacingSmall - theme.borderWidthButton;\n }\n case FormControlSizes.Default: {\n return theme.spacingDefault - theme.borderWidthButton;\n }\n case FormControlSizes.Large: {\n return theme.spacingMedium - theme.borderWidthButton;\n }\n }\n};\n\nexport const getButtonHorizontalSpacing = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n const horizontalSpacingTiny = theme.baseSize * 0.375 - theme.borderWidthButton;\n\n switch (size) {\n case FormControlSizes.Xxs: {\n return horizontalSpacingTiny - 1;\n }\n case FormControlSizes.Tiny: {\n return horizontalSpacingTiny;\n }\n case FormControlSizes.Small: {\n return theme.spacingDefault - theme.borderWidthButton;\n }\n case FormControlSizes.Default: {\n return theme.spacingComfortable - theme.borderWidthButton;\n }\n case FormControlSizes.Large: {\n return theme.spacingMedium - theme.borderWidthButton;\n }\n }\n};\n\nexport const getButtonSpacing = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n const verticalSpacing = getButtonVerticalSpacing(theme, size);\n const horizontalSpacing = getButtonHorizontalSpacing(theme, size);\n return `${verticalSpacing}px ${horizontalSpacing}px`;\n};\n\nexport const getIconSpacing = (size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return 2;\n }\n case FormControlSizes.Tiny: {\n return 3;\n }\n case FormControlSizes.Small: {\n return 3;\n }\n case FormControlSizes.Default: {\n return 4;\n }\n case FormControlSizes.Large: {\n return 6;\n }\n }\n};\n\nexport const getIconSize = (size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Tiny: {\n return 'fontSizeSmall';\n }\n case FormControlSizes.Small: {\n return 'fontSizeDefault';\n }\n case FormControlSizes.Default: {\n return 'fontSizeLarge';\n }\n case FormControlSizes.Large: {\n return 'fontSizeBig';\n }\n }\n};\n\nconst getColors = (\n theme: DefaultTheme,\n variant = ButtonVariants.Default,\n ghost?: boolean,\n dim = false,\n state = ButtonStates.Default\n) => {\n switch (variant) {\n case ButtonVariants.Primary: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPrimaryButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorPrimaryButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundPrimaryButtonHover : theme.colors.primary.dim};\n color: ${theme.colorTextPrimaryButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPrimaryButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorPrimaryButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundPrimaryButtonActive : 'transparent'};\n color: ${!ghost ? theme.colorTextPrimaryButtonActive : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPrimaryButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorPrimaryButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundPrimaryButtonFocus : theme.colors.primary.dim};\n color: ${!ghost ? theme.colorTextPrimaryButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPrimaryButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorPrimaryButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundPrimaryButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextPrimaryButtonDisabled : theme.colorTextSubtle};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPrimaryButton : 'none'};\n border-color: ${!ghost ? theme.borderColorPrimaryButton : 'transparent'};\n background: ${!ghost ? theme.backgroundPrimaryButton : 'transparent'};\n color: ${!ghost ? theme.colorTextPrimaryButton : theme.colorTextImportant};\n `;\n }\n }\n }\n case ButtonVariants.Positive: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPositiveButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorPositiveButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundPositiveButtonHover : theme.colors.green.dim};\n color: ${theme.colorTextPositiveButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPositiveButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorPositiveButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundPositiveButtonActive : 'transparent'};\n color: ${theme.colorTextPositiveButtonActive};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPositiveButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorPositiveButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundPositiveButtonFocus : theme.colors.green.dim};\n color: ${!ghost ? theme.colorTextPositiveButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPositiveButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorPositiveButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundPositiveButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextPositiveButtonDisabled : theme.colorTextSubtle};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPositiveButton : 'none'};\n border-color: ${!ghost ? theme.borderColorPositiveButton : 'transparent'};\n background: ${!ghost ? theme.backgroundPositiveButton : 'transparent'};\n color: ${!ghost ? theme.colorTextPositiveButton : theme.colorTextImportant};\n `;\n }\n }\n }\n case ButtonVariants.Negative: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowNegativeButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorNegativeButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundNegativeButtonHover : theme.colors.red.dim};\n color: ${theme.colorTextNegativeButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowNegativeButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorNegativeButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundNegativeButtonActive : 'transparent'};\n color: ${theme.colorTextNegativeButtonActive};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowNegativeButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorNegativeButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundNegativeButtonFocus : theme.colors.red.dim};\n color: ${!ghost ? theme.colorTextNegativeButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowNegativeButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorNegativeButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundNegativeButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextNegativeButtonDisabled : theme.colorTextSubtle};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowNegativeButton : 'none'};\n border-color: ${!ghost ? theme.borderColorNegativeButton : 'transparent'};\n background: ${!ghost ? theme.backgroundNegativeButton : 'transparent'};\n color: ${!ghost ? theme.colorTextNegativeButton : theme.colorTextImportant};\n `;\n }\n }\n }\n case ButtonVariants.Priority: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPriorityButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorPriorityButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundPriorityButtonHover : theme.colors.white.mute};\n color: ${theme.colorTextPriorityButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPriorityButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorPriorityButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundPriorityButtonActive : 'transparent'};\n color: ${theme.colorTextPriorityButtonActive};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPriorityButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorPriorityButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundPriorityButtonFocus : theme.colors.white.mute};\n color: ${!ghost ? theme.colorTextPriorityButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPriorityButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorPriorityButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundPriorityButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextPriorityButtonDisabled : theme.colorTextSubtle};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowPriorityButton : 'none'};\n border-color: ${!ghost ? theme.borderColorPriorityButton : 'transparent'};\n background: ${!ghost ? theme.backgroundPriorityButton : 'transparent'};\n color: ${\n !ghost ? (!dim ? theme.colorTextPriorityButton : theme.colors.gray['090']) : theme.colorTextImportant\n };\n `;\n }\n }\n }\n case ButtonVariants.Muted: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowMutedButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorMutedButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundMutedButtonHover : theme.colors.white.mute};\n color: ${theme.colorTextMutedButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowMutedButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorMutedButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundMutedButtonActive : 'transparent'};\n color: ${theme.colorTextMutedButtonActive};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowMutedButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorMutedButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundMutedButtonFocus : theme.colors.white.mute};\n color: ${!ghost ? theme.colorTextMutedButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowMutedButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorMutedButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundMutedButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextMutedButtonDisabled : theme.colorTextImportant};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowMutedButton : 'none'};\n border-color: ${!ghost ? theme.borderColorMutedButton : 'transparent'};\n background: ${!ghost ? theme.backgroundMutedButton : 'transparent'};\n color: ${!ghost ? (!dim ? theme.colorTextMutedButton : theme.colors.gray['090']) : theme.colorTextImportant};\n `;\n }\n }\n }\n case ButtonVariants.Default:\n default: {\n switch (state) {\n case ButtonStates.Hover: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowDefaultButtonHover : 'none'};\n border-color: ${!ghost ? theme.borderColorDefaultButtonHover : 'transparent'};\n background: ${!ghost ? theme.backgroundDefaultButtonHover : theme.colors.white.mute};\n color: ${theme.colorTextDefaultButtonHover};\n `;\n }\n case ButtonStates.Active: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowDefaultButtonActive : 'none'};\n border-color: ${!ghost ? theme.borderColorDefaultButtonActive : 'transparent'};\n background: ${!ghost ? theme.backgroundDefaultButtonActive : 'transparent'};\n color: ${theme.colorTextDefaultButtonActive};\n `;\n }\n case ButtonStates.Focus: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowDefaultButtonFocus : 'none'};\n border-color: ${!ghost ? theme.borderColorDefaultButtonFocus : 'transparent'};\n background: ${!ghost ? theme.backgroundDefaultButtonFocus : theme.colors.white.mute};\n color: ${!ghost ? theme.colorTextDefaultButtonFocus : theme.colorTextImportant};\n `;\n }\n case ButtonStates.Disabled: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowDefaultButtonDisabled : 'none'};\n border-color: ${!ghost ? theme.borderColorDefaultButtonDisabled : 'transparent'};\n background: ${!ghost ? theme.backgroundDefaultButtonDisabled : 'transparent'};\n color: ${!ghost ? theme.colorTextDefaultButtonDisabled : theme.colorTextImportant};\n `;\n }\n default: {\n return `\n box-shadow: ${!ghost ? theme.boxShadowDefaultButton : 'none'};\n border-color: ${!ghost ? theme.borderColorDefaultButton : 'transparent'};\n background: ${!ghost ? theme.backgroundDefaultButton : 'transparent'};\n color: ${\n !ghost ? (!dim ? theme.colorTextDefaultButton : theme.colors.gray['090']) : theme.colorTextImportant\n };\n `;\n }\n }\n }\n }\n};\n\nexport function getIconButtonSize(theme: DefaultTheme, size: FormControlSizes) {\n return getButtonVerticalSpacing(theme, size) * 2 + getLineHeight(theme, size) * theme.baseSize;\n}\n","import type { BigSource } from 'big.js';\nimport type { ReactNode } from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport type { IconName } from '../Icons';\n\nexport enum NumberVariants {\n Positive = 'positive',\n Negative = 'negative',\n Warning = 'warning',\n Primary = 'primary',\n Muted = 'muted',\n}\n\nexport type InlineFormattedNumberProps = {\n number?: BigSource;\n increment?: string;\n specification?: string;\n isSmall?: boolean;\n startIcon?: IconName;\n largeHighlight?: boolean;\n highlightAll?: boolean;\n currency?: string | null;\n background?: string;\n align?: 'left' | 'right' | 'center';\n variant?: NumberVariants;\n truncate?: boolean;\n round?: boolean;\n pretty?: boolean;\n estimate?: boolean;\n theme?: DefaultTheme;\n highlightColor?: string;\n showSign?: boolean;\n prefix?: ReactNode;\n /** When SmartTruncateEnum.Compact is used, decimals after 5dps will be truncated with \"*\"\" */\n smartTruncate?: SmartTruncateEnum;\n smartTruncateThreshold?: BigSource;\n /** Whether or not to trim any trailing zeroes */\n trimTrailingZeroes?: boolean;\n};\n\nexport enum SmartTruncateEnum {\n None = 'None',\n Compact = 'Compact',\n}\n","import { transparentize } from 'polished';\nimport styled, { css } from 'styled-components';\nimport { Box, HStack } from '../Core';\n\nexport enum IndicatorBadgeVariants {\n Default = 'DEFAULT',\n Notification = 'NOTIFICATION',\n Positive = 'POSITIVE',\n Negative = 'NEGATIVE',\n Information = 'INFORMATION',\n Modified = 'MODIFIED',\n Warning = 'WARNING',\n}\n\nexport enum IndicatorBadgeSizes {\n Small = 'Small',\n Large = 'Large',\n}\n\nexport const Wrapper = styled(HStack)`\n display: inline-flex;\n gap: ${({ theme }) => theme.spacingSmall}px;\n cursor: default;\n`;\n\nexport const IndicatorBadgeWrapper = styled(Box)<{\n variant: IndicatorBadgeVariants;\n size: IndicatorBadgeSizes;\n square?: boolean;\n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n text-align: center;\n\n ${({ size, theme, square }) =>\n size === IndicatorBadgeSizes.Small &&\n css`\n padding: ${theme.spacingTiny}px ${theme.spacingSmall + 1}px;\n font-size: ${theme.fontSizeTiny}rem;\n line-height: ${theme.lineHeightTiny}rem;\n ${square &&\n css`\n height: 14px;\n width: 14px;\n `}\n `}\n ${({ size, theme, square }) =>\n size === IndicatorBadgeSizes.Large &&\n css`\n padding: ${theme.spacingTiny}px ${theme.spacingDefault - 1}px;\n font-size: ${theme.fontSizeSmall}rem;\n line-height: ${theme.lineHeightSmall}rem;\n ${square &&\n css`\n height: 18px;\n width: 18px;\n `}\n `}\n\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Default &&\n css`\n background: ${transparentize(0.92, theme.colors.gray['100'])};\n color: ${theme.colors.gray['090']};\n `};\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Notification &&\n css`\n background: ${theme.colors.orange.default};\n color: ${theme.colors.white.default};\n `}\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Negative &&\n css`\n background: ${transparentize(0.72, theme.colors.red.default)};\n color: ${theme.colors.red.lighten};\n `}\n\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Positive &&\n css`\n background: ${transparentize(0.72, theme.colors.green.default)};\n color: ${theme.colors.green.lighten};\n `}\n\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Information &&\n css`\n background: ${transparentize(0.72, theme.colors.blue.default)};\n color: ${theme.colors.blue.lighten};\n `}\n \n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Modified &&\n css`\n background: ${theme.colors.blue.default};\n color: ${theme.colors.white.default};\n border: 1px solid ${theme.colors.blue.lighten};\n `}\n\n ${({ variant, theme }) =>\n variant === IndicatorBadgeVariants.Warning &&\n css`\n background: ${transparentize(0.72, theme.colors.yellow.default)};\n color: ${theme.colors.yellow.lighten};\n `}\n`;\n","import type { ModeEnum } from './types';\n\nexport type Aggregation = {\n Name: string;\n DisplayName: string;\n AggregationType: AggregationType;\n FairPriceProtection: boolean;\n};\n\nexport interface AggregationWithAccounts extends Aggregation {\n Accounts: Map;\n}\n\nexport interface AggregationMarket {\n Aggregation: string;\n Market?: string;\n MarketAccount?: string;\n Mode: ModeEnum;\n // RowID for Customer Aggregations Blotter\n RowID?: string;\n}\n\nexport enum AggregationType {\n Customer = 'Customer',\n System = 'System',\n User = 'User',\n}\n","export enum CardViewEnum {\n COMPACT = 'compact',\n NORMAL = 'normal',\n EXPANDED = 'expanded',\n}\n\nexport const NEW_CARD = 'NEW_CARD';\nexport const UPDATED_CARD = 'UPDATED_CARD';\n","// Note this is a subset of the Order Strategies that exist. The full set is driven by the backend.\nexport enum CustomerOrderStrategiesEnum {\n Limit = 'Limit',\n Market = 'Market',\n SteadyPace = 'SteadyPace',\n StopLimit = 'StopLimit',\n MultilegAggressiveLimit = 'MultilegAggressiveLimit',\n Manual = 'Manual',\n StopMarket = 'StopMarket',\n}\n\nexport const DISABLED_REASONABILITY_CHECK_STRATEGIES_SET: Set = new Set([\n CustomerOrderStrategiesEnum.SteadyPace,\n]);\n","export enum HeartBeatStatusEnum {\n LOW_LATENCY = 'LOW_LATENCY',\n MEDIUM_LATENCY = 'MEDIUM_LATENCY',\n HIGH_LATENCY = 'HIGH_LATENCY',\n OFFLINE = 'OFFLINE',\n}\n","export enum WebSocketStatus {\n CONNECTED = 'CONNECTED',\n CONNECTING = 'CONNECTING',\n RECONNECTING = 'RECONNECTING',\n CLOSED = 'CLOSED',\n}\n","import { createContext, useContext } from 'react';\nimport type { Setters } from '../types/Setters';\n\nexport enum SecurityType {\n All = 'All',\n Spot = 'Spot',\n Perp = 'Perp',\n Future = 'Future',\n CalendarSpread = 'Cal Spread',\n}\nexport const DefaultWatchlistSettingsConfig = {\n showOnlyFavorites: false,\n securityTypes: SecurityType.Spot,\n isVisible: true,\n filteredCurrencies: [] as string[],\n};\nexport const DefaultWatchlistSettingsMethods = {\n setShowOnlyFavorites: (onlyFavorites: boolean) => {},\n setSecurityTypes: (securityTypes: SecurityType) => {},\n setIsVisible: (isVisible: boolean) => {},\n setFilteredCurrencies: (filteredCurrencies: string[]) => {},\n} satisfies Setters;\n\nexport const DefaultWatchlistSettingsContext = {\n ...DefaultWatchlistSettingsConfig,\n ...DefaultWatchlistSettingsMethods,\n};\n\nexport type WatchlistSettingsConfig = typeof DefaultWatchlistSettingsConfig;\nexport type WatchlistSettingsMethods = typeof DefaultWatchlistSettingsMethods;\nexport type WatchlistSettingsContextProps = Omit & {\n /**\n * This prop is now serving as an indicator, to the WatchList component itself,\n * as to whether or not to render its security types selector. The reasoning was\n * that we have a current desire to suppress rendering this within the whitelabel\n * product, but not within principal, SO, we can either add an extra prop to tell\n * the component specifically to suppressRenderingSecurityTypesSelector, OR, we\n * can slightly modify this type definition to make the setter function optional,\n * and then infer whether or not to render that dropdown based on whether we have\n * a defined callback handler as a setter, or whether that setter is undefined.\n */\n setSecurityTypes?: typeof DefaultWatchlistSettingsContext.setSecurityTypes;\n};\n\nexport const WatchlistSettingsContext = createContext(DefaultWatchlistSettingsContext);\nWatchlistSettingsContext.displayName = 'WatchlistSettingsContext';\n\nexport function useWatchlistSettings() {\n const context = useContext(WatchlistSettingsContext);\n if (context === undefined) {\n throw new Error('Missing WatchlistSettingsContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import styled, { css, type DefaultTheme } from 'styled-components';\n\nexport type IndicatorDotProps = {\n show?: boolean;\n size?: number;\n variant?: IndicatorDotVariants;\n theme?: DefaultTheme;\n halo?: boolean;\n};\n\nexport enum IndicatorDotVariants {\n Primary = 'PRIMARY',\n Default = 'DEFAULT',\n Positive = 'POSITIVE',\n Negative = 'NEGATIVE',\n Warning = 'WARNING',\n Notification = 'NOTIFICATION',\n}\n\nexport const Dot = styled.div`\n border-radius: 50%;\n box-shadow: 0 0 0 1px ${({ theme }) => theme.backgroundContent};\n ${({ size }) => `height: ${size}px; min-width: ${size}px;`};\n background: ${({ theme }) => theme.colors.gray['050']};\n ${({ variant, theme }) => variant === IndicatorDotVariants.Primary && `background: ${theme.colors.primary.lighten};`}\n ${({ variant, theme }) => variant === IndicatorDotVariants.Positive && `background: ${theme.colors.green.lighten};`}\n ${({ variant, theme }) => variant === IndicatorDotVariants.Warning && `background: ${theme.colors.yellow.lighten};`}\n ${({ variant, theme }) => variant === IndicatorDotVariants.Negative && `background: ${theme.colors.red.lighten};`}\n ${({ variant, theme }) =>\n variant === IndicatorDotVariants.Notification && `background: ${theme.colors.orange.lighten};`}\n opacity: ${({ show }) => (show ? '1' : '0')};\n`;\n\nconst haloBackground = css`\n ${({ theme, variant }) => {\n switch (variant) {\n case IndicatorDotVariants.Primary:\n return `\n background: ${theme.colors.primary.mute};\n &::after {\n background: ${theme.colors.primary.lighten};\n }\n `;\n case IndicatorDotVariants.Positive:\n return `\n background: ${theme.colors.green.mute};\n &::after {\n background: ${theme.colors.green.lighten};\n }\n `;\n case IndicatorDotVariants.Negative:\n return `\n background: ${theme.colors.red.mute};\n &::after {\n background: ${theme.colors.red.lighten};\n }\n `;\n case IndicatorDotVariants.Warning:\n return `\n background: ${theme.colors.yellow.mute};\n &::after {\n background: ${theme.colors.yellow.lighten};\n }\n `;\n case IndicatorDotVariants.Notification:\n return `\n background: ${theme.colors.orange.mute};\n &::after {\n background: ${theme.colors.orange.lighten};\n }\n `;\n case IndicatorDotVariants.Default:\n default:\n return `\n background: ${theme.colors.gray['050']};\n &::after {\n background: ${theme.colors.gray['090']};\n }\n `;\n }\n }}\n`;\n\nexport const HaloDot = styled.div`\n width: 1rem;\n height: 1rem;\n border-radius: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n &::after {\n content: '';\n width: 0.375rem;\n height: 0.375rem;\n border-radius: 50%;\n }\n\n ${haloBackground}\n`;\n\nexport const Wrapper = styled.div>`\n position: relative;\n width: fit-content;\n\n ${Dot}, ${HaloDot} {\n position: absolute;\n transform: scale(1) translate(50%, -50%);\n\n top: 0;\n right: 0;\n user-select: none;\n color: ${({ theme }) => theme.colorTextAttention};\n text-align: center;\n font-size: ${({ theme }) => `${theme.fontSizeTiny}rem`};\n\n ${({ size, theme }) => size === theme.indicatorDotSizeDefault && 'top: 2px'};\n ${({ size, theme }) => size === theme.indicatorDotSizeDefault && 'right: 1px'};\n }\n`;\n","export enum ConnectionType {\n MarketData = 'MarketData',\n Orders = 'Orders',\n RFQ = 'RFQ',\n Balances = 'Balances',\n Transfers = 'Transfers',\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { toBig } from '../utils';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport { getCreditUsage } from '../utils/getCreditUsage';\nimport type { ExposureLimitSideTypeEnum, ExposureStatusEnum, IExposureView, ModeEnum, UpdateActionEnum } from './types';\n\n/** An enum used to distinguish between the two different types of exposures we rely on internally */\nexport enum ExposureTypeEnum {\n Exposure = 'Exposure',\n MarketExposure = 'MarketExposure',\n}\n\n/**\n * This interface aims to provide a uniform api for interacting with both entities of type Exposure and of type MarketExposure\n */\nexport interface IUniformExposure {\n exposure: string;\n limit: string | undefined;\n counterpartyExposure: string | undefined;\n counterpartyExposureLimit: string | undefined;\n talosExposure?: string | undefined;\n talosExposureLimit?: string | undefined;\n usage: ReturnType;\n currency: string | undefined;\n ExposureSide: ExposureLimitSideTypeEnum;\n Text?: string;\n Status: ExposureStatusEnum;\n Timestamp: string;\n MarketAccount: string;\n ExposureDefinition: string;\n ExposureCurrency: string;\n type: ExposureTypeEnum;\n rowID: string;\n}\n\nexport class Exposure implements IUniformExposure {\n Mode!: ModeEnum;\n Counterparty!: string;\n MarketAccount!: string;\n Qty!: string;\n ExposureCurrency!: string;\n ExposureDefinition!: string;\n ExposureLimitID?: string;\n MarketExposure?: string;\n MarketLimit?: string;\n Status!: ExposureStatusEnum;\n Text?: string;\n Timestamp!: string;\n Exposure!: string;\n ExposureSide!: ExposureLimitSideTypeEnum;\n ExposureLimit?: string;\n\n get type() {\n return ExposureTypeEnum.Exposure;\n }\n\n /** Grabs the effective exposure of this entity. Prefers MarketExposure, but uses Exposure if that does not exist. */\n get exposure() {\n // We treat a nullish exposure from the backend as 0\n return this.MarketExposure ?? this.Exposure ?? '0';\n }\n\n /** Grabs the effective exposure limit of this entity. Grabs the limit which is closest to 0 (and thus would be enforced first). */\n get limit() {\n const marketLimitBig = toBig(this.MarketLimit)?.abs();\n const talosLimitBig = toBig(this.ExposureLimit)?.abs();\n\n // If both limits are defined, then return the one closest to 0\n if (marketLimitBig && talosLimitBig) {\n return marketLimitBig.lt(talosLimitBig) ? marketLimitBig.toFixed() : talosLimitBig.toFixed();\n }\n\n // Else only one of them is defined, just return whichever is defined, or undefined of course\n return marketLimitBig?.toFixed() ?? talosLimitBig?.toFixed();\n }\n\n get counterpartyExposure() {\n return this.MarketExposure;\n }\n\n get counterpartyExposureLimit() {\n return this.MarketLimit;\n }\n\n get talosExposure() {\n return this.Exposure;\n }\n\n get talosExposureLimit() {\n return this.ExposureLimit;\n }\n\n get usage() {\n return getCreditUsage(this.exposure, this.limit, this.ExposureCurrency);\n }\n\n get currency() {\n return undefined;\n }\n\n get rowID() {\n return getExposureID(this);\n }\n\n constructor(data: Exposure) {\n Object.assign(this, data);\n }\n}\n\nexport function getExposureID(exposure: {\n MarketAccount?: string;\n ExposureDefinition?: string;\n Currency?: string;\n}): string {\n return `${exposure.MarketAccount}-${exposure.ExposureDefinition}-${exposure.Currency}`;\n}\n\nexport interface ExposureLimit {\n Mode: ModeEnum;\n Counterparty?: string;\n MarketAccount: string;\n Qty: string;\n ExposureCurrency: string;\n ExposureDefinition: string;\n ExposureLimitID: string;\n UpdateAction?: UpdateActionEnum;\n}\n\nexport interface CreditExposureWithSides extends CreditExposure {\n longExposure?: string;\n longExposureLimit?: string;\n shortExposure?: string;\n shortExposureLimit?: string;\n}\n\nexport function generateCreditExposureRowID(exposure: CreditExposure) {\n return `${exposure.MarketAccount}-${exposure.Currency}`;\n}\n\nexport class EnrichedCreditExposure {\n Currency?: string;\n\n Timestamp!: string;\n\n Exposure!: string;\n\n ExposureLimit!: string;\n\n ExposureCurrency!: string;\n\n // This field *should* be required, but if it's not present, should be defaulted to ExposureSideEnum.Both\n ExposureSide!: ExposureLimitSideTypeEnum;\n\n MarketAccount!: string;\n\n Status!: ExposureStatusEnum;\n\n // Custom for unique Row ID\n protected get rowID() {\n return generateCreditExposureRowID(this);\n }\n\n shortExposure = '';\n\n shortExposureLimit = '';\n\n longExposure = '';\n\n longExposureLimit = '';\n\n constructor(data: CreditExposureWithSides) {\n Object.assign(this, data);\n }\n}\n\ninterface UseEnrichedCreditExposureColumns {\n defaultColumns?: (keyof EnrichedCreditExposure | Partial)[];\n}\n\nexport function useEnrichedCreditExposureColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseEnrichedCreditExposureColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'Timestamp',\n type: 'text',\n },\n {\n field: 'Exposure',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n {\n field: 'ExposureLimit',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n {\n field: 'ExposureCurrency',\n type: 'currency',\n },\n {\n field: 'ExposureSide',\n type: 'text',\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n {\n field: 'Status',\n type: 'text',\n },\n {\n field: 'shortExposure',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n {\n field: 'shortExposureLimit',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n {\n field: 'longExposure',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n {\n field: 'longExposureLimit',\n type: 'size',\n params: { currencyField: 'ExposureCurrency' },\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\nexport interface CreditExposure {\n Currency?: string;\n Timestamp: string;\n Exposure: Exposure['Exposure'];\n ExposureLimit: Exposure['ExposureLimit'];\n ExposureCurrency: Exposure['ExposureCurrency'];\n // This field *should* be required, but if it's not present, should be defaulted to ExposureSideEnum.Both\n ExposureSide: Exposure['ExposureSide'];\n MarketAccount: Exposure['MarketAccount'];\n MarketExposure?: IExposureView['MarketExposure'];\n MarketLimit?: IExposureView['MarketLimit'];\n AvailableSell?: IExposureView['AvailableSell'];\n Balance?: IExposureView['Balance'];\n Status: Exposure['Status'];\n}\n","export enum CustomerUserConfigLayoutType {\n TradingLayout = 'TradingLayout',\n TradingLadderLayout = 'TradingLadderLayout',\n WatchListTradingLayout = 'WatchListTradingLayout',\n SimpleRFQLayout = 'SimpleRFQLayout',\n SimpleRFQLayoutWithExposureBlotter = 'SimpleRFQLayoutWithExposureBlotter',\n SettingsLayout = 'SettingsLayout',\n PortfolioLayout = 'PortfolioLayout',\n AddressesLayout = 'AddressesLayout',\n FeeTiersLayout = 'FeeTiersLayout',\n}\n\n/**\n * TODO: Figure out a little more elegant way of mapping these things as either\n * global or protected layouts, as well as to specific Layouts, so that downstream,\n * we can easily generate types with keyof typeof and ensure that we provide some\n * guardrails to our key lookups, no matter which particular Layout arrangements\n * we're dealing with.\n */\n\n// Global Demo Layouts\nexport enum GlobalCustomerUserConfigTradingLayoutArrangements {\n Default = 'Default', // Default Layout Arrangement (unsets user config value and inherits from site config)\n SingleSymbolView = 'SingleSymbolView', // Default Layout Arrangement\n WatchlistAndMarketDataCards = 'WatchlistAndMarketDataCards',\n CandlesticksAndMarketDataCards = 'CandlesticksAndMarketDataCards',\n MarketDataCards = 'MarketDataCards',\n WatchlistCandlesticksMarketDataCards = 'WatchlistCandlesticksMarketDataCards',\n}\n\n// WM Layouts\nexport enum ProtectedCustomerUserConfigTradingLayoutArrangements {\n WMLayout1 = 'WMLayout1',\n WMLayout2 = 'WMLayout2',\n}\n\nexport const CustomerUserConfigTradingLayoutArrangements = {\n // WM Layouts\n [ProtectedCustomerUserConfigTradingLayoutArrangements.WMLayout1]: 'WM Layout 1',\n [ProtectedCustomerUserConfigTradingLayoutArrangements.WMLayout2]: 'WM Layout 2',\n\n // Global Demo Layouts\n [GlobalCustomerUserConfigTradingLayoutArrangements.SingleSymbolView]: 'Single Symbol View',\n [GlobalCustomerUserConfigTradingLayoutArrangements.WatchlistAndMarketDataCards]: 'Watchlist + Market Data Cards',\n [GlobalCustomerUserConfigTradingLayoutArrangements.CandlesticksAndMarketDataCards]:\n 'Candlesticks + Market Data Cards',\n [GlobalCustomerUserConfigTradingLayoutArrangements.MarketDataCards]: 'Market Data Cards',\n [GlobalCustomerUserConfigTradingLayoutArrangements.WatchlistCandlesticksMarketDataCards]:\n 'Watchlist, Candlesticks, Market Data Cards',\n};\n\nexport type CustomerUserConfigLayoutArrangements = Map;\n\nexport enum CustomerUserConfigLayoutNavigationTypes {\n Sidebar = 'Sidebar',\n Header = 'Header',\n SidebarHeaderToggle = 'SidebarHeaderToggle',\n CompactHeader = 'CompactHeader',\n None = 'None',\n}\n\nexport const CustomerUserConfigLayoutTypesAndArrangements: CustomerUserConfigLayoutArrangements<\n typeof CustomerUserConfigTradingLayoutArrangements\n> = new Map([[CustomerUserConfigLayoutType.TradingLayout, CustomerUserConfigTradingLayoutArrangements]]);\n","// Command - Borrower\nimport type { IParticipantTransferConfig, LoanQuoteRequestTypeEnum, LoanQuoteTerminationTypeEnum } from './types';\n\nexport type LoanQuoteRequest = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n PrincipalCurrency: string; // currency\n CollateralCurrency?: string; // currency\n Qty: string; // decimal\n Rate?: string; // decimal\n CollateralRatio?: string; // decimal\n TerminationTime?: string; // datetime\n Lenders: string[]; // counterparty array\n Comments?: string;\n RequestType: LoanQuoteRequestTypeEnum;\n};\n\nexport enum LoanSides {\n Borrow = 'borrow',\n Lend = 'lend',\n}\n\n// Command - Borrower & Lender\nexport type LoanQuoteUpdate = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n NegotiationID: string;\n TargetRevision: number;\n CollateralCurrency?: string; // currency\n Qty: string; // decimal\n Rate?: string; // decimal\n TerminationType: LoanQuoteTerminationTypeEnum;\n CollateralRatio?: string; // decimal\n TerminationTime?: string; // datetime\n Comments?: string;\n};\n\n// Command - Borrower\nexport type LoanQuoteAccept = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n NegotiationID: string;\n TargetRevision: number;\n};\n\n// Command - Borrower\nexport type LoanQuoteCancel = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n NegotiationID: string;\n Comments?: string;\n};\n\n// Command - Lender\nexport type LoanQuoteReject = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n NegotiationID: string;\n Comments?: string;\n};\n\n// Command - Admin\nexport type LoanQuoteAdminRequest = {\n Timestamp: string; // datetime\n QuoteReqID: string;\n NegotiationID: string;\n Action: string; // LoanQuoteAdminAction\n};\n\nexport type ParticipantTransferConfig = IParticipantTransferConfig;\n","import Big from 'big.js';\nimport { compact, max, uniq } from 'lodash';\nimport type { ReactNode } from 'react';\nimport { isOrderComplete } from '../utils/isOrderComplete';\nimport { isOrderPaused } from '../utils/isOrderPaused';\nimport { isOrderPending } from '../utils/isOrderPending';\nimport { percentToBps, toBigWithDefault } from '../utils/number';\nimport { prettyName } from '../utils/string';\nimport type { CustomerOrder, PricingParameters as CustomerPricingParameters } from './CustomerOrder';\nimport type { CustomerDealSummary } from './CustomerOrderSummary';\nimport { HedgeOrderStatus } from './HedgeOrderStatus';\nimport { WarningSeverity } from './WarningSeverity';\nimport {\n DecisionStatusEnum,\n MultilegReportingTypeEnum,\n OrdStatusEnum,\n OrdTypeEnum,\n OrderMarketStatusEnum,\n ReduceFirstEnum,\n ReduceOnlyEnum,\n RequestSourceEnum,\n UnifiedLiquidityEnum,\n type CxlRejReasonEnum,\n type ExecTypeEnum,\n type IAllocation,\n type IHedgeOrderStatus,\n type IOMSExecutionReport4203LegSummary,\n type IOMSExecutionReport4203Markets,\n type IStrategyParameters,\n type OrdRejReasonEnum,\n type OrdRiskStatusEnum,\n type PricingModeEnum,\n type SideEnum,\n type TimeInForceEnum,\n} from './types';\n\nexport function isOrder(entity: any): entity is Order {\n return entity instanceof Order;\n}\n\nexport interface OrderWarning {\n severity: WarningSeverity;\n topLevelWarnings: OrderWarningItem[];\n warningItems: OrderMarketWarningItem[];\n}\n\nexport interface OrderWarningItem {\n severity: WarningSeverity;\n label: string;\n value?: NonNullable;\n}\n\nexport interface OrderMarketWarningItem {\n severity: WarningSeverity;\n /** Order.Markets[i].Market */\n market: string;\n /** The .Symbol of the market with the warning. Will only be present if there are multiple symbols on the Order.Markets. */\n symbol: string | undefined;\n value: string;\n}\n\n// TODO pull ArchiveStatus and IOrderAnnotation from types.ts\nexport enum ArchiveStatus {\n UnArchived = 'UnArchived',\n Archived = 'Archived',\n}\n\nexport interface IOrderAnnotations {\n Timestamp: string;\n OrderID: string;\n Revision: number;\n ExecutionReportRevision: number;\n ArchivedStatus: ArchiveStatus;\n User: string;\n}\n\n// This wraps an IOMSExecutionReport4203\nexport class Order {\n static readonly rowID = 'OrderID';\n\n AvgPx?: string;\n\n ClOrdID!: string;\n\n Comments?: string;\n\n CumFee?: string;\n\n CumQty!: string;\n\n CumAmt?: string;\n\n DecisionStatus!: DecisionStatusEnum;\n\n ExecID?: string;\n\n ExecType?: ExecTypeEnum;\n\n FeeCurrency?: string;\n\n LeavesQty?: string;\n\n OrdStatus!: OrdStatusEnum;\n\n OrdType!: OrdTypeEnum;\n\n OrderID!: string;\n\n OrderQty!: string;\n\n Price?: string;\n\n Side!: SideEnum;\n\n /**\n * The currency of the quantity the order was placed with.\n * Note: a currency can be excluded from an order. For example if the order is placed in number of contracts.\n */\n Currency?: string;\n\n AmountCurrency?: string;\n\n Strategy?: string;\n\n SubmitTime!: string;\n\n Symbol!: string;\n\n TimeInForce?: TimeInForceEnum;\n\n TransactTime?: string;\n\n Text?: string;\n\n Parameters?: Partial;\n\n MultilegParams?: MultilegParameters;\n\n Timestamp?: string;\n\n StartTime?: string;\n\n EndTime?: string;\n\n User?: string;\n\n RequestUser?: string;\n\n ExpectedFillPrice?: string;\n\n ExpectedFillQty?: string;\n\n AvgPxAllIn?: string;\n\n ParentOrderID?: string;\n\n CumTalosFee?: string;\n\n TalosFeeCurrency?: string;\n\n Revision!: number;\n\n RiskStatus?: Record;\n\n Markets!: Partial[];\n\n AllowedSlippage?: string;\n\n RFQID?: string;\n\n ParentRFQID?: string;\n\n QuoteID?: string;\n\n AggressorSide?: SideEnum;\n\n OrigClOrdID?: string;\n\n OrdRejReason?: OrdRejReasonEnum;\n\n SessionID?: string;\n\n Allocation?: IAllocation;\n\n SubAccount?: string;\n\n Group?: string;\n\n CxlRejReason?: CxlRejReasonEnum;\n\n LastTradeTime?: string;\n\n LastRequestTimestamp?: string;\n\n LastOrderTime?: string;\n\n RequestSource?: RequestSourceEnum;\n\n LegSummary?: IOMSExecutionReport4203LegSummary[];\n PricingMode?: PricingModeEnum;\n PricingReference?: string;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n /** Only includes LegSummary with MultilegReportingType = Leg */\n get legSummaryLegs(): IOMSExecutionReport4203LegSummary[] | undefined {\n return this.LegSummary?.filter(leg => leg.MultilegReportingType === MultilegReportingTypeEnum.Leg);\n }\n\n /** Only includes LegSummary with MultilegReportingType = Parent */\n get legSummaryParent(): IOMSExecutionReport4203LegSummary[] | undefined {\n return this.LegSummary?.filter(leg => leg.MultilegReportingType === MultilegReportingTypeEnum.Parent);\n }\n\n get priceProtection() {\n return this.Parameters?.PriceProtection;\n }\n\n get reduceOnly() {\n return this.Parameters?.ReduceOnly || ReduceOnlyEnum.Disabled;\n }\n\n get reduceFirst() {\n return this.Parameters?.ReduceFirst || ReduceFirstEnum.Disabled;\n }\n\n /**\n * Whether or not there are multiple symbols represented in the Order.Markets array\n * This will be true for the multileg and unified liquidity order cases for example.\n */\n get hasMultiSymbolMarkets(): boolean {\n const symbolsFoundInMarketsArray = uniq(this.Markets.map(m => m.Symbol));\n return symbolsFoundInMarketsArray.length > 1;\n }\n\n get warning(): OrderWarning | null {\n return getMarketWarnings({ entity: this });\n }\n\n get unifiedLiquidity(): UnifiedLiquidityEnum {\n return this.Parameters?.UnifiedLiquidity || UnifiedLiquidityEnum.Disabled;\n }\n\n get warningSeverity(): WarningSeverity {\n return this.warning?.severity || WarningSeverity.NONE;\n }\n\n get filledPx(): string | undefined {\n if (this.OrdType === OrdTypeEnum.LimitAllIn) {\n return this.AvgPxAllIn;\n }\n return this.AvgPx;\n }\n\n get selectedMarkets(): string[] {\n return uniq(\n compact(this.Markets.map(market => (market.MarketStatus !== OrderMarketStatusEnum.Disabled ? market.Market : '')))\n );\n }\n\n get tradedMarkets(): string[] {\n return uniq(compact(this.Markets?.filter(m => toBigWithDefault(m.CumQty, 0).gt(0)).map(m => m.Market)));\n }\n\n get selectedAndTradedMarkets(): string[] {\n return uniq(this.selectedMarkets.concat(this.tradedMarkets));\n }\n\n get selectedMarketAccounts(): string[] {\n return uniq(\n compact(\n this.Markets.map(market => (market.MarketStatus !== OrderMarketStatusEnum.Disabled ? market.MarketAccount : ''))\n )\n );\n }\n\n get tradedMarketAccounts(): string[] {\n return uniq(compact(this.Markets?.filter(m => toBigWithDefault(m.CumQty, 0).gt(0)).map(m => m.MarketAccount)));\n }\n\n get selectedAndTradedMarketAccounts(): string[] {\n return uniq(this.selectedMarketAccounts.concat(this.tradedMarketAccounts));\n }\n\n get remainQty(): string {\n return Big(this.OrderQty || 0)\n .minus(this.CumQty || 0)\n .toFixed();\n }\n\n get startTime(): string {\n return this.Parameters?.StartTime ?? this.StartTime ?? '';\n }\n\n get endTime(): string {\n return this.Parameters?.EndTime ?? this.EndTime ?? '';\n }\n\n customerOrderID?: string;\n\n customerSymbol?: string;\n\n customerOrder?: string;\n\n customerAccount?: string;\n\n customerQuantity?: string;\n\n customerFilledQuantity?: string;\n\n customerFilledCumAmt?: string;\n\n customerAmountCurrency?: string;\n\n customerPrice?: string;\n\n customerAvgPx?: string;\n\n customerStrategy?: string;\n\n customerParameters?: Partial;\n\n customerPricingParams?: CustomerPricingParameters;\n\n customerSummary?: CustomerDealSummary;\n\n get allowedSlippageBPS(): string {\n return percentToBps(this.AllowedSlippage);\n }\n\n get isArchived(): boolean {\n return this.OrderAnnotations?.ArchivedStatus === ArchiveStatus.Archived;\n }\n\n get isArchivable(): boolean {\n return !this.isArchived && this.isComplete;\n }\n\n get isUnArchivable(): boolean {\n return this.isArchived;\n }\n\n get isCancelable(): boolean {\n return !(this.isPendingOrdStatus || this.isComplete);\n }\n\n get isModifiable(): boolean {\n return !(this.isPendingOrdStatus || this.isComplete) && !this.ParentOrderID;\n }\n\n // Note: this class represents a principal order in the blotter, based on the optional customer fields we decide\n // if we allow initializing customer order modification workflow\n get isCustomerOrderModifiable(): boolean {\n const canModify = !(this.isPendingOrdStatus || this.isComplete);\n const customerPropertiesLoaded =\n !!this.ParentOrderID &&\n !!this.customerAccount &&\n !!this.customerQuantity &&\n !!this.customerPrice &&\n !!this.customerPricingParams &&\n !!this.customerStrategy;\n\n return canModify && customerPropertiesLoaded;\n }\n\n get isPausable(): boolean {\n // Not calling isPaused here as \"SystemPaused\" orders are also pausable\n return (\n !(\n this.isPendingDecisionStatus ||\n [DecisionStatusEnum.Paused, DecisionStatusEnum.Staged].includes(this.DecisionStatus)\n ) && !this.isComplete\n );\n }\n\n get isResumable(): boolean {\n return !this.isPendingDecisionStatus && this.isPaused && !this.isComplete;\n }\n\n get isComplete(): boolean {\n return [OrdStatusEnum.Canceled, OrdStatusEnum.Filled, OrdStatusEnum.Rejected, OrdStatusEnum.DoneForDay].includes(\n this.OrdStatus\n );\n }\n\n get isPaused(): boolean {\n return isOrderPaused(this.DecisionStatus);\n }\n\n // Private for now to encourage using the more abstract getters (isCancelable etc.)\n private get isPendingOrdStatus(): boolean {\n return isOrderPending(this.OrdStatus);\n }\n\n private get isPendingDecisionStatus(): boolean {\n return [DecisionStatusEnum.PendingPause, DecisionStatusEnum.PendingResume].includes(this.DecisionStatus);\n }\n\n public get isDDHHedgeOrder() {\n return this.ParentOrderID != null && this.RequestSource === RequestSourceEnum.OrderHedger;\n }\n\n public get isDDHParentOrder() {\n return this.Parameters?.DynamicDeltaHedgeStrategy != null;\n }\n\n /** Returns the ParentOrderID only if the RequestSource is Customer */\n public get customerParentOrderID() {\n // TODO(robertz): remove this hotfix. For backwards compat reasons, if there is no request source, assume the ParentOrderID is the customerParentOrderID.\n return this.RequestSource === RequestSourceEnum.Customer || this.RequestSource === undefined\n ? this.ParentOrderID\n : undefined;\n }\n\n /** Returns the ParentOrderID only if the RequestSource is OrderHedger */\n public get ddhParentOrderID() {\n return this.RequestSource === RequestSourceEnum.OrderHedger ? this.ParentOrderID : undefined;\n }\n\n /**\n * Order blotter displays Order objects originating from ORDERS subscription, however for Customer Orders\n * we would like the rows to contain customer specific properties which are extracted from CUSTOMER_ORDERS subscription\n */\n public enrichOrderWithCustomerOrder(customerOrder?: CustomerOrder): void {\n this.customerOrderID = customerOrder?.OrderID;\n this.customerSymbol = customerOrder?.Symbol;\n this.customerOrder = customerOrder?.Counterparty;\n this.customerAccount = customerOrder?.MarketAccount;\n this.customerQuantity = customerOrder?.OrderQty;\n this.customerFilledQuantity = customerOrder?.CumQty;\n this.customerFilledCumAmt = customerOrder?.CumAmt;\n this.customerAmountCurrency = customerOrder?.AmountCurrency;\n this.customerPrice = customerOrder?.Price;\n this.customerAvgPx = customerOrder?.AvgPx;\n this.customerSummary = customerOrder?.summary;\n this.customerPricingParams = customerOrder?.PricingParameters;\n this.customerStrategy = customerOrder?.Strategy;\n this.customerParameters = customerOrder?.Parameters;\n }\n\n // There might be a better way to do this but at least we should be uniform\n public get hasBeenEnrichedWithCustomerOrder(): boolean {\n return this.customerOrderID !== undefined;\n }\n\n public HedgeOrderStatus: HedgeOrderStatus | undefined;\n\n public enrichWithHedgeOrderStatus(hedgeOrderStatus: HedgeOrderStatus | IHedgeOrderStatus): void {\n this.HedgeOrderStatus = new HedgeOrderStatus(hedgeOrderStatus);\n }\n\n public OrderAnnotations: IOrderAnnotations | undefined;\n\n public enrichWithOrderAnnotation(orderAnnotations: IOrderAnnotations): void {\n this.OrderAnnotations = orderAnnotations;\n }\n\n constructor(data: Order) {\n Object.assign(this, data);\n if (data.HedgeOrderStatus) {\n this.enrichWithHedgeOrderStatus(data.HedgeOrderStatus);\n }\n if (data.OrderAnnotations) {\n this.enrichWithOrderAnnotation(data.OrderAnnotations);\n }\n }\n}\n\ninterface MultilegParameters {\n LegParams: MultilegParametersLegParams[];\n}\n\n/** IMultilegParameters12001LegParams but with boolean instead of BoolEnum to match actual WS message */\ninterface MultilegParametersLegParams {\n MaxRestingLevels: number;\n CrossingAllowed: boolean;\n Initiating: boolean;\n}\n\nexport const getMarketWarnings = ({\n entity,\n\n includeTopLevelText = true,\n}: {\n entity: Pick;\n\n includeTopLevelText?: boolean;\n}): OrderWarning | null => {\n // Do not show warnings for completed orders\n if (isOrderComplete(entity.OrdStatus)) {\n return null;\n }\n\n // If there's more than one symbol represented in the Markets array\n const hasMultiSymbolMarkets = uniq(compact(entity.Markets.map(m => m.Symbol))).length > 1;\n\n // Disabled market means unselected by user, we ignore these\n const selectedMarkets = entity.Markets.filter(m => m.MarketStatus !== OrderMarketStatusEnum.Disabled);\n\n if (selectedMarkets.length === 0) {\n return null;\n }\n\n // Out of selected markets, find which that are not tradable. We want to show warnings for these.\n const untradableMarkets = selectedMarkets.filter(market => {\n // Specific case: if the order is paused, and market data is stale, we choose to not surface this warning - its fine\n if (\n entity.DecisionStatus === DecisionStatusEnum.Paused &&\n market.MarketStatus === OrderMarketStatusEnum.MarketDataStale\n ) {\n return false;\n }\n\n return market.MarketStatus !== OrderMarketStatusEnum.Online;\n });\n\n const topLevelWarnings: OrderWarningItem[] = [];\n\n if (includeTopLevelText) {\n // If there is a top level .Text on the order, we'll want to include it in topLevelWarnings.\n if (entity.Text) {\n if (entity.Text.includes('Protection')) {\n topLevelWarnings.push({ label: entity.Text, severity: WarningSeverity.LOW });\n } else {\n topLevelWarnings.push({ label: entity.Text, severity: WarningSeverity.MEDIUM });\n }\n }\n }\n\n if (untradableMarkets.length === selectedMarkets.length) {\n topLevelWarnings.push({\n severity: WarningSeverity.HIGH,\n label: `No markets are tradable`,\n value: `0 / ${selectedMarkets.length}`,\n });\n } else if (untradableMarkets.length > selectedMarkets.length / 2) {\n topLevelWarnings.push({\n severity: WarningSeverity.MEDIUM,\n label: `Less than 50% of markets are tradable`,\n value: `${untradableMarkets.length} / ${selectedMarkets.length}`,\n });\n } else if (untradableMarkets.length > 0) {\n topLevelWarnings.push({\n severity: WarningSeverity.LOW,\n label: `Not all markets are tradable`,\n value: `${untradableMarkets.length} / ${selectedMarkets.length}`,\n });\n }\n const severity = max(topLevelWarnings.map(w => w.severity)) || WarningSeverity.NONE;\n\n if (severity === WarningSeverity.NONE) {\n return null;\n }\n\n // For untradable markets, display the error text.\n const warningItems: OrderMarketWarningItem[] = compact(\n untradableMarkets.map(untradableMarket => {\n if (untradableMarket.Market) {\n return {\n severity: WarningSeverity.LOW,\n market: untradableMarket.Market,\n symbol: hasMultiSymbolMarkets ? untradableMarket.Symbol : undefined,\n value:\n untradableMarket.Text ??\n (untradableMarket.MarketStatus ? prettyName(untradableMarket.MarketStatus) : 'Market is not tradable'),\n };\n }\n return null;\n })\n );\n\n return { topLevelWarnings, severity, warningItems };\n};\n","export enum OrderFormSides {\n Buy = 'Buy',\n Sell = 'Sell',\n Twoway = '2 way',\n}\n","import type { MarketFeeModeEnum, ModeEnum } from './types';\n\nexport enum PricingTierTypeEnum {\n AllInTier = 'AllInTier',\n FeeTier = 'FeeTier',\n SymbolGroup = 'SymbolGroup',\n}\n\nexport interface AllInTier {\n Fee?: string;\n FeeMode?: MarketFeeModeEnum;\n FeeCurrency?: string;\n PricingAggregation?: string;\n Revision: number;\n Spread?: string;\n Tier: string;\n UpdateUser: string;\n MinMarketDataThrottle?: string;\n BidSpread?: string;\n OfferSpread?: string;\n Symbol?: string;\n QuoteTTL?: string;\n RFQTTL?: string;\n AcceptPriceLeniency?: string;\n SalesCommission?: string;\n}\n\nexport interface FeeTier {\n Fee?: string;\n FeeCurrency?: string;\n FeeMode?: MarketFeeModeEnum;\n Revision: number;\n Tier: string;\n UpdateUser: string;\n Symbol?: string;\n}\n\nexport interface SymbolGroup {\n Tier: string;\n Revision: number;\n UpdateUser: string;\n Mode: ModeEnum;\n Symbol?: string;\n}\n","import { values } from 'lodash';\nimport { toBig } from '../utils';\nimport { SettlementInstructionDirectionEnum, type ISettlementBatch, type ISettlementInstruction } from './types';\n\nexport enum CustomerSettlementPerspectiveEnum {\n Dealer = 'Dealer',\n Customer = 'Customer',\n}\nexport function perspectiveLabel(perspective: CustomerSettlementPerspectiveEnum): string {\n return perspective === CustomerSettlementPerspectiveEnum.Dealer ? 'Dealer' : 'Client';\n}\n\nexport function flipCustomerSettlementPerspectiveEnum(perspective: CustomerSettlementPerspectiveEnum) {\n return perspective === CustomerSettlementPerspectiveEnum.Dealer\n ? CustomerSettlementPerspectiveEnum.Customer\n : CustomerSettlementPerspectiveEnum.Dealer;\n}\n\nexport class SettlementPreview {\n readonly IncludingTrades!: string[];\n readonly Instructions!: SettlementInstruction[];\n readonly perspective: CustomerSettlementPerspectiveEnum;\n\n constructor(\n data: {\n IncludingTrades: string[];\n Instructions: Omit[];\n },\n perspective?: CustomerSettlementPerspectiveEnum\n ) {\n this.IncludingTrades = data.IncludingTrades;\n this.Instructions = data.Instructions.map(instr => new SettlementInstruction(instr));\n // User doesnt have to pass perspective, can be annoying. Default (implied) is always Dealer (Principal UI user)\n this.perspective = perspective ?? CustomerSettlementPerspectiveEnum.Dealer;\n }\n\n getOtherPerspective(): SettlementPreview {\n return new SettlementPreview(\n {\n IncludingTrades: this.IncludingTrades,\n Instructions: this.Instructions.map(instr => instr.getOtherPerspective()),\n },\n flipCustomerSettlementPerspectiveEnum(this.perspective)\n );\n }\n}\n\nexport interface SettlementResponse {\n IncludingTrades: string[];\n Instructions: ISettlementInstruction[];\n Settlement: ISettlementBatch;\n}\n\nexport class SettlementInstruction {\n readonly Timestamp!: string;\n readonly InstructionID!: string;\n readonly ParentSettlementID!: string;\n readonly OnBehalfOfAccountID!: number;\n readonly Direction!: SettlementInstructionDirectionEnum;\n readonly Amount!: string;\n readonly Asset!: string;\n\n /** Returns Amount, but negative if Direction is outbound */\n get directionalAmount() {\n if (this.Direction === SettlementInstructionDirectionEnum.Outbound) {\n const amountBig = toBig(this.Amount);\n if (amountBig) {\n return amountBig.times(-1).toFixed();\n }\n }\n\n return this.Amount;\n }\n\n get rowID() {\n return `${this.OnBehalfOfAccountID}-${this.Asset}-${this.Direction}`;\n }\n\n clone(): SettlementInstruction {\n return new SettlementInstruction(this);\n }\n\n /** Returns a new instance of SettlementInstruction which represents the same instruction action but from the other perspective */\n getOtherPerspective() {\n return new SettlementInstruction({\n Timestamp: this.Timestamp,\n InstructionID: this.InstructionID,\n ParentSettlementID: this.ParentSettlementID,\n OnBehalfOfAccountID: this.OnBehalfOfAccountID,\n Asset: this.Asset,\n Amount: this.Amount,\n\n Direction:\n this.Direction === SettlementInstructionDirectionEnum.Inbound\n ? SettlementInstructionDirectionEnum.Outbound\n : SettlementInstructionDirectionEnum.Inbound,\n });\n }\n\n constructor(data: Omit) {\n Object.assign(this, data);\n }\n}\n\nexport function getSettlementInstructionDirectionLabel(direction: SettlementInstructionDirectionEnum): string {\n return direction === SettlementInstructionDirectionEnum.Inbound ? 'Receive' : 'Send';\n}\n\nexport function isSettlementInstructionDirection(\n maybeDirection: string\n): maybeDirection is SettlementInstructionDirectionEnum {\n return values(SettlementInstructionDirectionEnum).includes(maybeDirection);\n}\n","import { uniq } from 'lodash';\nimport { toBigWithDefault } from '../utils';\nimport type { LedgerUpdateTypeEnum } from './types';\n\nexport class SubAccountReconMatch {\n ID!: string;\n Asset!: string;\n CheckpointID!: string;\n LastUpdateTime!: string;\n EventType!: LedgerUpdateTypeEnum;\n Status!: SubAccountReconMatchStatusEnum;\n TransactTime!: string;\n TradeID!: string;\n\n Comments?: string[];\n\n /** An array of the sub accounts (name) represented in this ReconMatch */\n subAccounts: string[];\n\n get breakAmount() {\n const marketAccountEventAmount = toBigWithDefault(this.MarketAccountEvent?.Amount, 0);\n const subAccountEventsAmount = toBigWithDefault(this.SubAccountEvents?.Amount, 0);\n return subAccountEventsAmount.minus(marketAccountEventAmount).toFixed();\n }\n\n get hasBreak() {\n return !toBigWithDefault(this.breakAmount, 0).eq(0);\n }\n\n MarketAccountEvent?: {\n Amount: string;\n AvgCost: string;\n AvgCostCurrency: string;\n Market: string;\n MarketAccount: string;\n Comments?: string;\n };\n\n SubAccountEvents?: {\n Amount: string;\n Events?: {\n Amount: string;\n AvgCost: string;\n AvgCostCurrency: string;\n SubAccount: string;\n Comments?: string;\n }[];\n };\n\n constructor(data: SubAccountReconMatch) {\n Object.assign(this, data);\n this.subAccounts = uniq((this.SubAccountEvents?.Events ?? []).map(event => event.SubAccount));\n }\n}\n\n// temporary, will update types.ts for 2.50 to get Ignored in there properly\nexport enum SubAccountReconMatchStatusEnum {\n /** Unmatched */\n Unmatched = 'Unmatched',\n /** Only SubAccount event(s) exist */\n UnmatchedSubAccount = 'UnmatchedSubAccount',\n /** Only MarketAccount event(s) exist */\n UnmatchedMarketAccount = 'UnmatchedMarketAccount',\n /** Events exist and match */\n Matched = 'Matched',\n /** Manually Resolved */\n Resolved = 'Resolved',\n /** No a longer has matching events */\n Discarded = 'Discarded',\n\n Ignored = 'Ignored',\n}\n","import { MarketTypeEnum, TreasuryLinkDirectionEnum, TreasuryLinkTypeEnum, type UpdateActionEnum } from './types';\n\nexport enum TreasuryLinkStatusEnum {\n Active = 'Active',\n Inactive = 'Inactive',\n}\n\nexport type TreasuryLinkSourceOrDestinationField = keyof Pick<\n TreasuryLink,\n 'SourceMarketAccount' | 'DestinationMarketAccount' | 'DestinationAddress'\n>;\n\nexport function getOppositeSourceOrDestinationField(\n sourceOrDestinationField: TreasuryLinkSourceOrDestinationField\n): TreasuryLinkSourceOrDestinationField {\n return sourceOrDestinationField === 'DestinationMarketAccount' ? 'SourceMarketAccount' : 'DestinationMarketAccount';\n}\n\nexport enum TreasuryLinkTransactionType {\n Withdrawals = 'Withdrawals',\n Deposits = 'Deposits',\n}\n\n/**\n * Given a link type (customer, exchange, otc) and a \"transaction type\", (withdrawal, deposit, or undefined),\n * deduces what direction should be placed on treasury links in this situation.\n */\nexport function getTreasuryLinkDirection(\n linkType: TreasuryLinkTypeEnum,\n transactionType: TreasuryLinkTransactionType | undefined\n): TreasuryLinkDirectionEnum {\n // Customer transfers are both push and pull for now.\n if (linkType === TreasuryLinkTypeEnum.CustomerTransfer) {\n return transactionType === TreasuryLinkTransactionType.Deposits\n ? TreasuryLinkDirectionEnum.Inbound\n : TreasuryLinkDirectionEnum.Outbound;\n } else {\n // Non-customer transfers are only push for now (outbound), but will change later.\n return TreasuryLinkDirectionEnum.Outbound;\n }\n}\n\nexport function marketTypeToTreasuryLinkType(marketType: MarketTypeEnum): TreasuryLinkTypeEnum | undefined {\n switch (marketType) {\n case MarketTypeEnum.Exchange:\n return TreasuryLinkTypeEnum.ExchangeRebalance;\n case MarketTypeEnum.Dealer:\n return TreasuryLinkTypeEnum.OTCSettlement;\n default:\n return undefined;\n }\n}\n\n/**\n * Creates a Treasury link specificness key.\n *\n * The treasury link specificness key is used to look up treasury links of certain levels of specificness\n * in a structured way.\n */\nexport function getTreasuryLinkSpecificnessKey({\n MarketAccount,\n Type,\n Currency,\n Direction,\n}: Partial): string {\n return `${MarketAccount}-${Type}-${Currency}-${Direction}`;\n}\n\nexport enum TreasuryLinkSpecificness {\n Type, // least specific\n Currency,\n MarketAccount,\n MarketAccountAndCurrency, // most specific\n}\n\nexport function getTreasuryLinkSpecificness(link: TreasuryLink): TreasuryLinkSpecificness {\n if (link.MarketAccount != null && link.Currency != null) {\n return TreasuryLinkSpecificness.MarketAccountAndCurrency;\n }\n\n if (link.MarketAccount != null) {\n return TreasuryLinkSpecificness.MarketAccount;\n }\n\n if (link.Currency != null) {\n return TreasuryLinkSpecificness.Currency;\n }\n\n return TreasuryLinkSpecificness.Type;\n}\n\n/**\n * The TreasuryLink class encapsulates a complex business model.\n *\n * We support three types - ExchangeRebalance, CustomerTransfer, OTCSettlement. Depending on the type on the link,\n * the semantics around the link's property will change. Logic inside and revolving the TreasuryLink class will change slightly\n * depending on what the type is. There is an argument to be made that the TreasuryLink monolith concept should really be split\n * into three distinct entities - CustomerTreasuryLink, OTCTreasuryLink, ExchangeTreasuryLink. But here we are.\n *\n * Key to the TreasuryLink model to understand right away is that there is an inherent fallback structure within. These are\n * conceptualized as \"Specificness\" levels in the frontend. There are four Specificness levels:\n * 1. Global (meaning all MarketAccounts)\n * 2. Global + Currency specific\n * 3. MarketAccount specific\n * 4. MarketAccount + Currency specific\n *\n * The unique key of a TreasuryLink is the LinkID logically. The SpecificnessKey we generate is _not_ a unique key. That said, it is also\n * important to at this stage understand that in the business model, the SpecificnessKey will in all case but one be a unique key. The only\n * case in which the SpecificnessKey is not a unique key is for Customer Deposits at the MarketAccount+Currency Specificness Level. There\n * can be several links defined in this case.\n *\n * In all other cases (as of 2.45.1), there will only be one TreasuryLink per SpecificnessKey. That said, we still want to\n * model the different specificness levels and types uniformly.\n */\nexport class TreasuryLink {\n Timestamp?: string;\n Status!: TreasuryLinkStatusEnum;\n Currency?: string;\n MarketAccount?: string;\n DestinationMarketAccount?: string;\n\n /**\n * A TreasuryLink's DestinationAddress is only relevant for Customer Deposits. A TreasuryLink is for Customer Deposits if it is of\n * direction Inbound and of type CustomerTransfer. Furthermore, DestinationAddress can only be set on a TreasuryLink at the\n * MarketAccount + Currency specificness level (which is the most specific level).\n */\n DestinationAddress?: string;\n SourceMarketAccount?: string;\n Type!: TreasuryLinkTypeEnum;\n Direction!: TreasuryLinkDirectionEnum;\n LinkID!: string;\n UpdateAction?: UpdateActionEnum;\n\n /**\n * The treasury link specificness key is used to look up treasury links of certain levels of specificness\n * in a structured way.\n */\n get specificnessKey() {\n return getTreasuryLinkSpecificnessKey({\n MarketAccount: this.MarketAccount,\n Type: this.Type,\n Currency: this.Currency,\n Direction: this.Direction,\n });\n }\n\n get transactionType() {\n return this.Direction === TreasuryLinkDirectionEnum.Outbound\n ? TreasuryLinkTransactionType.Withdrawals\n : this.Direction === TreasuryLinkDirectionEnum.Inbound\n ? TreasuryLinkTransactionType.Deposits\n : undefined;\n }\n\n get getMarketAccountOrWildcard() {\n return `${this.MarketAccount ?? '*'}`;\n }\n\n clone(): TreasuryLink {\n return new TreasuryLink(this);\n }\n\n constructor(data: RawTreasuryLink) {\n Object.assign(this, data);\n }\n}\n\nexport type RawTreasuryLink = Omit<\n TreasuryLink,\n 'specificnessKey' | 'getMarketAccountOrWildcard' | 'transactionType' | 'clone'\n>;\n\n/**\n * Given an array of RawTreasuryLink, build a 2-levels nested map of SpecificnessKey -> LinkID -> Link\n */\nexport function buildTreasuryLinksBySpecificnessKeyMap(links: RawTreasuryLink[]) {\n const linkInstances = links.map(link => new TreasuryLink(link));\n const map = new Map>();\n for (const link of linkInstances) {\n const specificnessMap = map.get(link.specificnessKey) ?? new Map();\n specificnessMap.set(link.LinkID, link);\n map.set(link.specificnessKey, specificnessMap);\n }\n\n return map;\n}\n","import type { ParameterTypeEnum } from './OrderStrategy';\nimport type { OrdTypeEnum, PresenceEnum } from './types';\n\nexport interface WLOrderStrategyParameter {\n Description: string;\n DisplayName: string;\n Name: string;\n Presence: PresenceEnum;\n Type: ParameterTypeEnum;\n}\n\nexport interface WLOrderStrategy {\n Name: string;\n Group: string;\n Parameters: WLOrderStrategyParameter[];\n Description: string;\n DisplayName: string;\n OrdType: OrdTypeEnum;\n}\n\nexport enum WLParameterKeysEnum {\n LimitPrice = 'LimitPrice',\n EndTime = 'EndTime',\n StartTime = 'StartTime',\n ErrorAction = 'ErrorAction',\n ClipSize = 'ClipSize',\n ClipInterval = 'ClipInterval',\n Variance = 'Variance',\n}\n\nexport type WhitelabelParametersFormState = {\n [WLParameterKeysEnum.LimitPrice]?: string;\n [WLParameterKeysEnum.StartTime]?: string;\n [WLParameterKeysEnum.EndTime]?: string;\n [WLParameterKeysEnum.ErrorAction]?: string;\n [WLParameterKeysEnum.ClipSize]?: string;\n [WLParameterKeysEnum.ClipInterval]?: string;\n [WLParameterKeysEnum.Variance]?: string;\n [key: string]: unknown;\n};\n","// Taken from Ava/gocode/ws/clientwsmodel.go\nexport enum WebsocketErrorCodeEnum {\n WebsocketErrorInvalidRequest = 1,\n WebsocketErrorDuplicateReqID = 2,\n WebsocketErrorInvalidStream = 3,\n WebsocketErrorUnknownReqID = 4,\n WebsocketErrorDownstreamCommunicationProblem = 5,\n WebsocketErrorPermissionDenied = 6,\n WebsocketErrorSubscriptionLimit = 7,\n WebsocketErrorInternalServerError = 50,\n}\n","import { useCallback } from 'react';\nimport { useWLUser } from '../providers/WLUserContextProvider';\nimport type { CustomerUser } from '../types';\n\n// Tabs\nexport enum WL_BLOTTER_TAB {\n ActiveOrders = 'ActiveOrders',\n Balances = 'Balances',\n Credits = 'Credits',\n OrderHistory = 'OrderHistory',\n Trades = 'Trades',\n Transfers = 'Transfers',\n FundingEvents = 'FundingEvents',\n Positions = 'Positions',\n}\n\n// Permissions\nexport const WL_READ_MARKETDATA = 'read::marketdata';\nexport const WL_READ_ORDERS = 'read::orders';\nexport const WL_WRITE_ENTITY = 'write::entity';\nexport const WL_WRITE_ORDERS = 'write::orders';\nexport const WL_WRITE_SUBMIT_ORDERS = 'write::submit::orders';\nexport const WL_WRITE_MODIFY_ORDERS = 'write::modify::orders';\nexport const WL_WRITE_CANCEL_ORDERS = 'write::cancel::orders';\nexport const WL_WRITE_PAUSE_ORDERS = 'write::pause::orders';\nexport const WL_READ_POSITIONS = 'read::positions';\nexport const WL_READ_CFD = 'read::cfd';\nexport const WL_READ_SECMASTER = 'read::secmaster';\nexport const WL_ADMIN_LIMITS = 'admin::limits';\nexport const WL_ADMIN_ORDERS = 'admin::orders';\nexport const WL_WRITE_QUOTES = 'write::quotes';\nexport const WL_ADMIN_POSITIONS = 'admin::positions';\nexport const WL_READ_PRICING = 'read::pricing';\nexport const WL_READ_QUOTES = 'read::quotes';\nexport const WL_READ_ENTITY = 'read::entity';\n\n// actions\nexport const WL_USE_SYMBOL_SELECTOR = 'symbolselector.use';\nexport const WL_VIEW_BLOTTERS = 'blotters.view';\nexport const WL_VIEW_BLOTTERS_ACTIVE_ORDERS = 'blotters.activeorders';\nexport const WL_VIEW_BLOTTERS_ORDER_HISTORY = 'blotters.orderhistory';\nexport const WL_VIEW_BLOTTERS_TRADES = 'blotters.trades';\nexport const WL_VIEW_BLOTTERS_BALANCES = 'blotters.balances';\nexport const WL_VIEW_BLOTTERS_CREDITS = 'blotters.credits';\nexport const WL_VIEW_BLOTTERS_TRANSFERS = 'blotters.transfers';\nexport const WL_VIEW_BLOTTERS_FUNDING_EVENTS = 'blotters.fundingevents';\nexport const WL_VIEW_BLOTTERS_WITHDRAW = 'blotters.withdraw';\nexport const WL_VIEW_BLOTTERS_POSITIONS = 'blotters.positions';\nexport const WL_VIEW_SETTINGS = 'settings.view';\nexport const WL_VIEW_FEE_TIERS = 'feetiers.view';\nexport const WL_SHOW_CANDLESTICKS_AND_MARKETDATA = 'marketdata.view';\nexport const WL_MARKET_DATA = 'marketdata.read';\nexport const WL_INITIATE_ORDER = 'order.init';\nexport const WL_MODIFY_ORDER = 'order.modify';\nexport const WL_CANCEL_ORDER = 'order.cancel';\nexport const WL_PAUSE_ORDER = 'order.pause';\nexport const WL_INITIATE_RFQ = 'rfq.init';\nexport const WL_VIEW_FUNDING_SCHEDULE = 'funding.schedule.view';\n\ntype WLRuleMapping = { [key: string]: string[] };\n\nexport const WL_RULES: WLRuleMapping = {\n [WL_USE_SYMBOL_SELECTOR]: [WL_READ_SECMASTER],\n [WL_VIEW_BLOTTERS]: [WL_READ_ORDERS, WL_READ_POSITIONS],\n [WL_VIEW_BLOTTERS_ACTIVE_ORDERS]: [WL_READ_ORDERS],\n [WL_VIEW_BLOTTERS_ORDER_HISTORY]: [WL_READ_ORDERS],\n [WL_VIEW_BLOTTERS_TRADES]: [WL_READ_ORDERS],\n [WL_VIEW_BLOTTERS_BALANCES]: [WL_READ_POSITIONS],\n [WL_VIEW_BLOTTERS_CREDITS]: [WL_READ_POSITIONS],\n [WL_VIEW_BLOTTERS_TRANSFERS]: [WL_READ_POSITIONS],\n [WL_VIEW_BLOTTERS_FUNDING_EVENTS]: [WL_READ_CFD],\n [WL_VIEW_FUNDING_SCHEDULE]: [WL_READ_CFD],\n [WL_VIEW_BLOTTERS_WITHDRAW]: [WL_ADMIN_POSITIONS],\n [WL_VIEW_BLOTTERS_POSITIONS]: [WL_READ_CFD],\n [WL_VIEW_SETTINGS]: [WL_READ_ENTITY],\n [WL_VIEW_FEE_TIERS]: [WL_READ_ENTITY],\n [WL_SHOW_CANDLESTICKS_AND_MARKETDATA]: [WL_READ_MARKETDATA],\n [WL_INITIATE_ORDER]: [WL_WRITE_ORDERS, WL_WRITE_SUBMIT_ORDERS],\n [WL_MODIFY_ORDER]: [WL_WRITE_ORDERS, WL_WRITE_MODIFY_ORDERS],\n [WL_CANCEL_ORDER]: [WL_WRITE_ORDERS, WL_WRITE_CANCEL_ORDERS],\n [WL_PAUSE_ORDER]: [WL_WRITE_ORDERS, WL_WRITE_PAUSE_ORDERS],\n [WL_INITIATE_RFQ]: [WL_WRITE_QUOTES],\n};\n\nexport const useWLRoleAuth = () => {\n const user = useWLUser();\n const isAuthorized = useCallback((action: string) => isWLUserAuthorized(user, action, WL_RULES), [user]);\n const isRole = useCallback((role: string) => isWLUserRole(user, role), [user]);\n\n return { isAuthorized, isRole };\n};\n\nexport const isWLUserRole = (user: CustomerUser, role: string) =>\n user && user.Permissions && user.Permissions.includes(role);\n\nexport const isWLUserAuthorized = (user: CustomerUser, action: string, rules: WLRuleMapping) => {\n if (user == null || user.Permissions == null) {\n return false;\n }\n return rules[action]?.some(permission => user.Permissions?.includes(permission));\n};\n\nexport const useWLUserPermissions = (): string[] => {\n const user = useWLUser();\n return user.Permissions ?? [];\n};\n","import type { CSSProperties, MouseEventHandler, ReactNode } from 'react';\nimport type { MixpanelEvent } from '../../tokens';\nimport type { IndicatorDotVariants } from '../IndicatorDot';\nimport type { useTabs } from './useTabs';\n\nexport interface TabProps {\n label?: string;\n prefix?: ReactNode;\n suffix?: ReactNode;\n isSelected?: boolean;\n ref?: any;\n editable?: boolean;\n closable?: boolean;\n reorderable?: boolean;\n /** Whether or not this tab's label is being controlled by the smartTabLabeler */\n usingSmartLabel?: boolean;\n onClick?: MouseEventHandler;\n onRename?(text: string): void;\n onCancel?(): void;\n onRemove?(): void;\n id?: string;\n isAddingTab?: boolean;\n isDragging?: boolean;\n style?: CSSProperties;\n appearance?: TabAppearance;\n showDot?: boolean;\n dotVariant?: IndicatorDotVariants;\n mixpanelEvent?: MixpanelEvent;\n isTemporary?: boolean;\n maxTabLength?: number;\n size?: TabSize;\n}\n\nexport type TabOutputProps = ReturnType['items'][number];\nexport enum TabAppearance {\n Filled = 'Filled',\n Underlined = 'Underlined',\n Pill = 'Pill',\n}\n\nexport enum TabSize {\n Small = 1.5,\n Default = 2,\n Large = 2.5,\n}\n","export enum FuseResultMatchEnum {\n Label,\n Description,\n}\n\nexport interface FuseResultMatchProps {\n label?: string;\n indices?: readonly any[];\n highlightAll?: boolean;\n type?: FuseResultMatchEnum;\n disabled?: boolean;\n}\n","import type { ColDef, CsvExportParams, ExcelExportParams } from 'ag-grid-community';\nimport type { ColGroupDef, GridApi, GridOptions } from 'ag-grid-enterprise';\nimport type { UnaryFunction } from 'rxjs';\nimport type { Column } from './columns/types';\nimport type { UseBlotterTable, UseBlotterTableProps } from './useBlotterTable/types';\n\n/**\n * An RxJS pipeline\n */\nexport type CompositePipeFunction = UnaryFunction<\n UseBlotterTableProps['dataObservable'],\n UseBlotterTableProps['dataObservable']\n>;\n\nexport interface ColumnDefsOptions {\n handleClickJson?: (data: R | undefined) => any;\n exportDataAsCSV?: UseBlotterTable['exportDataAsCSV'];\n supportColumnColDefGroups?: UseBlotterTableProps['supportColumnColDefGroups'];\n}\n\nexport interface BlotterTableRow {\n readonly data: R;\n setData(data: R): void;\n remove(): void;\n setSelected(selected: boolean): void;\n}\n\nexport type BlotterTableProps = {\n readonly gridOptions: GridOptions | null;\n readonly density?: BlotterDensity;\n readonly background?: string;\n readonly hidden?: boolean;\n readonly extraComponents?: {\n [key: string]: any; // same as gridOptions.d.ts provided by ag-grid\n };\n} & Partial, 'hidePopupMenu'>>; // BlotterTable wants this one utility\n\nexport enum BlotterDensity {\n Compact,\n Default,\n Comfortable,\n VeryComfortable,\n}\n\nexport const AGGRID_AUTOCOLUMN_ID = 'ag-Grid-AutoColumn'; // internal aggrid id\ntype BlotterTableColumnSortID = `${'+' | '-'}${(keyof R & string) | typeof AGGRID_AUTOCOLUMN_ID}`;\nexport type BlotterTableSort = BlotterTableColumnSortID | BlotterTableColumnSortID[];\nexport type BlotterTableFilter = { [key: string]: any };\n\n/**\n * It's dangerous to go alone! Take this: https://www.ag-grid.com/react-grid/ *\n */\n\nexport type PinnedRow = R & { groupColumnValue?: string };\n\nexport interface TalosBlotterExportParams {\n /** Whether or not to also include hidden columns in the export */\n includeHiddenColumns?: boolean;\n /** An array of colIds (computed via function getAgGridColId(column)) to ignore. Applies before the optional `includeColumn` callback */\n ignoredColIds?: Set;\n /** A callback which allows you to filter out any columns you don't want included in the export. Applies after the `ignoredColIds` is applied. */\n ignoreColumn?: (columns: ColDef) => boolean;\n /** Take full control over which columns to include in exporting by providing this array. All other column-related options become no-ops essentially. */\n columnKeys?: CsvExportParams['columnKeys'];\n}\n\n// These three types below are a bit different due to being csv vs excel. But the talos-part is still shared\n// - The top two are for the full export, so they can receive all pararms, while the last one is for the sheet data only\nexport type ExportDataAsCsvParams = TalosBlotterExportParams & CsvExportParams;\nexport type ExportDataAsExcelParams = TalosBlotterExportParams & ExcelExportParams;\nexport type TalosGetSheetDataForExcelParams = TalosBlotterExportParams &\n Pick;\n\nexport interface UseBlotterTableUtilitiesOutput {\n gridApi: GridApi | undefined;\n /**\n * Triggers a CSV download of the grid rows\n * @param params Export parameters to be passed to ag grid\n * By default, the function hides group and pinned rows, as well as does not show any columns with an empty string as a headerName.\n */\n exportDataAsCSV(params: ExportDataAsCsvParams): void;\n /**\n * Triggers an Excel download of the grid rows\n * @param params Export parameters to be passed to ag grid\n * By default, the function hides group and pinned rows, as well as does not show any columns with an empty string as a headerName.\n */\n exportDataAsExcel(params: ExportDataAsExcelParams): void;\n /**\n * Grabs export-ready data and returns as a csv string. The returned csv string is what would otherwise be exported as a csv file, but in this case its just returned as a string.\n * @param params Export parameters to be passed to ag grid\n * By default, the function hides group and pinned rows, as well as does not show any columns with an empty string as a headerName.\n */\n getDataAsCSV(params: ExportDataAsCsvParams): string | undefined;\n\n addRow(data: R): void;\n getRows(): BlotterTableRow[];\n getRowsAfterFilter(): BlotterTableRow[];\n getSelectedRows(): BlotterTableRow[];\n expandGroupRow(nodeKey: string): void;\n scrollToRow(...args: Parameters['ensureNodeVisible']>): void;\n scrollVerticallyToColumn(...args: Parameters['ensureColumnVisible']>): void;\n /** Given a node level, will collapse all nodes whose node.level are greater than this provided level. */\n collapseAllLevelsGreaterThan(level: number): void;\n getRowGroupColumnIds(): Set;\n /**\n * Sets new rowGroupColumns to be used. Overrides any rowGroupIndex properties and uses the order of elements provided.\n */\n setRowGroupColumns(colIds: string[]): void;\n /**\n * Adds the provided colId columns to the currently set row group columns at the end.\n */\n addRowGroupColumns(colIds: string[]): void;\n removeRowGroupColumns(colIds: string[]): void;\n\n // the below calls directly mimic {@link GridApi} calls, but several have different logic and/or track to MixPanel\n expandAllGroups: GridApi['expandAll'];\n collapseAllGroups: GridApi['collapseAll'];\n setColumnsVisible: GridApi['setColumnsVisible'];\n flashCells: GridApi['flashCells'];\n refreshClientSideRowModel: GridApi['refreshClientSideRowModel'];\n selectAllRows: GridApi['selectAll'];\n\n getSheetDataForExcel(params: TalosGetSheetDataForExcelParams): string | undefined;\n\n /**\n * Highlights the provided rows (leaf node rows) for the user.\n *\n * The function opens all possible intermediate groups on its way to the leaf nodes,\n * scrolls the view to the first passed row, and then flashes all passed rows.\n * @param rowID the rowids of the rows to highlight to the user\n * @param expandChildren if highlighting a group row, whether or not to also expand the children of that highlighted row\n */\n highlightRows: (rowIDs: string[], expandChildren?: boolean) => void;\n\n /**\n * Highlights the provided group row for the user\n *\n * The key to be passed is the key that AgGrid puts on a group row node's .key attribute. If you for example\n * have a group on \"Asset\", and there's a \"BTC\" group, the node.key attributes will be \"BTC\". There can be several row group nodes\n * that have \"BTC\" as the key. This function just picks the first one it finds, and its up to you to make sure that this makes sense for your use case.\n */\n highlightGroupRow: (groupingKey: string) => void;\n /**\n * Deselects all previous selections and selects all nodes corresponding to the passed in rowids.\n */\n selectRows: (rowIDs: string[]) => void;\n\n /**\n * AgGrid's own hidePopupMenu function. Closes **any and all** open AgGrid popup menus.\n *\n * One niched example use is how we are forced to programmatically hide AgGrid's popups ourselves when they're clicked outside of\n * when the blotter is rendered within a React Portal.\n */\n hidePopupMenu: GridApi['hidePopupMenu'];\n\n getAllDisplayedColumns: GridApi['getAllDisplayedColumns'];\n}\n\n/** Blotters State V2 format (blotters2 in AppConfig) */\nexport type BlotterState = {\n columns?: ColumnState[];\n sort?: BlotterTableSort;\n filter?: BlotterTableFilter;\n rowGroupsOpened?: RowGroupsOpenedState;\n /** Date stamp for when this state was deprecated - auto-deleted after a month */\n migratedOutDate?: number;\n};\n\nexport type ColumnState = {\n id: string;\n hide?: boolean;\n width?: number;\n pinned?: 'left' | 'right';\n rowGroup?: boolean;\n rowGroupIndex?: number;\n};\n\nexport interface RowGroupsOpenedState {\n [key: string]: boolean;\n}\n\n/** Simpler Native HeaderType alternative to Column type='group' based on ColGroupDef\n * - TODO: Decide if we need to:\n * - keep this type\n * - use native AgGrid ColGroupDef or\n * - if we should use Column type='group'\n * @see ColGroupDef\n */\nexport type ColumnGroup = Omit & {\n type: typeof COLUMN_GROUP_NATIVE_TYPE;\n groupId: string;\n children: Column[];\n};\n\nexport const COLUMN_GROUP_NATIVE_TYPE = 'columnGroupNative';\nexport type ColumnOrColumnGroup = Column | ColumnGroup;\n\nexport function isColumnGroup(column: ColumnOrColumnGroup): column is ColumnGroup {\n return column.type === COLUMN_GROUP_NATIVE_TYPE;\n}\n\n/** Extract and flatten Columns and ColumnGroups for compatible analysis */\nexport function extractColumns(groupCollection: ColumnOrColumnGroup[]): Column[] {\n const result = groupCollection.flatMap(column => {\n return isColumnGroup(column) ? extractColumns(column.children) : column;\n });\n return result;\n}\n","import styled, { css } from 'styled-components';\nimport { Box } from '../Core';\nimport { Icon } from '../Icons';\n\nexport enum TagVariants {\n Default,\n Primary,\n Positive,\n Negative,\n Warning,\n}\n\nexport enum TagSizes {\n Tiny,\n Small,\n Default,\n Large,\n}\n\nconst background = css<{ variant?: TagVariants }>`\n background: ${({ theme, variant }) => {\n switch (variant) {\n case TagVariants.Primary:\n return theme.backgroundPrimaryButton;\n case TagVariants.Positive:\n return theme.backgroundPositiveButton;\n case TagVariants.Negative:\n return theme.backgroundNegativeButton;\n default:\n return theme.backgroundPriorityButton;\n }\n }};\n border: solid 1px\n ${({ theme, variant }) => {\n switch (variant) {\n case TagVariants.Primary:\n return theme.borderColorPrimaryButton;\n case TagVariants.Positive:\n return theme.borderColorPositiveButton;\n case TagVariants.Negative:\n return theme.borderColorNegativeButton;\n default:\n return theme.borderColorPriorityButton;\n }\n }};\n`;\n\nconst foreground = css<{ variant?: TagVariants }>`\n color: ${({ theme, variant }) => {\n switch (variant) {\n case TagVariants.Primary:\n return theme.colorTextPrimaryButton;\n case TagVariants.Positive:\n return theme.colorTextPositiveButton;\n case TagVariants.Negative:\n return theme.colorTextNegativeButton;\n default:\n return theme.colorTextPriorityButton;\n }\n }};\n`;\n\nconst tiny = css`\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n padding: ${({ theme }) => `${theme.spacingTiny - 1}px ${theme.spacingDefault}px`};\n\n ${Icon} {\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n }\n\n > span + ${Icon}, > ${Icon} + span {\n margin-left: ${({ theme }) => theme.spacingSmall}px;\n }\n`;\n\nconst small = css`\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n padding: ${({ theme }) => `${theme.spacingSmall - 1}px ${theme.spacingDefault}px`};\n\n ${Icon} {\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n }\n\n > span + ${Icon}, > ${Icon} + span {\n margin-left: ${({ theme }) => theme.spacingSmall}px;\n }\n`;\n\nconst large = css`\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n padding: ${({ theme }) => `${theme.spacingDefault - 1}px ${theme.spacingMedium}px`};\n\n ${Icon} {\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n }\n\n > span + ${Icon}, > ${Icon} + span {\n margin-left: ${({ theme }) => theme.spacingSmall}px;\n }\n`;\n\nexport const Wrapper = styled(Box)<{ size?: TagSizes; variant?: TagVariants }>`\n ${background};\n ${foreground};\n display: inline-flex;\n align-items: center;\n border-radius: 999em;\n line-height: 1;\n\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n padding: ${({ theme }) => `${theme.spacingSmall - 1}px ${theme.spacingDefault}px`};\n\n ${Icon} {\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n }\n\n > span + ${Icon}, > ${Icon} + span {\n margin-left: ${({ theme }) => theme.spacingSmall}px;\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ${({ size }) => size === TagSizes.Tiny && tiny};\n ${({ size }) => size === TagSizes.Small && small};\n ${({ size }) => size === TagSizes.Large && large};\n`;\n\nexport const Title = styled.span<{ variant?: TagVariants }>`\n text-transform: uppercase;\n white-space: nowrap;\n letter-spacing: 0.05em;\n margin-right: ${({ theme }) => theme.spacingSmall}px;\n`;\n","import {\n getHours,\n getMilliseconds,\n getMinutes,\n getSeconds,\n setHours,\n setMilliseconds,\n setMinutes,\n setSeconds,\n} from 'date-fns';\n\n// Numeric enums for simple ordering logic.\nexport enum TimePickerPrecision {\n HOUR = 1,\n MINUTE = 2,\n SECOND = 3,\n MILLISECOND = 4,\n}\n\nexport type PrecisionToolkit = {\n precision: TimePickerPrecision;\n delimiter: string | null;\n formatter: (input: string) => string;\n max: number;\n min: number;\n step: number;\n dateSetter: (date: Date, value: number) => Date;\n valueGetter: (date: Date) => number;\n};\n\nexport const PRECISION_TOOLKITS: { [key: number]: PrecisionToolkit } = {\n [TimePickerPrecision.HOUR]: {\n precision: TimePickerPrecision.HOUR,\n delimiter: null,\n formatter: input => addLeadingZeroes(input, 2),\n max: 23,\n step: 1,\n min: 0,\n dateSetter: setHours,\n valueGetter: getHours,\n },\n [TimePickerPrecision.MINUTE]: {\n precision: TimePickerPrecision.MINUTE,\n delimiter: ':',\n formatter: input => addLeadingZeroes(input, 2),\n max: 59,\n step: 1,\n min: 0,\n dateSetter: setMinutes,\n valueGetter: getMinutes,\n },\n [TimePickerPrecision.SECOND]: {\n precision: TimePickerPrecision.SECOND,\n delimiter: ':',\n formatter: input => addLeadingZeroes(input, 2),\n max: 59,\n step: 1,\n min: 0,\n dateSetter: setSeconds,\n valueGetter: getSeconds,\n },\n [TimePickerPrecision.MILLISECOND]: {\n precision: TimePickerPrecision.MILLISECOND,\n delimiter: '.',\n formatter: input => addLeadingZeroes(input, 3),\n max: 999,\n step: 1,\n min: 0,\n dateSetter: setMilliseconds,\n valueGetter: getMilliseconds,\n },\n};\n\nexport const PRECISIONS: TimePickerPrecision[] = Object.keys(PRECISION_TOOLKITS).map(p => +p);\n\n/**\n * Increments the value by the precision's specified step.\n * Loops around to min if max is exceeded.\n * Returns the incremented value.\n * @param value number to be incremented\n * @param precision precision of the number\n */\nexport const stepPrecisionValue = (value: number, precision: TimePickerPrecision, incOrDec: 'inc' | 'dec'): number => {\n const { max, min, step } = PRECISION_TOOLKITS[precision];\n const stepWithDirection = (incOrDec === 'inc' ? 1 : -1) * step;\n const steppedValue = value + stepWithDirection;\n\n if (steppedValue > max) {\n return min;\n } else if (steppedValue < min) {\n return max;\n } else {\n return steppedValue;\n }\n};\n\nconst addLeadingZeroes = (input: string, maxLength: number): string => {\n let output = input;\n while (output.length < maxLength) {\n output = '0' + output;\n }\n\n return output;\n};\n","import { startOfDay, startOfMonth, startOfWeek, startOfYear, subDays, subHours, subMinutes, subMonths } from 'date-fns';\nimport { defineMessages } from 'react-intl';\nimport { FormattedMessage } from '../Intl';\n\n/** When stored in App Config, dates get stored to strings, so this type supports deserializing them */\nexport type SerializedDateRange = {\n from: string | null;\n to: string | null;\n};\nexport type SerializedDateRangeOrLookback = SerializedDateRange | LookbackWindow;\nexport type DateRangeOrLookback = DateRange | LookbackWindow;\n\nexport const dateRangeMessages = defineMessages({\n today: {\n defaultMessage: 'Today',\n id: 'DateRangePicker.today',\n },\n past5Min: {\n defaultMessage: 'Past 5 Min',\n id: 'DateRangePicker.past5Min',\n },\n pastHour: {\n defaultMessage: 'Past hour',\n id: 'DateRangePicker.pastHour',\n },\n past24Hours: {\n defaultMessage: 'Past 24 hours',\n id: 'DateRangePicker.past24Hours',\n },\n pastWeek: {\n defaultMessage: 'Past week',\n id: 'DateRangePicker.pastWeek',\n },\n past30Days: {\n defaultMessage: 'Past 30 days',\n id: 'DateRangePicker.past30Days',\n },\n pastMonth: {\n defaultMessage: 'Past month',\n id: 'DateRangePicker.pastMonth',\n },\n past90Days: {\n defaultMessage: 'Past 90 days',\n id: 'DateRangePicker.past90Days',\n },\n pastYear: {\n defaultMessage: 'Past year',\n id: 'DateRangePicker.pastYear',\n },\n weekToDate: {\n defaultMessage: 'Week to date',\n id: 'DateRangePicker.weekToDate',\n },\n monthToDate: {\n defaultMessage: 'Month to date',\n id: 'DateRangePicker.monthToDate',\n },\n yearToDate: {\n defaultMessage: 'Year to date',\n id: 'DateRangePicker.yearToDate',\n },\n lifeToDate: {\n defaultMessage: 'Life to date',\n id: 'DateRangePicker.lifeToDate',\n },\n});\n\nexport interface DateRange {\n from: Date | null;\n to: Date | null;\n}\n\nexport interface LookbackWindow {\n lookback: LookbackOption;\n}\n\nexport enum LookbackOption {\n Today = 'Today',\n Past5Min = 'Past 5 Min',\n PastHour = 'Past hour',\n Past24Hours = 'Past 24 hours',\n PastWeek = 'Past week',\n Past30Days = 'Past 30 days',\n PastMonth = 'Past month',\n Past90Days = 'Past 90 days',\n PastYear = 'Past year',\n WeekToDate = 'Week to date',\n MonthToDate = 'Month to date',\n YearToDate = 'Year to date',\n LifeToDate = 'Life to date',\n}\n\ninterface LookbackMetadata {\n getStartDate: () => Date;\n label: JSX.Element;\n}\nexport const LOOKBACKS: { [key in LookbackOption]: LookbackMetadata } = {\n Today: {\n getStartDate: () => startOfDay(new Date()),\n label: ,\n },\n 'Past 5 Min': {\n getStartDate: () => subMinutes(new Date(), 5),\n label: ,\n },\n 'Past hour': {\n getStartDate: () => subHours(new Date(), 1),\n label: ,\n },\n 'Past 24 hours': {\n getStartDate: () => subHours(new Date(), 24),\n label: ,\n },\n 'Past week': {\n getStartDate: () => startOfDay(subDays(new Date(), 7)),\n label: ,\n },\n 'Past 30 days': {\n getStartDate: () => startOfDay(subDays(new Date(), 30)),\n label: ,\n },\n 'Past month': {\n getStartDate: () => startOfDay(subMonths(new Date(), 1)),\n label: ,\n },\n 'Past 90 days': {\n getStartDate: () => startOfDay(subDays(new Date(), 90)),\n label: ,\n },\n 'Past year': {\n getStartDate: () => subDays(new Date(), 365),\n label: ,\n },\n 'Week to date': {\n getStartDate: () => startOfWeek(new Date(), { weekStartsOn: 1 }),\n label: ,\n },\n 'Month to date': {\n getStartDate: () => startOfMonth(new Date()),\n label: ,\n },\n 'Year to date': {\n getStartDate: () => startOfYear(new Date()),\n label: ,\n },\n 'Life to date': {\n getStartDate: () => new Date(),\n label: ,\n },\n};\n\nexport const DEFAULT_LOOKBACK_OPTIONS = [\n LookbackOption.Past5Min,\n LookbackOption.PastHour,\n LookbackOption.Today,\n LookbackOption.Past24Hours,\n LookbackOption.PastWeek,\n LookbackOption.Past30Days,\n];\n\nexport function isDateRange(val?: DateRange | LookbackWindow): val is DateRange {\n if (!val) {\n return false;\n }\n return 'to' in val && 'from' in val;\n}\n\nexport function lookbackOptionToDate(lookback: LookbackOption | null): Date {\n if (!lookback) {\n return startOfDay(new Date());\n }\n\n return LOOKBACKS[lookback].getStartDate();\n}\n\nexport function isLookbackWindow(\n dateRangeOrLookback: SerializedDateRangeOrLookback | DateRangeOrLookback\n): dateRangeOrLookback is LookbackWindow {\n return 'lookback' in dateRangeOrLookback;\n}\n","import type { CSSProperties } from 'react';\nimport { Box } from '../Core';\nimport { LoaderWrapper, Square, Wrapper } from './styles';\n\nexport { LoaderWrapper } from './styles';\n\nexport enum LoaderSizes {\n XXS = 8,\n XS = 12,\n TINY = 16,\n SMALL = 24,\n MEDIUM = 32,\n DEFAULT = 40,\n}\n\ninterface LoaderTalosProps {\n size?: LoaderSizes;\n wrapperStyle?: CSSProperties;\n text?: string;\n /**\n * Delay in ms before showing the loader\n */\n delay?: number;\n}\n\n/**\n * The talos logo loader\n */\nexport const LoaderTalos = ({ size = LoaderSizes.DEFAULT, text, wrapperStyle = {}, delay }: LoaderTalosProps) => (\n \n \n \n);\n\nexport const LoaderTalosIcon = ({ size = LoaderSizes.DEFAULT, text }: { size?: LoaderSizes; text?: string }) => (\n <>\n \n \n \n \n\n \n \n \n\n \n \n \n \n {text && {text}}\n \n);\n","export enum ProcessStepSizes {\n icon = 0.1875,\n small = 0.75,\n default = 1,\n large = 1.125,\n}\n\nexport type ProcessStep = {\n id?: string;\n statuses: string[];\n label: string;\n disabled?: boolean;\n state: ProcessStepState;\n};\n\nexport enum ProcessStepState {\n Open,\n Active,\n Done,\n}\n","export enum NotificationVariants {\n Default = 'DEFAULT',\n Primary = 'PRIMARY',\n Positive = 'POSITIVE',\n Negative = 'NEGATIVE',\n Warning = 'WARNING',\n Attention = 'ATTENTION',\n}\n\nexport enum NotificationSizes {\n Small,\n Default,\n}\n","import {\n type Aggregation,\n type AllInTier,\n type Currency,\n type Customer,\n CustomerAddressTypeEnum,\n CustomerExecutionStrategyEnum,\n type CustomerSecurity,\n type CustomerUser,\n type FeeTier,\n type MarketFeeModeEnum,\n OrdTypeEnum,\n type Security,\n type SymbolGroup,\n TimeInForceEnum,\n} from '../../types';\nimport { prettyName } from '../../utils';\nimport type { InputsAndDropdownsDrawerDropdownOption } from './InputsAndDropdownsDrawer';\n\nexport function getCustomerUserDrawerOptions(\n customerUsers: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return customerUsers.map(({ Email }) => ({\n value: Email,\n label: Email, // Add preference to use DisplayName ?\n }));\n}\n\n/**\n * Returns an array of 24-hour time options in 15-minute intervals.\n */\nexport function getTimeDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return Array.from({ length: 24 }, (_, h) => {\n const hours = h < 10 ? `0${h}` : h;\n return ['00', '15', '30', '45']\n .map(minutes => `${hours}:${minutes}:00`)\n .map(time => ({ value: time, label: `${time} UTC` }));\n }).flat();\n}\n\nexport function getCustomerDrawerOptions(\n customers: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return customers.map(({ Name, DisplayName }) => ({\n value: Name,\n label: DisplayName ?? Name,\n }));\n}\n\nexport function getSecurityDrawerOptions(\n securities: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return securities.map(({ Symbol, DisplaySymbol, Description }) => ({\n value: Symbol,\n label: DisplaySymbol ?? Symbol,\n description: Description,\n }));\n}\n\nexport function getCurrencyDrawerOptions(\n currencies: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return currencies.map(({ Symbol, Description }) => ({\n value: Symbol,\n label: Symbol,\n description: Description,\n }));\n}\n\nexport function getAddressTypeDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return [\n { value: CustomerAddressTypeEnum.Deposit, label: 'Deposit' },\n { value: CustomerAddressTypeEnum.Withdrawal, label: 'Withdrawal' },\n ];\n}\n\nexport function getOrdTypeDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return [\n {\n value: OrdTypeEnum.Limit,\n label: 'Limit',\n },\n {\n value: OrdTypeEnum.Market,\n label: 'Market',\n },\n ];\n}\n\nenum FIXConnectionTypeEnum {\n MarketData = 'MARKETDATA',\n Orders = 'ORDERS',\n DropCopy = 'DROPCOPY',\n}\n\nexport function getConnectionTypeDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return [\n {\n value: FIXConnectionTypeEnum.Orders,\n label: 'Orders',\n description: 'Orders FIX Connection',\n },\n {\n value: FIXConnectionTypeEnum.DropCopy,\n label: 'Drop Copy',\n description: 'Post-Trade FIX Connection',\n },\n {\n value: FIXConnectionTypeEnum.MarketData,\n label: 'Market Data',\n description: 'MarketDataDepth and MarketDataTrades Connection Types',\n },\n ];\n}\n\nexport function getExecutionStrategiesDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return [\n {\n value: CustomerExecutionStrategyEnum.OrderAcceptance,\n label: 'Order Acceptance',\n description: 'Execute Customer Order Unhedged',\n },\n {\n value: CustomerExecutionStrategyEnum.RisklessPrincipal,\n label: 'Riskless Principal',\n description: 'Execute with a Cover and Deal Strategy',\n },\n ];\n}\n\nexport function getTimeInForceDrawerOptions(): InputsAndDropdownsDrawerDropdownOption[] {\n return [\n {\n value: TimeInForceEnum.FillAndKill,\n label: 'Fill and Kill',\n },\n {\n value: TimeInForceEnum.FillOrKill,\n label: 'Fill or Kill',\n },\n {\n value: TimeInForceEnum.GoodTillCancel,\n label: 'Good Till Cancel',\n },\n ];\n}\n\nexport function getPricingAggregationDrawerOptions(\n aggregations: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return aggregations.map(({ Name, DisplayName }) => ({\n value: Name,\n label: DisplayName,\n }));\n}\n\nexport function getFeeModeDrawerOptions(feeModeOptions: MarketFeeModeEnum[]): InputsAndDropdownsDrawerDropdownOption[] {\n return feeModeOptions.map(mode => ({ value: mode, label: prettyName(mode) }));\n}\n\nexport function getTierDrawerOptions(\n tiers: Pick[]\n): InputsAndDropdownsDrawerDropdownOption[] {\n return tiers.map(({ Tier }) => ({ value: Tier, label: Tier }));\n}\n","import { createContext, useContext, useState } from 'react';\nimport { useDrawer, type DrawerProps } from '../components/Drawer';\nimport { useDynamicCallback } from '../hooks/useDynamicCallback';\n\nexport const AppwideDrawerContext = createContext(undefined);\nAppwideDrawerContext.displayName = 'AppwideDrawerContext';\n\nexport enum AppwideDrawerContentType {\n TransferForm,\n ResolveReconMismatches,\n CustomerSettlement,\n AutoHedgePositionRule,\n EntityAdminPage,\n}\n\nexport interface AppwideDrawerContentSpec {\n type: AppwideDrawerContentType;\n title: string;\n renderContent: () => JSX.Element;\n renderHeaderContent?: () => JSX.Element;\n /** Width of drawer, defaults to 450 */\n width?: number;\n /** CSS Position of drawer, defaults to relative. Determines if drawer is opened next to content ('relative') or on top of content ('absolute') */\n position?: 'relative' | 'absolute';\n placement?: 'right' | 'left';\n}\n\nexport interface AppwideDrawerContextProps {\n drawer: DrawerProps;\n openDrawer: (spec: AppwideDrawerContentSpec) => void;\n closeDrawer: () => void;\n contentSpec: AppwideDrawerContentSpec | undefined;\n}\n\nexport function useAppwideDrawerContext() {\n const context = useContext(AppwideDrawerContext);\n if (context === undefined) {\n throw new Error('Missing AppwideDrawerContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport const AppwideDrawerProvider = function AppwideDrawerProvider({ children }) {\n const [contentSpec, setContentSpec] = useState(undefined);\n\n const drawer = useDrawer({\n closeOnEscape: true,\n width: contentSpec?.width ?? 450,\n position: contentSpec?.position ?? 'relative',\n placement: contentSpec?.placement,\n });\n\n const openDrawer = useDynamicCallback((spec: AppwideDrawerContentSpec) => {\n setContentSpec(spec);\n drawer.open();\n });\n\n return (\n \n {children}\n \n );\n};\n","export enum FormRowStatus {\n Added = 'Added',\n Updated = 'Updated',\n Removed = 'Removed',\n None = 'None',\n}\n\nexport type FormRowErrors = { [key: string]: string };\n\nexport interface FormRow {\n readonly data: R;\n readonly status: FormRowStatus;\n readonly errors?: { [key: string]: string };\n setData(data: R): void;\n setErrors(errors?: { [key: string]: string }): void;\n remove(force?: boolean): void;\n}\n\n/** Blotter Data Item created/managed by useFormTable */\nexport type FormRowGridItem = R & {\n formRow: {\n id?: string;\n status: FormRow['status'];\n errors?: FormRowErrors;\n };\n};\n","import type { RefObject } from 'react';\nimport type { BlotterTableFilter } from '../../BlotterTable';\nimport type { AutocompleteGroupSorterFunc, UseAutocompleteProps } from '../../Form/Autocomplete/types';\nimport type { AutocompleteDropdownProps } from '../../Form/AutocompleteDropdown/types';\nimport type { IconName } from '../../Icons';\n\nexport type FilterClauseControl = 'multi-select' | 'single-select' | 'text';\n\nexport type FilterBuilderSide = 'lhs' | 'rhs';\n\nexport enum FilterClauseType {\n INCLUSIVE = 'inclusive',\n EXCLUSIVE = 'exclusive',\n}\n\nexport interface UseFilterBuilderProps {\n /** Initial filter clauses, bootstraps the component */\n initialFilterClauses: InitialFilterClause[];\n /** The \"metadata\" needed to give users properties to create clauses on */\n properties: FilterableProperty[];\n /* Filters that are always applied, not visible in the UI and cannot be changed */\n permanentFilters?: BlotterTableFilter | undefined;\n /** Handler for when filters change */\n onFilterClausesChanged?(\n filterClausesByPropertyKey: Map,\n propertiesByKey: Map\n ): void;\n}\n\nexport type UseFilterBuilderOutput = Pick & {\n /** The currently active filter clauses */\n filterClauses: FilterClause[];\n /** The current active filter clauses by property key */\n filterClausesByPropertyKey: Map;\n addFilterClause: (property: string) => void;\n removeFilterClause: (property: string) => void;\n removeAllFilterClauses: () => void;\n replaceFilterClause: (oldProperty: string, newProperty: string) => void;\n resetFilterClauses: (filterClauses?: FilterClause[]) => void;\n setFilterClauseSelections: (property: string, newSelections: string[]) => void;\n /** The list of filterable properties the user can build filter clauses using */\n propertiesList: FilterableProperty[];\n /** The list of filterable properties by property key which the user can build filter clauses using */\n propertiesByKey: Map;\n addAndOpenClause: (property: string | undefined, side?: FilterBuilderSide, value?: string | string[]) => void;\n};\n\nexport interface FilterablePropertyCommon {\n /** The key of the property on the entity. For example \"Symbol\", or \"User\" */\n key: TKey;\n /** Display label for the key */\n label: string;\n /** Field override for the property */\n field?: string;\n /** A string to be used in the component */\n icon: IconName;\n /** Specify what type of control you would like to set the selections for this clause */\n control?: FilterClauseControl;\n /** Set to false to always have this FilterableProperty present in the FilterBuilder */\n alwaysPresent?: boolean;\n}\n\nexport interface FilterableSelectProperty extends FilterablePropertyCommon {\n control?: 'multi-select' | 'single-select';\n\n /** An array of strings representing the selectable options for this property */\n options: TData[];\n /** A function allowing the component to get a display version of the option */\n getOptionLabel: (option: TData) => string;\n /** Get a description to show below the label of an option in the dropdown */\n getOptionDescription?: (option: TData) => string;\n /** If provided, will group the options in the dropdown by this property */\n getOptionGroup?: (option: TData) => string;\n /** Specify sorting hierarchy on options */\n optionSorter?: (a: TData, b: TData) => number;\n /** Optional group sorter to sort the groups which are being shown in the property's selector dropdown */\n groupSorter?: AutocompleteGroupSorterFunc;\n /** Customize the dropdown for selecting the RHS options of this property */\n dropdownOptions?: Pick, 'dropdownWidth' | 'maxHeight' | 'groupMaxHeight'>;\n /**\n * Filter out unsupported selections on init. Defaults to true.\n * If your array of options is async, this should probably be set to false.\n */\n clearUnsupportedSelectionsOnInit?: boolean;\n /** Matching threshold */\n matchThreshold?: UseAutocompleteProps['matchThreshold'];\n /** Only relevant for multi-select controls. Whether or not the user should be able to select all selectable options. */\n allowSelectAll?: boolean;\n}\n\nexport interface FilterableTextProperty extends FilterablePropertyCommon {\n control: 'text';\n}\n\nexport type FilterableProperty =\n | FilterableSelectProperty\n | FilterableTextProperty;\n\nexport interface FilterClause {\n /** The key of the property on the entity. For example \"Symbol\" or \"User\" */\n key: T;\n /** The type of the filter clause, for example \"inclusive\" or \"exclusive\" */\n type: FilterClauseType;\n /** List of selections. Selections are made from the \"options\" array in the FilterableProperty. */\n selections: string[];\n}\n\nexport interface InitialFilterClause extends Omit {\n /** List of selections. Selections are made from the \"options\" array in the FilterableProperty. */\n selections?: FilterClause['selections'];\n}\n\nexport interface FilterBuilderRefs {\n addButtonRef: RefObject;\n refsByPropertyKey: Map;\n}\n\nexport interface PropertyRefs {\n property: RefObject;\n empty: RefObject;\n selections: Map>;\n tail: RefObject;\n}\n\nexport interface UseFilterBuilderRefsOutput {\n refs: FilterBuilderRefs;\n updateSelectionRefs: (property: string, selections: TData[]) => void;\n addPropertyRefs: (property: string) => void;\n removePropertyRefs: (property: string) => void;\n removeAllPropertyRefs: () => void;\n resetAllPropertyRefs: (filterClauses?: FilterClause[]) => void;\n openClause: (property: string | undefined, side?: FilterBuilderSide, value?: string) => void;\n}\n","import { values, without } from 'lodash';\nimport { LoanQuoteStatusEnum, OrdStatusEnum, QuoteStatusEnum } from '../../../types/types';\nimport { OrderStatusText } from '../../Status/types';\n\nexport enum Filters {\n NewRequest = 'Request Sent',\n Review = 'Review',\n Open = 'Open',\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n OpenLoan = 'Open',\n Filled = 'Filled',\n Canceled = 'Canceled',\n Rejected = 'Rejected',\n}\n\nexport const LOAN_QUOTE_STATUS_MAPPING = {\n [Filters.NewRequest]: [LoanQuoteStatusEnum.PendingNew],\n [Filters.Review]: [LoanQuoteStatusEnum.LenderFirm, LoanQuoteStatusEnum.BorrowerFirm],\n [Filters.OpenLoan]: [LoanQuoteStatusEnum.Filled],\n [Filters.Canceled]: [LoanQuoteStatusEnum.Canceled],\n [Filters.Rejected]: [LoanQuoteStatusEnum.Rejected],\n};\n\nexport const QUOTE_STATUS_MAPPING = {\n 'All Open': [\n QuoteStatusEnum.Open,\n QuoteStatusEnum.PendingNew,\n QuoteStatusEnum.PendingFill,\n QuoteStatusEnum.PendingCancel,\n ],\n 'All Filled': [QuoteStatusEnum.Filled, QuoteStatusEnum.PendingFix],\n 'All Canceled': [QuoteStatusEnum.Canceled],\n 'All Rejected': [QuoteStatusEnum.Rejected],\n};\n\nexport const ORD_STATUS_MAPPING = {\n 'All Open': [\n OrdStatusEnum.New,\n OrdStatusEnum.PendingNew,\n OrdStatusEnum.PendingReplace,\n OrdStatusEnum.PendingCancel,\n OrdStatusEnum.PartiallyFilled,\n ],\n 'All Filled': [OrdStatusEnum.Filled, OrdStatusEnum.PendingFix, OrdStatusEnum.DoneForDay],\n 'All Canceled': [OrdStatusEnum.Canceled],\n 'All Rejected': [OrdStatusEnum.Rejected],\n};\nconst incompleteOrderStatuses = without(\n values(OrdStatusEnum),\n OrdStatusEnum.Canceled,\n OrdStatusEnum.Filled,\n OrdStatusEnum.Rejected,\n OrdStatusEnum.DoneForDay\n) as Exclude<\n OrdStatusEnum,\n OrdStatusEnum.Canceled | OrdStatusEnum.Filled | OrdStatusEnum.Rejected | OrdStatusEnum.DoneForDay\n>[];\nexport const ORD_TEXT_TO_STATUS_MAPPING: Record = {\n [OrderStatusText.Open]: [\n OrdStatusEnum.New,\n OrdStatusEnum.PendingNew,\n OrdStatusEnum.PartiallyFilled,\n OrdStatusEnum.Holding,\n OrdStatusEnum.Replaced,\n ],\n [OrderStatusText.Filled]: [OrdStatusEnum.Filled, OrdStatusEnum.DoneForDay],\n [OrderStatusText.Canceled]: [OrdStatusEnum.Canceled, OrdStatusEnum.DoneForDay],\n [OrderStatusText.FilledAndCanceled]: [OrdStatusEnum.Canceled, OrdStatusEnum.DoneForDay],\n [OrderStatusText.Rejected]: [OrdStatusEnum.Rejected],\n [OrderStatusText.Paused]: incompleteOrderStatuses,\n [OrderStatusText.SystemPaused]: incompleteOrderStatuses,\n [OrderStatusText.Staged]: incompleteOrderStatuses,\n [OrderStatusText.Waiting]: incompleteOrderStatuses,\n [OrderStatusText.PendingCancel]: [OrdStatusEnum.PendingCancel],\n [OrderStatusText.PendingReplace]: [OrdStatusEnum.PendingReplace],\n [OrderStatusText.PendingFix]: [OrdStatusEnum.PendingFix],\n};\n","import type { DefaultTheme } from 'styled-components';\nimport type { KeysBeginningWith } from '../../utils/types';\nimport type { BoxProps } from '../Core';\n\nexport enum TableSize {\n Small = 'Small',\n Default = 'Default',\n Large = 'Large',\n}\n\nexport interface TableProps extends BoxProps {\n zebra?: boolean;\n size?: TableSize;\n bordered?: boolean;\n rowHeight?: string;\n insetPadding?: KeysBeginningWith;\n}\n\nexport type ColProps = { background?: string };\n","export enum MarketColorDotVariant {\n Default = 'DEFAULT',\n Bordered = 'BORDERED',\n}\n\nexport type MarketColorDotProps = {\n market: string;\n variant?: MarketColorDotVariant;\n borderColor?: string;\n};\n","import { useTheme, type DefaultTheme } from 'styled-components';\nimport type { TermSheetRecipient } from '../../types/LendingRelationship';\n\nimport { LoanSides } from '../../types/loanTypes';\nimport { ESignRecipientStatusEnum, LoanQuoteStatusEnum } from '../../types/types';\nimport { Icon, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { Wrapper } from './styles';\n\nexport enum LoanQuoteStatusText {\n Review = 'Review',\n Canceled = 'Canceled',\n Rejected = 'Rejected',\n Error = 'Error',\n RequestSent = 'Request Sent',\n FirmRequestSent = 'Firm Request Sent',\n NewRequest = 'New Request',\n NewFirmRequest = 'New Firm Request',\n NeedToSign = 'Need to Sign',\n CptyToSign = 'Cpty to Sign',\n Accepted = 'Accepted',\n GeneratingTS = 'Generating TS',\n OfferSent = 'Offer Sent',\n CounterSent = 'Counter Sent',\n AllSigned = 'All Signed',\n Expired = 'Expired',\n}\n\nconst getLoanStatusColor = (statusText: LoanQuoteStatusText | undefined, theme: DefaultTheme) => {\n const { colorTextPositive, colorTextPrimary, colorTextWarning } = theme;\n switch (statusText) {\n case LoanQuoteStatusText.NewRequest:\n case LoanQuoteStatusText.NewFirmRequest:\n case LoanQuoteStatusText.RequestSent:\n case LoanQuoteStatusText.FirmRequestSent:\n return colorTextPositive;\n case LoanQuoteStatusText.Review:\n case LoanQuoteStatusText.OfferSent:\n case LoanQuoteStatusText.CounterSent:\n case LoanQuoteStatusText.Accepted:\n case LoanQuoteStatusText.NeedToSign:\n case LoanQuoteStatusText.GeneratingTS:\n case LoanQuoteStatusText.CptyToSign:\n return colorTextPrimary;\n case LoanQuoteStatusText.Canceled:\n case LoanQuoteStatusText.Rejected:\n case LoanQuoteStatusText.Error:\n case LoanQuoteStatusText.Expired:\n return colorTextWarning;\n default:\n return colorTextPrimary;\n }\n};\n\nexport const getLoanQuoteStatusText = ({\n status,\n side,\n revision,\n recipients,\n participant,\n}: {\n status: LoanQuoteStatusEnum;\n side: LoanSides;\n revision: number;\n recipients: TermSheetRecipient[] | undefined;\n participant: string;\n}) => {\n const borrowLoanQuoteStatusTextMapping: { readonly [key in LoanQuoteStatusEnum]: string } = {\n [LoanQuoteStatusEnum.PendingNew]: LoanQuoteStatusText.RequestSent,\n\n [LoanQuoteStatusEnum.LenderFirm]: LoanQuoteStatusText.Review,\n [LoanQuoteStatusEnum.BorrowerFirm]: LoanQuoteStatusText.CounterSent,\n [LoanQuoteStatusEnum.Filled]: LoanQuoteStatusText.Accepted,\n\n [LoanQuoteStatusEnum.TermSheetRequested]: LoanQuoteStatusText.GeneratingTS,\n [LoanQuoteStatusEnum.TermSheetSent]: LoanQuoteStatusText.NeedToSign,\n [LoanQuoteStatusEnum.TermSheetAllSigned]: LoanQuoteStatusText.AllSigned,\n\n [LoanQuoteStatusEnum.Canceled]: LoanQuoteStatusText.Canceled,\n [LoanQuoteStatusEnum.Rejected]: LoanQuoteStatusText.Rejected,\n [LoanQuoteStatusEnum.Error]: LoanQuoteStatusText.Error,\n [LoanQuoteStatusEnum.Expired]: LoanQuoteStatusText.Expired,\n };\n\n const lendLoanQuoteStatusTextMapping: { readonly [key in LoanQuoteStatusEnum]: string } = {\n [LoanQuoteStatusEnum.PendingNew]: LoanQuoteStatusText.NewRequest,\n\n [LoanQuoteStatusEnum.LenderFirm]: LoanQuoteStatusText.OfferSent,\n [LoanQuoteStatusEnum.BorrowerFirm]: LoanQuoteStatusText.Review,\n [LoanQuoteStatusEnum.Filled]: LoanQuoteStatusText.Accepted,\n\n [LoanQuoteStatusEnum.TermSheetRequested]: LoanQuoteStatusText.GeneratingTS,\n [LoanQuoteStatusEnum.TermSheetSent]: LoanQuoteStatusText.NeedToSign,\n [LoanQuoteStatusEnum.TermSheetAllSigned]: LoanQuoteStatusText.AllSigned,\n\n [LoanQuoteStatusEnum.Canceled]: LoanQuoteStatusText.Canceled,\n [LoanQuoteStatusEnum.Rejected]: LoanQuoteStatusText.Rejected,\n [LoanQuoteStatusEnum.Error]: LoanQuoteStatusText.Error,\n [LoanQuoteStatusEnum.Expired]: LoanQuoteStatusText.Expired,\n };\n\n const signer = recipients?.find(r => r.Participant === participant);\n\n let loanQuoteStatusText: string;\n if (signer?.Status === ESignRecipientStatusEnum.Signed && status === LoanQuoteStatusEnum.TermSheetSent) {\n return LoanQuoteStatusText.CptyToSign;\n } else if (side === LoanSides.Borrow) {\n if (revision === 0 && status === LoanQuoteStatusEnum.BorrowerFirm) {\n return LoanQuoteStatusText.FirmRequestSent;\n }\n loanQuoteStatusText = borrowLoanQuoteStatusTextMapping[status];\n } else {\n if (revision === 0 && status === LoanQuoteStatusEnum.BorrowerFirm) {\n return LoanQuoteStatusText.NewFirmRequest;\n }\n loanQuoteStatusText = lendLoanQuoteStatusTextMapping[status];\n }\n\n if (loanQuoteStatusText == null) {\n // TODO logger.warn...\n return LoanQuoteStatusText.Review;\n }\n\n return loanQuoteStatusText;\n};\n\nconst StatusIcon = ({ loanQuoteStatusText, ...props }) => {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const color = getLoanStatusColor(loanQuoteStatusText, useTheme() ?? theme);\n return ;\n};\n\ntype LoanQuoteStatusProps = {\n status: LoanQuoteStatusEnum;\n side: LoanSides;\n revision: number;\n recipients: TermSheetRecipient[] | undefined;\n participant: string;\n align?: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n text?: string;\n theme?: DefaultTheme;\n showLabel?: boolean;\n};\n\nexport function LoanQuoteStatus({\n status,\n side,\n align = 'right',\n showLabel,\n text,\n revision,\n participant,\n recipients,\n ...props\n}: LoanQuoteStatusProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const loanQuoteStatusText = getLoanQuoteStatusText({ status: status, side, revision, participant, recipients });\n\n return (\n \n {!showLabel ? loanQuoteStatusText : null}\n \n \n \n \n );\n}\n","import { useTheme, type DefaultTheme } from 'styled-components';\n\nimport type { LoanTransaction } from '../../types/LoanTransaction';\nimport { LoanSides } from '../../types/loanTypes';\nimport { LoanStatusEnum, LoanTransactionStatusEnum } from '../../types/types';\nimport { Icon, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { Wrapper } from './styles';\n\nexport enum LoanStatusText {\n Open = 'Open',\n Closed = 'Closed',\n Error = 'Error',\n TransferDue = 'Transfer Due',\n CptyTransferDue = 'Cpty Transfer Due',\n}\n\nconst getLoanStatusColor = (statusText: LoanStatusText | undefined, theme: DefaultTheme) => {\n const { colorTextPositive, colors, colorTextPrimary, colorTextWarning } = theme;\n switch (statusText) {\n case LoanStatusText.Open:\n return colorTextPositive;\n case LoanStatusText.TransferDue:\n case LoanStatusText.CptyTransferDue:\n return colors.blue.lighten;\n case LoanStatusText.Error:\n return colorTextWarning;\n default:\n return colorTextPrimary;\n }\n};\n\nexport const getLoanStatusText = ({\n status,\n side,\n transactions,\n participant,\n}: {\n participant: string;\n status: LoanStatusEnum;\n side?: LoanSides;\n transactions?: LoanTransaction[];\n}) => {\n const borrowLoanStatusTextMapping: { readonly [key in LoanStatusEnum]: string } = {\n [LoanStatusEnum.Open]: LoanStatusText.Open,\n [LoanStatusEnum.Closed]: LoanStatusText.Closed,\n [LoanStatusEnum.Error]: LoanStatusText.Error,\n };\n\n const lendLoanStatusTextMapping: { readonly [key in LoanStatusEnum]: string } = {\n [LoanStatusEnum.Open]: LoanStatusText.Open,\n [LoanStatusEnum.Closed]: LoanStatusText.Closed,\n [LoanStatusEnum.Error]: LoanStatusText.Error,\n };\n\n const activeTransactions = transactions?.filter(t => t.Status === LoanTransactionStatusEnum.New);\n let loanStatusText: string;\n\n if (activeTransactions?.find(t => t.FromParticipant === participant)) {\n loanStatusText = LoanStatusText.TransferDue;\n } else if (activeTransactions?.find(t => t.ToParticipant === participant)) {\n loanStatusText = LoanStatusText.CptyTransferDue;\n } else if (side === LoanSides.Borrow) {\n loanStatusText = borrowLoanStatusTextMapping[status];\n } else if (side === LoanSides.Lend) {\n loanStatusText = lendLoanStatusTextMapping[status];\n } else {\n return LoanStatusText.Error;\n }\n\n return loanStatusText;\n};\n\nconst getIcon = (status: LoanStatusText) => {\n switch (status) {\n case LoanStatusText.Open:\n return IconName.Circle;\n case LoanStatusText.TransferDue:\n case LoanStatusText.CptyTransferDue:\n return IconName.ArrowLeftRight;\n case LoanStatusText.Closed:\n return IconName.CheckCircleSolid;\n case LoanStatusText.Error:\n return IconName.ExclamationCircleSolid;\n }\n};\n\nconst StatusIcon = ({ loanStatusText, ...props }) => {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const icon = getIcon(loanStatusText);\n const color = getLoanStatusColor(loanStatusText, useTheme() ?? theme);\n return ;\n};\n\ntype LoanStatusProps = {\n status: LoanStatusEnum;\n side?: LoanSides;\n transactions?: LoanTransaction[];\n align?: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n text?: string;\n theme?: DefaultTheme;\n showLabel?: boolean;\n participant: string;\n};\n\nexport function LoanStatus({\n status,\n side,\n align = 'right',\n showLabel,\n text,\n transactions,\n participant,\n ...props\n}: LoanStatusProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const loanStatusText = getLoanStatusText({ status, side, transactions, participant });\n\n return (\n \n {!showLabel ? loanStatusText : null}\n \n \n \n \n );\n}\n","import { useTheme, type DefaultTheme } from 'styled-components';\n\nimport type { LoanSides } from '../../types/loanTypes';\nimport { LoanTransactionStatusEnum } from '../../types/types';\nimport { Icon, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { Wrapper } from './styles';\n\nexport enum LoanTransactionStatusText {\n Completed = 'Completed',\n Error = 'Error',\n Canceled = 'Canceled',\n Rejected = 'Rejected',\n PendingTransfer = 'Initiate',\n CptyToTransfer = 'Cpty to Initiate',\n Processing = 'Processing',\n CptyProcessing = 'Cpty Processing',\n TransferSubmitted = 'Transfer Submitted',\n WaitingForAuth = 'Waiting for External Authorization',\n}\n\nconst getLoanTransactionStatusColor = (statusText: LoanTransactionStatusText | undefined, theme: DefaultTheme) => {\n const { colors, colorTextPositive, colorTextPrimary, colorTextWarning, colorTextDefault } = theme;\n switch (statusText) {\n case LoanTransactionStatusText.Completed:\n return colorTextPositive;\n case LoanTransactionStatusText.PendingTransfer:\n case LoanTransactionStatusText.Processing:\n case LoanTransactionStatusText.CptyProcessing:\n case LoanTransactionStatusText.CptyToTransfer:\n case LoanTransactionStatusText.TransferSubmitted:\n return colors.blue.lighten;\n case LoanTransactionStatusText.Rejected:\n return colorTextDefault;\n case LoanTransactionStatusText.Error:\n return colorTextWarning;\n default:\n return colorTextPrimary;\n }\n};\n\nexport const getLoanTransactionStatusText = ({\n status,\n direction,\n}: {\n status: LoanTransactionStatusEnum;\n direction: Direction;\n}) => {\n const inboundLoanTransactionStatusTextMapping: { readonly [key in LoanTransactionStatusEnum]: string } = {\n [LoanTransactionStatusEnum.RateRequestSent]: LoanTransactionStatusText.CptyToTransfer,\n [LoanTransactionStatusEnum.RateRequestAckd]: LoanTransactionStatusText.CptyToTransfer,\n [LoanTransactionStatusEnum.New]: LoanTransactionStatusText.CptyToTransfer,\n [LoanTransactionStatusEnum.TransferPending]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.TransferProcessing]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.TransferSubmitted]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.Completed]: LoanTransactionStatusText.Completed,\n [LoanTransactionStatusEnum.Canceled]: LoanTransactionStatusText.Canceled,\n [LoanTransactionStatusEnum.Rejected]: LoanTransactionStatusText.Rejected,\n [LoanTransactionStatusEnum.Error]: LoanTransactionStatusText.Error,\n [LoanTransactionStatusEnum.TransferWaitingForExternalAuth]: LoanTransactionStatusText.WaitingForAuth,\n };\n\n const outboundLoanTransactionStatusTextMapping: { readonly [key in LoanTransactionStatusEnum]: string } = {\n [LoanTransactionStatusEnum.RateRequestSent]: LoanTransactionStatusText.PendingTransfer,\n [LoanTransactionStatusEnum.RateRequestAckd]: LoanTransactionStatusText.PendingTransfer,\n [LoanTransactionStatusEnum.New]: LoanTransactionStatusText.PendingTransfer,\n [LoanTransactionStatusEnum.TransferPending]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.TransferProcessing]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.TransferSubmitted]: LoanTransactionStatusText.Processing,\n [LoanTransactionStatusEnum.Completed]: LoanTransactionStatusText.Completed,\n [LoanTransactionStatusEnum.Canceled]: LoanTransactionStatusText.Canceled,\n [LoanTransactionStatusEnum.Rejected]: LoanTransactionStatusText.Rejected,\n [LoanTransactionStatusEnum.Error]: LoanTransactionStatusText.Error,\n [LoanTransactionStatusEnum.TransferWaitingForExternalAuth]: LoanTransactionStatusText.WaitingForAuth,\n };\n\n let loanTransactionStatusText: string;\n if (direction === 'Inbound') {\n loanTransactionStatusText = inboundLoanTransactionStatusTextMapping[status];\n } else {\n loanTransactionStatusText = outboundLoanTransactionStatusTextMapping[status];\n }\n\n if (loanTransactionStatusText == null) {\n return LoanTransactionStatusText.Error;\n }\n\n return loanTransactionStatusText;\n};\n\nconst getIcon = (status: LoanTransactionStatusEnum) => {\n switch (status) {\n case LoanTransactionStatusEnum.RateRequestSent:\n case LoanTransactionStatusEnum.RateRequestAckd:\n case LoanTransactionStatusEnum.New:\n case LoanTransactionStatusEnum.TransferPending:\n case LoanTransactionStatusEnum.TransferProcessing:\n case LoanTransactionStatusEnum.TransferSubmitted:\n return IconName.Clock;\n case LoanTransactionStatusEnum.Completed:\n return IconName.CheckCircleSolid;\n case LoanTransactionStatusEnum.Canceled:\n case LoanTransactionStatusEnum.Rejected:\n return IconName.CloseCircleSolid;\n case LoanTransactionStatusEnum.Error:\n return IconName.ExclamationCircleSolid;\n case LoanTransactionStatusEnum.TransferWaitingForExternalAuth:\n return IconName.KeyClock;\n }\n};\n\nconst StatusIcon = ({ loanTransactionStatusText, status, ...props }) => {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const color = getLoanTransactionStatusColor(loanTransactionStatusText, useTheme() ?? theme);\n const icon = getIcon(status);\n if (!icon) {\n return null;\n }\n return ;\n};\n\ntype Direction = 'Inbound' | 'Outbound';\ntype LoanTransactionStatusProps = {\n status: LoanTransactionStatusEnum;\n side?: LoanSides;\n direction: Direction;\n align?: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n text?: string;\n theme?: DefaultTheme;\n showLabel?: boolean;\n};\n\nexport function LoanTransactionStatus({\n status,\n side,\n align = 'right',\n iconPlacement = 'left',\n showLabel,\n text,\n direction,\n ...props\n}: LoanTransactionStatusProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const loanTransactionStatusText = getLoanTransactionStatusText({ status, direction });\n\n return (\n \n {!showLabel ? loanTransactionStatusText : null}\n \n \n \n \n );\n}\n","import { useTheme, type DefaultTheme } from 'styled-components';\n\nimport { ESignRecipientStatusEnum } from '../../types/types';\nimport { Icon, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { Wrapper } from './styles';\n\nexport enum RecipientStatusText {\n CptyToSign = 'Cpty To Sign',\n NeedToSign = 'Need To Sign',\n Signed = 'Signed',\n Rejected = 'Rejected',\n Error = 'Error',\n Pending = 'Pending',\n}\n\nconst getRecipientStatusColor = (status: RecipientStatusText | undefined, theme: DefaultTheme) => {\n const { colors } = theme;\n switch (status) {\n case RecipientStatusText.Rejected:\n return colors.yellow.lighten;\n case RecipientStatusText.Error:\n return colors.red.lighten;\n case RecipientStatusText.CptyToSign:\n case RecipientStatusText.NeedToSign:\n return colors.blue.lighten;\n case RecipientStatusText.Signed:\n return colors.green.lighten;\n default:\n return colors.gray['080'];\n }\n};\n\nexport const getRecipientStatusText = (\n recipientStatus: ESignRecipientStatusEnum | undefined,\n isCounterparty: boolean\n) => {\n const orderStatusTextMapping = {\n [ESignRecipientStatusEnum.PendingSignature]: isCounterparty\n ? RecipientStatusText.CptyToSign\n : RecipientStatusText.NeedToSign,\n [ESignRecipientStatusEnum.Signed]: RecipientStatusText.Signed,\n [ESignRecipientStatusEnum.Rejected]: RecipientStatusText.Rejected,\n };\n\n const orderStatusText = recipientStatus ? orderStatusTextMapping[recipientStatus] : RecipientStatusText.Pending;\n if (orderStatusText == null) {\n // TODO logger.warn...\n return RecipientStatusText.Pending;\n }\n\n return orderStatusText;\n};\n\nconst StatusIcon = ({ recipientStatusText, theme, ...props }) => {\n const color = getRecipientStatusColor(recipientStatusText, useTheme() ?? theme);\n switch (recipientStatusText) {\n case RecipientStatusText.Signed:\n return ;\n case RecipientStatusText.Rejected:\n return ;\n case RecipientStatusText.Error:\n return ;\n case RecipientStatusText.NeedToSign:\n default:\n return ;\n }\n};\n\ntype RecipientStatusProps = {\n status?: ESignRecipientStatusEnum;\n isCounterparty: boolean;\n align?: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n text?: string;\n theme?: DefaultTheme;\n showLabel?: boolean;\n};\n\nexport function RecipientStatus({\n status,\n align = 'right',\n showLabel,\n text,\n isCounterparty,\n ...props\n}: RecipientStatusProps) {\n const recipientStatusText = getRecipientStatusText(status, isCounterparty);\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n return (\n \n {!showLabel ? recipientStatusText : null}\n \n \n \n \n );\n}\n","import { addDays, addMinutes, differenceInSeconds, isPast, isValid, startOfMinute } from 'date-fns';\nimport type { FocusEvent } from 'react';\nimport { memo, useCallback, useEffect, useMemo, useRef } from 'react';\nimport type { DayModifiers, DayPickerProps } from 'react-day-picker';\nimport { useTheme } from 'styled-components';\nimport { FormControlSizes, type FormControlProps } from '../Form/types';\n\nimport { isEqual } from 'lodash';\nimport { useElementId, useNamedState } from '../../hooks';\nimport { formattedDate, isValidDateInput, logger, parseDate } from '../../utils';\nimport { Button, ButtonGroup, ButtonVariants, IconButton, ToggleButton } from '../Button';\nimport { Flex, HStack, VStack } from '../Core';\nimport { DEFAULT_DATE_PICKER_EOD } from '../DateTimePicker';\nimport { DayPicker } from '../DayPicker';\nimport { Input } from '../Form';\nimport { Icon, IconName } from '../Icons';\nimport { Popover, usePopoverState } from '../Popover';\nimport { TimePicker } from '../TimePicker';\nimport { TimePickerPrecision } from '../TimePicker/TimePickerPrecision';\nimport { DEFAULT_DURATION_SHORTCUTS, DurationPicker } from './DurationPicker';\nimport {\n calcDateFromDuration,\n canParseAsDuration,\n emptyDuration,\n formatDuration,\n isDuration,\n parseDuration,\n type Duration,\n} from './duration';\nimport {\n DateDescription,\n DateTimeDurationPickerWrapper,\n DateTimeWrapper,\n DurationDescription,\n InputOverlay,\n PopoverWrapper,\n TimePickerWrapper,\n} from './styles';\n\nexport { DurationPicker } from './DurationPicker';\nexport {\n calcDateFromDuration,\n canParseAsDuration,\n emptyDuration,\n formatDuration,\n formatToBackendDuration,\n isDuration,\n isEmptyDuration,\n parseDuration,\n} from './duration';\nexport type { Duration } from './duration';\n\nexport enum DateTimeDurationPickerValueType {\n DateTime = 'DateTime',\n Duration = 'Duration',\n}\n\nexport function isDateTimeDurationPickerValue(value: any): value is DateTimeDurationPickerValue {\n return (\n value?.type === DateTimeDurationPickerValueType.DateTime || value?.type === DateTimeDurationPickerValueType.Duration\n );\n}\n\nexport type DateTimeDurationPickerValue =\n | {\n type: DateTimeDurationPickerValueType.DateTime;\n value: Date | null;\n }\n | {\n type: DateTimeDurationPickerValueType.Duration;\n value: Duration;\n };\n\nexport interface DateTimeDurationPickerProps {\n /** Current value of the date / time picker */\n value: Duration | Date | null;\n /** Change event handler */\n onChange: (value: DateTimeDurationPickerValue) => void;\n /** Show the shortcuts section (5m/10m/...)? */\n showShortcuts?: boolean;\n /** Shortcuts to show\n *\n * @default {@link DEFAULT_SHORTCUTS}\n */\n shortcuts?: { [key: string]: string };\n /** Label to use on the Date/Time toggle button\n *\n * @default Date/Time\n */\n dateTimeLabel?: string;\n /** Label to use on the Duration toggle button\n *\n * @default Duration\n */\n durationLabel?: string;\n calcDurationRelativeTo?: Date | null;\n /** Whether to show calculated duration as date */\n showCalculatedDuration?: boolean;\n disabled?: boolean;\n /** Time to use as End-Of-Day\n *\n * @default {@link DEFAULT_DATE_PICKER_EOD}\n */\n customEOD?: { hours: number; minutes: number };\n /** Portalize component: @default: true */\n portalize?: boolean;\n initialEntryMode?: DateTimeDurationPickerValueType;\n\n entryModes?: DateTimeDurationPickerValueType[];\n dataTestId?: string;\n}\n\ntype ForwardedProps = Omit, keyof DateTimeDurationPickerProps | 'prefix'>;\n\n/**\n * Date / Time Picker component\n */\nexport const DateTimeDurationPicker = memo(function DateTimeDurationPicker({\n value,\n shortcuts = DEFAULT_DURATION_SHORTCUTS,\n showShortcuts = true,\n onChange,\n dateTimeLabel = 'Date/Time',\n durationLabel = 'Duration',\n customEOD = DEFAULT_DATE_PICKER_EOD,\n calcDurationRelativeTo,\n showCalculatedDuration = true,\n disabled,\n portalize = true,\n size,\n initialEntryMode,\n dataTestId,\n entryModes = [DateTimeDurationPickerValueType.DateTime, DateTimeDurationPickerValueType.Duration],\n id,\n ...props\n}: DateTimeDurationPickerProps & ForwardedProps) {\n const theme = useTheme();\n const idGenerator = useElementId(id ?? 'DateTimeDurationPicker');\n const [isFocused, setIsFocused] = useNamedState(false, 'isFocused');\n const [entryMode, setEntryMode] = useNamedState(\n initialEntryMode && !value && entryModes.includes(initialEntryMode)\n ? initialEntryMode\n : isDuration(value)\n ? DateTimeDurationPickerValueType.Duration\n : DateTimeDurationPickerValueType.DateTime,\n 'entryMode'\n );\n const [inputValue, setInputValue] = useNamedState('', 'inputValue');\n const [internalTouched, setInternalTouched] = useNamedState(false, 'internalTouched');\n const [selectedDuration, _setSelectedDuration] = useNamedState(\n isDuration(value) ? value : emptyDuration,\n 'selectedDuration'\n );\n const [selectedDate, _setSelectedDate] = useNamedState(\n isDuration(value) || !isValidDateInput(value) || value === null ? null : parseDate(value),\n 'selectedDate'\n );\n const inputRef = useRef(null);\n const popoverRef = useRef(null);\n const [selectedTime, setSelectedTime] = useNamedState(\n selectedDate ? parseDate(selectedDate) : parseDate(),\n 'selectedTime'\n );\n const isFocusOutsideComponent = useCallback(\n (newTarget: EventTarget | null) => {\n if (inputRef.current?.contains(newTarget as Node | null)) {\n return false;\n }\n if (popoverRef.current?.contains(newTarget as Node | null)) {\n return false;\n }\n return true;\n },\n [inputRef, popoverRef]\n );\n const popover = usePopoverState({\n trigger: '',\n placement: 'bottom-end',\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: ['top', 'bottom'],\n },\n },\n ],\n delay: undefined,\n usePortal: portalize,\n onClickOutside: e => {\n if (isFocusOutsideComponent(e.target)) {\n if (internalTouched) {\n // if the user has change the value at all, then we'll act as if they clicked \"Set\" when they blur the control\n handleClickSet();\n } else {\n // Otherwise, if they made no changes, act as if they click cancel\n handleClickCancel();\n }\n }\n },\n onClose: () => {},\n });\n const { open: openPopup, close: closePopup } = popover;\n\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n if (!isFocused) {\n if (entryMode === DateTimeDurationPickerValueType.DateTime) {\n let newSelectedTime = selectedDate ? parseDate(selectedDate) : parseDate();\n if (!selectedDate) {\n // if we don't have a value yet, default the time to the start of the next minute\n newSelectedTime = addMinutes(startOfMinute(newSelectedTime), 1);\n if (differenceInSeconds(newSelectedTime, parseDate()) < 10) {\n // ensure our default time is at least 10 seconds from now\n newSelectedTime = addMinutes(newSelectedTime, 1);\n }\n }\n setSelectedTime(newSelectedTime);\n }\n }\n\n setIsFocused(true);\n openPopup();\n },\n [entryMode, isFocused, openPopup, selectedDate, setSelectedTime, setIsFocused]\n );\n\n useEffect(() => {\n if (!isFocused) {\n if (isDuration(value)) {\n setInputValue(formatDuration(value));\n } else {\n setInputValue(value && isValidDateInput(value) ? formattedDate(value) : '');\n }\n _setSelectedDuration(isDuration(value) ? value : emptyDuration);\n _setSelectedDate(isDuration(value) || !isValidDateInput(value) || value === null ? null : parseDate(value));\n setInternalTouched(false);\n }\n }, [value, isFocused, setInputValue, _setSelectedDuration, _setSelectedDate, setInternalTouched]);\n\n const setDateTimeEntryMode = useCallback(() => {\n setEntryMode(DateTimeDurationPickerValueType.DateTime);\n setInputValue(isValidDateInput(selectedTime) ? formattedDate(selectedTime) : '');\n }, [selectedTime, setEntryMode, setInputValue]);\n const setDurationEntryMode = useCallback(() => {\n setEntryMode(DateTimeDurationPickerValueType.Duration);\n setInputValue(formatDuration(selectedDuration));\n }, [selectedDuration, setEntryMode, setInputValue]);\n\n const handleDurationChange = useCallback(\n (newDuration: Duration) => {\n _setSelectedDuration(newDuration);\n setInputValue(formatDuration(newDuration));\n setInternalTouched(true);\n },\n [_setSelectedDuration, setInputValue, setInternalTouched]\n );\n\n const handleDateChange = useCallback(\n (newDate: Date | null) => {\n newDate = isValidDateInput(newDate) ? newDate : null;\n _setSelectedDate(newDate);\n setSelectedTime(newDate ?? selectedTime);\n setInputValue(formattedDate(newDate ?? selectedTime));\n setInternalTouched(true);\n },\n [_setSelectedDate, selectedTime, setInputValue, setInternalTouched, setSelectedTime]\n );\n\n const setValueFromString = useCallback(\n (newValue: string) => {\n setInternalTouched(true);\n if (\n canParseAsDuration(newValue) ||\n (!isValid(parseDate(newValue)) && entryMode === DateTimeDurationPickerValueType.Duration)\n ) {\n const newDuration = parseDuration(newValue);\n _setSelectedDuration(newDuration);\n setEntryMode(DateTimeDurationPickerValueType.Duration);\n return { date: null, duration: newDuration };\n } else {\n setEntryMode(DateTimeDurationPickerValueType.DateTime);\n if (!newValue) {\n _setSelectedDate(null);\n return { date: null, duration: null };\n } else {\n const newDate = parseDate(newValue);\n if (isValidDateInput(newDate)) {\n _setSelectedDate(newDate);\n setSelectedTime(newDate);\n }\n return { date: newDate, duration: null };\n }\n }\n },\n [setInternalTouched, entryMode, _setSelectedDuration, setEntryMode, _setSelectedDate, setSelectedTime]\n );\n const handleInputTextBoxChange: React.ChangeEventHandler = useCallback(\n e => {\n setValueFromString(e.target.value);\n setInputValue(e.target.value);\n setInternalTouched(true);\n },\n [setInputValue, setInternalTouched, setValueFromString]\n );\n\n const handleClickCancel = useCallback(() => {\n if (isDuration(value)) {\n setInputValue(formatDuration(value));\n } else {\n setInputValue(value ? formattedDate(value) : '');\n }\n setIsFocused(false);\n closePopup();\n }, [value, closePopup, setInputValue, setIsFocused]);\n\n const maybeEmitChange = useCallback(\n (newEntryMode: DateTimeDurationPickerValueType, newDate: Date | null, newDuration: Duration | null) => {\n if (newEntryMode === DateTimeDurationPickerValueType.Duration) {\n if (!isEqual(newDuration, value)) {\n onChange({ type: DateTimeDurationPickerValueType.Duration, value: newDuration ?? emptyDuration });\n }\n } else if (!isEqual(newDate, value)) {\n onChange({ type: DateTimeDurationPickerValueType.DateTime, value: newDate });\n }\n },\n [onChange, value]\n );\n\n const clearValue = useCallback(() => {\n setInternalTouched(true);\n const { date: newDate, duration: newDuration } = setValueFromString('');\n setInputValue('');\n maybeEmitChange(entryMode, newDate, newDuration);\n closePopup();\n }, [setInternalTouched, setValueFromString, setInputValue, maybeEmitChange, entryMode, closePopup]);\n\n const handleSelectDay = useCallback(\n (newDate: Date, modifiers: DayModifiers) => {\n const { disabled } = modifiers;\n setInternalTouched(true);\n if (disabled) {\n // Day is disabled, do nothing\n return;\n }\n // Note that the DayPicker returns a date with time = 12:00:00.000\n if (selectedDate === null) {\n newDate.setHours(customEOD.hours);\n newDate.setMinutes(customEOD.minutes);\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n } else {\n newDate.setHours(selectedTime.getHours());\n newDate.setMinutes(selectedTime.getMinutes());\n newDate.setSeconds(selectedTime.getSeconds());\n newDate.setMilliseconds(selectedTime.getMilliseconds());\n }\n if (isValidDateInput(newDate)) {\n setInputValue(formattedDate(newDate));\n } else {\n logger.error(new Error('Received invalid date in date/time/duration picker'), {\n extra: {\n newDate,\n customEOD,\n },\n });\n }\n handleDateChange(newDate);\n },\n [setInternalTouched, selectedDate, handleDateChange, customEOD, selectedTime, setInputValue]\n ) satisfies DayPickerProps['onDayClick'];\n const handleTimeChange = useCallback(\n (newDate: Date) => {\n setInternalTouched(true);\n handleDateChange(newDate);\n },\n [handleDateChange, setInternalTouched]\n );\n\n const setTimeToEOD = useCallback(() => {\n setInternalTouched(true);\n let newDate = parseDate(selectedDate);\n newDate.setHours(customEOD.hours);\n newDate.setMinutes(customEOD.minutes);\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n if (isPast(newDate)) {\n newDate = addDays(newDate, 1);\n }\n\n handleDateChange(newDate);\n }, [setInternalTouched, selectedDate, customEOD.hours, customEOD.minutes, handleDateChange]);\n\n const closeAndSetDuration = useCallback(\n (newDuration: Duration) => {\n handleDurationChange(newDuration);\n maybeEmitChange(entryMode, selectedDate, newDuration);\n setIsFocused(false);\n closePopup();\n },\n [entryMode, selectedDate, maybeEmitChange, closePopup, handleDurationChange, setIsFocused]\n );\n const handleClickSet = useCallback(() => {\n // Note: we use `selectedTime` here because the time picker defaults to \"now\" when no value is set.\n // If the user has entered nothing, but clicks Set, we'd want it to set the value they see in the timepicker\n maybeEmitChange(entryMode, selectedTime, selectedDuration);\n setIsFocused(false);\n closePopup();\n }, [entryMode, selectedTime, selectedDuration, maybeEmitChange, closePopup, setIsFocused]);\n\n const onBlur: React.FocusEventHandler = useCallback(\n (e: FocusEvent) => {\n if (e.relatedTarget && isFocusOutsideComponent(e.relatedTarget)) {\n if (internalTouched) {\n // if the user has change the value at all, then we'll act as if they clicked \"Set\" when they blur the control\n handleClickSet();\n } else {\n // Otherwise, if they made no changes, act as if they click cancel\n handleClickCancel();\n }\n }\n },\n [isFocusOutsideComponent, internalTouched, handleClickSet, handleClickCancel]\n );\n const showClear = useMemo(() => inputValue !== '' && !disabled, [disabled, inputValue]);\n\n return (\n \n \n \n {entryMode === DateTimeDurationPickerValueType.Duration ? (\n <>\n \n {formatDuration(selectedDuration)}\n \n {showCalculatedDuration &&\n !isEqual(selectedDuration, emptyDuration) &&\n isValidDateInput(calcDurationRelativeTo) ? (\n \n  ({formattedDate(calcDateFromDuration(selectedDuration, calcDurationRelativeTo))})\n \n ) : null}\n \n ) : isValidDateInput(selectedDate) ? (\n {formattedDate(selectedDate)}\n ) : null}\n \n \n \n \n \n \n {entryMode === DateTimeDurationPickerValueType.DateTime ? (\n \n \n \n \n \n \n \n ) : (\n \n )}\n \n {entryModes.length > 1 && (\n \n {entryModes.includes(DateTimeDurationPickerValueType.DateTime) && (\n \n {dateTimeLabel}\n \n )}\n {entryModes.includes(DateTimeDurationPickerValueType.Duration) && (\n \n {durationLabel}\n \n )}\n \n )}\n \n \n Cancel\n \n \n \n \n \n \n \n }\n />\n \n );\n});\n","import { entries, noop } from 'lodash';\nimport { EMPTY, Subject, type Observable } from 'rxjs';\nimport { SECURITY } from '../tokens/requestTypes';\n\nexport enum RDCStatus {\n Created = 'Created',\n Initializing = 'Initializing',\n Running = 'Running',\n Terminated = 'Terminated',\n Unsupported = 'Unsupported',\n}\n\nconst TALOS_DB = 'TalosCache';\n\n// This is a mapping of cacheable types to the keyPath used to store them in the IndexedDB. If adding a new cacheable\n// type, add it here so the db can be created with the correct keyPath.\nexport const RDC_TYPE_TO_KEYPATH = {\n Security: 'Symbol',\n};\n\nexport type RDC_CACHEABLE_TYPE = keyof typeof RDC_TYPE_TO_KEYPATH;\n\nexport interface IRefDataCache {\n init(dbVersion: string): Promise;\n write(type: RDC_CACHEABLE_TYPE, entities: AnyObject[]): Promise;\n read(type: RDC_CACHEABLE_TYPE, key: string): Promise;\n readAll(type: RDC_CACHEABLE_TYPE): Promise;\n observeError(): Observable;\n status: RDCStatus;\n close(): void;\n}\n\n// For now this is just Securities. If expanded to cache beyond that to have other time properties which indicate the\n// last time the entity was touched, we will need to make this more dynamic.\ninterface IObjectWithTimestamp extends AnyObject {\n Timestamp: string;\n}\n\nexport class IndexedDBCache implements IRefDataCache {\n static readonly CacheableTypes: RDC_CACHEABLE_TYPE[] = [SECURITY];\n\n static isCacheable(type: string | undefined): type is RDC_CACHEABLE_TYPE {\n return IndexedDBCache.CacheableTypes.includes(type as RDC_CACHEABLE_TYPE);\n }\n private _status = RDCStatus.Created;\n private _db: IDBDatabase | undefined;\n\n private _errorSubject = new Subject();\n\n private _transactionCount = 0;\n private _initProm: Promise;\n private _initResolve = noop;\n private _initReject = noop;\n\n constructor() {\n this._initProm = new Promise((resolve, reject) => {\n this._initResolve = resolve;\n this._initReject = reject;\n });\n }\n\n /**\n *\n * @param dbVersion version string used to open the database. If the version is different than the current version,\n * the database will be deleted and recreated.\n * @returns Promise which resolves when the cache is ready to use or is unsupported.\n */\n async init(dbVersion: string): Promise {\n if (this._status !== RDCStatus.Created) {\n throw new Error(`Attempting to init cache in bad state ${this._status}`);\n }\n if (!window || window.indexedDB === undefined) {\n this._status = RDCStatus.Unsupported;\n this._initResolve();\n return;\n }\n performance.mark('cache-open-start');\n this._status = RDCStatus.Initializing;\n const dbName = `${TALOS_DB}-${dbVersion}`;\n\n // We intentionally have the indexedDB version hardcoded to 1 as it just works as a cache for us. If there are\n // schema / table changes we will just delete the database cache and recreate it.\n const req = indexedDB.open(dbName, 1);\n req.onsuccess = event => {\n performance.mark('cache-open-end');\n performance.measure('cache-open', 'cache-open-start', 'cache-open-end');\n this._db = req.result;\n this._status = RDCStatus.Running;\n this._initResolve();\n };\n req.onerror = event => {\n this._status = RDCStatus.Terminated;\n const error = new Error(`Failed to open indexedDB ${TALOS_DB}`);\n this._errorSubject.next(error);\n this._initReject(error);\n };\n req.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n this._db = req.result;\n\n entries(RDC_TYPE_TO_KEYPATH).forEach(([type, keypath]) => {\n this._db?.createObjectStore(type, { keyPath: keypath });\n });\n };\n return this._initProm;\n }\n\n async write(type: RDC_CACHEABLE_TYPE, entities: AnyObject[]) {\n await this._initProm;\n if (this._status === RDCStatus.Unsupported) {\n return;\n }\n const [perfMeasure, perfStartKey, perfEndKey] = this.nextPerfKeys('write', type);\n performance.mark(perfStartKey);\n\n return new Promise((resolve, reject) => {\n if (this._status !== RDCStatus.Running) {\n throw new Error(`Attempting to write to cache ${type} in bad state ${this._status}`);\n }\n\n if (!this._db?.objectStoreNames.contains(type)) {\n throw new Error(`No store for type ${type} when writing`);\n }\n\n const trans = this._db.transaction(type, 'readwrite');\n const store = trans.objectStore(type);\n\n // TODO we should consider add batching of writes to avoid locking up trying to write a large number of entities.\n entities.forEach(entity => {\n store.put(entity);\n });\n\n trans.oncomplete = event => {\n performance.mark(perfEndKey);\n performance.measure(perfMeasure, perfStartKey, perfEndKey);\n resolve();\n };\n trans.commit();\n });\n }\n\n observeError(): Observable {\n return this._errorSubject.asObservable();\n }\n\n async read(type: RDC_CACHEABLE_TYPE, key: string): Promise {\n await this._initProm;\n const [perfMeasure, perfStartKey, perfEndKey] = this.nextPerfKeys('read', type);\n performance.mark(perfStartKey);\n\n return new Promise((resolve, reject) => {\n if (this._status !== RDCStatus.Running) {\n const error = new Error(`Attempting to read from cache ${type} in bad state ${this._status}`);\n this._errorSubject.next(error);\n throw error;\n }\n\n if (!this._db?.objectStoreNames.contains(type)) {\n const error = new Error(`No store for type ${type} when reading`);\n this._errorSubject.next(error);\n throw error;\n }\n\n const trans = this._db.transaction(type, 'readonly');\n const store = trans.objectStore(type);\n\n const req = store.get(key);\n req.onsuccess = event => {\n performance.mark(perfEndKey);\n performance.measure(perfMeasure, perfStartKey, perfEndKey);\n resolve(req.result);\n };\n req.onerror = event => {\n const error = new Error(`Failed to read ${key} from ${type}`);\n this._errorSubject.next(error);\n reject(error);\n };\n });\n }\n\n async readAll(type: RDC_CACHEABLE_TYPE): Promise {\n await this._initProm;\n const [perfMeasure, perfStartKey, perfEndKey] = this.nextPerfKeys('read-all', type);\n performance.mark(perfStartKey);\n\n return new Promise((resolve, reject) => {\n if (this._status !== RDCStatus.Running) {\n const error = new Error(`Attempting to read all from cache ${type} in bad state ${this._status}`);\n this._errorSubject.next(error);\n throw error;\n }\n\n if (!this._db?.objectStoreNames.contains(type)) {\n const error = new Error(`No store for type ${type} when reading`);\n this._errorSubject.next(error);\n throw error;\n }\n\n const trans = this._db.transaction(type, 'readonly');\n const store = trans.objectStore(type);\n\n const req = store.getAll();\n\n req.onsuccess = event => {\n performance.mark(perfEndKey);\n performance.measure(perfMeasure, perfStartKey, perfEndKey);\n resolve(req.result);\n };\n req.onerror = event => {\n const error = new Error(`Failed to read all from ${type}`);\n this._errorSubject.next(error);\n reject(error);\n };\n });\n }\n\n // Leaving this index based lookup for future reference. It is not currently used as it turned out it was slower to\n // read the single entity out of the index than it was to just read all entities and filter in memory.\n\n /**\n async readFirstByIndex(type: RDC_CACHEABLE_TYPE, index: string, direction: IDBCursorDirection): Promise {\n await this._initProm;\n const [perfMeasure, perfStartKey, perfEndKey] = this.nextPerfKeys('read-index', type);\n performance.mark(perfStartKey);\n\n return new Promise((resolve, reject) => {\n if (this._status !== RDCStatus.Running) {\n const error = new Error(`Attempting to read-index from cache ${type} in bad state ${this._status}`);\n this._errorSubject.next(error);\n throw error;\n }\n\n if (!this._db?.objectStoreNames.contains(type)) {\n const error = new Error(`No store for type ${type} when index reading`);\n this._errorSubject.next(error);\n throw error;\n }\n\n const trans = this._db.transaction(type, 'readonly');\n const store = trans.objectStore(type);\n if (!store.indexNames.contains(index)) {\n const error = new Error(`No index ${index} for type ${type} when index index reading`);\n this._errorSubject.next(error);\n throw error;\n }\n\n const req = store.index(index).openCursor(null, direction);\n\n req.onsuccess = event => {\n performance.mark(perfEndKey);\n performance.measure(perfMeasure, perfStartKey, perfEndKey);\n resolve(req.result?.value);\n };\n\n req.onerror = event => {\n const error = new Error(`Failed to read-index from ${type}`);\n this._errorSubject.next(error);\n reject(error);\n };\n });\n }\n */\n\n get status() {\n return this._status;\n }\n\n // Cleanup Database\n async deleteDatabase() {\n try {\n if (this._db?.name) {\n return await IndexedDBCache.Delete(this._db.name);\n } else {\n throw new Error('No database to delete');\n }\n } catch (e) {\n console.error(`Failed to delete indexedDB: ${this._db?.name}: ${e instanceof Error ? e.message : e}`);\n }\n }\n\n close() {\n // maybe throw if we are in a bad state so it is easier to debug? But throwing on a close can be annoying.\n // note: this only is ever called in tests and the lifecycle of connection is assumed to be the lifecycle of the app.\n this._db?.close();\n }\n\n private nextPerfKeys(\n op: 'write' | 'read' | 'read-all' | 'read-index',\n type: RDC_CACHEABLE_TYPE\n ): [string, string, string] {\n this._transactionCount++;\n return [\n `cache-${op}-${type}-${this._transactionCount}`,\n `cache-${op}-${type}-${this._transactionCount}-start`,\n `cache-${op}-${type}-${this._transactionCount}-end`,\n ];\n }\n\n static async Delete(dbName: string) {\n const req = indexedDB.deleteDatabase(dbName);\n return new Promise((resolve, reject) => {\n req.onsuccess = event => {\n resolve();\n };\n req.onerror = event => {\n reject(`Failed to delete indexedDB ${dbName}`);\n };\n });\n }\n}\n\nexport const NOOP_CACHE: IRefDataCache = {\n init(dbVersion: string): Promise {\n return Promise.resolve();\n },\n write(type: RDC_CACHEABLE_TYPE, entities: AnyObject[]): Promise {\n return Promise.resolve();\n },\n read(type: RDC_CACHEABLE_TYPE, key: string): Promise {\n return Promise.resolve(undefined);\n },\n readAll(type: RDC_CACHEABLE_TYPE): Promise {\n return Promise.resolve([]);\n },\n observeError(): Observable {\n return EMPTY;\n },\n get status(): RDCStatus {\n return RDCStatus.Running;\n },\n close() {\n return;\n },\n};\n","import type { MessageDescriptor } from 'react-intl';\nimport { intlDefaultFormatter, type IntlWithFormatter } from '../contexts/IntlContext';\nimport { orderSliceMessages } from '../providers/WLOrderForm/state/OrderSlice/messages';\n\nexport interface FieldData {\n name: string;\n value: T | undefined;\n isTouched: boolean;\n isDisabled: boolean;\n isRequired: boolean;\n errors: FieldValidationResult[];\n isVisible: boolean;\n placeholder: string;\n}\n\nexport enum FieldValidationLevel {\n Error = 'Error',\n Warning = 'Warning',\n}\n\n/**\n * This is an internal property set by Fields used to distinguish errors created by either invariant checks or manually defined rules\n * Users of FieldValidationResult should never manually set this property\n */\nexport enum FieldValidationType {\n Invariant = 'Invariant',\n Rule = 'Rule',\n}\nexport type FieldValidationResult =\n | {\n message: string;\n level: FieldValidationLevel;\n type?: FieldValidationType;\n }\n | {\n message: MessageDescriptor; // MessageDescriptor is an Intl Recognized message\n values: Record | undefined; // Values for the MessageDescriptor\n level: FieldValidationLevel;\n type?: FieldValidationType;\n };\n\n// not the React context - can be anything such as the form state the field belongs, in order to apply cross field validation\nexport type FieldValidationRule, C = any, V = any> = (\n field: F,\n context?: C\n) => FieldValidationResult | null;\n\nexport abstract class BaseField, V = string> {\n protected readonly data: T;\n constructor(data: T) {\n this.data = data;\n }\n\n public get name(): string {\n return this.data.name;\n }\n\n public get displayValue(): string {\n return this.data.value != null ? `${this.data.value}` : '';\n }\n\n public abstract get value(): V | undefined;\n\n public get placeholder(): string {\n return this.data.placeholder;\n }\n\n public get isTouched(): boolean {\n return this.data.isTouched;\n }\n\n public get isVisible(): boolean {\n return this.data.isVisible;\n }\n\n public get isDisabled(): boolean {\n return this.data.isDisabled;\n }\n\n public get isRequired(): boolean {\n return this.data.isRequired;\n }\n\n public get hasValue(): boolean {\n return this.data.value != null && this.data.value !== '';\n }\n\n public get errors(): FieldValidationResult[] {\n return this.data.errors.filter(e => e.level === FieldValidationLevel.Error);\n }\n\n public get warnings(): FieldValidationResult[] {\n return this.data.errors.filter(e => e.level === FieldValidationLevel.Warning);\n }\n\n public get hasError(): boolean {\n return this.errors.length > 0;\n }\n\n public get hasWarning(): boolean {\n return this.warnings.length > 0;\n }\n\n public get errorString(): string {\n return this.getTranslatedErrorString(intlDefaultFormatter);\n }\n\n public get warningString(): string {\n return this.getTranslatedWarningString(intlDefaultFormatter);\n }\n\n private getTranslatedValuesFromResult(\n result: FieldValidationResult,\n intl: IntlWithFormatter\n ): Record | undefined {\n if (typeof result.message === 'string') {\n return undefined;\n }\n\n if ('values' in result && result.values) {\n return Object.entries(result.values).reduce((acc, [key, value]) => {\n acc[key] = key in orderSliceMessages ? intl.formatMessage(orderSliceMessages[key], value) : value;\n return acc;\n }, {} as Record);\n }\n\n return undefined;\n }\n public getTranslatedErrorString(intl: IntlWithFormatter): string {\n if (!this.data.isTouched) {\n return '';\n }\n return this.errors\n .map(result => {\n if (typeof result.message === 'string') {\n return result.message;\n }\n return intl.formatMessage(result.message, this.getTranslatedValuesFromResult(result, intl));\n })\n .join(', ');\n }\n\n public getTranslatedWarningString(intl: IntlWithFormatter): string {\n if (!this.data.isTouched) {\n return '';\n }\n return this.warnings\n .map(result => {\n if (typeof result.message === 'string') {\n return result.message;\n }\n return intl.formatMessage(result.message, 'values' in result ? result.values : undefined);\n })\n .join(', ');\n }\n\n /**\n * Determines if the field has an invalid value, not based on the field's validation rules, but on its current state.\n */\n public get hasInvalidValue(): boolean {\n if (this.isDisabled) {\n // if disabled, we don't consider the value as invalid\n return false;\n }\n if (this.hasError) {\n return true;\n }\n if (this.isRequired && !this.hasValue) {\n return true;\n }\n\n return false;\n }\n\n public abstract setTouched(value: boolean): BaseField;\n public abstract setIsVisible(value: boolean): BaseField;\n public abstract setIsRequired(value: boolean): BaseField;\n public abstract updateValue(value, isSystemOverride?: boolean): BaseField;\n public abstract setDisabled(value: boolean): BaseField;\n public abstract validate(rules?: FieldValidationRule[], context?: any): BaseField;\n}\n","import Big from 'big.js';\nimport { DEFAULT_LOCALE } from '../contexts/IntlContext';\nimport { toBig } from '../utils';\nimport {\n BaseField,\n FieldValidationLevel,\n FieldValidationType,\n type FieldData,\n type FieldValidationResult,\n type FieldValidationRule,\n} from './BaseField';\nimport { fieldsMessages } from './messages';\n\nexport interface NumericFieldData extends FieldData {\n unit: Unit;\n scale?: number; // number of digits after decimal point, undefined implies no rule, i.e. no limit\n precision?: number; // number of significant digits in a number, unsupported at the moment\n userInput?: string; // keep track of user input to show in error message\n userInputValid?: boolean;\n minimum?: string;\n displayTrailingZeroes?: boolean;\n}\n\nexport enum Unit {\n Decimal = 'Decimal', // regular numbers such as 1000, 10.5, etc.\n Percent = 'Percent', // 1 = 100%, so 5% === 0.05\n Bps = 'Bps', // 1 === 0.0001, similar to pips but no JPY exception\n Notional = 'Notional', // 1k = 1000, 5m = 5000000\n}\n\nexport enum Multiplier {\n k = 1000,\n m = 1000000,\n}\n\ntype ValueFormatter = (value: string, scale?: number, options?: Partial) => string;\ntype ValueSetter = (value: string | undefined) => { isValid: boolean; value: string | undefined };\n\n// https://stackoverflow.com/questions/175739/how-can-i-check-if-a-string-is-a-valid-number\nexport function isNumericText(value: string | undefined): boolean {\n if (typeof value !== 'string') {\n return false;\n }\n // casting on purpose to use type coercion - see more detailed explanation in above stackoverflow answer\n return !isNaN(value as any) && !isNaN(parseFloat(value));\n}\n\nfunction hasValidMultiplier(value: string | undefined): boolean {\n if (!value) {\n return false;\n }\n const multiplier = value.substring(value.length - 1);\n return Object.keys(Multiplier).includes(multiplier) && value.indexOf(multiplier) === value.lastIndexOf(multiplier);\n}\n\nfunction isValidNotional(value: string | undefined): boolean {\n return isNumericText(value) || hasValidMultiplier(value);\n}\n\nexport function getScaleFromIncrement(increment?: string): number {\n if (!increment) {\n return 0;\n }\n const parts = increment.split('.');\n return !parts[1] ? 0 : parts[1]?.length;\n}\n\nexport class NumericField extends BaseField {\n private readonly formatter: ValueFormatter;\n private readonly valueSetter: ValueSetter;\n\n constructor(initial?: Partial) {\n super({\n name: 'NumericField',\n value: undefined,\n isRequired: true,\n placeholder: 'Type here',\n isTouched: false,\n isDisabled: false,\n isVisible: true,\n errors: [],\n unit: Unit.Decimal,\n scale: undefined,\n displayTrailingZeroes: false,\n ...initial,\n });\n\n const util = getUnitUtils(this.data.unit);\n this.formatter = util.formatter;\n this.valueSetter = util.valueSetter;\n }\n\n public get bigValue(): Big | undefined {\n if (this.data.value == null) {\n return undefined;\n }\n try {\n return new Big(this.data.value);\n } catch (e) {\n console.error(`Error trying to get bigValue from ${this.data.value}`);\n return undefined;\n }\n }\n\n public override get displayValue(): string {\n if (this.data.userInput) {\n return this.data.userInput;\n }\n if (!this.data.value) {\n return '';\n }\n return this.formatter(this.data.value, this.data.scale, { displayTrailingZeroes: this.data.displayTrailingZeroes });\n }\n\n public get value(): string | undefined {\n return this.data.value;\n }\n\n public get scale(): number | undefined {\n return this.data.scale;\n }\n\n public get unit(): Unit {\n return this.data.unit;\n }\n\n // Note: System override assumes values would already be in the right format\n public override updateValue(value: string | undefined, isSystemOverride = false): NumericField {\n const result = this.valueSetter(value);\n\n const updatedData = {\n value: isSystemOverride ? value : result.isValid ? result.value : undefined,\n isTouched: isSystemOverride ? false : true,\n userInput: isSystemOverride ? undefined : value,\n userInputValid: isSystemOverride ? undefined : result.isValid,\n };\n\n const updated = this.updateData(updatedData);\n return updated.invariantCheck();\n }\n\n public updateUnit(unit: Unit): NumericField {\n return this.updateData({ unit });\n }\n\n public updateScale(scale: number | undefined): NumericField {\n const updated = this.updateData({ scale });\n // previous valid value might no longer be if new scale is violated\n return updated.invariantCheck();\n }\n\n public setTouched(isTouched: boolean): NumericField {\n const updated = this.updateData({ isTouched });\n return updated.invariantCheck();\n }\n\n public setIsRequired(isRequired: boolean): NumericField {\n const updated = this.updateData({ isRequired });\n return updated.invariantCheck();\n }\n\n public setIsVisible(isVisible: boolean): NumericField {\n const updated = this.updateData({ isVisible });\n return updated.invariantCheck();\n }\n\n public setMinimum(minimum: string): NumericField {\n const updated = this.updateData({ minimum });\n return updated.invariantCheck();\n }\n\n public validate(rules: FieldValidationRule[] = [], context?: C): NumericField {\n const checked = this.invariantCheck();\n const errors = checked.data.errors.filter(e => e.type !== FieldValidationType.Rule);\n\n rules.forEach(rule => {\n const result = rule(this, context);\n if (result) {\n errors.push({ ...result, type: FieldValidationType.Rule });\n }\n });\n\n return this.updateData({ errors });\n }\n\n public override setDisabled(isDisabled: boolean): NumericField {\n return this.updateData({ isDisabled });\n }\n\n private invariantCheck(): NumericField {\n const errors: FieldValidationResult[] = this.data.errors.filter(e => e.type === FieldValidationType.Rule);\n\n if (this.data.isRequired && this.data.value == null) {\n errors.push({\n message: fieldsMessages.dataNameIsRequired,\n values: { dataName: this.data.name },\n level: FieldValidationLevel.Error,\n });\n }\n if (!this.data.userInputValid && this.data.userInput) {\n errors.push({ message: `Invalid input`, level: FieldValidationLevel.Error });\n }\n if (this.data.minimum != null && toBig(this.data.value)) {\n const violateMin = toBig(this.data.value)!.lt(this.data.minimum);\n if (violateMin) {\n errors.push({\n message: fieldsMessages.minQuantityIsMinSizeCurrency,\n values: { minSize: this.data.minimum },\n level: FieldValidationLevel.Error,\n });\n }\n }\n\n const dps = this.displayValue?.split('.')[1];\n if (this.data.scale != null && dps?.length > this.data.scale) {\n errors.push({\n message: fieldsMessages.dataNameExceedsMaximumDpsOfScale,\n values: { dataName: this.data.name, scale: this.data.scale },\n level: FieldValidationLevel.Error,\n });\n }\n\n return this.updateData({ errors });\n }\n\n private updateData(data: Partial): NumericField {\n const newData = {\n ...this.data,\n ...data,\n };\n return new NumericField(newData);\n }\n}\n\nconst percentFormatter = (value: string, scale?: number): string => {\n return new Big(value)\n .times(100)\n .toNumber()\n .toLocaleString(DEFAULT_LOCALE, {\n minimumFractionDigits: 0,\n maximumFractionDigits: scale != null ? scale : 20, // maximumFractionDigits only supports up to 20 max\n })\n .replace(/,/g, '');\n};\n\nconst decimalFormatter = (value: string, scale?: number, options?: Partial): string => {\n const { displayTrailingZeroes = false } = options ?? {};\n return Number(value)\n .toLocaleString(DEFAULT_LOCALE, {\n minimumFractionDigits: displayTrailingZeroes ? scale ?? 0 : 0,\n maximumFractionDigits: displayTrailingZeroes ? scale ?? 0 : scale ?? 20,\n })\n .replace(/,/g, '');\n};\n\nconst notionalFormatter = (value: string, scale?: number): string => {\n return Number(value)\n .toLocaleString(DEFAULT_LOCALE, {\n minimumFractionDigits: 0,\n maximumFractionDigits: scale != null ? scale : 20,\n })\n .replace(/,/g, '');\n};\n\nconst bpsFormatter = (value: string, scale?: number): string => {\n return new Big(value)\n .times(10000)\n .toNumber()\n .toLocaleString(DEFAULT_LOCALE, {\n minimumFractionDigits: 0,\n maximumFractionDigits: scale != null ? scale : 20,\n })\n .replace(/,/g, '');\n};\n\nconst percentValueSetter: ValueSetter = (value: string | undefined) => {\n const userInputValid = !!value && isNumericText(value);\n return {\n isValid: userInputValid,\n value: userInputValid ? new Big(value).div(100).toFixed() : undefined,\n };\n};\n\nconst decimalValueSetter: ValueSetter = (value: string | undefined) => {\n const userInputValid = !!value && isNumericText(value);\n return {\n isValid: userInputValid,\n value: userInputValid ? new Big(value).toFixed() : undefined,\n };\n};\n\nconst notionalValueSetter: ValueSetter = (value: string | undefined) => {\n const isValidNumber = isNumericText(value);\n if (isValidNumber || !value) {\n return decimalValueSetter(value);\n }\n\n const userInputValid = isValidNotional(value);\n const multiplier = Multiplier[value.substring(value.length - 1)];\n const amount = value.slice(0, -1);\n return {\n isValid: userInputValid,\n value: userInputValid ? new Big(amount).times(multiplier).toFixed() : undefined,\n };\n};\n\nconst bpsValueSetter: ValueSetter = (value: string | undefined) => {\n const userInputValid = !!value && isNumericText(value);\n return {\n isValid: userInputValid,\n value: userInputValid ? new Big(value).div(10000).toFixed() : undefined,\n };\n};\n\nfunction getUnitUtils(unit): {\n formatter: ValueFormatter;\n valueSetter: ValueSetter;\n} {\n switch (unit) {\n case Unit.Decimal:\n return {\n formatter: decimalFormatter,\n valueSetter: decimalValueSetter,\n };\n case Unit.Percent:\n return {\n formatter: percentFormatter,\n valueSetter: percentValueSetter,\n };\n case Unit.Notional:\n return {\n formatter: notionalFormatter,\n valueSetter: notionalValueSetter,\n };\n case Unit.Bps:\n return {\n formatter: bpsFormatter,\n valueSetter: bpsValueSetter,\n };\n default:\n return {\n formatter: decimalFormatter,\n valueSetter: decimalValueSetter,\n };\n }\n}\n","import type { UseComboboxStateChange } from 'downshift';\nimport type { Security } from '../../types';\n\nimport type { FlexProps } from '../Core';\nimport type { FormControlSizes } from '../Form';\nimport type { ExposedAutocompleteDropdownProps } from '../Form/AutocompleteDropdown/types';\n\nexport enum SymbolSelectorAppearance {\n Basic = 'Basic',\n Ghost = 'Ghost',\n Search = 'Search',\n CurrencyPair = 'CurrencyPair',\n}\n\nexport type SymbolSelectorProps = {\n className?: string;\n startOpen?: boolean;\n symbol?: string;\n /** Pass in your own list of Security[] to override the default one */\n availableSecurities?: Security[];\n /**\n * If passing this prop, you may need to do some cleanup of your state\n * for your input elements. The default behavior inside of useSearchSelect\n * clears the input value and focuses the element itself on open, and sets\n * it to the selected item's appropriate label on selection.\n */\n onIsOpenChange?: ((changes: UseComboboxStateChange) => void) | undefined;\n onSymbolChanged: (symbol?: string) => void;\n disabled?: boolean;\n appearance: SymbolSelectorAppearance;\n size?: FormControlSizes;\n showClear?: boolean;\n showGroups?: boolean;\n dropdownId?: string;\n /** For the Basic select appearance, whether or not to center the select header contents */\n centerBasicSelect?: boolean;\n showFavorites?: boolean;\n showSelectedSymbolDescription?: boolean;\n readOnly?: boolean;\n} & ExposedAutocompleteDropdownProps &\n FlexProps;\n","import * as Highcharts from 'highcharts/highcharts';\n\nenum Direction {\n Vertical = 0,\n Horizontal = 1,\n}\n\n/**\n * Custom implementation of the HighCharts \"squarified\" / \"stripes\" layout algorithm, but with padding to ensure\n * we can see the background color of the parent element.\n * @remarks\n * This kinda works now, though the implementation isn't quite the most \"accurate\". The \"padding\" around the child boxes\n * is wrong, it should be based on the size of the parent's data label, but it isn't right now.\n * The dimensions that we're operating on in the layout function, are different than the final render dimensions, so we can't\n * just go e.g. `parentY = parent.y + parent.dataLabel.height`.\n */\nconst squarifiedWithPadding = function squarifiedWithPadding(parent, children) {\n const direction = parent.direction;\n const directionChange = (children?.[0]?.parentNode?.level ?? 0) === 0; // set to true for squarified algorithm\n const childrenArea: Highcharts.BBoxObject[] = [];\n const parentNode = children?.[0]?.parentNode;\n const { parentHeight, parentWidth, parentX, parentY } =\n (parentNode?.level ?? 0) === 0\n ? {\n parentHeight: parent.height,\n parentWidth: parent.width,\n parentX: parent.x,\n parentY: parent.y,\n }\n : {\n parentHeight: parent.height - 3, //parentNode?.point?.dataLabel?.box.getBBox().height,\n parentWidth: parent.width - 2,\n parentX: parent.x + 1,\n parentY: parent.y + 2, //parentNode?.point?.dataLabel?.box.getBBox().height,\n };\n const plot = {\n x: parentX,\n y: parentY,\n parent: { ...parent, height: parentHeight, width: parentWidth, x: parentX, y: parentY },\n };\n const end = children.length - 1;\n\n const group = new TreemapAlgorithmGroup(parentHeight, parentWidth, direction, plot);\n\n // Loop through and calculate all areas\n children.forEach((child, i) => {\n child.point.percentage = child.val / parent.val;\n const pTot = parentWidth * parentHeight * (child.val / parent.val);\n group.addElement(pTot);\n\n if (group.lastPoint.newRatio > group.lastPoint.lastRatio) {\n algorithmCalcPoints(directionChange, false, group, childrenArea);\n }\n // If last child, then calculate all remaining areas\n if (i === end) {\n algorithmCalcPoints(directionChange, true, group, childrenArea);\n }\n });\n\n return childrenArea;\n} satisfies Highcharts.TreemapLayoutAlgorithm;\n\nfunction algorithmCalcPoints(\n directionChange: boolean,\n last: boolean,\n group: TreemapAlgorithmGroup,\n childrenArea: Highcharts.BBoxObject[]\n): void {\n let plotX: number;\n let plotY: number;\n let plotWidth: number;\n let plotHeight: number;\n let groupWidth = group.lastWidth;\n let groupHeight = group.lastHeight;\n const plot = group.plot;\n let keep: number | undefined;\n const end = group.elArr.length - 1;\n\n if (last) {\n groupWidth = group.newWidth;\n groupHeight = group.newHeight;\n } else {\n keep = group.elArr[group.elArr.length - 1];\n }\n group.elArr.forEach((p, i): void => {\n if (last || i < end) {\n if (group.direction === Direction.Vertical) {\n plotX = plot.x;\n plotY = plot.y;\n plotWidth = groupWidth;\n plotHeight = p / plotWidth;\n } else {\n plotX = plot.x;\n plotY = plot.y;\n plotHeight = groupHeight;\n plotWidth = p / plotHeight;\n }\n childrenArea.push({\n x: plotX,\n y: plotY,\n width: plotWidth,\n height: Highcharts.correctFloat(plotHeight),\n });\n if (group.direction === Direction.Vertical) {\n plot.y = plot.y + plotHeight;\n } else {\n plot.x = plot.x + plotWidth;\n }\n }\n });\n // Reset variables\n group.reset();\n if (group.direction === Direction.Vertical) {\n group.width = group.width - groupWidth;\n } else {\n group.height = group.height - groupHeight;\n }\n plot.y = plot.parent.y + (plot.parent.height - group.height);\n plot.x = plot.parent.x + (plot.parent.width - group.width);\n if (directionChange) {\n group.direction = 1 - group.direction;\n }\n // If not last, then add uncalculated element\n if (!last) {\n group.addElement(keep as any);\n }\n}\n\n/**\n * Custom implementation of the HighCharts TreemapSeries.pointAttribs function, to customize the fill behavior.\n * @remarks\n * By default, Highcharts will not fill parent elements if `interactByLeaf` is false. We need the fill to be set,\n * because we have offset the child elements, making the parent element's background visible (the default Highcharts\n * layouts don't allow the parent node to be visible).\n */\nfunction pointAttribs(\n this: Highcharts.TreemapSeries,\n point: Highcharts.TreemapPoint,\n state?: string //Highcharts.StatesOptionsKey\n): Highcharts.SVGAttributes {\n const mapOptionsToLevel = Highcharts.isObject(this.mapOptionsToLevel) ? this.mapOptionsToLevel : {};\n const level = (point && mapOptionsToLevel[point.node.level]) || {};\n const options = this.options as Highcharts.SeriesOptionsRegistry['SeriesTreemapOptions'];\n\n const stateOptions = (state && options.states && options.states[state]) || {};\n const className = (point && point.getClassName()) || '';\n let opacity: number;\n\n // Set attributes by precedence. Point trumps level trumps series.\n // Stroke width uses pick because it can be 0.\n const attr: Highcharts.SVGAttributes = {\n stroke:\n (point && (point as any).borderColor) || level.borderColor || stateOptions.borderColor || options.borderColor,\n 'stroke-width': Highcharts.pick(\n point && (point as any).borderWidth,\n level.borderWidth,\n stateOptions.borderWidth,\n options.borderWidth\n ),\n dashstyle:\n (point && (point as any).borderDashStyle) ||\n level.borderDashStyle ||\n stateOptions.borderDashStyle ||\n options.borderDashStyle,\n fill: (point && point.color) || this.color,\n };\n\n // Hide levels above the current view\n if (className.indexOf('highcharts-above-level') !== -1) {\n attr.fill = 'none';\n attr['stroke-width'] = 0;\n\n // Nodes with children that accept interaction\n } else if (\n className.indexOf('highcharts-internal-node-interactive') !== -1 ||\n className.indexOf('highcharts-internal-node') !== -1\n ) {\n opacity = Highcharts.pick(stateOptions.opacity, options.opacity as any);\n attr.fill = Highcharts.color(attr.fill).setOpacity(opacity).get();\n attr.cursor = 'pointer';\n // // Hide nodes that have children\n // } else if (className.indexOf('highcharts-internal-node') !== -1) {\n // attr.fill = 'none';\n } else if (state) {\n // Brighten and hoist the hover nodes\n attr.fill = Highcharts.color(attr.fill)\n .brighten(stateOptions.brightness as any)\n .get();\n }\n return attr;\n}\n\n/**\n * Custom implementation of the HighCharts TreemapSeries.drawPoints function, to customize the zIndex behavior.\n * @remarks\n * By default, Highcharts sets the z-index of the nodes in reverse order, so that the leaf nodes have the lowest\n * z-index, and the root nodes have the highest z-index (not \"actual\" z-indexes, these are just data attributes).\n * The effect of this is, when mousing over a point, you'll see the tooltip for the parent node, unless you are\n * mousing over the data label for that point.\n * This would make sense if there's no way to mouse over the parent element, but with our other changes, we're now\n * able to mouse over the parent OR the child, so it's more desirable to set the z-index in the opposite direction\n * to what Highcharts does.\n */\nfunction drawPoints(this: Highcharts.TreemapSeries, points: Array = this.points): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const series = this,\n chart = series.chart,\n renderer = chart.renderer,\n styledMode = chart.styledMode,\n options = series.options as Highcharts.SeriesTreemapOptions,\n shadow = styledMode ? {} : (options as any).shadow,\n borderRadius = options.borderRadius,\n withinAnimationLimit = (chart as any).pointCount < (options.animationLimit as any),\n allowTraversingTree = options.allowTraversingTree;\n\n points.forEach(function (point): void {\n const levelDynamic = point.node.levelDynamic,\n animatableAttribs: Highcharts.SVGAttributes = {},\n attribs: Highcharts.SVGAttributes = {},\n css: Highcharts.CSSObject = {},\n groupKey = 'level-group-' + point.node.level,\n hasGraphic = !!point.graphic,\n shouldAnimate = withinAnimationLimit && hasGraphic,\n shapeArgs = point.shapeArgs;\n\n // Don't bother with calculate styling if the point is not drawn\n if (point.shouldDraw()) {\n (point as any).isInside = true;\n\n if (borderRadius) {\n attribs.r = borderRadius;\n }\n\n Highcharts.merge(\n true, // Extend object\n // Which object to extend\n shouldAnimate ? animatableAttribs : attribs,\n // Add shapeArgs to animate/attr if graphic exists\n hasGraphic ? shapeArgs : {},\n // Add style attribs if !styleMode\n styledMode ? {} : (series as any).pointAttribs(point, point.selected ? 'select' : void 0)\n );\n\n // In styled mode apply point.color. Use CSS, otherwise the\n // fill used in the style sheet will take precedence over\n // the fill attribute.\n if ((series as any).colorAttribs && styledMode) {\n // Heatmap is loaded\n Highcharts.extend(\n css,\n (series as any).colorAttribs(point as any)\n );\n }\n\n if (!(series as any)[groupKey]) {\n (series as any)[groupKey] = renderer\n .g(groupKey)\n .attr({\n // @todo Set the zIndex based upon the number of\n // levels, instead of using 1000\n zIndex: levelDynamic ?? 0, //1000 - (levelDynamic || 0),\n })\n .add((series as any).group);\n (series as any)[groupKey].survive = true;\n }\n }\n\n // Draw the point\n point.draw({\n animatableAttribs,\n attribs,\n css,\n group: (series as any)[groupKey],\n imageUrl: point.imageUrl,\n renderer,\n shadow,\n shapeArgs,\n shapeType: point.shapeType,\n });\n\n // If setRootNode is allowed, set a point cursor on clickables &\n // add drillId to point\n if (allowTraversingTree && point.graphic) {\n point.drillId = options.interactByLeaf ? series.drillToByLeaf(point) : series.drillToByGroup(point);\n }\n });\n}\n\nexport function addHighchartsTreemapLayoutSquarifiedWithPadding(factory: typeof Highcharts) {\n if ((factory as any)?.seriesTypes?.treemap?.prototype) {\n (factory as any).seriesTypes.treemap.prototype.squarifiedWithPadding = squarifiedWithPadding;\n (factory as any).seriesTypes.treemap.prototype.pointAttribs = pointAttribs;\n (factory as any).seriesTypes.treemap.prototype.drawPoints = drawPoints;\n } else {\n console.error('Unable to add Highcharts treemap layout, seriesType does not exist', (factory as any)?.seriesTypes);\n }\n}\n\n/* *\n *\n * (c) 2014-2021 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\nclass TreemapAlgorithmGroup {\n height: number;\n width: number;\n plot: PlotObject;\n direction: Direction;\n startDirection: any;\n total: number;\n newWidth: number;\n lastWidth: number;\n newHeight: number;\n lastHeight: number;\n elArr: number[];\n lastPoint: LastPointObject;\n /* *\n *\n * Constructor\n *\n * */\n constructor(height: number, width: number, direction: Direction, p: PlotObject) {\n this.height = height;\n this.width = width;\n this.plot = p;\n this.direction = direction;\n this.startDirection = direction;\n this.total = 0;\n this.newWidth = 0;\n this.lastWidth = 0;\n this.newHeight = 0;\n this.lastHeight = 0;\n this.elArr = [];\n this.lastPoint = {\n total: 0,\n lastHeight: 0,\n newHeight: 0,\n lastWidth: 0,\n newWidth: 0,\n newRatio: 0,\n lastRatio: 0,\n aspectRatio: function (w, h) {\n return Math.max(w / h, h / w);\n },\n };\n }\n addElement(el = 0) {\n this.lastPoint.total = this.elArr[this.elArr.length - 1];\n this.total = (this.total ?? 0) + (el ?? 0);\n if (this.direction === Direction.Vertical) {\n // Calculate last point old aspect ratio\n this.lastWidth = this.newWidth;\n this.lastPoint.lastHeight = this.lastPoint.total / this.lastWidth;\n this.lastPoint.lastRatio = this.lastPoint.aspectRatio(this.lastWidth, this.lastPoint.lastHeight);\n // Calculate last point new aspect ratio\n this.newWidth = this.total / this.height;\n this.lastPoint.newHeight = this.lastPoint.total / this.newWidth;\n this.lastPoint.newRatio = this.lastPoint.aspectRatio(this.newWidth, this.lastPoint.newHeight);\n } else {\n // Calculate last point old aspect ratio\n this.lastHeight = this.newHeight;\n this.lastPoint.lastWidth = this.lastPoint.total / this.lastHeight;\n this.lastPoint.lastRatio = this.lastPoint.aspectRatio(this.lastPoint.lastWidth, this.lastHeight);\n // Calculate last point new aspect ratio\n this.newHeight = this.total / this.width;\n this.lastPoint.newWidth = this.lastPoint.total / this.newHeight;\n this.lastPoint.newRatio = this.lastPoint.aspectRatio(this.lastPoint.newWidth, this.newHeight);\n }\n this.elArr.push(el);\n }\n reset() {\n this.newWidth = 0;\n this.lastWidth = 0;\n this.elArr = [];\n this.total = 0;\n }\n public clone() {\n return {\n ...this,\n lastPoint: { ...this.lastPoint },\n };\n }\n}\n\ninterface LastPointObject {\n lastHeight: number;\n lastRatio: number;\n lastWidth: number;\n newHeight: number;\n newRatio: number;\n newWidth: number;\n total: number;\n aspectRatio(w: number, h: number): number;\n}\ninterface PlotObject extends Highcharts.PositionObject {\n parent: Highcharts.NodeValuesObject;\n}\n","import {\n formattedDate,\n formattedDateAtMinutes,\n formattedDateWithMilliseconds,\n formattedDay,\n type DateFnInput,\n} from '../../../utils';\n\nexport enum ChartTooltipValueType {\n currency = 'currency',\n bps = 'bps',\n percent = 'percent',\n number = 'number',\n milliseconds = 'milliseconds',\n}\n\nexport type ChartTooltipResolution = '1MS' | '1S' | '1M' | '1H' | '1D';\n\nexport type DateFormatter = (date: DateFnInput) => string;\n\nexport interface ResolutionMetadata {\n dateFormatter: DateFormatter;\n}\n\nexport type UseChartTooltipProps = {\n outside?: boolean;\n shared?: boolean;\n valueType: ChartTooltipValueType;\n currency?: string;\n omittedSeries?: string[];\n /** Pass a ChartTooltipResolution to the tooltip to get some default formatting for this resolution of data. */\n resolution?: ChartTooltipResolution;\n /** The function to use to format the date displayed in the tooltip. Overrides any defaults or defaults-by-resolution. */\n dateFormatter?: DateFormatter;\n};\n\nexport const RESOLUTION_METADATA = {\n '1MS': {\n dateFormatter: formattedDateWithMilliseconds,\n },\n '1S': {\n dateFormatter: formattedDate,\n },\n '1M': {\n dateFormatter: formattedDateAtMinutes,\n },\n '1H': {\n dateFormatter: formattedDateAtMinutes,\n },\n '1D': {\n dateFormatter: formattedDay,\n },\n} satisfies { [key in ChartTooltipResolution]: ResolutionMetadata };\n","import Big from 'big.js';\nimport { useCallback, type ChangeEvent, type ReactNode } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport type { Currency } from '../../types';\nimport { daysUntil, formattedDate } from '../../utils';\nimport { Box, type BoxProps } from '../Core';\n\nimport { differenceBy } from 'lodash';\nimport { Checkbox, type FormControlSizes } from '../../components/Form';\nimport { InlineFormattedNumber } from '../../components/FormattedNumber';\nimport { Td, Th } from '../../components/Table';\nimport { Button, NavButton, ToggleButton, type ButtonVariants } from '../Button';\nimport { CurrencyIcon } from '../CurrencyIcon';\nimport type { IconName } from '../Icons';\nimport { CurrencyLabel, Table, TableHead, TableRow } from './styles';\n\nexport enum DataTableColumnTypes {\n Checkbox,\n Currency,\n Date,\n RelativeDateTime,\n DaysUntil,\n Number,\n Percent,\n String,\n Button,\n ToggleButton,\n Custom,\n NavButton,\n}\n\nexport function DataTable({\n selection,\n columnDefs: columns,\n rowData: rows,\n rowID: idField,\n currenciesMap = new Map(),\n rowHeight,\n disabledCondition,\n onSelectionChange,\n onButtonClick,\n ...props\n}: DataTableProps) {\n const handleSelectionChanged = useCallback(\n (selected: boolean, row: T) => {\n const newSelection = selection ?? [];\n if (onSelectionChange != null) {\n if (selected) {\n onSelectionChange([...newSelection, row]);\n } else {\n onSelectionChange(newSelection.filter(l => l[idField] !== row[idField]));\n }\n }\n },\n [selection, idField, onSelectionChange]\n );\n\n const availableRows = rows.filter(\n r => !columns.find(c => c.type === DataTableColumnTypes.Checkbox)?.disabledCondition?.(r)\n );\n const isAllSelected =\n (selection?.length ?? 0) > 0 && differenceBy(availableRows, selection ?? [], 'Lender' as keyof T).length === 0;\n const isSomeSelected = !isAllSelected && (selection?.length ?? 0) > 0;\n\n const handleSelectAll = useCallback(() => {\n onSelectionChange && onSelectionChange(isAllSelected ? [] : availableRows);\n }, [isAllSelected, availableRows, onSelectionChange]);\n\n return (\n \n \n \n \n {columns.map((column, index) => (\n \n ))}\n \n \n \n {rows.map((row, index) => {\n const handleCellSelectionChanged = (selected: boolean) => handleSelectionChanged(selected, row);\n const handleButtonCellClick = (action: string) => {\n if (onButtonClick != null) {\n onButtonClick(action, row);\n }\n };\n const selected = (selection ?? []).some(s => s[idField] === row[idField]);\n return (\n \n disabledCondition={disabledCondition}\n key={((row[idField] as any) ?? index).toString()}\n selected={selected}\n row={row}\n idField={idField}\n index={index}\n columns={columns}\n rowHeight={rowHeight}\n currenciesMap={currenciesMap}\n handleCellSelectionChanged={handleCellSelectionChanged}\n handleButtonCellClick={handleButtonCellClick}\n />\n );\n })}\n \n
\n {column.type === DataTableColumnTypes.Checkbox ? (\n \n ) : (\n column.label\n )}\n
\n
\n );\n}\n\nfunction Row({\n selected,\n row,\n columns,\n currenciesMap,\n rowHeight,\n disabledCondition,\n handleCellSelectionChanged,\n handleButtonCellClick,\n}: {\n selected: boolean;\n row: T;\n idField: keyof T;\n index: number;\n rowHeight?: number;\n columns: DataTableColumn[];\n currenciesMap: Map;\n disabledCondition?: (data: T) => boolean;\n handleCellSelectionChanged: (selected: boolean) => void;\n handleButtonCellClick: (action: string) => void;\n}): JSX.Element {\n const isDisabled = disabledCondition != null && disabledCondition(row);\n return (\n \n {columns.map((column, i) => (\n \n ))}\n \n );\n}\n\nfunction Cell({ data, column, isSelected, currenciesMap, onSelectionChange, onButtonClick }: CellProps) {\n const handleSelectionChange = useCallback(\n (val: ChangeEvent) => onSelectionChange != null && onSelectionChange(val.target.checked),\n [onSelectionChange]\n );\n const { colorTextMuted, colorTextImportant } = useTheme();\n const width =\n column.width ??\n (column.type === DataTableColumnTypes.Checkbox ||\n column.type === DataTableColumnTypes.Button ||\n column.type === DataTableColumnTypes.ToggleButton ||\n column.type === DataTableColumnTypes.Number\n ? '1px'\n : 'auto');\n const shouldRender = column.renderCondition == null || column.renderCondition(data);\n const isDisabled = column.disabledCondition != null && column.disabledCondition(data);\n return (\n \n {shouldRender\n ? (() => {\n switch (column.type) {\n case DataTableColumnTypes.Checkbox:\n return ;\n case DataTableColumnTypes.ToggleButton: {\n const value = column.field && getValue(data, column.field);\n const label = value != null ? value : column.buttonLabel;\n return (\n onSelectionChange && onSelectionChange(!isSelected)}\n selectedVariant={column.variant}\n >\n {label}\n \n );\n }\n case DataTableColumnTypes.Number: {\n let increment = column.increment ?? '0.01';\n let unit = column.unit ?? '';\n const currency = column.currencyField != null ? (data[column.currencyField] as unknown as string) : '';\n const currencyInfo = currenciesMap.get(currency ?? '');\n if (currencyInfo != null) {\n increment = column.increment ?? currencyInfo.DefaultIncrement;\n unit = column.unit ?? currencyInfo.Symbol;\n }\n const number = getValue(data, column.field);\n return (\n \n );\n }\n case DataTableColumnTypes.Percent: {\n const increment = column.increment ?? '0.01';\n const value = getValue(data, column.field);\n const number = value != null ? Big(value).times(100).toFixed() : undefined;\n return (\n \n );\n }\n case DataTableColumnTypes.Date: {\n return formattedDate(getValue(data, column.field));\n }\n case DataTableColumnTypes.DaysUntil: {\n return daysUntil(new Date(Date.parse(getValue(data, column.field))));\n }\n case DataTableColumnTypes.Currency: {\n const currency = currenciesMap.get(getValue(data, column.field));\n return (\n <>\n {currency?.Symbol && }\n {currency?.Symbol}\n \n );\n }\n case DataTableColumnTypes.Button: {\n const value = column.field && getValue(data, column.field);\n const label = value != null ? value : column.buttonLabel;\n return (\n onButtonClick != null && onButtonClick(column.action)}\n >\n {label}\n \n );\n }\n case DataTableColumnTypes.NavButton: {\n const value = column.field && getValue(data, column.field);\n const label = value != null ? value : column.buttonLabel;\n const url = column.urlField ? getValue(data, column.urlField) : column.url;\n const to = url?.includes('//') ? { pathname: url } : url;\n return (\n \n {label}\n \n );\n }\n case DataTableColumnTypes.Custom: {\n return column.render(data);\n }\n default:\n return getValue(data, column.field);\n }\n })()\n : null}\n \n );\n}\n\ntype DataTableProps = {\n rowData: T[];\n selection?: T[];\n columnDefs: DataTableColumn[];\n rowID: keyof T;\n currenciesMap?: Map;\n rowHeight?: number;\n disabledCondition?: (data: T) => boolean;\n onButtonClick?: (action: string, row: T) => void;\n onSelectionChange?: (selection: T[]) => void;\n} & BoxProps;\n\nexport type DataTableColumn = DataTableBaseColumn &\n (\n | DataTableStringColumn\n | DataTableNumberColumn\n | DataTableCurrencyColumn\n | DataTableDateColumn\n | DataTableRelativeDateTimeColumn\n | DataTableDaysUntilColumn\n | DataTablePercentColumn\n | DataTableCheckboxColumn\n | DataTableButtonColumn\n | DataTableToggleButtonColumn\n | DataTableCustomColumn\n | DataTableNavButtonColumn\n );\n\ntype DataTableBaseColumn = {\n width?: string;\n pinned?: 'right' | 'left';\n renderCondition?: (data: T) => boolean;\n disabledCondition?: (data: T) => boolean;\n};\n\ntype DataTableStringColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.String;\n field: keyof T & string;\n};\n\ntype DataTableDateColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.Date;\n format?: string;\n field: keyof T & string;\n};\n\ntype DataTableRelativeDateTimeColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.RelativeDateTime;\n format?: string;\n field: keyof T & string;\n};\n\ntype DataTableDaysUntilColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.DaysUntil;\n format?: string;\n field: keyof T & string;\n};\n\ntype DataTableCurrencyColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.Currency;\n field: keyof T & string;\n};\n\ntype DataTablePercentColumn = {\n label?: ReactNode;\n increment?: string;\n type: DataTableColumnTypes.Percent;\n field: keyof T & string;\n};\n\ntype DataTableCheckboxColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.Checkbox;\n field?: keyof T & string;\n};\n\ntype DataTableToggleButtonColumn = {\n label?: ReactNode;\n buttonLabel?: string;\n action: string;\n type: DataTableColumnTypes.ToggleButton;\n field?: keyof T & string;\n size?: FormControlSizes;\n variant?: ButtonVariants;\n};\n\ntype DataTableButtonColumn = {\n label?: ReactNode;\n buttonLabel?: string;\n action: string;\n type: DataTableColumnTypes.Button;\n ghost?: boolean;\n startIcon?: IconName;\n endIcon?: IconName;\n field?: keyof T & string;\n size?: FormControlSizes;\n variant?: ButtonVariants;\n};\n\ntype DataTableNavButtonColumn = {\n label?: ReactNode;\n buttonLabel?: string;\n urlField?: keyof T;\n url?: string;\n type: DataTableColumnTypes.NavButton;\n field?: keyof T & string;\n size?: FormControlSizes;\n variant?: ButtonVariants;\n};\n\ntype DataTableNumberColumn = {\n label?: ReactNode;\n type: DataTableColumnTypes.Number;\n increment?: string;\n currencyField?: keyof T;\n unit?: string;\n field: keyof T & string;\n};\n\ntype DataTableCustomColumn = {\n field?: keyof T & string;\n label?: ReactNode;\n type: DataTableColumnTypes.Custom;\n render: (data: T) => ReactNode;\n};\n\ntype CellProps = {\n data: T;\n column: DataTableColumn;\n isSelected: boolean;\n currenciesMap: Map;\n onSelectionChange?: (selected: boolean) => void;\n onButtonClick?: (action: string) => void;\n};\n\nfunction getValue(data: T, field: keyof T): string {\n return data[field] as unknown as string;\n}\n","import { InputsAndDropdownsDrawer } from '../Drawer/InputsAndDropdownsDrawer';\nimport { ModifyJsonDrawer } from '../Drawer/ModifyJsonDrawer';\nimport type { EntityAdminPageProps } from './EntityAdminPage';\nimport type { EntityPageRecord } from './types';\n\nexport enum GenericDrawerTypeEnum {\n JSON = 'JSON',\n InputsAndDropdowns = 'InputsAndDropdowns',\n}\n\ntype EntityAdminDrawerProps = Pick<\n EntityAdminPageProps,\n | 'drawerOptions'\n | 'selectedEntity'\n | 'handleOnSaveEntity'\n | 'handleOnDeleteEntity'\n | 'allowAddEntity'\n | 'allowEditEntity'\n | 'allowDeleteEntity'\n | 'addingChildEntity'\n | 'drawerType'\n>;\n\nexport const EntityAdminDrawer = ({\n drawerOptions,\n selectedEntity,\n handleOnSaveEntity,\n handleOnDeleteEntity,\n allowAddEntity,\n allowEditEntity,\n allowDeleteEntity,\n addingChildEntity,\n drawerType,\n}: EntityAdminDrawerProps) => {\n if (!allowAddEntity && !allowEditEntity) {\n // No permissions to add or edit entities using the drawer\n return null;\n }\n\n return (\n <>\n {drawerType === GenericDrawerTypeEnum.JSON && (\n \n )}\n {drawerType === GenericDrawerTypeEnum.InputsAndDropdowns && drawerOptions != null && (\n \n )}\n \n );\n};\n","export enum QuoteStatusEnum {\n PendingNew = 'PendingNew',\n Open = 'Open',\n PendingCancel = 'PendingCancel',\n Canceled = 'Canceled',\n PendingFill = 'PendingFill',\n Filled = 'Filled',\n Closed = 'Closed',\n Rejected = 'Rejected',\n Excluded = 'Excluded',\n Holding = 'Holding',\n}\n\nexport enum TradeStatusEnum {\n Confirmed = 'Confirmed',\n Pending = 'Pending',\n Canceled = 'Canceled',\n}\n\nexport enum ExposureStatusEnum {\n Online = 'Online',\n Offline = 'Offline',\n}\n","import type { Observable } from 'rxjs';\nimport type {\n CareExecutionReport,\n CustomerExecutionReport,\n CustomerQuote,\n CustomerTrade,\n CustomerTransaction,\n ExecutionReport,\n Loan,\n LoanQuote,\n LoanTransaction,\n Quote,\n} from '../../types';\nimport type { TimelineItemProps } from '../Timeline';\n\nexport interface ExecutionTimelineProps {\n /** Automatically groups similar items (such as trades) in a TimelineGroup. */\n groupSimilarItems?: boolean;\n\n /** Shows who's the initiator of the event (e.g. \"Customer\", \"Dealer\", \"Lender\", \"Borrower\", etc.) */\n showInitiatorLabels?: boolean;\n\n /** Show items in reversed order, newest first */\n reverse?: boolean;\n\n /** Statuses to filter out entries */\n statuses?: string[];\n\n customerExecutionReports?: Observable;\n customerQuotes?: Observable;\n executionReports?: Observable;\n quotes?: Observable;\n loanQuotesBorrower?: Observable;\n loanQuotesLender?: Observable;\n loans?: Observable;\n loanTransactions?: Observable;\n customerTrades?: Observable;\n customerTransactions?: Observable;\n careExecutionReports?: Observable;\n}\n\nexport type ExecutionTimelineEntry =\n | ExecutionTimelineItemEntry\n | ExecutionTimelineGroupEntry;\n\nexport interface ExecutionTimelineItemEntry {\n props: TimelineItemProps;\n rawData: RawData;\n type: 'item';\n}\n\nexport interface ExecutionTimelineGroupEntry {\n items: ExecutionTimelineItemEntry[];\n type: 'group';\n}\n\nexport interface WithTimestamp {\n Timestamp: string;\n}\n\nexport enum TimelineStatusEnum {\n Canceled = 'Canceled',\n Rejected = 'Rejected',\n PendingNew = 'Submitted',\n PendingPause = 'Pause requested',\n Paused = 'Paused',\n PendingResume = 'Resume requested',\n Resumed = 'Resumed',\n Replaced = 'Modified',\n ReplaceRejected = 'Modification rejected',\n Trade = 'Traded',\n Triggered = 'Triggered',\n}\n","import type { ReactNode } from 'react';\nimport type { CSSProperties } from 'styled-components';\n\nimport type { Currency } from '../../types';\nimport type { InputVariants } from '../Form';\n\nexport enum GridFormTypes {\n String,\n Currency,\n Number,\n Percent,\n Duration,\n Select,\n TextArea,\n}\n\ninterface GridFormGroupBase {\n label: ReactNode;\n field: keyof T;\n help?: ReactNode;\n tooltip?: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n gridColumn?: CSSProperties['gridColumn'];\n gridRow?: CSSProperties['gridRow'];\n placeholder?: string;\n disabled?: boolean;\n required?: boolean;\n variant?: InputVariants;\n}\n\ninterface GridFormSelectGroup extends GridFormGroupBase {\n type: GridFormTypes.Select;\n options?: GridFormGroupOption[];\n}\ninterface GridFormCurrencyGroup extends GridFormGroupBase {\n type: GridFormTypes.Currency;\n options?: Currency[];\n showClear?: boolean;\n}\n\ninterface GridFormDurationGroup extends GridFormGroupBase {\n type: GridFormTypes.Duration;\n minValue?: Date;\n maxValue?: Date;\n shortcuts?: { [key: string]: string };\n}\n\ninterface GridFormTextAreaGroup extends GridFormGroupBase {\n type: GridFormTypes.TextArea;\n rows?: number;\n}\n\ninterface GridFormNumbericGroup extends GridFormGroupBase {\n type: GridFormTypes.Percent | GridFormTypes.Number;\n min?: string;\n max?: string;\n minIncrement?: string;\n defaultIncrement?: string;\n largeIncrement?: string;\n}\n\ninterface GridFormGroupOther extends GridFormGroupBase {\n type: Exclude<\n GridFormTypes,\n | GridFormTypes.Select\n | GridFormTypes.Currency\n | GridFormTypes.Duration\n | GridFormTypes.Number\n | GridFormTypes.Percent\n | GridFormTypes.TextArea\n >;\n}\n\nexport type GridFormGroup =\n | GridFormCurrencyGroup\n | GridFormSelectGroup\n | GridFormDurationGroup\n | GridFormNumbericGroup\n | GridFormTextAreaGroup\n | GridFormGroupOther;\n\nexport type GridFormGroupOption = {\n value: string;\n label: string;\n description: string;\n};\n","import type { ReactNode } from 'react';\nimport type { IconName } from '../Icons';\n\nexport type NoteStorage = 'localStorage' | 'sessionStorage';\n\nexport interface NoteProps {\n id: string;\n text: ReactNode;\n actions?: ReactNode;\n icon?: IconName;\n closable?: boolean;\n variant?: NoteVariant;\n onDismiss?: () => void;\n storage?: NoteStorage;\n}\n\nexport enum NoteVariant {\n Default,\n Positive,\n Negative,\n Warning,\n Primary,\n Announcement,\n}\n","export enum StepType {\n Bid = 'BID',\n Offer = 'OFFER',\n}\n","import { useCallback, useEffect, useState, type RefObject } from 'react';\n\nexport enum ResizerPlacement {\n LEFT,\n TOP,\n RIGHT,\n BOTTOM,\n}\n\nfunction canResize(change: number, currVal: number, maxVal: number | null): boolean {\n if (change < 0 || maxVal == null) {\n return true;\n } else {\n return currVal + change < maxVal;\n }\n}\n\nexport function movementAndPlacementToSizeChange(movement: number, placement: ResizerPlacement): number {\n switch (placement) {\n case ResizerPlacement.LEFT:\n case ResizerPlacement.TOP:\n return -movement;\n case ResizerPlacement.RIGHT:\n case ResizerPlacement.BOTTOM:\n return movement;\n\n default:\n return 0;\n }\n}\n\nexport type ResizerInputs = {\n resizeableRef: RefObject;\n resizeX?: boolean;\n resizeY?: boolean;\n maxWidthPx?: number | null;\n maxHeightPx?: number | null;\n placement: ResizerPlacement;\n};\n\nexport const useResizer = ({\n resizeableRef,\n resizeX = false,\n resizeY = false,\n maxWidthPx = null,\n maxHeightPx = null,\n placement,\n}: ResizerInputs) => {\n const [mouseDown, setMouseDown] = useState(false);\n\n const onResize = useCallback(\n (movementX: number, movementY: number) => {\n if (resizeableRef.current) {\n const element = resizeableRef.current;\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n if (resizeX) {\n const widthChange = movementAndPlacementToSizeChange(movementX, placement);\n if (canResize(widthChange, width, maxWidthPx)) {\n element.style.width = `${width + widthChange}px`;\n }\n }\n if (resizeY) {\n const heightChange = movementAndPlacementToSizeChange(movementY, placement);\n if (canResize(heightChange, height, maxHeightPx)) {\n element.style.height = `${height + heightChange}px`;\n }\n }\n }\n },\n [resizeableRef, maxWidthPx, resizeX, resizeY, maxHeightPx, placement]\n );\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (e.buttons === 0) {\n setMouseDown(false);\n } else {\n onResize(e.movementX, e.movementY);\n }\n };\n\n if (mouseDown) {\n window.addEventListener('mousemove', handleMouseMove);\n }\n\n return () => window.removeEventListener('mousemove', handleMouseMove);\n }, [mouseDown, onResize]);\n\n useEffect(() => {\n const handleMouseUp = () => setMouseDown(false);\n window.addEventListener('mouseup', handleMouseUp);\n return () => window.removeEventListener('mouseup', handleMouseUp);\n }, []);\n\n const onMouseDown = e => {\n setMouseDown(true);\n e.preventDefault(); // stop from highlighting text and stuff when resizing\n };\n\n return {\n onMouseDown,\n };\n};\n","import { createContext, useCallback, useContext, useEffect, useMemo, useState, type PropsWithChildren } from 'react';\n\ninterface AccordionGroupContextOutput {\n registerAccordion: (id: string, open?: boolean) => void;\n unregisterAccordion: (id: string) => void;\n accordionsMap: Map;\n openAccordion: (id: string) => void;\n closeAccordion: (id: string) => void;\n toggleAccordion: (id: string) => void;\n toggleAllToOpen: boolean;\n closeAllAccordions: () => void;\n openAllAccordions: () => void;\n toggleAllAccordions: () => void;\n}\n\nexport const AccordionGroupContext = createContext(undefined);\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\nexport function useAccordionGroupContext() {\n const context = useContext(AccordionGroupContext);\n if (context === undefined) {\n throw new Error('Missing AccordionGroupContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport const AccordionGroup = ({ children }: React.PropsWithChildren) => {\n const [accordionsMap, setAccordionsMap] = useState>(new Map());\n const [toggleAllToOpen, setToggleAllToOpen] = useState(true); // seems like a reasonable default\n\n useEffect(() => {\n setToggleAllToOpen(() => {\n // if there is any closed accordion, we should always say \"toggle all to open\"\n for (const open of accordionsMap.values()) {\n if (!open) {\n return true;\n }\n }\n\n return false;\n });\n }, [accordionsMap]);\n\n const registerAccordion = useCallback((id: string, open = false) => {\n setAccordionsMap(curr => {\n if (!curr.has(id)) {\n return new Map(curr).set(id, open);\n }\n\n return curr;\n });\n }, []);\n\n const unregisterAccordion = useCallback((id: string) => {\n setAccordionsMap(curr => {\n curr.delete(id);\n return new Map(curr);\n });\n }, []);\n\n const changeAccordionOpenState = useCallback((id: string, open: boolean) => {\n setAccordionsMap(curr => {\n return new Map(curr).set(id, open);\n });\n }, []);\n\n const openAccordion = useCallback(\n (id: string) => {\n changeAccordionOpenState(id, true);\n },\n [changeAccordionOpenState]\n );\n\n const closeAccordion = useCallback(\n (id: string) => {\n changeAccordionOpenState(id, false);\n },\n [changeAccordionOpenState]\n );\n\n const toggleAccordion = useCallback((id: string) => {\n setAccordionsMap(curr => {\n const isOpen = curr.get(id);\n if (isOpen == null) {\n return curr;\n }\n return new Map(curr).set(id, !isOpen);\n });\n }, []);\n\n const changeAllOpenStates = useCallback((newOpen: boolean) => {\n setAccordionsMap(curr => {\n const newMap = new Map();\n curr.forEach((_, key) => {\n newMap.set(key, newOpen);\n });\n return newMap;\n });\n }, []);\n\n const closeAllAccordions = useCallback(() => {\n changeAllOpenStates(false);\n }, [changeAllOpenStates]);\n\n const openAllAccordions = useCallback(() => {\n changeAllOpenStates(true);\n }, [changeAllOpenStates]);\n\n const toggleAllAccordions = useCallback(() => {\n changeAllOpenStates(toggleAllToOpen);\n }, [toggleAllToOpen, changeAllOpenStates]);\n\n const value = useMemo(() => {\n return {\n registerAccordion,\n unregisterAccordion,\n accordionsMap,\n openAccordion,\n closeAccordion,\n toggleAccordion,\n toggleAllToOpen,\n closeAllAccordions,\n openAllAccordions,\n toggleAllAccordions,\n };\n }, [\n registerAccordion,\n unregisterAccordion,\n accordionsMap,\n openAccordion,\n closeAccordion,\n toggleAccordion,\n toggleAllToOpen,\n closeAllAccordions,\n openAllAccordions,\n toggleAllAccordions,\n ]);\n\n return {children};\n};\n\nexport const withAccordionGroup =\n

(Component: React.ComponentType

) =>\n (props: PropsWithChildren

) =>\n (\n \n \n \n );\n","import type { CSSProperties } from 'react';\nimport { useConstant, useJsonModal, useSecurity } from '../../hooks';\nimport type { Security } from '../../types';\nimport { IconButton } from '../Button';\nimport type { BoxProps } from '../Core';\nimport { VStack } from '../Core';\nimport { CurrencyIcon } from '../CurrencyIcon';\nimport { FormControlSizes } from '../Form';\nimport { IconName } from '../Icons';\nimport { Text } from '../Text';\nimport { Tooltip } from '../Tooltip';\nimport { UnifiedLiquidityTooltip } from '../UnifiedLiquidity';\nimport { SymbolDisplayWrapper } from './styles';\n\nexport enum SymbolDisplaySize {\n Small,\n Default,\n}\n\nexport interface SymbolDisplayProps {\n symbol?: string;\n showDescription?: boolean;\n size?: SymbolDisplaySize;\n underlyingSymbols?: string[];\n showJSON?: boolean;\n}\n\nexport const SymbolDisplay = ({\n symbol,\n showDescription = true,\n size,\n underlyingSymbols,\n showJSON = false,\n ...props\n}: SymbolDisplayProps & BoxProps) => {\n const security = useSecurity(symbol);\n const { handleClickJson, jsonModal } = useJsonModal();\n const showUnifiedLiquidity = !!underlyingSymbols?.length;\n const targetStyle: CSSProperties = useConstant({ float: 'right' });\n\n return (\n }\n targetStyle={targetStyle}\n >\n \n \n \n \n {security?.DisplaySymbol ?? symbol}\n {showUnifiedLiquidity ? '+' : ''}{' '}\n \n {showDescription && (\n \n {security?.Description}\n \n )}\n \n {showJSON && (\n handleClickJson(security)}\n size={FormControlSizes.Small}\n />\n )}\n {jsonModal}\n \n \n );\n};\n","import { values } from 'lodash';\nimport { memo, useEffect, useMemo, useRef, useState, type ChangeEventHandler } from 'react';\nimport { defineMessages } from 'react-intl';\nimport { SecurityType, useMixpanel } from '../../contexts';\nimport { useConstant, useDeviceType, useDynamicCallback, useIntl } from '../../hooks';\nimport { MixpanelEvent, MixpanelEventProperty } from '../../tokens';\nimport { ButtonVariants, IconButton } from '../Button';\nimport { Flex, type BoxProps } from '../Core';\nimport { Divider } from '../Divider';\nimport { DropdownFilter, ToggleButtonFilter, type DropdownFilterProps, type ToggleButtonFilterProps } from '../Filters';\nimport { FormControlSizes, Input } from '../Form';\nimport { Icon, IconName } from '../Icons';\nimport { SearchWrapper, WatchListFiltersWrapper } from './styles';\nimport type { WatchlistLayout } from './types';\n\nconst messages = defineMessages({\n searchSymbol: {\n defaultMessage: 'Search Symbol...',\n id: 'Watchlist.searchSymbol',\n },\n});\n\nexport interface WatchlistFiltersProps {\n filteredCurrencies: string[];\n onFilteredCurrenciesChange: (currencies: string[]) => void;\n securityType: SecurityType;\n onSecurityTypeChange?: (securityType: SecurityType) => void;\n showOnlyFavorites: boolean;\n onShowOnlyFavorites: (showOnlyFavorites: boolean) => void;\n onSearchTextChange: ChangeEventHandler;\n searchText: string;\n selectableCurrencies?: string[];\n layout: WatchlistLayout | undefined;\n securityTypesOptions?: SecurityType[];\n}\n\nexport enum FilterableProperties {\n FAVORITES = 'Favorites',\n PRODUCT_TYPE = 'Product Type',\n CURRENCY = 'Currency',\n}\n\nconst DEFAULT_CURRENCIES = ['BTC', 'ETH', 'USD', 'USDT', 'EUR'];\nconst DEFAULT_LAYOUT: WatchlistLayout = {\n currency: 'show',\n favorites: 'show',\n search: 'expanded',\n securityType: 'show',\n};\n\nconst securityTypeFilterOptions = values(SecurityType);\n\nexport const WatchlistFilters = memo(function ({\n filteredCurrencies,\n onFilteredCurrenciesChange,\n securityType,\n onSecurityTypeChange,\n showOnlyFavorites,\n onShowOnlyFavorites,\n onSearchTextChange,\n searchText,\n selectableCurrencies = DEFAULT_CURRENCIES,\n layout = DEFAULT_LAYOUT,\n securityTypesOptions = securityTypeFilterOptions,\n}: WatchlistFiltersProps) {\n const mixpanel = useMixpanel();\n const deviceType = useDeviceType();\n const isMobile = deviceType === 'mobile';\n\n const toggleOnlyFavorites = useDynamicCallback(() => {\n mixpanel.track(MixpanelEvent.FilterWatchlist, {\n [MixpanelEventProperty.Filter]: FilterableProperties.FAVORITES,\n });\n onShowOnlyFavorites(!showOnlyFavorites);\n });\n\n const dropdownItemProps = useConstant['itemProps']>({\n size: FormControlSizes.Default,\n });\n\n const dropdownButtonProps = useConstant['buttonProps']>({\n size: FormControlSizes.Small,\n variant: ButtonVariants.Default,\n endIcon: undefined,\n });\n\n const dropdownFilterProps = useMemo(\n function DropdownFilterProps() {\n return {\n options: securityTypesOptions,\n renderItem: label => label,\n renderSelectedItem: (selected: SecurityType) =>\n selected === SecurityType.CalendarSpread ? 'C Sprd' : selected,\n getKey: label => label,\n onChange: option => {\n mixpanel.track(MixpanelEvent.FilterWatchlist, {\n [MixpanelEventProperty.Filter]: FilterableProperties.PRODUCT_TYPE,\n [MixpanelEventProperty.Value]: option,\n });\n onSecurityTypeChange?.(option);\n },\n selection: securityType,\n wrapperProps: {\n minWidth: '42px',\n },\n } satisfies DropdownFilterProps;\n },\n [mixpanel, securityType, onSecurityTypeChange, securityTypesOptions]\n );\n\n const selectedCurrencies = useMemo(() => new Set(filteredCurrencies), [filteredCurrencies]);\n const toggleFilterProps = useMemo(\n function ToggleButtonFilterProps() {\n return {\n options: selectableCurrencies,\n selections: [...selectedCurrencies.values()],\n getKey: label => label,\n onToggleChange: newSelections => {\n mixpanel.track(MixpanelEvent.FilterWatchlist, {\n [MixpanelEventProperty.Filter]: FilterableProperties.CURRENCY,\n });\n onFilteredCurrenciesChange(newSelections);\n },\n renderContent: label => label,\n multiSelect: false,\n } satisfies Partial>;\n },\n [mixpanel, selectedCurrencies, onFilteredCurrenciesChange, selectableCurrencies]\n );\n\n return (\n <>\n \n {(!isMobile || layout.search === 'expanded') && (\n \n )}\n \n {(!isMobile || layout.favorites === 'show') && (\n \n )}\n {isMobile && layout.search === 'icon' && (\n \n )}\n {!isMobile && layout.securityType === 'show' && onSecurityTypeChange && (\n \n )}\n \n {layout.currency !== 'hide' && (\n \n )}\n \n \n \n );\n});\n\ninterface SearchProps {\n onSearchTextChange: ChangeEventHandler;\n searchText: string;\n}\n\nfunction SearchComponent({ onSearchTextChange, searchText, ...props }: SearchProps & BoxProps) {\n const { formatMessage } = useIntl();\n return (\n \n }\n placeholder={formatMessage(messages.searchSymbol)}\n onChange={onSearchTextChange}\n value={searchText}\n clearable={true}\n />\n \n );\n}\n\nfunction SearchButton({ onSearchTextChange, searchText }: SearchProps) {\n const [active, setActive] = useState(false);\n const ref = useRef(null);\n const { formatMessage } = useIntl();\n\n const handleBlur = useDynamicCallback(() => {\n if (searchText === '') {\n setActive(false);\n }\n });\n\n const handleChange: ChangeEventHandler = useDynamicCallback(e => {\n onSearchTextChange(e);\n if (!e.target.value && e.target !== document.activeElement) {\n setActive(false);\n }\n });\n\n useEffect(() => {\n active && ref.current && ref.current.focus();\n }, [active]);\n\n return (\n <>\n setActive(true)} />\n {active && (\n \n }\n placeholder={formatMessage(messages.searchSymbol)}\n onChange={handleChange}\n onBlur={handleBlur}\n value={searchText}\n clearable={true}\n />\n \n )}\n \n );\n}\n","import {\n Box,\n Checkmark,\n Crossmark,\n DISABLED_REASONABILITY_CHECK_STRATEGIES_SET,\n Dialog,\n Divider,\n EMPTY_ARRAY,\n FormattedMessage,\n HStack,\n InlineFormattedNumber,\n MixpanelEvent,\n MixpanelEventSource,\n NewOrderForm,\n NotificationVariants,\n OrdStatusEnum,\n Spinner,\n Text,\n Toasts,\n VStack,\n archiveOrderID,\n calculateMidPrice,\n cleanState,\n format,\n isCFD,\n logger,\n modifyOrder,\n resubmitOrderForm,\n selectBalances,\n selectError,\n selectFocusedOrderID,\n selectForm,\n selectIsFormValid,\n selectLimitPrice,\n selectModifiedOrder,\n selectOrderStep,\n selectOrderViewType,\n selectQuote,\n selectQuoteReqID,\n selectTradingLimitsValidation,\n setError,\n setFocusedOrderID,\n setMarketAccount,\n setOrderCurrency,\n setQuantity,\n setSide,\n setStrategy,\n setStrategyParams,\n setViewType,\n touchAll,\n touchField,\n unsetQuoteReqID,\n useCurrenciesContext,\n useDisclosure,\n useDynamicCallback,\n useMarketDataSnapshot,\n useMixpanel,\n useOMSDependencies,\n useObservableValue,\n useOrderDependencies,\n useRFQServiceContext,\n useToasts,\n useWLOrder,\n useWLOrderFormDispatch,\n useWLOrderFormSelector,\n useWLOrderServiceContext,\n useWLSymbol,\n validateMidPriceDiff,\n type CustomerOrder,\n type MarketDataSnapshot,\n type NewOrderFormProps,\n type OrderFormSides,\n type RootState,\n type Security,\n type WLOrderStrategy,\n} from '@talos/kyoko';\nimport type { BigSource } from 'big.js';\nimport { useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { scan } from 'rxjs';\nimport { v4 as uuid } from 'uuid';\nimport { useGlobalCancelDialog } from '../../providers';\nimport { OMS_DIALOG_WIDTH } from '../../styles/dimensions';\nimport { useShouldRenderMobile } from '../Layout/useShouldRenderMobile';\nimport { BalanceDetails } from './BalanceDetails';\nimport { ExecutionCard } from './ExecutionCard';\nimport { OrderSummary } from './OrderSummary';\nimport { PickQuoteView } from './PickQuoteView';\nimport { FeedbackMessage, MessageWrapper, OVERLAY_Z_INDEX, OmsToasts, OrderFormsWrapper, Overlay } from './styles';\n\n/**\n * When placing order, this enum is used to determine the step of validation to perform.\n * For example, clicking place order in order form, or in a midprice modal, or in order size modal.\n * Once the validation is NONE, no checks are made and the order is sent.\n */\nenum CheckValidationStep {\n MIDPRICE,\n ORDSIZE,\n NONE,\n}\n\nconst getStrategiesGivenSecurity = (s: Security) => s.SupportedStrategies ?? [];\nexport const OrderForms = () => {\n useOMSDependencies({ getStrategiesGivenSecurity });\n return ;\n};\n\nconst messages = defineMessages({\n sendingOrder: {\n defaultMessage: 'Sending order',\n id: 'OrderForms.sendingOrder',\n },\n orderSent: {\n defaultMessage: 'Order sent',\n id: 'OrderForms.orderSent',\n },\n orderFilled: {\n defaultMessage: 'Order filled',\n id: 'OrderForms.orderFilled',\n },\n quoteExpired: {\n defaultMessage: 'Quote expired',\n id: 'OrderForms.quoteExpired',\n },\n orderUpdated: {\n defaultMessage: 'Order updated',\n id: 'OrderForms.orderUpdated',\n },\n orderRejected: {\n defaultMessage: 'Order rejected',\n id: 'OrderForms.orderRejected',\n },\n modifyRejected: {\n defaultMessage: 'Modification rejected',\n id: 'OrderForms.modifyRejected',\n },\n cancelFailed: {\n defaultMessage: 'Cancel failed',\n id: 'OrderForms.cancelFailed',\n },\n orderCanceled: {\n defaultMessage: 'Order canceled',\n id: 'OrderForms.orderCanceled',\n },\n cancelOrder: {\n defaultMessage: 'Canceling order',\n id: 'OrderForms.cancelOrder',\n },\n continueConfirmation: {\n defaultMessage: 'Are you sure you want to continue?',\n id: 'OrderForms.continueConfirmation',\n },\n thresholdWarning: {\n defaultMessage: 'Quantity exceeds the threshold. Do you want to proceed with the order?',\n id: 'OrderForms.thresholdWarning',\n },\n warningThreshold: {\n defaultMessage: 'Warning Threshold',\n id: 'OrderForms.warningThreshold',\n },\n midPriceWarning: {\n defaultMessage: `Limit price {limitPrice} {quoteCurrency} is more than 5% away from mid price {midPrice} {quoteCurrency}.`,\n id: 'OrderForms.midPriceWarning',\n },\n slowToRespondToast: {\n defaultMessage: 'The server is slow to respond. If this error persists, please contact support.',\n id: 'OrderForms.slowToRespondToast',\n },\n});\n\nconst NewOrderForms: FC = () => {\n useOrderDependencies();\n const dispatch = useWLOrderFormDispatch();\n const orderBeingModified = useWLOrderFormSelector(selectModifiedOrder);\n const orderFormValid = useWLOrderFormSelector(selectIsFormValid);\n const orderStep = useWLOrderFormSelector(selectOrderStep);\n const quoteReqID = useWLOrderFormSelector(selectQuoteReqID);\n const maybeQuote = useWLOrderFormSelector(selectQuote);\n const { orderService } = useWLOrderServiceContext();\n const focusedOrderID = useWLOrderFormSelector(selectFocusedOrderID);\n const orderViewType = useWLOrderFormSelector(selectOrderViewType);\n const { warn, limit } = useWLOrderFormSelector(selectTradingLimitsValidation);\n const form = useWLOrderFormSelector(selectForm);\n const { currenciesBySymbol } = useCurrenciesContext();\n\n const mixpanel = useMixpanel();\n\n const rfqService = useRFQServiceContext();\n\n const sendRFQForm = useDynamicCallback(() => {\n mixpanel.track(MixpanelEvent.SendRfq);\n\n if (orderFormValid) {\n rfqService.requestQuote();\n }\n });\n\n const sendOrderForm = useDynamicCallback(async () => {\n if (orderBeingModified) {\n mixpanel.track(MixpanelEvent.ModifyOrder, { strategy: form.strategyField.value?.Name });\n await orderService.updateOrder();\n } else {\n mixpanel.track(MixpanelEvent.SendOrder, { strategy: form.strategyField.value?.Name });\n await orderService.requestOrder();\n }\n });\n\n const handleViewTypeChange: NewOrderFormProps['handleViewTypeChange'] = useDynamicCallback(viewType => {\n dispatch(setViewType(viewType));\n });\n\n const handleClearForm: NewOrderFormProps['handleClearForm'] = useDynamicCallback(() => {\n if (maybeQuote || quoteReqID) {\n mixpanel.track(MixpanelEvent.CancelRfq);\n rfqService.cancelQuote(maybeQuote?.RFQID, quoteReqID ?? maybeQuote?.QuoteReqID);\n dispatch(unsetQuoteReqID());\n }\n dispatch(cleanState({ keepStrategy: true, keepSymbol: true }));\n });\n\n const handleQuantityChange: NewOrderFormProps['handleQuantityChange'] = useDynamicCallback(\n (qty: string | undefined) => {\n dispatch(setQuantity(qty));\n }\n );\n const handleOrderCurrencyChange: NewOrderFormProps['handleOrderCurrencyChange'] = useDynamicCallback(\n (ccy: string) => {\n dispatch(setOrderCurrency(ccy));\n }\n );\n\n const handleSideChange: NewOrderFormProps['handleSideChange'] = useDynamicCallback((side: OrderFormSides) => {\n dispatch(setSide(side));\n });\n const handleStrategyChange: NewOrderFormProps['handleStrategyChange'] = useDynamicCallback(\n (strategy: WLOrderStrategy | undefined) => {\n dispatch(setStrategy(strategy));\n }\n );\n const handleStrategyParamChange: NewOrderFormProps['handleStrategyParamChange'] = useDynamicCallback(\n (key: string, value: any) => {\n dispatch(setStrategyParams({ key, value }));\n }\n );\n\n const { setSymbol: setGlobalSymbol } = useWLSymbol();\n\n const handleSymbolChange: NewOrderFormProps['handleSymbolChange'] = useDynamicCallback(symbol => {\n if (symbol) {\n mixpanel.track(MixpanelEvent.ChangeSymbol, { source: MixpanelEventSource.OrderForm });\n setGlobalSymbol(symbol);\n }\n });\n\n const handleMarketAccountChange: NewOrderFormProps['handleMarketAccountChange'] = useDynamicCallback(account => {\n dispatch(setMarketAccount(account));\n });\n\n const handleTouchAll: NewOrderFormProps['handleTouchAll'] = useDynamicCallback(() => {\n dispatch(touchAll());\n });\n\n const handleTouchField: NewOrderFormProps['handleTouchField'] = useDynamicCallback((field: string) => {\n dispatch(touchField(field));\n });\n\n const security = form.symbolField.value;\n const marketDataSnapshotQuantity = form.quantityField.value || security?.NormalSize || '1';\n const marketDataSnapshotMarkets = useMemo(\n () =>\n form.marketAccountField.value?.SourceAccountID ? [form.marketAccountField.value.SourceAccountID] : EMPTY_ARRAY,\n [form.marketAccountField.value?.SourceAccountID]\n );\n const marketDataSnapshot = useMarketDataSnapshot({\n priceIncrement: security?.DefaultPriceIncrement,\n symbol: security?.Symbol,\n quantity: marketDataSnapshotQuantity,\n currency: form.orderCurrencyField.value,\n baseCurrency: security?.PositionCurrency || security?.BaseCurrency,\n tag: 'OMS/Order',\n // @ts-expect-error [sc-71645] Whitelabel UI Shouldn't Subscribe to \"Market\" Sub\n // All markets in Whitelabel are filtered to be Active\n markets: marketDataSnapshotMarkets,\n });\n\n const maxOrderSizeDialog = useDisclosure();\n const midPriceDialog = useDisclosure();\n\n const [midPriceToDisplay, setMidPriceToDisplay] = useState(null);\n const { midPrice, bidPrice, offerPrice } = useObservableValue(\n () =>\n marketDataSnapshot.marketDataSnapshots.pipe(\n scan(\n (res, snapshot: MarketDataSnapshot) => {\n const bidPrice = snapshot.Bids?.at(0)?.Price;\n const offerPrice = snapshot.Offers?.at(0)?.Price;\n const midPrice = calculateMidPrice(bidPrice, offerPrice);\n return { midPrice: midPrice, offerPrice, bidPrice };\n },\n { midPrice: null }\n )\n ),\n [marketDataSnapshot.marketDataSnapshots],\n { midPrice: null }\n );\n\n // We don't want to update the midprice whilst the dialog is showing.\n useEffect(() => {\n if (midPrice && !midPriceDialog.isOpen) {\n setMidPriceToDisplay(midPrice);\n }\n }, [midPrice, midPriceDialog.isOpen]);\n\n const submitForm: NewOrderFormProps['handleFormSubmit'] = useDynamicCallback(() => {\n if (orderViewType.value === 'order') {\n sendOrderForm();\n } else if (orderViewType.value === 'rfq') {\n mixpanel.track(MixpanelEvent.SendRfq);\n sendRFQForm();\n }\n });\n\n const maybeLimitPrice = useWLOrderFormSelector(selectLimitPrice);\n\n const handleFormSubmit = useDynamicCallback((step: CheckValidationStep) => {\n const shouldCheckReasonability =\n form.strategyField.value?.Name != null &&\n !DISABLED_REASONABILITY_CHECK_STRATEGIES_SET.has(form.strategyField.value.Name);\n\n // check mid price\n if (\n step <= CheckValidationStep.MIDPRICE &&\n shouldCheckReasonability &&\n !validateMidPriceDiff(midPrice, maybeLimitPrice?.value)\n ) {\n midPriceDialog.open();\n return;\n }\n // look up the trading limit thresholds\n if (step <= CheckValidationStep.ORDSIZE && warn) {\n maxOrderSizeDialog.open();\n return;\n }\n submitForm();\n });\n\n const balances = useWLOrderFormSelector(selectBalances);\n\n const globalCancelDialog = useGlobalCancelDialog();\n\n const activeOrder = useWLOrder({ orderID: focusedOrderID ?? undefined });\n\n const onCloseCard = useDynamicCallback(() => {\n dispatch(setFocusedOrderID(null));\n });\n\n const onCancelOrder = useDynamicCallback((orderID: string) => {\n mixpanel.track(MixpanelEvent.CancelOrder);\n orderService.cancelOrder(orderID).catch(() => {\n globalCancelDialog.open(orderID, true);\n });\n });\n\n const onArchiveOrder = useDynamicCallback((orderID: string) => {\n mixpanel.track(MixpanelEvent.ArchiveOrder);\n dispatch(archiveOrderID(orderID));\n dispatch(setFocusedOrderID(null));\n });\n\n const onResubmitOrder = useDynamicCallback((order: CustomerOrder) => {\n mixpanel.track(MixpanelEvent.OpenResubmitOrder);\n dispatch(resubmitOrderForm(order));\n });\n\n const onModifyOrder = useDynamicCallback((order: CustomerOrder) => {\n mixpanel.track(MixpanelEvent.OpenModifyOrder);\n dispatch(modifyOrder(order));\n });\n\n const currentQuote = useWLOrderFormSelector((state: RootState) => state.order.quote);\n\n const confirmMidPrice = useDynamicCallback(() => {\n handleFormSubmit(CheckValidationStep.ORDSIZE);\n });\n\n const confirmMaxOrderSize = useDynamicCallback(() => {\n handleFormSubmit(CheckValidationStep.NONE);\n });\n\n const loading = orderStep === 'loading';\n const newConfirmation = orderStep === 'new_confirmation';\n const updateConfirmation = orderStep === 'update_confirmation';\n const updateRejected = orderStep === 'update_rejected';\n const newRejected = orderStep === 'new_rejected';\n const rfqExpired = orderStep === 'rfq_expired';\n const cancelFailed = orderStep === 'cancel_failed';\n const cancelling = orderStep === 'cancel_pending';\n const canceled = orderStep === 'cancel_confirmation';\n\n const showOverlay =\n loading ||\n newConfirmation ||\n updateConfirmation ||\n updateRejected ||\n newRejected ||\n cancelFailed ||\n cancelling ||\n rfqExpired ||\n canceled;\n\n const handleClickSubmitForm = useCallback(() => {\n handleFormSubmit(CheckValidationStep.MIDPRICE);\n }, [handleFormSubmit]);\n\n const error = useWLOrderFormSelector(selectError);\n const { toasts, add: addToast, remove: removeToast } = useToasts();\n const { formatMessage } = useIntl();\n\n useEffect(() => {\n if (error && error.text === 'no_order_response') {\n logger.error(new Error(`Did not receive order back with matching ClOrdID: ${error.clOrderID}`), {\n extra: { clOrderID: error.clOrderID },\n });\n addToast({\n id: uuid(),\n text: formatMessage(messages.slowToRespondToast),\n variant: NotificationVariants.Warning,\n dismissable: true,\n timeout: 10_000,\n });\n dispatch(setError(null));\n }\n }, [error, addToast, dispatch, formatMessage]);\n\n const isMobile = useShouldRenderMobile();\n\n return (\n \n {showOverlay && (\n \n {loading && (\n \n \n \n \n \n \n )}\n {newConfirmation && (\n \n \n \n {activeOrder?.OrdStatus === OrdStatusEnum.Filled ? (\n \n ) : (\n \n )}\n \n \n )}\n {newRejected && (\n \n \n {newRejected && }\n \n )}\n {updateConfirmation && (\n \n \n \n \n \n \n )}\n\n {updateRejected && (\n \n \n \n \n \n \n )}\n {rfqExpired && (\n \n \n \n \n \n \n )}\n\n {cancelFailed && (\n \n \n {cancelFailed && }\n \n )}\n {cancelling && (\n \n \n \n \n \n \n )}\n {canceled && (\n \n \n \n \n \n \n )}\n \n )}\n\n \n ) : null\n }\n orderSummary={}\n orderViewType={orderViewType}\n handleViewTypeChange={handleViewTypeChange}\n pickQuoteView={orderViewType.value === 'rfq' && quoteReqID ? : null}\n isMobile={isMobile}\n />\n {activeOrder && (\n \n \n \n )}\n\n \n \n

\n \n
\n
\n \n
\n \n \n \n {limit && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n {toasts?.length > 0 && (\n \n \n \n )}\n \n );\n};\n","import type { BoxProps, IconName, LayoutRequiredPermissions, ResizerPlacement, WLOrgConfig } from '@talos/kyoko';\nimport type { ReactElement, ReactNode } from 'react';\n\nexport type LayoutPart = {\n column: string;\n row: string;\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n resizable?: ResizerPlacement;\n isOrderForms?: boolean;\n} & BoxProps;\n\nexport type LayoutComponentPart = LayoutPart & {\n component: ReactNode | Omit;\n};\n\nexport type LayoutComponentScreen = {\n label: string;\n path: string;\n component: ReactElement;\n icon: IconName;\n orientation?: ScreenOrientationEnum;\n requiredPermissions?: string[];\n requiredConfigs?: (keyof WLOrgConfig)[];\n};\n\nexport type LayoutComponentArrangement = {\n columns: string[];\n displayName: string;\n headerSymbolSelector?: boolean;\n rows: string[];\n parts: LayoutComponentPart[];\n intlKey?: string;\n mobileScreens?: LayoutComponentScreen[];\n};\n\nexport type SingleLayoutComponent = Omit & {\n showOrderFormToggle?: 'right' | 'left';\n maxWidth?: number;\n};\n\ntype ArrangementMap = Record;\n\nexport type MultiLayoutComponent = {\n arrangements: ArrangementMap;\n arrangement?: string;\n showOrderFormToggle?: 'right' | 'left';\n maxWidth?: number;\n mobileScreens?: LayoutComponentScreen[];\n};\n\nexport type LayoutComponent = SingleLayoutComponent;\n\nexport type LayoutSpec = {\n layout: SingleLayoutComponent | MultiLayoutComponent;\n requiredPermissions?: LayoutRequiredPermissions;\n}[];\n\n/** Names from https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation/lock */\nexport enum ScreenOrientationEnum {\n any = 'any',\n natural = 'natural',\n portrait = 'portrait',\n portraitPrimary = 'portrait-primary',\n portraitSecondary = 'portrait-secondary',\n landscape = 'landscape',\n landscapePrimary = 'landscape-primary',\n landscapeSecondary = 'landscape-secondary',\n}\n","import type { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { datadogLogs, type LogsInitConfiguration } from '@datadog/browser-logs';\nimport { datadogRum, type RumInitConfiguration } from '@datadog/browser-rum';\nimport { noop } from 'lodash';\n\nexport interface DatadogArgs {\n environment: string;\n version: string;\n applicationId: string;\n clientToken: string;\n service: string;\n proxy?: string;\n\n /**\n * If true, will require a manual call to `startSessionReplayRecording()`, possibly with `{ force: true }`,\n * depending on the value of `sessionReplaySampleRate`\n *\n * See https://github.com/DataDog/browser-sdk/issues/1967#issuecomment-2023862956\n */\n startSessionReplayRecordingManually?: boolean;\n}\n\n// Non-prod back-ends go down a lot, so this allows us to ignore some errors\nconst IGNORED_UAT_ERRORS: Set = new Set(['Failed to fetch', 'NetworkError when attempting to fetch resource.']);\nconst IGNORED_PROD_ERRORS: Set = new Set([]);\n\nconst CSP_ERROR_TYPES: Set = new Set([\n 'script-src',\n 'font-src',\n 'frame-src',\n 'img-src',\n 'script-src-elem',\n 'media-src',\n 'connect-src',\n 'worder-src',\n]);\n\nexport function initDatadog({\n environment,\n version,\n applicationId,\n clientToken,\n service,\n proxy,\n startSessionReplayRecordingManually,\n}: DatadogArgs) {\n const isLocal = environment === 'local';\n const isProduction = environment === 'prod' || environment === 'sandbox';\n\n const commonConfiguration = {\n applicationId,\n site: 'datadoghq.com',\n clientToken,\n service,\n proxy: proxy == null ? undefined : options => `${proxy}${options.path}?${options.parameters}`,\n env: environment,\n version,\n useSecureSessionCookie: !isLocal,\n telemetrySampleRate: 0,\n sessionSampleRate: 100,\n } as const satisfies RumInitConfiguration & LogsInitConfiguration;\n\n datadogRum.init({\n ...commonConfiguration,\n compressIntakeRequests: true,\n allowFallbackToLocalStorage: true,\n\n // Track all the things\n trackUserInteractions: true,\n trackLongTasks: true,\n trackResources: true,\n\n // Only record session replays in production (100% of sessions by default)\n sessionReplaySampleRate: isProduction ? 100 : 0,\n startSessionReplayRecordingManually,\n beforeSend: (event, context) => {\n if (isLocal) {\n let consoleMethod: (message?: any, ...optionalParams: any[]) => void;\n switch (event.type) {\n case 'long_task':\n case 'vital':\n // Ignore logging long_task & vital events. They're not useful.\n consoleMethod = noop;\n break;\n case 'error':\n consoleMethod = console.warn;\n break;\n default:\n // eslint-disable-next-line no-console\n consoleMethod = console.debug;\n break;\n }\n consoleMethod('[Datadog]', event.type, event);\n // View events cannot be discarded\n // See https://docs.datadoghq.com/real_user_monitoring/browser/advanced_configuration\n if (event.type === 'view') {\n return true;\n }\n return false;\n }\n\n // If the page was discarded, we want to know about it\n // See https://developer.chrome.com/blog/memory-and-energy-saver-mode\n if (event.type === 'long_task' && 'wasDiscarded' in document && document.wasDiscarded) {\n event.context = { ...event.context, wasDiscarded: true };\n }\n\n if (event.type === 'error') {\n // Ignore certain errors\n const ignoredErrors = isProduction ? IGNORED_PROD_ERRORS : IGNORED_UAT_ERRORS;\n if (ignoredErrors.has(event.error.message)) {\n return false;\n }\n\n // Always ignore CSP errors\n if (CSP_ERROR_TYPES.has(event.error.type as string)) {\n return false;\n }\n\n // Attempt to ignore any errors coming from chrome extensions\n const stack = event.error.stack ?? (context as any).error.stack;\n if (stack?.includes('chrome-extension://')) {\n return false;\n }\n }\n\n return true;\n },\n });\n\n // Logs\n datadogLogs.init({\n ...commonConfiguration,\n forwardErrorsToLogs: !isLocal,\n\n // note that debug/info are manually forwarded in our logger\n forwardConsoleLogs: isLocal ? [] : ['error', 'warn', 'info'],\n });\n\n // Event handlers\n document.addEventListener('visibilitychange', () => {\n datadogRum.setGlobalContextProperty('document.visibilityState', document.visibilityState);\n datadogLogs.setGlobalContextProperty('document.visibilityState', document.visibilityState);\n });\n}\n","import Sugar from 'sugar';\nglobalThis.Sugar = Sugar;\n","/**\n * Checks if two arrays contain the same elements. The order of elements doesn't matter.\n * This function checks for value matching and not deep equality of elements.\n *\n * @param {T[]} a - The first array to compare.\n * @param {T[]} b - The second array to compare.\n * @returns {boolean} - Returns true if both arrays contain the same elements, false otherwise.\n */\nexport function arrayContentsEqual(a?: T[], b?: T[]) {\n if (!a && !b) {\n return true;\n }\n return a?.length === b?.length && a?.every(value => b?.includes(value));\n}\n\nexport function pushUnique(array: T[], item: T): T[] {\n if (!array.includes(item)) {\n return [...array, item];\n }\n return array;\n}\n\n/** Array Extension to remove values of null, undefined, and NaN\n * @param {boolean} compactAll - If true, removes all falsy values\n * @returns {T[]} - Returns a new array based on above conditions\n */\n// replacement for Sugar.Array.compact\nexport function compactArrayForThis(this: T[], compactAll: boolean) {\n return this.filter(item =>\n compactAll ? !!item : item !== undefined && item !== null && Number.isNaN(item) === false\n ) as Exclude[]; // TOOD this type could be improved to exclude falsy values if compactAll is true\n}\nglobalThis.Array.prototype.compact = compactArrayForThis;\n\n// target replacement for .compact()\n/** Array Extension to remove values of null, undefined, and NaN\n * @param {boolean} array - The array to compact\n * @param {boolean} compactAll - If true, removes all falsy values\n * @returns {T[]} - Returns a new array based on above conditions\n */\nexport function compactArray(array: T[], compactAll: boolean = false) {\n return array.filter(item =>\n compactAll ? !!item : item !== undefined && item !== null && Number.isNaN(item) === false\n ) as Exclude[]; // TOOD this type could be improved to exclude falsy values if compactAll is true\n}\n","import type { AnyAction, Dispatch } from '@reduxjs/toolkit';\nimport { batch } from 'react-redux';\n\n// Rather than dispatching each time there is a change, which as the dependencies grow could harm performance,\n// we can batch all actions and dispatching them as a single batch (single repaint) in frequent intervals\nexport class BufferedDispatcher {\n private queue: AnyAction[] = [];\n private intervalID: NodeJS.Timeout;\n\n // We don't want to buffer the initial dispatch of any reference data so there is no gap in having the data ready\n private processedTypes: Set = new Set();\n\n public constructor(private _dispatch: Dispatch) {\n this.intervalID = setInterval(() => {\n if (this.queue.length) {\n const copy = this.queue.slice();\n this.queue = [];\n batch(() => {\n copy.forEach(action => _dispatch(action));\n });\n }\n }, 2000);\n }\n\n // Once initialised and subsequent ref data update happens to be empty array/map then we should still accept it (clear what we have)\n public isTypeInitialised(type: string): boolean {\n return this.processedTypes.has(type);\n }\n\n public dispatch(action: AnyAction) {\n const actionType = action.type;\n if (this.processedTypes.has(actionType)) {\n // All reference data are state of world updates, if we dispatch a ref data update before it is propagated we are\n // safe to discard existing (outdated now) and simply keep the newest one\n this.queue = this.queue.filter(a => a.type !== action.type);\n this.queue.push(action);\n } else {\n this.processedTypes.add(actionType);\n this.dispatchImmediate(action);\n }\n }\n\n public dispatchImmediate(action: AnyAction) {\n this._dispatch(action);\n }\n\n public destroy() {\n clearInterval(this.intervalID);\n }\n}\n","import type { ComponentType, PropsWithChildren } from 'react';\n\n/**\n * Composes a list of React components to prevent ski-sloping:\n * @example\n * ```\n * composeComponents([A,B,C])\n * ```\n * is equivalent to\n * ```\n * \n * \n * \n * ...\n * \n * \n * \n * ```\n *\n * @param components Array of components to compose\n */\nexport function composeComponents(components: ComponentType[]): ComponentType> {\n return function ComponentTree({ children }) {\n const lastIndex = components.length - 1;\n let activeChildren = <>{children};\n\n for (let i = lastIndex; i >= 0; i--) {\n const Provider = components[i];\n\n activeChildren = {activeChildren};\n }\n\n return activeChildren;\n };\n}\n","import type { ConnectionStatus } from '../contexts/ConnectionStatusContext';\nimport { ConnectionStatusEnum } from '../types/types';\n\nconst ConnectionMessage: { [K in keyof typeof ConnectionStatusEnum]: string } = {\n [ConnectionStatusEnum.Error]: 'Error',\n [ConnectionStatusEnum.Offline]: 'Offline',\n [ConnectionStatusEnum.Stale]: 'Stale',\n [ConnectionStatusEnum.Starting]: 'Starting',\n [ConnectionStatusEnum.Stopping]: 'Stopping',\n [ConnectionStatusEnum.Online]: 'Online',\n [ConnectionStatusEnum.Unavailable]: 'Not configured',\n [ConnectionStatusEnum.Disabled]: 'Not supported',\n [ConnectionStatusEnum.Keepalive]: 'Not supported',\n [ConnectionStatusEnum.NotInSession]: 'Not supported',\n [ConnectionStatusEnum.RateLimited]: 'Rate limited',\n};\nexport const connectionStatusText = (status: ConnectionStatusEnum | undefined): string => {\n return status && status in ConnectionMessage\n ? ConnectionMessage[status]\n : ConnectionMessage[ConnectionStatusEnum.NotInSession];\n};\n\nexport function isConnectionRecovering(status?: ConnectionStatus) {\n return status?.Text === 'Recovering';\n}\n","export function createCookie(name: string, value: string, expires: number) {\n let date;\n let expiresAt = '';\n\n // no expiration date set\n if (expires == null) {\n // default to one day\n date = new Date();\n date.setTime(date.getTime() + 24 * 60 * 60 * 1000);\n } else {\n date = new Date(expires);\n }\n expiresAt = '; expires=' + date.toUTCString();\n\n document.cookie = name + '=' + value + expiresAt + '; domain=' + window.location.hostname + '; path=/';\n}\n\nexport function stringifyCookie(cookieData: unknown) {\n return btoa(JSON.stringify(cookieData));\n}\n\nexport function parseCookie(cookieValue: string | null) {\n if (cookieValue == null || cookieValue.length === 0) {\n return null;\n }\n let json;\n try {\n json = atob(cookieValue);\n } catch (error) {\n // old cookies were not Base64 encoded\n return null;\n }\n return JSON.parse(json);\n}\n\nexport function readCookie(name: string) {\n const nameEQ = name + '=';\n const ca = document.cookie.split(';');\n\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n\n return null;\n}\n\nexport function eraseCookie(name: string) {\n createCookie(name, '', 0);\n}\n","import { isNil } from 'lodash';\n\nexport async function copyText(text?: string) {\n if (isNil(text)) {\n return;\n }\n\n try {\n await navigator.clipboard.writeText(text);\n } catch (ex) {\n console.error(ex);\n\n if (import.meta.env.DEV) {\n // In dev mode, we're not in a secure context, so can't use navigator.clipboard\n const textField = document.createElement('textarea');\n textField.innerHTML = text;\n document.body.appendChild(textField);\n textField.select();\n document.execCommand('copy');\n textField.remove();\n }\n }\n}\n","export const DECIMAL = '.';\nexport const GROUP = ',';\n","import { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\n\nexport interface LogContext {\n extra?: Record;\n [key: string]: any;\n}\n\n/* The function definitions below may look a little strange.\n * The reason we do things this way is to ensure that calling `logger.error` etc.\n * in DEV mode will behave exactly like calling `console.error` etc.\n * The log source in the dev tools will be the *caller* of `logger.error`, not this file.\n * This is important for debugging.\n * The \"magic\" that does this, is the fact that we return a bound function from the IIFE.\n */\n\nconst error = (function error(): (error: Error, context?: LogContext) => void {\n if (import.meta.env.DEV) {\n return console.error.bind(console);\n }\n return function error(error: Error, context?: LogContext): void {\n datadogRum.addError(error, context);\n datadogLogs.logger.error(error.message, context);\n };\n})();\n\nconst warn = (function warn(): (message: string, context?: LogContext) => void {\n if (import.meta.env.DEV) {\n return console.warn.bind(console);\n }\n return function warn(message: string, context?: LogContext): void {\n datadogLogs.logger.warn(message, context);\n };\n})();\n\nconst info = (function info(): (message: string, context?: LogContext) => void {\n if (import.meta.env.DEV) {\n return console.info.bind(console);\n }\n return function info(message: string, context?: LogContext): void {\n datadogLogs.logger.info(message, context);\n };\n})();\n\nconst debug = (function debug(): (message: string, context?: LogContext) => void {\n if (import.meta.env.DEV) {\n // eslint-disable-next-line no-console\n return console.debug.bind(console);\n }\n return function debug(message: string, context?: LogContext): void {\n datadogLogs.logger.debug(message, context);\n };\n})();\n\nfunction trackFeatureFlag(key: string, value: any) {\n if (import.meta.env.DEV) {\n return;\n }\n datadogRum.addFeatureFlagEvaluation(key, value);\n}\n\nfunction trackDuration(\n name: string,\n options: { startTime: number; duration: number; context?: Record; description?: string }\n) {\n if (import.meta.env.DEV) {\n return;\n }\n datadogRum.addDurationVital(name, options);\n}\n\nexport const logger = {\n error,\n warn,\n info,\n debug,\n\n trackFeatureFlag,\n trackDuration,\n};\n","import Big, { type BigSource } from 'big.js';\nimport { isNil, toNumber } from 'lodash';\nimport Sugar from 'sugar';\nimport { DECIMAL, GROUP } from '../tokens/number';\nimport { logger } from './logger';\n\nSugar.Number.setOption('decimal', '.');\nSugar.Number.setOption('thousands', ',');\n\n/**\n * \"Capitalize\" some of the digits in a number. For example, if an asset is\n * trading between 100 and 101, it might useful to highlight only the decimals\n * of the price.\n *\n * @returns An object containing the numerical value and the indices of the digits\n * that should be highlighted.\n */\nexport function highlight({ number, specification = 'M.m' }: { number: string; specification: string }): {\n value: string;\n highlight: (number | null)[];\n} {\n const specificationDecimalIndex = specification.indexOf('.');\n if (number === '0') {\n if (specification[specificationDecimalIndex - 1] === 'M') {\n return { value: number, highlight: [0, 0] };\n } else {\n return { value: number, highlight: [null, null] };\n }\n }\n let numberDecimalIndex = number.indexOf('.');\n if (numberDecimalIndex === -1) {\n numberDecimalIndex = number.length;\n }\n let highlightStart: number | undefined | null, highlightEnd: number | undefined | null;\n let highlighting = false;\n for (let i = 1; i <= numberDecimalIndex; i++) {\n const c = specification.charAt(specificationDecimalIndex - i);\n if (c === 'M') {\n highlighting = true;\n highlightStart = numberDecimalIndex - i;\n if (highlightEnd == null) {\n highlightEnd = highlightStart;\n }\n } else if (c === 'm') {\n highlighting = false;\n } else {\n if (highlighting) {\n highlightStart = numberDecimalIndex - i;\n }\n }\n }\n\n highlighting = false;\n for (let i = 1; numberDecimalIndex + i < number.length; i++) {\n const c = specification.charAt(specificationDecimalIndex + i);\n if (c === 'M') {\n highlighting = true;\n highlightEnd = numberDecimalIndex + i;\n if (highlightStart == null) {\n highlightStart = highlightEnd;\n }\n } else if (c === 'm') {\n highlighting = false;\n } else {\n if (highlighting) {\n highlightEnd = numberDecimalIndex + i;\n }\n }\n }\n\n return { value: number, highlight: [highlightStart ?? null, highlightEnd ?? null] };\n}\n\n/**\n * Turn a very long number, say 10 000 000, into something shorter, like 10M\n */\nconst LOWEST_THRESHOLD = 0.1;\nconst DECIMAL_THRESHOLD = 10;\nexport type AbbreviateOptions = {\n decimalThreshold?: number;\n lowestThreshold?: number;\n precision?: number;\n decimalIncrement?: number;\n};\nexport function abbreviate(\n number?: string | number | null,\n options: AbbreviateOptions = {\n decimalThreshold: DECIMAL_THRESHOLD,\n lowestThreshold: LOWEST_THRESHOLD,\n precision: 1,\n decimalIncrement: undefined,\n }\n): string {\n const {\n decimalThreshold = DECIMAL_THRESHOLD,\n lowestThreshold = LOWEST_THRESHOLD,\n precision = 1,\n decimalIncrement,\n } = options;\n if (number == null) {\n return '';\n }\n\n const parsed = parseFloat(number.toString());\n if (isNaN(parsed)) {\n return '';\n }\n\n if (parsed === 0) {\n return '0';\n }\n\n if (parsed < lowestThreshold) {\n return '<0.1';\n }\n if (Math.abs(parsed) < 1 && decimalIncrement !== undefined) {\n return Big(number).toFixed(decimalIncrement);\n }\n\n if (parsed < decimalThreshold) {\n return Big(number).toFixed(1).replace(/\\.0+$/, '');\n }\n\n return Sugar.Number.abbr(Math.floor(parsed), precision).toUpperCase();\n}\n\n/** Abbreviate with support for negative values\n * @see abbreviate\n */\nexport function unboundedAbbreviate(value: number, options?: AbbreviateOptions) {\n return `${value < 0 ? '-' : ''}${abbreviate(Math.abs(value), options)}`;\n}\n\n/**\n * Abbreviate a large number, into a number and a suffix (K, M, B, T, Q), e.g. 123 000 000 => { number: 1.23 suffix: \"M\" }\n */\nexport function abbr(value: number, precision = 1) {\n let newValue = value;\n const suffixes = ['K', 'M', 'B', 'T', 'q', 'Q', 's', 'S'];\n let suffixNum = -1;\n while (Math.abs(Math.round(newValue)) >= 1000) {\n newValue /= 1000;\n suffixNum++;\n }\n const result = parseFloat(newValue.toFixed(precision));\n return {\n number: result,\n suffix: suffixes[suffixNum],\n };\n}\n\n/**\n * Format numbers for display...\n * e.g. e.g. '1200000.1200123' => '1,200,000.12'\n *\n * @param s String raw number\n * @returns String\n */\nexport function format(s: BigSource | undefined | null, options: FormatOptions = {}): string {\n if (s == null || (typeof s === 'number' && isNaN(s)) || s === '') {\n return '';\n }\n let raw: BigSource;\n try {\n // Note: we remove any commas in the input string here - we were previously getting a large number of\n // errors from this function due to input strings that already included commas for grouping.\n raw = Big(typeof s === 'string' ? s.replaceAll(',', '') : s);\n } catch (e) {\n logger.error(e as Error, {\n extra: {\n string: s,\n },\n });\n return `${s}`;\n }\n\n // if we dont want to round, the fixed number has to always be rounded down when its created in toFixed.\n // roundHalfUp is big's default rounding for toFixed()\n const fixedRoundingMode = options.round ? Big.roundHalfUp : Big.roundDown;\n let number = raw.toFixed();\n const isExpNotation = parseInt(number) >= 1e21;\n let precision = 0;\n const spec = options.spec;\n if (!isExpNotation) {\n if (spec != null) {\n const sl = spec.length;\n precision = spec.includes('.') ? sl - 2 : 0;\n } else {\n precision = calculatePrecision(s);\n }\n }\n\n const fixed = raw.toFixed(precision, fixedRoundingMode);\n\n if (options.round) {\n number = fixed;\n } else if (options.truncate) {\n if (fixed.length < number.length) {\n number = number.substring(0, fixed.length);\n } else {\n number = fixed;\n }\n } else {\n if (fixed.length < number.length) {\n number = number.replace(/0+$/, '');\n } else {\n number = fixed;\n }\n }\n\n if (options.removeTrailingZeros) {\n number = toNumber(number).toString();\n }\n\n if (options.pretty === false || isExpNotation) {\n return number;\n } else {\n const [int, dec] = number.split('.');\n let sign = '';\n if (options.showSign !== false) {\n // Number(-1) is fine, but Number(-0) === 0\n // so for this edge case we add a sign ourselves\n sign = raw.lt(0) ? '-' : options.showSign && raw.gt(0) ? '+' : '';\n }\n return sign + Sugar.Number(Math.abs(toNumber(int))).format(0) + (dec ? '.' + dec : '');\n }\n}\n\nexport type FormatOptions = {\n /**\n * The output will use comma as thousands separator.\n * @default true\n */\n pretty?: boolean;\n /**\n * The spec is only a hint. If we have number with more precision we show the full number.\n * Having round = true will round the number based on the spec.\n * @default false\n */\n round?: boolean;\n /**\n * Number format spec e.g. 1.000 signifying 3 decimal places by default.\n * @default null\n */\n spec?: string;\n /**\n * Truncates the number, without rounding, to the number of decimals specified by spec.\n * @default false\n */\n truncate?: boolean;\n /**\n * When set to true the output will include +/- sign for all numbers except 0.\n * When undefined only negative number will have a - sign.\n * @default undefined\n */\n showSign?: boolean;\n /**\n * When set to true, the output will remove all decimal trailing zeros\n * e.g. 1.230000 will become 1.23\n * @default false\n */\n removeTrailingZeros?: boolean;\n};\n\nexport function toString(n?: string | number): string {\n if (isNil(n)) {\n return '';\n }\n try {\n return Big(n).toFixed();\n } catch (e) {\n return '';\n }\n}\n\n/**\n * A safety function to go from some maybe-undefined BigSource to a Big.\n * If the function is unable to create a Big from the provided value, it will return undefined.\n */\nexport function toBig(value: BigSource | undefined | null): Big | undefined {\n if (value == null || value === '') {\n return undefined;\n }\n\n try {\n return Big(value);\n } catch (e) {\n return undefined;\n }\n}\n\nexport function toBigWithDefault(value: BigSource | undefined | null, defaultValue: number): Big {\n return toBig(value) ?? Big(defaultValue);\n}\n\nexport function bigMin(...values: Array): Big | undefined {\n let minValue: Big | undefined;\n let v: Big;\n return values.reduce((acc: Big | undefined, value: BigSource | undefined | null) => {\n if (value === undefined) {\n return acc;\n } else {\n try {\n v = Big(value ?? 0);\n } catch {\n return acc;\n }\n }\n minValue = minValue === undefined || v.lt(minValue) ? v : acc;\n acc = minValue;\n return acc;\n }, minValue);\n}\n\nexport function bigMax(...values: Array): Big | undefined {\n let maxValue: Big | undefined;\n let v: Big;\n return values.reduce((acc: Big | undefined, value: BigSource | undefined | null) => {\n if (value === undefined) {\n return acc;\n } else {\n try {\n v = Big(value ?? 0);\n } catch {\n return acc;\n }\n }\n maxValue = maxValue === undefined || v.gt(maxValue) ? v : acc;\n acc = maxValue;\n return acc;\n }, maxValue);\n}\n\n/**\n * Converts a number from percentage terms to basis points\n * @param n {string|number|Big}\n * @param precision {string|undefined}\n * @returns string\n */\nexport function percentToBps(n?: string | number | Big | null, precision = 2) {\n try {\n if (n == null) {\n return '';\n }\n return Big(n).times(10000).toFixed(precision);\n } catch (e) {\n return '';\n }\n}\n\n/**\n * Converts a number from basis points to percentage terms\n * @param n {string|number|Big}\n * @returns string\n */\nexport function bpsToPercent(n?: string | number | Big | null): string {\n try {\n if (n == null) {\n return '';\n } else {\n return Big(n).div(10000).toFixed();\n }\n } catch (e) {\n return '';\n }\n}\n\nexport const parseNumber = (number?: string | null, decimal = DECIMAL, group = GROUP) => {\n if (number == null || number === '') {\n return null;\n }\n const [integers, decimals] = number.split(decimal);\n return parseFloat(`${integers.replace(RegExp(group, 'g'), '')}.${decimals}`);\n};\n\nexport const isNumberNegative = (number: Big | string | undefined) => {\n return toBigWithDefault(number, 0).lt(0);\n};\n\nexport const calculatePrecision = (value: BigSource): number => {\n return `${value}`.split('.')[1]?.length || 0;\n};\n\nexport function getChangeValue(former?: BigSource, latter?: BigSource): Big | undefined {\n if (former == null || latter == null) {\n return undefined;\n }\n\n try {\n const formerBig = Big(former);\n const latterBig = Big(latter);\n return latterBig.sub(formerBig);\n } catch (e) {\n return undefined;\n }\n}\n\nexport function getChangePercentage(former?: BigSource, latter?: BigSource): Big | undefined {\n if (former == null || latter == null) {\n return undefined;\n }\n\n try {\n const formerBig = Big(former);\n\n const latterBig = Big(latter);\n\n if (formerBig.eq(0) || latterBig.eq(0)) {\n return undefined;\n }\n\n return latterBig.minus(formerBig).div(formerBig).times(100);\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Compares two numeric values. Regards a nullish value to be less than a non-nullish value.\n */\nexport function numericComparator(a: BigSource, b: BigSource) {\n const bigA = toBig(a);\n const bigB = toBig(b);\n\n if (isNil(bigA) && isNil(bigB)) {\n return 0;\n }\n if (isNil(bigA)) {\n return -1;\n }\n if (isNil(bigB)) {\n return 1;\n }\n return bigA.cmp(bigB);\n}\n","import Big from 'big.js';\nimport type { Balance } from '../types/Balance';\nimport type { CustomerBalance } from '../types/CustomerBalance';\nimport type { CustomerCredit } from '../types/CustomerCredit';\nimport type { EnrichedCreditExposure, Exposure } from '../types/Exposure';\nimport { bigMax, toBigWithDefault } from './number';\n\n// https://talostrading.atlassian.net/browse/DEAL-2877\nfunction getCreditBalance(customerBalance: Balance | CustomerBalance | undefined) {\n if (!customerBalance) {\n return Big(0);\n }\n return Big(customerBalance.AvailableAmount || '0')\n .minus(toBigWithDefault(bigMax(customerBalance.Amount, 0), 0))\n .minus(('PendingWithdrawal' in customerBalance && customerBalance.PendingWithdrawal) || '0')\n .minus(('OutstandingSell' in customerBalance && customerBalance.OutstandingSell) || '0');\n}\n\nexport function getCreditAmount(\n customerBalance: Balance | CustomerBalance | undefined,\n creditOrExposure: CustomerCredit | Exposure | EnrichedCreditExposure | undefined\n): Big | undefined {\n const creditBalance = getCreditBalance(customerBalance);\n\n // Only show Available Credit if we have an existing Exposure Record for it\n if (!creditOrExposure) {\n return undefined;\n }\n\n if (Big(creditBalance).lt(0)) {\n return Big(0);\n }\n\n return creditBalance;\n}\n","import type { Currency } from '../types/Currency';\nimport { AddressRoutingTypeEnum, CurrencyTagEnum } from '../types/types';\n\nexport const currencySymbols = {\n USD: '$',\n GBP: '£',\n EUR: '€',\n SGD: 'S$',\n BTC: '₿',\n};\n\nexport const getAddressRoutingTypeOfCurrency = (currencyObj?: Currency) =>\n currencyObj?.Tags?.includes(CurrencyTagEnum.Fiat) ? AddressRoutingTypeEnum.Fiat : AddressRoutingTypeEnum.Crypto;\n","import { Observable } from 'rxjs';\nimport { getErrorMessage, type DataResponse, type ErrorResponse } from '../types/rest';\nimport { eraseCookie } from './cookies';\nimport { logger } from './logger';\n\nexport class FetchError extends Error {\n public response: Response;\n public body: string;\n public errorJson: ErrorResponse | undefined;\n public url: string;\n public options: RequestInit;\n\n constructor({\n response,\n body,\n errorJson,\n url,\n options,\n }: {\n response: Response;\n body: string;\n errorJson: ErrorResponse | undefined;\n url: string;\n options: RequestInit;\n }) {\n if (errorJson) {\n super(getErrorMessage(errorJson));\n } else {\n super(`${response.status} ${response.statusText}: ${url}\\n${body ?? ''}`);\n }\n this.response = response;\n this.body = body;\n this.errorJson = errorJson;\n this.url = url;\n this.options = options;\n }\n}\n\nfunction createFormData(obj: object | null) {\n const data: string[] = [];\n for (const key in obj) {\n data.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));\n }\n return data.join('&');\n}\n\ninterface RequestOptions extends RequestInit {\n /**\n * Set to enable pagination. Denotes how many records you want to paginate at most. Will paginate until this limit is reached.\n * Set to Infinity to not apply any limit (risk paging indefinitely).\n */\n paginateRecords?: number;\n}\n\n// Wrapper around performRequestInner to do pagination handling\nfunction performRequest(\n endpoint: string,\n path: string,\n { paginateRecords, ...restOfOptions }: RequestOptions = {}\n): Promise {\n if (paginateRecords) {\n const baseUrl = `${endpoint}${path}`;\n // There's some typing annoyances here. The fetching process relies on the returned type being DataResponse.\n // If its not, it will throw. So arriving at this point means that it was successful. We still need to cast the more-specific DataResponse to the less specific\n // TResponse just to make ts happy. The user would have typed their Get call with eg Get> anyway so this is fine.\n const pagedResponse: Promise> = restFetchAllPages(\n baseUrl,\n paginateRecords,\n (dynamicUrl: string) => performRequestInner(dynamicUrl, restOfOptions)\n );\n return pagedResponse as Promise;\n } else {\n return performRequestInner(`${endpoint}${path}`, restOfOptions);\n }\n}\n\n/* CSRF Token handling\n * We need to send the CSRF Token with every non-idempotent (e.g. POST / PUT / DELETE / PATCH)\n * request we make.\n * We're working on the assumption that before making any non-idempotent request, we'll have first\n * made e.g. a `GET` request. For every request that we make, if it has the `X-CSRF-Token` header,\n * we'll save that and use it for the next request we make.\n * Technically, we only need to send the token for CSRF Protected endpoints (non-idempotent ones),\n * but sending it every time is just easier to implement.\n * Also, for CORS requests, we need the backend to send `Access-Control-Allow-Headers: X-CSRF-Token`\n * and also `Access-Control-Expose-Headers: X-CSRF-Token` (otherwise we won't be able to read that header\n * on any CORS responses).\n * NOTE: CSRF Tokens are unique per origin, hence the map of Origin -> Token.\n */\nconst csrfTokenMap = new Map();\nconst csrfTokenName = 'X-Csrf-Token';\n\nfunction performRequestInner(url: string, options: RequestInit): Promise {\n const requestUrl = new URL(url, window.location.origin);\n const hadCsrfTokenBeforeRequest = csrfTokenMap.has(requestUrl.origin);\n options.headers = {\n ...(options.headers || {}),\n 'X-Talos-UI-Version': import.meta.env.VITE_GIT_HASH,\n ...(csrfTokenMap.has(requestUrl.origin) ? { [csrfTokenName]: csrfTokenMap.get(requestUrl.origin) } : {}),\n };\n // Must use `requestUrl.toString()` here because MSW doesn't like passing in a `URL` instance\n return fetch(requestUrl.toString(), options)\n .then(async response => {\n if (response.headers.has(csrfTokenName)) {\n // Save the CSRF Token if we can\n csrfTokenMap.set(requestUrl.origin, response.headers.get(csrfTokenName) ?? '');\n }\n if (response.status === 204) {\n return null;\n }\n const body: any = await response.text();\n let json: TResponse | ErrorResponse | undefined;\n\n try {\n json = JSON.parse(body);\n } catch (e) {\n // Could not parse JSON, assume it's plain text\n }\n\n if (response.ok) {\n return json ?? body;\n }\n\n throw new FetchError({\n response,\n body,\n errorJson: json as ErrorResponse,\n url,\n options,\n });\n })\n .catch((e: FetchError | TypeError) => {\n if ('response' in e) {\n if (e.response.status === 401) {\n eraseCookie(import.meta.env.VITE_SESSION_COOKIE);\n }\n if (e.response.status === 403 && !hadCsrfTokenBeforeRequest && csrfTokenMap.has(requestUrl.origin)) {\n // Possibly an error caused by a missing CSRF token\n // Since we didn't have one before, but we got one in the error response, we'll retry the request\n // and this time it will include the new CSRF token\n return performRequestInner(url, options);\n }\n // Don't log auth errors\n if (![401, 403].includes(e.response.status)) {\n logger.error(e, {\n url,\n response: { body: e.body, status: e.response.status },\n });\n }\n }\n return Promise.reject(e);\n });\n}\n\nexport function Get(endpoint: string, path = '', options: RequestOptions = {}): Promise {\n return performRequest(endpoint, path, {\n credentials: 'include',\n ...options,\n });\n}\n\nexport function Post(\n endpoint: string,\n path: string,\n payload: object | null = {},\n options: RequestOptions = {}\n): Promise {\n return performRequest(endpoint, path, {\n method: 'post',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: isContentTypeJson(options?.headers?.['Content-Type']) ? JSON.stringify(payload) : createFormData(payload),\n ...options,\n });\n}\n\nexport function Put(\n endpoint: string,\n path: string,\n payload: object | null = {},\n options: RequestOptions = {}\n): Promise {\n return performRequest(endpoint, path, {\n method: 'put',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: isContentTypeJson(options?.headers?.['Content-Type']) ? JSON.stringify(payload) : createFormData(payload),\n ...options,\n });\n}\n\nexport function Patch(\n endpoint: string,\n path: string,\n payload: object | null = {},\n options: RequestOptions = {}\n): Promise {\n return performRequest(endpoint, path, {\n method: 'PATCH',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body:\n options?.headers?.['Content-Type'] === 'application/x-www-form-urlencoded'\n ? createFormData(payload)\n : JSON.stringify(payload),\n ...options,\n });\n}\n\nexport function Delete(\n endpoint: string,\n path: string,\n payload: object | null = {},\n options: RequestOptions = {}\n): Promise {\n return performRequest(endpoint, path, {\n method: 'delete',\n credentials: 'include',\n body: JSON.stringify(payload),\n ...options,\n });\n}\n\nexport const GET = 'GET';\nexport const POST = 'POST';\nexport const PUT = 'PUT';\nexport const PATCH = 'PATCH';\nexport const DELETE = 'DELETE';\n\n/**\n * Send a JSON request.\n * @param method One of GET, POST, PUT, PATCH, or DELETE\n * @param url URL to which the JSON call should be sent\n * @param payload Non-stringified JSON (GET requests do not accept a payload)\n * @param requestOptions Additional options to pass to the fetch call\n */\nexport async function request(\n method: typeof GET | typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string\n): Promise;\nexport async function request(\n method: typeof GET | typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string,\n payload: null,\n requestOptions?: RequestOptions\n): Promise;\nexport async function request(\n method: typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string,\n payload: object\n): Promise;\nexport async function request(\n method: typeof GET | typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string,\n payload: object | null = null,\n requestOptions: RequestOptions = {}\n): Promise {\n const options: RequestOptions = {\n headers: {\n 'Content-Type': 'application/json',\n },\n ...requestOptions,\n };\n if (payload != null) {\n if (method === GET) {\n throw new Error(`Payload must be empty when using ${GET}`);\n }\n options.body = JSON.stringify(payload);\n }\n switch (method) {\n case GET:\n return Get(url, '', options);\n case POST:\n return Post(url, '', null, options);\n case PUT:\n return Put(url, '', null, options);\n case PATCH:\n return Patch(url, '', null, options);\n case DELETE:\n return Delete(url, '', null, options);\n default:\n throw new Error('Unsupported HTTP method');\n }\n}\n\n/**\n * Send a JSON request.\n * @param method One of GET, POST, PUT, PATCH, or DELETE\n * @param url URL to which the JSON call should be sent\n */\nexport function requestObservable(\n method: typeof GET | typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string\n): Observable;\n\n/**\n * Send a JSON request.\n * @param method One of GET, POST, PUT, PATCH, or DELETE\n * @param url URL to which the JSON call should be sent\n * @param payload Non-stringified JSON (GET requests do not accept a payload)\n */\nexport function requestObservable(\n method: typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string,\n payload: object\n): Observable;\n\n/**\n * Send a JSON request.\n * @param method One of GET, POST, PUT, PATCH, or DELETE\n * @param url URL to which the JSON call should be sent\n * @param payload Non-stringified JSON (GET requests do not accept a payload)\n */\nexport function requestObservable(\n method: typeof GET | typeof POST | typeof PUT | typeof PATCH | typeof DELETE,\n url: string,\n payload: object | null = null\n): Observable {\n const abortController = new AbortController();\n const options: RequestInit = {\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n };\n if (payload != null) {\n if (method === GET) {\n throw new Error(`Payload must be empty when using ${GET}`);\n }\n options.body = JSON.stringify(payload);\n }\n return new Observable(function subscribe(subscriber) {\n let result: Promise;\n switch (method) {\n case GET:\n result = Get(url, '', options);\n break;\n case POST:\n result = Post(url, '', null, options);\n break;\n case PUT:\n result = Put(url, '', null, options);\n break;\n case PATCH:\n result = Patch(url, '', null, options);\n break;\n case DELETE:\n result = Delete(url, '', null, options);\n break;\n default:\n throw new Error('Unsupported HTTP method');\n }\n result\n .then(response => subscriber.next(response))\n .then(() => subscriber.complete())\n .catch(err => subscriber.error(err));\n return function unsubscribe() {\n abortController.abort('Observable unsubscribed');\n };\n });\n}\n\nconst isContentTypeJson = (contentType: string) => contentType === 'application/json';\n\n/**\n * A Promise-based REST paginator tool you can use to paginate a data set completely before having the promise resolve.\n *\n * The resolved promise will look as if no paging has been done (next will be undefined), and the data property will be a merged\n * data array of all received pages.\n *\n * @param baseUrl The standard request url (not applying any ?after= query)\n * @param limit pagination limit (max records)\n * @param paginatableRequestFn A wrapped request function which accepts a request with the after query param set\n */\nexport async function restFetchAllPages(\n baseUrl: string,\n limit: number,\n paginatableRequestFn: (paginatedUrl: string) => Promise>\n) {\n const responses: DataResponse[] = [];\n let url: string | null = baseUrl;\n let recordsReceived = 0;\n\n while (url) {\n const response = await paginatableRequestFn(url);\n if (!isDataResponse(response)) {\n throw new Error('Received an invalid REST response type for performing pagination');\n }\n responses.push(response);\n recordsReceived += response.data.length;\n if (response.next && recordsReceived < limit) {\n url = attachAfterSearchParam(baseUrl, response.next);\n } else {\n url = null;\n }\n }\n\n return {\n ...responses[0],\n next: undefined,\n data: responses.flatMap(response => response.data),\n };\n}\n\nfunction attachAfterSearchParam(baseUrl: string, afterValue: string): string {\n const url = new URL(baseUrl);\n url.searchParams.set('after', afterValue);\n return url.href;\n}\n\nfunction isDataResponse(response: unknown): response is DataResponse {\n return response instanceof Object && response['data'] instanceof Array;\n}\n","export type RestResponse = ErrorResponse | DataResponse;\n\nexport interface ErrorResponse {\n ts: string;\n type: 'error';\n message?: string;\n error_msg?: string;\n}\n\nexport interface DataResponse {\n ts: string;\n type: string;\n data: T[];\n next?: string;\n page?: string;\n}\n\nexport function isErrorResponse(e: RestResponse): e is ErrorResponse {\n return e?.type === 'error';\n}\n\nexport function getErrorMessage(e: ErrorResponse | undefined): string | undefined {\n return e?.message ?? e?.error_msg;\n}\n","import type { MarketAccount } from '../contexts/MarketAccountsContext';\nimport { MarketAccountStatusEnum, MarketAccountTypeEnum, type IPricingRule } from '../types/types';\nimport { GET, request } from '../utils/http';\n\nexport const DEFAULT_CUSTOMER_MARKET_ACCOUNT = 'default';\n\nexport function getDefaultCustomerMarketAccountSourceAccountID(mktAccIDs: string[]): string | undefined {\n if (mktAccIDs.length === 0) {\n return undefined;\n }\n\n if (mktAccIDs.length === 1) {\n return mktAccIDs[0];\n }\n\n const maybeDefaultAccount = mktAccIDs.find(mktAcc => mktAcc === DEFAULT_CUSTOMER_MARKET_ACCOUNT);\n if (maybeDefaultAccount) {\n return maybeDefaultAccount;\n } else {\n // we have no concept of a default (shouldnt happen, but if we have bad setup it might), so just pick the first one alphabetically\n return mktAccIDs.sort()[0];\n }\n}\n\nexport function getDefaultCustomerMarketAccount(mktAccs: MarketAccount[]): MarketAccount | undefined {\n const sourceAccIDs = mktAccs\n .filter(ma => ma.Status === MarketAccountStatusEnum.Active && ma.Type === MarketAccountTypeEnum.Customer)\n .map(ma => ma.SourceAccountID ?? '');\n const defaultSourceAccID = getDefaultCustomerMarketAccountSourceAccountID(sourceAccIDs);\n if (defaultSourceAccID == null) {\n return undefined;\n } else {\n return mktAccs.find(ma => ma.SourceAccountID === defaultSourceAccID);\n }\n}\n\nconst getEffectivePricingRule = (\n orgApiEndpoint: string,\n counterparty: string,\n symbol: string\n): Promise<{ data: IPricingRule[] } | undefined> => {\n return request(GET, `${orgApiEndpoint}/pricing-rules/counterparty/${counterparty}/security/${symbol}/effective`);\n};\n\nexport async function getDefaultCustomerSubAccount(\n orgApiEndpoint: string,\n counterparty: string,\n symbol: string\n): Promise<{ TradeSubAccount: string; HedgeSubAccount: string } | undefined> {\n const res = await getEffectivePricingRule(orgApiEndpoint, counterparty, symbol);\n // TradeSubAccount is optional and therefore the default Customer Sub Account could be blank\n\n const data = res?.data.at(0);\n\n if (data == null) {\n return undefined;\n }\n return { TradeSubAccount: data.TradeSubAccount, HedgeSubAccount: data.HedgeSubAccount };\n}\n","/* eslint @typescript-eslint/explicit-module-boundary-types: [\"warn\"] */\n\nimport {\n addDays,\n addHours,\n addMinutes,\n addSeconds,\n differenceInCalendarDays,\n differenceInMilliseconds,\n format,\n formatDuration,\n intervalToDuration,\n isAfter,\n isBefore,\n isEqual,\n isPast,\n isValid,\n isWithinInterval,\n parseISO,\n toDate,\n} from 'date-fns';\nimport { isDate } from 'lodash';\nimport parseDuration, { type Units } from 'parse-duration';\n// Import the Sugar locales for readable date functions.\nimport 'sugar/locales/de';\nimport 'sugar/locales/es';\nimport 'sugar/locales/fr';\nimport 'sugar/locales/it';\nimport 'sugar/locales/pl';\n\nexport const DURATIONS = {\n SECOND: 's' as const,\n MINUTE: 'm' as const,\n HOUR: 'h' as const,\n DAY: 'd' as const,\n MONTH: 'month',\n};\n\nexport type DateFnInput = Parameters[0];\ntype SugarDateCreateInput = Exclude[0], undefined>;\n\n/**\n * All-purpose date creation function.\n *\n * Accepts ISO-format date strings, date objects, and null/undefined.\n * For backwards compatibility with SugarJS, `null` and `undefined` will be converted to `now()`.\n *\n * @param input A value to create a date from\n * @returns A new date object\n */\nexport const parseDate = (input?: SugarDateCreateInput | null): Date => {\n const now = new Date();\n const sugarDate = Sugar.Date.create(input ?? now, { clone: true });\n\n if (import.meta.env.VITE_AVA_ENV !== 'prod' && import.meta.env.VITE_AVA_ENV !== 'sandbox') {\n // in development environments, let's check that things will still work the same if we don't use SugarJS for date creation\n let dateFnDate = new Date(NaN); // invalid date\n if (typeof input === 'string') {\n dateFnDate = parseISO(input ?? now);\n } else {\n dateFnDate = toDate(input ?? now);\n }\n if (!isValid(dateFnDate) && typeof input === 'string') {\n const duration = parseDuration(input);\n if (duration !== null) {\n console.warn(`parseDate('${input}') should be replaced with an explicit call to \"parseDuration('${input}')\"`);\n dateFnDate = new Date(duration);\n }\n }\n if (\n isValid(sugarDate) !== isValid(dateFnDate) ||\n (isValid(sugarDate) &&\n !isEqual(sugarDate, dateFnDate) &&\n // date-fns truncates fractional milliseconds, sugarjs rounds them\n differenceInMilliseconds(sugarDate, dateFnDate) > 2)\n ) {\n console.warn(\n `parseDate(${\n isDate(input) ? `Date(${(input as Date).valueOf()})` : JSON.stringify(input)\n }) does not parse the same through sugar and date-fns.`,\n {\n sugarDate,\n sugarDateJson: JSON.stringify(sugarDate),\n dateFnDate,\n dateFnDateJson: JSON.stringify(dateFnDate),\n }\n );\n if (typeof input === 'string' && input.match(/ago|last|today|from/)) {\n console.warn(\n `parseDate('${input}') should be replaced with an explicit relative date creation, e.g. \"startOfDay(subDays(parseDate(), 2))\" etc.`\n );\n }\n }\n }\n return sugarDate;\n};\n\n/**\n * Checks if a given time string \"HH:mm:ss\" is active or not.\n *\n * @param {string} startTimeString - The start time in string format.\n * @param {string} endTimeString - The end time in string format.\n * @param {Date} currentTime - The current time. Defaults to the actual current time if not provided.\n * @returns {boolean} Returns true in the following cases:\n * 1. If the startTimeString or endTimeString is not provided.\n * 2. If the startTimeString is greater than the endTimeString.\n * 3. If the current time is within the interval of the startTimeString and endTimeString.\n * Otherwise, it returns false.\n */\nexport const isTimeActive = (\n startTimeString?: string,\n endTimeString?: string,\n currentTime: Date = new Date()\n): boolean => {\n if (!startTimeString || !endTimeString) {\n return true; // Always active if no start or end time given.\n }\n\n function parseTime(timeString, date = new Date()) {\n const [hours, minutes, seconds] = timeString.split(':').map(Number);\n date.setHours(hours, minutes, seconds, 0);\n return date;\n }\n\n // Parse start and end times into Date objects\n const startDate = parseTime(startTimeString);\n let endDate = parseTime(endTimeString);\n if (startDate > endDate) {\n endDate = addDays(endDate, 1);\n }\n\n // Check if current time is within the interval\n return isWithinInterval(currentTime, { start: startDate, end: endDate });\n};\n\n/**\n * Formats the given date as {yyyy}-{MM}-{dd} {HH}:{mm}, \"stopping\" at minutes\n */\nexport function formattedDateAtMinutes(dateString?: DateFnInput | null): string {\n return formattedDate(dateString, '{yyyy}-{MM}-{dd} {HH}:{mm}');\n}\n\nexport function formattedDate(\n dateString?: DateFnInput | null,\n pattern = '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}',\n locale?: string\n): string {\n if (!dateString) {\n return '';\n }\n const parsedDate = parseDate(dateString);\n if (!isValid(parsedDate)) {\n if (import.meta.env.VITE_AVA_ENV !== 'prod' && import.meta.env.VITE_AVA_ENV !== 'sandbox') {\n console.error(`formattedDate(\"${dateString}\") parsed as an Invalid Date`);\n }\n return '';\n }\n return Sugar.Date.format(parsedDate, pattern, locale);\n}\n\nexport function formattedUTCDay(dateString?: DateFnInput | null): string {\n return formattedUTCDate(dateString, '{yyyy}-{MM}-{dd}');\n}\n\nexport function formattedUTCDate(dateString?: DateFnInput | null, pattern?: string): string {\n return formattedDate(utcDate(dateString), pattern);\n}\n\nexport function formattedDateWithMilliseconds(dateString?: DateFnInput): string {\n return formattedDate(dateString, '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}.{SSS}');\n}\n\nexport function formattedDateForSubscription(dateString: Exclude): string;\nexport function formattedDateForSubscription(dateString?: null | undefined): undefined;\nexport function formattedDateForSubscription(dateString?: DateFnInput): string | undefined;\nexport function formattedDateForSubscription(dateString?: DateFnInput): string | undefined {\n return dateString != null\n ? Sugar.Date.format(utcDate(dateString), '{yyyy}-{MM}-{dd}T{HH}:{mm}:{ss}.{SSS}000Z')\n : undefined;\n}\n\n/**\n * Returns the number of seconds left to a given date for the Duration Parameter\n */\nexport function formattedDateForOrder(endTime: Date): string {\n return Math.round((+endTime - +parseDate()) / 1000) + 's';\n}\n\nexport function utcDate(dateString: DateFnInput): Date {\n return Sugar.Date.setUTC(parseDate(dateString), true);\n}\n\n/** Formats given date to ddMMMyy uppercased, eg: 09JUN23 */\nexport function formattedExpiry(dateString: DateFnInput): string {\n // We use date-fns instead of sugarjs here since sugar doesn't support formatting months as 3 letters (September becomes Sept)\n const date = parseDate(dateString);\n if (!isValid(date)) {\n return '';\n }\n return format(date, 'ddMMMyy').toUpperCase();\n}\n\nexport function formattedDay(dateString?: DateFnInput, pattern = '{yyyy}-{MM}-{dd}'): string {\n return formattedDate(dateString, pattern);\n}\n\nexport function formattedTime(dateString?: DateFnInput, pattern = '{HH}:{mm}:{ss}'): string {\n return formattedDate(dateString, pattern);\n}\n\nexport function formattedTimeWithMillis(dateString?: DateFnInput): string {\n return formattedTime(dateString, '{HH}:{mm}:{ss}.{SSS}');\n}\n\nexport function readableDay(dateString: DateFnInput, includeTime = false, locale?: string): string {\n return formattedDate(dateString, `{Mon} {d}${includeTime ? ' {HH}:{mm}' : ''}, {yyyy}`, locale);\n}\n\nexport function readableDate(dateString: DateFnInput, includeTime = false, locale?: string): string {\n return formattedDate(dateString, `{d} {Mon} {yyyy}${includeTime ? ', {HH}:{mm}' : ''}`, locale);\n}\n\nexport function readableDateWithSeconds(dateString: DateFnInput, locale?: string): string {\n return formattedDate(dateString, '{d} {Mon} {yyyy}, {HH}:{mm}:{ss}', locale);\n}\n\nexport function endOfDay(date?: DateFnInput | null): Date {\n const tmp = date ? parseDate(date) : parseDate();\n tmp.setHours(23, 59, 59, 999);\n return tmp;\n}\n\nexport function beginningOfDay(date?: DateFnInput | null): Date {\n const tmp = date ? parseDate(date) : parseDate();\n tmp.setHours(0, 0, 0, 0);\n return tmp;\n}\n\nexport function subtractMinutesFromNow(number: number): string | undefined {\n return formattedDateForSubscription(addMinutes(parseDate(), number * -1));\n}\n\nexport function subtractHoursFromNow(number: number): string | undefined {\n return formattedDateForSubscription(addHours(parseDate(), number * -1));\n}\n\nexport function subtractDaysFromNow(number: number): string | undefined {\n return formattedDateForSubscription(addDays(parseDate(), number * -1));\n}\n\nconst ONE_HOUR = 60 * 60;\n\n/**\n * Returns a short, pretty time representation for the OrderTimer component\n */\nexport function formattedOrderTime(ms: number | null): string {\n if (!ms) {\n return '';\n }\n if (ms < 1000) {\n return `<1s`;\n }\n const seconds = Math.round(ms / 1000);\n const minutes = Math.floor(seconds / 60);\n let hours = minutes / 60;\n let orderTimer = '';\n // more than 10 hours\n if (seconds >= 10 * ONE_HOUR) {\n hours = Math.round(hours);\n orderTimer = `${hours}h`;\n }\n\n // between 1 - 10 hours\n else if (seconds >= ONE_HOUR) {\n hours = Math.floor(hours);\n orderTimer = `${hours}h ${minutes % 60}m`;\n }\n\n // between 1 - 60 minutes\n else if (seconds >= 60) {\n orderTimer = `${minutes}m ${seconds % 60}s`;\n }\n\n // less than 1 minute\n else {\n orderTimer = `${seconds}s`;\n }\n return orderTimer;\n}\n\n/**\n * Split a duration into number and unit\n *\n * @example\n * ```\n * parseDurationUnit(\"5.1m\"); // returns { duration: '5.1', unit: 'm'}\n * ```\n */\nexport function parseDurationUnit(value = ''): { duration: number | null; unit?: Units } {\n const durationMs = parseDuration(value);\n if (durationMs == null) {\n return { duration: null, unit: undefined };\n }\n\n const TWO_MINUTES = 2 * 60 * 1000;\n const TWO_HOURS = 2 * 60 * 60 * 1000;\n const TWO_DAYS = 2 * 24 * 60 * 60 * 1000;\n\n let unit: Units;\n if (durationMs < TWO_MINUTES) {\n unit = 's';\n } else if (durationMs < TWO_HOURS) {\n unit = 'm';\n } else if (durationMs < TWO_DAYS) {\n unit = 'h';\n } else {\n unit = 'd';\n }\n const duration = parseDuration(value, unit);\n return { duration, unit };\n}\n\n/**\n * Add a duration to a date. Supports all units given in the DURATION constant.\n */\nexport function addDuration(date: Date, value: string): Date | never {\n const { duration, unit } = parseDurationUnit(value);\n if (duration == null || unit == null) {\n throw new Error(`invalid duration: ${value}`);\n }\n switch (unit) {\n case DURATIONS.SECOND:\n return addSeconds(date, duration);\n case DURATIONS.MINUTE:\n return addMinutes(date, duration);\n case DURATIONS.HOUR:\n return addHours(date, duration);\n case DURATIONS.DAY:\n return addDays(date, duration);\n default:\n throw new Error(`invalid duration: ${value}`);\n }\n}\n\nexport function getCurrentTime(): string {\n return formattedTime(new Date(), '{HH}:{mm}:{ss} {Z}');\n}\n\nexport function isDateInThePast(dateString: DateFnInput): boolean {\n return dateString ? isPast(parseDate(dateString)) : false;\n}\n\n/**\n * Tests whether a value can be converted to a *valid* date object\n *\n * @param date Date input value\n * @returns True if `date` can be converted to a valid date object\n */\nexport function isValidDateInput(date: DateFnInput | null | undefined): boolean {\n if (isDate(date)) {\n return isValid(date);\n } else {\n return isValid(parseDate(date));\n }\n}\n\n/** Gives you a string showing days until now from give date, e.g. '10 days' */\nexport const daysUntil = (endDate: Date): string => daysBetween(new Date(), endDate);\n\n/** Gives you a string showing days since now from give date, e.g. '10 days' */\nexport const daysSince = (startDate: Date): string => daysBetween(startDate, new Date());\n\n/** Gives you a string showing days between two given dates, e.g. '10 days' */\nexport const daysBetween = (startDate: Date, endDate: Date): string => {\n return formatDuration({ days: Math.abs(differenceInCalendarDays(endDate, startDate)) }, { format: ['days'] });\n};\n\n/**\n * Gives you a string showing time between two dates formatted. E.g. '2 years, 6 months, 9 days'\n *\n * @param {Date} startDate\n * @param {Date} endDate\n * @param {string[]} format - What parts of the duration between the days to display, defaults to ['years', 'months', 'days']\n * */\nexport const timeBetween = (startDate: Date, endDate: Date, format = ['years', 'months', 'days']): string => {\n const duration = intervalToDuration({ start: startDate, end: endDate });\n return formatDuration(duration, { format });\n};\n\nexport function isAfterOrEqual(d1: Date, d2: Date): boolean {\n return isAfter(d1, d2) || isEqual(d1, d2);\n}\n\n/**\n * Test whether a date is between 2 other dates.\n *\n * @param minValue Minimum date (inclusive)\n * @param value Date to test\n * @param maxValue Maximum date (inclusive)\n * @returns True if `(minValue ?? MIN_DATE) <= value <= (maxValue ?? MAX_DATE)`.\n * @returns False if value is null / undefined.\n */\nexport function dateIsBetween(minValue?: Date | null, value?: Date, maxValue?: Date | null): boolean {\n if (!value) {\n return false;\n }\n if (isDate(value)) {\n const isGtEq = isDate(minValue) ? isEqual(value, minValue) || isAfter(value, minValue) : true;\n const isLtEq = isDate(maxValue) ? isEqual(value, maxValue) || isBefore(value, maxValue) : true;\n const pass = isLtEq && isGtEq;\n return pass;\n }\n return false;\n}\n\n/**\n * Comparator to sort dates for Array.sort(...).\n *\n * @param left Left item to compare\n * @param right Right item to compare\n * @returns -1 if left comes before right, 0 if the same, 1 if left comes after right\n */\nexport function dateComparator(\n left: Date | string | undefined | null,\n right: Date | string | undefined | null\n): number {\n if (typeof left === 'string') {\n left = new Date(left);\n }\n if (typeof right === 'string') {\n right = new Date(right);\n }\n return (left ?? MIN_DATE).valueOf() - (right ?? MAX_DATE).valueOf();\n}\n\nconst MAX_DATE = Object.freeze(new Date('9999-12-31T23:59:59.999'));\nconst MIN_DATE = Object.freeze(new Date('0000-01-01T00:00:00.000'));\n","export const EMPTY_ARRAY = Object.freeze([]) as [];\nexport const EMPTY_MAP = Object.freeze(new Map()) as Map;\nexport const EMPTY_OBJECT = Object.freeze({}) as EmptyObject;\n","const hostname = window.location.hostname;\n\nexport const isNonProdEnv = ['local', 'staging', 'uat', 'alpha'].includes(import.meta.env.VITE_AVA_ENV);\n\nexport const isSandboxEnv = import.meta.env.VITE_AVA_ENV === 'sandbox';\n\nexport const isDemoEnv = isNonProdEnv || isSandboxEnv;\n\nexport const isTalosWLSandboxEnv =\n isSandboxEnv && ['sandbox.whitelabel-talos.com', 'cryptoco-otc-sandbox.whitelabel-talos.com'].includes(hostname);\n\nexport const isTalosWLDemoEnv = isNonProdEnv || isTalosWLSandboxEnv;\n","import type { ExportGridMode } from '../components';\nimport { formattedDate } from './date';\n\nexport function getFileExportFormattedDate(date = new Date()) {\n return formattedDate(date, '{yyyy}-{MM}-{dd} {HH}.{mm}.{ss}');\n}\n\nexport const createCSVFileName = ({ name, tabLabel }: { name: string; tabLabel?: string }) => {\n return createExportFileName({ name, tabLabel, mode: 'CSV' });\n};\n\n/** Create a file name for exporting CSV/Excel data */\nexport const createExportFileName = ({\n name,\n tabLabel,\n mode,\n}: {\n name: string;\n tabLabel?: string;\n mode: ExportGridMode;\n}) => {\n const extension = mode === 'Excel' ? 'xlsx' : 'csv';\n if (!tabLabel) {\n return `${name}-${getFileExportFormattedDate()}.${extension}`;\n } else {\n return `${name}-${tabLabel.replace(/[^a-zA-Z0-9-]/g, '')}-${getFileExportFormattedDate()}.${extension}`;\n }\n};\n","import { FeeModeEnum } from '../types/types';\n\nconst FEE_MODE_TO_LABEL: Record = {\n [FeeModeEnum.Maker]: 'Maker',\n [FeeModeEnum.Taker]: 'Taker',\n [FeeModeEnum.Net]: 'No Fee',\n};\n\nexport function prettyFeeMode(feeMode: FeeModeEnum): string {\n return FEE_MODE_TO_LABEL[feeMode] ?? feeMode;\n}\n","import { OrdStatusEnum, type QuoteStatusEnum } from '../types/types';\n\nexport const isOrderComplete = (\n ordStatus: OrdStatusEnum | QuoteStatusEnum\n): ordStatus is OrdStatusEnum.Canceled | OrdStatusEnum.Filled | OrdStatusEnum.Rejected | OrdStatusEnum.DoneForDay =>\n Boolean(\n ordStatus === OrdStatusEnum.Canceled ||\n ordStatus === OrdStatusEnum.Filled ||\n ordStatus === OrdStatusEnum.Rejected ||\n ordStatus === OrdStatusEnum.DoneForDay\n );\n","import { DecisionStatusEnum } from '../types/types';\n\nexport const isOrderPaused = (ordDecisionStatus: DecisionStatusEnum): boolean => {\n return [DecisionStatusEnum.Staged, DecisionStatusEnum.Paused, DecisionStatusEnum.SystemPaused].includes(\n ordDecisionStatus\n );\n};\n","import { OrdStatusEnum } from '../types/types';\n\nexport const isOrderPending = (ordStatus: OrdStatusEnum) =>\n Boolean(\n ordStatus === OrdStatusEnum.PendingCancel ||\n ordStatus === OrdStatusEnum.PendingReplace ||\n ordStatus === OrdStatusEnum.PendingNew\n );\n","/* DO NOT EDIT THIS FILE BY HAND!\n * This file is auto-generated by a script, generate-market-colors.ts.\n * To re-generate this file, run the following in the kyoko directory\n *\n * $> yarn generate\n */\n// spell-checker: disable\nimport type { DefaultTheme } from 'styled-components';\n\nconst MARKET_COLORS = {\n 'MjRleGNoYW5nZQ==': '#00ABD0', // 24exchange\n 'YWxhbWVkYQ==': '#00ABD0', // alameda\n 'YXF1YW5vdw==': '#52A2B1', // aquanow\n 'YjJjMg==': '#601865', // b2c2\n 'YmNiZ3JvdXA=': '#105FF5', // bcbgroup\n 'YmluYW5jZQ==': '#CCAA3E', // binance\n YmluYW5jZV9mdXR1cmVz: '#CCAA3E', // binance_futures\n 'Yml0ZmluZXg=': '#01A781', // bitfinex\n Yml0bWV4: '#0645E5', // bitmex\n 'Yml0c3RhbXA=': '#159E49', // bitstamp\n 'Y29pbmJhc2U=': '#0052FF', // coinbase\n Y29wcGVy: '#67E6D0', // copper\n 'Y3VtYmVybGFuZA==': '#8C8778', // cumberland\n 'ZGVyaWJpdA==': '#00CFBE', // deribit\n 'ZHZjaGFpbg==': '#204FFF', // dvchain\n ZW5pZ21h: '#F1783F', // enigma\n 'ZXJpc3g=': '#00EBB9', // erisx\n 'ZmlyZWJsb2Nrcw==': '#F76500', // fireblocks\n 'Zmxvd3RyYWRlcnM=': '#E1272C', // flowtraders\n ZnR4: '#03B2CB', // ftx\n Z2FsYXh5: '#B1B1B1', // galaxy\n Z2VtaW5p: '#29CFE8', // gemini\n 'Z2VuZXNpcw==': '#103FFB', // genesis\n 'aGVobWV5ZXI=': '#50B29A', // hehmeyer\n 'aHVvYmk=': '#12B298', // huobi\n 'amFuZXN0cmVldA==': '#4C87E3', // janestreet\n 'anVtcA==': '#1CE7C2', // jump\n a3Jha2Vu: '#5D45DC', // kraken\n a3Vjb2lu: '#23AF91', // kucoin\n 'bG1heGRpZ2l0YWw=': '#C4B37F', // lmaxdigital\n 'bnlkaWc=': '#0CBDA8', // nydig\n b2tjb2lu: '#F74D99', // okcoin\n b2t4: '#DFEA52', // okx\n 'b2tleA==': '#DFEA52', // okex\n b3Ns: '#35525E', // osl\n 'cG9sb25pZXg=': '#3BEFD1', // poloniex\n c2ln: '#002953', // sig\n 'c2lsdmVyZ2F0ZQ==': '#92B7BC', // silvergate\n c3VjZGVu: '#005DA9', // sucden\n dW5pc3dhcF90cmFkaW5n: '#FF007A', // uniswap_trading\n 'dmlydHU=': '#00CC99', // virtu\n 'd2ludGVybXV0ZQ==': '#A0E32D', // wintermute\n};\nexport const getMarketColor = (market: string, theme: DefaultTheme): string =>\n MARKET_COLORS[btoa(market)] ?? theme.colors.blue.lighten;\n","/**\n *\n * @param a An ISO 8601 string timestamp\n * @param b An ISO 8601 string timestamp\n * @returns -1 if a is earlier than b, 0 if they are equal, and 1 if a is later in time than b.\n */\nexport function compareTimestampsWithMicrosecondPrecision(a: string, b: string) {\n const unixTsA = isoTimestampToMicrosecondUnixTs(a);\n const unixTsB = isoTimestampToMicrosecondUnixTs(b);\n\n const diff = unixTsA - unixTsB;\n if (diff < 0) {\n return -1;\n }\n if (diff > 0) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Given an iso 8601 timestamp, returns a unix timestamp with microsecond precision as a number.\n * Works with between 0 and 6 decimal points given. If more than 6 decimal points are given, only millisecond precision is returned.\n */\nexport function isoTimestampToMicrosecondUnixTs(timestamp: string) {\n // Example: 2023-06-14T12:15:54.875117Z\n const microsecondUnixTs = new Date(timestamp).getTime() * 1000;\n\n const decimalPointSplit = timestamp.split('.');\n if (decimalPointSplit.length !== 2) {\n return microsecondUnixTs;\n }\n\n const decimalsWithZ = decimalPointSplit[1];\n const decimals = decimalsWithZ.replace('Z', '');\n\n if (decimals.length <= 3 || decimals.length > 6) {\n // There are no microseconds if length is less than or equal to 3. Or if we're over 6 just don't bother for now\n return microsecondUnixTs;\n }\n\n const microsecondsString = decimals.substring(3, decimals.length);\n\n // If there's only 1 or 2 digits in the microsecond string, they represent 100 and 10 microseconds\n // We need to multiply by 10^(missing digits) in order to protect against the backend sending not-6-digit decimals\n try {\n const microseconds = parseInt(microsecondsString) * Math.pow(10, 3 - microsecondsString.length);\n return microsecondUnixTs + microseconds;\n } catch (e) {\n return microsecondUnixTs;\n }\n}\n","import { ParameterTypeEnum } from './OrderStrategy';\nimport { PresenceEnum } from './types';\n\nexport const ManualStrategy = {\n Name: 'Manual',\n Group: 'All',\n Parameters: [\n {\n Name: 'LimitPrice',\n Type: ParameterTypeEnum.Price,\n Presence: PresenceEnum.Required,\n Description: 'Limit Price for the order.',\n DisplayName: 'Limit Price',\n },\n ],\n Description: 'Manual order',\n DisplayName: 'Manual',\n};\n","import Big, { type BigSource } from 'big.js';\nimport { cloneDeep, groupBy, isNil, map } from 'lodash';\nimport type { DefaultTheme } from 'styled-components';\nimport { OrderStatusText } from '../components/Status/types';\nimport type { CustomerExecutionReport } from '../types/CustomerExecutionReport';\nimport type { CustomerOrder } from '../types/CustomerOrder';\nimport type { ExecutionReport } from '../types/ExecutionReport';\nimport { ManualStrategy } from '../types/ManualStrategy';\nimport type { Order } from '../types/Order';\nimport type { Security } from '../types/Security';\nimport {\n DecisionStatusEnum,\n MultilegReportingTypeEnum,\n OrderMarketStatusEnum,\n SideEnum,\n UnifiedLiquidityEnum,\n type IOMSExecutionReport4203LegSummary,\n type IOMSExecutionReport4203Markets,\n} from '../types/types';\nimport { isOrderComplete } from './isOrderComplete';\nimport { isOrderPending } from './isOrderPending';\nimport { toBigWithDefault } from './number';\nimport { isPerpetualSwap } from './security';\nimport type { RequiredProperties } from './types';\n\n// If this is a counter currency order, use the MinAmtIncrement if it's provided, otherwise, fall\n// back to the MinPriceIncrement field. If it's not counter currency, use MinSizeIncrement.\nexport const getEffectiveMinIncrement = (security: Security, isCcy: boolean) => {\n return isCcy ? security.MinAmtIncrement || security.MinPriceIncrement : security.MinSizeIncrement;\n};\n\nexport const isCounterCurrency = (currency?: string, security?: Security): boolean => {\n return currency && security ? currency === security.QuoteCurrency : false;\n};\n\nexport const getOrdersForModify = (orders: Order[]): Order[] => {\n return orders.filter(\n order =>\n !isOrderComplete(order.OrdStatus) &&\n (order.DecisionStatus === DecisionStatusEnum.Staged || order.Strategy != null)\n );\n};\n\nexport const isCustomerOrderModifiable = (order: CustomerOrder | CustomerExecutionReport): boolean => {\n const canModify = !(isOrderPending(order.OrdStatus) || isOrderComplete(order.OrdStatus));\n const customerPropertiesLoaded =\n !!order.MarketAccount && !!order.OrderQty && !!order.Price && !!order.PricingParameters && !!order.Strategy;\n\n return canModify && customerPropertiesLoaded;\n};\n\n/**\n * Check if CustomerOrder is resubmittable from a whitelabel context.\n */\nexport const WLCanResubmitCustomerOrder = (order: Pick): boolean => {\n if (!order.Strategy || order.Strategy === ManualStrategy.Name) {\n return false;\n }\n return true;\n};\n/**\n * Check if CustomerOrder is modifiable from a whitelabel context.\n */\nexport const WLCanModifyCustomerOrder = (order: Pick): boolean => {\n if (order.Strategy === ManualStrategy.Name) {\n return false;\n }\n if (isOrderComplete(order.OrdStatus)) {\n return false;\n }\n // cannot modify rfqs\n if (order.RFQID) {\n return false;\n }\n return true;\n};\n\nexport const orderStatusTextToColor = (status: OrderStatusText | undefined, theme?: DefaultTheme | null) => {\n if (theme == null) {\n return undefined;\n }\n const { colorOrderStatusFilled, colorTextDefault, colorOrderStatusRejected } = theme;\n switch (status) {\n case OrderStatusText.Filled:\n case OrderStatusText.FilledAndCanceled:\n return colorOrderStatusFilled;\n case OrderStatusText.Rejected:\n return colorOrderStatusRejected;\n case OrderStatusText.Canceled:\n case OrderStatusText.Paused:\n case OrderStatusText.Staged:\n return colorTextDefault;\n default:\n return theme.colors.blue.lighten;\n }\n};\n\nexport const getOppositeSide = (side: SideEnum): SideEnum => {\n switch (side) {\n case SideEnum.Buy:\n return SideEnum.Sell;\n case SideEnum.Sell:\n return SideEnum.Buy;\n }\n};\n\nexport const orderHasLegSummary = (\n order: Order\n): order is RequiredProperties =>\n Array.isArray(order.LegSummary);\n\nexport const legSummaryHasUnhedgedAmt = (\n legSummary: IOMSExecutionReport4203LegSummary\n): legSummary is RequiredProperties =>\n typeof legSummary.UnhedgedAmt === 'string';\n\nexport function isEntityRFQ(\n entity: T | undefined\n): entity is RequiredProperties {\n return !isNil(entity?.RFQID);\n}\n\n/**\n * Given an order-like object with Markets, returns list of traded on symbols, and symbols on enabled markets.\n */\nexport const getSymbolsAcrossMarkets = (order?: Partial>): string[] => {\n if (order == null || order.Markets == null) {\n return [];\n }\n const symbolsSet = new Set();\n for (const market of order.Markets) {\n const legSummary = order.LegSummary?.find(leg => leg.LegIndex === market.LegIndex);\n if (\n market.Symbol &&\n (market.MarketStatus !== OrderMarketStatusEnum.Disabled || Big(market.CumQty || 0).gt(0)) &&\n (legSummary == null || legSummary.MultilegReportingType === MultilegReportingTypeEnum.Parent)\n ) {\n symbolsSet.add(market.Symbol);\n }\n }\n return Array.from(symbolsSet);\n};\n\ntype BareMinimumMarket = RequiredProperties<\n Partial<\n Pick<\n IOMSExecutionReport4203Markets,\n | 'Symbol'\n | 'LeavesQty'\n | 'CumAmt'\n | 'CumFee'\n | 'FeeCurrency'\n | 'CumQty'\n | 'AvgPx'\n | 'AvgPxAllIn'\n | 'Market'\n | 'MarketAccount'\n | 'Price'\n | 'LastPx'\n | 'LegIndex'\n >\n >,\n 'Symbol' | 'Market'\n>;\n\n/**\n * Helper function which given IOMSExecutionReport4203Market[] (that is assumed to have the same symbol)\n * summarizes quantities and prices into one IOMSExecutionReport4203Market.\n * AvgPx and AvgPxAllIn is calculated as vwap.\n */\nexport const netMarketsToSingleMarket = function (\n order: Order | ExecutionReport,\n securitiesBySymbol: Map,\n markets: T[]\n): T | null {\n if (markets.length === 1) {\n return markets[0];\n }\n return getVWAPFromMarkets(order, securitiesBySymbol, markets, 'Market')?.[0] || null;\n};\n\nexport const getVWAPFromMarkets = function (\n order: Order | ExecutionReport,\n securitiesBySymbol: Map,\n markets: T[],\n groupByKey: 'Symbol' | 'Market' | null\n): T[] {\n if (groupByKey === null) {\n return markets;\n }\n const isOrderUnifiedLiquidity = isUnifiedLiquidityOrder(order);\n const representativeMarket: T[] = map(\n groupBy(markets, m => getVWAPGroupBy(m, order, securitiesBySymbol, groupByKey))\n ).map(groupedMarkets => {\n const nettedValues = groupedMarkets.reduce(\n (acc, curr) => {\n // UI-3136 - Filled/Open values in Analytics need to be normalised\n const marketSecurity = securitiesBySymbol.get(curr.Symbol!);\n let cumQtyBig = toBigWithDefault(curr.CumQty, 0);\n let leavesQtyBig = toBigWithDefault(curr.LeavesQty, 0);\n const notionalMultiplierBig = toBigWithDefault(marketSecurity?.NotionalMultiplier, 1);\n if (marketSecurity && isOrderUnifiedLiquidity && isPerpetualSwap(marketSecurity)) {\n cumQtyBig = cumQtyBig.times(notionalMultiplierBig);\n leavesQtyBig = leavesQtyBig.times(notionalMultiplierBig);\n }\n\n return {\n LeavesQty: Big(acc.LeavesQty || 0).plus(leavesQtyBig),\n CumQty: Big(acc.CumQty || 0).plus(cumQtyBig),\n AvgPx: Big(acc.AvgPx || 0).plus(Big(curr.AvgPx || 0).times(cumQtyBig)),\n AvgPxAllIn: Big(acc.AvgPxAllIn || 0).plus(Big(curr.AvgPxAllIn || 0).times(cumQtyBig)),\n CumFee: Big(acc.CumFee || 0).plus(curr.CumFee || 0),\n CumAmt: Big(acc.CumAmt || 0).plus(curr.CumAmt || 0),\n LastPx: Big(acc.LastPx || 0).plus(curr.LastPx || 0),\n Price: Big(acc.Price || 0).plus(Big(curr.Price || 0).times(curr.LeavesQty || 0)),\n };\n },\n {\n LeavesQty: 0 as BigSource,\n CumQty: 0 as BigSource,\n AvgPx: 0 as BigSource,\n AvgPxAllIn: 0 as BigSource,\n CumFee: 0 as BigSource,\n CumAmt: 0 as BigSource,\n LastPx: 0 as BigSource,\n Price: 0 as BigSource,\n }\n );\n\n // This will be the market which we summarize onto.\n const marketExecReport = cloneDeep(groupedMarkets[0] || {});\n marketExecReport.LeavesQty = Big(nettedValues.LeavesQty).toFixed();\n marketExecReport.CumQty = Big(nettedValues.CumQty).toFixed();\n marketExecReport.CumFee = Big(nettedValues.CumFee).toFixed();\n marketExecReport.CumAmt = Big(nettedValues.CumAmt).toFixed();\n marketExecReport.LastPx = Big(nettedValues.LastPx)\n .div(groupedMarkets.length || 1)\n .toFixed();\n // CumQty\n marketExecReport.AvgPx = Big(nettedValues.AvgPx)\n .div(Big(nettedValues.CumQty).gt(0) ? nettedValues.CumQty : 1)\n .toFixed();\n marketExecReport.AvgPxAllIn = Big(nettedValues.AvgPxAllIn)\n .div(Big(nettedValues.CumQty).gt(0) ? nettedValues.CumQty : 1)\n .toFixed();\n // LeavesQty\n marketExecReport.Price = Big(nettedValues.Price)\n .div(Big(nettedValues.LeavesQty).gt(0) ? nettedValues.LeavesQty : 1)\n .toFixed();\n\n return { ...marketExecReport };\n });\n\n return representativeMarket;\n};\n\nexport function isUnifiedLiquidityOrder(order: Order | ExecutionReport): boolean {\n return order.Parameters?.UnifiedLiquidity === UnifiedLiquidityEnum.Enabled;\n}\n\n/*\n * Gets grouping key based on desired groupByKey order being unified perp order for groupByKey == 'Market'\n */\nexport function getVWAPGroupBy(\n m: T,\n order: Order | ExecutionReport,\n securitiesBySymbol: Map,\n groupByKey: 'Symbol' | 'Market'\n) {\n const orderSecurity = securitiesBySymbol.get(order.Symbol);\n switch (groupByKey) {\n case 'Symbol':\n return m.Symbol;\n case 'Market': {\n if (isPerpetualSwap(orderSecurity) && isUnifiedLiquidityOrder(order)) {\n return `${m.Market}-${m.Symbol}`;\n }\n return m.Market;\n }\n default:\n return groupByKey;\n }\n}\n","import type { BigSource } from 'big.js';\nimport type { ExecutionReport } from '../types/ExecutionReport';\nimport type { Order } from '../types/Order';\nimport type { Security } from '../types/Security';\nimport { SettleValueTypeEnum } from '../types/types';\nimport { isOrderComplete } from './isOrderComplete';\nimport type { AmountObject } from './notional.types';\nimport { toBigWithDefault } from './number';\nimport { isCounterCurrency } from './order';\nimport { isSecurityQuantoFuture } from './security';\n\nexport type { AmountObject } from './notional.types';\n\ntype Entity = ExecutionReport | Order;\n\nexport function getFilledNotional(\n entity: Pick | undefined,\n security: Security | undefined\n): AmountObject {\n if (!security || !entity) {\n return { currency: '', value: '' };\n }\n\n // Contracts\n if (!entity.Currency) {\n // We need to figure out what currency is dealt and what is counter, so we can map the amounts to the appropriate columns.\n if (entity.AmountCurrency === security.QuoteCurrency) {\n return {\n currency: entity.AmountCurrency,\n value: toBigWithDefault(entity.CumAmt, 0).toFixed(),\n };\n } else {\n return {\n currency: security.QuoteCurrency,\n value: toBigWithDefault(entity.CumQty, 0).times(toBigWithDefault(security.NotionalMultiplier, 1)).toFixed(),\n };\n }\n }\n\n const isCcy = isCounterCurrency(entity.Currency, security);\n\n if (isCcy) {\n return {\n currency: entity.Currency,\n value: toBigWithDefault(entity.CumQty, 0).toFixed(),\n };\n } else {\n return {\n currency: entity.AmountCurrency ?? '',\n value: toBigWithDefault(entity.CumAmt, 0).toFixed(),\n };\n }\n}\n\nexport function getOpenNotional(\n entity:\n | Pick\n | undefined,\n security: Security | undefined\n): AmountObject {\n if (!security || !entity) {\n return { currency: '', value: '' };\n }\n\n if (isOrderComplete(entity.OrdStatus)) {\n return {\n currency: security.QuoteCurrency,\n value: '0',\n };\n }\n\n const totalNotional = getTotalNotional(entity, security);\n const filledNotional = getFilledNotional(entity, security);\n\n return {\n currency: security.QuoteCurrency,\n // Open Notional will not be calculated if Total Notional is not calculated\n value: toBigWithDefault(totalNotional.value, 0).gt(0)\n ? toBigWithDefault(totalNotional.value, 0)\n .minus(filledNotional.value || 0)\n .toFixed()\n : '',\n };\n}\n\nexport function getTotalNotional(\n entity:\n | Pick\n | undefined,\n security: Security | undefined\n): AmountObject {\n if (!security || !entity) {\n return { currency: '', value: '' };\n }\n\n // For an API entered order, ExpectedFillPrice will not be present. In this case, we use the Limit Px.\n // If Limit Px is also not present e.g. a market strategy entered over API, then Total Notional (and as a result Open Notional) will not be calculated.\n const expectedFillPriceBig = toBigWithDefault(entity.ExpectedFillPrice, 0);\n const priceBig = expectedFillPriceBig.eq(0) ? toBigWithDefault(entity.Price, 0) : expectedFillPriceBig;\n\n // Contracts\n if (!entity.Currency) {\n if (entity.AmountCurrency === security.QuoteCurrency) {\n if (priceBig.eq(0)) {\n return { currency: '', value: '' };\n }\n return {\n currency: security.QuoteCurrency,\n value: toBigWithDefault(entity.OrderQty, 0)\n .times(priceBig)\n .times(toBigWithDefault(security.NotionalMultiplier, 1))\n .toFixed(),\n };\n } else {\n return {\n currency: security.QuoteCurrency,\n value: toBigWithDefault(entity.OrderQty, 0).times(toBigWithDefault(security.NotionalMultiplier, 1)).toFixed(),\n };\n }\n }\n\n const isCcy = isCounterCurrency(entity.Currency, security);\n\n if (isCcy) {\n return {\n currency: security.QuoteCurrency,\n value: toBigWithDefault(entity.OrderQty, 0).toFixed(),\n };\n } else {\n if (priceBig.eq(0)) {\n return { currency: '', value: '' };\n }\n return {\n currency: security.QuoteCurrency,\n value: toBigWithDefault(entity.OrderQty, 0).times(priceBig).toFixed(),\n };\n }\n}\n\nexport function getFilledBaseQuantity(\n entity: Pick | undefined,\n security: Security | undefined\n): AmountObject {\n if (!security || !entity) {\n return { currency: '', value: '' };\n }\n\n // Contracts\n if (!entity.Currency) {\n if (entity.AmountCurrency === security.QuoteCurrency) {\n return {\n currency: security.BaseCurrency,\n value: toBigWithDefault(entity.CumQty, 0).times(toBigWithDefault(security.NotionalMultiplier, 1)).toFixed(),\n };\n } else {\n return {\n currency: entity.AmountCurrency ?? '',\n value: toBigWithDefault(entity.CumAmt, 0).toFixed(),\n };\n }\n }\n\n const isCcy = isCounterCurrency(entity.Currency, security);\n if (isCcy) {\n return {\n currency: entity.AmountCurrency ?? '',\n value: toBigWithDefault(entity.CumAmt, 0).toFixed(),\n };\n } else {\n return {\n currency: entity.Currency ?? '',\n value: toBigWithDefault(entity.CumQty, 0).toFixed(),\n };\n }\n}\n\nexport function getFilledCounterAmount(\n entity: Pick | undefined,\n security: Security | undefined\n): AmountObject {\n if (!security || !entity) {\n return { currency: '', value: '' };\n }\n return {\n currency: entity.AmountCurrency ?? '',\n value: toBigWithDefault(entity.CumAmt, 0).toFixed(),\n };\n}\n\nexport function getPositionAmount(quantity: BigSource, security: Security | undefined): AmountObject {\n if (!security) {\n return { currency: '', value: '' };\n }\n if (isSecurityQuantoFuture(security)) {\n return { currency: '', value: toBigWithDefault(quantity, 0).toFixed() };\n }\n const value = toBigWithDefault(quantity, 0).mul(toBigWithDefault(security.NotionalMultiplier, 1)).toFixed();\n const currency =\n security.SettleValueType === SettleValueTypeEnum.Inverted ? security.QuoteCurrency : security.BaseCurrency;\n return { currency, value };\n}\n\nexport function getCumAmt(\n quantity: BigSource,\n price: BigSource,\n orderCurrency: string,\n security: Security | undefined\n): AmountObject {\n const priceBig = toBigWithDefault(price, 0);\n if (!security || priceBig.eq(0)) {\n return {\n currency: '',\n value: '0',\n };\n }\n\n const cumQtyBig = toBigWithDefault(quantity, 0);\n if (!orderCurrency) {\n // Contracts\n const notionalMultiplierBig = toBigWithDefault(security?.NotionalMultiplier, 1);\n if (security?.SettleValueType === SettleValueTypeEnum.Inverted) {\n return {\n currency: security.BaseCurrency,\n value: cumQtyBig.times(notionalMultiplierBig).div(priceBig).toFixed(),\n };\n } else {\n return {\n currency: security?.QuoteCurrency,\n value: cumQtyBig.times(notionalMultiplierBig).times(priceBig).toFixed(),\n };\n }\n } else {\n const isCcy = isCounterCurrency(orderCurrency, security);\n if (isCcy) {\n return {\n currency: security?.BaseCurrency,\n value: cumQtyBig.div(priceBig).toFixed(),\n };\n } else {\n return {\n currency: security.QuoteCurrency,\n value: cumQtyBig.times(priceBig).toFixed(),\n };\n }\n }\n}\n","import type { Security } from '../types/Security';\nimport type { IOMSExecutionReport4203LegSummary } from '../types/types';\nimport { ProductTypeEnum, SyntheticProductTypeEnum } from '../types/types';\nimport { getCumAmt, getFilledBaseQuantity, getFilledNotional } from './notional';\nimport { isOptionStrategy } from './security';\n\nexport const shouldDisplayReasonabilityCheckForProduct = (security: Security | undefined) => {\n if (!security) {\n return false;\n }\n if ([ProductTypeEnum.Basis, ProductTypeEnum.Option, ProductTypeEnum.CalendarSpread].includes(security.ProductType)) {\n return false;\n }\n if (isOptionStrategy(security)) {\n return false;\n }\n if (\n hasSyntheticProductType(security) &&\n security!.MultilegDetails!.SyntheticProductType === SyntheticProductTypeEnum.Delta1Spread\n ) {\n return false;\n }\n return true;\n};\n\nexport const hasSyntheticProductType = (security: Security | undefined) => {\n if (!security) {\n return false;\n }\n if (security?.MultilegDetails && security?.MultilegDetails?.SyntheticProductType) {\n return true;\n }\n return false;\n};\n\nexport function getLegFilledQtyAndNotional(leg: IOMSExecutionReport4203LegSummary, security: Security | undefined) {\n // Currently no countercurrency trades on multileg child orders.\n const legCurrency = security?.PositionCurrency || '';\n const cumAmt = getCumAmt(leg.CumQty || '0', leg.AvgPx || '0', legCurrency, security);\n const filledQty = getFilledBaseQuantity(\n { CumQty: leg.CumQty || '0', CumAmt: cumAmt.value, Currency: legCurrency, AmountCurrency: cumAmt.currency },\n security\n );\n const filledNotional = getFilledNotional(\n { CumQty: leg.CumQty || '0', CumAmt: cumAmt.value, Currency: legCurrency, AmountCurrency: cumAmt.currency },\n security\n );\n\n return {\n filledQty,\n filledNotional,\n };\n}\n\nexport const PRODUCT_TYPE_TOOLTIP_MAP = {\n [SyntheticProductTypeEnum.Unknown]: 'unknown',\n [SyntheticProductTypeEnum.Cross]: 'Synthetic Cross',\n [SyntheticProductTypeEnum.Delta1Spread]: 'Delta-1 Spread',\n [SyntheticProductTypeEnum.CallCalendarSpread]: 'Call Calendar',\n [SyntheticProductTypeEnum.PutCalendarSpread]: 'Put Calendar',\n [SyntheticProductTypeEnum.CallSpread]: 'Call Spread',\n [SyntheticProductTypeEnum.PutSpread]: 'Put Spread',\n};\n","import { PriceProtectionEnum } from '../types/types';\n\n/**\n * Prettifies the price protection enum. Falsy values and 'Error' will be prettified to \"Enabled\" as\n * that is how backend behaves: https://app.shortcut.com/talostrading/story/50585/iss#activity-51654\n */\nexport const prettyPriceProtection = (priceProtection: PriceProtectionEnum | undefined) => {\n if (priceProtection === PriceProtectionEnum.Error || !priceProtection) {\n return 'Enabled';\n }\n\n return priceProtection;\n};\n","import Big from 'big.js';\nimport { defineMessages } from 'react-intl';\nimport type { ExecutionReport } from '../types/ExecutionReport';\nimport { PricingMode } from '../types/PricingMode';\nimport { PricingModeEnum } from '../types/types';\nimport type { AmountObject } from './notional.types';\n\nexport const messages = defineMessages({\n impliedVolatility: {\n defaultMessage: 'Implied Volatility',\n id: 'utils.impliedVolatility',\n },\n submittedPrice: {\n defaultMessage: 'Submitted Price',\n id: 'utils.submittedPrice',\n },\n spreadToFixing: {\n defaultMessage: 'Spread to Fixing',\n id: 'utils.spreadToFixing',\n },\n});\n\ntype MessageKey = keyof typeof messages;\n\nexport function getUnitForPriceMode(mode: PricingMode | PricingModeEnum | undefined, defaultUnit?: string): string {\n switch (mode) {\n case PricingMode.ImpliedVolatility:\n case PricingModeEnum.ImpliedVolatility:\n return '%';\n case PricingMode.UnderlyingQuoteCurrency:\n case PricingModeEnum.UnderlyingQuoteCurrency:\n // UI-3085: Default to USD, even though it is theoretically possible to\n // retrieve the currency on the security, it will (almost) always be USD.\n return 'USD';\n case PricingModeEnum.SpreadToFixing:\n return 'BPS';\n case PricingMode.Default:\n case undefined: {\n return defaultUnit || '';\n }\n default: {\n const _exhaustiveCheck: never = mode;\n return '';\n }\n }\n}\n\nexport function getPricingReference(\n entity: Partial>,\n priceField: string = 'PricingReference'\n): AmountObject | null {\n if (!entity.PricingMode || !entity[priceField]) {\n return null;\n }\n\n let priceMultiplier = 1;\n if (entity.PricingMode === PricingModeEnum.SpreadToFixing) {\n priceMultiplier = 10000;\n } else if (entity.PricingMode === PricingModeEnum.ImpliedVolatility) {\n priceMultiplier = 100;\n }\n\n return {\n value: Big(entity[priceField]).mul(priceMultiplier).toFixed(),\n currency: getUnitForPriceMode(entity.PricingMode),\n };\n}\n\nexport function prettyPricingMode(pricingMode: NonNullable): MessageKey {\n switch (pricingMode) {\n case PricingModeEnum.ImpliedVolatility:\n return 'impliedVolatility' as MessageKey;\n case PricingModeEnum.UnderlyingQuoteCurrency:\n return 'submittedPrice' as MessageKey;\n case PricingModeEnum.SpreadToFixing:\n return 'spreadToFixing' as MessageKey;\n default: {\n const _exhaustiveCheck: never = pricingMode;\n return pricingMode;\n }\n }\n}\n","import { createContext } from 'react';\nimport type { IntlShape, MessageDescriptor } from 'react-intl';\nimport type { IntlFormatCell } from '../components/BlotterTable/columns';\n\nexport interface IntlContextProps {\n isLoaded: boolean;\n locale: string;\n setLocale: (locale: string) => void;\n doNotOverwriteDisplayNames: boolean;\n formatCell: IntlFormatCell;\n}\n\nexport const IntlContext = createContext(undefined);\n\nexport const DEFAULT_LOCALE = 'en';\n\n// {displayName} is required --> is required.\nfunction replacePlaceholders(defaultMessage: MessageDescriptor['defaultMessage'], maybeObj?: Record) {\n if (typeof defaultMessage !== 'string') {\n throw new Error('defaultMessage must be a string');\n }\n if (maybeObj == null) {\n return defaultMessage;\n }\n return defaultMessage.replace(/{(\\w+)}/g, (match, key) => maybeObj[key] || match);\n}\n\nexport type IntlWithFormatter = Pick & {\n formatCell: IntlFormatCell;\n doNotOverwriteDisplayNames: boolean;\n};\n\n// The Intl Default Formatter can safely be used in lieu of react-intl in apps and tests where translations aren't utilized.\nexport const intlDefaultFormatter: IntlWithFormatter = {\n formatMessage: (descriptor: MessageDescriptor, maybeObj?: Record) => {\n return replacePlaceholders(descriptor.defaultMessage, maybeObj || {});\n },\n formatCell: ({ value }) => value,\n doNotOverwriteDisplayNames: true,\n};\n\nconst INTL_KEY_PROTECTED_WORDS = ['ID', 'EID', 'OID', 'TWAP', 'RFQID', 'RFQTTL', 'QuoteTTL'];\nexport function getIntlKey(label: string = ''): string {\n return label\n .replace(/([A-Z]+)/g, ' $1')\n .replace(/&/g, 'And')\n .trim()\n .split(' ')\n .map((word, index) => {\n if (INTL_KEY_PROTECTED_WORDS.includes(word)) {\n return word;\n }\n return index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n })\n .join('');\n}\n","import { useCallback, useEffect, useMemo, useState, type PropsWithChildren } from 'react';\nimport { IntlProvider as ReactIntlProvider } from 'react-intl';\n\nimport type { ColDefIntl } from '../components/BlotterTable/columns';\nimport { DEFAULT_LOCALE, getIntlKey, IntlContext } from '../contexts/IntlContext';\nimport { EMPTY_OBJECT } from '../utils/empty';\nimport { logger } from '../utils/logger';\n\nconst formatCell: ColDefIntl['formatCell'] = (params, messages, displayNameMap) => {\n if (params.context.current.intl.doNotOverwriteDisplayNames === true) {\n // In this case, we don't want to translate the display name, so we just return the DisplayName value.\n return displayNameMap?.get(params.value)?.DisplayName ?? params.value;\n }\n\n // Proceed with attempting to translate\n const intlKey = getIntlKey(params.value);\n const translatedValue =\n intlKey in messages ? params.context.current.intl.formatMessage(messages[intlKey]) : undefined;\n\n // If the translated value is not found, we return the original value\n return translatedValue ?? params.value;\n};\n\nexport interface IntlProviderProps {\n /**\n * Callback passed in from project-level IntlProvider wrapper components, so that they\n * can reference their own local translations directories, but still have loading and storage of translations\n * managed at a central layer. Should accept a string locale parameter, and return a Promise that resolves to\n * the translations messages, in a Record format. Overrides may also be provided,\n * these will not warn on duplicate keys.\n */\n loadMessages?: (locale: string) => {\n messages: Promise>;\n overrides?: Promise>;\n };\n /**\n * This component does not have access to user preferences, the implementer must provide the locale.\n * If the locale is not provided, the browser locale will be used.\n */\n locale: string | undefined;\n}\n\nexport function IntlProvider({ children, loadMessages, locale: _locale }: PropsWithChildren) {\n const [locale, setLocale] = useState(_locale ?? DEFAULT_LOCALE);\n\n const [isLoaded, setIsLoaded] = useState(false);\n const [messages, setMessages] = useState | null>(loadMessages ? null : EMPTY_OBJECT);\n\n const loadKyokoMessages = useCallback((locale: string) => {\n return import(`../translations/kyoko.${locale}.json`)\n .then(mod => mod.default)\n .catch(error => {\n if (locale.includes('-')) {\n const language = locale.split('-')[0];\n\n return import(`../translations/kyoko.${language}.json`).then(mod => mod.default);\n }\n\n throw error;\n });\n }, []);\n\n useEffect(() => {\n if (locale == null) {\n return;\n }\n const promises = [\n // Only use the whitelabel-testing subset for testing\n loadKyokoMessages(locale === 'testing' ? 'whitelabel-testing' : locale),\n ];\n\n if (loadMessages && locale) {\n const { messages, overrides } = loadMessages(locale);\n promises.push(messages);\n if (overrides) {\n promises.push(overrides);\n }\n }\n\n Promise.all(promises)\n .then(([kyokoMessages, messages = EMPTY_OBJECT, overrides = EMPTY_OBJECT]) => {\n captureExceptionForDuplicates(messages, kyokoMessages);\n setMessages({\n ...kyokoMessages,\n ...messages,\n ...overrides,\n });\n })\n .catch(() => {\n setMessages(EMPTY_OBJECT);\n });\n }, [loadKyokoMessages, loadMessages, locale]);\n\n useEffect(() => {\n if (locale && messages) {\n setIsLoaded(true);\n }\n }, [locale, messages]);\n\n const value = useMemo(() => {\n return {\n isLoaded,\n locale: locale ?? DEFAULT_LOCALE,\n setLocale,\n doNotOverwriteDisplayNames: locale?.split('-').at(0) === 'en',\n formatCell,\n };\n }, [isLoaded, locale]);\n\n const onIntlError = useCallback(\n (error: Error) => {\n if (locale === 'testing') {\n console.error('Intl Error:', error.message);\n }\n },\n [locale]\n );\n\n const onIntlWarn = useCallback(\n (warning: string) => {\n if (locale === 'testing') {\n console.warn('Intl Warning:', warning);\n }\n },\n [locale]\n );\n\n return (\n \n {children}\n \n );\n}\n\nfunction captureExceptionForDuplicates(messages: Record, kyokoMessages: Record) {\n Object.keys(messages).forEach(key => {\n if (kyokoMessages[key]) {\n logger.error(new Error(`Duplicate defineMessages id found: ${key}`));\n }\n });\n}\n","import type { ReactElement } from 'react';\nimport { flushSync } from 'react-dom';\nimport { createRoot } from 'react-dom/client';\nimport { ThemeProvider, type DefaultTheme } from 'styled-components';\nimport { IntlProvider } from '../providers/IntlProvider';\n\nexport function renderToHTML(component: ReactElement, theme: DefaultTheme, locale?: string) {\n const div = document.createElement('div');\n const root = createRoot(div);\n\n flushSync(() =>\n root.render(\n \n {component}\n \n )\n );\n // Grab the inner HTML to return\n const returnValue = div.innerHTML;\n // Unmount the component since we're not going to need it anymore\n root.unmount();\n return returnValue;\n}\n","import Sugar from 'sugar';\nimport * as Yup from 'yup';\n\nexport const prettyName = (value?: string) => (value ? Sugar.String.titleize(value).replace(/\\bId\\b/g, 'ID') : '');\n\nexport const isValidEmail = (email: string): boolean => {\n const schema = Yup.object().shape({ email: Yup.string().email().required() });\n try {\n schema.validateSync({ email });\n } catch {\n return false;\n }\n return true;\n};\n\nexport const getKeysOfMissingValues = (parameters: { [key: string]: unknown }): string[] => {\n return Object.entries(parameters)\n .map(([key, val]) => (val != null ? undefined : key))\n .compact();\n};\n\n/**\n * Compact multiple spaces in `input` into a single space, and trim whitespace from the ends of the string.\n *\n * @param input Input string\n * @returns Compacted string\n */\nexport function compactString(input: string): string {\n return input.replaceAll(/[ ]+/g, ' ').trim();\n}\n","export const AVAILABLE_TIME_UNITS = ['s', 'm', 'h'];\nexport const prettyTimeUnit = (unit: string) => {\n switch (unit) {\n case 's':\n return 'sec';\n case 'm':\n return 'min';\n case 'h':\n return 'hr';\n default:\n return unit;\n }\n};\n","import { logger } from './logger';\n\nexport const tryParseJSON = (value: string, logFailure = true) => {\n try {\n return JSON.parse(value);\n } catch (e) {\n if (logFailure) {\n logger.error(e as Error, { extra: { value } });\n }\n return value;\n }\n};\n","import type { AnyStyledComponent, StyledComponent, StyledComponentProps } from 'styled-components';\nexport type Primitive = null | undefined | boolean | number | string | symbol | bigint;\n\nexport type PropType = string extends Path\n ? unknown\n : Path extends keyof T\n ? T[Path]\n : Path extends `${infer Prop}.${infer Rest}`\n ? Prop extends keyof T\n ? PropType\n : unknown\n : unknown;\n\n/**\n * Cleanup a type definition to show the properties in that type rather than an intersection of types.\n *\n * WARNING: Perhaps use sparingly, this may slightly slowdown typechecking.\n *\n * @example\n * // Hover-over / auto-completions / etc. will show this type as `{ Prop1: number } & { Prop2: string } & { Prop3: any }`\n * type Test = { Prop1: number } & { Prop2: string } & { Prop3: any };\n *\n * // But hover-over / auto-completions / etc. will show this type as `{ Prop1: number; Prop2: string; Prop3: any }`\n * type Test2 = ReMap;\n *\n * @param TSource - The source type to remap\n * @param Recursive - If true, will recursively re-map the type (default is false)\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ReMap = {} & {\n [K in keyof TSource]: true extends Recursive\n ? // Recursive branch ...\n TSource[K] extends object\n ? ReMap\n : TSource[K] extends any[] | undefined\n ? ReMap[number]>\n : TSource[K]\n : // Non-recursive branch\n TSource[K];\n};\n\n/**\n * Defines a new type with the same properties, but all properties have a new property type\n *\n * @template T The source type\n * @template V New property type for all properties\n */\nexport type MapTo = { [K in keyof T]: V };\n\n/**\n * A type that is potentially null or undefined\n * @template T The source type\n */\nexport type Nullish = T | null | undefined;\n\n/**\n * Defines a new type with the same properties, but all properties names begin with a lowercase letter.\n *\n * @example\n * ```\n * CamelCased<{OrderID: string, CustId: number}> === {orderID: string, custId: number};\n * ```\n */\nexport type CamelCased = {\n [K in keyof T as `${Uncapitalize}`]: T[K] extends any[] | undefined\n ? recursive extends true\n ? CamelCased[number]>[]\n : Exclude[number][]\n : T[K] extends Primitive\n ? T[K]\n : recursive extends true\n ? CamelCased\n : T[K];\n};\n\n/**\n * Defines a new type with the same properties, but all properties names begin with an uppercase letter.\n *\n * @example\n * ```\n * UpperCased<{orderID: string, custId: number}> === {OrderID: string, CustId: number};\n * ```\n */\nexport type UpperCased = {\n [K in keyof T as `${Capitalize}`]: T[K];\n};\n\n/**\n * Provides access to all the props for a styled component, by passing the generic Styled Component type.\n *\n * @example\n * ```\n * type ForwardedProps = StyledComponentAllProps;\n * ```\n */\nexport type StyledComponentAllProps = TComponent extends StyledComponent<\n infer C,\n infer T,\n infer O,\n infer A\n>\n ? StyledComponentProps\n : never;\n\n/**\n * Returns all the keys of an object that begin with the given prefix.\n *\n * @example\n * ```\n * type CurrencyIconProps = {\n * // Allow choosing `colorText`, `colorButtonBorder`, etc. but not `color` itself\n * color?: Exclude, 'color'>;\n * };\n * ```\n */\nexport type KeysBeginningWith = {\n [K in keyof T]: K extends `${Prefix}${infer _Variant}` ? K : never;\n}[keyof T];\n\n/**\n * Returns all the \"variants\" of an object that begin with the given prefix.\n *\n * @example\n * ```\n * type CurrencyIconProps = {\n * // Allow choosing `Small`, `Large`, etc.\n * size?: VariantsBeginningWith;\n * };\n * ```\n */\nexport type VariantsBeginningWith = {\n [K in keyof T]: K extends `${Prefix}${infer Variant}` ? Variant : never;\n}[keyof T];\n\n// The below types are taken from https://stackoverflow.com/a/58436959\n\n/**\n * Join two string | number with each other with a dot in-between\n * @example\n * Join<\"a\",\"b.c\"> // -> \"a.b.c\"\n * @example\n * Join<\"a\",\"\"> // -> \"a\"\n */\nexport type JoinHelper = K extends string | number\n ? P extends string | number\n ? `${K}${'' extends P ? '' : '.'}${P}`\n : never\n : never;\n\n// Used for recursion depth-limiting for the typing\ntype Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...0[]];\n\n/**\n * Steps through object T recursively and collects all steps along the way until depth D (defaults to 10).\n * @example\n * Paths<{ a: string; b: { c: string } }> // -> \"a\" | \"b\" | \"b.c\"\n */\nexport type Paths = PathsHelper;\ntype PathsHelper = [D] extends [never]\n ? never\n : T extends Date\n ? ''\n : T extends object\n ? {\n [K in keyof T]-?: K extends string | number ? `${K}` | JoinHelper> : never;\n }[keyof T]\n : '';\n\n/**\n * Steps through object T recursively and collects all leaves along the way until depth D (defaults to 10).\n * Discards all intermediate steps and only includes leaf nodes.\n * Note: Potentially undefined paths are counted as leafs, see second example.\n * @example\n * Leaves<{ a: string; b: { c: string } }> // -> \"a\" | \"b.c\"\n * @example // with undefined intermediate path\n * Leaves<{ a: string; b?: { c: string } }> // -> \"a\" | \"b\" | \"b.c\"\n */\nexport type Leaves = LeavesHelper;\nexport type LeavesHelper = [D] extends [never]\n ? never\n : T extends Date\n ? ''\n : T extends unknown[]\n ? '' // | { [K in keyof T]-?: JoinHelper> }[keyof T]\n : T extends object\n ? { [K in keyof T]-?: JoinHelper> }[keyof T]\n : '';\n\n// https://stackoverflow.com/questions/49242232/constraining-type-in-typescript-generic-to-be-one-of-several-types\n// OneOf is the main event:\n// take a type T and a tuple type V, and return the type of\n// T widened to relevant element(s) of V:\nexport type OneOf> = {\n [K in NK]: T extends V[K] ? V[K] : never;\n}[NK];\n\n/** Applies the & operator to the supplied types */\nexport type IntersectAll = T extends [infer Type, ...infer Rest] ? Type & IntersectAll : unknown;\n\n/** Applies the | operator to the supplied types */\nexport type UnionAll = T extends [infer Type, ...infer Rest] ? Type | UnionAll : never;\n\n/**\n * Picks all properties off T where T[keyof T] resolves to Value\n */\nexport type PickByType = {\n [P in keyof T as T[P] extends Value ? P : never]: T[P];\n};\n\n/**\n * Use this higher order type when narrowing type for nullable/undefined properties.\n * ```ts\n * type Dog = {\n * name: string\n * tag?: string\n * }\n * type NaivelyTaggedDog = Dog & { tag: NonNullable}\n * // equals to:\n * type TaggedDog = RequiredProperties\n * ```\n */\nexport type RequiredProperties = Required> &\n T & { [k in K]: NonNullable };\n\n/**\n * Use this higher order type to make specific properties optional.\n * ```ts\n * type Dog = {\n * name: string\n * tag: string\n * }\n * type MaybeTaggedDog = Dog & { tag?: Dog['tag'] }\n * // equals to:\n * type MaybeTaggedDog = OptionalProperties\n * ```\n */\nexport type OptionalProperties = Partial> & Omit;\n\n/** A deep Partial */\nexport type DeepPartial = T extends object\n ? {\n [P in keyof T]?: DeepPartial;\n }\n : T;\n\n/** For filtering empty values from arrays. Makes sure value is defined and not null. */\nexport function notEmpty(value: T | null | undefined): value is T {\n if (value === null || value === undefined) {\n return false;\n }\n return true;\n}\n\n/**\n * The value type of a collection type (Array, Map, Set).\n */\nexport type Entry = T extends Array\n ? ArrayElementType\n : T extends Map\n ? MapValueType\n : T extends Set\n ? SetValueType\n : never;\n\n/**\n * Extract the base values of all entries in an object (key helper for deprecating enum usage)\n * - Sadly you can't extract string values from actual TS enums (for usages in fixtures, as an example)\n * - Enums need to be replaced with 'as const' objects to work with this type.\n *\n * ```ts\n * // you could have done this with arrays or string literals, but they don't support JsDoc comments\n * const MyNewEnum = {\n * A: 'apple',\n * B: 'ball',\n * C: 'car'\n * } as const;\n * type MyEnumValues = ValueOf // 'apple' | 'ball' | 'car'\n * ```\n */\nexport type ValueOf = T[keyof T];\n\n/** Get the Keys of a type only matching a certain value type\n * @template T - The type to get the keys from\n * @template V - The type to match\n *\n * @example\n * ```\n * type Test = { a: string; b: number; c: string };\n * type Result = KeysMatching; // 'a' | 'c'\n * ```\n */\nexport type KeysMatching = {\n [K in keyof T]-?: T[K] extends V ? K : never;\n}[keyof T];\n\n/**\n * Typed version of Object.keys\n * - NOTE: the outputs are not automatically typesafe to use due to potentially additional properties (and why it's not standard TS library)\n * - See https://alexharri.com/blog/typescript-structural-typing for a great explanation and discussion\n *\n * PLEASE always check the output keys you're using this with are expected, and adjust as needed\n */\nexport function getTypedKeys(obj: T): (keyof T)[] {\n return Object.keys(obj) as (keyof T)[];\n}\n\n/**\n * Typed version of Object.entries\n * - NOTE: similarly to {@link getTypedKeys} the outputs are not automatically typesafe to use due to potentially additional object properties, but\n * for many cases it's a good enough solution which is better than the default.\n *\n * PLEASE always check the output mappings coming out of this are expected, and adjust as needed\n */\nexport function getTypedEntries(obj: T): [keyof T, T[keyof T]][] {\n return Object.entries(obj) as [keyof T, T[keyof T]][];\n}\n\n/**\n * Typed version of Object.values\n * - NOTE: similarly to {@link getTypedKeys} the outputs are not automatically typesafe to use due to potentially additional object properties, but\n * for many cases it's a good enough solution which is better than the default.\n *\n * PLEASE always check the output mappings coming out of this are expected, and adjust as needed\n */\nexport function getTypedValues(obj: T): T[keyof T][] {\n return Object.values(obj) as T[keyof T][];\n}\n\n/**\n * Typeguard helper for checking if a key is in an object (as Typescript doesn't support this out of the box)\n * https://stackoverflow.com/questions/64616994/typescript-type-narrowing-not-working-for-in-when-key-is-stored-in-a-variable\n * @param key property to test\n * @param obj object that key should be in\n */\nexport function isKeyIn(key: PropertyKey, obj: T): key is keyof T {\n return key in obj;\n}\n","export const urlFromLocalOrAbsolute = (\n pathOrUrl,\n protocol = window.location.protocol,\n hostname = window.location.hostname\n) => {\n const isAbsolute = pathOrUrl.startsWith('http') || pathOrUrl.startsWith('ws');\n if (isAbsolute) {\n return pathOrUrl;\n }\n return `${protocol}//${hostname}${pathOrUrl}`;\n};\n","export const promisesHaveResolved = (promises: PromiseSettledResult[]) => {\n return promises.every(promise => promise.status === 'fulfilled');\n};\n","export * from './array';\nexport * from './bufferedDispatcher';\nexport * from './composeComponents';\nexport * from './connectionStatus';\nexport * from './cookies';\nexport * from './copyText';\nexport * from './creditAmount';\nexport * from './currency';\nexport * from './customerMarketAccounts';\nexport * from './date';\nexport * from './empty';\nexport * from './env';\nexport * from './feeMode';\nexport * from './fileExport';\nexport * from './getCreditUsage';\nexport * from './http';\nexport * from './intl';\nexport * from './isOrderComplete';\nexport * from './isOrderPaused';\nexport * from './isOrderPending';\nexport * from './isReactNode';\nexport * from './lazyWithPrefetch';\nexport * from './logger';\nexport * from './marketColor';\nexport * from './mergedNestedMap';\nexport * from './microseconds';\nexport * from './multileg';\nexport * from './nestedMap';\nexport * from './notional';\nexport * from './number';\nexport * from './order';\nexport * from './prettyPriceProtection';\nexport * from './pricingMode';\nexport * from './random';\nexport * from './relativeSize';\nexport * from './render';\nexport * from './replaceTokens';\nexport * from './rollupMembershipUtils';\nexport * from './security';\nexport * from './setIntersection';\nexport * from './setNativeValue';\nexport * from './statistics';\nexport * from './string';\nexport * from './timeUnits';\nexport * from './truncateBlockchainAddress';\nexport * from './tryParseJSON';\nexport * from './types';\nexport * from './url';\nexport * from './user';\nexport * from './validation';\nexport * from './wait';\nexport * from './ws';\nexport function abbreviateId(id: string) {\n return id.substring(0, 4);\n}\n","import { css } from 'styled-components';\n\nexport const borderCss = (borderSize: number) => css`\n ${({ theme }) => {\n if (theme.chamferMultiplier) {\n return css`\n --offset: min(6px, ${borderSize}px);\n --offset-low: var(--offset);\n --offset-high: calc(100% - var(--offset));\n\n clip-path: polygon(\n 100% var(--offset-low),\n var(--offset-high) 0%,\n var(--offset-low) 0%,\n 0% var(--offset-low),\n 0% var(--offset-high),\n var(--offset-low) 100%,\n var(--offset-high) 100%,\n 100% var(--offset-high)\n );\n border-radius: 0;\n border-width: 0;\n outline: unset;\n `;\n } else {\n return css`\n border-radius: ${borderSize}px;\n `;\n }\n }}\n`;\n","import { normalize } from 'polished';\nimport { createGlobalStyle } from 'styled-components';\nimport { writeCssVars } from './cssVars';\nimport './fonts/helixicons/helixicons.css';\n\nexport const BaseStyle = createGlobalStyle`\n${({ theme }) => theme.fontFace}\n\n${normalize()};\n\n* {\n box-sizing: border-box;\n\n}\n\n\nhtml,\nbody {\n width: 100%;\n height: 100%;\n overflow: hidden;\n color: ${({ theme }) => theme.colorTextDefault};\n font-family: ${({ theme }) => theme.fontFamily};\n background: ${({ theme }) => theme.backgroundBody};\n background-size: cover;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\nbody {\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n}\n\n*::-webkit-scrollbar {\n background-color: transparent;\n width: ${({ theme }) => theme.scrollbarSize}px;\n height: ${({ theme }) => theme.scrollbarSize}px;\n}\n\n*:hover::-webkit-scrollbar {\n background-color: transparent;\n}\n\n*::-webkit-scrollbar-track {\n background-color: ${({ theme }) => theme.backgroundScrollbar};\n}\n\n*::-webkit-scrollbar-thumb {\n transition: background-color 200ms ease;\n background-color: ${({ theme }) => theme.colorScrollbar};\n border-radius: ${({ theme }) => theme.borderRadiusScrollbar}px;\n}\n\n*:hover, .ag-root:hover .ag-body-horizontal-scroll-viewport, .ag-root:hover .ag-body-vertical-scroll-viewport {\n &::-webkit-scrollbar-thumb {\n transition: background-color 200ms ease;\n background-color: ${({ theme }) => theme.colorScrollbarHover};\n }\n}\n\n*::-webkit-scrollbar-thumb {\n border-radius: ${({ theme }) => theme.borderRadiusScrollbar}px;\n}\n\n*::-webkit-scrollbar-button {\n display:none;\n}\n\n&::-webkit-scrollbar-corner {\n background: transparent;\n}\n\nh1, h2, h3, h4 {\n color: ${({ theme }) => theme.colorTextImportant};\n font-weight: ${({ theme }) => theme.fontWeightRegular};\n}\n\na {\n color: ${({ theme }) => theme.colorTextImportant};\n}\n\n:root {\n ${({ theme }) => writeCssVars({ theme, blacklist: ['fontUrl', 'name'] })}\n}\n`;\n\nexport const GlobalStyle = createGlobalStyle`\n#root {\n height: 100%;\n width: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n`;\n","import { isNumber, isString } from 'lodash';\nimport type { DefaultTheme } from 'styled-components';\nimport type { Leaves } from '../utils/types';\n\ntype ObjectMap = Record;\ninterface CssVars extends ObjectMap {}\n\nexport function writeCssVars({\n prefix = '',\n theme,\n blacklist = [],\n}: {\n prefix?: string;\n theme: DefaultTheme;\n blacklist?: string[];\n}) {\n const blacklistedKeys = new Set(blacklist);\n function recurse({ prefix, cssVars }: { prefix: string; cssVars: CssVars }): string[] {\n let results: string[] = [];\n for (const key in cssVars) {\n if (blacklistedKeys?.has(key)) {\n continue;\n }\n const item = cssVars[key];\n if (isString(item) || isNumber(item)) {\n results.push(`${prefix}-${key}: ${item};`);\n continue;\n }\n results = results.concat(...recurse({ prefix: `${prefix}-${key}`, cssVars: item }));\n }\n return results;\n }\n\n const result = recurse({\n prefix: prefix ? `--${prefix}` : `-`,\n cssVars: theme as unknown as CssVars,\n });\n\n return result.join('\\n');\n}\n\n/**\n * Allows accessing theme variables as CSS-vars using dot notation.\n *\n * @param path Theme property in dot-notation (e.g. colors.gray.080)\n * @param fallback Default value to use if it's missing for whatever reason\n */\nexport function cssVar(path: Leaves, fallback?: string): string {\n return `var(--${path.replace(/\\./g, '-')}${fallback ? `, ${fallback}` : ''})`;\n}\n","export const Z_INDEX = {\n adminBlotterHeader: 100,\n temporaryPanel: 110,\n oms: 1000,\n blotters: 1010,\n drawer: 1020,\n popover: 1030,\n modal: 1040,\n parentDropdown: 1049,\n dropdown: 1050,\n adminHeader: 1060,\n infoBar: 2010,\n globalToast: 2020,\n};\n","export const MEDIA = {\n small: 768,\n default: 1024,\n medium: 1440,\n large: 1680,\n big: 1920,\n};\n\nexport const minWidth = (width: number) => `@media screen and (min-width: ${width}px)`;\nexport const maxWidth = (width: number) => `@media screen and (max-width: ${width}px)`;\nexport const only = (from: number, to: number) => `@media screen and (min-width: ${from}px) and (max-width: ${to}px)`;\n","// this function is symlinked between packages/shared and packages/kyoko\n// to ensure it is identical in both cases\nexport const hashTheme = (theme: string): string => {\n if (['DarkTheme', 'LightTheme'].includes(theme)) {\n return theme;\n }\n\n // we only want to hash the name, not the light/dark prefix\n // This is to have a consistent hash for the same theme, regardless of light/dark (which prepend them)\n const prefix = theme.startsWith('Light') ? 'Light' : 'Dark';\n const str = theme.replace(prefix, '');\n\n // Remove all non-numeric/non-alphabetical characters\n return prefix + btoa(str).replace(/[^a-zA-Z0-9]/g, '') + 'Theme';\n};\n","import { hashTheme } from './hashTheme';\n\n/**\n * A wrapper around `hashTheme` that is used at runtime.\n * This function is used to allow theme overriding in local development, since\n * the themes are not hashed in local development.\n */\nexport function hashThemeRunTime(theme: string): string {\n if (import.meta.env.VITE_AVA_ENV === 'local') {\n return theme;\n }\n\n return hashTheme(theme);\n}\n","import { get, isString } from 'lodash';\nimport type { CSSProperties, DefaultTheme } from 'styled-components';\nimport type { Leaves } from '../../utils/types';\n\n/**\n * Use dimension from theme if it exists, otherwise assume it's a valid CSS size.\n * @param theme Current styled-components theme\n * @param dimensionToken Spacing constant or CSS size\n */\nexport function parseDimension(theme: DefaultTheme, dimensionToken: string | number) {\n if (typeof dimensionToken === 'number') {\n return `${dimensionToken}px`;\n }\n let sign = '';\n let parsedDimension = dimensionToken;\n if (isString(dimensionToken) && dimensionToken.charAt(0) === '-') {\n sign = '-';\n parsedDimension = dimensionToken.slice(1, dimensionToken.length);\n }\n\n const parsedDimensionValue = getThemeDimensionValue(theme, parsedDimension);\n return parsedDimensionValue ? `${sign}${parsedDimensionValue}px` : dimensionToken;\n}\n\n/**\n * Use color from theme if it exists, otherwise assume it's a valid CSS color.\n * @param theme Current styled-components theme\n * @param color Color variable or CSS color\n */\nexport function parseColor(\n theme: DefaultTheme,\n color: Leaves | string | undefined\n): string | undefined {\n const parsedColor = color ? get(theme, `colors.${color}`) ?? get(theme, color) : color;\n if (!import.meta.env.PROD && parsedColor != null && typeof parsedColor !== 'string') {\n throw new Error(`Invalid color: ${color} in theme is of unexpected type ${typeof parsedColor}`);\n }\n return parsedColor ?? color;\n}\n\n/**\n * Leverages `parseColor` to return a different color depending on whether the current theme is light or dark.\n * @param theme Current styled-components theme\n * @param lightColor Color variable or CSS color to use for light themes\n * @param darkColor Color variable or CSS color to use for dark themes\n */\nexport function modeColor(\n theme: DefaultTheme,\n lightColor: Leaves | string,\n darkColor: Leaves | string\n): string | undefined {\n return parseColor(theme, theme.type === 'light' ? lightColor : darkColor);\n}\n\n/**\n * Use font-size from theme if it exists, otherwise assume it's a valid CSS rem size.\n * @param theme Current styled-components theme\n * @param size Size constant or CSS size\n */\nexport function parseFontSize(theme: DefaultTheme, size: string | number): CSSProperties['fontSize'] {\n if (typeof size === 'number') {\n return `${size}rem`;\n }\n const sizeValue = getThemeDimensionValue(theme, size);\n return sizeValue ? `${sizeValue}rem` : size;\n}\n\n/**\n * Use font-size from theme if it exists, otherwise assume it's a valid CSS pixel size.\n * @param theme Current styled-components theme\n * @param size Size constant or CSS size\n */\nexport function parseIconSize(theme: DefaultTheme, size: string | number): CSSProperties['fontSize'] {\n if (typeof size === 'number') {\n return `${size}px`;\n }\n const sizeValue = getThemeDimensionValue(theme, size);\n return sizeValue ? `${sizeValue}rem` : size;\n}\n\n/**\n * Returns the input styles, but mapped to select theme variables.\n * Essentially a utility to help you apply your input theming to your select theming in one line\n * @param theme the theme you want to take the input styling from to be applied to your selects\n */\nexport function getInputStylesAppliedToSelect(theme: DefaultTheme) {\n return {\n backgroundSelect: theme.backgroundInput,\n backgroundSelectHover: theme.backgroundInput,\n backgroundSelectFocus: theme.backgroundInput,\n backgroundSelectInvalid: theme.backgroundInputInvalid,\n backgroundSelectDisabled: theme.backgroundInputDisabled,\n backgroundSelectReadOnly: theme.backgroundInputReadOnly,\n\n borderColorSelect: theme.borderColorInput,\n borderColorSelectHover: theme.borderColorInputHover,\n borderColorSelectFocus: theme.borderColorInputFocus,\n borderColorSelectInvalid: theme.borderColorInputInvalid,\n borderColorSelectDisabled: theme.borderColorInputDisabled,\n borderColorSelectReadOnly: theme.borderColorInputReadOnly,\n };\n}\n\n/** Validate and return the parsed dimension value from the theme */\nexport function getThemeDimensionValue(theme: DefaultTheme, dimensionToken: string) {\n const parsedDimensionValue = (theme as any)[dimensionToken];\n if (\n !import.meta.env.PROD &&\n parsedDimensionValue != null &&\n typeof parsedDimensionValue !== 'string' &&\n typeof parsedDimensionValue !== 'number'\n ) {\n throw new Error(\n `Invalid dimension: ${dimensionToken} in theme is of unexpected type ${typeof parsedDimensionValue}`\n );\n }\n return parsedDimensionValue;\n}\n","import { darken, lighten, rgba } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { css, keyframes } from 'styled-components';\nimport { parseColor } from './themes/utils';\n\n/**\n *\n * @param theme The styled-components theme\n * @param color The color you wish to apply some darken or lighten to\n * @param diff The amount, 0 to 1, you wish to apply darken or lighten with. Defaults to 0.05.\n * @returns a new string color\n */\nexport function hoverColor(theme: Pick, color: string, diff = 0.05): string {\n if (theme.type === 'light') {\n return darken(diff, color);\n } else {\n return lighten(diff, color);\n }\n}\n\n/**\n * Adjust the opacity of a color by setting the alpha value of an opaque color\n * @param amount The opacity level for the color\n * @param color The color to adjust\n * @returns a color string with the correct alpha value\n */\nexport function setAlpha(amount: number, color: string) {\n return rgba(color, amount);\n}\n// https://stackoverflow.com/a/1636354/11076115\nconst hexRegex = /^#(?:[0-9a-fA-F]{3}){1,2}$/;\nconst hslRegex =\n /hsla?\\((?:(-?\\d+(?:deg|g?rad|turn)?),\\s*((?:\\d{1,2}|100)%),\\s*((?:\\d{1,2}|100)%)(?:,\\s*((?:\\d{1,2}|100)%|0(?:\\.\\d+)?|1))?|(-?\\d+(?:deg|g?rad|turn)?)\\s+((?:\\d{1,2}|100)%)\\s+((?:\\d{1,2}|100)%)(?:\\s+((?:\\d{1,2}|100)%|0(?:\\.\\d+)?|1))?)\\)/;\nconst rgbRegex =\n /rgba?\\((?:(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%),\\s*(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%),\\s*(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%)(?:,\\s*((?:\\d{1,2}|100)%|0(?:\\.\\d+)?|1))?|(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%)\\s+(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%)\\s+(25[0-5]|2[0-4]\\d|1?\\d{1,2}|(?:\\d{1,2}|100)%)(?:\\s+((?:\\d{1,2}|100)%|0(?:\\.\\d+)?|1))?)\\)/;\n\n/**\n * Check if a given string is usable as a CSS color\n * @param color the color you want to validate\n * @returns true if the string is a valid color string\n */\nexport const isAdjustableColor = (color: string) => {\n const s = new Option().style;\n s.color = color;\n\n if (s.color === '' || color.includes('url') || color.includes('gradient')) {\n return false;\n }\n\n if (color.length > 0) {\n if (hexRegex.test(color) || hslRegex.test(color) || rgbRegex.test(color)) {\n return true;\n }\n }\n\n return false;\n};\n\nconst loading = keyframes`\n 0% {\n background-position: 0% 0%;\n }\n 100% {\n background-position: -400% -400%;\n }\n`;\n\n/** Get an animated background for a loading container */\nexport function getLoadingAnimation(\n theme: DefaultTheme,\n isLoading: boolean | undefined,\n background: string,\n darkerBackground?: string\n) {\n return isLoading\n ? css`\n background: linear-gradient(\n 270deg,\n ${parseColor(theme, background) ?? background},\n ${parseColor(theme, darkerBackground) ?? darken(0.05, parseColor(theme, background) ?? background)},\n ${parseColor(theme, background) ?? background}\n );\n background-position: 0% 0%;\n background-size: 400%;\n animation: ${loading} 4s linear infinite;\n `\n : `background: ${parseColor(theme, background) ?? background};`;\n}\n\nexport function getMutedButtonStyles(colors: Colors, customMappings: Partial) {\n return {\n backgroundMutedButton:\n customMappings.backgroundMutedButton ||\n customMappings.backgroundDefaultButton ||\n setAlpha(0.08, colors.gray['100']),\n backgroundMutedButtonHover:\n customMappings.backgroundMutedButtonHover ||\n customMappings.backgroundDefaultButtonHover ||\n setAlpha(0.12, colors.gray['100']),\n backgroundMutedButtonFocus:\n customMappings.backgroundMutedButtonFocus ||\n customMappings.backgroundDefaultButtonFocus ||\n setAlpha(0.12, colors.gray['100']),\n backgroundMutedButtonActive:\n customMappings.backgroundMutedButtonActive ||\n customMappings.backgroundDefaultButtonActive ||\n setAlpha(0.08, colors.gray['100']),\n backgroundMutedButtonDisabled:\n customMappings.backgroundMutedButtonDisabled ||\n customMappings.backgroundDefaultButtonDisabled ||\n setAlpha(0.04, colors.gray['100']),\n\n boxShadowMutedButton: customMappings.boxShadowMutedButton || customMappings.boxShadowDefaultButton || 'none',\n boxShadowMutedButtonHover:\n customMappings.boxShadowMutedButtonHover || customMappings.boxShadowDefaultButtonHover || 'none',\n boxShadowMutedButtonFocus:\n customMappings.boxShadowMutedButtonFocus || customMappings.boxShadowDefaultButtonFocus || 'none',\n boxShadowMutedButtonActive:\n customMappings.boxShadowMutedButtonActive || customMappings.boxShadowDefaultButtonActive || 'none',\n boxShadowMutedButtonDisabled:\n customMappings.boxShadowMutedButtonDisabled || customMappings.boxShadowDefaultButtonDisabled || 'none',\n\n colorTextMutedButton:\n customMappings.colorTextMutedButton || customMappings.colorTextDefaultButton || colors.gray['100'],\n colorTextMutedButtonHover:\n customMappings.colorTextMutedButtonHover || customMappings.colorTextDefaultButtonHover || colors.gray['100'],\n colorTextMutedButtonFocus:\n customMappings.colorTextMutedButtonFocus || customMappings.colorTextDefaultButtonFocus || colors.gray['100'],\n colorTextMutedButtonActive:\n customMappings.colorTextMutedButtonActive || customMappings.colorTextDefaultButtonActive || colors.gray['100'],\n colorTextMutedButtonDisabled:\n customMappings.colorTextMutedButtonDisabled ||\n customMappings.colorTextDefaultButtonDisabled ||\n setAlpha(0.5, colors.gray['100']),\n\n borderColorMutedButton:\n customMappings.borderColorMutedButton || customMappings.borderColorDefaultButton || 'transparent',\n borderColorMutedButtonHover:\n customMappings.borderColorMutedButtonHover || customMappings.borderColorDefaultButtonHover || 'transparent',\n borderColorMutedButtonFocus:\n customMappings.borderColorMutedButtonFocus || customMappings.borderColorDefaultButtonFocus || 'transparent',\n borderColorMutedButtonActive:\n customMappings.borderColorMutedButtonActive || customMappings.borderColorDefaultButtonActive || 'transparent',\n borderColorMutedButtonDisabled:\n customMappings.borderColorMutedButtonDisabled || customMappings.borderColorDefaultButtonDisabled || 'transparent',\n } satisfies Partial;\n}\n","import type { BaseTheme } from 'styled-components';\n\nconst BASE_SIZE = 16;\n\nexport const base: BaseTheme = {\n baseSize: BASE_SIZE,\n\n /** deprecated legacy spacings */\n spacingHuge: BASE_SIZE * 3,\n spacingBig: BASE_SIZE * 2,\n spacingLarge: BASE_SIZE * 1.5,\n spacingMedium: BASE_SIZE,\n spacingComfortable: BASE_SIZE * 0.75,\n spacingDefault: BASE_SIZE * 0.5,\n spacingSmall: BASE_SIZE * 0.25,\n spacingTiny: BASE_SIZE * 0.125,\n\n /** new setup tied to resulting target pixels */\n spacing48: BASE_SIZE * 3,\n spacing32: BASE_SIZE * 2,\n spacing24: BASE_SIZE * 1.5,\n spacing16: BASE_SIZE,\n spacing12: BASE_SIZE * 0.75,\n spacing10: BASE_SIZE * 0.625,\n spacing8: BASE_SIZE * 0.5,\n spacing6: BASE_SIZE * 0.375,\n spacing4: BASE_SIZE * 0.25,\n spacing2: BASE_SIZE * 0.125,\n\n fontSizeHuge: 1.5,\n fontSizeBig: 1.125,\n fontSizeLarge: 1,\n fontSizeDefault: 0.875,\n fontSizeSmall: 0.75,\n fontSizeTiny: 0.6875,\n\n fontWeightRegular: '400',\n fontWeightMedium: '500',\n fontWeightBold: '700',\n\n fontSizeTitleH1: 44 / BASE_SIZE,\n fontSizeTitleH2: 32 / BASE_SIZE,\n fontSizeTitleH3: 24 / BASE_SIZE,\n fontSizeTitleH4: 20 / BASE_SIZE,\n fontSizeTitleH5: 18 / BASE_SIZE,\n fontSizeTitleH6: 16 / BASE_SIZE,\n fontSizeXl: 18 / BASE_SIZE,\n fontSizeLg: 16 / BASE_SIZE,\n fontSizeMd: 14 / BASE_SIZE,\n fontSizeSm: 12 / BASE_SIZE,\n fontSizeXs: 11 / BASE_SIZE,\n lineHeightTitleH1: 56 / BASE_SIZE,\n lineHeightTitleH2: 40 / BASE_SIZE,\n lineHeightTitleH3: 32 / BASE_SIZE,\n lineHeightTitleH4: 24 / BASE_SIZE,\n lineHeightTitleH5: 24 / BASE_SIZE,\n lineHeightTitleH6: 20 / BASE_SIZE,\n lineHeightXl: 24 / BASE_SIZE,\n lineHeightLg: 20 / BASE_SIZE,\n lineHeightMd: 16 / BASE_SIZE,\n lineHeightSm: 16 / BASE_SIZE,\n lineHeightXs: 12 / BASE_SIZE,\n\n lineHeightHuge: 2,\n lineHeightBig: 1.5,\n lineHeightLarge: 1.25,\n lineHeightDefault: 1,\n lineHeightSmall: 1,\n lineHeightTiny: 0.75,\n\n fontSizeFormLabel: 0.75,\n fontSizeFormHelp: 0.75,\n\n fontSizeBlotterTableCompact: 0.75,\n fontSizeBlotterTableDefault: 0.75,\n fontSizeBlotterTableHeader: 0.6875,\n blotterTableHeaderFontWeight: '400',\n blotterTableHeaderTextTransform: 'uppercase',\n\n rowHeightBlotterTableCompact: 28 + 1, // + 1 for border\n rowHeightBlotterTableDefault: 32 + 1, // + 1 for border\n rowHeightBlotterTableComfortable: 40 + 1, // + 1 for border\n rowHeightBlotterTableVeryComfortable: 52 + 1, // + 1 for border\n\n fontFamily: 'Roboto, sans-serif',\n fontUrl: 'https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400&display=swap',\n\n borderRadiusTiny: 1,\n borderRadiusSmall: 2,\n borderRadiusDefault: 3,\n borderRadiusMedium: BASE_SIZE * 0.25,\n borderRadiusLarge: BASE_SIZE * 0.5,\n borderRadiusBig: BASE_SIZE,\n borderRadiusHuge: BASE_SIZE * 2.5,\n\n borderRadiusCard: 3,\n borderRadiusContent: 0,\n borderRadiusLayoutWrapper: 0,\n\n borderRadiusButtonTiny: 1,\n borderRadiusButtonSmall: 2,\n borderRadiusButtonDefault: 3,\n borderRadiusButtonLarge: BASE_SIZE * 0.25,\n\n spacingLayout: BASE_SIZE * 0.25,\n spacingContent: BASE_SIZE * 0.125,\n spacingLayoutWrapper: 0,\n\n scrollbarSize: 8,\n borderRadiusScrollbar: 4,\n\n borderWidthButton: 0,\n\n indicatorDotSizeDefault: BASE_SIZE * 0.375,\n indicatorDotSizeLarge: BASE_SIZE * 0.625,\n};\n","import type { Colors, DefaultTheme } from 'styled-components';\n\nimport { Direction } from '../../types/Direction';\nimport { getMutedButtonStyles, setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { ThemeTypes } from './types';\n\nexport const darkColors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#181A22',\n\n '000': '#01030C',\n '010': '#10121A',\n '020': '#20222A',\n '030': '#272930',\n '040': '#2F3038',\n '050': '#37383F',\n '060': '#414249',\n '070': '#53545A',\n '080': '#808186',\n '090': '#A3A4A7',\n '100': '#E5E5E6',\n },\n\n primary: {\n mute: 'rgba(49, 74, 140, 0.1)',\n dim: 'rgba(49, 74, 140, 0.4)',\n default: '#314A8C',\n lighten: '#4B64A6',\n },\n\n green: {\n mute: 'rgba(51, 126, 90, 0.1)',\n dim: 'rgba(51, 126, 90, 0.4)',\n default: '#2E7E57',\n lighten: '#56AE84',\n },\n\n red: {\n mute: 'rgba(146, 46, 67, 0.1)',\n dim: 'rgba(146, 46, 67, 0.4)',\n default: '#A63240',\n lighten: '#F3455A',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n default: '#338EEB',\n lighten: '#4AA4FF',\n dim: 'rgba(51, 136, 224, 0.4)',\n mute: 'rgba(51, 136, 224, 0.1)',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: {\n default: '#8B4ED9',\n lighten: '#A45FFF',\n },\n};\n\nexport const DarkTheme: DefaultTheme = mapDarkTheme(darkColors, {});\n\nexport function mapDarkTheme(colors: Colors, customMappings: Partial): DefaultTheme {\n const backgroundDefaultButton = setAlpha(0.08, colors.gray['100']);\n const backgroundDefaultButtonHover = setAlpha(0.12, colors.gray['100']);\n const backgroundDefaultButtonFocus = setAlpha(0.12, colors.gray['100']);\n const backgroundDefaultButtonActive = setAlpha(0.08, colors.gray['100']);\n const backgroundDefaultButtonDisabled = setAlpha(0.04, colors.gray['100']);\n\n return {\n ...base,\n type: ThemeTypes.dark,\n name: 'Dark',\n\n colors,\n\n backgroundBody: colors.gray['000'],\n backgroundShadow: colors.gray['010'],\n backgroundLayoutWrapper: 'transparent',\n\n backgroundContent: colors.gray.main,\n backgroundContentHover: colors.gray['020'],\n backgroundDrawer: colors.gray['020'],\n backdropFilterDrawer: 'none',\n backgroundPopover: colors.gray['030'],\n backgroundPopoverHighlight: colors.gray['040'],\n backgroundModal: colors.gray['020'],\n borderColorModal: colors.gray['020'],\n borderColorPopover: setAlpha(0.08, colors.gray['100']),\n backgroundCard: setAlpha(0.04, colors.gray['100']),\n\n boxShadowDraggedItem: `0 2px 25px ${colors.black.mute}`,\n\n backgroundOverlay: setAlpha(0.8, colors.gray['000']),\n\n backgroundSidebar: colors.gray['020'],\n borderColorSidebar: colors.gray['020'],\n backgroundSidebarItemActive: colors.gray['040'],\n backgroundSidebarItemHover: colors.gray['030'],\n backdropFilterSidebar: 'none',\n\n colorTextSidebarItem: colors.gray['090'],\n colorTextSidebarItemActive: colors.gray['100'],\n colorTextSidebarItemHover: colors.gray['100'],\n\n boxShadowContent: 'none',\n boxShadowHeader: 'none',\n backdropFilterContent: 'none',\n backdropFilterHeader: 'none',\n\n colorBlotterTableHeader: colors.gray['090'],\n\n backgroundBlotterTableRow: colors.gray.main,\n backgroundBlotterTableRowSelected: colors.gray['030'],\n backgroundBlotterTableRowHover: colors.gray['020'],\n borderColorBlotterTable: setAlpha(0.56, colors.gray['000']),\n\n backgroundScrollbar: 'transparent',\n colorScrollbar: setAlpha(0.5, colors.gray['030']),\n colorScrollbarHover: setAlpha(0.5, colors.gray['080']),\n\n borderColorContent: 'transparent',\n backgroundHeader: colors.gray['020'],\n borderColorHeader: colors.gray['020'],\n\n backgroundDefaultButton: backgroundDefaultButton,\n backgroundDefaultButtonHover: backgroundDefaultButtonHover,\n backgroundDefaultButtonFocus: backgroundDefaultButtonFocus,\n backgroundDefaultButtonActive: backgroundDefaultButtonActive,\n backgroundDefaultButtonDisabled: backgroundDefaultButtonDisabled,\n\n backgroundPriorityButton: setAlpha(0.24, colors.gray['100']),\n backgroundPriorityButtonHover: setAlpha(0.32, colors.gray['100']),\n backgroundPriorityButtonFocus: setAlpha(0.32, colors.gray['100']),\n backgroundPriorityButtonActive: setAlpha(0.24, colors.gray['100']),\n backgroundPriorityButtonDisabled: setAlpha(0.12, colors.gray['100']),\n\n backgroundPrimaryButton: colors.primary.default,\n backgroundPrimaryButtonHover: colors.primary.lighten,\n backgroundPrimaryButtonFocus: colors.primary.lighten,\n backgroundPrimaryButtonActive: colors.primary.default,\n backgroundPrimaryButtonDisabled: setAlpha(0.5, colors.primary.default),\n\n backgroundPositiveButton: colors.green.default,\n backgroundPositiveButtonHover: colors.green.lighten,\n backgroundPositiveButtonFocus: colors.green.lighten,\n backgroundPositiveButtonActive: colors.green.default,\n backgroundPositiveButtonDisabled: setAlpha(0.5, colors.green.default),\n\n backgroundNegativeButton: colors.red.default,\n backgroundNegativeButtonHover: colors.red.lighten,\n backgroundNegativeButtonFocus: colors.red.lighten,\n backgroundNegativeButtonActive: colors.red.default,\n backgroundNegativeButtonDisabled: setAlpha(0.5, colors.red.default),\n\n backgroundWarningButton: colors.yellow.default,\n backgroundWarningButtonHover: colors.yellow.lighten,\n backgroundWarningButtonFocus: colors.yellow.lighten,\n backgroundWarningButtonActive: colors.yellow.default,\n backgroundWarningButtonDisabled: setAlpha(0.5, colors.yellow.default),\n\n boxShadowPrimaryButton: 'none',\n boxShadowPrimaryButtonHover: 'none',\n boxShadowPrimaryButtonFocus: 'none',\n boxShadowPrimaryButtonActive: 'none',\n boxShadowPrimaryButtonDisabled: 'none',\n\n boxShadowPositiveButton: 'none',\n boxShadowPositiveButtonHover: 'none',\n boxShadowPositiveButtonFocus: 'none',\n boxShadowPositiveButtonActive: 'none',\n boxShadowPositiveButtonDisabled: 'none',\n\n boxShadowNegativeButton: 'none',\n boxShadowNegativeButtonHover: 'none',\n boxShadowNegativeButtonFocus: 'none',\n boxShadowNegativeButtonActive: 'none',\n boxShadowNegativeButtonDisabled: 'none',\n\n boxShadowPriorityButton: 'none',\n boxShadowPriorityButtonHover: 'none',\n boxShadowPriorityButtonFocus: 'none',\n boxShadowPriorityButtonActive: 'none',\n boxShadowPriorityButtonDisabled: 'none',\n\n boxShadowDefaultButton: 'none',\n boxShadowDefaultButtonHover: 'none',\n boxShadowDefaultButtonFocus: 'none',\n boxShadowDefaultButtonActive: 'none',\n boxShadowDefaultButtonDisabled: 'none',\n\n boxShadowInput: 'none',\n boxShadowInputHover: 'none',\n boxShadowInputFocus: 'none',\n boxShadowInputInvalid: 'none',\n boxShadowInputDisabled: 'none',\n boxShadowInputReadOnly: 'none',\n boxShadowInputInvalidFocus: 'none',\n\n backgroundPrimary: colors.primary.default,\n backgroundPositive: colors.green.default,\n backgroundNegative: colors.red.default,\n backgroundPrimarySubtle: colors.primary.dim,\n backgroundPositiveSubtle: colors.green.dim,\n backgroundNegativeSubtle: colors.red.dim,\n backgroundPrimaryMuted: colors.primary.mute,\n backgroundPositiveMuted: colors.green.mute,\n backgroundNegativeMuted: colors.red.mute,\n\n backgroundInput: setAlpha(0.2, colors.gray['000']),\n backgroundInputDisabled: setAlpha(0.16, colors.gray['000']),\n backgroundInputReadOnly: setAlpha(0.2, colors.gray['000']),\n backgroundInputInvalid: 'transparent',\n\n backgroundSelect: setAlpha(0.08, colors.gray['100']),\n backgroundSelectHover: setAlpha(0.12, colors.gray['100']),\n backgroundSelectFocus: setAlpha(0.12, colors.gray['100']),\n backgroundSelectDisabled: setAlpha(0.12, colors.gray['100']),\n backgroundSelectReadOnly: setAlpha(0.08, colors.gray['100']),\n backgroundSelectInvalid: setAlpha(0.08, colors.gray['100']),\n\n backgroundSelectDropdown: colors.gray['010'],\n\n backgroundToggle: setAlpha(0.52, colors.gray['000']),\n backgroundToggleChecked: colors.primary.default,\n backgroundToggleSwitch: colors.gray['090'],\n backgroundToggleSwitchChecked: colors.white.default,\n\n backgroundToggleSwitchButton: setAlpha(0.32, colors.gray['000']),\n backgroundToggleSwitchButtonActive: setAlpha(0.12, colors.gray.main),\n\n backgroundCheckbox: setAlpha(0.08, colors.gray['100']),\n backgroundCheckboxHover: setAlpha(0.12, colors.gray['100']),\n backgroundCheckboxChecked: colors.primary.default,\n backgroundCheckboxCheckedHover: colors.primary.lighten,\n\n colorCheckboxCheck: colors.white.default,\n\n borderColorCheckbox: setAlpha(0.08, colors.gray['100']),\n borderColorCheckboxFocus: colors.blue.lighten,\n borderColorCheckboxHover: setAlpha(0.16, colors.gray['100']),\n borderColorCheckboxChecked: colors.primary.default,\n borderColorCheckboxCheckedFocus: colors.blue.lighten,\n\n backgroundRadiobutton: setAlpha(0.08, colors.gray['100']),\n backgroundRadiobuttonHover: setAlpha(0.12, colors.gray['100']),\n backgroundRadiobuttonChecked: colors.primary.default,\n backgroundRadiobuttonCheckedHover: colors.primary.lighten,\n\n colorRadiobuttonDot: colors.white.default,\n\n borderColorRadiobutton: setAlpha(0.08, colors.gray['100']),\n borderColorRadiobuttonFocus: colors.blue.lighten,\n borderColorRadiobuttonHover: setAlpha(0.16, colors.gray['100']),\n borderColorRadiobuttonChecked: colors.primary.default,\n borderColorRadiobuttonCheckedFocus: colors.blue.lighten,\n\n backgroundProgressBar: setAlpha(0.12, colors.gray['100']),\n backgroundProgressBarIndeterminate: colors.gray['050'],\n backgroundProgressBarMeter: colors.primary.default,\n\n colorTextMuted: colors.gray['070'],\n colorTextSubtle: colors.gray['080'],\n colorTextDefault: colors.gray['090'],\n colorTextImportant: colors.gray['100'],\n colorTextAttention: colors.white.default,\n\n colorTextDefaultButton: colors.gray['100'],\n colorTextDefaultButtonHover: colors.gray['100'],\n colorTextDefaultButtonFocus: colors.gray['100'],\n colorTextDefaultButtonActive: colors.gray['100'],\n colorTextDefaultButtonDisabled: setAlpha(0.5, colors.gray['100']),\n\n colorTextDefaultDimButton: colors.gray['090'],\n\n colorTextPriorityButton: colors.gray['100'],\n colorTextPriorityButtonHover: colors.gray['100'],\n colorTextPriorityButtonFocus: colors.gray['100'],\n colorTextPriorityButtonActive: colors.gray['100'],\n colorTextPriorityButtonDisabled: setAlpha(0.5, colors.gray['100']),\n\n colorTextPriorityDimButton: colors.gray['090'],\n\n colorTextPositiveButton: colors.white.default,\n colorTextPositiveButtonHover: colors.white.default,\n colorTextPositiveButtonFocus: colors.white.default,\n colorTextPositiveButtonActive: colors.white.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextNegativeButton: colors.white.default,\n colorTextNegativeButtonHover: colors.white.default,\n colorTextNegativeButtonFocus: colors.white.default,\n colorTextNegativeButtonActive: colors.white.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextWarningButton: colors.white.default,\n colorTextWarningButtonHover: colors.white.default,\n colorTextWarningButtonFocus: colors.white.default,\n colorTextWarningButtonActive: colors.white.default,\n colorTextWarningButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonFocus: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextPrimary: colors.primary.lighten,\n colorTextPrimarySubtle: colors.primary.default,\n colorTextPrimaryMuted: colors.primary.dim,\n colorTextPositive: colors.green.lighten,\n colorTextPositiveSubtle: colors.green.default,\n colorTextPositiveMuted: colors.green.dim,\n colorTextNegative: colors.red.lighten,\n colorTextNegativeSubtle: colors.red.default,\n colorTextNegativeMuted: colors.red.dim,\n colorTextWarning: colors.yellow.lighten,\n colorTextWarningSubtle: colors.yellow.default,\n colorTextWarningMuted: colors.yellow.mute,\n\n colorOrderStatusRejected: colors.yellow.lighten,\n colorOrderStatusFilled: colors.green.lighten,\n\n colorDataBlue: '#2C59D0',\n\n borderColorInput: setAlpha(0.08, colors.gray['100']),\n borderColorInputHover: setAlpha(0.2, colors.gray['100']),\n borderColorInputFocus: setAlpha(0.56, colors.gray['100']),\n\n borderColorInputInvalid: colors.red.lighten,\n borderColorInputInvalidFocus: colors.red.lighten,\n borderColorInputDisabled: setAlpha(0.04, colors.gray['100']),\n borderColorInputReadOnly: setAlpha(0.04, colors.gray['100']),\n\n borderColorSelect: 'transparent',\n borderColorSelectHover: 'transparent',\n borderColorSelectFocus: setAlpha(0.16, colors.gray['100']),\n borderColorSelectInvalid: colors.red.lighten,\n borderColorSelectDisabled: 'transparent',\n borderColorSelectReadOnly: 'transparent',\n\n borderColorDefaultButton: 'transparent',\n borderColorDefaultButtonHover: 'transparent',\n borderColorDefaultButtonFocus: 'transparent',\n borderColorDefaultButtonActive: 'transparent',\n borderColorDefaultButtonDisabled: 'transparent',\n\n borderColorPriorityButton: 'transparent',\n borderColorPriorityButtonHover: 'transparent',\n borderColorPriorityButtonFocus: 'transparent',\n borderColorPriorityButtonActive: 'transparent',\n borderColorPriorityButtonDisabled: 'transparent',\n\n borderColorPositiveButton: 'transparent',\n borderColorPositiveButtonHover: 'transparent',\n borderColorPositiveButtonFocus: 'transparent',\n borderColorPositiveButtonActive: 'transparent',\n borderColorPositiveButtonDisabled: 'transparent',\n\n borderColorNegativeButton: 'transparent',\n borderColorNegativeButtonHover: 'transparent',\n borderColorNegativeButtonFocus: 'transparent',\n borderColorNegativeButtonActive: 'transparent',\n borderColorNegativeButtonDisabled: 'transparent',\n\n borderColorPrimaryButton: 'transparent',\n borderColorPrimaryButtonHover: 'transparent',\n borderColorPrimaryButtonFocus: 'transparent',\n borderColorPrimaryButtonActive: 'transparent',\n borderColorPrimaryButtonDisabled: 'transparent',\n\n borderColorWarningButton: 'transparent',\n borderColorWarningButtonHover: 'transparent',\n borderColorWarningButtonFocus: 'transparent',\n borderColorWarningButtonActive: 'transparent',\n borderColorWarningButtonDisabled: 'transparent',\n\n borderColorChartAxis: colors.gray['040'],\n borderColorChartGridLine: colors.gray['040'],\n borderColorChartCrosshair: colors.gray['070'],\n backgroundChartUpColor: colors.green.lighten,\n backgroundChartDownColor: colors.red.lighten,\n borderColorChartUpColor: colors.green.lighten,\n borderColorChartDownColor: colors.red.lighten,\n backgroundChart: colors.gray.main,\n\n borderColorDivider: colors.gray['050'],\n backgroundDivider: setAlpha(0.56, colors.gray['000']),\n\n borderColorTimeline: colors.gray['070'],\n backgroundTimelineContent: colors.gray['030'],\n backgroundTimelineOverlay: `linear-gradient(to top, ${setAlpha(1, colors.gray['020'])}, ${setAlpha(\n 0,\n colors.gray['020']\n )})`,\n\n borderColorSelectionTable: colors.gray.main,\n borderColorSelectionTableActive: colors.gray['030'],\n\n colorTab: colors.gray['090'],\n colorTabHover: colors.gray['100'],\n colorTabActive: colors.gray['090'],\n colorTabSelected: colors.gray['100'],\n borderColorTab: setAlpha(0.56, colors.gray['000']),\n backgroundFilledTab: colors.gray['030'],\n backgroundFilledTabList: colors.gray['010'],\n borderColorTabSelected: colors.gray['100'],\n\n boxShadowTab: 'none',\n boxShadowTabActive: 'none',\n\n backgroundResizeHandle: colors.gray['030'],\n backgroundResizeHandleHover: colors.gray['040'],\n\n backgroundLoader: colors.gray['100'],\n\n borderColorDrawer: colors.gray['020'],\n\n backgroundTabInput: colors.primary.dim,\n colorTabInputButton: colors.gray['080'],\n colorTabInputButtonHover: colors.gray['080'],\n colorTabInputButtonActive: colors.gray['100'],\n\n colorStepIconOpen: colors.gray['070'],\n colorStepIconActive: colors.primary.lighten,\n colorStepIconDone: colors.primary.lighten,\n colorStepConnectionOpen: colors.gray['070'],\n colorStepConnectionDone: colors.primary.lighten,\n\n backgroundAccordionContent: colors.gray['020'],\n\n colorTextVolumeLadderSpread: colors.gray['100'],\n backgroundVolumeLadderBidSpread: colors.primary.dim,\n backgroundVolumeLadderOfferSpread: colors.primary.dim,\n backgroundVolumeLadderTransparencyDirection: Direction.Asc,\n\n backgroundDropdownResults: colors.gray['040'],\n backgroundDropdownInput: colors.gray['030'],\n backgroundDropdownSelected: colors.gray['060'],\n backgroundDropdownHovered: colors.gray['050'],\n backgroundDropdownGroupHeader: colors.gray['050'],\n boxShadowDropdown: '0px 24px 40px 0px #00000066',\n\n backgroundModalHeader: colors.gray['050'],\n\n colorModeCurrencyIcon: 'monochrome',\n colorCurrencyIcon: colors.gray.main,\n\n colorStackedNumberHighlight: colors.gray['100'],\n colorStackedNumberNoHighlight: colors.gray['090'],\n\n columnDividerDefault: setAlpha(0.12, colors.gray['100']),\n columnDividerHover: colors.gray['080'],\n\n chamferMultiplier: 0,\n buttonGroupSharedBackground: 'transparent',\n\n ...customMappings,\n ...getMutedButtonStyles(colors, customMappings),\n };\n}\n","import type { DefaultTheme } from 'styled-components';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const DarkTalosTheme: DefaultTheme = mapDarkTheme(darkColors, {\n name: 'DarkDefault',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { Direction } from '../../types/Direction';\nimport { getMutedButtonStyles, setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { ThemeTypes } from './types';\n\nexport const lightColors: Colors = {\n gray: {\n main: hsla(240, 1.0, 1.0, 1),\n '000': hsla(240, 0.12, 0.88, 1),\n '010': hsla(240, 0.12, 0.93, 1),\n '020': hsla(240, 0.12, 0.96, 1),\n '030': hsla(240, 0.12, 0.91, 1),\n '040': hsla(240, 0.06, 0.85, 1),\n '050': hsla(240, 0.06, 0.81, 1),\n '060': hsla(240, 0.06, 0.77, 1),\n '070': hsla(240, 0.06, 0.73, 1),\n '080': hsla(240, 0.06, 0.61, 1),\n '090': hsla(240, 0.04, 0.42, 1),\n '100': hsla(240, 0.15, 0.14, 1),\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n default: '#314A8C',\n lighten: '#4B64A6',\n dim: 'rgba(49, 74, 140, 0.4)',\n mute: 'rgba(49, 74, 140, 0.1)',\n },\n\n green: {\n default: '#2E7E57',\n lighten: '#2C8459',\n dim: 'rgba(51, 126, 90, 0.4)',\n mute: 'rgba(51, 126, 90, 0.1)',\n },\n\n red: {\n default: '#A63240',\n lighten: '#C63949',\n dim: 'rgba(146, 46, 67, 0.4)',\n mute: 'rgba(146, 46, 67, 0.1)',\n },\n\n yellow: {\n default: '#B68616',\n lighten: '#C39018',\n dim: 'rgba(182, 134, 22, 0.4)',\n mute: 'rgba(182, 134, 22, 0.1)',\n },\n\n blue: {\n default: '#3388E0',\n lighten: '#499EF6',\n dim: 'rgba(51, 136, 224, 0.4)',\n mute: 'rgba(51, 136, 224, 0.1)',\n },\n\n orange: {\n default: '#DD4E00',\n lighten: '#E45000',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: {\n default: '#844BCC',\n lighten: '#894FD6',\n },\n};\n\nexport const LightTheme: DefaultTheme = mapLightTheme(lightColors, {});\n\nexport function mapLightTheme(colors: Colors, customMappings: Partial): DefaultTheme {\n const backgroundDefaultButton = setAlpha(0.08, colors.gray['100']);\n const backgroundDefaultButtonHover = setAlpha(0.12, colors.gray['100']);\n const backgroundDefaultButtonFocus = setAlpha(0.12, colors.gray['100']);\n const backgroundDefaultButtonActive = setAlpha(0.08, colors.gray['100']);\n const backgroundDefaultButtonDisabled = setAlpha(0.04, colors.gray['100']);\n\n return {\n ...base,\n name: 'Light',\n type: ThemeTypes.light,\n\n colors,\n\n backgroundBody: colors.gray['000'],\n backgroundShadow: colors.gray['040'],\n backgroundLayoutWrapper: 'transparent',\n\n backgroundContent: colors.gray.main,\n backgroundDrawer: colors.gray.main,\n backdropFilterDrawer: 'none',\n backgroundCard: setAlpha(0.04, colors.gray['100']),\n backgroundPopover: colors.gray.main,\n backgroundPopoverHighlight: colors.gray['030'],\n backgroundModal: colors.gray.main,\n borderColorModal: colors.gray.main,\n backgroundContentHover: colors.gray['020'],\n borderColorPopover: setAlpha(0.08, colors.gray['100']),\n\n backgroundOverlay: setAlpha(0.9, colors.gray.main),\n\n backgroundSidebar: colors.gray.main,\n backgroundSidebarItemActive: colors.gray['040'],\n backgroundSidebarItemHover: colors.gray['030'],\n borderColorSidebar: colors.gray.main,\n backdropFilterSidebar: 'none',\n\n colorTextSidebarItem: colors.gray['090'],\n colorTextSidebarItemActive: colors.gray['100'],\n colorTextSidebarItemHover: colors.gray['100'],\n\n boxShadowContent: 'none',\n boxShadowHeader: 'none',\n boxShadowDraggedItem: `0 2px 25px ${colors.black.mute}`,\n backdropFilterContent: 'none',\n backdropFilterHeader: 'none',\n\n colorBlotterTableHeader: colors.gray['090'],\n\n backgroundBlotterTableRow: colors.gray.main,\n backgroundBlotterTableRowSelected: colors.gray['030'],\n backgroundBlotterTableRowHover: colors.gray['020'],\n borderColorBlotterTable: setAlpha(0.12, colors.gray['100']),\n\n borderColorContent: colors.gray.main,\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundScrollbar: 'transparent',\n colorScrollbar: colors.gray['030'],\n colorScrollbarHover: colors.gray['050'],\n\n backgroundDefaultButton: backgroundDefaultButton,\n backgroundDefaultButtonHover: backgroundDefaultButtonHover,\n backgroundDefaultButtonFocus: backgroundDefaultButtonFocus,\n backgroundDefaultButtonActive: backgroundDefaultButtonActive,\n backgroundDefaultButtonDisabled: backgroundDefaultButtonDisabled,\n\n backgroundPriorityButton: setAlpha(0.24, colors.gray['100']),\n backgroundPriorityButtonHover: setAlpha(0.32, colors.gray['100']),\n backgroundPriorityButtonFocus: setAlpha(0.32, colors.gray['100']),\n backgroundPriorityButtonActive: setAlpha(0.24, colors.gray['100']),\n backgroundPriorityButtonDisabled: setAlpha(0.12, colors.gray['100']),\n\n backgroundPositiveButton: colors.green.default,\n backgroundPositiveButtonHover: colors.green.lighten,\n backgroundPositiveButtonFocus: colors.green.lighten,\n backgroundPositiveButtonActive: colors.green.default,\n backgroundPositiveButtonDisabled: setAlpha(0.5, colors.green.default),\n\n backgroundNegativeButton: colors.red.default,\n backgroundNegativeButtonHover: colors.red.lighten,\n backgroundNegativeButtonFocus: colors.red.lighten,\n backgroundNegativeButtonActive: colors.red.default,\n backgroundNegativeButtonDisabled: setAlpha(0.5, colors.red.default),\n\n backgroundWarningButton: colors.yellow.default,\n backgroundWarningButtonHover: colors.yellow.lighten,\n backgroundWarningButtonFocus: colors.yellow.lighten,\n backgroundWarningButtonActive: colors.yellow.default,\n backgroundWarningButtonDisabled: setAlpha(0.5, colors.yellow.default),\n\n backgroundPrimaryButton: colors.primary.default,\n backgroundPrimaryButtonHover: colors.primary.lighten,\n backgroundPrimaryButtonFocus: colors.primary.lighten,\n backgroundPrimaryButtonActive: colors.primary.default,\n backgroundPrimaryButtonDisabled: setAlpha(0.5, colors.primary.default),\n\n boxShadowPrimaryButton: 'none',\n boxShadowPrimaryButtonHover: 'none',\n boxShadowPrimaryButtonFocus: 'none',\n boxShadowPrimaryButtonActive: 'none',\n boxShadowPrimaryButtonDisabled: 'none',\n\n boxShadowPositiveButton: 'none',\n boxShadowPositiveButtonHover: 'none',\n boxShadowPositiveButtonFocus: 'none',\n boxShadowPositiveButtonActive: 'none',\n boxShadowPositiveButtonDisabled: 'none',\n\n boxShadowNegativeButton: 'none',\n boxShadowNegativeButtonHover: 'none',\n boxShadowNegativeButtonFocus: 'none',\n boxShadowNegativeButtonActive: 'none',\n boxShadowNegativeButtonDisabled: 'none',\n\n boxShadowPriorityButton: 'none',\n boxShadowPriorityButtonHover: 'none',\n boxShadowPriorityButtonFocus: 'none',\n boxShadowPriorityButtonActive: 'none',\n boxShadowPriorityButtonDisabled: 'none',\n\n boxShadowDefaultButton: 'none',\n boxShadowDefaultButtonHover: 'none',\n boxShadowDefaultButtonFocus: 'none',\n boxShadowDefaultButtonActive: 'none',\n boxShadowDefaultButtonDisabled: 'none',\n\n boxShadowInput: 'none',\n boxShadowInputHover: 'none',\n boxShadowInputFocus: 'none',\n boxShadowInputInvalid: 'none',\n boxShadowInputReadOnly: 'none',\n boxShadowInputDisabled: 'none',\n boxShadowInputInvalidFocus: 'none',\n\n backgroundPrimary: colors.primary.default,\n backgroundPositive: colors.green.default,\n backgroundNegative: colors.red.default,\n backgroundPrimarySubtle: colors.primary.dim,\n backgroundPositiveSubtle: colors.green.dim,\n backgroundNegativeSubtle: colors.red.dim,\n backgroundPrimaryMuted: colors.primary.mute,\n backgroundPositiveMuted: colors.green.mute,\n backgroundNegativeMuted: colors.red.mute,\n\n backgroundInput: setAlpha(0.04, colors.gray['100']),\n backgroundInputDisabled: setAlpha(0.16, colors.gray['000']),\n backgroundInputReadOnly: setAlpha(0.2, colors.gray['000']),\n backgroundInputInvalid: 'transparent',\n\n backgroundSelect: setAlpha(0.08, colors.gray['100']),\n backgroundSelectHover: setAlpha(0.12, colors.gray['100']),\n backgroundSelectFocus: setAlpha(0.12, colors.gray['100']),\n backgroundSelectDisabled: setAlpha(0.12, colors.gray['100']),\n backgroundSelectReadOnly: setAlpha(0.08, colors.gray['100']),\n backgroundSelectInvalid: setAlpha(0.08, colors.gray['100']),\n backgroundSelectDropdown: colors.gray['010'],\n\n backgroundToggle: setAlpha(0.12, colors.gray['100']),\n backgroundToggleChecked: colors.primary.default,\n backgroundToggleSwitch: colors.gray.main,\n backgroundToggleSwitchChecked: colors.white.default,\n\n backgroundToggleSwitchButton: setAlpha(0.32, colors.gray['000']),\n backgroundToggleSwitchButtonActive: setAlpha(0.12, colors.gray.main),\n\n backgroundProgressBar: colors.gray['010'],\n backgroundProgressBarIndeterminate: colors.gray['020'],\n backgroundProgressBarMeter: colors.primary.default,\n\n backgroundCheckbox: colors.gray['020'],\n backgroundCheckboxHover: colors.gray['020'],\n backgroundCheckboxChecked: colors.primary.default,\n backgroundCheckboxCheckedHover: colors.primary.lighten,\n\n colorCheckboxCheck: colors.white.default,\n\n borderColorCheckbox: setAlpha(0.08, colors.gray['100']),\n borderColorCheckboxFocus: colors.blue.lighten,\n borderColorCheckboxHover: setAlpha(0.16, colors.gray['100']),\n borderColorCheckboxChecked: colors.primary.default,\n borderColorCheckboxCheckedFocus: colors.blue.lighten,\n\n backgroundRadiobutton: colors.gray['010'],\n backgroundRadiobuttonHover: colors.gray['020'],\n backgroundRadiobuttonChecked: colors.primary.default,\n backgroundRadiobuttonCheckedHover: colors.primary.lighten,\n\n colorRadiobuttonDot: colors.white.default,\n\n borderColorRadiobutton: setAlpha(0.08, colors.gray['100']),\n borderColorRadiobuttonFocus: colors.blue.lighten,\n borderColorRadiobuttonHover: setAlpha(0.16, colors.gray['100']),\n borderColorRadiobuttonChecked: colors.primary.default,\n borderColorRadiobuttonCheckedFocus: colors.blue.lighten,\n\n colorTextDefault: colors.gray['090'],\n colorTextSubtle: colors.gray['080'],\n colorTextMuted: colors.gray['070'],\n colorTextImportant: colors.gray['100'],\n colorTextAttention: colors.gray['100'],\n\n colorTextPrimary: colors.primary.lighten,\n colorTextPrimarySubtle: colors.primary.default,\n colorTextPrimaryMuted: colors.primary.dim,\n colorTextPositive: colors.green.lighten,\n colorTextPositiveSubtle: colors.green.default,\n colorTextPositiveMuted: colors.green.dim,\n colorTextNegative: colors.red.lighten,\n colorTextNegativeSubtle: colors.red.default,\n colorTextNegativeMuted: colors.red.mute,\n colorTextWarning: colors.yellow.lighten,\n colorTextWarningSubtle: colors.yellow.default,\n colorTextWarningMuted: colors.yellow.dim,\n\n colorOrderStatusRejected: colors.yellow.lighten,\n colorOrderStatusFilled: colors.green.lighten,\n\n colorTextDefaultButton: colors.gray['100'],\n colorTextDefaultButtonHover: colors.gray['100'],\n colorTextDefaultButtonFocus: colors.gray['100'],\n colorTextDefaultButtonActive: colors.gray['100'],\n colorTextDefaultButtonDisabled: setAlpha(0.5, colors.gray['100']),\n\n colorTextDefaultDimButton: colors.gray['090'],\n\n colorTextPriorityButton: colors.gray['100'],\n colorTextPriorityButtonHover: colors.gray['100'],\n colorTextPriorityButtonFocus: colors.gray['100'],\n colorTextPriorityButtonActive: colors.gray['100'],\n colorTextPriorityButtonDisabled: setAlpha(0.5, colors.gray['100']),\n\n colorTextPriorityDimButton: colors.gray['090'],\n\n colorTextPositiveButton: colors.white.default,\n colorTextPositiveButtonHover: colors.white.default,\n colorTextPositiveButtonFocus: colors.white.default,\n colorTextPositiveButtonActive: colors.white.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextNegativeButton: colors.white.default,\n colorTextNegativeButtonHover: colors.white.default,\n colorTextNegativeButtonFocus: colors.white.default,\n colorTextNegativeButtonActive: colors.white.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextWarningButton: colors.white.default,\n colorTextWarningButtonHover: colors.white.default,\n colorTextWarningButtonFocus: colors.white.default,\n colorTextWarningButtonActive: colors.white.default,\n colorTextWarningButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonFocus: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorDataBlue: '#2C59D0',\n\n borderColorInput: setAlpha(0.12, colors.gray['100']),\n borderColorInputHover: setAlpha(0.2, colors.gray['100']),\n borderColorInputFocus: setAlpha(0.56, colors.gray['100']),\n\n borderColorInputInvalid: colors.red.lighten,\n borderColorInputInvalidFocus: colors.red.lighten,\n borderColorInputDisabled: setAlpha(0.08, colors.gray['100']),\n borderColorInputReadOnly: setAlpha(0.08, colors.gray['100']),\n\n borderColorSelect: 'transparent',\n borderColorSelectHover: 'transparent',\n borderColorSelectFocus: setAlpha(0.16, colors.gray['100']),\n borderColorSelectInvalid: colors.red.lighten,\n borderColorSelectDisabled: 'transparent',\n borderColorSelectReadOnly: 'transparent',\n\n borderColorDefaultButton: 'transparent',\n borderColorDefaultButtonHover: 'transparent',\n borderColorDefaultButtonFocus: 'transparent',\n borderColorDefaultButtonActive: 'transparent',\n borderColorDefaultButtonDisabled: 'transparent',\n\n borderColorPriorityButton: 'transparent',\n borderColorPriorityButtonHover: 'transparent',\n borderColorPriorityButtonFocus: 'transparent',\n borderColorPriorityButtonActive: 'transparent',\n borderColorPriorityButtonDisabled: 'transparent',\n\n borderColorPositiveButton: 'transparent',\n borderColorPositiveButtonHover: 'transparent',\n borderColorPositiveButtonFocus: 'transparent',\n borderColorPositiveButtonActive: 'transparent',\n borderColorPositiveButtonDisabled: 'transparent',\n\n borderColorNegativeButton: 'transparent',\n borderColorNegativeButtonHover: 'transparent',\n borderColorNegativeButtonFocus: 'transparent',\n borderColorNegativeButtonActive: 'transparent',\n borderColorNegativeButtonDisabled: 'transparent',\n\n borderColorPrimaryButton: 'transparent',\n borderColorPrimaryButtonHover: 'transparent',\n borderColorPrimaryButtonFocus: 'transparent',\n borderColorPrimaryButtonActive: 'transparent',\n borderColorPrimaryButtonDisabled: 'transparent',\n\n borderColorWarningButton: 'transparent',\n borderColorWarningButtonHover: 'transparent',\n borderColorWarningButtonFocus: 'transparent',\n borderColorWarningButtonActive: 'transparent',\n borderColorWarningButtonDisabled: 'transparent',\n\n borderColorChartAxis: colors.gray['040'],\n borderColorChartGridLine: colors.gray['040'],\n borderColorChartCrosshair: colors.gray['070'],\n backgroundChartUpColor: colors.green.lighten,\n backgroundChartDownColor: colors.red.lighten,\n borderColorChartUpColor: colors.green.lighten,\n borderColorChartDownColor: colors.red.lighten,\n backgroundChart: colors.gray.main,\n\n borderColorDivider: colors.gray['000'],\n backgroundDivider: setAlpha(0.12, colors.gray['100']),\n\n borderColorTimeline: colors.gray['070'],\n backgroundTimelineContent: colors.gray['030'],\n backgroundTimelineOverlay: 'linear-gradient(to top, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0))',\n\n borderColorSelectionTable: colors.gray.main,\n borderColorSelectionTableActive: colors.gray['030'],\n\n colorTab: colors.gray['090'],\n colorTabHover: colors.gray['100'],\n colorTabActive: colors.gray['090'],\n colorTabSelected: colors.gray['100'],\n borderColorTab: setAlpha(0.12, colors.gray['100']),\n backgroundFilledTab: colors.gray.main,\n backgroundFilledTabList: colors.gray['010'],\n borderColorTabSelected: colors.gray['100'],\n\n boxShadowTab: 'none',\n boxShadowTabActive: 'none',\n\n backgroundResizeHandle: colors.gray['060'],\n backgroundResizeHandleHover: colors.gray['040'],\n\n backgroundLoader: colors.gray['100'],\n\n borderColorDrawer: colors.gray['020'],\n\n backgroundTabInput: colors.primary.dim,\n colorTabInputButton: colors.gray['080'],\n colorTabInputButtonHover: colors.gray['080'],\n colorTabInputButtonActive: colors.gray['100'],\n\n colorStepIconOpen: colors.gray['070'],\n colorStepIconActive: colors.primary.lighten,\n colorStepIconDone: colors.primary.lighten,\n colorStepConnectionOpen: colors.gray['070'],\n colorStepConnectionDone: colors.primary.lighten,\n\n backgroundAccordionContent: colors.gray['020'],\n\n colorTextVolumeLadderSpread: colors.gray['100'],\n backgroundVolumeLadderBidSpread: colors.primary.dim,\n backgroundVolumeLadderOfferSpread: colors.primary.dim,\n backgroundVolumeLadderTransparencyDirection: Direction.Asc,\n\n backgroundDropdownResults: colors.gray.main,\n backgroundDropdownInput: colors.gray.main,\n backgroundDropdownSelected: colors.gray['020'],\n backgroundDropdownHovered: colors.gray['020'],\n backgroundDropdownGroupHeader: colors.gray['020'],\n boxShadowDropdown: '0px 8px 32px rgba(0, 0, 0, 0.2)',\n\n backgroundModalHeader: colors.gray['020'],\n\n colorModeCurrencyIcon: 'monochrome',\n colorCurrencyIcon: colors.gray.main,\n\n colorStackedNumberHighlight: colors.gray['100'],\n colorStackedNumberNoHighlight: colors.gray['090'],\n\n columnDividerDefault: setAlpha(0.12, colors.gray['100']),\n columnDividerHover: colors.gray['080'],\n\n chamferMultiplier: 0,\n buttonGroupSharedBackground: 'transparent',\n\n ...customMappings,\n ...getMutedButtonStyles(colors, customMappings),\n };\n}\n","import type { DefaultTheme } from 'styled-components';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const LightTalosTheme: DefaultTheme = mapLightTheme(lightColors, {\n name: 'LightDefault',\n});\n","import { hsl } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: hsl(220, 0, 0.11),\n\n '000': hsl(220, 0, 0.03),\n '010': hsl(220, 0, 0.08),\n '020': hsl(220, 0, 0.15),\n '030': hsl(220, 0, 0.17),\n '040': hsl(220, 0, 0.2),\n '050': hsl(220, 0, 0.23),\n '060': hsl(220, 0, 0.27),\n '070': hsl(220, 0, 0.34),\n '080': hsl(220, 0, 0.51),\n '090': hsl(220, 0, 0.85),\n '100': hsl(220, 0, 0.9),\n },\n\n primary: {\n mute: setAlpha(0.1, '#4f51b0'),\n dim: setAlpha(0.4, '#4f51b0'),\n default: '#4f51b0',\n lighten: '#6b6dc9',\n },\n\n green: {\n mute: setAlpha(0.1, '#228a6e'),\n dim: setAlpha(0.4, '#228a6e'),\n default: '#228a6e',\n lighten: '#259c7c',\n },\n\n red: {\n mute: setAlpha(0.1, '#b52b65'),\n dim: setAlpha(0.4, '#b52b65'),\n default: '#b52b65',\n lighten: '#db538c',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: setAlpha(0.1, '#1878d9'),\n dim: setAlpha(0.4, '#1878d9'),\n default: '#1878d9',\n lighten: '#42a0ff',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkConservativeTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkConservative',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=News+Cycle&display=swap',\n fontFamily: \"'News Cycle', sans-serif\",\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray['020'],\n\n spacingLayout: 1,\n\n borderColorContent: colors.gray['020'],\n borderColorDivider: colors.gray['020'],\n\n backgroundDrawer: '#2b2c66',\n backgroundSidebar: '#2b2c66',\n backgroundSidebarItemActive: '#3d3e8a',\n backgroundSidebarItemHover: '#444596',\n borderColorSidebar: '#35367a',\n\n borderRadiusDefault: 2,\n borderRadiusSmall: 2,\n borderRadiusTiny: 2,\n\n borderRadiusButtonDefault: 2,\n borderRadiusButtonSmall: 2,\n borderRadiusButtonTiny: 2,\n\n borderColorInput: `transparent transparent ${colors.gray['060']} transparent`,\n borderColorInputHover: `transparent transparent ${colors.gray['080']} transparent`,\n borderColorInputFocus: `transparent transparent ${colors.gray['070']} transparent`,\n borderColorInputInvalid: `transparent transparent ${colors.red.default} transparent`,\n borderColorInputInvalidFocus: `transparent transparent ${colors.red.lighten} transparent`,\n\n borderColorDefaultButton: colors.gray['060'],\n borderColorDefaultButtonHover: colors.gray['060'],\n borderColorDefaultButtonFocus: colors.gray['060'],\n borderWidthButton: 1,\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: colors.gray['020'],\n\n backgroundInput: colors.gray.main,\n backgroundInputInvalid: colors.red.mute,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n\n borderColorSelect: `transparent transparent ${colors.gray['060']} transparent`,\n borderColorSelectHover: `transparent transparent ${colors.gray['080']} transparent`,\n borderColorSelectFocus: `transparent transparent ${colors.gray['070']} transparent`,\n borderColorSelectInvalid: `transparent transparent ${colors.red.default} transparent`,\n\n borderColorPositiveButton: colors.green.lighten,\n\n borderColorNegativeButton: colors.red.lighten,\n\n borderColorPrimaryButton: colors.primary.lighten,\n\n borderColorBlotterTable: colors.gray['020'],\n});\n","import { hsl } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: hsl(240, 0.35, 0.11),\n\n '000': hsl(240, 0.35, 0.05),\n '010': hsl(240, 0.35, 0.08),\n '020': hsl(240, 0.25, 0.15),\n '030': hsl(240, 0.25, 0.17),\n '040': hsl(240, 0.25, 0.2),\n '050': hsl(240, 0.25, 0.23),\n '060': hsl(240, 0.25, 0.27),\n '070': hsl(240, 0.25, 0.34),\n '080': hsl(240, 0.25, 0.51),\n '090': hsl(240, 0.25, 0.65),\n '100': hsl(240, 0.25, 0.9),\n },\n\n primary: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#5300cc',\n lighten: '#b453fb',\n },\n\n green: {\n mute: setAlpha(0.1, '#337e41'),\n dim: setAlpha(0.4, '#337e41'),\n default: '#008e3d',\n lighten: '#53af1e',\n },\n\n red: {\n mute: setAlpha(0.1, '#9e2525'),\n dim: setAlpha(0.1, '#9e2525'),\n default: '#9e2525',\n lighten: '#ec5023',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#005a9d',\n lighten: '#3aa8ff',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkGradientsTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkGradients',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Poppins', sans-serif\",\n\n spacingLayout: 16,\n\n borderRadiusDefault: 8,\n borderRadiusSmall: 6,\n borderRadiusTiny: 4,\n\n borderRadiusContent: 8,\n borderRadiusButtonDefault: 8,\n borderRadiusButtonSmall: 6,\n borderRadiusButtonTiny: 4,\n\n borderRadiusLayoutWrapper: 16,\n spacingLayoutWrapper: 16,\n backgroundLayoutWrapper: 'rgba(0,0,0,0.25)',\n\n borderColorDivider: colors.gray['030'],\n\n boxShadowContent: '0 2px 24px rgba(0, 0, 0, 0.25)',\n boxShadowHeader: '0 2px 24px rgba(0, 0, 0, 0.25)',\n borderColorHeader: colors.gray['000'],\n\n backgroundBody: `url(/customers/GradientsDark.svg) 100% 100%`,\n backgroundShadow: colors.gray['010'],\n backgroundHeader: setAlpha(0.5, colors.black.default),\n backgroundDrawer: setAlpha(0.5, colors.black.default),\n backdropFilterDrawer: 'blur(10px)',\n backgroundSidebarItemHover: setAlpha(0.1, colors.white.default),\n backgroundContent: `radial-gradient(\n farthest-corner at 50% 0%,\n ${colors.gray.main} 50%,\n ${colors.gray['010']} 100%\n )`,\n borderColorContent: colors.gray.main,\n\n backgroundPrimaryButton: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonHover: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 50%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 25%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonActive: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n\n borderColorPositiveButton: colors.green.default,\n\n backgroundPositiveButton: `radial-gradient(farthest-corner at 0% 0%, #78be10 0%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonHover: `radial-gradient(farthest-corner at 0% 0%, #78be10 50%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #78be10 25%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonActive: `radial-gradient(farthest-corner at 0% 0%, #78be10 0%, ${colors.green.default} 100%)`,\n\n backgroundNegativeButton: `radial-gradient(farthest-corner at 0% 0%, #ff5300 0%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonHover: `radial-gradient(farthest-corner at 0% 0%, #ff5300 50%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #ff5300 25%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonActive: `radial-gradient(farthest-corner at 0% 0%, #ff5300 0%, ${colors.red.default} 100%)`,\n\n backgroundPriorityButton: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 0%, ${colors.gray['020']} 100%)`,\n backgroundPriorityButtonHover: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 50%, ${colors.gray['020']} 100%)`,\n backgroundPriorityButtonFocus: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 25%, ${colors.gray['020']} 100%)`,\n backgroundPriorityButtonActive: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 0%, ${colors.gray['020']} 100%)`,\n\n backgroundDefaultButton: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 0%, ${colors.gray['020']} 100%)`,\n backgroundDefaultButtonHover: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 50%, ${colors.gray['020']} 100%)`,\n backgroundDefaultButtonFocus: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 25%, ${colors.gray['020']} 100%)`,\n backgroundDefaultButtonActive: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['060']} 0%, ${colors.gray['020']} 100%)`,\n\n boxShadowPrimaryButton: `0 1px 5px ${setAlpha(0.25, colors.primary.lighten)}`,\n boxShadowPrimaryButtonHover: `0 1px 15px ${setAlpha(0.5, colors.primary.lighten)}`,\n boxShadowPrimaryButtonFocus: `0 1px 10px ${setAlpha(0.35, colors.primary.lighten)}`,\n boxShadowPrimaryButtonActive: `0 1px 2px ${setAlpha(0.25, colors.primary.lighten)}`,\n boxShadowPrimaryButtonDisabled: 'none',\n\n boxShadowPositiveButton: `0 1px 5px ${setAlpha(0.25, colors.green.lighten)}`,\n boxShadowPositiveButtonHover: `0 1px 15px ${setAlpha(0.5, colors.green.lighten)}`,\n boxShadowPositiveButtonFocus: `0 1px 10px ${setAlpha(0.35, colors.green.lighten)}`,\n boxShadowPositiveButtonActive: `0 1px 2px ${setAlpha(0.25, colors.green.lighten)}`,\n boxShadowPositiveButtonDisabled: 'none',\n\n boxShadowNegativeButton: `0 1px 5px ${setAlpha(0.25, colors.red.lighten)}`,\n boxShadowNegativeButtonHover: `0 1px 15px ${setAlpha(0.5, colors.red.lighten)}`,\n boxShadowNegativeButtonFocus: `0 1px 10px ${setAlpha(0.35, colors.red.lighten)}`,\n boxShadowNegativeButtonActive: `0 1px 2px ${setAlpha(0.25, colors.red.lighten)}`,\n boxShadowNegativeButtonDisabled: 'none',\n\n boxShadowPriorityButton: `0 1px 5px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowPriorityButtonHover: `0 1px 15px ${setAlpha(0.5, colors.gray['020'])}`,\n boxShadowPriorityButtonFocus: `0 1px 10px ${setAlpha(0.35, colors.gray['020'])}`,\n boxShadowPriorityButtonActive: `0 1px 2px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowPriorityButtonDisabled: 'none',\n\n boxShadowDefaultButton: `0 1px 5px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowDefaultButtonHover: `0 1px 15px ${setAlpha(0.5, colors.gray['020'])}`,\n boxShadowDefaultButtonFocus: `0 1px 10px ${setAlpha(0.35, colors.gray['020'])}`,\n boxShadowDefaultButtonActive: `0 1px 2px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowDefaultButtonDisabled: 'none',\n\n boxShadowInput: 'none',\n boxShadowInputHover: `0 0 5px ${setAlpha(0.25, colors.white.default)}`,\n boxShadowInputFocus: `0 0 10px ${setAlpha(0.5, colors.blue.lighten)}`,\n boxShadowInputInvalid: `0 0 10px ${setAlpha(0.5, colors.red.lighten)}`,\n boxShadowInputDisabled: 'none',\n boxShadowInputInvalidFocus: `0 0 10px ${setAlpha(0.25, colors.red.lighten)}`,\n\n backgroundRadiobutton: `radial-gradient(farthest-corner at 80% 80%, ${colors.gray['020']} 0%, ${colors.gray['010']} 100%)`,\n backgroundRadiobuttonHover: `radial-gradient(farthest-corner at 80% 80%, ${colors.gray['030']} 0%, ${colors.gray.main} 100%)`,\n backgroundRadiobuttonChecked: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 25%, ${colors.primary.default} 100%)`,\n borderColorRadiobuttonFocus: colors.primary.lighten,\n borderColorRadiobuttonHover: colors.primary.lighten,\n\n borderColorInput: setAlpha(0.05, colors.white.default),\n borderColorInputHover: setAlpha(0.5, colors.white.default),\n borderColorInputFocus: colors.blue.lighten,\n\n backgroundBlotterTableRow: 'transparent',\n backgroundBlotterTableRowHover: setAlpha(0.05, colors.white.default),\n borderColorBlotterTable: colors.gray['030'],\n\n backgroundToggleChecked: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n backgroundProgressBarMeter: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n\n borderColorTabSelected: colors.blue.lighten,\n boxShadowTabActive: `0 0 15px 1px ${setAlpha(0.75, colors.blue.lighten)}`,\n\n backgroundVolumeLadderBidSpread: `linear-gradient(#6e1be7 0%, ${colors.primary.default} 100%)`,\n backgroundVolumeLadderOfferSpread: `linear-gradient(#6e1be7 0%, ${colors.primary.default} 100%)`,\n});\n","import { hsl } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: hsl(220, 0.25, 0.11),\n\n '000': hsl(220, 0.25, 0.03),\n '010': hsl(220, 0.25, 0.08),\n '020': hsl(220, 0.25, 0.15),\n '030': hsl(220, 0.25, 0.17),\n '040': hsl(220, 0.25, 0.2),\n '050': hsl(220, 0.25, 0.23),\n '060': hsl(220, 0.25, 0.27),\n '070': hsl(220, 0.25, 0.34),\n '080': hsl(220, 0.25, 0.51),\n '090': hsl(220, 0.25, 0.65),\n '100': hsl(220, 0.25, 0.9),\n },\n\n primary: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n green: {\n mute: setAlpha(0.1, '#337e41'),\n dim: setAlpha(0.4, '#337e41'),\n default: '#337e53',\n lighten: '#49ab73',\n },\n\n red: {\n mute: setAlpha(0.1, '#9e2525'),\n dim: setAlpha(0.1, '#9e2525'),\n default: '#9e2525',\n lighten: '#b81f1f',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nconst baseSize = base.baseSize;\n\nexport const DarkTransparencyTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkTransparency',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Nunito', sans-serif\",\n\n spacingLayout: baseSize * 2,\n borderRadiusContent: baseSize,\n backgroundContent: setAlpha(0.5, colors.gray.main),\n backgroundHeader: setAlpha(0.5, colors.gray.main),\n backdropFilterContent: 'blur(5px)',\n borderColorContent: colors.gray.main,\n borderColorHeader: colors.gray.main,\n backdropFilterHeader: 'blur(5px)',\n\n backgroundDrawer: setAlpha(0.5, colors.gray.main),\n backdropFilterDrawer: 'blur(10px)',\n\n borderRadiusMedium: baseSize * 0.5,\n borderRadiusDefault: baseSize * 0.5,\n borderRadiusSmall: baseSize * 0.25,\n borderRadiusTiny: baseSize * 0.5,\n\n borderRadiusButtonLarge: baseSize * 0.5,\n borderRadiusButtonDefault: baseSize * 0.5,\n borderRadiusButtonSmall: baseSize * 0.25,\n borderRadiusButtonTiny: baseSize * 0.5,\n\n backgroundBody: `url(/customers/TransparencyDark.svg) 100% 100%, linear-gradient(${colors.gray['010']}, ${colors.gray['000']})`,\n boxShadowContent: `0 1px 10px ${setAlpha(0.5, colors.gray['000'])}`,\n backgroundContentHover: setAlpha(0.05, colors.white.default),\n backgroundPopover: colors.gray.main,\n\n backgroundVolumeLadderBidSpread: setAlpha(0.75, colors.blue.default),\n backgroundVolumeLadderOfferSpread: setAlpha(0.75, colors.blue.default),\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n\n borderColorDivider: colors.gray.main,\n\n backgroundInput: colors.gray['010'],\n backgroundSelect: colors.gray['010'],\n\n borderColorInputFocus: colors.primary.lighten,\n\n backgroundDefaultButton: `linear-gradient(${setAlpha(0.75, colors.gray['050'])}, ${setAlpha(\n 0.5,\n colors.gray['050']\n )})`,\n backgroundDefaultButtonHover: `linear-gradient(${setAlpha(0.85, colors.gray['050'])}, ${setAlpha(\n 0.6,\n colors.gray['050']\n )})`,\n backgroundDefaultButtonFocus: `linear-gradient(${setAlpha(0.85, colors.gray['050'])}, ${setAlpha(\n 0.6,\n colors.gray['050']\n )})`,\n backgroundDefaultButtonActive: `linear-gradient(${setAlpha(0.65, colors.gray['050'])}, ${setAlpha(\n 0.4,\n colors.gray['050']\n )})`,\n\n borderColorDefaultButtonFocus: colors.gray['050'],\n\n backgroundPositiveButton: `linear-gradient(${setAlpha(0.75, colors.green.lighten)}, ${setAlpha(\n 0.5,\n colors.green.lighten\n )})`,\n backgroundPositiveButtonHover: `linear-gradient(${setAlpha(0.85, colors.green.lighten)}, ${setAlpha(\n 0.6,\n colors.green.lighten\n )})`,\n backgroundPositiveButtonFocus: `linear-gradient(${setAlpha(0.85, colors.green.lighten)}, ${setAlpha(\n 0.6,\n colors.green.lighten\n )})`,\n backgroundPositiveButtonActive: `linear-gradient(${setAlpha(0.65, colors.green.lighten)}, ${setAlpha(\n 0.4,\n colors.green.lighten\n )})`,\n\n borderColorPositiveButtonFocus: colors.green.lighten,\n\n backgroundNegativeButton: `linear-gradient(${setAlpha(0.75, colors.red.lighten)}, ${setAlpha(\n 0.5,\n colors.red.lighten\n )})`,\n backgroundNegativeButtonHover: `linear-gradient(${setAlpha(0.85, colors.red.lighten)}, ${setAlpha(\n 0.6,\n colors.red.lighten\n )})`,\n backgroundNegativeButtonFocus: `linear-gradient(${setAlpha(0.85, colors.red.lighten)}, ${setAlpha(\n 0.6,\n colors.red.lighten\n )})`,\n backgroundNegativeButtonActive: `linear-gradient(${setAlpha(0.65, colors.red.lighten)}, ${setAlpha(\n 0.4,\n colors.red.lighten\n )})`,\n\n borderColorNegativeButtonFocus: colors.red.lighten,\n\n backgroundPrimaryButton: `linear-gradient(${setAlpha(0.75, colors.blue.lighten)}, ${setAlpha(\n 0.5,\n colors.blue.lighten\n )})`,\n backgroundPrimaryButtonHover: `linear-gradient(${setAlpha(0.85, colors.blue.lighten)}, ${setAlpha(\n 0.6,\n colors.blue.lighten\n )})`,\n backgroundPrimaryButtonFocus: `linear-gradient(${setAlpha(0.85, colors.blue.lighten)}, ${setAlpha(\n 0.6,\n colors.blue.lighten\n )})`,\n backgroundPrimaryButtonActive: `linear-gradient(${setAlpha(0.65, colors.blue.lighten)}, ${setAlpha(\n 0.4,\n colors.blue.lighten\n )})`,\n\n borderColorPrimaryButtonFocus: colors.blue.lighten,\n\n colorModeCurrencyIcon: 'colorful',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n '000': hsla(220, 0.25, 0.88, 1),\n '010': hsla(220, 0.25, 0.95, 1),\n main: hsla(220, 0.25, 0.97, 1),\n '020': hsla(220, 0.25, 0.93, 1),\n '030': hsla(220, 0.25, 0.91, 1),\n '040': hsla(220, 0.25, 0.85, 1),\n '050': hsla(220, 0.25, 0.81, 1),\n '060': hsla(220, 0.25, 0.77, 1),\n '070': hsla(220, 0.25, 0.73, 1),\n '080': hsla(220, 0.25, 0.61, 1),\n '090': hsla(220, 0.25, 0.42, 1),\n '100': hsla(220, 0.25, 0.14, 1),\n },\n\n primary: {\n mute: setAlpha(0.1, '#4f51b0'),\n dim: setAlpha(0.4, '#4f51b0'),\n default: '#4f51b0',\n lighten: '#6b6dc9',\n },\n\n green: {\n mute: setAlpha(0.1, '#228a6e'),\n dim: setAlpha(0.4, '#228a6e'),\n default: '#228a6e',\n lighten: '#259c7c',\n },\n\n red: {\n mute: setAlpha(0.1, '#b52b65'),\n dim: setAlpha(0.4, '#b52b65'),\n default: '#b52b65',\n lighten: '#db538c',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: setAlpha(0.1, '#1878d9'),\n dim: setAlpha(0.4, '#1878d9'),\n default: '#1878d9',\n lighten: '#42a0ff',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightConservativeTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightConservative',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=News+Cycle&display=swap',\n fontFamily: \"'News Cycle', sans-serif\",\n\n borderColorHeader: colors.gray['020'],\n borderColorContent: colors.gray['020'],\n borderColorDivider: colors.gray['020'],\n\n backgroundBody: colors.gray['010'],\n\n sidebarThemeName: 'DarkConservative',\n\n spacingLayout: 1,\n\n borderRadiusDefault: 2,\n borderRadiusSmall: 2,\n borderRadiusTiny: 2,\n\n borderRadiusButtonDefault: 2,\n borderRadiusButtonSmall: 2,\n borderRadiusButtonTiny: 2,\n\n borderColorInput: `transparent transparent ${colors.gray['060']} transparent`,\n borderColorInputHover: `transparent transparent ${colors.gray['080']} transparent`,\n borderColorInputFocus: `transparent transparent ${colors.gray['070']} transparent`,\n borderColorInputInvalid: `transparent transparent ${colors.red.default} transparent`,\n borderColorInputInvalidFocus: `transparent transparent ${colors.red.lighten} transparent`,\n\n borderColorDefaultButton: colors.gray['060'],\n borderColorDefaultButtonHover: colors.gray['060'],\n borderColorDefaultButtonFocus: colors.gray['060'],\n borderWidthButton: 1,\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: colors.gray['030'],\n\n backgroundInput: colors.gray.main,\n backgroundInputInvalid: colors.red.mute,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n\n borderColorSelect: `transparent transparent ${colors.gray['060']} transparent`,\n borderColorSelectHover: `transparent transparent ${colors.gray['080']} transparent`,\n borderColorSelectFocus: `transparent transparent ${colors.gray['070']} transparent`,\n borderColorSelectInvalid: `transparent transparent ${colors.red.default} transparent`,\n\n borderColorPositiveButton: colors.green.lighten,\n\n borderColorNegativeButton: colors.red.lighten,\n\n borderColorPrimaryButton: colors.primary.lighten,\n\n borderColorBlotterTable: colors.gray['020'],\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n '000': hsla(200, 0.1, 0.88, 1),\n '010': hsla(200, 0.1, 0.93, 1),\n main: hsla(200, 1.0, 1.0, 1),\n '020': hsla(200, 0.1, 0.96, 1),\n '030': hsla(200, 0.1, 0.91, 1),\n '040': hsla(200, 0.1, 0.85, 1),\n '050': hsla(200, 0.1, 0.81, 1),\n '060': hsla(200, 0.1, 0.77, 1),\n '070': hsla(200, 0.1, 0.73, 1),\n '080': hsla(200, 0.1, 0.61, 1),\n '090': hsla(200, 0.1, 0.42, 1),\n '100': hsla(200, 0.1, 0.14, 1),\n },\n\n primary: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#5300cc',\n lighten: '#b453fb',\n },\n\n green: {\n mute: setAlpha(0.1, '#337e41'),\n dim: setAlpha(0.4, '#337e41'),\n default: '#008e3d',\n lighten: '#53af1e',\n },\n\n red: {\n mute: setAlpha(0.1, '#9e2525'),\n dim: setAlpha(0.1, '#9e2525'),\n default: '#9e2525',\n lighten: '#ec5023',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#005a9d',\n lighten: '#3aa8ff',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightGradientsTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightGradients',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Poppins', sans-serif\",\n\n spacingLayout: 16,\n\n borderRadiusDefault: 8,\n borderRadiusSmall: 6,\n borderRadiusTiny: 4,\n\n borderRadiusContent: 8,\n borderRadiusButtonDefault: 8,\n borderRadiusButtonSmall: 6,\n borderRadiusButtonTiny: 4,\n\n borderRadiusLayoutWrapper: 16,\n spacingLayoutWrapper: 16,\n backgroundLayoutWrapper: 'rgba(255,255,255,0.75)',\n\n boxShadowContent: '0 2px 24px rgba(0, 0, 0, 0.05)',\n boxShadowHeader: '0 2px 24px rgba(0, 0, 0, 0.1)',\n\n backgroundBody: `url(/customers/GradientsLight.svg) 100% 100%`,\n backgroundShadow: colors.gray['040'],\n backgroundHeader: setAlpha(0.5, colors.gray.main),\n backgroundDrawer: setAlpha(0.5, colors.gray.main),\n backdropFilterDrawer: 'blur(10px)',\n borderColorHeader: 'transparent',\n\n backgroundSidebar: setAlpha(0.5, colors.gray.main),\n backdropFilterSidebar: 'blur(10px)',\n backgroundSidebarItemHover: setAlpha(0.75, colors.gray.main),\n backgroundSidebarItemActive: setAlpha(0.95, colors.gray.main),\n borderColorSidebar: 'transparent',\n\n backgroundContent: `radial-gradient(\n farthest-corner at 50% 0%,\n ${colors.gray.main} 50%,\n #FAFBFC 100%\n )`,\n borderColorContent: colors.gray.main,\n borderColorDivider: colors.gray['000'],\n\n backgroundPrimaryButton: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonHover: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 30%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 25%, ${colors.primary.default} 100%)`,\n backgroundPrimaryButtonActive: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n\n borderColorPositiveButton: colors.green.default,\n\n backgroundPositiveButton: `radial-gradient(farthest-corner at 0% 0%, #78be10 0%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonHover: `radial-gradient(farthest-corner at 0% 0%, #78be10 50%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #78be10 25%, ${colors.green.default} 100%)`,\n backgroundPositiveButtonActive: `radial-gradient(farthest-corner at 0% 0%, #78be10 0%, ${colors.green.default} 100%)`,\n\n backgroundNegativeButton: `radial-gradient(farthest-corner at 0% 0%, #ff5300 0%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonHover: `radial-gradient(farthest-corner at 0% 0%, #ff5300 50%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonFocus: `radial-gradient(farthest-corner at 0% 0%, #ff5300 25%, ${colors.red.default} 100%)`,\n backgroundNegativeButtonActive: `radial-gradient(farthest-corner at 0% 0%, #ff5300 0%, ${colors.red.default} 100%)`,\n\n backgroundPriorityButton: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 0%, ${colors.gray['060']} 100%)`,\n backgroundPriorityButtonHover: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 50%, ${colors.gray['060']} 100%)`,\n backgroundPriorityButtonFocus: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 25%, ${colors.gray['060']} 100%)`,\n backgroundPriorityButtonActive: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 0%, ${colors.gray['060']} 100%)`,\n\n backgroundDefaultButton: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 0%, ${colors.gray['060']} 100%)`,\n backgroundDefaultButtonHover: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 50%, ${colors.gray['060']} 100%)`,\n backgroundDefaultButtonFocus: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 25%, ${colors.gray['060']} 100%)`,\n backgroundDefaultButtonActive: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray['020']} 0%, ${colors.gray['060']} 100%)`,\n\n boxShadowPrimaryButton: `0 1px 10px ${setAlpha(0.5, colors.primary.lighten)}`,\n boxShadowPrimaryButtonHover: `0 1px 15px ${setAlpha(0.75, colors.primary.lighten)}`,\n boxShadowPrimaryButtonFocus: `0 1px 10px ${setAlpha(0.5, colors.primary.lighten)}`,\n boxShadowPrimaryButtonActive: `0 1px 2px ${setAlpha(0.25, colors.primary.lighten)}`,\n boxShadowPrimaryButtonDisabled: 'none',\n\n boxShadowPositiveButton: `0 1px 10px ${setAlpha(0.5, colors.green.lighten)}`,\n boxShadowPositiveButtonHover: `0 1px 15px ${setAlpha(0.75, colors.green.lighten)}`,\n boxShadowPositiveButtonFocus: `0 1px 10px ${setAlpha(0.5, colors.green.lighten)}`,\n boxShadowPositiveButtonActive: `0 1px 2px ${setAlpha(0.25, colors.green.lighten)}`,\n boxShadowPositiveButtonDisabled: 'none',\n\n boxShadowNegativeButton: `0 1px 10px ${setAlpha(0.5, colors.red.lighten)}`,\n boxShadowNegativeButtonHover: `0 1px 15px ${setAlpha(0.75, colors.red.lighten)}`,\n boxShadowNegativeButtonFocus: `0 1px 10px ${setAlpha(0.5, colors.red.lighten)}`,\n boxShadowNegativeButtonActive: `0 1px 2px ${setAlpha(0.25, colors.red.lighten)}`,\n boxShadowNegativeButtonDisabled: 'none',\n\n boxShadowPriorityButton: `0 1px 10px ${setAlpha(0.5, colors.gray['020'])}`,\n boxShadowPriorityButtonHover: `0 1px 15px ${setAlpha(0.75, colors.gray['020'])}`,\n boxShadowPriorityButtonFocus: `0 1px 10px ${setAlpha(0.5, colors.gray['020'])}`,\n boxShadowPriorityButtonActive: `0 1px 2px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowPriorityButtonDisabled: 'none',\n\n boxShadowDefaultButton: `0 1px 5px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowDefaultButtonHover: `0 1px 15px ${setAlpha(0.75, colors.gray['020'])}`,\n boxShadowDefaultButtonFocus: `0 1px 10px ${setAlpha(0.5, colors.gray['020'])}`,\n boxShadowDefaultButtonActive: `0 1px 2px ${setAlpha(0.25, colors.gray['020'])}`,\n boxShadowDefaultButtonDisabled: 'none',\n\n boxShadowInput: 'none',\n boxShadowInputHover: `0 0 5px ${setAlpha(0.25, colors.white.default)}`,\n boxShadowInputFocus: `0 0 10px ${setAlpha(0.5, colors.blue.lighten)}`,\n boxShadowInputInvalid: `0 0 10px ${setAlpha(0.5, colors.red.lighten)}`,\n boxShadowInputDisabled: 'none',\n boxShadowInputInvalidFocus: `0 0 10px ${setAlpha(0.25, colors.red.lighten)}`,\n\n backgroundRadiobutton: `radial-gradient(farthest-corner at 80% 80%, ${colors.gray['020']} 0%, ${colors.gray['010']} 100%)`,\n backgroundRadiobuttonHover: `radial-gradient(farthest-corner at 80% 80%, ${colors.gray['030']} 0%, ${colors.gray.main} 100%)`,\n backgroundRadiobuttonChecked: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 25%, ${colors.primary.default} 100%)`,\n borderColorRadiobuttonFocus: colors.primary.lighten,\n borderColorRadiobuttonHover: colors.primary.lighten,\n\n borderColorInput: setAlpha(0.0, colors.black.default),\n borderColorInputHover: setAlpha(0.5, colors.black.default),\n borderColorInputFocus: colors.blue.lighten,\n\n backgroundInput: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray.main} 50%, ${colors.gray['010']} 100%)`,\n backgroundSelect: `radial-gradient(farthest-corner at 0% 0%, ${colors.gray.main} 50%, ${colors.gray['010']} 100%)`,\n\n backgroundToggleChecked: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n backgroundProgressBarMeter: `radial-gradient(farthest-corner at 0% 0%, #c74cfd 0%, ${colors.primary.default} 100%)`,\n\n backgroundBlotterTableRow: 'transparent',\n backgroundBlotterTableRowHover: setAlpha(0.05, colors.white.default),\n borderColorBlotterTable: colors.gray['000'],\n\n borderColorTabSelected: colors.blue.lighten,\n boxShadowTabActive: `0 0 15px 1px ${setAlpha(0.75, colors.blue.lighten)}`,\n\n backgroundVolumeLadderBidSpread: `linear-gradient(#fca1ff 0%, #fa8bff 100%)`,\n backgroundVolumeLadderOfferSpread: `linear-gradient(#fca1ff 0%, #fa8bff 100%)`,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\n\nimport { setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n '000': hsla(220, 0.25, 0.88, 1),\n '010': hsla(220, 0.25, 0.93, 1),\n main: hsla(220, 0.25, 1.0, 1),\n '020': hsla(220, 0.25, 0.96, 1),\n '030': hsla(220, 0.25, 0.91, 1),\n '040': hsla(220, 0.25, 0.85, 1),\n '050': hsla(220, 0.25, 0.81, 1),\n '060': hsla(220, 0.25, 0.77, 1),\n '070': hsla(220, 0.25, 0.73, 1),\n '080': hsla(220, 0.25, 0.61, 1),\n '090': hsla(220, 0.25, 0.42, 1),\n '100': hsla(220, 0.25, 0.14, 1),\n },\n\n primary: {\n mute: setAlpha(0.1, '#80BEF8'),\n dim: setAlpha(0.4, '#80BEF8'),\n default: '#49A4FA',\n lighten: '#80BEF8',\n },\n\n green: {\n mute: setAlpha(0.1, '#337e41'),\n dim: setAlpha(0.4, '#337e41'),\n default: '#337e53',\n lighten: '#49ab73',\n },\n\n red: {\n mute: setAlpha(0.1, '#9e2525'),\n dim: setAlpha(0.1, '#9e2525'),\n default: '#9e2525',\n lighten: '#d22626',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: setAlpha(0.1, '#80BEF8'),\n dim: setAlpha(0.4, '#80BEF8'),\n default: '#49A4FA',\n lighten: '#80BEF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nconst baseSize = base.baseSize;\n\nexport const LightTransparencyTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightTransparency',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Nunito', sans-serif\",\n\n spacingLayout: baseSize * 2,\n borderRadiusContent: baseSize,\n backgroundContent: setAlpha(0.5, colors.gray.main),\n backgroundHeader: setAlpha(0.5, colors.gray.main),\n backdropFilterContent: 'blur(5px)',\n borderColorContent: colors.gray.main,\n borderColorHeader: colors.gray.main,\n backdropFilterHeader: 'blur(5px)',\n\n borderRadiusMedium: baseSize * 0.5,\n borderRadiusDefault: baseSize * 0.5,\n borderRadiusSmall: baseSize * 0.25,\n borderRadiusTiny: baseSize * 0.5,\n\n borderRadiusButtonLarge: baseSize * 0.5,\n borderRadiusButtonDefault: baseSize * 0.5,\n borderRadiusButtonSmall: baseSize * 0.25,\n borderRadiusButtonTiny: baseSize * 0.5,\n\n backgroundBody: `url(/customers/TransparencyLight.svg) 100%`,\n boxShadowContent: `0 2px 15px ${setAlpha(0.5, colors.gray['000'])}`,\n backgroundContentHover: setAlpha(0.05, colors.white.default),\n\n backgroundBlotterTableRow: 'transparent',\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n\n backgroundVolumeLadderBidSpread: setAlpha(0.75, colors.blue.default),\n backgroundVolumeLadderOfferSpread: setAlpha(0.75, colors.blue.default),\n\n backgroundSidebar: setAlpha(0.5, colors.gray.main),\n backdropFilterSidebar: 'blur(10px)',\n\n backgroundDrawer: setAlpha(0.5, colors.gray.main),\n backdropFilterDrawer: 'blur(10px)',\n\n borderColorDivider: colors.gray.main,\n\n backgroundInput: colors.white.default,\n backgroundSelect: colors.white.default,\n\n borderColorInputFocus: colors.primary.lighten,\n\n backgroundDefaultButton: `linear-gradient(${setAlpha(0.6, colors.gray['050'])}, ${colors.gray['050']})`,\n backgroundDefaultButtonHover: `linear-gradient(${setAlpha(0.7, colors.gray['050'])}, ${colors.gray['050']})`,\n backgroundDefaultButtonFocus: `linear-gradient(${setAlpha(0.7, colors.gray['050'])}, ${colors.gray['050']})`,\n backgroundDefaultButtonActive: `linear-gradient(${setAlpha(0.5, colors.gray['050'])}, ${colors.gray['050']})`,\n\n borderColorDefaultButtonFocus: colors.gray['050'],\n\n backgroundPositiveButton: `linear-gradient(${setAlpha(0.8, colors.green.lighten)}, ${colors.green.lighten})`,\n backgroundPositiveButtonHover: `linear-gradient(${setAlpha(0.9, colors.green.lighten)}, ${colors.green.lighten})`,\n backgroundPositiveButtonFocus: `linear-gradient(${setAlpha(0.9, colors.green.lighten)}, ${colors.green.lighten})`,\n backgroundPositiveButtonActive: `linear-gradient(${setAlpha(0.7, colors.green.lighten)}, ${colors.green.lighten})`,\n\n borderColorPositiveButtonFocus: colors.green.lighten,\n\n backgroundNegativeButton: `linear-gradient(${setAlpha(0.8, colors.red.lighten)}, ${colors.red.lighten})`,\n backgroundNegativeButtonHover: `linear-gradient(${setAlpha(0.9, colors.red.lighten)}, ${colors.red.lighten})`,\n backgroundNegativeButtonFocus: `linear-gradient(${setAlpha(0.9, colors.red.lighten)}, ${colors.red.lighten})`,\n backgroundNegativeButtonActive: `linear-gradient(${setAlpha(0.7, colors.red.lighten)}, ${colors.red.lighten})`,\n\n borderColorNegativeButtonFocus: colors.red.lighten,\n\n backgroundPrimaryButton: `linear-gradient(${setAlpha(0.8, colors.blue.lighten)}, ${colors.blue.lighten})`,\n backgroundPrimaryButtonHover: `linear-gradient(${setAlpha(0.9, colors.blue.lighten)}, ${colors.blue.lighten})`,\n backgroundPrimaryButtonFocus: `linear-gradient(${setAlpha(0.9, colors.blue.lighten)}, ${colors.blue.lighten})`,\n backgroundPrimaryButtonActive: `linear-gradient(${setAlpha(0.7, colors.blue.lighten)}, ${colors.blue.lighten})`,\n\n borderColorPrimaryButtonFocus: colors.blue.lighten,\n\n colorModeCurrencyIcon: 'colorful',\n});\n","import { darken, hsl } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: hsl(216, 0.5, 0.098),\n\n '000': hsl(216, 0.5, 0.05),\n '010': hsl(216, 0.5, 0.12),\n '020': hsl(216, 0.5, 0.15),\n '030': hsl(216, 0.5, 0.18),\n '040': hsl(216, 0.5, 0.22),\n '050': hsl(216, 0.5, 0.25),\n '060': hsl(216, 0.5, 0.28),\n '070': '#53545A',\n '080': '#808186',\n '090': '#A3A4A7',\n '100': '#E5E5E6',\n },\n\n primary: {\n default: '#6636c4',\n lighten: '#6636c4',\n dim: setAlpha(0.4, '#6610f2'),\n mute: setAlpha(0.1, '#6610f2'),\n },\n\n green: {\n default: darken(0.1, '#21db99'),\n lighten: darken(0.1, '#21db99'),\n dim: 'rgba(51, 126, 90, 0.4)',\n mute: 'rgba(51, 126, 90, 0.1)',\n },\n\n red: {\n default: darken(0.05, '#fa4877'),\n lighten: darken(0.05, '#fa4877'),\n dim: 'rgba(146, 46, 67, 0.4)',\n mute: 'rgba(146, 46, 67, 0.1)',\n },\n\n yellow: {\n default: '#ffa519',\n lighten: '#ffa519',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#6678fa',\n lighten: '#6678fa',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: {\n default: '#8B4ED9',\n lighten: '#A45FFF',\n },\n};\n\nexport const DarkAbraTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkAB',\n\n fontFamily: \"'Nunito', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n borderRadiusDefault: 8,\n borderRadiusContent: 8,\n spacingLayout: 8,\n});\n","import { hsl } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#000000',\n\n '000': '#121016',\n '010': hsl(204, 0, 0.05),\n '020': hsl(204, 0, 0.1),\n '030': hsl(204, 0, 0.15),\n '040': hsl(204, 0, 0.2),\n '050': hsl(204, 0, 0.23),\n '060': hsl(204, 0, 0.27),\n '070': hsl(204, 0, 0.34),\n '080': hsl(204, 0, 0.51),\n '090': hsl(210, 0, 0.75),\n '100': hsl(210, 0, 1),\n },\n\n primary: {\n mute: setAlpha(0.1, '#5186F6'),\n dim: setAlpha(0.4, '#5186F6'),\n default: '#4373d9',\n lighten: '#5186F6',\n },\n\n green: {\n mute: setAlpha(0.1, '#3ADCCA'),\n dim: setAlpha(0.4, '#3ADCCA'),\n default: '#2ab5a6',\n lighten: '#3adcca',\n },\n\n red: {\n mute: setAlpha(0.1, '#dc3a4c'),\n dim: setAlpha(0.4, '#dc3a4c'),\n default: '#b52a39',\n lighten: '#dc3a4c',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: {\n default: '#8B4ED9',\n lighten: '#A45FFF',\n },\n};\n\nexport const DarkAnchorageTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkAD',\n\n fontFamily: \"'Akkurat Pro', sans-serif\",\n fontFace: `@font-face {\n font-family: 'Akkurat Pro';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/customers/AkkuratPro-Regular.woff2) format('woff2');\n }`,\n\n backgroundCard: colors.gray.main,\n backgroundHeader: colors.gray.main,\n borderColorContent: colors.gray.main,\n borderColorHeader: colors.gray.main,\n backgroundSidebar: colors.gray.main,\n borderColorSidebar: colors.gray.main,\n\n backgroundSidebarItemActive: colors.gray['020'],\n backgroundSidebarItemHover: colors.gray['020'],\n\n borderColorDivider: colors.gray['000'],\n\n borderRadiusDefault: 5,\n borderRadiusSmall: 3,\n borderRadiusTiny: 3,\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n primary: {\n lighten: '#008feb',\n default: '#0070b8',\n dim: 'rgba(0,112,184,0.4)',\n mute: 'rgba(0,112,184,0.1)',\n },\n gray: {\n '100': '#ffe',\n '000': '#030304',\n '010': '#0a0a0b',\n main: '#181A22',\n '020': '#25272e',\n '030': '#33353a',\n '040': '#414346',\n '050': '#484a4c',\n '060': '#515355',\n '070': '#616363',\n '080': '#8b8c88',\n '090': '#abaca4',\n },\n green: {\n lighten: '#00e7de',\n default: '#00b4ad',\n dim: 'rgba(0,180,173,0.4)',\n mute: 'rgba(0,180,173,0.1)',\n },\n red: {\n lighten: '#ea3180',\n default: '#d31566',\n dim: 'rgba(211,21,102,0.4)',\n mute: 'rgba(211,21,102,0.1)',\n },\n yellow: {\n lighten: '#fee4a7',\n default: '#fdd475',\n dim: 'rgba(253,212,117,0.4)',\n mute: 'rgba(253,212,117,0.1)',\n },\n orange: {\n lighten: '#ff6c1a',\n default: '#E65200',\n dim: 'rgba(230,82,0,0.4)',\n mute: 'rgba(230,82,0,0.1)',\n },\n blue: {\n lighten: '#61a8f0',\n default: '#338EEB',\n dim: 'rgba(51,142,235,0.4)',\n mute: 'rgba(51,142,235,0.1)',\n },\n purple: {\n lighten: '#a778e2',\n default: '#8B4ED9',\n },\n white: {\n default: '#ffffff',\n dim: 'rgba(255,255,255,0.4)',\n mute: 'rgba(255,255,255,0.1)',\n },\n black: {\n default: '#000000',\n dim: 'rgba(0,0,0,0.4)',\n mute: 'rgba(0,0,0,0.1)',\n },\n};\n\nexport const DarkArchaxTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkAx',\n\n colorTextDefaultButton: colors.white.default,\n colorTextDefaultButtonHover: colors.white.default,\n colorTextDefaultButtonFocus: colors.white.default,\n colorTextDefaultButtonActive: colors.white.default,\n colorTextDefaultButtonDisabled: setAlpha(0.5, colors.white.default),\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.black.default),\n colorTextNegativeButton: colors.white.default,\n colorTextNegativeButtonHover: colors.white.default,\n colorTextNegativeButtonFocus: colors.white.default,\n colorTextNegativeButtonActive: colors.white.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.white.default),\n colorTextWarningButton: colors.black.default,\n colorTextWarningButtonHover: colors.black.default,\n colorTextWarningButtonFocus: colors.black.default,\n colorTextWarningButtonActive: colors.black.default,\n colorTextWarningButtonDisabled: setAlpha(0.5, colors.black.default),\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonFocus: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.white.default),\n});\n","import { cloneDeep, merge } from 'lodash';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { DarkTheme, mapDarkTheme } from './DarkTheme';\n\nconst customcolors: Partial = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#1A1F31',\n\n '000': '#000D22',\n '010': '#13151b',\n '020': '#171b2c',\n '030': '#262a37',\n '040': '#2b2f3e',\n '050': '#303545',\n '060': '#444957',\n '070': '#595d6a',\n '080': '#82858f',\n '090': '#acaeb4',\n '100': '#eaeaec',\n },\n\n primary: {\n mute: 'rgba(0, 96, 245, 0.1)',\n dim: 'rgba(0, 96, 245, 0.4)',\n default: '#0060f5',\n lighten: '#327ff7',\n },\n\n green: {\n mute: 'rgba(51, 132, 0, 0.1)',\n dim: 'rgba(51, 132, 0, 0.4)',\n default: '#12b76a',\n lighten: '#12b76a',\n },\n\n red: {\n mute: 'rgba(196, 0, 76, 0.1)',\n dim: 'rgba(196, 0, 76, 0.4)',\n default: '#f04438',\n lighten: '#f04438',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(0, 96, 245, 0.1)',\n dim: 'rgba(0, 96, 245, 0.4)',\n default: '#0060f5',\n lighten: '#327ff7',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n};\n\nconst colors: Colors = merge(cloneDeep(DarkTheme.colors), customcolors);\n\nexport const DarkBCBTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkBCB',\n\n fontFamily: \"'Montserrat', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n ...darkColors,\n\n primary: {\n default: '#2015cc',\n lighten: '#554beb',\n dim: 'rgba(32, 21, 204, 0.4)',\n mute: 'rgba(32, 21, 204, 0.1)',\n },\n};\n\nexport const DarkBinalokaTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'Dark',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n primary: {\n mute: 'rgba(49, 74, 140, 0.1)',\n dim: 'rgba(49, 74, 140, 0.4)',\n default: '#314A8C',\n lighten: '#4B64A6',\n },\n\n black: {\n default: '#282828',\n dim: 'rgba(40, 40, 40, 0.4)',\n mute: 'rgba(40, 40, 40, 0.1)',\n },\n\n white: {\n default: '#eaeaea',\n dim: 'rgba(234, 234, 234, 0.4)',\n mute: 'rgba(234, 234, 234, 0.05)',\n },\n\n green: {\n default: '#2CEC9A',\n mute: 'rgba(44, 236, 154, 0.1)',\n dim: 'rgba(44, 236, 154, 0.4)',\n lighten: '#56f0ae',\n },\n\n red: {\n default: '#FF7171',\n mute: 'rgb(255, 113, 113, 0.1)',\n dim: 'rgb(255, 113, 113, 0.4)',\n lighten: '#ff8d8d',\n },\n\n blue: {\n default: '#2B6FD5',\n mute: 'rgb(43, 111, 213, 0.1)',\n dim: 'rgb(43, 111, 213, 0.4)',\n lighten: '#558cdd',\n },\n orange: {\n default: '#FF9426',\n mute: 'rgb(255, 148, 38, 0.1)',\n dim: 'rgb(255, 148, 38, 0.4)',\n lighten: '#ffa951',\n },\n\n yellow: {\n default: '#FF9426',\n mute: 'rgb(255, 148, 38, 0.1)',\n dim: 'rgb(255, 148, 38, 0.4)',\n lighten: '#ffa951',\n },\n\n gray: darkColors.gray,\n purple: darkColors.purple,\n};\n\nexport const DarkBitpandaTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkBP',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: 'transparent',\n\n backgroundVolumeLadderBidSpread: colors.green.dim,\n backgroundVolumeLadderOfferSpread: colors.green.dim,\n borderColorDivider: colors.gray['000'],\n\n backgroundChartUpColor: colors.green.default,\n borderColorChartUpColor: colors.green.default,\n backgroundChartDownColor: colors.red.default,\n borderColorChartDownColor: colors.red.default,\n\n backgroundSidebar: colors.gray.main,\n\n backgroundPrimaryButton: colors.white.default,\n backgroundPrimaryButtonHover: setAlpha(0.9, colors.white.default),\n backgroundPrimaryButtonActive: setAlpha(0.9, colors.white.default),\n backgroundPrimaryButtonFocus: setAlpha(0.8, colors.white.default),\n backgroundPrimaryButtonDisabled: setAlpha(0.6, colors.white.default),\n\n colorTextPrimary: '#FFFFFF',\n colorTextPrimaryButton: colors.black.default,\n colorTextPrimaryButtonHover: colors.black.default,\n colorTextPrimaryButtonFocus: colors.black.default,\n colorTextPrimaryButtonActive: colors.black.default,\n colorTextPrimaryButtonDisabled: colors.black.default,\n\n colorTextPositive: colors.green.default,\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: colors.black.default,\n\n colorTextNegative: colors.red.default,\n colorTextNegativeButton: colors.black.default,\n colorTextNegativeButtonHover: colors.black.default,\n colorTextNegativeButtonFocus: colors.black.default,\n colorTextNegativeButtonActive: colors.black.default,\n colorTextNegativeButtonDisabled: colors.black.default,\n\n colorTextWarning: colors.orange.default,\n colorTextWarningButton: colors.black.default,\n colorTextWarningButtonHover: colors.black.default,\n colorTextWarningButtonFocus: colors.black.default,\n colorTextWarningButtonActive: colors.black.default,\n colorTextWarningButtonDisabled: colors.black.default,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n ...darkColors,\n\n gray: {\n main: '#1F2128',\n\n '000': '#121317',\n '010': hsla(231, 0.11, 0.11, 1),\n '020': hsla(231, 0.11, 0.14, 1),\n '030': hsla(231, 0.11, 0.16, 1),\n '040': hsla(231, 0.11, 0.2, 1),\n '050': '#363843',\n '060': hsla(231, 0.11, 0.28, 1),\n '070': hsla(231, 0.11, 0.36, 1),\n '080': hsla(231, 0.05, 0.57, 1),\n '090': hsla(231, 0.05, 0.75, 1),\n '100': hsla(231, 0.05, 0.95, 1),\n },\n\n green: {\n default: '#04d1b8',\n dim: 'rgba(4, 209, 184, 0.4)',\n mute: 'rgba(4, 209, 184, 0.1)',\n lighten: '#84e6da',\n },\n red: {\n lighten: '#fb7871',\n default: '#fa564e',\n dim: 'rgba(250, 86, 78, 0.4)',\n mute: 'rgba(250, 86, 78, 0.1)',\n },\n blue: {\n lighten: '#33439d',\n default: '#001489',\n dim: 'rgba(0, 20, 137, 0.4)',\n mute: 'rgba(0, 20, 137, 0.1)',\n },\n yellow: {\n lighten: '#e8b540',\n default: '#B68616',\n dim: 'rgba(182, 134, 22, 0.4)',\n mute: 'rgba(182, 134, 22, 0.1)',\n },\n primary: {\n default: '#04d1b8',\n dim: 'rgba(4, 209, 184, 0.4)',\n mute: 'rgba(4, 209, 184, 0.1)',\n lighten: '#84e6da',\n },\n};\n\nexport const DarkCanarySidebarTheme: DefaultTheme = mapDarkTheme(colors, {\n fontFamily: \"'Inter', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n borderRadiusDefault: 4,\n borderRadiusSmall: 2,\n borderRadiusTiny: 1,\n borderRadiusContent: 7,\n\n spacingLayout: DarkTheme.baseSize * 0.5,\n\n borderColorSidebar: colors.blue.default,\n backgroundSidebar: colors.blue.default,\n backgroundSidebarItemActive: setAlpha(0.15, colors.primary.default),\n backgroundSidebarItemHover: setAlpha(0.2, colors.primary.default),\n\n colorTextSidebarItem: colors.white.default,\n colorTextSidebarItemActive: colors.primary.default,\n colorTextSidebarItemHover: setAlpha(0.9, colors.primary.default),\n\n backgroundHeader: colors.blue.default,\n borderColorHeader: colors.blue.default,\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n ...darkColors,\n};\n\nexport const DarkCanaryTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'Dark',\n});\n","import { cloneDeep, merge } from 'lodash';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, mapDarkTheme } from './DarkTheme';\n\nconst customcolors: Partial = {\n primary: {\n mute: setAlpha(0.1, '#1C5184'),\n dim: setAlpha(0.4, '#1C5184'),\n default: '#1C5184',\n lighten: '#2365A5',\n },\n\n green: {\n mute: setAlpha(0.1, '#1A8440'),\n dim: setAlpha(0.4, '#1A8440'),\n default: '#1A8440',\n lighten: '#29CE64',\n },\n red: {\n mute: setAlpha(0.1, '#C83636'),\n dim: setAlpha(0.4, '#C83636'),\n default: '#C83636',\n lighten: '#FA4444',\n },\n blue: {\n mute: setAlpha(0.1, '#2365A5'),\n dim: setAlpha(0.4, '#2365A5'),\n default: '#2365A5',\n lighten: '#3085D8',\n },\n yellow: {\n mute: setAlpha(0.1, '#CC8907'),\n dim: setAlpha(0.4, '#CC8907'),\n default: '#CC8907',\n lighten: '#FFAB09',\n },\n gray: {\n main: '#182740',\n // https://hihayk.github.io/scale/#8/3/40/95/0/0/0/0/182740/24/39/64/white\n // worked well for me\n\n '000': '#0E1726',\n '010': '#10192A',\n '020': '#111B2D',\n '030': '#121D30',\n '040': '#131F33',\n '050': '#142136',\n '060': '#16233A',\n '070': '#17253D',\n '080': '#616B7D',\n '090': '#AAB0B9',\n '100': '#F3F4F5',\n },\n};\n\nconst colors: Colors = merge(cloneDeep(DarkTheme.colors), customcolors);\n\nexport const DarkCFTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkCF',\n\n backgroundSidebar: colors.gray.main,\n\n backgroundPrimaryButton: colors.white.default,\n backgroundPrimaryButtonHover: setAlpha(0.9, colors.white.default),\n backgroundPrimaryButtonActive: setAlpha(0.9, colors.white.default),\n backgroundPrimaryButtonFocus: setAlpha(0.8, colors.white.default),\n backgroundPrimaryButtonDisabled: setAlpha(0.6, colors.white.default),\n\n colorTextPrimary: colors.white.default,\n colorTextPrimaryButton: colors.black.default,\n colorTextPrimaryButtonHover: colors.black.default,\n colorTextPrimaryButtonFocus: colors.black.default,\n colorTextPrimaryButtonActive: colors.black.default,\n colorTextPrimaryButtonDisabled: colors.black.default,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#101010',\n\n '000': '#000000',\n '010': hsla(200, 0, 0.11, 1),\n '020': hsla(200, 0, 0.14, 1),\n '030': hsla(200, 0, 0.16, 1),\n '040': hsla(200, 0, 0.2, 1),\n '050': hsla(200, 0, 0.24, 1),\n '060': hsla(200, 0, 0.28, 1),\n '070': hsla(200, 0, 0.36, 1),\n '080': hsla(200, 0, 0.57, 1),\n '090': '#f0f3f4',\n '100': '#FFFFFF',\n },\n\n primary: {\n mute: setAlpha(0.1, '#29508B'),\n dim: setAlpha(0.4, '#29508B'),\n default: '#29508B',\n lighten: '#3e6196',\n },\n\n green: {\n mute: setAlpha(0.1, '#5ab548'),\n dim: setAlpha(0.4, '#5ab548'),\n default: '#5ab548',\n lighten: '#64d864',\n },\n\n red: {\n mute: setAlpha(0.1, '#ca3939'),\n dim: setAlpha(0.4, '#ca3939'),\n default: '#b53333',\n lighten: '#ca3939',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkEtanaTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkEC',\n\n fontFamily: \"'Poppins', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundInput: colors.gray.main,\n\n backgroundVolumeLadderBidSpread: colors.primary.default,\n backgroundVolumeLadderOfferSpread: colors.primary.default,\n});\n","import type { DefaultTheme } from 'styled-components';\nimport { DarkGriffoTheme } from './DarkGriffoTheme';\n\n/** @deprecated */\nexport const DarkGriffoDevTheme: DefaultTheme = {\n ...DarkGriffoTheme,\n name: 'DarkGODev',\n spacingLayout: 16,\n boxShadowContent: '0 2px 16px rgba(0, 0, 0, 0.75)',\n boxShadowHeader: '0 2px 16px rgba(0, 0, 0, 0.75)',\n};\n","import { cloneDeep, merge } from 'lodash';\nimport { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, mapDarkTheme } from './DarkTheme';\n\nconst customcolors: Partial = {\n gray: {\n main: '#1F2128',\n\n '000': '#121317',\n '010': hsla(231, 0.11, 0.11, 1),\n '020': hsla(231, 0.11, 0.14, 1),\n '030': hsla(231, 0.11, 0.16, 1),\n '040': hsla(231, 0.11, 0.2, 1),\n '050': '#363843',\n '060': hsla(231, 0.11, 0.28, 1),\n '070': hsla(231, 0.11, 0.36, 1),\n '080': hsla(231, 0.05, 0.57, 1),\n '090': hsla(231, 0.05, 0.75, 1),\n '100': hsla(231, 0.05, 0.95, 1),\n },\n\n primary: {\n mute: hsla(217, 0.64, 0.6, 0.1),\n dim: hsla(217, 0.64, 0.6, 0.4),\n default: hsl(217, 0.64, 0.47),\n lighten: hsl(217, 0.64, 0.6),\n },\n\n green: {\n mute: hsl(101, 0.52, 0.22),\n dim: hsl(101, 0.52, 0.31),\n default: hsl(101, 0.73, 0.36),\n lighten: hsl(101, 0.73, 0.42),\n },\n\n red: {\n mute: hsl(352, 0.59, 0.21),\n dim: hsl(352, 1, 0.29),\n default: hsl(352, 0.59, 0.34),\n lighten: hsl(352, 0.59, 0.45),\n },\n\n yellow: {\n ...DarkTheme.colors.yellow,\n default: hsl(32, 0.92, 0.52),\n lighten: hsl(32, 0.92, 0.56),\n },\n\n blue: {\n mute: hsla(217, 0.64, 0.6, 0.1),\n dim: hsla(217, 0.64, 0.6, 0.4),\n default: hsl(217, 0.64, 0.47),\n lighten: hsl(217, 0.64, 0.6),\n },\n};\nconst colors: Colors = merge(cloneDeep(DarkTheme.colors), customcolors);\n\nexport const DarkHextrustSidebarTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkHTSidebar',\n\n fontFamily: \"'Poppins', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n borderRadiusDefault: 4,\n borderRadiusSmall: 2,\n borderRadiusTiny: 1,\n borderRadiusContent: 7,\n\n spacingLayout: DarkTheme.baseSize * 0.5,\n\n borderColorSidebar: colors.gray['000'],\n backgroundSidebar: colors.gray['000'],\n backgroundSidebarItemActive: setAlpha(0.8, colors.primary.default),\n backgroundSidebarItemHover: setAlpha(1, colors.primary.default),\n\n backgroundHeader: '#001A42',\n borderColorHeader: '#001A42',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#0f151e',\n\n '000': '#01030C',\n '010': '#10121A',\n '020': '#20222A',\n '030': '#272930',\n '040': '#2F3038',\n '050': '#37383F',\n '060': '#414249',\n '070': '#53545A',\n '080': '#808186',\n '090': '#A3A4A7',\n '100': '#E5E5E6',\n },\n\n primary: {\n mute: 'rgba(15, 166, 223, 0.1)',\n dim: 'rgba(15, 166, 223, 0.4)',\n default: '#0fa6df',\n lighten: '#73c5e5',\n },\n\n green: {\n mute: 'rgba(25, 165, 89, 0.1)',\n dim: 'rgba(25, 165, 89, 0.4)',\n default: '#19a559',\n lighten: '#69b790',\n },\n\n red: {\n mute: 'rgba(146, 46, 67, 0.1)',\n dim: 'rgba(146, 46, 67, 0.4)',\n default: '#922E43',\n lighten: '#D23557',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkISPTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkISP',\n\n backgroundSidebar: colors.gray.main,\n borderColorSidebar: colors.gray.main,\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundDefaultButton: setAlpha(0.42, '#8d9ea5'),\n backgroundDefaultButtonHover: setAlpha(0.52, '#8d9ea5'),\n backgroundDefaultButtonFocus: setAlpha(0.52, '#8d9ea5'),\n backgroundDefaultButtonActive: setAlpha(0.42, '#8d9ea5'),\n\n backgroundPriorityButton: setAlpha(0.42, '#8d9ea5'),\n backgroundPriorityButtonHover: setAlpha(0.52, '#8d9ea5'),\n backgroundPriorityButtonFocus: setAlpha(0.52, '#8d9ea5'),\n backgroundPriorityButtonActive: setAlpha(0.42, '#8d9ea5'),\n\n ...getInputStylesAppliedToSelect(DarkTheme),\n\n colorTextDefault: '#8d9ea5',\n\n backgroundVolumeLadderBidSpread: setAlpha(0.8, colors.primary.default),\n backgroundVolumeLadderOfferSpread: setAlpha(0.8, colors.primary.default),\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#121212',\n dim: 'rgba(18, 18, 18, 0.4)',\n mute: 'rgba(18, 18, 18, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#010101',\n\n '000': '#000000',\n '010': '#121212',\n '020': '#232323',\n '030': '#343434',\n '040': '#454545',\n '050': '#565656',\n '060': '#676767',\n '070': '#787878',\n '080': '#898989',\n '090': '#9a9a9a',\n '100': '#ababab',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7055F8'),\n dim: setAlpha(0.4, '#7055F8'),\n default: '#7055F8',\n lighten: '#8F79FF',\n },\n\n green: {\n mute: setAlpha(0.1, '#477722'),\n dim: setAlpha(0.4, '#477722'),\n default: '#477722',\n lighten: '#5AA61E',\n },\n\n red: {\n mute: setAlpha(0.1, '#8D483C'),\n dim: setAlpha(0.4, '#8D483C'),\n default: '#8D483C',\n lighten: '#CA5A47',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#D6C043'),\n dim: setAlpha(0.4, '#D6C043'),\n default: '#D6C043',\n lighten: '#FFE646',\n },\n\n blue: {\n mute: setAlpha(0.1, '#2F5F9C'),\n dim: setAlpha(0.4, '#2F5F9C'),\n default: '#2F5F9C',\n lighten: '#43AAD6',\n },\n\n orange: {\n mute: setAlpha(0.1, '#D24500'),\n dim: setAlpha(0.4, '#D24500'),\n default: '#D24500',\n lighten: '#FF6900',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkJanuarTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkJR',\n\n backgroundBody: colors.black.default,\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray['020'],\n boxShadowHeader: colors.gray['020'],\n\n backgroundSidebar: colors.gray.main,\n borderColorSidebar: colors.gray['020'],\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#191919',\n\n '000': '#101010',\n '010': hsla(200, 0, 0.11, 1),\n '020': hsla(200, 0, 0.14, 1),\n '030': hsla(200, 0, 0.16, 1),\n '040': hsla(200, 0, 0.2, 1),\n '050': hsla(200, 0, 0.24, 1),\n '060': hsla(200, 0, 0.28, 1),\n '070': hsla(200, 0, 0.36, 1),\n '080': hsla(200, 0, 0.57, 1),\n '090': hsla(200, 0, 0.75, 1),\n '100': hsla(200, 0, 0.85, 1),\n },\n\n primary: {\n mute: setAlpha(0.1, '#0557FF'),\n dim: setAlpha(0.4, '#0557FF'),\n default: '#0557FF',\n lighten: '#4393F1',\n },\n\n green: {\n mute: setAlpha(0.1, '#5ec169'),\n dim: setAlpha(0.4, '#5ec169'),\n default: '#47a251',\n lighten: '#5ec169',\n },\n\n red: {\n mute: setAlpha(0.1, '#bf2230'),\n dim: setAlpha(0.4, '#bf2230'),\n default: '#bf2230',\n lighten: '#d42837',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkKeyrockTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkKR',\n\n fontFamily: \"'Manrope', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Manrope:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundInput: colors.gray.main,\n});\n","import type { DefaultTheme } from 'styled-components';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const DarkNeoChainTheme: DefaultTheme = mapDarkTheme(darkColors, {\n name: 'DarkNeoChain',\n backgroundBody: '#363636',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n ...darkColors,\n\n gray: {\n main: '#282829',\n\n // https://hihayk.github.io/scale/#4/7/39/95/-360/139/20/100/282829/40/40/41/white\n // worked well for me\n '000': '#181819',\n '010': '#1C1D1D',\n '020': '#212120',\n '030': '#252425',\n '040': '#454646',\n '050': '#626363',\n '060': '#808080',\n '070': '#9D9D9D',\n '080': '#BABABA',\n '090': '#D7D7D7',\n '100': '#F4F4F4',\n },\n yellow: {\n default: '#F87700',\n lighten: '#ff9e45',\n mute: setAlpha(0.1, '#F87700'),\n dim: setAlpha(0.4, '#F87700'),\n },\n primary: {\n default: '#DCA950',\n lighten: '#e6bb70',\n mute: setAlpha(0.1, '#DCA950'),\n dim: setAlpha(0.4, '#DCA950'),\n },\n};\n\nexport const DarkOneIOTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkOIO',\n\n backgroundSidebar: colors.gray.main,\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#00092E',\n\n '000': '#00020d',\n '010': '#11172e',\n '020': '#192142',\n '030': '#2f3754',\n '040': '#2f3754',\n '050': '#37383F',\n '060': '#323a57',\n '070': '#5d637a',\n '080': '#818598',\n '090': '#a5a8b5',\n '100': '#ededf0',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7B61FF'),\n dim: setAlpha(0.4, '#7B61FF'),\n default: '#7B61FF',\n lighten: '#7B61FF',\n },\n\n green: {\n mute: setAlpha(0.1, '#7B61FF'),\n dim: setAlpha(0.4, '#7B61FF'),\n default: '#7B61FF',\n lighten: '#7B61FF',\n },\n\n red: {\n mute: 'rgba(146, 46, 67, 0.1)',\n dim: 'rgba(146, 46, 67, 0.4)',\n default: '#ed423d',\n lighten: '#ed423d',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkOneLiquidityTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkOL',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap',\n fontFamily: \"'Inter', sans-serif\",\n\n backgroundSidebar: colors.gray.main,\n borderColorSidebar: colors.gray.main,\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: setAlpha(0.08, colors.gray['100']),\n backgroundDefaultButtonFocus: setAlpha(0.08, colors.gray['100']),\n backgroundDefaultButtonActive: colors.gray.main,\n\n backgroundPriorityButton: colors.gray.main,\n backgroundPriorityButtonHover: setAlpha(0.08, colors.gray['100']),\n backgroundPriorityButtonFocus: setAlpha(0.08, colors.gray['100']),\n backgroundPriorityButtonActive: colors.gray.main,\n\n borderWidthButton: 1,\n\n borderColorDefaultButton: colors.gray['060'],\n borderColorDefaultButtonHover: colors.gray['060'],\n borderColorDefaultButtonFocus: colors.gray['060'],\n borderColorDefaultButtonActive: colors.gray['060'],\n\n borderColorPriorityButton: colors.gray['060'],\n borderColorPriorityButtonHover: colors.gray['060'],\n borderColorPriorityButtonFocus: colors.gray['060'],\n borderColorPriorityButtonActive: colors.gray['060'],\n\n ...getInputStylesAppliedToSelect(DarkTheme),\n\n backgroundChartUpColor: '#009d70',\n borderColorChartUpColor: '#009d70',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#101010',\n\n '000': '#010101',\n '010': '#101010',\n '020': '#202020',\n '030': '#272727',\n '040': '#2F2F2F',\n '050': '#373737',\n '060': '#414141',\n '070': '#535353',\n '080': '#808080',\n '090': '#A3A3A3',\n '100': '#E5E5E5',\n },\n\n primary: {\n mute: hsla(217, 1, 0.42, 0.1),\n dim: hsla(217, 1, 0.42, 0.7),\n default: '#0053D8',\n lighten: '#0045B2',\n },\n\n green: {\n mute: hsla(157, 0.83, 0.43, 0.1),\n dim: hsla(157, 0.83, 0.43, 0.4),\n default: '#1CCB21',\n lighten: '#19B31D',\n },\n\n red: {\n mute: hsla(348, 0.55, 0.49, 0.1),\n dim: hsla(348, 0.55, 0.49, 0.4),\n default: '#FF5A5A',\n lighten: '#FF4242',\n },\n\n yellow: {\n mute: 'rgba(204, 172, 62, 0.1)',\n dim: 'rgba(204, 172, 62, 0.4)',\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkPintuTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkPintu',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Inter&family=Mulish:ital,wght@0,400;0,500;0,600;1,400&display=swap',\n\n spacingLayout: 4,\n\n backgroundHeader: '#181818',\n borderColorHeader: '#181818',\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n backgroundInput: colors.gray.main,\n backgroundInputDisabled: colors.gray['020'],\n backgroundInputInvalid: colors.gray.main,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n backgroundSelectDisabled: colors.gray['020'],\n backgroundSelectInvalid: colors.gray.main,\n backgroundSelectDropdown: colors.gray.main,\n\n borderColorSelect: colors.gray['030'],\n borderColorSelectHover: colors.gray['040'],\n borderColorSelectFocus: colors.gray['050'],\n borderColorSelectDisabled: colors.gray['040'],\n borderColorSelectReadOnly: colors.gray['040'],\n\n backgroundToggle: colors.gray['050'],\n backgroundToggleSwitch: setAlpha(0.12, colors.gray[100]),\n\n backgroundCheckbox: colors.gray['010'],\n backgroundCheckboxHover: colors.gray['020'],\n\n borderColorCheckbox: colors.gray['050'],\n borderColorCheckboxFocus: colors.gray['070'],\n borderColorCheckboxHover: colors.gray['070'],\n borderColorCheckboxChecked: colors.gray['070'],\n borderColorCheckboxCheckedFocus: colors.gray['070'],\n\n backgroundRadiobutton: colors.gray['010'],\n backgroundRadiobuttonHover: colors.gray['020'],\n\n borderColorRadiobutton: colors.gray['050'],\n borderColorRadiobuttonFocus: colors.gray['070'],\n borderColorRadiobuttonHover: colors.gray['070'],\n borderColorRadiobuttonChecked: colors.gray['070'],\n borderColorRadiobuttonCheckedFocus: colors.gray['070'],\n\n borderColorInput: colors.gray['030'],\n borderColorInputHover: colors.gray['040'],\n borderColorInputFocus: colors.gray['050'],\n\n borderColorInputDisabled: colors.gray['040'],\n\n backgroundDropdownResults: colors.gray.main,\n backgroundDropdownInput: colors.gray.main,\n backgroundDropdownSelected: colors.gray['010'],\n backgroundDropdownHovered: colors.gray['020'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n white: darkColors.white,\n black: darkColors.black,\n orange: darkColors.orange,\n purple: darkColors.purple,\n\n gray: {\n main: '#181B25',\n\n '000': '#010412',\n '010': '#10131F',\n '020': '#20232D',\n '030': '#272933',\n '040': '#2F313A',\n '050': '#373940',\n '060': '#414349',\n '070': '#535558',\n '080': '#808280',\n '090': '#A3A49E',\n '100': '#FFFFEE',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7D8CA3'),\n dim: setAlpha(0.4, '#7D8CA3'),\n default: '#7D8CA3',\n lighten: '#91A0B7',\n },\n\n green: {\n mute: setAlpha(0.1, '#28BB8F'),\n dim: setAlpha(0.4, '#28BB8F'),\n default: '#28BB8F',\n lighten: '#32C599',\n },\n\n red: {\n mute: setAlpha(0.1, '#FF435A'),\n dim: setAlpha(0.4, '#FF435A'),\n default: '#FF435A',\n lighten: '#FF4D64',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#CCAC3E'),\n dim: setAlpha(0.4, '#CCAC3E'),\n default: '#CCAC3E',\n lighten: '#F2D264',\n },\n\n blue: {\n mute: setAlpha(0.1, '#338EEB'),\n dim: setAlpha(0.4, '#338EEB'),\n default: '#338EEB',\n lighten: '#4AA4FF',\n },\n};\n\nconst baseSize = base.baseSize;\n\nexport const DarkPxTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkPx',\n\n borderRadiusContent: baseSize,\n borderRadiusMedium: baseSize * 0.4,\n borderRadiusDefault: baseSize * 0.3,\n borderRadiusSmall: baseSize * 0.2,\n borderRadiusTiny: baseSize * 0.1,\n spacingLayout: baseSize * 0.5,\n borderRadiusButtonLarge: baseSize * 0.75,\n borderRadiusButtonDefault: baseSize * 0.5,\n borderRadiusButtonSmall: baseSize * 0.25,\n borderRadiusButtonTiny: baseSize * 0.1,\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.7, colors.black.default),\n colorTextPositiveButtonFocus: colors.black.default,\n\n colorTextNegativeButton: colors.black.default,\n colorTextNegativeButtonHover: colors.black.default,\n colorTextNegativeButtonActive: colors.black.default,\n colorTextNegativeButtonDisabled: setAlpha(0.7, colors.black.default),\n colorTextNegativeButtonFocus: colors.black.default,\n\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.7, colors.white.default),\n colorTextPrimaryButtonFocus: colors.white.default,\n\n backgroundDrawer: colors.gray.main,\n backgroundSidebar: colors.gray.main,\n colorTabActive: colors.gray.main,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: hsla(262, 0.31, 0.04, 1),\n dim: 'rgba(49, 37, 70, 0.4)',\n mute: 'rgba(49, 37, 70, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#37294F',\n\n '000': hsla(262, 0.31, 0.11, 1),\n '010': hsla(262, 0.31, 0.16, 1),\n '020': hsla(262, 0.31, 0.18, 1),\n '030': hsla(262, 0.31, 0.21, 1),\n '040': hsla(262, 0.31, 0.26, 1),\n '050': hsla(262, 0.31, 0.35, 1),\n '060': hsla(262, 0.31, 0.46, 1),\n '070': hsla(262, 0.31, 0.58, 1),\n '080': hsla(262, 0.31, 0.75, 1),\n '090': hsla(262, 0.31, 0.85, 1),\n '100': hsla(262, 0.31, 0.95, 1),\n },\n\n primary: {\n mute: setAlpha(0.1, '#3A2B53'),\n dim: setAlpha(0.4, '#3A2B53'),\n default: '#3A2B53',\n lighten: '#453561',\n },\n\n green: {\n mute: setAlpha(0.1, '#0AA049'),\n dim: setAlpha(0.4, '#0AA049'),\n default: '#0AA049',\n lighten: '#27B663',\n },\n\n red: {\n mute: setAlpha(0.1, '#8D483C'),\n dim: setAlpha(0.4, '#8D483C'),\n default: '#8D483C',\n lighten: '#CA5A47',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#D6C043'),\n dim: setAlpha(0.4, '#D6C043'),\n default: '#D6C043',\n lighten: '#FFE646',\n },\n\n blue: {\n mute: setAlpha(0.1, '#43AAD6'),\n dim: setAlpha(0.4, '#43AAD6'),\n default: '#43AAD6',\n lighten: '#46C7FF',\n },\n\n orange: {\n mute: setAlpha(0.1, '#D24500'),\n dim: setAlpha(0.4, '#D24500'),\n default: '#D24500',\n lighten: '#FF6900',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkRainTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkRN',\n\n backgroundBody: '#312546',\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray['020'],\n boxShadowHeader: colors.gray['020'],\n\n backgroundSidebar: colors.gray.main,\n borderColorSidebar: colors.gray['020'],\n});\n","import { cloneDeep, merge } from 'lodash';\nimport { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { DarkTheme, mapDarkTheme } from './DarkTheme';\n\nconst customcolors: Partial = {\n gray: {\n main: '#151515',\n\n '000': '#050505',\n '010': hsla(0, 0, 0.11, 1),\n '020': hsla(0, 0, 0.14, 1),\n '030': hsla(0, 0, 0.16, 1),\n '040': hsla(0, 0, 0.2, 1),\n '050': hsla(0, 0, 0.24, 1),\n '060': hsla(0, 0, 0.28, 1),\n '070': hsla(0, 0, 0.36, 1),\n '080': hsla(0, 0, 0.57, 1),\n '090': '#F2F2F2',\n '100': hsla(0, 0, 0.85, 1),\n },\n\n primary: {\n mute: hsla(46, 0.75, 0.6, 0.1),\n dim: hsla(46, 0.75, 0.6, 0.7),\n default: hsl(46, 0.75, 0.45),\n lighten: hsl(46, 0.75, 0.6),\n },\n\n green: {\n mute: hsla(130, 0.63, 0.32, 0.1),\n dim: hsla(130, 0.63, 0.32, 0.4),\n default: hsl(130, 0.63, 0.32),\n lighten: hsl(130, 0.61, 0.4),\n },\n\n red: {\n mute: hsla(350, 0.86, 0.38, 0.1),\n dim: hsla(350, 0.86, 0.38, 0.4),\n default: hsl(350, 0.86, 0.38),\n lighten: hsl(350, 0.87, 0.48),\n },\n};\nconst colors: Colors = merge(cloneDeep(DarkTheme.colors), customcolors);\n\nexport const DarkSDMTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkSDM',\n\n backgroundSelectDropdown: colors.gray['010'],\n\n backgroundInput: 'transparent',\n backgroundInputInvalid: 'transparent',\n backgroundInputDisabled: 'transparent',\n\n backgroundSelect: 'transparent',\n backgroundSelectHover: 'transparent',\n backgroundSelectFocus: 'transparent',\n backgroundSelectDisabled: 'transparent',\n backgroundSelectReadOnly: 'transparent',\n backgroundSelectInvalid: 'transparent',\n\n colorTextDefault: colors.gray['090'],\n colorTextImportant: colors.gray['100'],\n colorTextAttention: colors.gray['100'],\n\n backgroundBody: colors.gray['000'],\n backgroundContent: colors.gray.main,\n\n borderColorPopover: colors.gray.main,\n backgroundPopover: colors.gray.main,\n backgroundModal: colors.gray.main,\n\n backgroundPopoverHighlight: colors.gray['030'],\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: colors.gray.main,\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n backgroundToggle: colors.gray['050'],\n\n backgroundCheckbox: colors.gray['010'],\n backgroundCheckboxHover: colors.gray['020'],\n\n borderColorCheckbox: colors.gray['050'],\n borderColorCheckboxFocus: colors.gray['070'],\n borderColorCheckboxHover: colors.gray['070'],\n borderColorCheckboxChecked: colors.gray['070'],\n borderColorCheckboxCheckedFocus: colors.gray['070'],\n\n backgroundRadiobutton: colors.gray['010'],\n backgroundRadiobuttonHover: colors.gray['020'],\n\n borderColorRadiobutton: colors.gray['050'],\n borderColorRadiobuttonFocus: colors.gray['070'],\n borderColorRadiobuttonHover: colors.gray['070'],\n borderColorRadiobuttonChecked: colors.gray['070'],\n borderColorRadiobuttonCheckedFocus: colors.gray['070'],\n\n borderColorInput: colors.gray['060'],\n borderColorInputHover: colors.gray['070'],\n borderColorInputFocus: colors.gray['080'],\n borderColorInputDisabled: colors.gray['040'],\n\n borderColorSelect: colors.gray['060'],\n borderColorSelectHover: colors.gray['070'],\n borderColorSelectFocus: colors.gray['080'],\n borderColorSelectDisabled: colors.gray['040'],\n borderColorSelectReadOnly: colors.gray['040'],\n\n backgroundDropdownResults: colors.gray.main,\n backgroundDropdownInput: colors.gray.main,\n backgroundDropdownSelected: colors.gray['010'],\n backgroundDropdownHovered: colors.gray['020'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const darkSeliniColors: Colors = {\n ...darkColors,\n\n green: {\n default: '#2e7e57',\n lighten: '#2E7D32',\n dim: setAlpha(0.4, '#2e7e57'),\n mute: setAlpha(0.1, '#2e7e57'),\n },\n red: {\n default: '#b74638',\n lighten: '#c6392f',\n dim: setAlpha(0.4, '#b74638'),\n mute: setAlpha(0.1, '#b74638'),\n },\n blue: {\n default: '#01579b',\n lighten: '#0277bd',\n dim: setAlpha(0.4, '#01579b'),\n mute: setAlpha(0.1, '#01579b'),\n },\n yellow: {\n default: '#f9a825',\n lighten: '#fbc02d',\n dim: setAlpha(0.4, '#f9a825'),\n mute: setAlpha(0.1, '#f9a825'),\n },\n\n primary: {\n default: '#283593',\n lighten: '#303f9f',\n dim: setAlpha(0.4, '#283593'),\n mute: setAlpha(0.1, '#283593'),\n },\n gray: {\n '000': '#020F21',\n '010': '#0C182A',\n main: '#121D2D',\n '020': '#1C2736',\n '030': '#283340',\n '040': '#303A46',\n '050': '#38424C',\n '060': '#414B55',\n '070': '#535C62',\n '080': '#818787',\n '090': '#A4A8A4',\n '100': '#FFFFEE',\n },\n};\n\nexport const DarkSeliniCapitalTheme: DefaultTheme = mapDarkTheme(darkSeliniColors, {\n name: 'DarkSC',\n backgroundHeader: 'linear-gradient(300deg, #0A1F33, #08253F, #06355A, #0B3A60)',\n backgroundSidebar: 'linear-gradient(0deg, #0A1F33, #08253F, #06355A, #0B3A60)',\n backgroundBody: '#020F21',\n\n backgroundSidebarItemActive: darkSeliniColors.gray.main,\n backgroundSidebarItemHover: darkSeliniColors.gray.main,\n backgroundContent: 'linear-gradient(180deg, #121D2D, #0A1F33)',\n\n backgroundChartUpColor: darkSeliniColors.green.default,\n backgroundChartDownColor: darkSeliniColors.red.default,\n\n borderRadiusButtonDefault: 0,\n borderRadiusButtonLarge: 0,\n borderRadiusButtonSmall: 0,\n borderRadiusButtonTiny: 0,\n borderRadiusCard: 0,\n borderRadiusContent: 0,\n borderRadiusBig: 0,\n borderRadiusDefault: 0,\n borderRadiusHuge: 0,\n borderRadiusLarge: 0,\n borderRadiusMedium: 0,\n borderRadiusLayoutWrapper: 0,\n borderRadiusSmall: 0,\n borderRadiusTiny: 0,\n});\n","import { darken } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#242036',\n\n '000': '#181428',\n '010': '#2e2d3d',\n '020': '#343244',\n '030': '#5E5D6F',\n '040': '#545363',\n '050': '#79778E',\n '060': '#6c6b7f',\n '070': '#5e5d6f',\n '080': '#605f71',\n '090': '#bcbbc6',\n '100': '#e4e3e8',\n },\n\n primary: {\n mute: setAlpha(0.1, '#1CF1A5'),\n dim: setAlpha(0.4, '#1CF1A5'),\n default: '#1CF1A5',\n lighten: '#1CF1A5',\n },\n\n green: {\n mute: setAlpha(0.1, '#2C8059'),\n dim: setAlpha(0.4, '#2C8059'),\n default: '#2C8059',\n lighten: '#1CF1A5',\n },\n\n red: {\n mute: setAlpha(0.1, '#BD5F4B'),\n dim: setAlpha(0.4, '#BD5F4B'),\n default: '#BD5F4B',\n lighten: '#FE7D62',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkStablehouseTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkSH',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 16,\n borderRadiusContent: 8,\n borderColorHeader: colors.gray['010'],\n boxShadowHeader: `0 2px 15px ${setAlpha(0.5, colors.gray['000'])}`,\n\n borderColorContent: colors.gray['010'],\n boxShadowContent: `0 2px 15px ${setAlpha(0.5, colors.gray['000'])}`,\n\n backgroundNegativeButtonActive: '#771400',\n\n backgroundDefaultButton: colors.gray['000'],\n backgroundDefaultButtonHover: colors.gray['020'],\n backgroundDefaultButtonActive: colors.gray['020'],\n\n backgroundInput: colors.gray.main,\n borderColorInputFocus: colors.blue.lighten,\n\n backgroundPositiveButtonFocus: colors.green.default,\n\n backgroundNegativeButtonFocus: colors.red.default,\n\n backgroundPrimaryButton: '#FFFFFF',\n backgroundPrimaryButtonHover: '#F0F0F0',\n backgroundPrimaryButtonActive: '#EEEEEE',\n backgroundPrimaryButtonFocus: '#FFFFFF',\n backgroundPrimaryButtonDisabled: '#FFFFFF88',\n\n colorTextPrimaryButton: colors.gray['000'],\n colorTextPrimaryButtonHover: colors.gray['000'],\n colorTextPrimaryButtonFocus: colors.gray['000'],\n colorTextPrimaryButtonActive: colors.gray['000'],\n\n colorTextNegative: colors.red.default,\n\n backgroundChartDownColor: colors.red.default,\n borderColorChartDownColor: colors.red.default,\n\n backgroundVolumeLadderBidSpread: darken(0.15, colors.primary.default),\n backgroundVolumeLadderOfferSpread: darken(0.15, colors.primary.default),\n\n backgroundChartUpColor: colors.green.default,\n borderColorChartUpColor: colors.green.default,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n backgroundSelectDisabled: colors.gray.main,\n backgroundSelectReadOnly: colors.gray.main,\n backgroundSelectInvalid: colors.gray.main,\n\n borderColorSelect: DarkTheme.borderColorInput,\n borderColorSelectHover: DarkTheme.borderColorInputHover,\n borderColorSelectFocus: colors.blue.lighten,\n borderColorSelectDisabled: DarkTheme.borderColorInputDisabled,\n borderColorSelectReadOnly: DarkTheme.borderColorInputReadOnly,\n});\n","import { desaturate } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: desaturate(1, '#181A22'),\n\n '000': desaturate(1, '#01030C'),\n '010': desaturate(1, '#10121A'),\n '020': desaturate(1, '#20222A'),\n '030': desaturate(1, '#272930'),\n '040': desaturate(1, '#2F3038'),\n '050': desaturate(1, '#37383F'),\n '060': desaturate(1, '#414249'),\n '070': desaturate(1, '#53545A'),\n '080': desaturate(1, '#808186'),\n '090': desaturate(1, '#A3A4A7'),\n '100': desaturate(1, '#E5E5E6'),\n },\n\n primary: {\n mute: 'hsla(246.58, 100%, 50%, 0.1)',\n dim: 'hsla(246.58, 100%, 50%, 0.4)',\n default: 'hsl(246.58, 100%, 50%)',\n lighten: 'hsl(246.58, 100%, 50%)',\n },\n\n green: {\n mute: 'rgba(51, 126, 90, 0.1)',\n dim: 'rgba(51, 126, 90, 0.4)',\n default: '#337E5A',\n lighten: '#56AE84',\n },\n\n red: {\n mute: 'rgba(146, 46, 67, 0.1)',\n dim: 'rgba(146, 46, 67, 0.4)',\n default: '#922E43',\n lighten: '#D23557',\n },\n\n yellow: {\n mute: 'rgba(196, 160, 98, 0.1)',\n dim: 'rgba(196, 160, 98, 0.4)',\n default: '#c4a062',\n lighten: '#d2b789',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkTDATheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkTDA',\n\n backgroundBody: colors.gray['010'],\n backgroundContent: colors.black.default,\n backgroundContentHover: colors.white.mute,\n backgroundSidebar: colors.black.default,\n borderColorSidebar: colors.black.default,\n\n borderColorContent: colors.black.default,\n backgroundHeader: colors.black.default,\n borderColorHeader: colors.black.default,\n\n borderColorDivider: colors.gray['010'],\n});\n","import { darken, lighten } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#1B1B19',\n\n '000': '#040404',\n '010': '#131312',\n '020': '#232321',\n '030': '#3A3A39',\n '040': '#41413E',\n '050': '#4F4F4C',\n '060': '#50504E',\n '070': '#55554F',\n '080': '#828279',\n '090': '#A4A499',\n '100': '#FFFFEE',\n },\n\n primary: {\n mute: setAlpha(0.1, '#2471CC'),\n dim: setAlpha(0.4, '#2471CC'),\n default: '#184B87',\n lighten: '#2471CC',\n },\n\n green: {\n mute: setAlpha(0.1, '#00D64A'),\n dim: setAlpha(0.4, '#00D64A'),\n default: '#00D64A',\n lighten: lighten(0.1, '#00D64A'),\n },\n\n red: {\n mute: setAlpha(0.1, '#f57a7a'),\n dim: setAlpha(0.4, '#f57a7a'),\n default: '#EC5B5B',\n lighten: '#f57a7a',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F2D264'),\n dim: setAlpha(0.4, '#F2D264'),\n default: '#F2D264',\n lighten: lighten(0.1, '#F2D264'),\n },\n\n blue: {\n mute: setAlpha(0.1, '#4AA4FF'),\n dim: setAlpha(0.4, '#4AA4FF'),\n default: '#4AA4FF',\n lighten: lighten(0.1, '#4AA4FF'),\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkWintermute2Theme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkWM2',\n\n // fontFamily: \"'Manrope', sans-serif\",\n // fontUrl:\n // 'https://fonts.googleapis.com/css2?family=Manrope:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundBody: colors.gray['000'],\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: 'transparent',\n backgroundContent: colors.gray.main,\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n\n ...getInputStylesAppliedToSelect(DarkTheme),\n backgroundInput: colors.gray['020'],\n backgroundSelect: colors.gray['020'],\n backgroundSelectHover: colors.gray['040'],\n backgroundSelectFocus: colors.gray['030'],\n backgroundSelectInvalid: colors.gray['020'],\n backgroundSelectDisabled: colors.gray['010'],\n backgroundSelectReadOnly: colors.gray['010'],\n\n backgroundNegativeButtonActive: colors.red.default,\n backgroundNegativeButtonFocus: colors.red.default,\n\n backgroundPositiveButtonActive: colors.green.default,\n backgroundPositiveButtonFocus: colors.green.default,\n\n backgroundPrimaryButtonActive: colors.primary.default,\n backgroundPrimaryButtonFocus: colors.primary.default,\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.black.default),\n\n backgroundToggle: colors.gray['000'],\n backgroundDefaultButtonHover: setAlpha(0.2, colors.gray['100']),\n backgroundDefaultButtonFocus: setAlpha(0.2, colors.gray['100']),\n backgroundDefaultButtonActive: setAlpha(0.1, colors.gray['100']),\n backgroundDefaultButtonDisabled: setAlpha(0.05, colors.gray['100']),\n\n colorOrderStatusFilled: colors.green.default,\n colorOrderStatusRejected: colors.yellow.default,\n\n backgroundVolumeLadderBidSpread: setAlpha(0.6, colors.blue.lighten),\n backgroundVolumeLadderOfferSpread: setAlpha(0.6, colors.blue.lighten),\n\n colorStackedNumberHighlight: colors.gray['100'],\n colorStackedNumberNoHighlight: colors.gray['100'],\n\n chamferMultiplier: 1,\n borderRadiusContent: 12,\n buttonGroupSharedBackground: darken(0.01, colors.gray['000']),\n backgroundMutedButton: 'transparent',\n colorTextMutedButton: colors.gray['090'],\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, darkColors, mapDarkTheme } from './DarkTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#1b1b1b',\n\n '000': '#161616',\n '010': hsla(200, 0, 0.11, 1),\n '020': hsla(200, 0, 0.14, 1),\n '030': hsla(200, 0, 0.16, 1),\n '040': hsla(200, 0, 0.2, 1),\n '050': '#353535',\n '060': '#4E4E4E',\n '070': '#A1A1A1',\n '080': '#A1A1A1',\n '090': '#D1D1D1',\n '100': '#F3F3F3',\n },\n\n primary: {\n mute: setAlpha(0.1, '#A3EC26'),\n dim: setAlpha(0.4, '#A3EC26'),\n default: '#92D422',\n lighten: '#A3EC26',\n },\n\n green: {\n mute: setAlpha(0.1, '#26c964'),\n dim: setAlpha(0.4, '#26c964'),\n default: '#08970E',\n lighten: '#26c964',\n },\n\n red: {\n mute: setAlpha(0.1, '#FF5757'),\n dim: setAlpha(0.4, '#FF5757'),\n default: '#C7232A',\n lighten: '#FF5757',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#268ec9'),\n dim: setAlpha(0.4, '#268ec9'),\n default: '#227fb4',\n lighten: '#268ec9',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkWintermuteTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkWM',\n\n // fontFamily: \"'Manrope', sans-serif\",\n // fontUrl:\n // 'https://fonts.googleapis.com/css2?family=Manrope:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundBody: colors.gray['000'],\n\n backgroundHeader: setAlpha(0.75, colors.gray.main),\n borderColorHeader: 'transparent',\n\n backgroundContent: setAlpha(0.75, colors.gray.main),\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n\n backgroundInput: colors.gray['000'],\n\n ...getInputStylesAppliedToSelect(DarkTheme),\n backgroundSelect: colors.gray['000'],\n backgroundSelectHover: colors.gray['000'],\n backgroundSelectFocus: colors.gray['000'],\n backgroundSelectInvalid: colors.gray['000'],\n backgroundSelectDisabled: colors.gray['000'],\n backgroundSelectReadOnly: colors.gray['000'],\n\n backgroundPositiveButton: setAlpha(0.6, colors.green.lighten),\n backgroundPositiveButtonHover: setAlpha(0.7, colors.green.lighten),\n backgroundPositiveButtonFocus: setAlpha(0.7, colors.green.lighten),\n backgroundPositiveButtonActive: setAlpha(0.6, colors.green.default),\n backgroundPositiveButtonDisabled: setAlpha(0.3, colors.green.default),\n\n backgroundNegativeButton: setAlpha(0.5, colors.red.lighten),\n backgroundNegativeButtonHover: setAlpha(0.6, colors.red.lighten),\n backgroundNegativeButtonFocus: setAlpha(0.6, colors.red.lighten),\n backgroundNegativeButtonActive: setAlpha(0.5, colors.red.default),\n backgroundNegativeButtonDisabled: setAlpha(0.25, colors.red.default),\n\n backgroundDefaultButton: 'transparent',\n backgroundDefaultButtonHover: 'transparent',\n backgroundDefaultButtonFocus: 'transparent',\n backgroundDefaultButtonActive: 'transparent',\n backgroundDefaultButtonDisabled: 'transparent',\n\n backgroundPriorityButton: setAlpha(0.08, colors.gray['100']),\n backgroundPriorityButtonHover: setAlpha(0.12, colors.gray['100']),\n backgroundPriorityButtonFocus: setAlpha(0.12, colors.gray['100']),\n backgroundPriorityButtonActive: setAlpha(0.08, colors.gray['100']),\n backgroundPriorityButtonDisabled: setAlpha(0.04, colors.gray['100']),\n\n borderWidthButton: 1,\n borderColorDefaultButton: colors.gray['060'],\n borderColorDefaultButtonHover: colors.gray['060'],\n borderColorDefaultButtonFocus: colors.gray['060'],\n borderColorDefaultButtonActive: colors.gray['060'],\n borderColorDefaultButtonDisabled: colors.gray['060'],\n\n colorTextPrimaryButton: colors.black.default,\n colorTextPrimaryButtonHover: colors.black.default,\n colorTextPrimaryButtonFocus: colors.black.default,\n colorTextPrimaryButtonActive: colors.black.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.black.default),\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.black.default),\n\n colorTextNegativeButton: colors.black.default,\n colorTextNegativeButtonHover: colors.black.default,\n colorTextNegativeButtonFocus: colors.black.default,\n colorTextNegativeButtonActive: colors.black.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.black.default),\n\n backgroundVolumeLadderBidSpread: setAlpha(0.6, colors.blue.lighten),\n backgroundVolumeLadderOfferSpread: setAlpha(0.6, colors.blue.lighten),\n\n backgroundToggle: colors.gray['000'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nconst colors: Colors = {\n black: darkColors.black,\n\n white: darkColors.white,\n\n gray: darkColors.gray,\n\n primary: {\n mute: setAlpha(0.1, '#00818f'),\n dim: setAlpha(0.4, '#00818f'),\n default: '#00818f',\n lighten: '#009dad',\n },\n\n green: darkColors.green,\n red: darkColors.red,\n\n yellow: {\n mute: setAlpha(0.1, '#F2D264'),\n dim: setAlpha(0.4, '#F2D264'),\n default: '#F2D264',\n lighten: '#CCAC3E',\n },\n\n blue: {\n mute: setAlpha(0.1, '#458CC1'),\n dim: setAlpha(0.4, '#458CC1'),\n default: '#458CC1',\n lighten: '#53AFF8',\n },\n\n orange: darkColors.orange,\n purple: darkColors.purple,\n};\n\nexport const DarkXeroFTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkXF',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\n\nimport { darkColors, mapDarkTheme } from './DarkTheme';\n\nexport const colors: Colors = {\n black: {\n default: '#000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#fff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n '000': hsla(15, 0.09, 0.09, 1),\n '010': hsla(24, 0.09, 0.1, 1),\n main: hsla(15, 0.09, 0.17, 1),\n '020': hsla(20, 0.09, 0.19, 1),\n\n '030': hsla(20, 0.09, 0.21, 1),\n '040': hsla(20, 0.09, 0.23, 1),\n '050': hsla(20, 0.09, 0.25, 1),\n '060': '#4C423F',\n '070': '#695C57',\n '080': '#938F87',\n '090': '#E3E2E0',\n '100': '#F1F1F0',\n },\n\n primary: {\n mute: setAlpha(0.1, '#CDA973'),\n dim: setAlpha(0.4, '#CDA973'),\n default: '#CDA973',\n lighten: '#d2b281',\n },\n\n green: {\n mute: hsla(75, 1, 0.7, 0.1),\n dim: hsla(75, 1, 0.7, 0.4),\n default: '#D8FF64',\n lighten: '#A6DE00',\n },\n\n red: {\n mute: hsla(6, 1, 0.66, 0.1),\n dim: hsla(6, 1, 0.66, 0.4),\n default: '#FF3620',\n lighten: '#FF6250',\n },\n\n yellow: {\n mute: hsla(28, 0.92, 0.53, 0.1),\n dim: hsla(28, 0.92, 0.53, 0.4),\n default: hsla(28, 0.92, 0.53, 1),\n lighten: hsla(28, 0.92, 0.65, 1),\n },\n\n blue: {\n mute: setAlpha(0.1, '#CDA973'),\n dim: setAlpha(0.4, '#CDA973'),\n default: '#CDA973',\n lighten: '#d2b281',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: darkColors.purple,\n};\n\nexport const DarkZerocapTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'DarkZC',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Poppins', sans-serif\",\n\n colorModeCurrencyIcon: 'colorful',\n\n backgroundBody: 'linear-gradient(225deg, #3E0000 0%, #5B1418 33.35%, #B35540 66.49%, #F68646 100%)',\n backgroundLayoutWrapper: setAlpha(0.3, '#200809'),\n spacingLayoutWrapper: 16,\n\n backgroundDropdownResults: colors.gray.main,\n backgroundDropdownInput: colors.gray.main,\n\n backgroundContent: setAlpha(0.4, '#200809'),\n borderColorContent: 'transparent',\n backgroundHeader: setAlpha(0.4, '#200809'),\n borderColorHeader: 'transparent',\n backgroundSidebar: setAlpha(0.8, '#200809'),\n backdropFilterSidebar: 'blur(5px)',\n borderColorSidebar: 'transparent',\n backgroundSidebarItemActive: 'rgba(0, 0, 0, 0.75)',\n backgroundSidebarItemHover: 'rgba(0, 0, 0, 0.95)',\n\n backgroundContentHover: 'rgba(0, 0, 0, 0.25)',\n\n borderColorTabSelected: colors.primary.lighten,\n\n backgroundToggleChecked: colors.primary.lighten,\n\n backgroundCheckboxChecked: colors.primary.lighten,\n backgroundRadiobuttonChecked: colors.primary.lighten,\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n borderColorChartAxis: 'rgba(0, 0, 0, 0.25)',\n borderColorChartGridLine: 'rgba(0, 0, 0, 0.25)',\n borderColorChartCrosshair: 'rgba(0, 0, 0, 0.5)',\n\n backgroundInput: 'rgba(0, 0, 0, 0.2)',\n borderColorInput: 'rgba(255, 255, 255, 0.2)',\n borderColorInputFocus: colors.primary.lighten,\n\n borderRadiusButtonDefault: 16,\n\n backgroundPopover: colors.gray.main,\n\n borderColorDivider: 'rgba(0, 0, 0, 0.25)',\n borderRadiusContent: 4,\n borderRadiusLayoutWrapper: 4,\n\n backgroundBlotterTableRow: 'transparent',\n backgroundBlotterTableRowHover: 'rgba(0, 0, 0, 0.25)',\n borderColorBlotterTable: 'rgba(0, 0, 0, 0.25)',\n\n borderColorTab: 'rgba(0, 0, 0, 0.25)',\n\n spacingLayout: 16,\n\n colorTextPositiveButton: colors.gray.main,\n colorTextPositiveButtonHover: colors.gray.main,\n colorTextPositiveButtonFocus: colors.gray.main,\n colorTextPositiveButtonActive: colors.gray.main,\n colorTextPositiveButtonDisabled: colors.gray.main,\n\n colorTextNegativeButton: colors.gray.main,\n colorTextNegativeButtonHover: colors.gray.main,\n colorTextNegativeButtonFocus: colors.gray.main,\n colorTextNegativeButtonActive: colors.gray.main,\n colorTextNegativeButtonDisabled: colors.gray.main,\n\n colorTextPrimaryButton: colors.gray.main,\n colorTextPrimaryButtonHover: colors.gray.main,\n colorTextPrimaryButtonFocus: colors.gray.main,\n colorTextPrimaryButtonActive: colors.gray.main,\n colorTextPrimaryButtonDisabled: colors.gray.main,\n\n backgroundPrimaryButton: colors.primary.lighten,\n backgroundPrimaryButtonHover: colors.primary.default,\n backgroundPrimaryButtonFocus: colors.primary.lighten,\n backgroundPrimaryButtonActive: colors.primary.lighten,\n\n backgroundNegativeButton: colors.red.lighten,\n backgroundNegativeButtonHover: colors.red.default,\n backgroundNegativeButtonFocus: colors.red.lighten,\n backgroundNegativeButtonActive: colors.red.lighten,\n\n backgroundPositiveButton: colors.green.default,\n backgroundPositiveButtonHover: colors.green.lighten,\n backgroundPositiveButtonFocus: colors.green.default,\n backgroundPositiveButtonActive: colors.green.default,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: hsla(210, 0, 1.0, 1),\n '000': hsla(210, 0, 0.92, 1),\n '010': '#f5f5f5',\n '020': hsla(210, 0, 0.89, 1),\n '030': hsla(220, 0, 0.86, 1),\n '040': hsla(220, 0, 0.83, 1),\n '050': hsla(220, 0, 0.79, 1),\n '060': hsla(200, 0, 0.74, 1),\n '070': hsla(200, 0, 0.69, 1),\n '080': hsla(200, 0, 0.63, 1),\n '090': hsla(210, 0, 0.44, 1),\n '100': hsla(0, 0, 0.1, 1),\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n default: '#6610f2',\n lighten: '#6610f2',\n dim: setAlpha(0.4, '#6610f2'),\n mute: setAlpha(0.1, '#6610f2'),\n },\n\n green: {\n default: '#21db99',\n lighten: '#21db99',\n dim: 'rgba(51, 126, 90, 0.4)',\n mute: 'rgba(51, 126, 90, 0.1)',\n },\n\n red: {\n default: '#fa4877',\n lighten: '#fa4877',\n dim: 'rgba(146, 46, 67, 0.4)',\n mute: 'rgba(146, 46, 67, 0.1)',\n },\n\n yellow: {\n default: '#ffa519',\n lighten: '#ffa519',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n mute: 'rgba(69, 140, 193, 0.1)',\n dim: 'rgba(69, 140, 193, 0.4)',\n default: '#6678fa',\n lighten: '#6678fa',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightAbraTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightAB',\n\n fontFamily: \"'Nunito', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n borderRadiusDefault: 8,\n borderRadiusContent: 8,\n spacingLayout: 8,\n\n backgroundBody: colors.gray['010'],\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n backgroundSelect: colors.gray['030'],\n backgroundSelectHover: colors.gray['040'],\n backgroundSelectFocus: colors.gray['040'],\n\n backgroundInput: '#f6f7f8',\n\n backgroundToggleSwitch: setAlpha(0.12, colors.gray[100]),\n\n borderColorInput: '#f6f7f8',\n borderColorInputHover: '#f6f7f8',\n borderColorInputFocus: '#ffc107',\n\n borderWidthButton: 1,\n\n borderColorPriorityButton: colors.gray['060'],\n borderColorPriorityButtonHover: colors.gray['070'],\n borderColorPriorityButtonFocus: colors.gray['070'],\n borderColorPriorityButtonActive: colors.gray['060'],\n\n borderColorDefaultButton: colors.gray['030'],\n borderColorDefaultButtonHover: colors.gray['040'],\n borderColorDefaultButtonFocus: colors.gray['040'],\n borderColorDefaultButtonActive: colors.gray['030'],\n\n colorTextVolumeLadderSpread: colors.gray['080'],\n});\n","import { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: hsla(210, 0, 1.0, 1),\n '000': hsla(204, 0, 0.92, 1),\n '010': hsla(204, 0, 0.96, 1),\n '020': hsla(204, 0, 0.95, 1),\n '030': hsla(209, 0, 0.93, 1),\n '040': hsla(209, 0, 0.91, 1),\n '050': hsla(209, 0, 0.88, 1),\n '060': hsla(210, 0, 0.74, 1),\n '070': hsla(209, 0, 0.69, 1),\n '080': hsl(209, 0, 0.45),\n '090': hsl(209, 0, 0.25),\n '100': hsl(211, 0, 0.08),\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: setAlpha(0.1, '#5186F6'),\n dim: setAlpha(0.4, '#5186F6'),\n default: '#4373d9',\n lighten: '#5186F6',\n },\n\n green: {\n mute: setAlpha(0.1, '#3ADCCA'),\n dim: setAlpha(0.4, '#3ADCCA'),\n default: '#2ab5a6',\n lighten: '#3adcca',\n },\n\n red: {\n mute: setAlpha(0.1, '#dc3a4c'),\n dim: setAlpha(0.4, '#dc3a4c'),\n default: '#b52a39',\n lighten: '#dc3a4c',\n },\n\n yellow: {\n default: '#CCAC3E',\n lighten: '#F2D264',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n default: '#458CC1',\n lighten: '#53AFF8',\n dim: 'rgba(69, 140, 193, 0.4)',\n mute: 'rgba(69, 140, 193, 0.1)',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightAnchorageTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightAD',\n\n fontFamily: \"'Akkurat Pro', sans-serif\",\n fontFace: `@font-face {\n font-family: 'Akkurat Pro';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/customers/AkkuratPro-Regular.woff2) format('woff2');\n }`,\n borderRadiusDefault: 5,\n borderRadiusSmall: 3,\n borderRadiusTiny: 3,\n\n backgroundInput: 'transparent',\n\n colorTextVolumeLadderSpread: colors.gray['090'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n primary: {\n lighten: '#3e5eb2',\n default: '#314A8C',\n dim: 'rgba(49,74,140,0.4)',\n mute: 'rgba(49,74,140,0.1)',\n },\n gray: {\n '100': '#1d1d28',\n '000': '#e6e6e7',\n '010': '#f2f2f3',\n main: '#ffffff',\n '020': '#fafafa',\n '030': '#ebebeb',\n '040': '#dbdbdd',\n '050': '#d2d2d4',\n '060': '#c8c8ca',\n '070': '#bbbbbe',\n '080': '#9b9b9f',\n '090': '#696970',\n },\n green: {\n lighten: '#78bf9d',\n default: '#56ae84',\n dim: 'rgba(86,174,132,0.4)',\n mute: 'rgba(86,174,132,0.1)',\n },\n red: {\n lighten: '#db5f7a',\n default: '#d23557',\n dim: 'rgba(210,53,87,0.4)',\n mute: 'rgba(210,53,87,0.1)',\n },\n yellow: {\n lighten: '#d7bd66',\n default: '#ccac3e',\n dim: 'rgba(204,172,62,0.4)',\n mute: 'rgba(204,172,62,0.1)',\n },\n orange: {\n lighten: '#ff6511',\n default: '#DD4E00',\n dim: 'rgba(221,78,0,0.4)',\n mute: 'rgba(221,78,0,0.1)',\n },\n blue: {\n lighten: '#5fa2e7',\n default: '#3388E0',\n dim: 'rgba(51,136,224,0.4)',\n mute: 'rgba(51,136,224,0.1)',\n },\n purple: {\n lighten: '#9f73d7',\n default: '#844BCC',\n },\n white: {\n default: '#ffffff',\n dim: 'rgba(255,255,255,0.4)',\n mute: 'rgba(255,255,255,0.1)',\n },\n black: {\n default: '#000000',\n dim: 'rgba(0,0,0,0.4)',\n mute: 'rgba(0,0,0,0.1)',\n },\n};\n\nexport const LightArchaxTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightAx',\n\n colorTextDefaultButton: colors.black.default,\n colorTextDefaultButtonHover: colors.black.default,\n colorTextDefaultButtonFocus: colors.black.default,\n colorTextDefaultButtonActive: colors.black.default,\n colorTextDefaultButtonDisabled: setAlpha(0.5, colors.black.default),\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.black.default),\n colorTextNegativeButton: colors.white.default,\n colorTextNegativeButtonHover: colors.white.default,\n colorTextNegativeButtonFocus: colors.white.default,\n colorTextNegativeButtonActive: colors.white.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.white.default),\n colorTextWarningButton: colors.black.default,\n colorTextWarningButtonHover: colors.black.default,\n colorTextWarningButtonFocus: colors.black.default,\n colorTextWarningButtonActive: colors.black.default,\n colorTextWarningButtonDisabled: setAlpha(0.5, colors.black.default),\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonFocus: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.white.default),\n});\n","import { cloneDeep, merge } from 'lodash';\nimport { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { LightTheme, mapLightTheme } from './LightTheme';\n\nconst customcolors: Partial = {\n gray: {\n main: hsla(210, 1.0, 1.0, 1),\n '000': hsla(210, 0.1, 0.92, 1),\n '010': hsla(210, 0.2, 0.96, 1),\n '020': hsla(210, 0.07, 0.89, 1),\n '030': hsla(220, 0.04, 0.86, 1),\n '040': hsla(220, 0.04, 0.83, 1),\n '050': hsla(220, 0.03, 0.79, 1),\n '060': hsla(200, 0.02, 0.74, 1),\n '070': hsla(200, 0.02, 0.69, 1),\n '080': hsla(200, 0.02, 0.63, 1),\n '090': hsla(210, 0.01, 0.44, 1),\n '100': '#000D22',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: 'rgba(0, 96, 245, 0.1)',\n dim: 'rgba(0, 96, 245, 0.4)',\n default: '#0060f5',\n lighten: '#327ff7',\n },\n\n green: {\n mute: 'rgba(51, 132, 0, 0.1)',\n dim: 'rgba(51, 132, 0, 0.4)',\n default: '#12b76a',\n lighten: '#12b76a',\n },\n\n red: {\n mute: 'rgba(196, 0, 76, 0.1)',\n dim: 'rgba(196, 0, 76, 0.4)',\n default: '#f04438',\n lighten: '#f04438',\n },\n\n yellow: {\n default: '#F79009',\n lighten: '#FEF0C7',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n mute: 'rgba(0, 96, 245, 0.1)',\n dim: 'rgba(0, 96, 245, 0.4)',\n default: '#0060f5',\n lighten: '#327ff7',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n};\nconst colors: Colors = merge(cloneDeep(LightTheme.colors), customcolors);\n\nexport const LightBCBTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightBCB',\n\n fontFamily: \"'Montserrat', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n backgroundBody: colors.gray['010'],\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n colorTextVolumeLadderSpread: colors.gray['080'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n ...lightColors,\n\n primary: {\n default: '#2015cc',\n lighten: '#554beb',\n dim: 'rgba(32, 21, 204, 0.4)',\n mute: 'rgba(32, 21, 204, 0.1)',\n },\n};\n\nexport const LightBinalokaTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'Light',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n primary: {\n mute: 'rgba(49, 74, 140, 0.1)',\n dim: 'rgba(49, 74, 140, 0.4)',\n default: '#314A8C',\n lighten: '#4B64A6',\n },\n\n black: {\n default: '#282828',\n dim: 'rgba(40, 40, 40, 0.4)',\n mute: 'rgba(40, 40, 40, 0.1)',\n },\n\n white: {\n default: '#eaeaea',\n dim: 'rgba(234, 234, 234, 0.4)',\n mute: 'rgba(234, 234, 234, 0.05)',\n },\n\n green: {\n default: '#2CEC9A',\n mute: 'rgba(44, 236, 154, 0.1)',\n dim: 'rgba(44, 236, 154, 0.4)',\n lighten: '#56f0ae',\n },\n\n red: {\n default: '#FF7171',\n mute: 'rgb(255, 113, 113, 0.1)',\n dim: 'rgb(255, 113, 113, 0.4)',\n lighten: '#ff8d8d',\n },\n\n blue: {\n default: '#2B6FD5',\n mute: 'rgb(43, 111, 213, 0.1)',\n dim: 'rgb(43, 111, 213, 0.4)',\n lighten: '#558cdd',\n },\n orange: {\n default: '#FF9426',\n mute: 'rgb(255, 148, 38, 0.1)',\n dim: 'rgb(255, 148, 38, 0.4)',\n lighten: '#ffa951',\n },\n\n yellow: {\n default: '#FF9426',\n mute: 'rgb(255, 148, 38, 0.1)',\n dim: 'rgb(255, 148, 38, 0.4)',\n lighten: '#ffa951',\n },\n\n gray: lightColors.gray,\n purple: lightColors.purple,\n};\n\nexport const LightBitpandaTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightBP',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n backgroundHeader: colors.gray.main,\n borderColorHeader: 'transparent',\n\n backgroundSidebar: colors.gray.main,\n colorOrderStatusFilled: '#16764D',\n\n backgroundVolumeLadderBidSpread: colors.green.lighten,\n backgroundVolumeLadderOfferSpread: colors.green.lighten,\n\n backgroundChartUpColor: colors.green.default,\n borderColorChartUpColor: colors.green.default,\n backgroundChartDownColor: colors.red.default,\n borderColorChartDownColor: colors.red.default,\n\n colorTextPrimary: colors.black.default,\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonFocus: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: colors.white.default,\n\n colorTextPositive: '#16764D',\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: colors.black.default,\n\n colorTextNegative: '#FF6060',\n colorTextNegativeButton: colors.black.default,\n colorTextNegativeButtonHover: colors.black.default,\n colorTextNegativeButtonFocus: colors.black.default,\n colorTextNegativeButtonActive: colors.black.default,\n colorTextNegativeButtonDisabled: colors.black.default,\n\n backgroundPrimaryButton: colors.black.default,\n backgroundPrimaryButtonHover: setAlpha(0.9, colors.black.default),\n backgroundPrimaryButtonActive: setAlpha(0.9, colors.black.default),\n backgroundPrimaryButtonFocus: setAlpha(0.8, colors.black.default),\n backgroundPrimaryButtonDisabled: setAlpha(0.6, colors.black.default),\n\n colorTextWarning: '#995917',\n colorTextWarningButton: colors.black.default,\n colorTextWarningButtonHover: colors.black.default,\n colorTextWarningButtonFocus: colors.black.default,\n colorTextWarningButtonActive: colors.black.default,\n colorTextWarningButtonDisabled: colors.black.default,\n});\n","import { cloneDeep, merge } from 'lodash';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { LightTheme, mapLightTheme } from './LightTheme';\n\nconst customcolors: Partial = {\n primary: {\n mute: setAlpha(0.1, '#1C5184'),\n dim: setAlpha(0.4, '#1C5184'),\n default: '#1C5184',\n lighten: '#2365A5',\n },\n\n green: {\n mute: setAlpha(0.1, '#1A8440'),\n dim: setAlpha(0.4, '#1A8440'),\n default: '#1A8440',\n lighten: '#29CE64',\n },\n red: {\n mute: setAlpha(0.1, '#C83636'),\n dim: setAlpha(0.4, '#C83636'),\n default: '#C83636',\n lighten: '#FA4444',\n },\n blue: {\n mute: setAlpha(0.1, '#2365A5'),\n dim: setAlpha(0.4, '#2365A5'),\n default: '#2365A5',\n lighten: '#3085D8',\n },\n yellow: {\n mute: setAlpha(0.1, '#CC8907'),\n dim: setAlpha(0.4, '#CC8907'),\n default: '#CC8907',\n lighten: '#FFAB09',\n },\n};\n\nconst colors: Colors = merge(cloneDeep(LightTheme.colors), customcolors);\n\nexport const LightCFTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightCF',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: '#FFFFFF',\n '000': '#F1F1F1',\n '010': '#F8F8F8',\n '020': '#ececec',\n '030': hsla(240, 0.12, 0.91, 1),\n '040': hsla(240, 0.06, 0.85, 1),\n '050': hsla(240, 0.06, 0.81, 1),\n '060': hsla(240, 0.06, 0.77, 1),\n '070': hsla(240, 0.06, 0.73, 1),\n '080': '#193843',\n '090': '#031B23',\n '100': '#031B23',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: setAlpha(0.1, '#29508B'),\n dim: setAlpha(0.4, '#29508B'),\n default: '#29508B',\n lighten: '#3e6196',\n },\n\n green: {\n mute: setAlpha(0.1, '#5ab548'),\n dim: setAlpha(0.4, '#5ab548'),\n default: '#5ab548',\n lighten: '#64d864',\n },\n\n red: {\n mute: setAlpha(0.1, '#ca3939'),\n dim: setAlpha(0.4, '#ca3939'),\n default: '#b53333',\n lighten: '#ca3939',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightEtanaTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightEC',\n\n fontFamily: \"'Poppins', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundInput: colors.gray.main,\n\n backgroundVolumeLadderBidSpread: colors.primary.default,\n backgroundVolumeLadderOfferSpread: colors.primary.default,\n});\n","import type { DefaultTheme } from 'styled-components';\nimport { LightGriffoTheme } from './LightGriffoTheme';\n\n/** @deprecated */\nexport const LightGriffoDevTheme: DefaultTheme = {\n ...LightGriffoTheme,\n name: 'LightGODev',\n spacingLayout: 16,\n boxShadowContent: '0 2px 16px rgba(0, 0, 0, 0.05)',\n boxShadowHeader: '0 2px 16px rgba(0, 0, 0, 0.1)',\n};\n","import { cloneDeep, merge } from 'lodash';\nimport { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { DarkTheme, mapDarkTheme } from './DarkTheme';\nimport { lightColors } from './LightTheme';\n\nconst customcolors: Partial = {\n gray: {\n main: '#1F2128',\n\n '000': '#121317',\n '010': hsla(231, 0.11, 0.11, 1),\n '020': hsla(231, 0.11, 0.14, 1),\n '030': hsla(231, 0.11, 0.16, 1),\n '040': hsla(231, 0.11, 0.2, 1),\n '050': '#363843',\n '060': hsla(231, 0.11, 0.28, 1),\n '070': hsla(231, 0.11, 0.36, 1),\n '080': hsla(231, 0.05, 0.57, 1),\n '090': hsla(231, 0.05, 0.75, 1),\n '100': hsla(231, 0.05, 0.95, 1),\n },\n\n primary: {\n mute: hsla(217, 0.64, 0.6, 0.1),\n dim: hsla(217, 0.64, 0.6, 0.4),\n default: hsl(217, 0.64, 0.47),\n lighten: hsl(217, 0.64, 0.6),\n },\n\n green: {\n mute: hsl(101, 0.52, 0.22),\n dim: hsl(101, 0.52, 0.31),\n default: hsl(101, 0.73, 0.36),\n lighten: hsl(101, 0.73, 0.42),\n },\n\n red: {\n mute: hsl(352, 0.59, 0.21),\n dim: hsl(352, 1, 0.29),\n default: hsl(352, 0.59, 0.34),\n lighten: hsl(352, 0.59, 0.45),\n },\n\n yellow: {\n ...DarkTheme.colors.yellow,\n default: hsl(32, 0.92, 0.52),\n lighten: hsl(32, 0.92, 0.56),\n },\n\n blue: {\n mute: hsla(217, 0.64, 0.6, 0.1),\n dim: hsla(217, 0.64, 0.6, 0.4),\n default: hsl(217, 0.64, 0.47),\n lighten: hsl(217, 0.64, 0.6),\n },\n\n purple: lightColors.purple,\n};\nconst colors: Colors = merge(cloneDeep(DarkTheme.colors), customcolors);\n\nexport const LightHextrustSidebarTheme: DefaultTheme = mapDarkTheme(colors, {\n name: 'LightHTSidebar',\n\n fontFamily: \"'Poppins', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n borderRadiusDefault: 4,\n borderRadiusSmall: 2,\n borderRadiusTiny: 1,\n borderRadiusContent: 7,\n\n spacingLayout: DarkTheme.baseSize * 0.5,\n\n borderColorSidebar: '#00357A',\n backgroundSidebar: '#00357A',\n backgroundSidebarItemActive: setAlpha(0.15, colors.white.default),\n backgroundSidebarItemHover: setAlpha(0.2, colors.white.default),\n\n backgroundHeader: '#001A42',\n borderColorHeader: '#001A42',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { LightTheme, lightColors, mapLightTheme } from './LightTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n gray: {\n main: hsla(210, 1.0, 1.0, 1),\n '000': hsla(210, 0.1, 0.92, 1),\n '010': setAlpha(0.1, '#8d9ea5'),\n '020': setAlpha(0.11, '#8d9ea5'),\n '030': setAlpha(0.14, '#8d9ea5'),\n '040': setAlpha(0.17, '#8d9ea5'),\n '050': setAlpha(0.21, '#8d9ea5'),\n '060': setAlpha(0.26, '#8d9ea5'),\n '070': setAlpha(0.31, '#8d9ea5'),\n '080': setAlpha(0.37, '#8d9ea5'),\n '090': '#8d9ea5',\n '100': '#0f151e',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: 'rgba(15, 166, 223, 0.1)',\n dim: 'rgba(15, 166, 223, 0.4)',\n default: '#0fa6df',\n lighten: '#73c5e5',\n },\n\n green: {\n mute: 'rgba(25, 165, 89, 0.1)',\n dim: 'rgba(25, 165, 89, 0.4)',\n default: '#19a559',\n lighten: '#69b790',\n },\n\n red: {\n default: '#922E43',\n lighten: '#D23557',\n dim: 'rgba(146, 46, 67, 0.4)',\n mute: 'rgba(146, 46, 67, 0.1)',\n },\n\n yellow: {\n default: '#CCAC3E',\n lighten: '#F2D264',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n default: '#458CC1',\n lighten: '#53AFF8',\n dim: 'rgba(69, 140, 193, 0.4)',\n mute: 'rgba(69, 140, 193, 0.1)',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightISPTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightISP',\n\n backgroundBody: colors.gray['010'],\n\n backgroundDefaultButton: setAlpha(0.52, '#8d9ea5'),\n backgroundDefaultButtonHover: setAlpha(0.42, '#8d9ea5'),\n backgroundDefaultButtonFocus: setAlpha(0.42, '#8d9ea5'),\n backgroundDefaultButtonActive: setAlpha(0.52, '#8d9ea5'),\n\n backgroundPriorityButton: setAlpha(0.52, '#8d9ea5'),\n backgroundPriorityButtonHover: setAlpha(0.42, '#8d9ea5'),\n backgroundPriorityButtonFocus: setAlpha(0.42, '#8d9ea5'),\n backgroundPriorityButtonActive: setAlpha(0.52, '#8d9ea5'),\n\n ...getInputStylesAppliedToSelect(LightTheme),\n\n colorTextDefault: '#8d9ea5',\n\n backgroundVolumeLadderBidSpread: setAlpha(0.6, colors.primary.default),\n backgroundVolumeLadderOfferSpread: setAlpha(0.6, colors.primary.default),\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n black: {\n default: '#121212',\n dim: 'rgba(18, 18, 18, 0.4)',\n mute: 'rgba(18, 18, 18, 0.1)',\n },\n\n white: {\n default: '#ffffff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: '#999999',\n\n '000': '#ababab',\n '010': '#9a9a9a',\n '020': '#898989',\n '030': '#787878',\n '040': '#676767',\n '050': '#565656',\n '060': '#454545',\n '070': '#343434',\n '080': '#232323',\n '090': '#121212',\n '100': '#000000',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7055F8'),\n dim: setAlpha(0.4, '#7055F8'),\n default: '#7055F8',\n lighten: '#8F79FF',\n },\n\n green: {\n mute: setAlpha(0.1, '#477722'),\n dim: setAlpha(0.4, '#477722'),\n default: '#477722',\n lighten: '#5AA61E',\n },\n\n red: {\n mute: setAlpha(0.1, '#8D483C'),\n dim: setAlpha(0.4, '#8D483C'),\n default: '#8D483C',\n lighten: '#CA5A47',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#D6C043'),\n dim: setAlpha(0.4, '#D6C043'),\n default: '#D6C043',\n lighten: '#FFE646',\n },\n\n blue: {\n mute: setAlpha(0.1, '#2F5F9C'),\n dim: setAlpha(0.4, '#2F5F9C'),\n default: '#2F5F9C',\n lighten: '#43AAD6',\n },\n\n orange: {\n mute: setAlpha(0.1, '#D24500'),\n dim: setAlpha(0.4, '#D24500'),\n default: '#D24500',\n lighten: '#FF6900',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightJanuarTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightJR',\n\n backgroundBody: colors.gray.main,\n backgroundContent: colors.white.default,\n boxShadowContent: colors.gray['000'],\n borderColorContent: colors.gray['000'],\n backgroundLayoutWrapper: colors.gray['000'],\n\n backgroundHeader: colors.white.default,\n\n backgroundSidebar: colors.white.default,\n colorTextSidebarItemActive: colors.white.default,\n backgroundSidebarItemHover: colors.black.mute,\n\n backgroundChart: colors.white.default,\n backgroundBlotterTableRow: colors.white.default,\n\n colorCurrencyIcon: colors.white.default,\n colorModeCurrencyIcon: 'monochrome',\n\n backgroundDropdownResults: colors.white.default,\n backgroundDropdownGroupHeader: colors.white.default,\n backgroundDropdownHovered: colors.black.mute,\n backgroundDropdownSelected: colors.black.mute,\n boxShadowDropdown: '0px 8px 32px rgba(0, 0, 0, 0.2)',\n\n backgroundModal: colors.white.default,\n\n backgroundInput: colors.black.mute,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: '#FFFFFF',\n '000': '#F1F1F1',\n '010': '#F8F8F8',\n '020': '#ececec',\n '030': hsla(240, 0.12, 0.91, 1),\n '040': hsla(240, 0.06, 0.85, 1),\n '050': hsla(240, 0.06, 0.81, 1),\n '060': hsla(240, 0.06, 0.77, 1),\n '070': hsla(240, 0.06, 0.73, 1),\n '080': '#193843',\n '090': '#031B23',\n '100': '#031B23',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: setAlpha(0.1, '#0557FF'),\n dim: setAlpha(0.4, '#0557FF'),\n default: '#0557FF',\n lighten: '#4393F1',\n },\n\n green: {\n mute: setAlpha(0.1, '#5ec169'),\n dim: setAlpha(0.4, '#5ec169'),\n default: '#47a251',\n lighten: '#5ec169',\n },\n\n red: {\n mute: setAlpha(0.1, '#bf2230'),\n dim: setAlpha(0.4, '#bf2230'),\n default: '#bf2230',\n lighten: '#d42837',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightKeyrockTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightKR',\n\n fontFamily: \"'Manrope', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Manrope:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 8,\n\n backgroundInput: colors.gray.main,\n});\n","import type { DefaultTheme } from 'styled-components';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const LightNeoChainTheme: DefaultTheme = mapLightTheme(lightColors, {\n name: 'LightNeoChain',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n ...lightColors,\n\n gray: {\n main: '#F5F2F0',\n\n // https://hihayk.github.io/scale/#8/2/90/95/0/139/20/0/F5F2F0/245/242/240/white\n '100': '#191818',\n '090': '#343333',\n '080': '#504F4E',\n '070': '#6B6A69',\n '060': '#878584',\n '050': '#A2A09F',\n '040': '#BEBCBA',\n '030': '#D9D7D5',\n '020': '#F5F2F0',\n '010': '#FAF7F9',\n '000': '#FEFEFF',\n },\n\n yellow: {\n default: '#F87700',\n lighten: '#ff9e45',\n mute: setAlpha(0.1, '#F87700'),\n dim: setAlpha(0.4, '#F87700'),\n },\n primary: {\n default: '#DCA950',\n lighten: '#e6bb70',\n mute: setAlpha(0.1, '#DCA950'),\n dim: setAlpha(0.4, '#DCA950'),\n },\n};\n\nexport const LightOneIOTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightOIO',\n\n backgroundSidebar: colors.gray.main,\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { LightTheme, lightColors, mapLightTheme } from './LightTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n gray: {\n main: '#FFFFFF',\n '000': '#dbdce1',\n '010': '#ededf0',\n '020': '#F6F6F7',\n '030': '#e4e4e8',\n '040': '#d2d3da',\n '050': '#c9cad2',\n '060': '#c0c2cb',\n '070': '#b7b9c3',\n '080': '#9497a2',\n '090': '#666b81',\n '100': '#00092E',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7B61FF'),\n dim: setAlpha(0.4, '#7B61FF'),\n default: '#7B61FF',\n lighten: '#7B61FF',\n },\n\n green: {\n mute: setAlpha(0.1, '#7B61FF'),\n dim: setAlpha(0.4, '#7B61FF'),\n default: '#7B61FF',\n lighten: '#7B61FF',\n },\n\n red: {\n mute: 'rgba(146, 46, 67, 0.1)',\n dim: 'rgba(146, 46, 67, 0.4)',\n default: '#ed423d',\n lighten: '#ed423d',\n },\n\n yellow: {\n default: '#CCAC3E',\n lighten: '#F2D264',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n default: '#458CC1',\n lighten: '#53AFF8',\n dim: 'rgba(69, 140, 193, 0.4)',\n mute: 'rgba(69, 140, 193, 0.1)',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightOneLiquidityTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightOneLiquidity',\n\n backgroundBody: colors.gray['010'],\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: setAlpha(0.08, colors.gray['100']),\n backgroundDefaultButtonFocus: colors.gray.main,\n backgroundDefaultButtonActive: colors.gray.main,\n\n backgroundPriorityButton: colors.gray.main,\n backgroundPriorityButtonHover: setAlpha(0.08, colors.gray['100']),\n backgroundPriorityButtonFocus: colors.gray.main,\n backgroundPriorityButtonActive: colors.gray.main,\n\n borderWidthButton: 1,\n\n borderColorPriorityButton: colors.gray['060'],\n borderColorPriorityButtonHover: colors.gray['070'],\n borderColorPriorityButtonFocus: colors.gray['070'],\n borderColorPriorityButtonActive: colors.gray['060'],\n\n borderColorDefaultButton: colors.gray['030'],\n borderColorDefaultButtonHover: colors.gray['040'],\n borderColorDefaultButtonFocus: colors.gray['040'],\n borderColorDefaultButtonActive: colors.gray['030'],\n\n ...getInputStylesAppliedToSelect(LightTheme),\n\n backgroundChartUpColor: '#009d70',\n borderColorChartUpColor: '#009d70',\n});\n","import { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: hsla(210, 0, 1.0, 1),\n '000': hsla(210, 0, 0.92, 1),\n '010': hsla(210, 0, 0.96, 1),\n '020': hsla(210, 0, 0.89, 1),\n '030': '#EAEAEA',\n '040': hsla(220, 0, 0.83, 1),\n '050': hsla(220, 0, 0.79, 1),\n '060': hsla(200, 0, 0.74, 1),\n '070': hsla(200, 0, 0.69, 1),\n '080': hsla(200, 0, 0.63, 1),\n '090': hsla(210, 0, 0.44, 1),\n '100': hsla(0, 0, 0.1, 1),\n },\n\n black: {\n default: hsla(0, 0, 0, 1),\n dim: hsla(0, 0, 0, 0.5),\n mute: hsla(0, 0, 0, 0.1),\n },\n\n white: {\n default: hsla(0, 0, 1, 1),\n dim: hsla(0, 0, 1, 0.5),\n mute: hsla(0, 0, 1, 0.1),\n },\n\n primary: {\n mute: hsla(217, 1, 0.42, 0.1),\n dim: hsla(217, 1, 0.42, 1),\n default: '#0053D8',\n lighten: '#0045B2',\n },\n\n green: {\n mute: hsla(157, 0.83, 0.43, 0.1),\n dim: hsla(157, 0.83, 0.43, 0.4),\n default: '#1CCB21',\n lighten: '#19B31D',\n },\n\n red: {\n mute: hsla(348, 0.55, 0.49, 0.1),\n dim: hsla(348, 0.55, 0.49, 0.4),\n default: '#FF5A5A',\n lighten: '#FF4242',\n },\n\n yellow: {\n dim: hsla(45, 0.91, 0.6, 0.1),\n mute: hsla(45, 0.91, 0.6, 0.4),\n default: hsl(45, 0.91, 0.46),\n lighten: hsl(45, 0.91, 0.46),\n },\n\n blue: {\n mute: hsla(216, 0.7, 0.57, 0.1),\n dim: hsla(216, 0.7, 0.57, 0.4),\n default: hsl(216, 0.7, 0.57),\n lighten: hsl(216, 0.7, 0.57),\n },\n\n orange: {\n mute: hsla(21, 1, 0.45, 0.1),\n dim: hsla(21, 1, 0.45, 0.4),\n default: hsla(21, 1, 0.45, 1),\n lighten: hsla(25, 1, 0.5, 1),\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightPintuTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightPintu',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl:\n 'https://fonts.googleapis.com/css2?family=Inter&family=Mulish:ital,wght@0,400;0,500;0,600;1,400&display=swap',\n\n spacingLayout: 4,\n\n backgroundBody: colors.gray['010'],\n\n backgroundPriorityButton: colors.gray.main,\n backgroundPriorityButtonHover: colors.gray['010'],\n backgroundPriorityButtonFocus: colors.gray['010'],\n backgroundPriorityButtonActive: colors.gray['020'],\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: colors.gray['010'],\n backgroundDefaultButtonFocus: colors.gray['010'],\n backgroundDefaultButtonActive: colors.gray['020'],\n\n backgroundInput: colors.gray.main,\n backgroundInputDisabled: colors.gray['010'],\n backgroundInputInvalid: colors.gray.main,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n backgroundSelectDisabled: colors.gray['010'],\n backgroundSelectInvalid: colors.gray.main,\n backgroundSelectDropdown: colors.gray.main,\n\n borderColorSelect: colors.gray['060'],\n borderColorSelectHover: colors.gray['070'],\n borderColorSelectFocus: colors.gray['080'],\n borderColorSelectDisabled: colors.gray['040'],\n borderColorSelectReadOnly: colors.gray['040'],\n\n backgroundToggle: colors.gray['010'],\n backgroundToggleChecked: colors.primary.default,\n\n backgroundToggleSwitch: setAlpha(0.12, colors.gray[100]),\n backgroundToggleSwitchChecked: colors.white.default,\n backgroundToggleSwitchButtonActive: setAlpha(0.12, colors.gray.main),\n\n backgroundCheckbox: 'transparent',\n backgroundCheckboxChecked: 'transparent',\n\n borderColorCheckbox: colors.gray['050'],\n borderColorCheckboxFocus: colors.gray['070'],\n borderColorCheckboxHover: colors.gray['070'],\n borderColorCheckboxChecked: colors.gray['070'],\n borderColorCheckboxCheckedFocus: colors.gray['070'],\n\n borderColorRadiobutton: colors.gray['050'],\n borderColorRadiobuttonFocus: colors.gray['070'],\n borderColorRadiobuttonHover: colors.gray['070'],\n borderColorRadiobuttonChecked: colors.gray['070'],\n borderColorRadiobuttonCheckedFocus: colors.gray['070'],\n\n borderColorInput: colors.gray['060'],\n borderColorInputHover: colors.gray['070'],\n borderColorInputFocus: colors.gray['080'],\n\n borderColorInputDisabled: colors.gray['040'],\n\n borderWidthButton: 1,\n\n borderColorPriorityButton: colors.gray['060'],\n borderColorPriorityButtonHover: colors.gray['070'],\n borderColorPriorityButtonFocus: colors.gray['070'],\n borderColorPriorityButtonActive: colors.gray['060'],\n\n borderColorDefaultButton: colors.gray['030'],\n borderColorDefaultButtonHover: colors.gray['040'],\n borderColorDefaultButtonFocus: colors.gray['040'],\n borderColorDefaultButtonActive: colors.gray['030'],\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { base } from './BaseTheme';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst baseSize = base.baseSize;\nconst colors: Colors = {\n white: lightColors.white,\n black: lightColors.black,\n orange: lightColors.orange,\n purple: lightColors.purple,\n\n gray: {\n main: '#FFFFF8',\n\n '000': '#E3E3E2',\n '010': '#F0F0ED',\n '020': '#F8F8F4',\n '030': '#E9E9E6',\n '040': '#DADAD8',\n '050': '#D0D0CF',\n '060': '#C6C6C6',\n '070': '#BABABB',\n '080': '#9A9A9C',\n '090': '#68686E',\n '100': '#1F1F28',\n },\n\n primary: {\n mute: setAlpha(0.1, '#7D8CA3'),\n dim: setAlpha(0.4, '#7D8CA3'),\n default: '#7D8CA3',\n lighten: '#91A0B7',\n },\n\n green: {\n mute: setAlpha(0.1, '#219774'),\n dim: setAlpha(0.4, '#219774'),\n default: '#219774',\n lighten: '#3FB592',\n },\n\n red: {\n mute: setAlpha(0.1, '#D54254'),\n dim: setAlpha(0.4, '#D54254'),\n default: '#D54254',\n lighten: '#E95668',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#C89200'),\n dim: setAlpha(0.4, '#C89200'),\n default: '#C89200',\n lighten: '#E3A600',\n },\n\n blue: {\n mute: setAlpha(0.1, '#338EEB'),\n dim: setAlpha(0.4, '#338EEB'),\n default: '#338EEB',\n lighten: '#4AA4FF',\n },\n};\n\nexport const LightPxTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightPx',\n\n borderRadiusContent: baseSize,\n borderRadiusMedium: baseSize * 0.4,\n borderRadiusDefault: baseSize * 0.3,\n borderRadiusSmall: baseSize * 0.2,\n borderRadiusTiny: baseSize * 0.1,\n spacingLayout: baseSize * 0.5,\n borderRadiusButtonLarge: baseSize * 0.75,\n borderRadiusButtonDefault: baseSize * 0.5,\n borderRadiusButtonSmall: baseSize * 0.25,\n borderRadiusButtonTiny: baseSize * 0.1,\n\n colorTextPositiveButton: colors.white.default,\n colorTextPositiveButtonHover: colors.white.default,\n colorTextPositiveButtonActive: colors.white.default,\n colorTextPositiveButtonDisabled: setAlpha(0.7, colors.white.default),\n colorTextPositiveButtonFocus: colors.white.default,\n\n colorTextNegativeButton: colors.white.default,\n colorTextNegativeButtonHover: colors.white.default,\n colorTextNegativeButtonActive: colors.white.default,\n colorTextNegativeButtonDisabled: setAlpha(0.7, colors.white.default),\n colorTextNegativeButtonFocus: colors.white.default,\n\n colorTextPrimaryButton: colors.white.default,\n colorTextPrimaryButtonHover: colors.white.default,\n colorTextPrimaryButtonActive: colors.white.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.7, colors.white.default),\n colorTextPrimaryButtonFocus: colors.white.default,\n\n backgroundDrawer: colors.gray.main,\n backgroundSidebar: colors.gray.main,\n colorTabActive: colors.gray.main,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n black: {\n default: '#312546',\n dim: 'rgba(49, 37, 70, 0.4)',\n mute: 'rgba(49, 37, 70, 0.1)',\n },\n\n white: {\n default: '#ffffff',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.05)',\n },\n\n gray: {\n main: hsla(210, 1.0, 1.0, 1),\n '000': hsla(210, 0.1, 0.92, 1),\n '010': setAlpha(0.1, '#988DA5'),\n '020': setAlpha(0.11, '#988DA5'),\n '030': setAlpha(0.14, '#988DA5'),\n '040': setAlpha(0.17, '#988DA5'),\n '050': setAlpha(0.21, '#988DA5'),\n '060': setAlpha(0.26, '#988DA5'),\n '070': setAlpha(0.31, '#988DA5'),\n '080': setAlpha(0.37, '#988DA5'),\n '090': '#988DA5',\n '100': '#312546',\n },\n\n primary: {\n mute: setAlpha(0.1, '#3A2B53'),\n dim: setAlpha(0.4, '#3A2B53'),\n default: '#3A2B53',\n lighten: '#453561',\n },\n\n green: {\n mute: setAlpha(0.1, '#0AA049'),\n dim: setAlpha(0.4, '#0AA049'),\n default: '#0AA049',\n lighten: '#27B663',\n },\n\n red: {\n mute: setAlpha(0.1, '#8D483C'),\n dim: setAlpha(0.4, '#8D483C'),\n default: '#8D483C',\n lighten: '#CA5A47',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#D6C043'),\n dim: setAlpha(0.4, '#D6C043'),\n default: '#D6C043',\n lighten: '#FFE646',\n },\n\n blue: {\n mute: setAlpha(0.1, '#43AAD6'),\n dim: setAlpha(0.4, '#43AAD6'),\n default: '#43AAD6',\n lighten: '#46C7FF',\n },\n\n orange: {\n mute: setAlpha(0.1, '#D24500'),\n dim: setAlpha(0.4, '#D24500'),\n default: '#D24500',\n lighten: '#FF6900',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightRainTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightRN',\n\n borderRadiusCard: 5,\n borderRadiusContent: 5,\n borderRadiusLayoutWrapper: 5,\n\n /*\n\n backgroundBody: colors.white.default,\n backgroundContent: colors.white.default,\n boxShadowContent: colors.gray['000'],\n borderColorContent: colors.gray['000'],\n backgroundLayoutWrapper: colors.gray['000'],\n\n backgroundHeader: colors.white.default,\n\n backgroundSidebar: colors.white.default,\n colorTextSidebarItemActive: colors.white.default,\n backgroundSidebarItemHover: colors.black.mute,\n\n backgroundChart: colors.white.default,\n backgroundBlotterTableRow: colors.white.default,\n\n colorCurrencyIcon: colors.white.default,\n colorModeCurrencyIcon: 'monochrome',\n\n backgroundDropdownResults: colors.white.default,\n backgroundDropdownGroupHeader: colors.white.default,\n boxShadowDropdown: '0px 8px 32px rgba(0, 0, 0, 0.2)',\n\n backgroundModal: colors.white.default,\n\n backgroundInput: colors.black.mute,\n */\n});\n","import { cloneDeep, merge } from 'lodash';\nimport { hsl, hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst customcolors: Partial = {\n gray: {\n main: hsla(210, 1, 1.0, 1),\n '000': hsla(210, 0, 0.92, 1),\n '010': hsla(210, 0, 0.96, 1),\n '020': hsla(210, 0, 0.89, 1),\n '030': hsla(220, 0, 0.86, 1),\n '040': hsla(220, 0, 0.83, 1),\n '050': hsla(220, 0, 0.79, 1),\n '060': hsla(200, 0, 0.74, 1),\n '070': hsla(200, 0, 0.69, 1),\n '080': hsla(200, 0, 0.63, 1),\n '090': hsla(210, 0, 0.44, 1),\n '100': hsla(0, 0, 0.1, 1),\n },\n\n primary: {\n mute: hsla(46, 0.75, 0.6, 0.1),\n dim: hsla(46, 0.75, 0.6, 0.6),\n default: hsl(46, 0.75, 0.55),\n lighten: hsl(46, 0.94, 0.65),\n },\n\n green: {\n mute: hsla(130, 0.63, 0.32, 0.1),\n dim: hsla(130, 0.63, 0.32, 0.4),\n default: hsl(130, 0.63, 0.32),\n lighten: hsl(130, 0.61, 0.4),\n },\n\n red: {\n mute: hsla(350, 0.86, 0.38, 0.1),\n dim: hsla(350, 0.86, 0.38, 0.4),\n default: hsl(350, 0.86, 0.38),\n lighten: hsl(350, 0.87, 0.48),\n },\n};\nconst colors: Colors = merge(cloneDeep(lightColors), customcolors);\n\nexport const LightSDMTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightSDM',\n\n backgroundSelectDropdown: colors.gray.main,\n\n backgroundInput: 'transparent',\n backgroundInputInvalid: 'transparent',\n backgroundInputDisabled: 'transparent',\n\n backgroundSelect: 'transparent',\n backgroundSelectHover: 'transparent',\n backgroundSelectFocus: 'transparent',\n backgroundSelectDisabled: 'transparent',\n backgroundSelectReadOnly: 'transparent',\n backgroundSelectInvalid: 'transparent',\n\n colorTextDefault: colors.gray['090'],\n colorTextImportant: colors.gray['100'],\n colorTextAttention: colors.gray['100'],\n\n borderColorPopover: colors.gray.main,\n\n // Make sure the right set of colors are used\n backgroundDrawer: colors.gray['020'],\n backgroundPopoverHighlight: colors.gray['030'],\n backgroundContentHover: colors.gray['020'],\n\n backgroundBlotterTableRowSelected: colors.gray['030'],\n backgroundBlotterTableRowHover: colors.gray['020'],\n borderColorBlotterTable: colors.gray['040'],\n\n backgroundScrollbar: 'transparent',\n colorScrollbar: colors.gray['030'],\n colorScrollbarHover: colors.gray['040'],\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n backgroundToggle: colors.gray['050'],\n backgroundToggleChecked: colors.primary.default,\n backgroundToggleSwitch: colors.gray['090'],\n\n backgroundCheckbox: colors.gray['010'],\n backgroundCheckboxHover: colors.gray['020'],\n backgroundCheckboxChecked: colors.primary.default,\n\n borderColorCheckbox: colors.gray['050'],\n borderColorCheckboxFocus: colors.gray['070'],\n borderColorCheckboxHover: colors.gray['070'],\n borderColorCheckboxChecked: colors.gray['070'],\n borderColorCheckboxCheckedFocus: colors.gray['070'],\n\n backgroundRadiobutton: colors.gray['010'],\n backgroundRadiobuttonHover: colors.gray['020'],\n backgroundRadiobuttonChecked: colors.primary.default,\n\n borderColorRadiobutton: colors.gray['050'],\n borderColorRadiobuttonFocus: colors.gray['070'],\n borderColorRadiobuttonHover: colors.gray['070'],\n borderColorRadiobuttonChecked: colors.gray['070'],\n borderColorRadiobuttonCheckedFocus: colors.gray['070'],\n\n backgroundProgressBar: colors.gray['040'],\n backgroundProgressBarIndeterminate: colors.gray['050'],\n backgroundProgressBarMeter: colors.gray['060'],\n\n borderColorInput: colors.gray['060'],\n borderColorInputHover: colors.gray['070'],\n borderColorInputFocus: colors.gray['080'],\n borderColorInputDisabled: colors.gray['040'],\n\n borderColorSelect: colors.gray['060'],\n borderColorSelectHover: colors.gray['070'],\n borderColorSelectFocus: colors.gray['080'],\n borderColorSelectDisabled: colors.gray['040'],\n borderColorSelectReadOnly: colors.gray['040'],\n\n backgroundDropdownResults: colors.gray.main,\n backgroundDropdownInput: colors.gray.main,\n backgroundDropdownSelected: colors.gray['020'],\n backgroundDropdownHovered: colors.gray['020'],\n boxShadowDropdown: '0px 8px 32px rgba(0, 0, 0, 0.2)',\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst lightSeliniColors: Colors = {\n ...lightColors,\n\n gray: {\n '000': '#DBDDE2',\n '010': '#E8E9ED',\n main: '#F4F6F9',\n '020': '#EFF1F4',\n '030': '#E1E3E6',\n '040': '#D3D4D8',\n '050': '#C9CBCF',\n '060': '#BFC1C6',\n '070': '#B3B4BB',\n '080': '#94969C',\n '090': '#65656E',\n '100': '#1E1E28',\n },\n green: {\n default: '#2e7e57',\n lighten: '#4caf50',\n dim: setAlpha(0.4, '#2e7e57'),\n mute: setAlpha(0.1, '#2e7e57'),\n },\n red: {\n default: '#b74638',\n lighten: '#c6392f',\n dim: setAlpha(0.4, '#b74638'),\n mute: setAlpha(0.1, '#b74638'),\n },\n blue: {\n default: '#42a5f5',\n lighten: '#64b5f6',\n dim: setAlpha(0.4, '#42a5f5'),\n mute: setAlpha(0.1, '#42a5f5'),\n },\n yellow: {\n default: '#fdd835',\n lighten: '#ffeb3b',\n dim: setAlpha(0.4, '#fdd835'),\n mute: setAlpha(0.1, '#fdd835'),\n },\n primary: {\n default: '#3949ab',\n lighten: '#3f51b5',\n dim: setAlpha(0.4, '#3949ab'),\n mute: setAlpha(0.1, '#3949ab'),\n },\n};\n\nexport const LightSeliniCapitalTheme: DefaultTheme = mapLightTheme(lightSeliniColors, {\n name: 'LightSC',\n\n backgroundHeader: 'linear-gradient(60deg, #f5f7fa 0%, #c3cfe2 100%)',\n backgroundSidebar: 'linear-gradient(180deg, #f5f7fa 0%, #c3cfe2 100%)',\n backgroundBody: '#eceff1',\n\n backgroundSidebarItemActive: '#c5d0e3',\n backgroundSidebarItemHover: '#c5d0e3',\n backgroundContent: 'linear-gradient(180deg, #F8FAFC, #e9edf4)',\n\n borderRadiusButtonDefault: 0,\n borderRadiusButtonLarge: 0,\n borderRadiusButtonSmall: 0,\n borderRadiusButtonTiny: 0,\n borderRadiusCard: 0,\n borderRadiusContent: 0,\n borderRadiusBig: 0,\n borderRadiusDefault: 0,\n borderRadiusHuge: 0,\n borderRadiusLarge: 0,\n borderRadiusMedium: 0,\n borderRadiusLayoutWrapper: 0,\n borderRadiusSmall: 0,\n borderRadiusTiny: 0,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { LightTheme, lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: '#FFFFFF',\n '000': '#F1F1F1',\n '010': '#F8F8F8',\n '020': '#ececec',\n '030': hsla(240, 0, 0.91, 1),\n '040': hsla(240, 0, 0.85, 1),\n '050': hsla(240, 0, 0.81, 1),\n '060': hsla(240, 0, 0.77, 1),\n '070': hsla(240, 0, 0.73, 1),\n '080': '#201e2a',\n '090': '#031B23',\n '100': '#181428',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: setAlpha(0.1, '#1CF1A5'),\n dim: setAlpha(0.4, '#1CF1A5'),\n default: '#1CF1A5',\n lighten: '#1CF1A5',\n },\n\n green: {\n mute: setAlpha(0.1, '#2C8059'),\n dim: setAlpha(0.4, '#2C8059'),\n default: '#2C8059',\n lighten: '#1CF1A5',\n },\n\n red: {\n mute: setAlpha(0.1, '#BD5F4B'),\n dim: setAlpha(0.4, '#BD5F4B'),\n default: '#BD5F4B',\n lighten: '#FE7D62',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightStablehouseTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightSH',\n\n fontFamily: \"'Inter', sans-serif\",\n fontUrl: 'https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap',\n\n spacingLayout: 16,\n borderRadiusContent: 8,\n borderColorHeader: colors.gray['020'],\n boxShadowHeader: `0 2px 15px ${setAlpha(0.5, colors.gray['000'])}`,\n\n borderColorContent: colors.gray['020'],\n boxShadowContent: `0 2px 15px ${setAlpha(0.5, colors.gray['000'])}`,\n\n backgroundNegativeButtonActive: '#771400',\n\n backgroundDefaultButton: colors.gray.main,\n backgroundDefaultButtonHover: colors.gray.main,\n backgroundDefaultButtonFocus: colors.gray.main,\n backgroundDefaultButtonActive: colors.gray.main,\n\n borderColorDefaultButton: colors.gray['040'],\n borderColorDefaultButtonHover: colors.gray['040'],\n borderColorDefaultButtonFocus: colors.gray['040'],\n borderColorDefaultButtonActive: colors.gray['040'],\n borderWidthButton: 1,\n\n backgroundPriorityButton: colors.gray['010'],\n backgroundPriorityButtonHover: colors.gray['020'],\n backgroundPriorityButtonFocus: colors.gray['010'],\n backgroundPriorityButtonActive: colors.gray['010'],\n\n borderColorPriorityButton: colors.gray['040'],\n borderColorPriorityButtonHover: colors.gray['040'],\n borderColorPriorityButtonFocus: colors.gray['040'],\n borderColorPriorityButtonActive: colors.gray['040'],\n\n backgroundPrimaryButton: colors.gray['100'],\n backgroundPrimaryButtonHover: colors.gray['080'],\n backgroundPrimaryButtonFocus: colors.gray['080'],\n backgroundPrimaryButtonActive: colors.gray['100'],\n backgroundPrimaryButtonDisabled: colors.gray['050'],\n\n colorTextPrimaryButton: colors.gray['000'],\n colorTextPrimaryButtonHover: colors.gray['000'],\n colorTextPrimaryButtonFocus: colors.gray['000'],\n colorTextPrimaryButtonActive: colors.gray['000'],\n\n colorTextDefaultButton: colors.gray['100'],\n colorTextDefaultButtonHover: colors.gray['100'],\n colorTextDefaultButtonActive: colors.gray['100'],\n colorTextDefaultButtonDisabled: colors.gray['100'],\n colorTextDefaultButtonFocus: colors.gray['100'],\n\n backgroundPositiveButtonFocus: colors.green.default,\n\n backgroundNegativeButtonFocus: colors.red.default,\n\n borderColorInput: colors.gray['040'],\n borderColorInputFocus: colors.blue.lighten,\n backgroundInput: colors.gray.main,\n\n colorTextNegative: colors.red.lighten,\n colorTextPositive: colors.green.default,\n\n colorOrderStatusFilled: colors.green.default,\n\n backgroundVolumeLadderBidSpread: colors.primary.lighten,\n backgroundVolumeLadderOfferSpread: colors.primary.lighten,\n\n backgroundChartUpColor: colors.green.default,\n backgroundChartDownColor: colors.red.default,\n borderColorChartUpColor: colors.green.default,\n borderColorChartDownColor: colors.red.default,\n\n backgroundSelect: colors.gray.main,\n backgroundSelectHover: colors.gray.main,\n backgroundSelectFocus: colors.gray.main,\n backgroundSelectDisabled: colors.gray.main,\n backgroundSelectReadOnly: colors.gray.main,\n backgroundSelectInvalid: colors.gray.main,\n\n borderColorSelect: colors.gray['040'],\n borderColorSelectHover: LightTheme.borderColorInputHover,\n borderColorSelectFocus: colors.blue.lighten,\n borderColorSelectDisabled: LightTheme.borderColorInputDisabled,\n borderColorSelectReadOnly: LightTheme.borderColorInputReadOnly,\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n gray: {\n main: hsla(0, 0, 1.0, 1),\n '000': hsla(0, 0, 0.92, 1),\n '010': hsla(0, 0, 0.96, 1),\n '020': hsla(0, 0, 0.89, 1),\n '030': hsla(0, 0, 0.86, 1),\n '040': hsla(0, 0, 0.83, 1),\n '050': hsla(0, 0, 0.79, 1),\n '060': hsla(0, 0, 0.74, 1),\n '070': hsla(0, 0, 0.69, 1),\n '080': hsla(0, 0, 0.63, 1),\n '090': hsla(0, 0, 0.44, 1),\n '100': hsla(0, 0, 0.1, 1),\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: 'hsla(246.58, 100%, 50%, 0.1)',\n dim: 'hsla(246.58, 100%, 50%, 0.4)',\n default: 'hsl(246.58, 100%, 50%)',\n lighten: 'hsl(246.58, 100%, 50%)',\n },\n\n green: {\n default: '#337E5A',\n lighten: '#56AE84',\n dim: 'rgba(51, 126, 90, 0.4)',\n mute: 'rgba(51, 126, 90, 0.1)',\n },\n\n red: {\n default: '#922E43',\n lighten: '#D23557',\n dim: 'rgba(146, 46, 67, 0.4)',\n mute: 'rgba(146, 46, 67, 0.1)',\n },\n\n yellow: {\n default: '#CCAC3E',\n lighten: '#F2D264',\n dim: 'rgba(204, 172, 62, 0.4)',\n mute: 'rgba(204, 172, 62, 0.1)',\n },\n\n blue: {\n default: '#458CC1',\n lighten: '#53AFF8',\n dim: 'rgba(69, 140, 193, 0.4)',\n mute: 'rgba(69, 140, 193, 0.1)',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightTDATheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightTDA',\n\n backgroundBody: colors.gray['010'],\n\n backgroundDefaultButton: colors.gray['030'],\n backgroundDefaultButtonHover: colors.gray['040'],\n backgroundDefaultButtonFocus: colors.gray['040'],\n backgroundDefaultButtonActive: colors.gray['030'],\n\n backgroundPriorityButton: colors.gray['060'],\n backgroundPriorityButtonHover: colors.gray['070'],\n backgroundPriorityButtonFocus: colors.gray['070'],\n backgroundPriorityButtonActive: colors.gray['060'],\n\n backgroundToggleSwitchButton: setAlpha(0.32, colors.gray['000']),\n backgroundToggleSwitchButtonActive: setAlpha(0.12, colors.gray.main),\n\n colorTextVolumeLadderSpread: colors.gray['080'],\n backgroundVolumeLadderBidSpread: colors.primary.default,\n backgroundVolumeLadderOfferSpread: colors.primary.default,\n});\n","import { hsla, lighten } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n gray: {\n main: '#FFFFFF',\n '000': '#F1F1F1',\n '010': '#F8F8F8',\n '020': '#ececec',\n '030': hsla(240, 0.12, 0.91, 1),\n '040': hsla(240, 0.06, 0.85, 1),\n '050': hsla(240, 0.06, 0.81, 1),\n '060': hsla(240, 0.06, 0.77, 1),\n '070': hsla(240, 0.06, 0.73, 1),\n '080': '#193843',\n '090': '#031B23',\n '100': '#031B23',\n },\n\n primary: {\n mute: setAlpha(0.1, '#3C85DD'),\n dim: setAlpha(0.4, '#3C85DD'),\n default: '#2A68B2',\n lighten: '#3C85DD',\n },\n\n green: {\n mute: setAlpha(0.1, '#2FC06A'),\n dim: setAlpha(0.4, '#2FC06A'),\n default: '#00D64A',\n lighten: '#2FC06A',\n },\n\n red: {\n mute: setAlpha(0.1, '#f57a7a'),\n dim: setAlpha(0.4, '#f57a7a'),\n default: '#EC5B5B',\n lighten: '#f57a7a',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F2D264'),\n dim: setAlpha(0.4, '#F2D264'),\n default: '#F2D264',\n lighten: lighten(0.1, '#F2D264'),\n },\n\n blue: {\n mute: setAlpha(0.1, '#3C85DD'),\n dim: setAlpha(0.4, '#3C85DD'),\n default: '#2A68B2',\n lighten: '#3C85DD',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightWintermute2Theme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightWM2',\n\n spacingLayout: 8,\n backgroundHeader: setAlpha(0.75, colors.gray.main),\n borderColorHeader: 'transparent',\n backgroundBody: '#E5E6E5',\n backgroundInput: colors.gray['020'],\n backgroundSelect: colors.gray['020'],\n backgroundSelectHover: colors.gray['040'],\n backgroundSelectFocus: colors.gray['030'],\n backgroundSelectInvalid: colors.gray['020'],\n backgroundSelectDisabled: colors.gray['010'],\n backgroundSelectReadOnly: colors.gray['010'],\n\n colorTextPositiveButtonDisabled: colors.black.default,\n colorTextNegativeButtonDisabled: colors.black.default,\n colorTextPrimaryButtonDisabled: colors.black.default,\n colorTextPriorityButtonDisabled: colors.black.default,\n\n backgroundNegativeButtonActive: colors.red.default,\n backgroundNegativeButtonFocus: colors.red.default,\n\n backgroundPositiveButtonActive: colors.green.default,\n backgroundPositiveButtonFocus: colors.green.default,\n\n backgroundPrimaryButtonActive: colors.primary.default,\n backgroundPrimaryButtonFocus: colors.primary.default,\n\n borderColorChartAxis: colors.gray['040'],\n borderColorChartGridLine: colors.gray['040'],\n borderColorChartCrosshair: colors.gray['070'],\n backgroundChartUpColor: colors.green.default,\n backgroundChartDownColor: colors.red.default,\n borderColorChartUpColor: colors.green.default,\n borderColorChartDownColor: colors.red.default,\n backgroundChart: colors.gray.main,\n\n backgroundToggle: colors.gray['040'],\n backgroundDefaultButtonHover: setAlpha(0.2, colors.gray['100']),\n backgroundDefaultButtonFocus: setAlpha(0.2, colors.gray['100']),\n backgroundDefaultButtonActive: setAlpha(0.1, colors.gray['100']),\n backgroundDefaultButtonDisabled: setAlpha(0.05, colors.gray['100']),\n\n colorOrderStatusFilled: colors.green.default,\n colorOrderStatusRejected: colors.yellow.default,\n\n colorScrollbar: setAlpha(0.6, colors.gray['060']),\n colorScrollbarHover: setAlpha(0.5, colors.gray['080']),\n\n chamferMultiplier: 1,\n borderRadiusContent: 12,\n buttonGroupSharedBackground: colors.gray['030'],\n backgroundMutedButton: 'transparent',\n colorTextMutedButton: colors.gray['090'],\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { LightTheme, lightColors, mapLightTheme } from './LightTheme';\nimport { getInputStylesAppliedToSelect } from './utils';\n\nconst colors: Colors = {\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n gray: {\n main: '#FFFFFF',\n '000': '#F1F1F1',\n '010': '#F8F8F8',\n '020': '#ececec',\n '030': hsla(240, 0.12, 0.91, 1),\n '040': hsla(240, 0.06, 0.85, 1),\n '050': hsla(240, 0.06, 0.81, 1),\n '060': hsla(240, 0.06, 0.77, 1),\n '070': hsla(240, 0.06, 0.73, 1),\n '080': '#193843',\n '090': '#031B23',\n '100': '#031B23',\n },\n\n primary: {\n mute: setAlpha(0.1, '#A3EC26'),\n dim: setAlpha(0.4, '#A3EC26'),\n default: '#92D422',\n lighten: '#A3EC26',\n },\n\n green: {\n mute: setAlpha(0.1, '#26c964'),\n dim: setAlpha(0.4, '#26c964'),\n default: '#08970E',\n lighten: '#26c964',\n },\n\n red: {\n mute: setAlpha(0.1, '#F5475B'),\n dim: setAlpha(0.4, '#F5475B'),\n default: '#C7232A',\n lighten: '#F5475B',\n },\n\n yellow: {\n mute: setAlpha(0.1, '#F3D900'),\n dim: setAlpha(0.4, '#F3D900'),\n default: '#F3D900',\n lighten: '#F3D900',\n },\n\n blue: {\n mute: setAlpha(0.1, '#306fb8'),\n dim: setAlpha(0.4, '#306fb8'),\n default: '#306fb8',\n lighten: '#4898F4',\n },\n\n orange: {\n mute: 'rgba(230, 82, 0, 0.1)',\n dim: 'rgba(230, 82, 0, 0.4)',\n default: '#E65200',\n lighten: '#FF6B00',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightWintermuteTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightWM',\n\n spacingLayout: 8,\n\n backgroundBody: `${colors.gray['000']} url(/customers/wintermute-background.svg) top center`,\n\n backgroundHeader: setAlpha(0.75, colors.gray.main),\n borderColorHeader: 'transparent',\n\n backgroundContent: setAlpha(0.75, colors.gray.main),\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n\n backgroundInput: colors.gray['000'],\n\n ...getInputStylesAppliedToSelect(LightTheme),\n backgroundSelect: colors.gray['000'],\n backgroundSelectHover: colors.gray['000'],\n backgroundSelectFocus: colors.gray['000'],\n backgroundSelectInvalid: colors.gray['000'],\n backgroundSelectDisabled: colors.gray['000'],\n backgroundSelectReadOnly: colors.gray['000'],\n\n backgroundPositiveButton: colors.primary.default,\n backgroundPositiveButtonHover: colors.primary.lighten,\n backgroundPositiveButtonFocus: colors.primary.lighten,\n backgroundPositiveButtonActive: colors.primary.default,\n backgroundPositiveButtonDisabled: setAlpha(0.5, colors.primary.default),\n\n backgroundNegativeButton: colors.primary.default,\n backgroundNegativeButtonHover: colors.primary.lighten,\n backgroundNegativeButtonFocus: colors.primary.lighten,\n backgroundNegativeButtonActive: colors.primary.default,\n backgroundNegativeButtonDisabled: setAlpha(0.5, colors.primary.default),\n\n colorTextPrimaryButton: colors.black.default,\n colorTextPrimaryButtonHover: colors.black.default,\n colorTextPrimaryButtonFocus: colors.black.default,\n colorTextPrimaryButtonActive: colors.black.default,\n colorTextPrimaryButtonDisabled: setAlpha(0.5, colors.black.default),\n\n colorTextPositiveButton: colors.black.default,\n colorTextPositiveButtonHover: colors.black.default,\n colorTextPositiveButtonFocus: colors.black.default,\n colorTextPositiveButtonActive: colors.black.default,\n colorTextPositiveButtonDisabled: setAlpha(0.5, colors.black.default),\n\n colorTextNegativeButton: colors.black.default,\n colorTextNegativeButtonHover: colors.black.default,\n colorTextNegativeButtonFocus: colors.black.default,\n colorTextNegativeButtonActive: colors.black.default,\n colorTextNegativeButtonDisabled: setAlpha(0.5, colors.black.default),\n\n backgroundVolumeLadderBidSpread: setAlpha(0.75, colors.green.default),\n backgroundVolumeLadderOfferSpread: setAlpha(0.75, colors.red.default),\n});\n","import type { Colors, DefaultTheme } from 'styled-components';\nimport { setAlpha } from '../utils';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nconst colors: Colors = {\n black: lightColors.black,\n white: lightColors.white,\n gray: lightColors.gray,\n\n primary: {\n mute: setAlpha(0.1, '#00818f'),\n dim: setAlpha(0.4, '#00818f'),\n default: '#00818f',\n lighten: '#009dad',\n },\n\n green: lightColors.green,\n red: lightColors.red,\n\n yellow: {\n mute: setAlpha(0.1, '#F2D264'),\n dim: setAlpha(0.4, '#F2D264'),\n default: '#F2D264',\n lighten: '#CCAC3E',\n },\n\n blue: lightColors.blue,\n orange: lightColors.orange,\n purple: lightColors.purple,\n};\n\nexport const LightXeroFTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightXF',\n});\n","import { hsla } from 'polished';\nimport type { Colors, DefaultTheme } from 'styled-components';\nimport { lightColors, mapLightTheme } from './LightTheme';\n\nexport const colors: Colors = {\n gray: {\n main: '#FFFFFF',\n '000': '#E3E2E0',\n '010': '#F0EFED',\n '020': '#F1F1F0',\n '030': '#EAE9E8',\n '040': hsla(40, 0.05, 0.85, 1),\n '050': hsla(40, 0.05, 0.81, 1),\n '060': '#C8C6C2',\n '070': '#ADABA5',\n '080': '#938F87',\n '090': '#695C57',\n '100': '#2F2927',\n },\n\n black: {\n default: '#000000',\n dim: 'rgba(0, 0, 0, 0.4)',\n mute: 'rgba(0, 0, 0, 0.1)',\n },\n\n white: {\n default: '#FFFFFF',\n dim: 'rgba(255, 255, 255, 0.4)',\n mute: 'rgba(255, 255, 255, 0.1)',\n },\n\n primary: {\n mute: hsla(75, 1, 0.7, 0.1),\n dim: hsla(75, 1, 0.7, 0.4),\n default: '#85B200',\n lighten: '#D8FF64',\n },\n\n green: {\n // mute: hsla(127, 0.84, 0.22, 0.1),\n // dim: hsla(127, 0.84, 0.22, 0.4),\n // default: hsla(127, 0.84, 0.22, 1),\n // lighten: hsla(127, 0.84, 0.42, 1),\n mute: hsla(75, 1, 0.7, 0.1),\n dim: hsla(75, 1, 0.7, 0.4),\n default: '#D8FF64',\n lighten: '#A6DE00',\n },\n\n red: {\n mute: hsla(6, 1, 0.66, 0.1),\n dim: hsla(6, 1, 0.66, 0.4),\n default: '#FF3620',\n lighten: '#FF6250',\n },\n\n yellow: {\n mute: hsla(28, 0.92, 0.53, 0.1),\n dim: hsla(28, 0.92, 0.53, 0.4),\n default: hsla(28, 0.92, 0.53, 1),\n lighten: hsla(28, 0.92, 0.65, 1),\n },\n\n blue: {\n default: '#458CC1',\n lighten: '#53AFF8',\n dim: 'rgba(69, 140, 193, 0.4)',\n mute: 'rgba(69, 140, 193, 0.1)',\n },\n\n orange: {\n default: '#E65200',\n lighten: '#FF6B00',\n dim: 'rgba(230, 82, 0, 0.4)',\n mute: 'rgba(230, 82, 0, 0.1)',\n },\n\n purple: lightColors.purple,\n};\n\nexport const LightZerocapTheme: DefaultTheme = mapLightTheme(colors, {\n name: 'LightZC',\n\n fontUrl: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,400;1,500&display=swap',\n fontFamily: \"'Poppins', sans-serif\",\n\n colorModeCurrencyIcon: 'colorful',\n\n backgroundBody: 'linear-gradient(225deg, #3E0000 0%, #5B1418 33.35%, #B35540 66.49%, #F68646 100%)',\n backgroundContent: 'rgba(255, 255, 255, 1)',\n borderColorContent: 'transparent',\n backgroundHeader: 'rgba(255, 255, 255, 0.95)',\n borderColorHeader: 'transparent',\n backgroundSidebar: 'rgba(255, 255, 255, 0.85)',\n backdropFilterSidebar: 'blur(5px)',\n borderColorSidebar: 'transparent',\n backgroundSidebarItemActive: 'rgba(255, 255, 255, 0.5)',\n backgroundSidebarItemHover: 'rgba(255, 255, 255, 0.75)',\n\n backgroundContentHover: 'rgba(255, 255, 255, 0.25)',\n\n borderColorTabSelected: colors.primary.lighten,\n\n backgroundToggleChecked: colors.primary.lighten,\n\n backgroundCheckboxChecked: colors.primary.lighten,\n backgroundRadiobuttonChecked: colors.primary.lighten,\n\n backgroundChart: 'rgba(0, 0, 0, 0)',\n borderColorChartAxis: 'rgba(0, 0, 0, 0.25)',\n borderColorChartGridLine: 'rgba(0, 0, 0, 0.1)',\n borderColorChartCrosshair: 'rgba(0, 0, 0, 0.5)',\n\n borderColorInputFocus: colors.primary.lighten,\n\n borderRadiusButtonDefault: 16,\n\n backgroundPopover: colors.gray.main,\n\n borderColorDivider: 'rgba(255, 255, 255, 0.25)',\n borderRadiusContent: 4,\n\n backgroundBlotterTableRow: 'transparent',\n borderColorBlotterTable: 'rgba(255, 255, 255, 0.25)',\n\n borderColorTab: 'rgba(255, 255, 255, 0.25)',\n\n spacingLayout: 8,\n\n colorTextPositiveButton: colors.gray['100'],\n colorTextPositiveButtonHover: colors.gray['100'],\n colorTextPositiveButtonFocus: colors.gray['100'],\n colorTextPositiveButtonActive: colors.gray['100'],\n\n colorTextNegativeButton: colors.gray['100'],\n colorTextNegativeButtonHover: colors.gray['100'],\n colorTextNegativeButtonFocus: colors.gray['100'],\n colorTextNegativeButtonActive: colors.gray['100'],\n\n colorTextPrimaryButton: colors.gray['100'],\n colorTextPrimaryButtonHover: colors.gray['100'],\n colorTextPrimaryButtonFocus: colors.gray['100'],\n colorTextPrimaryButtonActive: colors.gray['100'],\n\n backgroundPrimaryButton: '#CDA973',\n backgroundPrimaryButtonHover: '#DABF96',\n backgroundPrimaryButtonFocus: '#D3B485',\n backgroundPrimaryButtonActive: '#CDA973',\n});\n","import type { CSSProperties, HTMLAttributes } from 'react';\nimport styled, { css, type DefaultTheme } from 'styled-components';\nimport { getThemeDimensionValue, parseColor, parseDimension, parseFontSize } from '../../styles';\n\nexport interface BoxProps extends Omit, 'content'> {\n /** Width */\n w?: CSSProperties['width'];\n /** Height */\n h?: CSSProperties['height'];\n /** Margin */\n m?: CSSProperties['margin'] | string;\n /** Margin Horizontal */\n mx?: CSSProperties['margin'] | string;\n /** Margin Vertical */\n my?: CSSProperties['margin'] | string;\n /** Margin Top */\n mt?: CSSProperties['marginTop'] | string;\n /** Margin Right */\n mr?: CSSProperties['marginRight'] | string;\n /** Margin Bottom */\n mb?: CSSProperties['marginBottom'] | string;\n /** Margin Left */\n ml?: CSSProperties['marginLeft'] | string;\n\n /** Padding */\n p?: CSSProperties['padding'] | string;\n /** Padding Horizontal */\n px?: CSSProperties['padding'] | string;\n /** Padding Vertical */\n py?: CSSProperties['padding'] | string;\n /** Padding Top */\n pt?: CSSProperties['paddingTop'] | string;\n /** Padding Right */\n pr?: CSSProperties['paddingRight'] | string;\n /** Padding Bottom */\n pb?: CSSProperties['paddingBottom'] | string;\n /** Padding Left */\n pl?: CSSProperties['paddingLeft'] | string;\n\n maxWidth?: CSSProperties['maxWidth'];\n maxHeight?: CSSProperties['maxHeight'];\n minWidth?: CSSProperties['minWidth'];\n minHeight?: CSSProperties['minHeight'];\n aspectRatio?: CSSProperties['aspectRatio'];\n\n flexBasis?: CSSProperties['flexBasis'];\n alignSelf?: CSSProperties['alignSelf'];\n justifySelf?: CSSProperties['justifySelf'];\n\n flex?: CSSProperties['flex'];\n display?: CSSProperties['display'];\n\n justifyContent?: CSSProperties['justifyContent'];\n alignItems?: CSSProperties['alignItems'];\n flexDirection?: CSSProperties['flexDirection'];\n flexWrap?: CSSProperties['flexWrap'];\n gap?: CSSProperties['gap'] | keyof DefaultTheme | string | number;\n columnGap?: CSSProperties['columnGap'] | keyof DefaultTheme | string | number;\n rowGap?: CSSProperties['rowGap'] | keyof DefaultTheme | string | number;\n gridTemplateRows?: CSSProperties['gridTemplateRows'];\n gridTemplateColumns?: CSSProperties['gridTemplateColumns'];\n gridTemplateAreas?: CSSProperties['gridTemplateAreas'];\n gridColumn?: CSSProperties['gridColumn'];\n gridRow?: CSSProperties['gridRow'];\n\n position?: CSSProperties['position'];\n top?: CSSProperties['top'];\n right?: CSSProperties['right'];\n left?: CSSProperties['left'];\n bottom?: CSSProperties['bottom'];\n inset?: CSSProperties['inset'];\n fontSize?: CSSProperties['fontSize'];\n fontWeight?: CSSProperties['fontWeight'];\n lineHeight?: CSSProperties['lineHeight'];\n textDecoration?: CSSProperties['textDecoration'];\n textTransform?: CSSProperties['textTransform'];\n textAlign?: CSSProperties['textAlign'];\n textOverflow?: CSSProperties['textOverflow'];\n whiteSpace?: CSSProperties['whiteSpace'];\n verticalAlign?: CSSProperties['verticalAlign'];\n border?: CSSProperties['border'];\n borderWidth?: CSSProperties['borderWidth'];\n borderStyle?: CSSProperties['borderStyle'];\n borderTop?: CSSProperties['borderTop'];\n borderRight?: CSSProperties['borderRight'];\n borderBottom?: CSSProperties['borderBottom'];\n borderLeft?: CSSProperties['borderLeft'];\n borderColor?: CSSProperties['borderColor'];\n borderRadius?: CSSProperties['borderRadius'];\n transition?: CSSProperties['transition'];\n\n background?: CSSProperties['background'];\n overflow?: CSSProperties['overflow'];\n overflowX?: CSSProperties['overflowX'];\n overflowY?: CSSProperties['overflowY'];\n opacity?: CSSProperties['opacity'];\n\n zIndex?: CSSProperties['zIndex'];\n cursor?: CSSProperties['cursor'];\n\n boxShadow?: CSSProperties['boxShadow'];\n backdropFilter?: CSSProperties['backdropFilter'];\n\n gridArea?: CSSProperties['gridArea'];\n}\n\nconst noForwardProps = new Set(['fontSize', 'overflow', 'color']);\n\n/** Simple styled div\n *\n * Set box properties without creating a new component.\n */\n\nexport const box = css`\n ${({ w, theme }) => w && `width: ${parseDimension(theme, w)}`};\n ${({ h, theme }) => h && `height: ${parseDimension(theme, h)}`};\n\n ${({ maxWidth, theme }) => maxWidth && `max-width: ${parseDimension(theme, maxWidth)}`};\n ${({ maxHeight, theme }) => maxHeight && `max-height: ${parseDimension(theme, maxHeight)}`};\n ${({ minWidth, theme }) => minWidth && `min-width: ${parseDimension(theme, minWidth)}`};\n ${({ minHeight, theme }) => minHeight && `min-height: ${parseDimension(theme, minHeight)}`};\n ${({ aspectRatio }) => aspectRatio && `aspect-ratio: ${aspectRatio}`};\n\n ${({ m, theme }) => m != null && `margin: ${parseDimension(theme, m)}`};\n ${({ mx, theme }) =>\n mx != null && `margin-left: ${parseDimension(theme, mx)}; margin-right: ${parseDimension(theme, mx)}`};\n ${({ my, theme }) =>\n my != null && `margin-top: ${parseDimension(theme, my)}; margin-bottom: ${parseDimension(theme, my)}`};\n ${({ mt, theme }) => mt != null && `margin-top: ${parseDimension(theme, mt)}`};\n ${({ mr, theme }) => mr != null && `margin-right: ${parseDimension(theme, mr)}`};\n ${({ mb, theme }) => mb != null && `margin-bottom: ${parseDimension(theme, mb)}`};\n ${({ ml, theme }) => ml != null && `margin-left: ${parseDimension(theme, ml)}`};\n\n ${({ p, theme }) => p != null && `padding: ${parseDimension(theme, p)}`};\n ${({ px, theme }) =>\n px != null && `padding-left: ${parseDimension(theme, px)}; padding-right: ${parseDimension(theme, px)}`};\n ${({ py, theme }) =>\n py != null && `padding-top: ${parseDimension(theme, py)}; padding-bottom: ${parseDimension(theme, py)}`};\n ${({ pt, theme }) => pt != null && `padding-top: ${parseDimension(theme, pt)}`};\n ${({ pr, theme }) => pr != null && `padding-right: ${parseDimension(theme, pr)}`};\n ${({ pb, theme }) => pb != null && `padding-bottom: ${parseDimension(theme, pb)}`};\n ${({ pl, theme }) => pl != null && `padding-left: ${parseDimension(theme, pl)}`};\n\n ${({ flexBasis }) => flexBasis && `flex-basis: ${flexBasis}`};\n ${({ alignSelf }) => alignSelf && `align-self: ${alignSelf}`};\n ${({ justifySelf }) => justifySelf && `justify-self: ${justifySelf}`};\n\n ${({ flex }) => flex && `flex: ${flex}`};\n ${({ display }) => display && `display: ${display}`};\n\n ${({ flexDirection }) => flexDirection && `flex-direction: ${flexDirection}`};\n ${({ flexWrap }) => flexWrap && `flex-wrap: ${flexWrap}`};\n ${({ justifyContent }) => justifyContent && `justify-content: ${justifyContent}`};\n ${({ alignItems }) => alignItems && `align-items: ${alignItems}`};\n ${({ flex }) => flex && `flex: ${flex}`};\n ${({ theme, gap }) => gap && `gap: ${parseDimension(theme, gap)}`};\n ${({ theme, columnGap }) => columnGap && `column-gap: ${parseDimension(theme, columnGap)}`};\n ${({ theme, rowGap }) => rowGap && `row-gap: ${parseDimension(theme, rowGap)}`};\n ${({ gridColumn }) => gridColumn && `grid-column: ${gridColumn}`};\n ${({ gridRow }) => gridRow && `grid-row: ${gridRow}`};\n ${({ gridTemplateColumns }) => gridTemplateColumns && `grid-template-columns: ${gridTemplateColumns}`};\n ${({ gridTemplateRows }) => gridTemplateRows && `grid-template-rows: ${gridTemplateRows}`};\n ${({ gridTemplateAreas }) => gridTemplateAreas && `grid-template-areas: ${gridTemplateAreas}`};\n ${({ theme, color }) => color && `color: ${parseColor(theme, color)};`}\n\n ${({ position }) => position && `position: ${position}`};\n ${({ theme, top }) => top != null && `top: ${parseDimension(theme, top)}`};\n ${({ theme, right }) => right != null && `right: ${parseDimension(theme, right)}`};\n ${({ theme, bottom }) => bottom != null && `bottom: ${parseDimension(theme, bottom)}`};\n ${({ theme, left }) => left != null && `left: ${parseDimension(theme, left)}`};\n ${({ theme, inset }) => inset != null && `inset: ${parseDimension(theme, inset)}`};\n ${({ theme, fontSize }) => fontSize && `font-size: ${parseFontSize(theme, fontSize)}`};\n ${({ lineHeight }) => lineHeight && `line-height: ${lineHeight}`};\n ${({ theme, fontWeight }) =>\n fontWeight && `font-weight: ${getThemeDimensionValue(theme, fontWeight.toString()) ?? fontWeight}`};\n ${({ theme, lineHeight }) =>\n lineHeight && `line-height: ${getThemeDimensionValue(theme, lineHeight.toString()) ?? lineHeight}`};\n ${({ textDecoration }) => textDecoration != null && `text-decoration: ${textDecoration}`};\n ${({ textTransform }) => textTransform && `text-transform: ${textTransform}`};\n ${({ textAlign }) => textAlign && `text-align: ${textAlign}`};\n ${({ textOverflow }) => textOverflow && `text-overflow: ${textOverflow}`};\n ${({ whiteSpace }) => whiteSpace && `white-space: ${whiteSpace}`};\n ${({ verticalAlign }) => verticalAlign && `vertical-align: ${verticalAlign}`};\n ${({ border }) => border && `border: ${border}`};\n ${({ borderTop }) => borderTop && `border-top: ${borderTop}`};\n ${({ borderRight }) => borderRight && `border-right: ${borderRight}`};\n ${({ borderBottom }) => borderBottom && `border-bottom: ${borderBottom}`};\n ${({ borderLeft }) => borderLeft && `border-left: ${borderLeft}`};\n ${({ borderColor, theme }) => borderColor && `border-color: ${parseColor(theme, borderColor)}`};\n ${({ borderWidth, theme }) => borderWidth && `border-width: ${parseDimension(theme, borderWidth)}`};\n ${({ borderStyle }) => borderStyle && `border-style: ${borderStyle}`};\n ${({ borderRadius, theme }) => borderRadius && `border-radius: ${parseDimension(theme, borderRadius)}`};\n\n ${({ overflow }) => overflow && `overflow: ${overflow}`};\n ${({ overflowX }) => overflowX && `overflow-x: ${overflowX}`};\n ${({ overflowY }) => overflowY && `overflow-y: ${overflowY}`};\n\n ${({ opacity }) => opacity != null && `opacity: ${opacity}`};\n\n ${({ zIndex }) => zIndex != null && `z-index: ${zIndex}`};\n ${({ cursor }) => cursor != null && `cursor: ${cursor}`};\n\n ${({ transition }) => transition != null && `transition: ${transition}`};\n\n ${({ boxShadow, theme }) => boxShadow != null && `box-shadow: ${parseColor(theme, boxShadow)}`};\n ${({ backdropFilter, theme }) => backdropFilter != null && `backdrop-filter: ${parseColor(theme, backdropFilter)}`};\n\n ${({ gridArea }) => gridArea && `grid-area: ${gridArea}`};\n`;\n\nexport const Box = styled.div\n .withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !noForwardProps.has(prop) && defaultValidatorFn(prop),\n })\n .attrs(({ theme, ...props }) => ({\n style: {\n ...props.style,\n // Move a few props to style rather than the generated css class\n // These ones change a lot, we don't want to generate a unique class for every variation of them\n background: props.background\n ? typeof props.background === 'string'\n ? parseColor(theme, props.background)\n : props.background\n : props.style?.background,\n },\n }))`\n ${box};\n`;\n","import styled, { type CSSProperties, type DefaultTheme } from 'styled-components';\nimport { parseDimension } from '../../styles';\nimport { Box, type BoxProps } from './Box';\n\nexport interface FlexProps extends BoxProps {\n /** Justify Content */\n justifyContent?: CSSProperties['justifyContent'];\n /** Align Items */\n alignItems?: CSSProperties['alignItems'];\n /** Flex */\n flex?: CSSProperties['flex'];\n /** Flex Direction */\n flexDirection?: CSSProperties['flexDirection'];\n /** Gap */\n gap?: CSSProperties['gap'] | keyof DefaultTheme | string | number;\n}\n\n/** Simple flex div\n *\n * Set flex properties without creating a new component.\n */\nexport const Flex = styled(Box)`\n display: flex;\n ${({ flexDirection }) => flexDirection && `flex-direction: ${flexDirection}`};\n ${({ justifyContent }) => justifyContent && `justify-content: ${justifyContent}`};\n ${({ alignItems }) => alignItems && `align-items: ${alignItems}`};\n ${({ flex }) => flex && `flex: ${flex}`};\n ${({ theme, gap }) => gap && `gap: ${parseDimension(theme, gap)}`};\n`;\n","import type { CSSProperties } from 'react';\nimport styled from 'styled-components';\nimport { parseDimension } from '../../styles';\nimport { Box, type BoxProps } from './Box';\n\nexport interface GridProps extends BoxProps {\n columns?: CSSProperties['gridTemplateColumns'];\n rows?: CSSProperties['gridTemplateRows'];\n gap?: CSSProperties['gap'] | string;\n placeItems?: CSSProperties['placeItems'];\n justifyItems?: CSSProperties['justifyItems'];\n}\n\nexport const Grid = styled(Box)`\n display: grid;\n ${({ placeItems }) => placeItems && `place-items: ${placeItems}`};\n ${({ justifyItems }) => justifyItems && `justify-items: ${justifyItems}`};\n ${({ columns }) => columns && `grid-template-columns: ${columns}`};\n ${({ rows }) => rows && `grid-template-rows: ${rows}`};\n ${({ theme, gap }) => gap && `gap: ${parseDimension(theme, gap)}`};\n`;\n","import styled from 'styled-components';\nimport { Flex, type FlexProps } from './Flex';\n\n/** Simple flex div with 'flex-direction: row'\n *\n * Set flex properties without creating a new component.\n *\n * Default Props:\n * - justifyContent: 'center'\n * - alignItems: 'center'\n */\nexport const HStack = styled(Flex)`\n flex-direction: row;\n`;\n\nHStack.defaultProps = {\n justifyContent: 'center',\n alignItems: 'center',\n};\n","import styled from 'styled-components';\nimport { Flex, type FlexProps } from './Flex';\n\n/** Simple flex div with 'flex-direction: column'\n *\n * Set flex properties without creating a new component.\n *\n * Default Props:\n * - justifyContent: 'center'\n * - aligntItems: 'center'\n */\nexport const VStack = styled(Flex)`\n flex-direction: column;\n`;\n\nVStack.defaultProps = {\n justifyContent: 'center',\n alignItems: 'center',\n};\n","import { isString } from 'lodash';\nimport type { CSSProperties } from 'react';\nimport styled, { type DefaultTheme } from 'styled-components';\nimport type { KeysBeginningWith } from '../../utils/types';\nimport { Box } from '../Core';\n\nfunction lineHeightFor(\n theme: DefaultTheme,\n fontSize: number | KeysBeginningWith | undefined\n): CSSProperties['lineHeight'] | undefined {\n if (!isString(fontSize)) {\n return undefined;\n }\n if (!fontSize.startsWith('fontSize')) {\n return undefined;\n }\n const lineHeightProp = fontSize.replace('fontSize', 'lineHeight');\n return lineHeightProp in theme ? `line-height: ${theme[lineHeightProp]}rem` : undefined;\n}\n\nexport const Text = styled(Box).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => defaultValidatorFn(prop),\n})<{\n size?: number | KeysBeginningWith;\n weight?: CSSProperties['fontWeight'];\n transform?: CSSProperties['textTransform'];\n fontStyle?: CSSProperties['fontStyle'];\n}>`\n ${({ theme, size }) => size != null && `font-size: ${theme[size] ?? size}rem`};\n ${({ theme, size }) => lineHeightFor(theme, size)};\n ${({ transform }) => transform != null && `text-transform: ${transform}`};\n ${({ theme, weight }) => weight != null && `font-weight: ${theme[weight] ?? weight}`};\n ${({ fontStyle }) => fontStyle != null && `font-style: ${fontStyle}`};\n`;\n\n// TODO TS doesn't seem to think the `as` prop exists, see https://stackoverflow.com/q/69430472\n(Text as any).defaultProps = {\n as: 'span',\n};\n","import { abbreviate, type AbbreviateOptions } from '../../utils';\nimport { HStack } from '../Core';\nimport { Text } from '../Text';\n\nexport function AbbrLimit({\n value,\n currency,\n options,\n}: {\n value: string | undefined;\n currency?: string;\n options?: AbbreviateOptions;\n}) {\n return (\n \n {value !== undefined ? abbreviate(value, options) : '-'}\n {currency && {currency}}\n \n );\n}\n","import { createContext, useContext } from 'react';\nimport type { AccordionOutputs } from './useAccordion';\n\nexport const AccordionContext = createContext(undefined);\nAccordionContext.displayName = 'AccordionContext';\n\nexport function useAccordionContext() {\n const context = useContext(AccordionContext);\n if (context === undefined) {\n throw new Error('Missing AccordionContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import type { ReactNode } from 'react';\nimport { Box, type BoxProps } from '../Core';\nimport { AccordionContext } from './AccordionContext';\nimport type { AccordionOutputs } from './useAccordion';\n\nexport type AccordionProps = AccordionOutputs & { children: ReactNode } & Pick;\n\nexport const Accordion = ({ children, w, ...accordion }: AccordionProps) => {\n return (\n \n {children}\n \n );\n};\n","import { useCallback, useRef } from 'react';\n\n/**\n * Provides a stable function that will always call the latest version of the provided callback.\n * @param callback The callback to be used\n * @returns\n */\nexport function useDynamicCallback unknown>(callback?: T): T {\n const ref = useRef();\n ref.current = callback;\n // @ts-expect-error Weird type-checking issue here, should probably find a way to fix that yet\n return useCallback((...args) => ref.current?.apply(this, args), []);\n}\n","import { debounce, inRange, type DebounceSettings } from 'lodash';\nimport { useCallback, useEffect, useRef, useState, type RefObject } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { useDynamicCallback } from './useDynamicCallback';\n\nexport interface UseElementSizeParams {\n /** The debounce time in milliseconds */\n debounceWait?: number;\n /** Lodash's DebounceSettings */\n debounceOptions?: DebounceSettings;\n /** When provided, the caller will only receive updates for the given thresholds passed in.\n * For example, if the caller passes in `[\"offsetWidth\", [1000]]`, the caller will only ever receive size updates\n * when the offsetWidth crosses 1000.\n */\n thresholds?: [keyof ElementSizeProps, number[]][];\n}\n\nexport function useElementSize(props?: UseElementSizeParams) {\n const elementRef = useRef(null);\n const { size } = useElementSizeOfRef({ ref: elementRef, ...props });\n return { elementRef, size };\n}\n\ninterface UseElementSizeOfRefParams extends UseElementSizeParams {\n ref: RefObject;\n}\n\nexport function useElementSizeOfRef({\n ref,\n thresholds,\n debounceWait,\n debounceOptions,\n}: UseElementSizeOfRefParams) {\n const requestedFrame = useRef(0);\n const [size, setSize] = useState({});\n const [observer] = useState(() => {\n if (debounceWait != null) {\n return new ResizeObserver(\n debounce(\n // checkSize has the potential to change the size state, which appears to cause a re-triggering of\n // the ResizeObserver and the error 'ResizeObserver loop completed with undelivered notifications.')\n // so we defer the call to the next event loop\n // https://github.com/ReactTooltip/react-tooltip/issues/1136\n ([entry]: ResizeObserverEntry[]) => setTimeout(() => checkSize(entry)),\n debounceWait,\n debounceOptions\n )\n );\n } else {\n return new ResizeObserver(([entry]: ResizeObserverEntry[]) => checkSize(entry));\n }\n });\n\n const checkSizeImpl = useCallback(\n (target: Element | undefined) => {\n if (!ref.current) {\n return;\n }\n\n setSize(prev => {\n if (!(target instanceof HTMLElement)) {\n return prev;\n }\n\n if (thresholds != null && isSizePropsInstantiated(prev)) {\n const someThresholdCrossed = thresholds.some(([property, levels]) => {\n // We have crossed some threshold if there is any \"level\" between prev property and current property values\n const prevValue = prev[property] ?? 0;\n const newValue = target[property] ?? 0;\n return levels.some(level => inRange(level, Math.min(prevValue, newValue), Math.max(prevValue, newValue)));\n });\n\n if (!someThresholdCrossed) {\n return prev;\n }\n }\n\n return {\n left: target.offsetLeft,\n top: target.offsetTop,\n scrollWidth: target.scrollWidth,\n scrollHeight: target.scrollHeight,\n offsetWidth: target.offsetWidth,\n offsetHeight: target.offsetHeight,\n clientWidth: target.clientWidth,\n clientHeight: target.clientHeight,\n };\n });\n },\n [ref, thresholds]\n );\n\n const checkSize = useDynamicCallback((entry: ResizeObserverEntry): void => {\n // react-use also cancels their requestAnimationFrames (https://github.com/streamich/react-use/blob/master/src/useMeasureDirty.ts)\n window.cancelAnimationFrame(requestedFrame.current);\n // https://stackoverflow.com/a/58701523\n requestedFrame.current = window.requestAnimationFrame(() => {\n checkSizeImpl(entry?.target);\n });\n });\n\n useEffect(() => {\n if (ref.current != null && ref.current instanceof HTMLElement) {\n observer.observe(ref.current);\n checkSizeImpl(ref.current);\n return () => observer.disconnect();\n }\n }, [observer, ref, checkSizeImpl]);\n\n return { size };\n}\n\n// If any value here is not null, eg offsetWidth, then we should be instantiated\nfunction isSizePropsInstantiated(sizeProps: SizeProps) {\n return sizeProps.offsetWidth != null;\n}\n\nexport type SizeProps = ElementSizeProps & {\n left?: number;\n top?: number;\n};\n\nexport type ElementSizeProps = {\n offsetHeight?: number;\n offsetWidth?: number;\n scrollHeight?: number;\n scrollWidth?: number;\n clientHeight?: number;\n clientWidth?: number;\n};\n","import { animated } from '@react-spring/web';\nimport styled from 'styled-components';\nimport { hoverColor, parseDimension } from '../../styles';\nimport { Box } from '../Core';\n\nexport const ChevronWrapper = styled.div`\n &:hover {\n cursor: pointer;\n }\n`;\n\nexport const Header = styled(Box)<{ clickable: boolean; ghost: boolean }>`\n padding: ${({ theme, p }) => (p != null ? parseDimension(theme, p) : `${theme.spacingMedium}px`)};\n display: flex;\n flex-direction: row;\n gap: ${({ theme }) => theme.spacingDefault}px;\n align-items: center;\n transition: background 200ms;\n\n ${({ clickable, ghost, theme }) =>\n clickable &&\n `\n :hover {\n cursor: pointer;\n ${!ghost ? `background: ${hoverColor(theme, theme.backgroundContentHover)};` : ''}\n }\n `};\n`;\n\nHeader.defaultProps = {\n background: 'backgroundContent',\n};\n\n// we set height: fit-content and use the max-height to do the animation. See link below for explanation\n// https://css-tricks.com/using-css-transitions-auto-dimensions/\nexport const AccordionContent = styled(animated.div).withConfig<{ ghost: boolean }>({\n shouldForwardProp: (prop, defaultValidatorFn) => prop !== 'ghost' && defaultValidatorFn(prop),\n})`\n background: ${({ theme, ghost }) => (!ghost ? theme.backgroundAccordionContent : 'transparent')};\n height: fit-content;\n`;\n\nexport const ContentWrapper = styled(Box)``;\n\nContentWrapper.defaultProps = {\n p: 'spacingMedium',\n};\n","import { useSpring } from '@react-spring/web';\nimport { useMemo, useState, type ReactNode } from 'react';\nimport { useTheme } from 'styled-components';\nimport { useDynamicCallback } from '../../hooks/useDynamicCallback';\nimport { useElementSize } from '../../hooks/useElementSize';\nimport type { BoxProps } from '../Core';\nimport { useAccordionContext } from './AccordionContext';\nimport { AccordionContent, ContentWrapper } from './styles';\n\nconst DEFAULT_ACCORDION_BODY_DURATION = 200;\n\nexport const AccordionBody = ({\n children,\n animate = true,\n /** If set to true, will add a border-top to the AccordionBody when it is considered open (visible height > 0) */\n borderTopWhenOpened = false,\n ...props\n}: BoxProps & { children: ReactNode; animate?: boolean; borderTopWhenOpened?: boolean }) => {\n const theme = useTheme();\n const { isOpen, initialOpen, ghost, onOpened, onClosed } = useAccordionContext();\n const [overflow, setOverflow] = useState(initialOpen ? 'visible' : 'hidden');\n\n // This piece of state tracks whether we last completed a closing or opening\n const [latestCompletedState, setLatestCompletedState] = useState<'opened' | 'closed'>(\n initialOpen ? 'opened' : 'closed'\n );\n\n const {\n elementRef,\n size: { scrollHeight },\n } = useElementSize();\n // If initialOpen is set to true, we should not animate the first opening of accordion.\n const [animateOpening, setAnimateOpening] = useState(!initialOpen);\n const onStart = useDynamicCallback((opened: boolean) => {\n if (!opened) {\n setOverflow('hidden');\n }\n });\n const onRest = useDynamicCallback((opened: boolean) => {\n // if we're not animating, don't do anything onRest\n if (animateOpening) {\n if (opened) {\n onOpened?.();\n setOverflow('visible');\n setLatestCompletedState('opened');\n } else {\n onClosed?.();\n setLatestCompletedState('closed');\n }\n }\n setAnimateOpening(true);\n });\n\n const [{ maxHeight }] = useSpring(\n {\n maxHeight: !animateOpening && isOpen ? scrollHeight : (isOpen && scrollHeight) || 0,\n onRest: () => onRest(isOpen),\n onStart: () => onStart(isOpen),\n config: {\n duration: animate && (animateOpening || !isOpen) ? DEFAULT_ACCORDION_BODY_DURATION : 0,\n },\n },\n [isOpen, animateOpening, onRest, scrollHeight, onStart]\n );\n\n const style = useMemo(() => ({ maxHeight, overflow }), [maxHeight, overflow]);\n\n // Kinda tricky logic. If latest completed state is opened, we know that we are open. Easy\n // If latest completed state is closed, then we are either fully closed or going from closed -> opened, so check if \"isOpen\" is true too since that tells us we're animating towards fully opened\n const showBorderTop = borderTopWhenOpened\n ? latestCompletedState === 'opened' || (latestCompletedState === 'closed' && isOpen)\n : false;\n\n return (\n \n \n {children}\n \n \n );\n};\n","import { useEffect, useMemo, useState } from 'react';\n\nexport const useMatchMedia = (mediaQuery: string) => {\n const mql = useMemo(\n // window.matchMedia is undefined in tests.\n () => window.matchMedia?.(mediaQuery) as MediaQueryList | undefined,\n [mediaQuery]\n );\n const [match, setMatch] = useState(!!mql?.matches);\n\n useEffect(() => {\n if (mql) {\n const callback = (e: MediaQueryListEvent) => {\n setMatch(e.matches);\n };\n mql.addEventListener('change', callback);\n return () => {\n mql.removeEventListener('change', callback);\n };\n }\n }, [mql]);\n return match;\n};\n","import { useMatchMedia } from './useMatchMedia';\n\nexport type DeviceTypes = 'tablet' | 'mobile' | 'desktop';\nexport const useDeviceType = (): DeviceTypes => {\n // const isTouch = useMatchMedia('(pointer:coarse)');\n const isTablet = useMatchMedia('(max-width: 1200px)');\n const isMobile = useMatchMedia('(max-width: 768px)');\n\n if (navigator.userAgent.toLowerCase().includes('mobile')) {\n return 'mobile';\n }\n\n return isMobile ? 'mobile' : isTablet ? 'tablet' : 'desktop';\n};\n","import { createContext, useContext, type ReactNode } from 'react';\nimport type { PopoverStateProps } from '../components/Popover/types';\n\ntype OverridePopoverProps = Partial>;\n\nconst OverridePopoverPropsContext = createContext({});\nOverridePopoverPropsContext.displayName = 'OverridePopoverPropsContext';\n\nexport function OverridePopoverPropsProvider({\n overrideProps,\n children,\n}: {\n children: ReactNode;\n overrideProps: OverridePopoverProps;\n}) {\n return {children};\n}\n\nexport function useOverridePopoverProps() {\n const context = useContext(OverridePopoverPropsContext);\n return context;\n}\n","import { createContext, useContext } from 'react';\n\nexport const dropdownContextDefaultValue: DropdownContextProps = { withinDropdown: true };\nexport const DropdownContext = createContext(undefined);\n\nexport interface DropdownContextProps {\n withinDropdown: boolean;\n}\n\nexport function useDropdownContext() {\n return useContext(DropdownContext);\n}\n","import { createContext } from 'react';\n\nexport interface PortalContextProps {\n getElement: (portalId: string) => T | null;\n setElement: (portalId: string, node: T | null) => void;\n}\nexport const PortalContext = createContext(null);\nPortalContext.displayName = 'PortalContext';\n","import { isNil } from 'lodash';\nimport { useCallback, useContext, type RefCallback } from 'react';\nimport { PortalContext } from '../contexts/PortalContext';\n\nexport function usePortal(\n portalId: string\n): { portalRef: HTMLElement | null; setPortalRef: RefCallback } {\n const context = useContext(PortalContext);\n if (isNil(context)) {\n throw new Error(`Missing PortalContext.Provider further up in the tree. Did you forget to add it?`);\n }\n const { getElement, setElement } = context;\n const portalRef = getElement(portalId);\n\n const setPortalRef: RefCallback = useCallback(\n node => {\n setElement(portalId, node);\n },\n [portalId, setElement]\n );\n\n return { portalRef, setPortalRef };\n}\n","import { useCallback, useEffect, type PropsWithChildren, type ReactPortal } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePortal } from '../../hooks/usePortal';\n\nexport interface PortalProps {\n portalId: string;\n}\n\n/** A unique identifier of our top-level portals */\nexport const PORTAL_PARENT_CLASS = '__portal-parent__';\n\nexport const Portal = ({ children, portalId }: PropsWithChildren) => {\n const { portalRef } = usePortal(portalId);\n // Used for injecting the filters + action items in the parent container\n const PortalCallback = useCallback(\n ({ children }: PropsWithChildren): ReactPortal | null => {\n if (portalRef == null) {\n return null;\n }\n return createPortal(children, portalRef);\n },\n [portalRef]\n );\n\n return {children};\n};\n\nexport const useTopLevelPortalElement = (portalId: string) => {\n const { portalRef, setPortalRef } = usePortal(portalId);\n useEffect(() => {\n if (!portalRef) {\n let parentElem = document.querySelector(`#${portalId}`);\n\n if (!parentElem) {\n parentElem = document.createElement('div');\n parentElem.setAttribute('id', portalId);\n\n // Simple workaround for preventing custom date filter to close when selecting a date:\n // @see https://www.ag-grid.com/react-grid/component-filter/#custom-filters-containing-a-popup-element\n // Also, set a unique class attribute on the talos portals such that other elements can figure out if they're within a portal\n parentElem.setAttribute('class', `ag-custom-component-popup ${PORTAL_PARENT_CLASS}`);\n\n document.body.insertBefore(parentElem, document?.body?.lastElementChild?.nextElementSibling ?? null);\n }\n setPortalRef(parentElem);\n }\n }, [portalId, portalRef, setPortalRef]);\n};\n","import { animated } from '@react-spring/web';\nimport styled, { css } from 'styled-components';\nimport { Z_INDEX, parseDimension } from '../../styles';\nimport { Flex } from '../Core';\n\nexport const Overlay = styled(animated.div).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['isTransparent'].includes(prop) && defaultValidatorFn(prop),\n})<{ isTransparent?: boolean; isCentered: boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n ${({ isCentered }) =>\n isCentered &&\n css`\n align-items: center;\n `}\n z-index: ${Z_INDEX.modal};\n background: ${({ theme, isTransparent }) => (isTransparent ? 'transparent' : theme.backgroundOverlay)};\n\n .focus-lock {\n overflow: hidden;\n }\n`;\n\nexport const DEFAULT_MODAL_MARGIN = 'spacingMedium';\nexport const Wrapper = styled(animated(Flex)).withConfig({\n shouldForwardProp: prop => !(typeof prop === 'string' && ['isControlled', 'open', 'toggle'].includes(prop)),\n})`\n ${({ theme, width }) => width && `width: ${parseDimension(theme, width)}`};\n ${({ theme, maxWidth }) =>\n `max-width: ${maxWidth ? parseDimension(theme, maxWidth) : `calc(100% - ${theme[DEFAULT_MODAL_MARGIN] * 2}px)`}`};\n`;\nWrapper.defaultProps = {\n m: DEFAULT_MODAL_MARGIN,\n borderRadius: 'borderRadiusDefault',\n borderColor: 'borderColorModal',\n background: 'backgroundModal',\n flexDirection: 'column',\n boxShadow: '0 1px 15px hsla(0, 0%, 0%, 0.25)',\n};\n","// LIFTED FROM https://github.com/juliencrn/usehooks-ts/blob/master/packages/usehooks-ts/src/useEventListener/useEventListener.ts\n// - for better typing, included testing\n// - once we've fully adopted ESM, we can remove this and use usehooks-ts\nimport { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport type { RefObject } from 'react';\n\n// MediaQueryList Event based useEventListener interface\nfunction useEventListener(\n eventName: K,\n handler: (event: MediaQueryListEventMap[K]) => void,\n element: RefObject,\n options?: boolean | AddEventListenerOptions\n): void;\n\n// Window Event based useEventListener interface\nfunction useEventListener(\n eventName: K,\n handler: (event: WindowEventMap[K]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions\n): void;\n\n// Element Event based useEventListener interface\nfunction useEventListener<\n K extends keyof HTMLElementEventMap & keyof SVGElementEventMap,\n T extends Element = K extends keyof HTMLElementEventMap ? HTMLDivElement : SVGElement\n>(\n eventName: K,\n handler: ((event: HTMLElementEventMap[K]) => void) | ((event: SVGElementEventMap[K]) => void),\n element: RefObject,\n options?: boolean | AddEventListenerOptions\n): void;\n\n// Document Event based useEventListener interface\nfunction useEventListener(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void,\n element: RefObject,\n options?: boolean | AddEventListenerOptions\n): void;\n\n/**\n * Custom hook that attaches event listeners to DOM elements, the window, or media query lists.\n * @template KW - The type of event for window events.\n * @template KH - The type of event for HTML or SVG element events.\n * @template KM - The type of event for media query list events.\n * @template T - The type of the DOM element (default is `HTMLElement`).\n * @param {KW | KH | KM} eventName - The name of the event to listen for.\n * @param {(event: WindowEventMap[KW] | HTMLElementEventMap[KH] | SVGElementEventMap[KH] | MediaQueryListEventMap[KM] | Event) => void} handler - The event handler function.\n * @param {RefObject} [element] - The DOM element or media query list to attach the event listener to (optional).\n * @param {boolean | AddEventListenerOptions} [options] - An options object that specifies characteristics about the event listener (optional).\n * @public\n * @see [Documentation](https://usehooks-ts.com/react-hook/use-event-listener)\n * @example\n * ```tsx\n * // Example 1: Attach a window event listener\n * useEventListener('resize', handleResize);\n * ```\n * @example\n * ```tsx\n * // Example 2: Attach a document event listener with options\n * const elementRef = useRef(document);\n * useEventListener('click', handleClick, elementRef, { capture: true });\n * ```\n * @example\n * ```tsx\n * // Example 3: Attach an element event listener\n * const buttonRef = useRef(null);\n * useEventListener('click', handleButtonClick, buttonRef);\n * ```\n */\nfunction useEventListener<\n KW extends keyof WindowEventMap,\n KH extends keyof HTMLElementEventMap & keyof SVGElementEventMap,\n KM extends keyof MediaQueryListEventMap,\n T extends HTMLElement | SVGAElement | MediaQueryList = HTMLElement\n>(\n eventName: KW | KH | KM,\n handler: (\n event: WindowEventMap[KW] | HTMLElementEventMap[KH] | SVGElementEventMap[KH] | MediaQueryListEventMap[KM] | Event\n ) => void,\n element?: RefObject,\n options?: boolean | AddEventListenerOptions\n) {\n // Create a ref that stores handler\n const savedHandler = useRef(handler);\n\n useLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Define the listening target\n const targetElement: T | Window = element?.current ?? window;\n\n if (!(targetElement && targetElement.addEventListener)) {\n return;\n }\n\n // Create event listener that calls handler function stored in ref\n const listener: typeof handler = event => {\n savedHandler.current(event);\n };\n\n targetElement.addEventListener(eventName, listener, options);\n\n // Remove event listener on cleanup\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\nexport { useEventListener };\n","import { useEffect, useRef, type ForwardedRef } from 'react';\n\nexport function useForwardedRef(ref: ForwardedRef) {\n const innerRef = useRef(null);\n\n useEffect(() => {\n if (!ref) {\n return;\n }\n if (typeof ref === 'function') {\n ref(innerRef.current);\n } else {\n ref.current = innerRef.current;\n }\n });\n\n return innerRef;\n}\n","export const DROPDOWN_ID = 'talos-dropdown-portal-id';\nexport const DROPDOWN_ID_2 = 'talos-dropdown-portal-id-2';\n","import { useCallback, type RefObject } from 'react';\nimport { useEvent } from 'react-use';\nimport { DROPDOWN_ID } from '../components/Form/Dropdown/tokens';\nimport { useDynamicCallback } from './useDynamicCallback';\n\nexport const useOnClickOutside = (\n ref: RefObject,\n handler?: (e: MouseEvent) => void\n) => {\n const isClickingOutsideRef = useDynamicCallback((e: MouseEvent) => {\n // we ignore any clicks in an autocomplete dropdown\n // at some later time we can make this functionality more flexible. Maybe allow the user of this hook to pass a list of refs to check against.\n const autocompleteDropdown = document.getElementById(DROPDOWN_ID);\n if (autocompleteDropdown?.contains(e.target as Node)) {\n return false;\n }\n\n // normal case\n return !ref.current || !ref.current.contains(e.target as Node);\n });\n\n const onClick = useCallback(\n (e: any) => {\n if (isClickingOutsideRef(e)) {\n handler?.(e);\n }\n },\n [isClickingOutsideRef, handler]\n );\n\n useEvent('mousedown', handler ? onClick : null, document);\n};\n","import { easings, useTransition, type UseTransitionProps } from '@react-spring/web';\nimport { createContext, type CSSProperties, forwardRef, type PropsWithChildren, useCallback, useContext } from 'react';\nimport FocusLock from 'react-focus-lock';\n\nimport { Portal, useTopLevelPortalElement } from '../Portal';\nimport { Overlay, Wrapper } from './styles';\n\nimport { noop } from 'lodash';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useForwardedRef } from '../../hooks/useForwardedRef';\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside';\nimport type { BoxProps } from '../Core';\n\nconst MODAL_TRANSITION: UseTransitionProps = {\n from: { opacity: 0, transform: 'scale(0.9) translateY(12px)' },\n enter: { opacity: 1, transform: 'scale(1) translateY(0)' },\n leave: { opacity: 0, transform: 'scale(0.9) translateY(12px)' },\n config: {\n duration: 300,\n easing: easings.easeOutBack,\n },\n delay: 100,\n};\n\nconst OVERLAY_TRANSITION: UseTransitionProps = {\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n config: (isOpen, i, phase) => ({\n duration: phase === 'enter' ? 200 : 100,\n }),\n};\n\nexport type ModalProps = PropsWithChildren<\n {\n isOpen: boolean;\n close(): void;\n\n autoFocusFirstElement?: boolean;\n /** Disable Focus Lock when it interferes\n * (e.g. seen in certain scenarios, like monaco-editor right-click menus) */\n disableFocusLock?: boolean;\n useOverlay?: boolean;\n usePortal?: boolean;\n portalID?: string;\n closeOnEscape?: boolean;\n closeOnClickOutside?: boolean;\n width?: number | string;\n /**\n * If provided, modal will float with the margin top specified, and grow downwards.\n */\n mt?: CSSProperties['marginTop'];\n\n style?: CSSProperties;\n preventClosing?: boolean;\n } & Omit\n>;\n\nexport const Modal = forwardRef(\n (\n {\n close,\n closeOnEscape = true,\n closeOnClickOutside = true,\n useOverlay = true,\n usePortal = true,\n portalID = 'modal',\n isOpen,\n width,\n autoFocusFirstElement = true,\n disableFocusLock = false,\n children,\n mt,\n preventClosing = false,\n ...props\n },\n ref\n ) => {\n const transition = useTransition(isOpen, MODAL_TRANSITION);\n useTopLevelPortalElement('modal');\n\n const MaybePortal = usePortal ? Portal : MockPortal;\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEscape && e.key === 'Escape' && isOpen) {\n if (!preventClosing) {\n close();\n e.stopPropagation();\n }\n }\n },\n [close, closeOnEscape, isOpen, preventClosing]\n );\n\n useEventListener('keydown', isOpen ? onKeyDown : noop);\n\n const innerRef = useForwardedRef(ref);\n useOnClickOutside(innerRef, isOpen && closeOnClickOutside && !preventClosing ? close : undefined);\n return (\n \n \n \n {transition(\n (style, item, t) =>\n item && (\n \n \n {children}\n \n \n )\n )}\n \n \n \n );\n }\n);\n\n// Use when we don't want a portal, but still allows us to set portalId\nconst MockPortal = ({ children }: PropsWithChildren<{ portalId: string }>) => <>{children};\n\nfunction MaybeOverlay({\n useOverlay,\n isOpen,\n isCentered,\n children,\n}: PropsWithChildren<{ useOverlay: boolean; isOpen: boolean; isCentered: boolean }>) {\n const transition = useTransition(isOpen, OVERLAY_TRANSITION);\n return transition(\n (style, item) =>\n item && (\n \n {children}\n \n )\n );\n}\n\nconst modalContextDefaultValue: ModalContextProps = { portalize: true };\nconst ModalContext = createContext(undefined);\n\nexport interface ModalContextProps {\n portalize: boolean;\n}\n\nexport function useModalContext() {\n return useContext(ModalContext);\n}\n","import styled, { css } from 'styled-components';\n\nimport { animated } from '@react-spring/web';\nimport type { ReMap } from '../../utils/types';\nimport type { PopoverContentProps } from './types';\nimport { PopoverVariant } from './types';\n\ntype Props = ReMap>;\nexport const Target = styled.span`\n display: inherit;\n height: fit-content;\n &:focus,\n &:active {\n outline: none;\n }\n`;\n\nfunction getContentBackground(variant?: PopoverVariant) {\n switch (variant) {\n case PopoverVariant.Primary:\n return 'var(--colors-primary-default)';\n case PopoverVariant.Positive:\n return 'var(--colors-green-dim)';\n case PopoverVariant.Negative:\n return 'var(--colors-red-dim)';\n case PopoverVariant.Warning:\n return 'var(--colors-yellow-dim)';\n default:\n return 'var(--backgroundPopover)';\n }\n}\n\nexport const Content = styled.div.withConfig<\n Props<'isSmall' | 'overflow' | 'placement' | 'overflowY' | 'noPaddingAndBorder' | 'variant'>\n>({\n shouldForwardProp: (prop, validator) => prop !== 'isSmall' && validator(prop),\n})`\n background: ${({ variant }) => getContentBackground(variant)};\n border: solid 1px ${({ theme }) => theme.borderColorPopover};\n padding: ${({ theme }) => theme.spacingDefault}px;\n font-weight: ${({ theme }) => theme.fontWeightRegular};\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n box-shadow: 0 1px 5px hsla(0, 0%, 0%, 0.1), 0 1px 15px hsla(0, 0%, 0%, 0.05);\n white-space: normal;\n text-align: left;\n line-height: normal;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n ${({ overflow, overflowY = 'auto', placement, isSmall, theme }) => {\n return (\n overflow?.top &&\n `overflow-y: ${overflowY}; max-height: min(100vh, calc(100vh - ${Math.abs(overflow.top)}px ${\n placement?.startsWith('top') || placement?.startsWith('bottom') ? (isSmall ? `- 10px` : `- 12px`) : ''\n } - ${theme.spacingDefault * 2}px));`\n );\n }}\n ${({ noPaddingAndBorder }) =>\n noPaddingAndBorder &&\n css`\n border: unset; // this will overwrite above.\n padding: 0px; // this will overwrite above.\n `}\n`;\n\nexport const Wrapper = styled(animated.div).withConfig>({\n shouldForwardProp: (prop, validator) => prop !== 'isSmall' && validator(prop),\n})`\n ${({ theme, isSmall, placement }) => {\n return isSmall\n ? `\n ${placement?.startsWith('top') && `padding-bottom: 10px`};\n ${placement?.startsWith('right') && `padding-left: 10px`};\n ${placement?.startsWith('bottom') && `padding-top: 10px`};\n ${placement?.startsWith('left') && `padding-right: 10px`};\n ${Content} {\n background: ${theme.backgroundPopover};\n padding: ${theme.spacingSmall}px;\n }\n `\n : `\n ${placement?.startsWith('top') && `padding-bottom: ${theme.spacingSmall}px`};\n ${placement?.startsWith('right') && `padding-left: ${theme.spacingSmall}px`};\n ${placement?.startsWith('bottom') && `padding-top: ${theme.spacingSmall}px`};\n ${placement?.startsWith('left') && `padding-right: ${theme.spacingSmall}px`};\n `;\n }}\n`;\n","import type Popper from '@popperjs/core';\nimport { detectOverflow } from '@popperjs/core';\nimport { animated, easings, useTransition } from '@react-spring/web';\nimport { Children, forwardRef, useCallback, useEffect, useMemo, useState, type MouseEvent } from 'react';\nimport { usePopper, type Modifier } from 'react-popper';\nimport { useTheme } from 'styled-components';\n\nimport { noop } from 'lodash';\nimport { useDeviceType } from '../../hooks/useDeviceType';\nimport { useOverridePopoverProps } from '../../providers/OverridePopoverPropsProvider';\nimport { Z_INDEX } from '../../styles/layout';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../../utils/empty';\nimport { useDropdownContext } from '../Form/Dropdown/DropdownContext';\nimport { useModalContext } from '../Modal';\nimport { Portal, useTopLevelPortalElement } from '../Portal';\nimport { Content, Target, Wrapper } from './styles';\nimport type { PopoverContentProps, PopoverProps, PopoverState, PopoverStateProps } from './types';\n\nexport * as PopoverStyles from './styles';\nexport * from './types';\n\nconst getTransition = (placement: Popper.Placement | undefined): Parameters[1] => {\n const direction =\n placement === undefined || placement?.startsWith('top') || placement?.startsWith('bottom') ? 'Y' : 'X';\n const sign = placement === undefined || placement?.startsWith('top') || placement?.startsWith('left') ? '' : '-';\n return {\n overflow: 'hidden',\n from: { opacity: 0, transform: `translate${direction}(${sign}8px)` },\n enter: { opacity: 1, transform: `translate${direction}(0)` },\n leave: { opacity: 0, transform: `translate${direction}(${sign}8px)` },\n config: {\n duration: 300,\n easing: easings.easeOutBack,\n },\n };\n};\n\nexport const PopoverContent = forwardRef(\n (\n {\n style = EMPTY_OBJECT,\n placement,\n variant,\n transitionStyle = EMPTY_OBJECT,\n isSmall = false,\n children,\n overflow,\n overflowY,\n zIndex,\n noPaddingAndBorder = false,\n ...props\n },\n ref\n ) => {\n const modalContext = useModalContext();\n const dropdownContext = useDropdownContext();\n\n // Popovers are most often renders absolutely due to available space and position reasons. They can be rendered absolutely but within a modal or a dropdown, which themselves\n // are usually rendered absolutely. In these cases, we need to modify the base zIndex we render the tooltip at to ensure that the tooltip is on top of the context we're being rendered within.\n // The dropdown has precedence over modals (unless zIndexOverride is set)\n const baseZIndex = zIndex\n ? zIndex\n : dropdownContext\n ? Z_INDEX.dropdown + 1 // render on _top of_ the dropdown or modal in these cases (+1)\n : modalContext\n ? Z_INDEX.modal + 1\n : Z_INDEX.popover;\n\n return (\n
\n \n \n \n {children}\n \n \n \n
\n );\n }\n);\n\nexport const PopoverTarget = forwardRef(({ children, ...props }, ref) => (\n \n {children}\n \n));\n\nexport function Popover({\n children,\n isOpen,\n onMouseEnterTarget,\n onMouseLeave,\n onFocusTarget,\n onBlurTarget,\n onClickTarget,\n setContentRef,\n setTargetRef,\n isSmall,\n usePortal,\n tabIndex = 0,\n styles,\n attributes,\n state,\n spacing,\n overflow,\n overflowY = 'auto',\n preventOverflow,\n targetStyle,\n variant,\n noPaddingAndBorder,\n zIndex,\n placement,\n}: PopoverProps) {\n useTopLevelPortalElement('popover');\n\n const [targetChild, contentChild] = Children.toArray(children);\n\n const transitions = useTransition[1]>(isOpen, getTransition(placement));\n\n if (contentChild == null) {\n return <>{targetChild};\n }\n\n const maybeMaxWidth = preventOverflow ? `calc(100% - ${spacing * 2}px)` : '';\n\n const popperContent = transitions(\n (transitionStyle, item, t) =>\n item && (\n \n {contentChild}\n \n )\n );\n\n return (\n <>\n \n {targetChild}\n \n {usePortal ? {popperContent} : popperContent}\n \n );\n}\n\nexport function usePopoverState({\n closeOnClickOutside = false,\n onClickOutside = noop,\n trigger = 'click',\n isSmall = false,\n usePortal = false,\n onOpen = noop,\n onClose = noop,\n placement,\n\n modifiers = EMPTY_ARRAY,\n delay,\n strategy = 'absolute',\n preventOverflow = true,\n noPaddingAndBorder = false,\n}: PopoverStateProps): PopoverState {\n const { spacingSmall } = useTheme();\n const [targetRef, setTargetRef] = useState(null);\n const [contentRef, setContentRef] = useState(null);\n\n const overridePopoverProps = useOverridePopoverProps();\n // If the context overrides the trigger, use that instead.\n trigger = overridePopoverProps.trigger ?? trigger;\n\n const [isOpen, setOpen] = useState(false);\n const [overflow, setOverflow] = useState({} as any);\n\n const overflowModifier: Modifier = useMemo(\n () => ({\n name: 'maxHeight',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['offset'],\n fn({ state }) {\n setOverflow(detectOverflow(state));\n },\n }),\n []\n );\n\n const popper = usePopper(targetRef, contentRef, {\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n padding: spacingSmall,\n },\n },\n overflowModifier,\n ...modifiers,\n ],\n placement,\n strategy,\n });\n const { styles, attributes, state, update } = popper;\n\n const onClickTarget = () => {\n if (trigger === 'click') {\n toggle();\n }\n };\n\n const toggle = () => (isOpen ? close() : open());\n\n const close = useCallback(() => {\n onClose && onClose();\n setOpen(false);\n }, [onClose]);\n\n const open = useCallback(() => {\n onOpen && onOpen();\n setOpen(true);\n }, [onOpen]);\n\n // e.target contains the element that is being leaved\n const isLeavingContent = (e: MouseEvent) =>\n e.target === window || !contentRef || contentRef.contains(e.target as HTMLElement);\n\n // if leaving target, close unless the next element is the content\n const isLeavingPopover = (e: MouseEvent) =>\n e.relatedTarget === window ||\n e.target === window ||\n !targetRef ||\n !contentRef ||\n (targetRef.contains(e.target as Node) && !contentRef.contains(e.relatedTarget as Node));\n\n const isClickingOutsidePopover = useCallback(\n e => !targetRef || !contentRef || (!targetRef.contains(e.target) && !contentRef.contains(e.target)),\n [contentRef, targetRef]\n );\n\n let openTimer;\n let closeTimer;\n const onMouseEnterTarget = () => {\n if (trigger === 'hover') {\n closeTimer && clearTimeout(closeTimer);\n delay\n ? (openTimer = setTimeout(() => {\n open();\n openTimer = null;\n }, delay))\n : open();\n }\n };\n\n const onMouseLeave = (e: MouseEvent) => {\n if (trigger === 'hover') {\n if (isLeavingContent(e) || isLeavingPopover(e)) {\n openTimer && clearTimeout(openTimer);\n delay\n ? (closeTimer = setTimeout(() => {\n close();\n closeTimer = null;\n }, 150))\n : close();\n }\n }\n };\n\n const onFocusTarget = () => {\n if (trigger === 'hover') {\n open();\n }\n };\n const onBlurTarget = () => {\n if (trigger === 'hover') {\n close();\n }\n };\n\n const isTouchScreen = useDeviceType() === 'mobile';\n useEffect(() => {\n if (isOpen) {\n const handleClickOutside = e => {\n if (contentRef && isClickingOutsidePopover(e)) {\n if (closeOnClickOutside) {\n close();\n }\n\n onClickOutside && onClickOutside(e);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n if (isTouchScreen) {\n document.addEventListener('touchstart', handleClickOutside);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n if (isTouchScreen) {\n document.removeEventListener('touchstart', handleClickOutside);\n }\n };\n }\n }, [isTouchScreen, isOpen, close, closeOnClickOutside, contentRef, isClickingOutsidePopover, onClickOutside]);\n\n return {\n onClickTarget,\n onMouseEnterTarget,\n onMouseLeave,\n onFocusTarget,\n onBlurTarget,\n targetRef,\n contentRef,\n setTargetRef,\n setContentRef,\n isOpen,\n close,\n open,\n toggle,\n placement,\n isSmall,\n usePortal,\n styles: { popper: styles.popper },\n attributes,\n state,\n update,\n spacing: spacingSmall,\n overflow,\n preventOverflow,\n noPaddingAndBorder,\n };\n}\n","import type { Placement } from '@popperjs/core';\nimport { memo, useState, type CSSProperties, type ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { isEqual } from 'lodash';\nimport { Box, type BoxProps } from '../Core';\nimport { Popover, usePopoverState, type PopoverProps } from '../Popover';\n\nexport type TooltipProps = Parameters[0] &\n Pick & {\n tooltip: ReactNode;\n children: ReactNode;\n trigger?: string;\n placement?: Placement;\n delay?: number;\n preventOverflow?: boolean;\n showUnderline?: boolean;\n disabled?: boolean;\n targetStyle?: CSSProperties;\n /** Set a custom maxWidth on the content of the tooltip. Defaults to 300px. */\n contentMaxWidth?: React.CSSProperties['maxWidth'];\n tooltipTestID?: string;\n };\n\nexport const Tooltip = memo(\n function Tooltip({\n children,\n tooltip,\n trigger = 'hover',\n placement = 'top',\n delay = 200,\n showUnderline = false,\n disabled = false,\n isSmall = true,\n usePortal = true,\n contentMaxWidth = '300px',\n tooltipTestID,\n ...props\n }: TooltipProps) {\n const popover = usePopoverState({\n trigger,\n placement,\n delay,\n onOpen: props.onOpen,\n isSmall,\n usePortal,\n closeOnClickOutside: props.closeOnClickOutside,\n });\n\n return (\n \n {showUnderline ? {children} : children}\n {tooltip && !disabled && (\n \n {tooltip}\n \n )}\n \n );\n },\n (p, n) => isEqual(p, n)\n);\n\n/**\n * Exactly the same as a Tooltip, but will only render the tooltip part of itself when the root element is hovered.\n *\n * Note that this will re-mount the children inside the JITTooltip, which can cause issues in some situations.\n *\n * This small wrapper can very well be built into the Tooltip itself, and it probably should. But for now, keeping them\n * separate.\n */\nexport const JITTooltip = (props: TooltipProps & { wrapperProps?: BoxProps }) => {\n const [hovered, setHovered] = useState(false);\n return (\n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n {hovered ? : props.children}\n \n );\n};\n\nconst Underlined = styled.span<{ isOpen: boolean }>`\n position: relative;\n display: flex;\n\n // Use pseudo-element here to prevent the dashed border from taking up space\n &::before {\n content: '';\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px dotted;\n border-bottom-color: ${({ theme }) => theme.colorTextMuted};\n transition: border-bottom-color 200ms;\n ${({ isOpen, theme }) => isOpen && `border-bottom-color: ${theme.colorTextSubtle}`};\n }\n`;\n","import type { CSSProperties } from 'react';\nimport styled, { type DefaultTheme } from 'styled-components';\nimport type { IconName } from './IconNames';\n\nimport { getThemeDimensionValue, parseColor, parseDimension, parseIconSize } from '../../styles/themes/utils';\nimport type { KeysBeginningWith, VariantsBeginningWith } from '../../utils/types';\n\nconst INHERIT = 'inherit' as const;\n\nexport const ICON_SIZES = {\n TINY: 10,\n SMALL: 12,\n MEDIUM: 16,\n LARGE: 20,\n DEFAULT: INHERIT,\n};\n\nexport const Icon = styled.i\n .attrs>(({ className, icon }) => ({\n className: [className, icon].join(' '),\n }))\n .withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['size', 'color'].includes(prop) && defaultValidatorFn(prop),\n })`\n display: inline-block;\n transition: transform 200ms linear;\n\n ${({ rotate }) => rotate && `transform: rotate(${rotate}deg)`};\n ${({ rotating }) => rotating && `animation: spin 1s linear infinite;`};\n ${({ variant, color, theme }) =>\n (variant || color) &&\n `color: ${parseColor(theme, variant || color) ?? getThemeDimensionValue(theme, `colorText${variant}`)};`}\n ${({ size = 'inherit', theme }) => size != null && size !== 'inherit' && `font-size: ${parseIconSize(theme, size)};`}\n ${({ theme, spaceAfter }) => spaceAfter && `margin-right: ${parseDimension(theme, spaceAfter)};`}\n ${({ theme, spaceBefore }) => spaceBefore && `margin-left: ${parseDimension(theme, spaceBefore)};`}\n ${({ theme, p }) => p && `padding: ${parseDimension(theme, p)};`}\n`;\n\nIcon.defaultProps = {\n size: 'inherit',\n};\n\nexport const SVGIcon = styled.svg`\n transition: width 200ms ease;\n`;\nSVGIcon.defaultProps = {\n width: 20,\n height: 20,\n};\n\nexport type IconProps = {\n icon: IconName;\n rotate?: number;\n rotating?: boolean;\n size?: KeysBeginningWith | 'inherit' | number;\n spaceAfter?: CSSProperties['marginRight'];\n spaceBefore?: CSSProperties['marginLeft'];\n p?: CSSProperties['padding'] | string;\n variant?: VariantsBeginningWith | CSSProperties['color'];\n};\n","import { isEqual } from 'lodash';\nimport { memo, type CSSProperties, type ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { PopoverStyles } from '../../components/Popover';\nimport { Tooltip, type TooltipProps } from '../../components/Tooltip';\nimport { parseIconSize } from '../../styles';\nimport { Icon } from './Icon';\nimport { IconName } from './IconNames';\n\nexport const HelpIconTrigger = styled(Icon)`\n cursor: help;\n`;\n\nexport const HelpIconWrapper = styled.div<{ size?: string | number }>`\n display: inline-block;\n vertical-align: middle;\n font-size: ${({ size, theme }) => size && parseIconSize(theme, size)};\n\n ${PopoverStyles.Target} {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n ${PopoverStyles.Content} {\n max-width: 25rem;\n }\n`;\n\nexport const HelpIcon = memo<{\n tooltip?: ReactNode;\n style?: CSSProperties;\n size?: string | number;\n tabIndex?: number;\n usePortal?: boolean;\n onOpen?: () => void;\n placement?: TooltipProps['placement'];\n}>(\n function HelpIcon({ tooltip, style, tabIndex = -1, usePortal, onOpen, placement = 'top', ...props }) {\n return (\n \n \n \n \n \n );\n },\n (p, n) => isEqual(p, n)\n);\n","import styled, { css } from 'styled-components';\nimport { setAlpha } from '../../styles';\nimport { Box } from '../Core';\n\nimport { Icon } from '../Icons/Icon';\nimport { AlertVariants } from './types';\n\nexport const AlertWrapper = styled(Box)<{ isBordered: boolean; variant: AlertVariants }>`\n justify-content: flex-start;\n flex: 1;\n\n ${({ isBordered, theme }) =>\n isBordered &&\n css`\n border-radius: 3px;\n border: solid 1px ${theme.colors.gray['050']};\n `}\n\n ${({ theme }) => css`\n background: ${setAlpha(0.04, theme.colors.gray['100'])};\n border: solid 1px ${theme.colors.gray['050']};\n color: ${theme.colorTextImportant};\n `}\n\n ${({ variant, theme }) =>\n variant === AlertVariants.Guide &&\n css`\n background: ${setAlpha(0.16, theme.colors.blue.default)};\n border: solid 1px ${setAlpha(0.04, theme.colors.blue.default)};\n color: ${theme.colorTextImportant};\n `}\n\n ${({ variant, theme }) =>\n variant === AlertVariants.Negative &&\n css`\n background: ${setAlpha(0.4, theme.colors.red.default)};\n border: solid 1px ${setAlpha(0.14, theme.colors.red.default)};\n color: ${theme.colorTextImportant};\n `}\n\n > ${Icon}:last-child {\n cursor: pointer;\n }\n`;\n\nAlertWrapper.defaultProps = {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n flex: 1,\n gap: 'spacingDefault',\n p: 'spacingMedium',\n fontSize: 'fontSizeDefault',\n};\n","import type { MouseEventHandler } from 'react';\nimport type { BoxProps } from '../Core';\nimport type { FormControlSizes } from '../Form/types';\nimport { Icon, type IconProps } from '../Icons/Icon';\nimport { IconName } from '../Icons/IconNames';\nimport { AlertWrapper } from './styles';\nimport { AlertVariants } from './types';\n\nexport { AlertVariants };\nexport interface AlertProps extends BoxProps {\n dismissable?: boolean;\n onDismiss?: MouseEventHandler;\n size?: FormControlSizes;\n variant?: AlertVariants;\n isBordered?: boolean;\n showIcon?: boolean;\n}\n\nexport const Alert = ({\n variant = AlertVariants.Default,\n onDismiss,\n dismissable = true,\n children,\n isBordered = true,\n showIcon = true,\n alignItems = 'flex-start',\n ...props\n}: AlertProps) => {\n const iconProps = getAlertIconProps(variant);\n\n return (\n \n {showIcon && }\n {children}\n {dismissable && (\n \n )}\n \n );\n};\n\nconst getAlertIconProps = (variant: AlertVariants): Pick & { color: string } => {\n switch (variant) {\n case AlertVariants.Warning:\n return { icon: IconName.ExclamationSolid, color: 'colors.yellow.lighten' };\n case AlertVariants.Negative:\n return { icon: IconName.ExclamationSolid, color: 'colors.red.lighten' };\n case AlertVariants.Notice:\n return { icon: IconName.ExclamationSolid, color: 'colors.gray[090]' };\n case AlertVariants.Positive:\n return { icon: IconName.CheckCircleSolid, color: 'colors.green.lighten' };\n case AlertVariants.Guide:\n return { icon: IconName.LightBulb, color: 'colors.blue.lighten' };\n case AlertVariants.Info:\n default:\n return { icon: IconName.InformationCircleSolid, color: 'colors.gray[090]' };\n }\n};\n","import { defineMessages } from 'react-intl';\nimport styled, { css } from 'styled-components';\nimport type { IntlWithFormatter } from '../../contexts/IntlContext';\nimport { WARNING_SEVERITY_TO_TEXT, WarningSeverity } from '../../types/WarningSeverity';\nimport { Icon, type IconProps } from './Icon';\nimport { IconName } from './IconNames';\n\nexport const messages = defineMessages({\n warningSeverityTitle: {\n defaultMessage: '{severity, select, high {High} medium {Medium} other {Low}} warning severity',\n id: 'Icons.warningSeverityTitle',\n },\n});\n\ntype WarningSeverityIconProps = { severity: WarningSeverity; title?: string } & Pick;\nexport const WarningSeverityIcon = styled(({ title, severity, ...props }: WarningSeverityIconProps) => (\n \n))`\n ${({ size, theme }) =>\n !size &&\n css`\n font-size: ${theme.fontSizeLg}rem;\n `}\n\n ${({ severity, theme }) => css`\n ${severity === WarningSeverity.HIGH &&\n css`\n color: ${theme.colorTextNegative};\n `}\n ${severity === WarningSeverity.MEDIUM &&\n css`\n color: ${theme.colorTextWarning};\n `}\n ${severity === WarningSeverity.LOW &&\n css`\n color: ${theme.colorTextDefault};\n `}\n `}\n`;\n\nexport const prettyWarningSeverityTitle = (severity: WarningSeverity, intl: IntlWithFormatter): string | undefined => {\n if (severity > WarningSeverity.NONE) {\n return intl.formatMessage(messages.warningSeverityTitle, { severity: WARNING_SEVERITY_TO_TEXT[severity] });\n }\n return undefined;\n};\n","import styled from 'styled-components';\nimport { Z_INDEX } from '../../../styles';\n\nexport const AccordionRowCell = styled.td<{ body?: boolean }>`\n padding-top: ${({ theme, body }) => (body ? 0 : theme.spacingMedium)}px;\n padding-bottom: ${({ theme, body }) => (body ? 0 : theme.spacingMedium)}px;\n`;\n\nexport const ContainerRow = styled.tbody<{ clickable: boolean }>`\n transition: 200ms;\n border-bottom: 1px solid ${({ theme }) => theme.colors.gray['030']};\n background: ${({ theme }) => theme.backgroundContent};\n\n &:first-of-type {\n border-top: 1px solid ${({ theme }) => theme.colors.gray['030']};\n }\n\n ${({ clickable, theme }) =>\n clickable &&\n `\n :hover {\n cursor: pointer;\n background: ${theme.backgroundContentHover};\n }`};\n`;\n\nexport const AccordionTableHeader = styled.th<{ clickable?: boolean }>`\n padding: ${({ theme }) => theme.spacingMedium}px;\n padding-bottom: ${({ theme }) => theme.spacingDefault}px;\n :not(:first-child) {\n padding-left: 0;\n }\n\n padding-bottom: ${({ theme }) => theme.spacingMedium}px;\n\n text-align: left;\n font-weight: ${({ theme }) => theme.fontWeightRegular};\n color: ${({ theme }) => theme.colorTextDefault};\n text-transform: uppercase;\n font-size: ${({ theme }) => theme.fontSizeBlotterTableHeader}rem;\n\n ${({ clickable }) =>\n clickable &&\n `\n :hover {\n cursor: pointer;\n }\n `};\n`;\n\nexport const AccordionTableContent = styled.tbody<{ ghost?: boolean }>`\n background: ${({ theme, ghost }) => (ghost ? 'transparent' : theme.backgroundAccordionContent)};\n`;\n\nexport const Acc = styled.td`\n padding: 0;\n`;\n\nexport const Table = styled.table<{ columnSpacing?: number; stickyHeader?: boolean }>`\n border-spacing: 0;\n border-collapse: collapse;\n\n // [sc-52513] Add Sticky Headers to Dealer Columns\n & ${AccordionTableHeader} {\n ${({ stickyHeader, theme }) =>\n stickyHeader &&\n `\n position: sticky;\n top: 0;\n background: ${theme.backgroundContent};\n z-index: ${Z_INDEX.blotters};\n `};\n }\n\n & ${AccordionRowCell} {\n padding-left: ${({ theme, columnSpacing }) => (columnSpacing ? columnSpacing : theme.spacingMedium)}px;\n padding-right: ${({ theme, columnSpacing }) => (columnSpacing ? columnSpacing : theme.spacingMedium)}px;\n\n // First and last child should all have this default spacing at the edges\n :first-child {\n padding-left: ${({ theme }) => theme.spacingMedium}px;\n }\n\n :last-child {\n padding-right: ${({ theme }) => theme.spacingMedium}px;\n }\n\n // first child should always have some left padding because it is on the edge,\n :not(:first-child) {\n padding-left: 0px;\n }\n }\n`;\n","import styled, { keyframes } from 'styled-components';\n\nconst drawCircle = keyframes`\n from {\n stroke-dasharray: 0,112;\n }\n to {\n stroke-dasharray: 112,112;\n }\n`;\n\nconst drawLine = keyframes`\n 0% {\n opacity: 0;\n }\n 1% {\n opacity: 1;\n stroke-dasharray: 0,22;\n }\n 100% {\n opacity: 1;\n stroke-dasharray: 22,22;\n }\n`;\n\nexport const Circle = styled.circle`\n stroke: ${({ theme }) => theme.colorTextAttention};\n fill: none;\n stroke-width: 4;\n stroke-linecap: round;\n stroke-dasharray: 112, 112;\n transform: rotate(-90deg);\n transform-origin: center center;\n animation: ${drawCircle} 300ms linear;\n`;\n\nexport const Check = styled.polyline`\n stroke: ${({ theme }) => theme.colorTextAttention};\n fill: none;\n stroke-width: 4;\n stroke-linecap: round;\n stroke-dasharray: 0, 22;\n opacity: 0;\n animation: ${drawLine} 300ms 250ms linear;\n animation-fill-mode: forwards;\n`;\n","import { Check, Circle } from './styles';\n\nexport const Checkmark = ({ size = 40 }: { size?: number }) => (\n \n \n \n \n);\n","import styled, { css, keyframes } from 'styled-components';\n\nconst clockwise = keyframes`\n from {\n transform: rotateZ(0deg);\n }\n to {\n transform: rotateZ(360deg);\n }\n`;\n\nconst spin = keyframes`\n 0% {\n stroke-dashoffset: 100;\n transform: rotate(0);\n }\n 40%,\n 42% {\n stroke-dashoffset: 13;\n transform: rotate(45deg);\n }\n 100% {\n stroke-dashoffset: 100;\n transform: rotate(360deg);\n }\n`;\n\nexport const Timer = styled.svg<{ reverse: boolean; rotation: boolean }>`\n position: absolute;\n ${({ rotation }) =>\n rotation &&\n css`\n animation: ${clockwise} 2.7s linear infinite;\n `};\n animation-direction: ${({ reverse }) => (reverse ? 'reverse' : 'normal')};\n transform-origin: center center;\n`;\n\nexport const Loader = styled.circle<{ reverse: boolean }>`\n animation: ${spin} 1.5s ease-in-out infinite;\n animation-direction: ${({ reverse }) => (reverse ? 'reverse' : 'normal')};\n transform-origin: center center;\n stroke-dasharray: 113;\n stroke-dashoffset: 100;\n stroke-linecap: round;\n stroke: ${({ theme }) => theme.colorTextImportant};\n`;\n\nexport const SpinnerWrapper = styled.div<{ size: number }>`\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: ${({ size }) => size}px;\n width: ${({ size }) => size}px;\n vertical-align: middle;\n align-self: center;\n margin: 0 auto;\n`;\n\nexport const SpinnerContainer = styled.div`\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n position: absolute;\n pointer-events: none;\n`;\n","import type { FC } from 'react';\nimport { Loader, SpinnerWrapper, Timer } from './styles';\n\nconst STROKE_WIDTH = 4;\nconst RADIUS = 40;\n\nexport const Spinner: FC<{ size?: number }> = ({ size = 40, ...props }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport { SpinnerContainer } from './styles';\n","import type { DefaultTheme } from 'styled-components';\nimport { FORM_CONTROL_SIZES, FormControlSizes } from './types';\n\nexport const getFontSize = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return theme.fontSizeTiny;\n }\n case FormControlSizes.Tiny: {\n return theme.fontSizeTiny;\n }\n case FormControlSizes.Small: {\n return theme.fontSizeSmall;\n }\n case FormControlSizes.Default: {\n return theme.fontSizeDefault;\n }\n case FormControlSizes.Large: {\n return theme.fontSizeLarge;\n }\n }\n};\n\nexport const getLineHeight = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return theme.lineHeightTiny;\n }\n case FormControlSizes.Tiny: {\n return theme.lineHeightTiny;\n }\n case FormControlSizes.Small: {\n return theme.lineHeightSmall;\n }\n case FormControlSizes.Default: {\n return theme.lineHeightDefault;\n }\n case FormControlSizes.Large: {\n return theme.lineHeightLarge;\n }\n }\n};\n\nexport const getBorderRadius = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return theme.borderRadiusTiny;\n }\n case FormControlSizes.Tiny: {\n return theme.borderRadiusTiny;\n }\n case FormControlSizes.Small: {\n return theme.borderRadiusSmall;\n }\n case FormControlSizes.Large: {\n return theme.borderRadiusMedium;\n }\n case FormControlSizes.Default:\n default: {\n return theme.borderRadiusDefault;\n }\n }\n};\n\n/**\n * Gets one size smaller of the provided size.\n * If you pass in the smallest size, returns the same size.\n * If the for whatever reason pass in an unsupported size, returns the passed in size.\n */\nexport function getOneFormControlSizeSmaller(inputSize: FormControlSizes) {\n const sizeIndex = FORM_CONTROL_SIZES.findIndex(size => size === inputSize);\n\n if (sizeIndex === -1) {\n return inputSize;\n }\n\n if (sizeIndex === 0) {\n return FORM_CONTROL_SIZES[sizeIndex];\n }\n\n return FORM_CONTROL_SIZES[sizeIndex - 1];\n}\n","import { css, type DefaultTheme } from 'styled-components';\nimport { FormControlSizes } from '../Form/types';\n\nexport const getButtonBorderRadius = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Xxs: {\n return theme.borderRadiusButtonTiny;\n }\n case FormControlSizes.Tiny: {\n return theme.borderRadiusButtonTiny;\n }\n case FormControlSizes.Small: {\n return theme.borderRadiusButtonSmall;\n }\n case FormControlSizes.Large: {\n return theme.borderRadiusButtonLarge;\n }\n case FormControlSizes.Default:\n default: {\n return theme.borderRadiusButtonDefault;\n }\n }\n};\n\nexport const clippedButtonCss = ({\n size,\n theme,\n customOffset,\n}: {\n size?: FormControlSizes;\n theme: DefaultTheme;\n customOffset?: number;\n}) =>\n css`\n --offset: ${customOffset\n ? customOffset * theme.chamferMultiplier\n : ((size ?? 2) * theme.baseSize * theme.chamferMultiplier) / 6}px;\n --offset-low: var(--offset);\n --offset-high: calc(100% - var(--offset));\n\n clip-path: polygon(\n 100% var(--offset-low),\n var(--offset-high) 0%,\n var(--offset-low) 0%,\n 0% var(--offset-low),\n 0% var(--offset-high),\n var(--offset-low) 100%,\n var(--offset-high) 100%,\n 100% var(--offset-high)\n );\n border-radius: 0;\n border-width: 0;\n `;\n","import { forwardRef } from 'react';\nimport styled, { useTheme } from 'styled-components';\nimport { Checkmark } from '../Checkmark';\nimport { FormControlSizes } from '../Form/types';\nimport { Icon } from '../Icons';\nimport { Spinner, SpinnerContainer } from '../Spinner';\nimport { ButtonVariants, ButtonWrapper, InternalButtonSpan, getIconSize, type ButtonProps } from './styles';\n\nexport const Button = styled(\n forwardRef[0]['as'] }>(\n (\n {\n children,\n as,\n startIcon,\n endIcon,\n size = FormControlSizes.Default,\n loading,\n done,\n variant = ButtonVariants.Default,\n ...props\n },\n ref\n ) => {\n const { baseSize } = useTheme();\n return (\n \n {loading ? (\n \n \n \n ) : done ? (\n \n \n \n ) : null}\n {!!startIcon && }\n {children && {children}}\n {!!endIcon && }\n \n );\n }\n )\n)``;\n","import styled, { css } from 'styled-components';\n\nimport { Flex } from '../../Core';\nimport { FormControlSizes } from '../../Form/types';\nimport { getFontSize } from '../../Form/utils';\nimport { ButtonWrapper, getButtonSpacing } from '../styles';\nimport { clippedButtonCss, getButtonBorderRadius } from '../utils';\n\nexport const ButtonGroup = styled(Flex)<{\n size?: FormControlSizes;\n orientation?: 'vertical' | 'horizontal';\n rounded?: boolean;\n shareBackground?: boolean;\n prominent?: boolean;\n}>`\n flex-direction: ${({ orientation }) => (orientation === 'vertical' ? 'column' : 'row')};\n ${({ shareBackground, size, rounded, theme, background }) =>\n shareBackground &&\n css`\n background: ${background ?? theme.buttonGroupSharedBackground};\n --border-group-padding: ${(theme.baseSize / 16) * (size ?? 1)}px;\n padding: var(--border-group-padding);\n\n ${rounded &&\n css`\n border-radius: calc(${getButtonBorderRadius(theme, size)}px + var(--border-group-padding));\n `}\n `}\n\n ${({ prominent, theme, size = FormControlSizes.Default }) =>\n prominent && theme.chamferMultiplier > 0 && clippedButtonCss({ size, theme, customOffset: size * 3 })}\n \n ${ButtonWrapper} {\n flex: 1 1 0;\n border-radius: 0;\n padding: ${({ size, theme }) => getButtonSpacing(theme, size)};\n font-size: ${({ size, theme }) => getFontSize(theme, size)}rem;\n\n & + ${ButtonWrapper} {\n gap: 1px;\n }\n\n ${({ rounded, orientation, size, theme }) =>\n rounded\n ? css`\n border-radius: ${getButtonBorderRadius(theme, size)}px;\n `\n : css`\n &:first-child {\n ${orientation === 'vertical'\n ? css`\n border-radius: ${getButtonBorderRadius(theme, size)}px ${getButtonBorderRadius(theme, size)}px 0 0;\n `\n : css`\n border-radius: ${getButtonBorderRadius(theme, size)}px 0 0 ${getButtonBorderRadius(theme, size)}px;\n `};\n }\n\n &:last-child {\n ${orientation === 'vertical'\n ? css`\n border-radius: 0 0 ${getButtonBorderRadius(theme, size)}px ${getButtonBorderRadius(theme, size)}px;\n `\n : css`\n border-radius: 0 ${getButtonBorderRadius(theme, size)}px ${getButtonBorderRadius(theme, size)}px 0;\n `};\n }\n\n &:first-child:last-child {\n border-radius: ${getButtonBorderRadius(theme, size)}px;\n }\n `}\n }\n`;\nButtonGroup.defaultProps = {\n gap: '1px',\n};\n","import type { ButtonHTMLAttributes } from 'react';\nimport styled, { type DefaultTheme } from 'styled-components';\nimport { FormControlSizes } from '../../Form/types';\nimport { ButtonWrapper, getButtonVerticalSpacing, getIconButtonSize, type ButtonProps } from '../styles';\n\nexport const IconButtonWrapper = styled(ButtonWrapper)`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme, size }) => getButtonVerticalSpacing(theme, size)};\n border-radius: ${({ round }) => (round ? '100%' : '')};\n flex: 0 0 auto;\n\n & {\n background: ${({ ghost: minimal }) => (minimal ? 'transparent' : '')};\n border-color: ${({ ghost: minimal }) => (minimal ? 'transparent' : '')};\n }\n\n width: ${({ size = FormControlSizes.Default, theme }) => getIconButtonSize(theme, size)}px;\n height: ${({ size = FormControlSizes.Default, theme }) => getIconButtonSize(theme, size)}px;\n\n font-size: ${({ theme, size }) => getIconFontSize(theme, size)}rem;\n`;\n\nconst getIconFontSize = (theme: DefaultTheme, size = FormControlSizes.Default) => {\n switch (size) {\n case FormControlSizes.Tiny: {\n return theme.fontSizeSmall;\n }\n case FormControlSizes.Small: {\n return theme.fontSizeDefault;\n }\n case FormControlSizes.Default: {\n return theme.fontSizeLarge;\n }\n case FormControlSizes.Large: {\n return theme.fontSizeBig;\n }\n default: {\n return size - 1;\n }\n }\n};\n\nexport type IconButtonWrapperProps = ButtonProps & ButtonHTMLAttributes & { round?: boolean };\n","import { forwardRef } from 'react';\nimport styled from 'styled-components';\nimport { Icon, type IconName } from '../../Icons';\nimport { IconButtonWrapper, type IconButtonWrapperProps } from './styles';\n\nexport type IconButtonProps = IconButtonWrapperProps & {\n icon: IconName;\n};\n\nexport const IconButton = styled(\n forwardRef(({ icon, variant, color, ghost, ...props }, ref) => (\n \n \n \n ))\n)``;\n","import type { AnchorHTMLAttributes } from 'react';\nimport type { LinkProps } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Icon } from '../../Icons';\nimport { NavButtonWrapper, type ButtonProps } from '../styles';\n\nexport const NavButton = styled(\n ({\n children,\n startIcon,\n endIcon,\n to,\n ...props\n }: ButtonProps> & { to?: LinkProps['to'] }) => (\n \n {!!startIcon && }\n {children && {children}}\n {!!endIcon && }\n \n )\n)``;\n","import type { CSSProperties } from 'react';\nimport styled, { type DefaultTheme } from 'styled-components';\nimport { parseColor, parseFontSize } from '../../styles';\nimport { NumberVariants } from './types';\n\nexport const RoundedNumber = styled.span`\n opacity: 1;\n transition: opacity 200ms 100ms ease;\n`;\n\nexport const FullNumber = styled.span<{ align?: 'left' | 'right' | 'center'; background?: string }>`\n position: absolute;\n transition: opacity 200ms 100ms ease;\n ${({ align }) => (align === 'right' ? `right: 0` : `left: 0`)};\n opacity: 0;\n white-space: nowrap;\n padding: 0 2px;\n margin: 0 -2px;\n\n background: ${({ background, theme }) => (background ? parseColor(theme, background) : theme?.backgroundContent)};\n box-shadow: ${({ background, theme }) =>\n `0 0 0.625em ${background ? parseColor(theme, background) : theme?.backgroundContent}`};\n`;\n\nexport const Indicator = styled.span<{ variant?: NumberVariants }>`\n width: 0;\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n top: -1px;\n position: absolute;\n display: inline-block;\n color: ${({ variant, theme }) => getColor(theme, variant, true, 'inherit')};\n`;\n\nexport const NumberWrapper = styled.span<{ estimate: boolean; background?: string }>`\n display: inline-flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacingTiny}px;\n position: relative;\n font-style: ${({ estimate }) => (estimate ? 'italic' : 'normal')};\n\n &:hover {\n background: ${({ background }) => background ?? 'inherit'};\n overflow: visible;\n ${RoundedNumber} {\n opacity: 0;\n }\n\n ${FullNumber} {\n opacity: 1;\n z-index: 1;\n }\n }\n`;\n\nexport const Number = styled.span<{ isSmall?: boolean; variant?: NumberVariants }>`\n font-size: ${({ isSmall, theme }) => (isSmall ? theme.fontSizeSmall : 'inherit')}rem;\n color: ${({ variant, theme }) => getColor(theme, variant, true, 'inherit')};\n transition: color 200ms ease;\n overflow-y: hidden;\n`;\n\nexport const Highlight = styled.span<{\n largeHighlight?: boolean;\n highlightSize?: number;\n highlightColor?: string;\n variant?: NumberVariants;\n isSmall?: boolean;\n}>`\n font-size: ${({ largeHighlight, highlightSize, theme }) =>\n highlightSize ? `${highlightSize}rem` : largeHighlight ? `${theme.fontSizeLarge}rem` : 'inherit'};\n transition: color 200ms ease;\n color: ${({ variant, highlightColor, theme }) => getColor(theme, variant, true, highlightColor)};\n ${props =>\n props.largeHighlight &&\n `\n\t\tmargin-left: 1px;\n\t\tmargin-right: 1px;\n\t`}\n`;\n\nexport const Currency = styled.span<{ isSmall?: boolean; variant?: NumberVariants; highlightColor?: string }>`\n font-size: ${({ isSmall, theme }) => (isSmall ? theme.fontSizeSmall : 'inherit')}rem;\n opacity: 0.7;\n color: ${({ variant, highlightColor, theme }) => highlightColor ?? getColor(theme, variant)};\n transition: color 200ms ease;\n`;\n\nexport const StackedNumber = styled.div<{\n large?: boolean;\n stack?: 'bottom' | 'top' | 'middle';\n highlight: boolean;\n variant?: NumberVariants;\n largeSize: CSSProperties['fontSize'];\n baseSize: CSSProperties['fontSize'];\n}>`\n font-size: ${({ theme, large, largeSize = '1.75rem', baseSize = 'fontSizeLarge' }) =>\n large ? parseFontSize(theme, largeSize) : parseFontSize(theme, baseSize)};\n text-align: ${({ stack }) => (stack === 'bottom' ? 'right' : stack === 'top' ? 'left' : 'right')};\n color: ${({ highlight, variant, theme }) => getColor(theme, variant, highlight)};\n line-height: 1;\n transition: color 200ms ease;\n`;\n\nconst getColor = (theme: DefaultTheme, variant?: NumberVariants, highlight = true, defaultColor?: string) => {\n switch (variant) {\n case NumberVariants.Positive: {\n return highlight ? theme.colorTextPositive : theme.colorTextPositiveSubtle;\n }\n case NumberVariants.Negative: {\n return highlight ? theme.colorTextNegative : theme.colorTextNegativeSubtle;\n }\n case NumberVariants.Warning: {\n return highlight ? theme.colorTextWarning : theme.colorTextWarningSubtle;\n }\n case NumberVariants.Primary: {\n return highlight ? theme.colorTextPrimary : theme.colorTextPrimarySubtle;\n }\n case NumberVariants.Muted: {\n return highlight ? theme.colorTextDefault : theme.colorTextSubtle;\n }\n default: {\n if (highlight) {\n return defaultColor != null ? parseColor(theme, defaultColor) : theme.colorStackedNumberHighlight;\n } else {\n return defaultColor != null ? parseColor(theme, defaultColor) : theme.colorStackedNumberNoHighlight;\n }\n }\n }\n};\n","import styled, { css, type DefaultTheme } from 'styled-components';\nimport { Currency, Highlight, StackedNumber } from '../../FormattedNumber/styles';\nimport { Loader } from '../../Spinner/styles';\nimport { Button } from '../Button';\nimport { ButtonVariants } from '../styles';\n\nfunction getQuoteButtonTextColor(theme: DefaultTheme, variant?: ButtonVariants) {\n switch (variant) {\n case ButtonVariants.Positive:\n return theme.colorTextPositiveButton;\n case ButtonVariants.Negative:\n return theme.colorTextNegativeButton;\n case ButtonVariants.Primary:\n return theme.colorTextPrimaryButton;\n case ButtonVariants.Default:\n default:\n return theme.colorTextDefaultButton;\n }\n}\n\nexport const QuoteButton = styled(Button)`\n ${StackedNumber} {\n &:first-child,\n &:last-child {\n opacity: 0.75;\n }\n }\n\n ${({ theme, variant }) => {\n return css`\n ${Loader} {\n stroke: ${getQuoteButtonTextColor(theme, variant)};\n }\n ${Highlight}, ${Currency}, ${StackedNumber}, & {\n color: ${getQuoteButtonTextColor(theme, variant)};\n }\n `;\n }}\n`;\n","import styled from 'styled-components';\nimport { Button } from '../Button';\nimport { ButtonVariants, type ButtonProps } from '../styles';\n\nexport type ToggleButtonProps = {\n selected: boolean;\n selectedVariant?: ButtonVariants;\n unselectedVariant?: ButtonVariants;\n} & ButtonProps;\n\nexport const ToggleButton = styled(\n ({\n selected,\n selectedVariant = ButtonVariants.Priority,\n unselectedVariant = ButtonVariants.Default,\n ...props\n }: ToggleButtonProps) => {\n return (\n \n );\n }\n)``;\n","import type { ElementType, ReactElement, ReactNode } from 'react';\nimport { FormattedMessage as ReactIntlFormattedMessage, type MessageDescriptor } from 'react-intl';\n\nexport interface FormattedMessageProps = Record>\n extends Omit {\n id: NonNullable;\n values?: V;\n tagName?: ElementType;\n children?(nodes: ReactNode[]): ReactElement | null;\n}\n\nexport function FormattedMessage(props: FormattedMessageProps) {\n return ;\n}\n","import { useRef } from 'react';\n\nexport function useConstant(value: T): T {\n const { current: constant } = useRef(value);\n return constant;\n}\n","import type React from 'react';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { v1 as uuid } from 'uuid';\nimport { useConstant } from '../../hooks/useConstant';\nimport { useAccordionGroupContext } from './AccordionGroup/AccordionGroupContext';\n\nexport type AccordionInputs = {\n id?: string;\n initialOpen?: boolean;\n headerClickable?: boolean;\n onOpened?: () => void;\n onClosed?: () => void;\n ghost?: boolean;\n alignChevron?: 'left' | 'right';\n};\n\nexport type AccordionOutputs = {\n isOpen: boolean;\n toggle: (e?: React.MouseEvent) => void;\n open: () => void;\n close: () => void;\n headerClickable: boolean;\n initialOpen: boolean;\n onOpened?: () => void;\n onClosed?: () => void;\n ghost: boolean;\n alignChevron?: 'left' | 'right';\n};\n\nexport const useAccordion = ({\n id: customID,\n initialOpen = false,\n headerClickable = true,\n onOpened,\n onClosed,\n ghost = false,\n alignChevron = 'right',\n}: AccordionInputs = {}) => {\n const id = useConstant(customID ?? uuid());\n const { accordionsMap, openAccordion, closeAccordion, toggleAccordion, registerAccordion, unregisterAccordion } =\n useAccordionGroupContext();\n\n const initialOpenRef = useRef(initialOpen);\n useEffect(() => {\n registerAccordion(id, initialOpenRef.current);\n return () => unregisterAccordion(id);\n }, [registerAccordion, unregisterAccordion, id]);\n\n // Listen to changes in the AccordionGroup map and pluck out any changes in our own open state\n const isOpen = useMemo(() => {\n const newOpen = accordionsMap.get(id);\n return newOpen == null ? initialOpen : newOpen;\n }, [accordionsMap, initialOpen, id]);\n\n const value = useMemo(() => {\n return {\n isOpen,\n toggle: () => toggleAccordion(id),\n open: () => openAccordion(id),\n close: () => closeAccordion(id),\n headerClickable,\n ghost,\n initialOpen,\n onOpened,\n onClosed,\n alignChevron,\n };\n }, [\n id,\n isOpen,\n openAccordion,\n closeAccordion,\n toggleAccordion,\n headerClickable,\n ghost,\n alignChevron,\n initialOpen,\n onOpened,\n onClosed,\n ]);\n\n return value;\n};\n","import type { LabelHTMLAttributes } from 'react';\nimport styled, { css, type DefaultTheme } from 'styled-components';\nimport { Box } from '../Core';\nimport { Text } from '../Text';\nimport type { FormControlProps } from './types';\nimport { FormControlSizes, InputStates, InputVariants } from './types';\nimport { getBorderRadius, getFontSize } from './utils';\nconst HEADER_HEIGHT = 4;\nexport const ControlPrefix = styled(Text)``;\nControlPrefix.defaultProps = {\n mr: 'spacingSmall',\n fontWeight: 'fontWeightMedium',\n whiteSpace: 'nowrap',\n color: 'colors.gray.080',\n};\n\nexport const Label = styled(Box).attrs({ as: 'label' })<{ tooltip?: boolean } & LabelHTMLAttributes>`\n font-size: ${({ theme }) => theme.fontSizeFormLabel}rem;\n line-height: 1;\n ${({ tooltip, theme }) => tooltip && `border-bottom: dotted 1px ${theme.colors.gray['080']}`};\n`;\n\nexport const FormSection = styled(Box)<{ flex?: string }>`\n border-top: solid 1px ${({ theme }) => theme.borderColorDivider};\n padding: ${({ theme }) => theme.spacingMedium}px;\n flex: ${({ flex }) => flex ?? '0 0 auto'};\n transition: max-height 200ms ease;\n\n &:first-child {\n border-top: none;\n }\n`;\n\nexport const OrderFormHeader = styled(FormSection)`\n height: ${({ theme }) => theme.baseSize * HEADER_HEIGHT}px;\n border-bottom: solid 1px ${({ theme }) => theme.borderColorDivider};\n display: flex;\n align-items: center;\n\n h2 {\n font-weight: ${({ theme }) => theme.fontWeightRegular};\n text-align: center;\n margin: ${({ theme }) => theme.spacingTiny}px 0;\n font-size: ${({ theme }) => theme.fontSizeLarge}rem;\n text-transform: uppercase;\n }\n`;\n\n// Add theme variable?\nexport const INPUT_BORDER_WIDTH = 1;\n\nexport const formControlCSS = css>`\n font-family: ${({ theme }) => theme.fontFamily};\n appearance: none;\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n border: solid ${INPUT_BORDER_WIDTH}px;\n border-color: ${({ theme, touched, invalid, disabled, readOnly }) =>\n disabled\n ? theme.borderColorInputDisabled\n : readOnly\n ? theme.borderColorInputReadOnly\n : invalid && (touched == null || touched)\n ? theme.borderColorInputInvalid\n : theme.borderColorInput};\n box-shadow: ${({ theme, touched, invalid, disabled, readOnly }) =>\n disabled\n ? theme.boxShadowInputDisabled\n : readOnly\n ? theme.boxShadowInputReadOnly\n : invalid && (touched == null || touched)\n ? theme.boxShadowInputInvalid\n : theme.boxShadowInput};\n padding: 0 ${({ theme, size = FormControlSizes.Default }) => (theme.spacingDefault * size) / 2}px;\n border-radius: ${({ theme, size }) => getBorderRadius(theme, size)}px;\n background: ${({ theme, disabled, invalid, touched, readOnly }) =>\n disabled\n ? theme.backgroundInputDisabled\n : readOnly\n ? theme.backgroundInputReadOnly\n : invalid && (touched == null || touched)\n ? theme.backgroundInputInvalid\n : theme.backgroundInput};\n ${({ theme, disabled, variant }) => inputWrapperColor(theme, variant, InputStates.Default, disabled)};\n transition: color 200ms ease, border-color 200ms ease;\n height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n min-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n display: ${({ inline }) => (inline ? 'inline-flex' : 'flex')};\n width: ${({ inline, width }) => (inline ? 'auto' : width ?? '100%')};\n position: relative;\n align-items: center;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n gap: ${({ theme }) => (theme.spacingSmall / FormControlSizes.Default) * 2}px;\n\n ${({ disabled }) =>\n disabled &&\n css`\n cursor: not-allowed;\n `}\n\n opacity: ${({ disabled }) => (disabled ? 0.5 : 1)};\n\n &:hover {\n border-color: ${({ theme, touched, invalid, disabled, readOnly }) =>\n disabled\n ? theme.borderColorInputDisabled\n : readOnly\n ? theme.borderColorInputReadOnly\n : invalid && (touched == null || touched)\n ? theme.borderColorInputInvalid\n : theme.borderColorInputHover};\n box-shadow: ${({ theme, touched, invalid, disabled, readOnly }) =>\n disabled\n ? theme.boxShadowInputDisabled\n : readOnly\n ? theme.boxShadowInputReadOnly\n : invalid && (touched == null || touched)\n ? theme.boxShadowInputInvalid\n : theme.boxShadowInputHover};\n }\n\n &:focus,\n &:focus-within {\n outline: none;\n ${({ theme, disabled, variant }) => inputWrapperColor(theme, variant, InputStates.Focus, disabled)};\n border-color: ${({ theme, invalid, touched, readOnly }) =>\n invalid && (touched == null || touched)\n ? theme.borderColorInputInvalidFocus\n : readOnly\n ? theme.borderColorInputReadOnly\n : theme.borderColorInputFocus};\n box-shadow: ${({ theme, invalid, touched, readOnly }) =>\n invalid && (touched == null || touched)\n ? theme.boxShadowInputInvalidFocus\n : readOnly\n ? theme.borderColorInputReadOnly\n : theme.boxShadowInputFocus};\n }\n\n select,\n textarea,\n input {\n appearance: none;\n background: transparent;\n border: none;\n flex: 1 1 0;\n width: 100%;\n ${({ theme, disabled, variant, readOnly }) => inputColor(theme, variant, InputStates.Default, disabled, readOnly)};\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n transition: color 200ms ease, border-color 200ms ease;\n text-align: ${({ type }) => (type === 'number' ? 'right' : 'left')};\n padding: 0;\n\n option {\n color: initial;\n }\n\n &::placeholder {\n color: ${({ theme }) => theme.colorTextMuted};\n }\n\n &:focus {\n outline: none;\n ${({ theme, disabled, readOnly, variant }) => inputColor(theme, variant, InputStates.Focus, disabled, readOnly)};\n }\n }\n`;\n\nexport const inputWrapperColor = (\n theme: DefaultTheme,\n variant = InputVariants.Default,\n state: InputStates,\n disabled?: boolean\n) => css`\n color: ${getInputWrapperColor(theme, variant, state, disabled)};\n`;\n\n// Gets colors for the wrapper, so will be applied to for example the suffix\nconst getInputWrapperColor = (\n theme: DefaultTheme,\n variant = InputVariants.Default,\n state: InputStates,\n disabled?: boolean\n) => {\n switch (variant) {\n case InputVariants.Primary:\n return disabled ? theme.colorTextPrimaryMuted : theme.colorTextPrimarySubtle;\n case InputVariants.Negative:\n return disabled ? theme.colorTextNegativeMuted : theme.colorTextNegativeSubtle;\n case InputVariants.Positive:\n return disabled ? theme.colorTextPositiveMuted : theme.colorTextPositiveSubtle;\n case InputVariants.Warning:\n return disabled ? theme.colorTextWarningMuted : theme.colorTextWarningSubtle;\n default:\n switch (state) {\n case InputStates.Focus:\n return theme.colorTextDefault;\n default:\n return disabled ? theme.colorTextMuted : theme.colorTextDefault;\n }\n }\n};\n\nexport const inputColor = (\n theme: DefaultTheme,\n variant = InputVariants.Default,\n state: InputStates,\n disabled?: boolean,\n readOnly?: boolean\n) => css`\n color: ${getInputTextColor(theme, variant, state, disabled, readOnly)};\n`;\n\n// Gets color for the input element itself, so will be applied to the text\nexport const getInputTextColor = (\n theme: DefaultTheme,\n variant = InputVariants.Default,\n state: InputStates,\n disabled?: boolean,\n readOnly?: boolean\n) => {\n switch (variant) {\n case InputVariants.Primary:\n return disabled ? theme.colorTextPrimarySubtle : theme.colorTextPrimary;\n case InputVariants.Negative:\n return disabled ? theme.colorTextNegativeSubtle : theme.colorTextNegative;\n case InputVariants.Positive:\n return disabled ? theme.colorTextPositiveSubtle : theme.colorTextPositive;\n case InputVariants.Warning:\n return disabled ? theme.colorTextWarningSubtle : theme.colorTextWarning;\n default:\n switch (state) {\n case InputStates.Focus:\n return disabled ? theme.colorTextSubtle : readOnly ? theme.colorTextDefault : theme.colorTextAttention;\n default:\n return disabled ? theme.colorTextSubtle : readOnly ? theme.colorTextDefault : theme.colorTextImportant;\n }\n }\n};\n","import styled from 'styled-components';\nimport { buttonStyle } from '../../Button/styles';\nimport { Box, HStack } from '../../Core';\nimport { INPUT_BORDER_WIDTH, formControlCSS } from '../styles';\nimport type { FormControlProps } from '../types';\nimport { FormControlSizes } from '../types';\n\nexport const InputWrapper = styled.label>`\n ${formControlCSS}\n\n input:disabled {\n cursor: not-allowed;\n }\n\n input[type='file']::file-selector-button {\n ${({ theme, size = FormControlSizes.Default }) => buttonStyle(theme, size - 0.5)}\n line-height: 1;\n vertical-align: 2px;\n }\n\n // Hide datalist dropdown arrow\n input::-webkit-calendar-picker-indicator {\n opacity: 0;\n }\n\n // Disable Default Increment and Decrement Buttons from Input Type Number\n input[type='number']::-webkit-inner-spin-button,\n input[type='number']::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n`;\n\nexport const Prefix = styled(Box)<{ isText?: boolean; size: FormControlSizes }>`\n order: -1;\n display: flex;\n ${({ isText, size, theme }) =>\n // Adjust to align buttons and text correctly, icons will need extra margin\n !isText && `margin-left: -${(theme.spacingDefault * size) / 2 - theme.spacingSmall + INPUT_BORDER_WIDTH}px`}\n`;\nPrefix.defaultProps = {\n color: 'colorTextSubtle',\n};\n\nexport const Suffix = styled(HStack)<{ isText?: boolean; size: FormControlSizes }>`\n order: 1;\n ${({ isText, size, theme }) =>\n // Adjust to align buttons and text correctly, icons will need extra margin\n !isText && `margin-right: -${(theme.spacingDefault * size) / 2 - theme.spacingSmall + INPUT_BORDER_WIDTH}px`}\n`;\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n type CSSProperties,\n type ReactElement,\n} from 'react';\nimport { setNativeValue } from '../../../utils';\nimport { IconButton } from '../../Button';\nimport { Icon, IconName } from '../../Icons';\nimport { FormControlSizes, InputVariants, type FormControlProps } from '../types';\nimport { InputWrapper, Prefix, Suffix } from './styles';\n\nexport const Input = forwardRef<\n HTMLInputElement,\n FormControlProps & { inputType?: 'text' | 'file' | 'search' | 'email' | 'password' | 'number' }\n>(\n (\n {\n style,\n className,\n prefix,\n suffix,\n invalid,\n touched,\n disabled,\n readOnly,\n value,\n type,\n inline,\n width,\n autoComplete = 'off',\n autoCorrect = 'off',\n autoCapitalize = 'off',\n spellCheck = false,\n wrapperRef,\n controlStyle,\n inputType = 'text',\n size = FormControlSizes.Default,\n clearable,\n variant = InputVariants.Default,\n id,\n ...props\n },\n ref\n ) => {\n // Make the forwardRef usable internally as well through this ref merging\n const inputRef = useRef(null);\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const handleClearClick = useCallback(() => {\n if (inputRef.current) {\n setNativeValue(inputRef.current, '');\n }\n }, []);\n\n const clearIconStyles: CSSProperties = useMemo(\n () => ({\n pointerEvents: value ? 'initial' : 'none',\n opacity: value ? 1 : 0,\n }),\n [value]\n );\n\n const isPrefixText = typeof prefix === 'string' || (prefix as ReactElement)?.type === Icon;\n const isSuffixText = typeof suffix === 'string' || (suffix as ReactElement)?.type === Icon;\n\n return (\n \n \n {prefix && (\n \n {prefix}\n \n )}\n {(suffix || clearable) && (\n \n {clearable && (\n \n )}\n {suffix}\n \n )}\n \n );\n }\n);\n","/**\n * See: https://github.com/facebook/react/issues/10135\n * This function sets the value of the given input/textarea element and sets it value programmatically, as well as\n * emits an event which bubbles up and triggers react change detection.\n *\n * This is needed because just setting the element.value does not trigger react change detection,\n * and element.onChange() takes an advanced kind of event. The solution below is a proposed work-around\n * from the react github. See link above.\n * @param element\n * @param value\n */\nexport function setNativeValue(element: HTMLInputElement | HTMLTextAreaElement, value: string) {\n const { set: valueSetter } = Object.getOwnPropertyDescriptor(element, 'value') || {};\n const prototype = Object.getPrototypeOf(element);\n const { set: prototypeValueSetter } = Object.getOwnPropertyDescriptor(prototype, 'value') || {};\n\n if (prototypeValueSetter && valueSetter !== prototypeValueSetter) {\n prototypeValueSetter.call(element, value);\n } else if (valueSetter) {\n valueSetter.call(element, value);\n } else {\n throw new Error('The given element does not have a value setter');\n }\n\n element.dispatchEvent(new Event('input', { bubbles: true }));\n}\n","import Big from 'big.js';\nimport type React from 'react';\nimport { useCallback, useRef } from 'react';\nimport { useRifm } from 'rifm';\n\nimport { DECIMAL } from '../../../tokens/number';\nimport { format, parseNumber } from '../../../utils/number';\n\nconst REGEX = RegExp(`((?=^-)|[^0-9${DECIMAL}])`, 'g');\nconst POSITIVE_REGEX = RegExp(`[^0-9${DECIMAL}]`, 'g');\n\nconst FORMAT_OPTIONS = {\n spec: '0',\n round: false,\n pretty: true,\n};\n\nexport function useNumberInput({\n value,\n onChange,\n min,\n max,\n minIncrement = '0.01',\n defaultIncrement = '0.1',\n largeIncrement = '1',\n ...props\n}: {\n value?: string | null;\n min?: string;\n max?: string;\n minIncrement?: string;\n defaultIncrement?: string;\n largeIncrement?: string;\n onChange: (value: string) => void;\n}) {\n const ref = useRef(null);\n\n const onValueChange = useCallback(\n formattedValue => {\n onChange(formattedValue.replace(REGEX, ''));\n },\n [onChange]\n );\n\n const internalFormat = useCallback(\n (value: string) => {\n const regex = min != null && Big(min).gte('0') ? POSITIVE_REGEX : REGEX;\n const cleanValue = restrictToOneDecimal(value.replace(regex, ''));\n if (cleanValue === DECIMAL) {\n return DECIMAL;\n } else if (cleanValue === '-') {\n return '-';\n } else if (cleanValue === `-${DECIMAL}`) {\n return `-${DECIMAL}`;\n } else if (value.includes(DECIMAL)) {\n if (value.endsWith(DECIMAL)) {\n const sign = value.startsWith('-') ? '-' : '';\n return restrictToOneDecimal(`${sign}${format(cleanValue, FORMAT_OPTIONS)}${DECIMAL}`);\n }\n const [integers, decimals] = cleanValue.split(DECIMAL);\n let sign = Big(cleanValue).lt(0) && Big(cleanValue).gt(-1) ? '-' : '';\n if (value.startsWith('-0.')) {\n // due to number manipation logic if we don't do this and user type -0.00 (in order to achieve -0.005)\n // the negative sign would be lost since negative zero is considered same as zero, which is positive\n sign = '-';\n }\n return restrictToOneDecimal(\n `${sign}${format(integers, { ...FORMAT_OPTIONS, spec: '0' })}${DECIMAL}${decimals}`\n );\n } else if (cleanValue.startsWith('-')) {\n const sign = Big(cleanValue).lte(0) && Big(cleanValue).gt(-1) ? '-' : '';\n return `${sign}${format(cleanValue, FORMAT_OPTIONS)}`;\n } else if (cleanValue && Big(cleanValue).eq(0)) {\n return cleanValue;\n } else {\n return format(cleanValue, FORMAT_OPTIONS);\n }\n },\n [min]\n );\n\n const rifm = useRifm({\n value: value ?? '',\n onChange: onValueChange,\n accept: /[\\d.]+/g,\n format: internalFormat,\n replace: (value: string) => {\n if (value === DECIMAL) {\n setTimeout(() => ref.current?.setSelectionRange(2, 2), 0);\n return `0${DECIMAL}`;\n } else if (value === '-') {\n // We seem to catch the replace action one render cycle behind sometimes\n // Causing input \"-\" and then '12345' very fast to have weird cursor selection\n // -123|45\n // If we set the selectionRange to something comically large, it'd ensure the cursor is at the end.\n setTimeout(() => ref.current?.setSelectionRange(100, 100), 0);\n return '-';\n } else if (value.startsWith(`-${DECIMAL}`)) {\n const parts = value.split(DECIMAL);\n const decimals = parts[1];\n const newValue = `-0${DECIMAL}${decimals}`;\n setTimeout(() => ref.current?.setSelectionRange(newValue.length, newValue.length), 0);\n return newValue;\n }\n\n return clampValue(value, min, max);\n },\n });\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const { target, key, altKey, shiftKey } = e;\n const input = target as HTMLInputElement;\n if (key === 'ArrowDown' || key === 'ArrowUp') {\n e.preventDefault();\n const value = Big(parseNumber(input.value) || '0');\n const increment = shiftKey ? largeIncrement : altKey ? minIncrement : defaultIncrement;\n const newValue = key === 'ArrowDown' ? value.sub(increment) : value.add(increment);\n // If min is defined, and new value is less than min, set value to min.\n if (min !== undefined && newValue.lt(min)) {\n onValueChange(format(min, FORMAT_OPTIONS));\n return;\n }\n onValueChange(format(clampValue(newValue.toFixed(), min, max), FORMAT_OPTIONS));\n }\n },\n [onValueChange, minIncrement, defaultIncrement, largeIncrement, min, max]\n );\n return { onKeyDown, ref, step: defaultIncrement, ...rifm, ...props };\n}\n\nfunction clampValue(value: string, min?: string, max?: string) {\n const regex = min != null && Big(min).gte('0') ? POSITIVE_REGEX : REGEX;\n const cleanValue = restrictToOneDecimal(value.replace(regex, ''));\n if (value != null && value !== '') {\n if (min != null && min !== '' && Big(cleanValue).lt(min)) {\n return format(min, FORMAT_OPTIONS);\n }\n if (max != null && max !== '' && Big(cleanValue).gt(max)) {\n return format(max, FORMAT_OPTIONS);\n }\n }\n return value;\n}\n\nfunction restrictToOneDecimal(value: string): string {\n if (value.includes(DECIMAL)) {\n const [integers, decimals] = value.split(DECIMAL, 2);\n // Decimals might include additional decimals, lets remove them.\n const cleanDecimals = decimals.replace(DECIMAL, '');\n return `${integers}${DECIMAL}${cleanDecimals}`;\n }\n return value;\n}\n","import Big from 'big.js';\nimport type { Currency, Security } from '../../types';\nimport { allowContracts, getMinIncrementForContract } from '../../utils';\nimport { useNumberInput } from '../Form/NumberInput/useNumberInput';\n\nconst isSecurity = (asset?: Currency | Security): asset is Security => (asset as Security)?.BaseCurrency != null;\n\nexport function useAmountInput({\n currency,\n asset,\n value,\n min,\n max,\n onChange,\n minIncrementOverride,\n defaultIncrementOverride,\n}: {\n currency?: string;\n asset?: Currency | Security;\n value: string;\n min?: string;\n max?: string;\n onChange: (value: string) => void;\n minIncrementOverride?: string;\n defaultIncrementOverride?: string;\n}) {\n let base;\n let minIncrement;\n let defaultIncrement;\n if (isSecurity(asset)) {\n base = currency === asset?.BaseCurrency;\n minIncrement =\n minIncrementOverride ||\n (base ? asset?.MinSizeIncrement : asset?.MinAmtIncrement || asset?.MinPriceIncrement) ||\n '0.01';\n defaultIncrement =\n defaultIncrementOverride || (base ? asset?.DefaultSizeIncrement : asset?.DefaultPriceIncrement) || '0.1';\n if (allowContracts(asset)) {\n if (currency) {\n // sc-77242\n minIncrement = getMinIncrementForContract(asset, currency) || minIncrement;\n defaultIncrement = minIncrement;\n } else {\n // https://talostrading.atlassian.net/browse/UI-3168\n minIncrement = '1';\n defaultIncrement = '1';\n }\n }\n } else {\n minIncrement = asset?.MinIncrement || '0.01';\n defaultIncrement = asset?.DefaultIncrement || '0.1';\n }\n const largeIncrement = Big(defaultIncrement).lt(1) ? '1' : Big(defaultIncrement).times(10).toFixed();\n\n return useNumberInput({\n minIncrement,\n defaultIncrement,\n largeIncrement,\n value,\n min,\n max,\n onChange,\n });\n}\n","import { forwardRef, type ForwardedRef } from 'react';\nimport type { Currency, Security } from '../../../types';\nimport { Input } from '../../Form/Input';\nimport type { FormControlProps } from '../../Form/types';\nimport { useAmountInput } from '../useAmountInput';\n\nexport const AmountInput = forwardRef(function AmountInput(\n {\n currency,\n asset,\n value,\n onChange,\n min,\n max,\n minIncrementOverride,\n defaultIncrementOverride,\n ...props\n }: AmountInputProps,\n ref: ForwardedRef\n) {\n const inputProps = useAmountInput({\n currency,\n asset,\n value,\n onChange,\n min,\n max,\n minIncrementOverride,\n defaultIncrementOverride,\n });\n\n const usedRef = ref ?? inputProps.ref;\n\n return ;\n});\n\nexport type AmountInputProps = {\n value: string;\n currency?: string;\n asset?: Currency | Security;\n onChange: (value?: string) => void;\n min?: string;\n max?: string;\n // https://talostrading.atlassian.net/browse/UI-2918\n // Current Deribit options have same Base and Quote currencies which means we can't apply the below logic correctly\n // Because it will end up using the security.SizeIncrement for both the quantity and price fields\n minIncrementOverride?: string;\n defaultIncrementOverride?: string;\n} & Omit, 'security' | 'onChange' | 'value'>;\n","import type { CustomCellEditorProps } from 'ag-grid-react';\nimport { useDynamicCallback } from 'hooks/useDynamicCallback';\nimport { useEffect, useRef } from 'react';\nimport type { FormControlSizes } from '../Form/types';\nimport { AmountInput, type AmountInputProps } from '../Forms/AmountInput';\n\nexport interface AgGridAmountInputProps extends Pick {\n currencyField?: string;\n size?: FormControlSizes;\n}\n\nexport const AgGridAmountInput = function AgGridAmountInput({\n size,\n node,\n colDef,\n parseValue,\n currencyField = 'Currency',\n data,\n value,\n onValueChange,\n ...props\n}: CustomCellEditorProps & AgGridAmountInputProps) {\n const inputRef = useRef(null);\n const { currenciesBySymbol } = props.context.current;\n\n const handleChange = useDynamicCallback((value: string | undefined) => {\n onValueChange(value ? parseValue(value) : undefined);\n\n // Weird cursor behavior if user types the negative '-' sign\n // Similar to packages/kyoko/src/components/Form/NumberInput/useNumberInput.tsx\n // So we purposely move the cursor to the end\n if (value === '-') {\n setTimeout(() => inputRef.current?.setSelectionRange(100, 100), 0);\n }\n });\n\n useEffect(() => {\n setTimeout(() => {\n if (inputRef?.current != null) {\n inputRef.current.focus();\n }\n });\n }, []);\n\n const asset = currenciesBySymbol?.get(data?.[currencyField]);\n\n return (\n \n );\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { isFunction } from 'lodash';\nimport { Button } from '../Button';\nimport type { AgGridButtonProps } from './types';\n\nexport function AgGridButton({\n onClick,\n node,\n api,\n children,\n size,\n disabled,\n hide,\n ...props\n}: Omit & AgGridButtonProps) {\n if (hide && node.data && hide(node.data)) {\n return null;\n }\n return (\n {\n e.stopPropagation();\n onClick({ node, api });\n }}\n disabled={isFunction(disabled) ? disabled({ node, api }) : disabled}\n data-testid=\"ag-grid-button\"\n {...props}\n >\n {children}\n \n );\n}\n","import { useMemo, type PropsWithChildren } from 'react';\n\nimport { useTheme, type DefaultTheme } from 'styled-components';\nimport type { BoxProps } from '../Core';\nimport { IndicatorBadgeSizes, IndicatorBadgeVariants, IndicatorBadgeWrapper } from './styles';\nexport { IndicatorBadgeSizes, IndicatorBadgeVariants } from './styles';\n\ntype IndicatorBadgeProps = PropsWithChildren<{\n show?: boolean;\n size?: IndicatorBadgeSizes;\n variant?: IndicatorBadgeVariants;\n theme?: DefaultTheme;\n noWrap?: boolean;\n square?: boolean;\n}> &\n BoxProps;\n\nexport function IndicatorBadge({\n children,\n show = true,\n size = IndicatorBadgeSizes.Small,\n variant = IndicatorBadgeVariants.Default,\n noWrap = false,\n ...props\n}: IndicatorBadgeProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n\n const badgeStyle = useMemo(\n () =>\n noWrap\n ? {\n whiteSpace: 'nowrap' as const,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\n : {},\n [noWrap]\n );\n\n return show && children != null ? (\n \n {children}\n \n ) : null;\n}\n","import type { BoxProps } from 'components/Core';\nimport { useTheme, type DefaultTheme } from 'styled-components';\nimport { IndicatorBadge } from './IndicatorBadge';\nimport { IndicatorBadgeSizes, IndicatorBadgeVariants, Wrapper } from './styles';\nexport { IndicatorBadgeSizes, IndicatorBadgeVariants } from './styles';\n\nexport type IndicatorBadgeProps = {\n show?: boolean;\n size?: IndicatorBadgeSizes;\n variant?: IndicatorBadgeVariants;\n children?: React.ReactNode;\n content?: React.ReactNode;\n theme?: DefaultTheme;\n noWrap?: boolean;\n} & BoxProps;\n\nexport function IndicatorBadgeWrapper({\n children,\n content = null,\n show = true,\n size = IndicatorBadgeSizes.Small,\n variant = IndicatorBadgeVariants.Default,\n noWrap = false,\n ...props\n}: IndicatorBadgeProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n\n return (\n \n {children}\n {show && content !== null && (\n \n )}\n \n );\n}\n","import styled from 'styled-components';\nimport { getButtonSpacing } from '../../Button';\nimport { Flex } from '../../Core';\nimport type { FormControlSizes } from '../../Form/types';\nimport { InputWrapper } from '../Input';\n\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-direction: row;\n`;\n\nexport const TextWrapper = styled.div`\n overflow-y: hidden;\n`;\n\nexport const Results = styled.ul<{ maxHeight?: number }>`\n margin: 0;\n list-style: none;\n padding: 0;\n\n max-height: ${({ maxHeight }) => `${maxHeight}px`};\n overflow-y: ${({ maxHeight }) => maxHeight != null && 'auto'};\n`;\n\nexport const AutocompleteResultsWrapper = styled.div<{ size?: FormControlSizes }>`\n ${InputWrapper} {\n border-radius: 0;\n border-color: transparent;\n border-bottom-color: ${({ theme }) => theme.borderColorDivider};\n background: ${({ theme }) => theme.backgroundDropdownInput};\n padding: ${({ theme }) => `${theme.spacingTiny}px ${theme.spacingComfortable}px`};\n height: auto;\n }\n`;\n\nexport const Title = styled.div<{ disabled?: boolean }>`\n color: ${({ disabled, theme }) => (disabled ? theme.colorTextMuted : theme.colorTextDefault)};\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\n\nexport const Description = styled.div<{ disabled?: boolean }>`\n color: ${({ disabled, theme }) => (disabled ? theme.colorTextMuted : theme.colorTextSubtle)};\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const Result = styled.li<{\n isHighlighted: boolean;\n isSelected: boolean;\n disabled?: boolean;\n size?: FormControlSizes;\n}>`\n padding: ${({ theme, size }) => getButtonSpacing(theme, size)};\n display: flex;\n justify-content: center;\n flex-direction: column;\n cursor: pointer;\n border-bottom: 1px solid ${({ theme }) => theme.backgroundDropdownResults};\n\n ${({ isHighlighted, isSelected, disabled, theme }) => {\n if (disabled) {\n return `\n cursor: not-allowed;\n `;\n } else if (isSelected) {\n return `\n background: ${theme.backgroundDropdownSelected};\n color: ${theme.colorTextAttention};\n\n ${Title} {\n color: ${theme.colorTextAttention};\n }\n ${Description} {\n color: ${theme.colorTextImportant};\n }\n `;\n } else if (isHighlighted) {\n return `\n background: ${theme.backgroundDropdownHovered};\n color: ${theme.colorTextImportant};\n\n ${Title} {\n color: ${theme.colorTextImportant};\n }\n ${Description} {\n color: ${theme.colorTextDefault};\n }\n `;\n }\n }}\n`;\n\nexport const NoResults = styled(Flex)``;\nNoResults.defaultProps = {\n alignItems: 'center',\n justifyContent: 'center',\n h: '37px',\n px: 'spacingMedium',\n};\n\nexport const Dropdown = styled.div``;\n","export const IGNORED_AUTOCOMPLETE_GROUP = '__IGNORED_AUTOCOMPLETE_GROUP__';\n","import { isEqual } from 'lodash';\nimport { createElement, createRef, useEffect, useState, type RefObject } from 'react';\nimport { defineMessages } from 'react-intl';\nimport { FixedSizeList } from 'react-window';\nimport { useTheme } from 'styled-components';\nimport { AccordionGroup } from '../../Accordion';\nimport { Box, HStack } from '../../Core';\nimport { IndicatorBadge } from '../../IndicatorBadge';\nimport { FormattedMessage } from '../../Intl';\nimport { Text } from '../../Text';\nimport { NoResults, Result, Results, Title } from '../AutocompleteDropdown/styles';\nimport { IGNORED_AUTOCOMPLETE_GROUP } from './tokens';\nimport type { AutocompleteGroup, AutocompleteResultsProps, FuseSearchResult } from './types';\n\nconst messages = defineMessages({\n noResultsFound: {\n defaultMessage: 'No results found',\n id: 'Form.Autocomplete.noResultsFound',\n },\n});\n\n// We can add more to this state at a later point. Like isOpen state once we have time to implement that properly\ninterface DropdownState {\n listRef: RefObject>;\n}\n\nexport const AutocompleteResults = ({\n isOpen,\n searchResultGroups,\n highlightedIndex,\n getItemProps,\n size,\n itemSize = 40, // 2 rows\n maxHeight = 200,\n groupMaxHeight = 200,\n renderResult,\n selectedItem,\n selectedGroup,\n resultsRef,\n equalityChecker = isEqual,\n RenderGroupHeader = AutoCompleteDropdownGroupHeader,\n renderEmpty = RenderEmpty,\n}: AutocompleteResultsProps) => {\n const showGroupHeaders = selectedGroup == null;\n\n // a mapping for group -> dropdown state to store FixedSizeList ref and isOpen state\n const [state, setState] = useState>(new Map());\n\n // Whenever new groups come in always make sure they're given a ref.\n useEffect(() => {\n setState(currState => {\n const newGroupsWithoutstate = searchResultGroups.filter(group => !currState.has(group.group));\n for (const newGroup of newGroupsWithoutstate) {\n currState.set(newGroup.group, { listRef: createRef() });\n }\n\n return new Map(currState);\n });\n }, [searchResultGroups]);\n\n useEffect(() => {\n const groupAndIndex = getGroupAndGroupIndexFromGlobalIndex(searchResultGroups, highlightedIndex);\n if (!groupAndIndex) {\n return;\n }\n\n const groupState = state.get(groupAndIndex.group);\n if (!groupState) {\n return;\n }\n\n groupState.listRef.current?.scrollToItem(groupAndIndex.groupIndex);\n }, [highlightedIndex, state, searchResultGroups]);\n\n return (\n \n \n {isOpen && (\n \n {searchResultGroups.length > 0\n ? searchResultGroups.reduce((output, group, groupIdx) => {\n const groupState = state.get(group.group);\n\n if (!groupState) {\n return output;\n }\n\n const showHeader = group.group !== IGNORED_AUTOCOMPLETE_GROUP && showGroupHeaders;\n\n output.push(\n \n {showHeader && }\n \n {({ index, style }) => {\n const result = group.items[index];\n const globalItemIndex = getGlobalIndex(searchResultGroups, groupIdx, index);\n\n const isDisabled = result.item.disabled;\n const dataItem = result.item.item;\n const isSelected = equalityChecker(dataItem, selectedItem ?? undefined);\n const key =\n (typeof dataItem === 'object' && (dataItem as { key?: string })?.key) ||\n `${groupIdx}${index}`; // might be a performance problem to have this based on itemIndex\n return (\n \n {renderResult(result, isDisabled)}\n \n );\n }}\n \n \n );\n\n return output;\n }, [] as any[]) // <--- Here's the init array for the reducer\n : createElement(renderEmpty)}\n \n )}\n \n \n );\n};\n\nfunction getGlobalIndex(groups: AutocompleteGroup>[], groupIdx: number, itemIdx: number) {\n let idx = 0;\n for (let i = 0; i < groupIdx; i++) {\n idx += groups[i].items.length;\n }\n return idx + itemIdx;\n}\n\nfunction getGroupAndGroupIndexFromGlobalIndex(\n groups: AutocompleteGroup>[],\n globalIndex: number\n) {\n let count = 0;\n\n for (const group of groups) {\n count += group.items.length;\n const indexOfLastItemThisFar = count - 1;\n if (globalIndex <= indexOfLastItemThisFar) {\n const itemsBetweenGlobalIndexAndLastIndexInGroup = indexOfLastItemThisFar - globalIndex;\n const groupIndex = group.items.length - 1 - itemsBetweenGlobalIndexAndLastIndexInGroup;\n\n return { group: group.group, groupIndex };\n }\n }\n\n return undefined;\n}\n\nexport function AutoCompleteDropdownGroupHeader({\n group,\n showCount = true,\n}: {\n group: AutocompleteGroup>;\n showCount?: boolean;\n}) {\n const theme = useTheme();\n return (\n \n \n {group.group}\n \n {showCount && }\n \n );\n}\n\nfunction RenderEmpty() {\n return (\n \n \n <FormattedMessage {...messages.noResultsFound} />\n \n \n );\n}\n","// THIS FILE WAS GENERATED BY cryptoicons-parser.ts, DO NOT EDIT MANUALLY.\nexport const CURRENCY_COLORS = {\n $pac: '#F5EB16',\n '0xbtc': '#FF914D',\n '1inch': '#D82122',\n '2give': '#F1CB60',\n aave: '#2EBAC6',\n abt: '#3EFFFF',\n act: '#767DFF',\n actn: 'red',\n ada: '#0033AD',\n add: '#FEC807',\n adx: '#1B75BC',\n ae: '#DE3F6B',\n aeon: '#134451',\n aeur: '#051D2D',\n agi: '#6916ff',\n agrs: '#f49e00',\n aion: '#00BFEC',\n algo: '#000',\n amb: '#3c5be0',\n amp: '#2DAEE4',\n ampl: '#000',\n ankr: '#2E6BF6',\n ant: '#2CD3E1',\n ape: '#0054F9',\n apex: '#1F4C9F',\n appc: '#fd875e',\n ardr: '#3C87C7',\n arg: '#A71435',\n ark: '#F70000',\n arn: '#0092b5',\n arnx: '#436697',\n ary: '#343434',\n ast: '#0061ff',\n atlas: '#31FAFB',\n atm: '#346fce',\n atom: '#2E3148',\n audr: '#34318A',\n aury: '#E756CC',\n auto: '#FAB431',\n avax: '#E84142',\n aywa: '#3355B5',\n bab: '#F19F13',\n bal: '#1E1E1E',\n band: '#516AFF',\n bat: '#FF5000',\n bay: '#6356ab',\n bcbc: '#004ab5',\n bcc: '#F7931C',\n bcd: '#fcc339',\n bch: '#8dc351',\n bcio: '#3F43AD',\n bcn: '#F04086',\n bco: '#2c76b7',\n bcpt: '#404040',\n bdl: '#E54C40',\n beam: '#0B76FF',\n bela: '#13a0f6',\n bix: '#000',\n blcn: '#2aabe4',\n blk: '#181818',\n block: '#101341',\n blz: '#18578c',\n bnb: '#F0B90B',\n bnt: '#000D2B',\n bnty: '#fd7a3d',\n booty: '#00B4F4',\n bos: '#00A8D6',\n bpt: '#0f63d8',\n bq: '#1D1D1D',\n brd: '#fe5d86',\n bsd: '#000',\n bsv: '#EAB304',\n btc: '#F7931A',\n btcd: '#F60',\n btch: '#4700C2',\n btcp: '#272d63',\n btcz: '#F8C24A',\n btdx: '#0AF',\n btg: '#EBA809',\n btm: '#504C4C',\n bts: '#35BAEB',\n btt: '#000',\n btx: '#FB2EA3',\n burst: '#2d2d2d',\n bze: '#00AEEF',\n call: '#FBB413',\n cc: '#36B0F3',\n cdn: '#f70808',\n cdt: '#272731',\n cenz: '#3089F2',\n chain: '#00ACED',\n chat: '#1C98F7',\n chips: '#598182',\n chsb: '#01C38D',\n chz: '#CD0124',\n cix: '#0576B4',\n clam: '#20c5d3',\n cloak: '#ff3a00',\n cmm: '#2FD2E5',\n cmt: '#c1a05c',\n cnd: '#383939',\n cnx: '#4c6bae',\n cny: '#ff4314',\n cob: '#13bf99',\n colx: '#77C3B0',\n comp: '#00D395',\n coqui: '#71C800',\n cred: '#37e8a3',\n crpt: '#00bdcd',\n crv: '#40649F',\n crw: '#0F1529',\n cs: '#262626',\n ctr: '#fdde6c',\n ctxc: '#000',\n cvc: '#3AB03E',\n d: '#B8B8B8',\n dai: '#F4B731',\n dash: '#008CE7',\n dat: '#2d9cdb',\n data: '#E9570F',\n dbc: '#5bc1d4',\n dcn: '#136485',\n dcr: '#2ED6A1',\n deez: '#939393',\n dent: '#666',\n dew: '#fec907',\n dgb: '#006AD2',\n dgd: '#F4D029',\n dlt: '#f4ae95',\n dnt: '#2c398f',\n dock: '#786DBC',\n doge: '#C3A634',\n dot: '#E6007A',\n drgn: '#C91111',\n drop: '#242D3D',\n dta: '#74d269',\n dth: '#3C80F1',\n dtr: '#121747',\n ebst: '#1693d4',\n eca: '#AA15DD',\n edg: '#2B1544',\n edo: '#242424',\n edoge: '#0FACF3',\n ela: '#3FBADF',\n elec: '#F90',\n elf: '#2b5ebb',\n elix: '#00aded',\n ella: '#396a28',\n emb: '#F6C054',\n emc: '#B49FFC',\n emc2: '#0CF',\n eng: '#2f2f2f',\n enj: '#624dbf',\n entrp: '#FA5836',\n eon: '#443F54',\n eop: '#35A7DF',\n eos: '#000',\n eqli: '#C9A35E',\n equa: '#F68922',\n etc: '#328332',\n eth: '#454A75',\n ethos: '#00FFBA',\n etn: '#23BEE2',\n etp: '#00A5FF',\n eur: '#0f8ff8',\n evx: '#044aac',\n exmo: '#347FFB',\n exp: '#FFAA5C',\n fair: '#C99705',\n fct: '#417BA4',\n fida: '#7C7CFF',\n fil: '#42C1CA',\n fjc: '#00AFEC',\n fldc: '#c40e09',\n flo: '#2080a2',\n flux: '#2B61D1',\n fsn: '#1D9AD7',\n ftc: '#27323a',\n fuel: '#4096d0',\n fun: '#ed1968',\n game: '#2d475b',\n gas: '#58BF00',\n gbp: '#bc3fe0',\n gbx: '#1666af',\n gbyte: '#302C2C',\n generic: '#efb914',\n gin: '#008DDE',\n glxt: '#005396',\n gmr: '#372D2C',\n gmt: '#DBB358',\n gno: '#00A6C4',\n gnt: '#001D57',\n gold: '#F1B32B',\n grc: '#5411B3',\n grin: '#FFF300',\n grs: '#377E96',\n grt: '#5942CC',\n gsc: '#FF0060',\n gto: '#7f27ff',\n gup: '#37DCD8',\n gusd: '#00DCFA',\n gvt: '#16b9ad',\n gxs: '#35A5F3',\n gzr: '#56C9E9',\n hight: '#117FC0',\n hns: '#000',\n hodl: '#D59143',\n hot: '#8834FF',\n hpb: '#1591ca',\n hsr: '#56428E',\n ht: '#2A3069',\n html: '#cfa967',\n huc: '#ffc018',\n husd: '#005FFA',\n hush: '#292929',\n icn: '#4C6F8C',\n icp: '#292A2E',\n icx: '#1fc5c9',\n ignis: '#f9c011',\n ilk: '#98C23A',\n ink: '#df1a14',\n ins: '#b2a3f6',\n ion: '#57beea',\n iop: '#0CAFA5',\n iost: '#1c1c1c',\n iotx: '#00D4D5',\n iq: '#5DF',\n itc: '#102044',\n jnt: '#0050db',\n jpy: '#eac749',\n kcs: '#23AF91',\n kin: '#005fff',\n klown: '#EA0017',\n knc: '#31CB9E',\n krb: '#00AEEF',\n ksm: '#000',\n lbc: '#006149',\n lend: '#0fa9c9',\n leo: '#11021E',\n link: '#375BD2',\n lkk: '#9D01EB',\n loom: '#48BEFF',\n lpt: '#000',\n lrc: '#2ab6f6',\n lsk: '#0d4ea0',\n ltc: '#345D9D',\n lun: '#f55749',\n maid: '#5592D7',\n mana: '#FF2D55',\n matic: '#6F41D8',\n max: '#2D4692',\n mcap: '#033B4A',\n mco: '#103F68',\n mda: '#01a64f',\n mds: '#1e252c',\n med: '#00B0FF',\n meetone: '#000',\n mft: '#DA1157',\n miota: '#242424',\n mith: '#00316D',\n mkr: '#1AAB9B',\n mln: '#0B1529',\n mnx: '#00ADEF',\n mnz: '#7F368A',\n moac: '#000',\n mod: '#09547d',\n mona: '#DEC799',\n msr: '#47B95C',\n mth: '#104fca',\n mtl: '#1E1F25',\n music: '#FFF',\n mzc: '#FFAA05',\n nano: '#209CE9',\n nas: '#222',\n nav: '#7D59B5',\n ncash: '#36a9cf',\n ndz: '#622fba',\n nebl: '#50479E',\n neo: '#58BF00',\n neos: '#e5f300',\n neu: '#B3BA00',\n nexo: '#1A4199',\n ngc: '#f80000',\n nio: '#70C9C9',\n nkn: '#23336F',\n nlc2: '#f28f01',\n nlg: '#2AB0FD',\n nmc: '#186C9D',\n nmr: '#050708',\n npxs: '#F5D100',\n ntbc: '#EEC315',\n nuls: '#82bd39',\n nxs: '#4099CD',\n nxt: '#008FBB',\n oax: '#164b79',\n ok: '#000',\n omg: '#101010',\n omni: '#1c347a',\n one: '#00AEE9',\n ong: '#000',\n ont: '#32a4be',\n oot: '#25AAE1',\n ost: '#34445B',\n ox: '#4392cd',\n oxt: '#5F45BA',\n oxy: '#2261F6',\n part: '#65CB8D',\n pasc: '#F7931E',\n pasl: '#00acff',\n pax: '#398260',\n paxg: '#E4CE4D',\n pay: '#302C2C',\n payx: '#630',\n pink: '#ed79aa',\n pirl: '#96b73d',\n pivx: '#5E4778',\n plr: '#00bfff',\n poa: '#444fa1',\n poe: '#dcd6cc',\n polis: '#2C3E50',\n poly: '#4c5a95',\n pot: '#105B2F',\n powr: '#05BCA9',\n ppc: '#3CB054',\n ppp: '#348f8d',\n ppt: '#152743',\n pre: '#3A8CBD',\n prl: '#1061e3',\n pungo: '#22B573',\n pura: '#333',\n qash: '#1347E8',\n qiwi: '#FF8C00',\n qlc: '#610089',\n qnt: '#000',\n qrl: '#252525',\n qsp: '#454545',\n qtum: '#2E9AD0',\n r: '#771a4e',\n rads: '#9d4bef',\n rap: '#000',\n ray: '#6C45DC',\n rcn: '#3555f9',\n rdd: '#E30613',\n rdn: '#2A2A2A',\n ren: '#080817',\n rep: '#602A52',\n repv2: '#0E0E21',\n req: '#00E6A0',\n rhoc: '#CC1E46',\n ric: '#60e4dd',\n rise: '#f49352',\n rlc: '#FFD800',\n rpx: '#8d181b',\n rub: '#64d1ff',\n rvn: '#384182',\n ryo: '#3D58B0',\n safe: '#00688C',\n safemoon: '#00A79D',\n sai: '#B68900',\n salt: '#1BEEF4',\n san: '#2B77B3',\n sand: '#04ADEF',\n sbd: '#4ba2f2',\n sberbank: '#48B254',\n sc: '#20EE82',\n ser: '#6DC6C1',\n shift: '#964B9C',\n sib: '#057BC1',\n sin: '#F5342E',\n skl: '#000',\n sky: '#0072FF',\n slr: '#FDA616',\n sls: '#8e9495',\n smart: '#FEC60D',\n sngls: '#B30D23',\n snm: '#0b1c26',\n snt: '#5B6DEE',\n snx: '#5FCDF9',\n soc: '#199248',\n sol: '#9945FF',\n spacehbit: '#0971FE',\n spank: '#ff3b81',\n sphtx: '#00b098',\n srn: '#1c1c1c',\n stak: '#F2941B',\n start: '#01aef0',\n steem: '#4BA2F2',\n storj: '#2683FF',\n storm: '#080d98',\n stox: '#7324F0',\n stq: '#2DC4E7',\n strat: '#1387C9',\n stx: '#5546FF',\n sub: '#E53431',\n sumo: '#2D9CDB',\n sushi: '#D65892',\n sys: '#0082c6',\n taas: '#002342',\n tau: '#7b346e',\n tbx: '#5244D4',\n tel: '#14c8ff',\n ten: '#0899CD',\n tern: '#F4C257',\n tgch: '#434247',\n theta: '#2ab8e6',\n tix: '#ef494d',\n tkn: '#24DD7B',\n tks: '#895AF8',\n tnb: '#ffc04e',\n tnc: '#ff439b',\n tnt: '#ff4081',\n tomo: '#1A1F36',\n tpay: '#3058A6',\n trig: '#30c0f2',\n trtl: '#00843D',\n trx: '#EF0027',\n tusd: '#2B2E7F',\n tzc: '#374851',\n ubq: '#00EA90',\n uma: '#FF4A4A',\n uni: '#FF007A',\n unity: '#f58634',\n usd: '#6C9A44',\n usdc: '#3E73C4',\n usdt: '#009393',\n utk: '#30367a',\n veri: '#F93',\n vet: '#15BDFF',\n via: '#565656',\n vib: '#ff1f43',\n vibe: '#338be5',\n vivo: '#408af1',\n vrc: '#418bca',\n vrsc: '#3165D4',\n vtc: '#048657',\n vtho: '#2A5284',\n wabi: '#399b32',\n wan: '#136AAD',\n waves: '#0155ff',\n wax: '#f89022',\n wbtc: '#201A2D',\n wgr: '#b80000',\n wicc: '#5783CB',\n wings: '#0dc9f7',\n wpr: '#ffe600',\n wtc: '#8200FF',\n x: '#3B5998',\n xas: '#faa00d',\n xbc: '#f7931a',\n xbp: '#21AF67',\n xby: '#56f4f1',\n xcp: '#ED1650',\n xdn: '#4f7aa2',\n xem: '#67B2E8',\n xin: '#1EB5FA',\n xlm: '#480BE3',\n xmcc: '#DD0632',\n xmg: '#004a80',\n xmo: '#F60',\n xmr: '#FF6600',\n xmy: '#ec1076',\n xp: '#008200',\n xpa: '#4FA784',\n xpm: '#ffd81b',\n xpr: '#7543E3',\n xrp: '#23292F',\n xsg: '#D21E2B',\n xtz: '#0D61FF',\n xuc: '#25AAE3',\n xvc: '#b50126',\n xvg: '#00CBFF',\n xzc: '#23B852',\n yfi: '#006AE3',\n yoyow: '#21a5de',\n zcl: '#c87035',\n zec: '#ECB244',\n zel: '#183C87',\n zen: '#00EAAB',\n zest: '#07BC9C',\n zil: '#49c1bf',\n zilla: '#00004D',\n zrx: '#302C2C',\n};\n","import { CURRENCY_COLORS } from './currencyColors';\n\nexport function getCurrencyColor(currency: string): string | undefined {\n const colors = CURRENCY_COLORS;\n return colors[currency.toLowerCase()];\n}\n","import { map, pipe } from 'rxjs';\nimport type { EnrichedCreditExposure } from '../types';\n\n// Create a MarketAccount-Currency composite id for each datapoint received\nexport const creditExposuresCompositeIDPipe = pipe(\n map((result: { data: EnrichedCreditExposure[] }) => {\n return {\n ...result,\n data: result.data.filter(exposure => {\n // Filter out rows where Currency is not set on the exposure message\n return !!exposure.Currency;\n }),\n };\n })\n);\n","import { pipe, tap } from 'rxjs';\nimport type { MinimalSubscriptionResponse } from '../types/SubscriptionResponse';\n\n/**\n * Given a map of key->items, constructs a synthetic initial: true SubscriptionResponse\n * @param map A map of unique key -> item of type T\n * @param type optionally SubscriptionResponse.type to set on the SubscriptionResponse, defaults to empty string \"\"\n * @returns A synthetic MinimalSubscriptionResponse\n */\nexport function mapToInitialSubscriptionResponse(\n map: Map,\n type?: string,\n latestMessage?: MinimalSubscriptionResponse\n): MinimalSubscriptionResponse {\n return {\n ...latestMessage,\n type: type ?? latestMessage?.type ?? '',\n initial: true,\n data: [...map.values()],\n };\n}\n\n/**\n * A pipe to attach to your observables which only allows messages to pass if they are deemed meaningful, i.e.:\n * json is not undefined AND (json.length > 0 OR json.initial is true)\n * @param json a SubscriptionResponse\n * @returns only relevant SubscriptionResponse messages\n */\nexport const jsonDefinedAndMeaningful = (\n json: MinimalSubscriptionResponse | undefined\n): json is MinimalSubscriptionResponse => json !== undefined && (json.data.length > 0 || !!json.initial);\n\nexport const jsonDefined = (\n json: MinimalSubscriptionResponse | undefined\n): json is MinimalSubscriptionResponse => json !== undefined;\n\n/**\n * Tap an observable, and log all data flowing through that observable to the console.\n * @param prefix Prefix to log, to uniquely identify this console log\n * @returns Identity observable (input === output)\n *\n * @deprecated Don't use this in production, this should be dev-only.\n */\nexport function debugObservable(prefix: string) {\n // eslint-disable-next-line no-console\n return pipe(tap(x => console.log(prefix, x)));\n}\n","import { Observable, type Subject, type Subscriber } from 'rxjs';\nimport type { MinimalSubscriptionResponse } from '../types/SubscriptionResponse';\nimport { UpdateActionEnum } from '../types/types';\n\n/**\n * A testing util you can wrap your observables with to be notified when the observable's amount of subscribers changes\n * @param sourceObservable The observable you want to monitor\n * @param onChangeCallback A callback called with the new amount of subscribers on each change\n * @returns your observable you're passing in, just wrapped\n */\nexport function subscriberCount(sourceObservable: Observable, onChangeCallback: (subscribers: number) => void) {\n let counter = 0;\n return new Observable((subscriber: Subscriber) => {\n const subscription = sourceObservable.subscribe(subscriber);\n counter++;\n onChangeCallback(counter);\n\n return () => {\n subscription.unsubscribe();\n counter--;\n onChangeCallback(counter);\n };\n });\n}\n\nexport interface TestData {\n value: number;\n id: string;\n UpdateAction?: UpdateActionEnum;\n}\n\nexport const data1: TestData[] = [\n {\n value: 10,\n id: '1',\n },\n {\n value: 10,\n id: '2',\n },\n];\n\nexport const data2: TestData[] = [\n {\n value: 20, // overrides the value from data1\n id: '1',\n },\n {\n value: 10,\n id: '3',\n },\n];\n\nexport const data3: TestData[] = [\n {\n id: '4',\n value: 40,\n },\n];\n\nexport const combinedData1Data2: TestData[] = [\n {\n value: 20,\n id: '1',\n },\n {\n value: 10,\n id: '2',\n },\n {\n value: 10,\n id: '3',\n },\n];\n\nexport const data1RemoveFirst: TestData[] = [\n {\n ...data1[0],\n UpdateAction: UpdateActionEnum.Remove,\n },\n];\n\nexport const data1AfterRemove: TestData[] = [data1[1]];\n\nexport function wsMessage(data: T[], initial = false, action?: UpdateActionEnum): MinimalSubscriptionResponse {\n return {\n initial,\n type: 'TestData',\n action,\n data,\n };\n}\n\n/**\n * These test statements in here are reusable for any pipe which implements a scan-to-map-like behavior.\n * There are cases where we can't simply just reuse the scanToMap pipe and instead need to build it in into some other logic,\n * in which case having one set of tests to apply to all these implementations is very handy.\n */\nexport function reusableScanToMapTests(\n setupFunction: (\n onValueEmitted: (newMap: Map) => void,\n ...whatever\n ) => { subject: Subject> }\n) {\n it('adds and updates entries', () => {\n let latestMap = new Map();\n const callback = (newMap: Map) => (latestMap = newMap);\n const { subject } = setupFunction(callback, item => item);\n\n const msg1 = wsMessage([item1, item2]);\n subject.next(msg1);\n\n expect(latestMap).toEqual(\n new Map([\n ['1', item1],\n ['2', item2],\n ])\n );\n\n // Send another message\n const msg2 = wsMessage([item3]);\n subject.next(msg2);\n expect(latestMap).toEqual(\n new Map([\n ['1', item1],\n ['2', item2],\n ['3', item3],\n ])\n );\n\n // Send a last message with an update instead of a pure addition\n const changedItem1: TestItem = { ...item1, value: 'changed' };\n const msg3 = wsMessage([changedItem1]);\n subject.next(msg3);\n\n expect(latestMap).toEqual(\n new Map([\n ['1', changedItem1],\n ['2', item2],\n ['3', item3],\n ])\n );\n });\n\n it('removes entries when UpdateAction is specified', () => {\n let latestMap = new Map();\n const callback = (newMap: Map) => (latestMap = newMap);\n const { subject } = setupFunction(callback, item => item);\n\n const msg1 = wsMessage([item1]);\n subject.next(msg1);\n\n expect(latestMap).toEqual(new Map([['1', item1]]));\n\n const msg2 = wsMessage([{ ...item1, UpdateAction: UpdateActionEnum.Remove }]);\n subject.next(msg2);\n expect(latestMap).toEqual(new Map());\n });\n\n it('removes entries when top-level json action is specified', () => {\n let latestMap = new Map();\n const callback = (newMap: Map) => (latestMap = newMap);\n const { subject } = setupFunction(callback, item => item);\n\n const msg1 = wsMessage([item1]);\n subject.next(msg1);\n\n expect(latestMap).toEqual(new Map([['1', item1]]));\n\n const msg2 = wsMessage([item1], false, UpdateActionEnum.Remove);\n subject.next(msg2);\n expect(latestMap).toEqual(new Map());\n });\n\n it('prioritizes entry UpdateAction over json.action', () => {\n // Say that there's a case (there shouldnt be) where there's a top-level attribute and a entry-level update action,\n // we want to use the entry-level one above the top-level one.\n // This shouldnt happen but just defining here in this test what the behavior is so we dont change it willy-nilly\n\n let latestMap = new Map();\n const callback = (newMap: Map) => (latestMap = newMap);\n const { subject } = setupFunction(callback, item => item);\n\n const msg1 = wsMessage([item1, item2]);\n subject.next(msg1);\n\n expect(latestMap).toEqual(\n new Map([\n ['1', item1],\n ['2', item2],\n ])\n );\n\n // Item 1 not removed, item 2 removed.\n const msg2 = wsMessage(\n [{ ...item1, UpdateAction: UpdateActionEnum.Update }, item2],\n false,\n UpdateActionEnum.Remove\n );\n subject.next(msg2);\n\n expect(latestMap).toEqual(new Map([['1', { ...item1, UpdateAction: UpdateActionEnum.Update }]]));\n });\n\n it('clears map on initial message', () => {\n let latestMap = new Map();\n const callback = (newMap: Map) => (latestMap = newMap);\n const { subject } = setupFunction(callback, item => item);\n\n const msg1 = wsMessage([item1, item2]);\n subject.next(msg1);\n\n expect(latestMap).toEqual(\n new Map([\n ['1', item1],\n ['2', item2],\n ])\n );\n\n subject.next(wsMessage([], true));\n expect(latestMap).toEqual(new Map());\n });\n}\n\nexport interface TestItem {\n id: string;\n value: string;\n UpdateAction?: UpdateActionEnum;\n Revision?: number;\n Timestamp?: string;\n}\n\nconst item1: TestItem = {\n id: '1',\n value: '1',\n};\n\nconst item2: TestItem = {\n id: '2',\n value: '2',\n};\n\nconst item3: TestItem = {\n id: '3',\n value: '3',\n};\n","import { useMemo, useState } from 'react';\nimport { BehaviorSubject, Observable, skip, type OperatorFunction } from 'rxjs';\nimport { useConstant } from '../hooks/useConstant';\nimport { useDynamicCallback } from '../hooks/useDynamicCallback';\nimport type { UseSubscriptionReturn } from '../hooks/useSubscription';\nimport type { SubscriptionResponse } from '../types/SubscriptionResponse';\n\nexport interface LimitReachedChangeEvent {\n limitReached: boolean;\n lastRecord?: T;\n recordsReceived?: number;\n}\n\nexport interface WSPaginationLimiterParams {\n /**\n * A BehaviorSubject (must start with a populated value) emitting the current limit. New emissions on this stream\n * cause the pipe to execute nextPage if there now is more room in the limit.\n */\n limitBehaviorSubject: BehaviorSubject;\n nextPage: UseSubscriptionReturn['nextPage'];\n onLimitReachedChange?: ({ limitReached, lastRecord, recordsReceived }: LimitReachedChangeEvent) => void;\n}\n\n/**\n * `wsPaginationLimiter` allows you do paging in RxJS with an applied limiter on the max records we want to page in.\n *\n * On every change of the limit being reached or not (reached <-> not reached), `onLimitReachedChange` will emit a new value\n * for you to store in state and convey to the user.\n */\nexport function wsPaginationLimiter({\n limitBehaviorSubject,\n nextPage,\n onLimitReachedChange,\n}: WSPaginationLimiterParams): OperatorFunction, SubscriptionResponse> {\n return source => {\n return new Observable>(output => {\n let recordsReceived = 0;\n let limitReached = false;\n let limit = limitBehaviorSubject.value;\n\n // Subscribe to limit updates. Skip 1 because we already set it above, taking it directly from the behavior subject.\n const limitSub = limitBehaviorSubject.pipe(skip(1)).subscribe(newLimit => {\n limit = newLimit;\n const newLimitReached = recordsReceived >= limit;\n\n // Only do anything if the limit being raised leads to us going from a state of the limit being reached to the new state of the limit not being reached.\n if (limitReached && !newLimitReached) {\n limitReached = false;\n onLimitReachedChange?.({ limitReached: false });\n // we dont need to overcomplicate things and check that the last received message.next is defined. this is handled by WebsocketClient.\n nextPage();\n }\n });\n\n const sourceSub = source.subscribe(message => {\n if (message.initial) {\n recordsReceived = 0;\n }\n\n // We only count received records to the total if they are a page\n const isPaginationMessage = message.initial || message.page;\n if (isPaginationMessage) {\n recordsReceived += message.data.length;\n }\n\n const newLimitReached = recordsReceived >= limit;\n\n // Always forward the message\n output.next(message);\n if (newLimitReached !== limitReached) {\n // A change happened, notify\n const lastRecord = message.data.at(-1);\n onLimitReachedChange?.({\n limitReached: newLimitReached,\n lastRecord: newLimitReached ? lastRecord : undefined, // only pass along the last record if we've reached the limit\n recordsReceived: newLimitReached ? recordsReceived : undefined, // only pass the amount of records received if were at the limit\n });\n limitReached = newLimitReached;\n }\n\n if (!newLimitReached && message.next != null) {\n nextPage();\n }\n });\n\n return () => {\n if (limitReached) {\n // If limitReached has last been emitted as true from this pipe, we then let the implementer know\n // that this is no longer the case after we are unmounted. An \"unmount\" of this observable would in the blotter case mean that\n // the observable is killed / re-made.\n onLimitReachedChange?.({ limitReached: false });\n }\n limitSub.unsubscribe();\n sourceSub.unsubscribe();\n };\n });\n };\n}\n\ntype UseWSPaginationLimiterParams = {\n startingLimit: number | undefined;\n} & Pick, 'nextPage' | 'onLimitReachedChange'>;\n\n/**\n * This hooks creates a wsPaginationLimiter pipe instance for the caller and exposes an API to create a default limit and a function to call for\n * raising the limit. When the raiseLimit function is called, the wsPaginationLimiter pipe instance will call nextPage.\n *\n * If you want to conditionally apply the pagination limiter you can achieve this by setting the startingLimit to Infinity.\n */\nexport const useWsPaginationLimiter = ({\n startingLimit,\n nextPage,\n onLimitReachedChange,\n}: UseWSPaginationLimiterParams) => {\n // if startingLimit is undefined, just pass 0. The user has not passed a limit\n const [limit, setLimit] = useState(startingLimit ?? Infinity);\n const limitBehaviorSubject = useConstant(new BehaviorSubject(startingLimit ?? Infinity));\n\n const raiseLimit: (raiseBy?: number) => void = useDynamicCallback((raiseBy = 10_000) => {\n limitBehaviorSubject.next(limit + raiseBy);\n setLimit(limit + raiseBy);\n });\n\n const wsPaginationLimiterInstance = useMemo(\n () => wsPaginationLimiter({ limitBehaviorSubject, nextPage, onLimitReachedChange }),\n [limitBehaviorSubject, nextPage, onLimitReachedChange]\n );\n\n return { raiseLimit, limit, wsPaginationLimiterInstance };\n};\n","import { identity } from 'lodash';\nimport { filter, map, pipe, scan } from 'rxjs';\nimport type { MinimalSubscriptionResponse } from '../types/SubscriptionResponse';\nimport { UpdateActionEnum } from '../types/types';\nimport { compareTimestampsWithMicrosecondPrecision } from '../utils/microseconds';\nexport interface WSScanToMapParams {\n /** The unique key to use for storing items. The type of the returned key must be `(string | number)` */\n getUniqueKey: (item: T) => KeyType;\n /** An optional function going from `T => P` where you determine what you would like stored as values in the map.\n * @example\n * // basic case: just store T. This will emit a map of type `Map`\n * getInsertable: item => item\n * // store a specific property of T, eg DisplayName. This will emit a map of type `Map`\n * getInsertable: item => item.DisplayName\n * @default lodash.identity\n */\n getInsertable?: (item: T) => P;\n /** Whether or not to create a new map on each update. Necessary in order to trigger change detection if this operator is\n * the last transformation operator before bringing the variable into React-land. For example, if this operator is last in a\n * `useObservableValue` usage, you should most likely set this to `true`. If it's in the middle of a longer array of pipe transformations, set it as `false`.\n * This option does not default to false as it is important that the developer is aware of the implications of this option.\n * This option also make us treat all the maps as immutable\n */\n newMapEachUpdate: boolean;\n /**\n * A callback which allows you to decide whether or not the given item should be deleted. Will be invoked for every entry in every update.\n * This callback takes full precendence -- if provided, you handle all deletion of entries and no other deletion will take place.\n * As in: if provided, the pipe won't check UpdateAction.Remove for you.\n */\n shouldDelete?: (item: T) => boolean;\n /**\n * If set to true, will only allow updates if the `Revision` property is greater on the updated entry compared to the existing entry in the map.\n * Assumes that there is a `Revision` property on the incoming type T and the inserted type P.\n */\n ensureRevisionOrdering?: boolean;\n /**\n * If set to true, will only allow updates if the `Timestamp` property is later on the updated entry compared to the existing entry in the map.\n * Assumes that there is a `Timestamp` property on the incoming type T and the inserted type P.\n */\n ensureTimestampOrdering?: boolean;\n /**\n * If true, will wait for all pages to load before emitting the map. If false, will emit the map as soon as the first page is loaded.\n */\n waitForAllPagesToLoad?: boolean;\n}\n\n/**\n * A pipe which scans received updates to a map.\n * Handles remove update actions\n * Uses the getUniqueKey function you pass in to get the key used for storing in the map\n * @returns a map with unique entries\n */\nexport function wsScanToMap({\n getUniqueKey,\n getInsertable = identity,\n newMapEachUpdate,\n shouldDelete,\n ensureRevisionOrdering,\n ensureTimestampOrdering,\n waitForAllPagesToLoad = false,\n}: WSScanToMapParams) {\n return pipe(\n scan(\n ({ map: acc }, json: MinimalSubscriptionResponse) => {\n const map = newMapEachUpdate ? new Map(acc) : acc;\n\n if (json.initial) {\n map.clear();\n }\n\n // Safeguard here, return early.\n if (json.data == null) {\n return { map, isLoading: !!json.next };\n }\n\n for (const update of json.data) {\n const key = getUniqueKey(update);\n if (key === undefined) {\n continue;\n }\n\n const existingEntry = map.get(key);\n if (existingEntry) {\n if (ensureRevisionOrdering) {\n const existingRevision = existingEntry['Revision'];\n const updateRevision = update['Revision'];\n if (existingRevision != null && updateRevision != null && updateRevision < existingRevision) {\n continue;\n }\n }\n\n if (ensureTimestampOrdering) {\n const existingTimestamp = existingEntry['Timestamp'];\n const updateTimestamp = update['Timestamp'];\n if (\n existingTimestamp != null &&\n updateTimestamp != null &&\n // -1 indicates that updateTimestamp is earlier than time than existingTimestamp\n compareTimestampsWithMicrosecondPrecision(updateTimestamp, existingTimestamp) === -1\n ) {\n continue;\n }\n }\n }\n\n const maybeUpdateAction: UpdateActionEnum | undefined = update['UpdateAction'] ?? json.action;\n // If specified, the shouldDelete function has full control over _all_ deletion\n const shouldDeleteUpdate = shouldDelete\n ? shouldDelete(update)\n : maybeUpdateAction === UpdateActionEnum.Remove;\n if (shouldDeleteUpdate) {\n map.delete(key);\n } else {\n map.set(key, getInsertable(update));\n }\n }\n\n return { map, isLoading: !!json.next };\n },\n { map: new Map(), isLoading: false }\n ),\n filter(({ isLoading }) => !isLoading || !waitForAllPagesToLoad),\n map(({ map }) => map)\n );\n}\n","// API\n\nexport const AMEND = 'amend';\nexport const CANCEL = 'cancel';\nexport const SUBSCRIBE = 'subscribe';\nexport const PAGE = 'page';\n\n// Publication types\nexport const ORDER_CANCEL_REQUEST = 'OrderCancelRequest';\nexport const ORDER_MODIFY_REQUEST = 'OrderCancelReplaceRequest';\nexport const ORDER_TICKET_TOP_OF_BOOK = 'ORDER_TICKET_TOP_OF_BOOK';\nexport const BALANCES_LIST = 'BALANCES_LIST';\nexport const ORDER_CONTROL_REQUEST = 'OrderControlRequest';\n\n// Subscription type\nexport const ADDRESS = 'Address';\nexport const BALANCE = 'BalanceSnapshot';\nexport const BALANCE_DELTA = 'BalanceDelta';\nexport const BALANCE_TRANSACTION = 'BalanceTransaction';\nexport const CURRENCY = 'Currency';\nexport const CURRENCY_CONVERSION = 'CurrencyConversion';\nexport const CURRENT_FEE_TIER = 'CurrentFeeTier';\nexport const FUNDING_EVENT = 'FundingEvent';\nexport const EQUITY_MARGIN_RATIO_LIMIT = 'EquityMarginRatioLimit';\nexport const EXECUTION_REPORT = 'ExecutionReport';\nexport const EXPOSURE = 'Exposure';\nexport const EXPOSURE_DEFINITION = 'ExposureDefinition';\nexport const ERROR = 'error';\nexport const FEE_TIER = 'FeeTier';\nexport const HEDGE_POSITION_STATUS = 'HedgePositionStatus';\nexport const HEDGE_ORDER_STATUS = 'HedgeOrderStatus';\nexport const HEDGER_STATUS = 'HedgerStatus';\nexport const HISTORICAL_POSITION_STAT = 'HistoricalPositionStat';\nexport const HISTORICAL_POSITION_STAT_AS_OF = 'HistoricalPositionStatAsOf';\nexport const LOAN = 'Loan';\nexport const LOAN_QUOTE_BORROWER = 'LoanQuoteBorrower';\nexport const LOAN_QUOTE_LENDER = 'LoanQuoteLender';\nexport const LOAN_TRANSACTION = 'LoanTransaction';\nexport const MARKET = 'Market';\nexport const MARKET_ACCOUNT = 'MarketAccount';\nexport const MARKET_ACCOUNT_LEDGER_EVENT = 'MarketAccountLedgerEvent';\nexport const MARKET_ACCOUNT_PERMISSIONS_FILTER = 'MarketAccountPermissionFilter';\nexport const MARKET_DATA_CANDLESTICK = 'MarketDataCandlestick';\nexport const MARKET_DATA_SNAPSHOT = 'MarketDataSnapshot';\nexport const MARKET_DATA_STATISTICS = 'MarketDataStatistics';\nexport const MARKET_DATA_TRADE = 'MarketDataTrade';\nexport const MARKET_EXECUTION_REPORT = 'MarketExecutionReport';\nexport const MARKET_ORDER = 'MarketOrder';\nexport const MARKET_QUOTE = 'MarketQuote';\nexport const MARKET_SECURITY_STATUS = 'MarketSecurityStatus';\nexport const NEW_ORDER_SINGLE = 'NewOrderSingle';\nexport const NEW_TRANSFER = 'NewTransfer';\nexport const OHLCV = 'OHLCV';\nexport const ORDER = 'Order';\nexport const CARE_ORDER = 'CareOrder';\nexport const CARE_NEW_ORDER_SINGLE = 'CareNewOrderSingle';\nexport const CARE_CANCEL_REPLACE_REQUEST = 'CareOrderCancelReplaceRequest';\nexport const CARE_CANCEL_REQUEST = 'CareOrderCancelRequest';\nexport const CARE_EXECUTION_REPORT = 'CareExecutionReport';\nexport const ORDER_STRATEGY = 'OrderStrategy';\nexport const RECENT_TRADES = 'RecentTrades';\nexport const REFERENCE_RATE = 'ReferenceRate';\nexport const SECURITY = 'Security';\nexport const SPARKLINE = 'Sparkline';\nexport const SUB_ACCOUNT = 'Subaccount';\nexport const SUB_ACCOUNT_LEDGER_EVENT = 'SubAccountLedgerEvent';\nexport const SUB_ACCOUNT_ROLLUP = 'SubaccountRollup';\nexport const SUB_ACCOUNT_PERMISSION_FILTER = 'SubAccountPermissionFilter';\nexport const SUB_ACCOUNT_POSITION_LIMIT = 'SubAccountPositionLimit';\nexport const SUB_ACCOUNT_WINDOW_LIMIT = 'SubAccountWindowLimit';\nexport const SUB_ACCOUNT_RECON_CHECKPOINT = 'SubAccountReconCheckpoint';\nexport const SUB_ACCOUNT_RECON_MATCH = 'SubAccountReconMatch';\nexport const TRADE = 'Trade';\nexport const TRADE_ALLOCATION = 'TradeAllocation';\nexport const TRADE_DIRECTION = 'TradeDirection';\nexport const TRADE_SETTLE_REPORT = 'TradeSettleReport';\nexport const TRANSFER = 'Transfer';\nexport const TRADING_LIMIT = 'TradingLimit';\nexport const POSITION = 'Position';\nexport const POSITION_SUB_ACCOUNT = 'SubAccountPosition';\nexport const RISK_SUB_ACCOUNT = 'SubAccountRisk';\nexport const PORTFOLIO_HISTORICAL_POSITION = 'PortfolioHistoricalPosition';\nexport const PORTFOLIO_HISTORICAL_POSITION_AS_OF = 'PortfolioHistoricalPositionAsOf';\nexport const PORTFOLIO_TREASURY_ACCOUNTS = 'PortfolioTreasuryAccounts';\nexport const PORTFOLIO_TRADING_ACCOUNTS = 'PortfolioTradingAccounts';\nexport const PORTFOLIO_TREASURY_LINKS = 'PortfolioTreasuryLinks';\nexport const PORTFOLIO_EXCHANGE_POSITIONS = 'PortfolioExchangePositions';\nexport const PORTFOLIO_OTC_POSITIONS = 'PortfolioOTCPositions';\nexport const PORTFOLIO_OTC_EXPOSURE = 'PortfolioOTCExposure';\nexport const PORTFOLIO_OTC_TREASURY = 'PortfolioOTCTreasury';\nexport const UNIFIED_LIQUIDITY_TOKEN = 'UnifiedLiquidityToken';\nexport const BUYING_POWER = 'BuyingPower';\nexport const CONFIGURATIONS = 'Configurations';\nexport const EXPOSURE_LIMIT = 'ExposureLimit';\nexport const USER = 'User';\nexport const USER_GROUP = 'UserGroup';\nexport const USER_GROUP_MEMBERSHIP = 'UserGroupMembership';\nexport const USER_SUB_ACCOUNT_PERMISSION_FILTER = 'UserSubAccountPermissionFilter';\nexport const TRANSFER_STREAM = 'TransferStream';\nexport const MAX_ORDER_SIZE_LIMIT = 'MaxOrderSizeLimit';\nexport const MARKET_ACCOUNT_CURRENCY = 'MarketAccountCurrency';\nexport const MARKET_EXPOSURE = 'MarketExposure';\nexport const RECON_STATUS = 'ReconStatus';\nexport const RECON_MISMATCH = 'ReconMismatch';\nexport const ROLLUP_MEMBERSHIP = 'RollupMembership';\nexport const TREASURY_ACCOUNT_LINK = 'TreasuryAccountLink';\nexport const CONNECTION_STATUS = 'ConnectionStatus';\nexport const FIXING_INDEX = 'Index';\nexport const MARKET_FIXING_INDEX = 'MarketIndex';\n\n// MarketData type\nexport const PRICE = 'PRICE';\nexport const SIZE = 'SIZE';\nexport const TOP_OF_BOOK_SIZE = 'TOP_OF_BOOK_SIZE';\n\n// CurrencyConversion tags\nexport const TRADING_LIMITS_CURRENCY_CONVERSION = 'TRADING_LIMITS_CURRENCY_CONVERSION';\n\n// Heartbeats\nexport const AVA_PING = 'ping';\nexport const AVA_PONG = 'pong';\nexport const WL_PING = 'Ping';\nexport const WL_PONG = 'Pong';\n\n// RFQ\nexport const QUOTE_REQUEST = 'QuoteRequest';\nexport const QUOTE = 'Quote';\nexport const QUOTE_HISTORY = 'QuoteHistory';\nexport const QUOTE_CANCEL_REQUEST = 'QuoteCancelRequest';\n\n// Dealer\nexport const CUSTOMER = 'Customer';\nexport const CUSTOMER_ADDRESS = 'CustomerAddress';\nexport const CUSTOMER_BALANCE = 'CustomerBalance';\nexport const CUSTOMER_BALANCE_TRANSACTION = 'CustomerBalanceTransaction';\nexport const CUSTOMER_CREDIT = 'CustomerCredit';\nexport const CUSTOMER_QUOTE = 'CustomerQuote';\nexport const CUSTOMER_QUOTE_HISTORY = 'CustomerQuoteHistory';\nexport const CUSTOMER_TRADE = 'CustomerTrade';\nexport const CUSTOMER_ORDER = 'CustomerOrder';\nexport const CUSTOMER_ORDER_SUMMARY = 'CustomerOrderSummaryV2';\nexport const CUSTOMER_SECURITY = 'CustomerSecurity';\nexport const CUSTOMER_USER = 'CustomerUser';\nexport const CUSTOMER_ROLE = 'CustomerRole';\nexport const PRICING_RULE = 'PricingRule';\nexport const CUSTOMER_MAX_ORDER_SIZE_LIMIT = 'CustomerMaxOrderSizeLimit';\nexport const CUSTOMER_QUOTE_REQUEST = 'CustomerQuoteRequest';\nexport const CUSTOMER_QUOTE_CANCEL_REQUEST = 'CustomerQuoteCancelRequest';\nexport const CUSTOMER_NEW_ORDER_SINGLE = 'CustomerNewOrderSingle';\nexport const CUSTOMER_EXECUTION_REPORT = 'CustomerExecutionReport';\nexport const CUSTOMER_TRANSACTION = 'CustomerTransaction';\nexport const CUSTOMER_TRANSACTION_HISTORY = 'CustomerTransactionHistory';\nexport const CUSTOMER_QUOTE_UPDATE_REQUEST = 'CustomerQuoteUpdateRequest';\nexport const CUSTOMER_USER_API_KEY = 'CustomerUserApiKey';\nexport const CUSTOMER_EXECUTION_RULE = 'CustomerExecutionRule';\nexport const CUSTOMER_FIX_CONNECTION = 'CustomerFIXConnection';\nexport const CUSTOMER_MARKET_ACCOUNT = 'CustomerMarketAccount';\nexport const CUSTOMER_MARKET_DATA_SNAPSHOT = 'CustomerMarketDataSnapshot';\nexport const CUSTOMER_ORDER_MODIFY_REQUEST = 'CustomerOrderCancelReplaceRequest';\nexport const CUSTOMER_ORDER_CANCEL_REQUEST = 'CustomerOrderCancelRequest';\nexport const NEW_DEPOSIT_REQUEST = 'NewDepositRequest';\nexport const NEW_WITHDRAW_REQUEST = 'NewWithdrawRequest';\nexport const WITHDRAW_CANCEL_REQUEST = 'WithdrawCancelRequest';\n\n// Analytics\nexport const ORDER_ANALYTIC = 'OrderAnalytic';\n\n// On-Platform-Analytics\nexport const BID_ASK_SPREADS_DATAPOINTS = 'BidAskSpreadsDatapoints';\nexport const TOTAL_TRADING_VOLUME = 'TotalTradingVolume';\nexport const NUM_ORDERS_DATAPOINTS = 'NumOrdersDatapoints';\nexport const SLIPPAGE_DATAPOINTS = 'SlippageDatapoints';\nexport const ORDERS_SUMMARY_DATAPOINTS = 'OrdersSummaryDatapoints';\nexport const MARKET_ORDER_OUTCOME_DATAPOINTS = 'MarketOrderOutcomeDatapoints';\nexport const POST_TRADE_ORDER_ANALYTICS = 'PostTradeOrderAnalytics';\n","import type Big from 'big.js';\nimport { isNil } from 'lodash';\nimport type { ExpectTrue } from '../../tests';\nimport { BID_ASK_SPREADS_DATAPOINTS } from '../../tokens';\nimport { parseDate, toBigWithDefault, type OptionalProperties } from '../../utils';\nimport type {\n AggregationWindowEnum,\n AnalyticsSpreadTypeEnum,\n IBidAskSpreadsDatapoint,\n UpdateActionEnum,\n} from '../types';\nimport type { DatapointProps } from './types';\n\nexport class BidAskSpreadsDatapoint {\n public static readonly Stream_Name = BID_ASK_SPREADS_DATAPOINTS;\n public readonly StartTime: Date;\n public readonly SpreadBps: Big | undefined;\n public readonly SizeBucket: Big | undefined;\n public readonly SpreadType: AnalyticsSpreadTypeEnum;\n public readonly Market: string | undefined;\n public readonly MarketAccount: string | undefined;\n public readonly Asset: string | undefined;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n\n constructor(data: BidAskSpreadsDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.SpreadBps = isNil(data.SpreadBps) ? undefined : toBigWithDefault(data.SpreadBps, 0);\n this.SizeBucket = isNil(data.SizeBucket) ? undefined : toBigWithDefault(data.SizeBucket, 0);\n this.SpreadType = data.SpreadType;\n // EDX needs to be displayed as 2 separate markets, based on the Market Account.\n // The backend handles this for us everywhere else in the codebase, but not in Analytics.\n // So we need to use the MarketAccount as the market name if specified, otherwise the Market name.\n // If we didn't do this here, we'd need to update a lot of other analytics code to handle this.\n this.Market = data.MarketAccount ?? data.Market;\n this.MarketAccount = data.MarketAccount;\n this.Asset = data.Asset;\n this.ReleaseRevision = data.ReleaseRevision;\n this.UpdateAction = data.UpdateAction;\n this.AggregationWindow = data.AggregationWindow;\n return this;\n }\n}\n\ntype _BidAskSpreadsDatapoint = OptionalProperties<\n DatapointProps,\n 'Asset' | 'Market' | 'MarketAccount' | 'UpdateAction'\n>;\n\n// TYPE LEVEL TESTS\ntype _Expect_BidAskSpreadDatapoint_To_Only_Have_Keys_From_IBidAskSpreadDatapoint = ExpectTrue<\n {\n [K in keyof BidAskSpreadsDatapoint & string]: K extends keyof _BidAskSpreadsDatapoint ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IBidAskSpreadDatapoint_To_Be_In_BidAskSpreadDatapoint = ExpectTrue<\n {\n [K in keyof _BidAskSpreadsDatapoint & string]: K extends keyof BidAskSpreadsDatapoint ? true : K;\n }[Exclude]\n>;\n","import type Big from 'big.js';\nimport type { ExpectTrue } from '../../tests';\nimport { MARKET_ORDER_OUTCOME_DATAPOINTS } from '../../tokens';\nimport { parseDate, toBig, type OptionalProperties } from '../../utils';\nimport type { AggregationWindowEnum, IMarketOrderOutcomeDatapoint, OrdStatusEnum, UpdateActionEnum } from '../types';\nimport type { DatapointProps } from './types';\n\nexport class MarketOrderOutcomeDatapoints {\n public static readonly Stream_Name = MARKET_ORDER_OUTCOME_DATAPOINTS;\n\n public readonly StartTime: Date;\n\n public readonly Market: string | undefined;\n public readonly OutcomePct: Big | undefined;\n public readonly OrderStatus: OrdStatusEnum;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n constructor(data: _MarketOrderOutcomeDatapoints) {\n this.StartTime = parseDate(data.StartTime);\n this.Market = data.Market;\n this.OutcomePct = toBig(data.OutcomePct);\n this.OrderStatus = data.OrderStatus;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n }\n}\n\ntype _MarketOrderOutcomeDatapoints = OptionalProperties, 'UpdateAction'>;\n\n// TYPE LEVEL TESTS\ntype _Expect_MarketOrderOutcomeDatapoint_To_Only_Have_Keys_From_IMarketOrderOutcomeDatapoint = ExpectTrue<\n {\n [K in keyof MarketOrderOutcomeDatapoints & string]: K extends keyof _MarketOrderOutcomeDatapoints ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IMarketOrderOutcomeDatapoint_To_Be_In_MarketOrderOutcomeDatapoint = ExpectTrue<\n {\n [K in keyof _MarketOrderOutcomeDatapoints & string]: K extends keyof MarketOrderOutcomeDatapoints ? true : K;\n }[Exclude]\n>;\n","import type { ExpectTrue } from '../../tests';\nimport { TOTAL_TRADING_VOLUME } from '../../tokens';\nimport { parseDate } from '../../utils';\nimport type { AggregationWindowEnum, AggressorFlagEnum, INumExecutionsDatapoint, UpdateActionEnum } from '../types';\nimport type { DatapointProps } from './types';\n\nexport class NumExecutionsDatapoint {\n public static readonly Stream_Name = TOTAL_TRADING_VOLUME;\n\n public readonly StartTime: Date;\n\n public readonly Market: string | undefined;\n public readonly Asset: string | undefined;\n public readonly Strategy: string | undefined;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly NumberOfExecutions: number;\n public readonly ExecutionType: AggressorFlagEnum;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n\n constructor(data: JSON_NumExecutionsDatapoint | NumExecutionsDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.Market = data.Market;\n this.Asset = data.Asset;\n this.Strategy = data.Strategy;\n this.NumberOfExecutions = data.NumberOfExecutions;\n this.ExecutionType = data.ExecutionType;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n }\n}\n\ntype JSON_NumExecutionsDatapoint = DatapointProps;\n\n// TYPE LEVEL TESTS\ntype _Expect_NumExecutionsDatapoint_To_Only_Have_Keys_From_INumExecutionsDatapoint = ExpectTrue<\n {\n [K in keyof NumExecutionsDatapoint & string]: K extends keyof JSON_NumExecutionsDatapoint ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_INumExecutionsDatapoint_To_Be_In_NumExecutionsDatapoint = ExpectTrue<\n {\n [K in keyof JSON_NumExecutionsDatapoint & string]: K extends keyof NumExecutionsDatapoint ? true : K;\n }[Exclude]\n>;\n","import type { ExpectTrue } from '../../tests';\nimport { NUM_ORDERS_DATAPOINTS } from '../../tokens';\nimport { parseDate, type OptionalProperties, type RequiredProperties } from '../../utils';\nimport type {\n AggregationWindowEnum,\n AnalyticsOrderDepthEnum,\n INumOrdersDatapoint,\n OrderMarketabilityEnum,\n StrategyTypeEnum,\n UpdateActionEnum,\n} from '../types';\nimport type { DatapointProps, OptionalDatapointProperties } from './types';\n\nexport class NumOrdersDatapoint {\n public static readonly Stream_Name = NUM_ORDERS_DATAPOINTS;\n\n public readonly StartTime: Date;\n public readonly Asset: string | undefined;\n\n public readonly NumberOfOrders: number;\n public readonly Market: string | undefined;\n public readonly AnalyticsOrderDepth: AnalyticsOrderDepthEnum | undefined;\n public readonly Strategy: string | undefined;\n public readonly StrategyType: StrategyTypeEnum | undefined;\n public readonly OrderMarketability: OrderMarketabilityEnum | undefined;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n\n constructor(data: NumOrdersDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.Asset = data.Asset;\n this.NumberOfOrders = data.NumberOfOrders;\n this.Market = data.Market;\n this.AnalyticsOrderDepth = data.AnalyticsOrderDepth;\n this.Strategy = data.Strategy;\n this.StrategyType = data.StrategyType;\n this.OrderMarketability = data.OrderMarketability;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n }\n}\n\ntype _NumOrdersDatapoint = RequiredProperties<\n OptionalProperties, OptionalDatapointProperties>,\n 'NumberOfOrders' | 'UpdateAction'\n>;\n\n// TYPE LEVEL TESTS\ntype _Expect_NumOrdersDatapoint_To_Only_Have_Keys_From_INumOrdersDatapoint = ExpectTrue<\n {\n [K in keyof NumOrdersDatapoint & string]: K extends keyof _NumOrdersDatapoint ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_INumOrdersDatapoint_To_Be_In_NumOrdersDatapoint = ExpectTrue<\n {\n [K in keyof _NumOrdersDatapoint & string]: K extends keyof NumOrdersDatapoint ? true : K;\n }[Exclude]\n>;\n","import type Big from 'big.js';\nimport type { ExpectTrue } from '../../tests';\nimport { ORDERS_SUMMARY_DATAPOINTS } from '../../tokens';\nimport { parseDate, toBig, type OptionalProperties } from '../../utils';\nimport type { AggregationWindowEnum, IOrdersSummaryDatapoint, UpdateActionEnum } from '../types';\nimport type { DatapointProps } from './types';\n\nexport class OrdersSummaryDatapoint {\n public static readonly Stream_Name = ORDERS_SUMMARY_DATAPOINTS;\n\n public readonly StartTime: Date;\n public readonly Asset: string;\n public readonly AvgOrderAmount: Big | undefined;\n public readonly TotalExchangeFees: Big | undefined;\n public readonly EffectiveFeeRate: Big | undefined;\n public readonly EquivalentCurrency: string;\n public readonly Strategy: string;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n constructor(data: OrdersSummaryDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.Asset = data.Asset;\n this.AvgOrderAmount = toBig(data.AvgOrderAmount);\n this.TotalExchangeFees = toBig(data.TotalExchangeFees);\n this.EffectiveFeeRate = toBig(data.EffectiveFeeRate);\n this.EquivalentCurrency = data.EquivalentCurrency;\n this.Strategy = data.Strategy;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n }\n}\n\ntype _OrdersSummaryDatapoint = OptionalProperties, 'UpdateAction'>;\n\n// TYPE LEVEL TESTS\ntype _Expect_OrdersSummaryDatapoint_To_Only_Have_Keys_From_IOrdersSummaryDatapoint = ExpectTrue<\n {\n [K in keyof OrdersSummaryDatapoint & string]: K extends keyof _OrdersSummaryDatapoint ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IOrdersSummaryDatapoint_To_Be_In_OrdersSummaryDatapoint = ExpectTrue<\n {\n [K in keyof _OrdersSummaryDatapoint & string]: K extends keyof OrdersSummaryDatapoint ? true : K;\n }[Exclude]\n>;\n","import type Big from 'big.js';\nimport type { ExpectTrue } from '../../tests';\nimport { POST_TRADE_ORDER_ANALYTICS } from '../../tokens';\nimport { parseDate, toBig, type OptionalProperties } from '../../utils';\nimport type {\n AggregationWindowEnum,\n IPostTradeOrderAnalytics,\n IStrategyParameters,\n ProductTypeEnum,\n SideEnum,\n UpdateActionEnum,\n} from '../types';\nimport type { DatapointProps } from './types';\n\nexport class PostTradeOrderAnalyticsDatapoint {\n public static readonly Stream_Name = POST_TRADE_ORDER_ANALYTICS;\n\n public readonly StartTime: Date;\n public readonly OrderStartTime: Date;\n public readonly OrderEndTime: Date;\n public readonly OrderID: string;\n public readonly EquivalentCurrency: string;\n public readonly Strategy: string | undefined;\n public readonly Asset: string | undefined;\n public readonly ProductType: ProductTypeEnum;\n public readonly Side: SideEnum;\n public readonly TotalTradedAmt: Big | undefined;\n public readonly OrderDurationMillis: number;\n public readonly ParticipationRate: Big | undefined;\n public readonly MakerPct: Big | undefined;\n public readonly ArrivalSlippageBps: Big | undefined;\n public readonly TWAPSlippageBps: Big | undefined;\n public readonly VWAPSlippageBps: Big | undefined;\n public readonly Parameters: IStrategyParameters;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n public readonly AsOfTimestamp: string;\n\n public readonly UpdateAction?: UpdateActionEnum;\n constructor(data: _PostTradeOrderAnalyticsDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.OrderStartTime = parseDate(data.OrderStartTime);\n this.OrderEndTime = parseDate(data.OrderEndTime);\n this.OrderID = data.OrderID;\n this.EquivalentCurrency = data.EquivalentCurrency;\n this.Strategy = data.Strategy;\n this.Asset = data.Asset;\n this.ProductType = data.ProductType;\n this.Side = data.Side;\n this.TotalTradedAmt = toBig(data.TotalTradedAmt);\n this.OrderDurationMillis = data.OrderDurationMillis;\n this.ParticipationRate = toBig(data.ParticipationRate);\n this.MakerPct = toBig(data.MakerPct);\n this.ArrivalSlippageBps = toBig(data.ArrivalSlippageBps);\n this.TWAPSlippageBps = toBig(data.TWAPSlippageBps);\n this.VWAPSlippageBps = toBig(data.VWAPSlippageBps);\n this.Parameters = data.Parameters;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n this.AsOfTimestamp = data.AsOfTimestamp;\n }\n}\n\ntype _PostTradeOrderAnalyticsDatapoint = OptionalProperties<\n DatapointProps,\n 'Asset' | 'Strategy' | 'UpdateAction'\n>;\n// TYPE LEVEL TESTS\ntype _Expect_PostTradeOrderAnalyticsDatapoint_To_Only_Have_Keys_From_IPostTradeOrderAnalyticsDatapoint = ExpectTrue<\n {\n [K in keyof PostTradeOrderAnalyticsDatapoint & string]: K extends keyof _PostTradeOrderAnalyticsDatapoint\n ? true\n : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IPostTradeOrderAnalyticsDatapoint_To_Be_In_PostTradeOrderAnalyticsDatapoint = ExpectTrue<\n {\n [K in keyof _PostTradeOrderAnalyticsDatapoint & string]: K extends keyof PostTradeOrderAnalyticsDatapoint\n ? true\n : K;\n }[Exclude]\n>;\n","import type Big from 'big.js';\nimport type { ExpectTrue } from '../../tests';\nimport { SLIPPAGE_DATAPOINTS } from '../../tokens';\nimport { parseDate, toBig, type OptionalProperties } from '../../utils';\nimport type {\n AggregationWindowEnum,\n AnalyticsOrderDepthEnum,\n ISlippageDatapoint,\n OrderMarketabilityEnum,\n SlippageReferencePriceEnum,\n StrategyTypeEnum,\n UpdateActionEnum,\n} from '../types';\nimport type { DatapointProps, OptionalDatapointProperties } from './types';\n\nexport class SlippageDatapoint {\n public static readonly Stream_Name = SLIPPAGE_DATAPOINTS;\n\n public readonly StartTime: Date;\n public readonly Asset: string | undefined;\n\n public readonly Market: string | undefined;\n public readonly AnalyticsOrderDepth: AnalyticsOrderDepthEnum | undefined;\n public readonly Strategy: string | undefined;\n public readonly StrategyType: StrategyTypeEnum | undefined;\n public readonly OrderMarketability: OrderMarketabilityEnum | undefined;\n public readonly SlippageBps: Big | undefined;\n public readonly ReferencePrice: SlippageReferencePriceEnum;\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly ReleaseRevision: string | undefined;\n public readonly AggregationWindow: AggregationWindowEnum | undefined;\n constructor(data: SlippageDatapoint) {\n this.StartTime = parseDate(data.StartTime);\n this.Asset = data.Asset;\n this.Market = data.Market;\n this.AnalyticsOrderDepth = data.AnalyticsOrderDepth;\n this.Strategy = data.Strategy;\n this.StrategyType = data.StrategyType;\n this.OrderMarketability = data.OrderMarketability;\n this.SlippageBps = toBig(data.SlippageBps);\n this.ReferencePrice = data.ReferencePrice;\n this.UpdateAction = data.UpdateAction;\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n }\n}\n\ntype _SlippageDatapoints = OptionalProperties<\n DatapointProps & { Asset?: string },\n OptionalDatapointProperties | 'ReferencePrice' | 'AnalyticsOrderDepth' | 'UpdateAction'\n>;\n\n// TYPE LEVEL TESTS\ntype _Expect_SlippageDatapoint_To_Only_Have_Keys_From_ISlippageDatapoint = ExpectTrue<\n {\n [K in keyof SlippageDatapoint & string]: K extends keyof _SlippageDatapoints ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_ISlippageDatapoint_To_Be_In_SlippageDatapoint = ExpectTrue<\n {\n [K in keyof _SlippageDatapoints & string]: K extends keyof SlippageDatapoint ? true : K;\n }[Exclude]\n>;\n","import type Big from 'big.js';\nimport type { ExpectTrue } from '../../tests';\nimport { TOTAL_TRADING_VOLUME } from '../../tokens';\nimport { parseDate, toBig, type OptionalProperties, type RequiredProperties } from '../../utils';\nimport type {\n AggregationWindowEnum,\n AggressorFlagEnum,\n ITotalTradingVolumeDatapoint,\n OrderMarketabilityEnum,\n StrategyTypeEnum,\n TradeTypeEnum,\n UpdateActionEnum,\n} from '../types';\nimport type { DatapointProps, OptionalDatapointProperties } from './types';\n\nexport class TotalTradingVolumeStats {\n public static readonly Stream_Name = TOTAL_TRADING_VOLUME;\n\n public readonly AggregationWindow: AggregationWindowEnum;\n public readonly StartTime: Date;\n\n public readonly TotalVolume: Big | undefined;\n public readonly EquivalentCurrency: string | undefined;\n public readonly Market: string | undefined;\n public readonly Asset: string | undefined;\n public readonly TradeType: TradeTypeEnum | undefined;\n public readonly AggressorFlag: AggressorFlagEnum | undefined;\n public readonly Strategy: string | undefined;\n public readonly StrategyType: StrategyTypeEnum | undefined;\n public readonly OrderMarketability: OrderMarketabilityEnum | undefined;\n public readonly LowerVPLimit: Big | undefined;\n public readonly UpperVPLimit: Big | undefined;\n\n public readonly UpdateAction: UpdateActionEnum | undefined;\n public readonly ReleaseRevision: string | undefined;\n\n constructor(data: JSON_TotalTradingVolumeStats | TotalTradingVolumeStats) {\n this.StartTime = parseDate(data.StartTime);\n this.TotalVolume = toBig(data.TotalVolume);\n this.EquivalentCurrency = data.EquivalentCurrency;\n this.Market = data.Market;\n this.Asset = data.Asset;\n this.TradeType = data.TradeType;\n this.AggressorFlag = data.AggressorFlag;\n this.Strategy = data.Strategy;\n this.StrategyType = data.StrategyType;\n this.OrderMarketability = data.OrderMarketability;\n this.LowerVPLimit = toBig(data.LowerVPLimit);\n this.UpperVPLimit = toBig(data.UpperVPLimit);\n this.ReleaseRevision = data.ReleaseRevision;\n this.AggregationWindow = data.AggregationWindow;\n this.UpdateAction = data.UpdateAction;\n }\n}\n\ntype JSON_TotalTradingVolumeStats = RequiredProperties<\n OptionalProperties<\n DatapointProps,\n OptionalDatapointProperties | 'TradeType' | 'AggressorFlag' | 'UpdateAction' | 'ReleaseRevision'\n >,\n 'TotalVolume'\n>;\n\n// TYPE LEVEL TESTS\ntype _Expect_TotalTradingVolumeStats_To_Only_Have_Keys_From_ITotalTradingVolumeDatapoint = ExpectTrue<\n {\n [K in keyof TotalTradingVolumeStats & string]: K extends keyof JSON_TotalTradingVolumeStats ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_ITotalTradingVolumeDatapoint_To_Be_In_TotalTradingVolumeStats = ExpectTrue<\n {\n [K in keyof JSON_TotalTradingVolumeStats & string]: K extends keyof TotalTradingVolumeStats ? true : K;\n }[Exclude]\n>;\n","import type { ColDef } from 'ag-grid-community';\nimport { logger } from '../../../utils';\nimport type { ColumnDef } from './types';\n\n/**\n * This function can be used with all of our types of columns, and will resolve the identifier of that column used between our own code\n * and AgGrid.\n * @param column - a column-like object. Can be of type Column, ColDef, ColumnDef, for example.\n * @returns the id with highest precedence, or if nothing can be found, returns an empty string.\n */\nexport function getAgGridColId(column: Pick, 'id'> & Pick): string {\n if (column.id != null) {\n return column.id;\n }\n if (column.colId != null) {\n return column.colId;\n }\n if (column.field != null) {\n return column.field;\n }\n logger.error(new Error('Unable to resolve identifier (id, field or colId) from a column'), {\n extra: column,\n });\n return '';\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY, type Leaves } from '../utils';\nimport type {\n AssetTransactionAllocationStatusEnum,\n AssetTransactionSettlementStatusEnum,\n AssetTransactionTypeEnum,\n IAllocation,\n IAssetTransaction,\n} from './types';\n\nexport class AssetTransaction {\n static readonly rowID = 'TransactionID' satisfies keyof AssetTransaction;\n static readonly StreamName = 'AssetTransaction';\n static readonly BlotterExportName = 'Cash Transactions';\n\n static readonly defaultColumns = [\n 'TransactTime',\n 'Type',\n 'TID',\n 'TransactionID',\n 'Market',\n 'MarketAccount',\n 'PositionAsset',\n 'Amount',\n 'Asset',\n 'Allocation',\n 'AllocationStatus',\n 'UpdateUser',\n 'Revision',\n ] satisfies (keyof AssetTransaction)[];\n\n Timestamp!: string;\n Type!: AssetTransactionTypeEnum;\n TID!: string;\n Market!: string;\n CredentialID!: number;\n MarketAccount!: string;\n Asset!: string;\n Amount!: string;\n Rate!: string;\n PositionAsset!: string;\n TransactionID!: string;\n TransactTime!: string;\n OrgID!: number;\n SettleStatus!: AssetTransactionSettlementStatusEnum;\n\n // AllocationStatus is always defined but setting as maybe undefined for backwards backend compat.\n AllocationStatus?: AssetTransactionAllocationStatusEnum;\n Allocation?: IAllocation;\n SubAccount?: string;\n UpdateUser?: string;\n Revision?: number;\n\n constructor(data: IAssetTransaction) {\n Object.assign(this, data);\n }\n}\n\ninterface UseAssetTransactionColumns {\n defaultColumns?: (keyof AssetTransaction | Partial)[];\n}\n\nexport function useAssetTransactionColumns({ defaultColumns = EMPTY_ARRAY }: UseAssetTransactionColumns): Column[] {\n const columnDefinitions = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'TransactTime',\n type: 'date',\n width: 200,\n sortable: true,\n },\n {\n field: 'Type',\n type: 'text',\n },\n {\n field: 'TID',\n type: 'text',\n },\n {\n field: 'TransactionID',\n type: 'text',\n },\n {\n field: 'Market',\n type: 'market',\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n {\n field: 'PositionAsset',\n type: 'asset',\n },\n {\n field: 'Amount',\n type: 'size',\n },\n {\n field: 'Asset',\n type: 'asset',\n },\n {\n type: 'subAccount',\n id: 'Allocation' satisfies Leaves,\n },\n {\n type: 'text',\n field: 'AllocationStatus',\n },\n {\n type: 'text',\n field: 'UpdateUser',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_AssetTransaction_To_Only_Have_Keys_From_IAssetTransaction = ExpectTrue<\n {\n [K in keyof AssetTransaction & string]: K extends keyof IAssetTransaction ? true : K;\n }[Exclude] // todo remove this when backend's types are merged into develop and these exist in types.ts\n>;\ntype _Expect_All_Keys_In_IAssetTransaction_To_Be_In_AssetTransaction = ExpectTrue<\n {\n [K in keyof IAssetTransaction & string]: K extends keyof AssetTransaction ? true : K;\n }[Exclude]\n>;\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { Aggregation } from '../types/Aggregation';\n\nexport const AggregationsContext = createContext(undefined);\nAggregationsContext.displayName = 'AggregationsContext';\n\nexport function useAggregationsContext() {\n const context = useContext(AggregationsContext);\n if (context === undefined) {\n throw new Error('Missing AggregationsContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface AggregationsContextProps {\n aggregationsListObs: Observable;\n aggregationsList: Aggregation[];\n aggregationsByNameObs: Observable>;\n aggregationsByName: Map;\n}\n","import { createContext, useContext } from 'react';\n\nexport const AuthContext = createContext(undefined);\nAuthContext.displayName = 'AuthContext';\n\nexport function useAuthContext() {\n const context = useContext(AuthContext);\n if (context == null) {\n throw new Error('Missing AuthContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface AuthContextProps {\n isAuthenticated: boolean;\n logout(): void;\n login?(): void;\n /**\n * For mobile, we attempt auto login by checking the cookies on mount. In order to prevent rendering the LogIn\n * page in cases where we successfully logged in automatically, we keep track of whether we've attempted to.\n *\n * Hence,\n *\n * if `isAuthenticated` is false, and `hasAttemptedAutoLogin` is true, we should render the LogIn page.\n *\n * if `isAuthenticated` is false, and `hasAttemptedAutoLogin` is false, we should not render the LogIn page.\n */\n hasAttemptedAutoLogin?: boolean;\n}\n","import { useDebugValue, useEffect, useMemo, useRef, useState, type DependencyList, type MutableRefObject } from 'react';\nimport { isObservable, type Observable } from 'rxjs';\n\ntype ObservableFactory = () => Observable;\n\n/**\n * React hook to use the same observable unless one of its dependencies changes.\n *\n * @param observableFactory Observable source to subscribe to\n * @param dependencies Source observable will only be updated if the values in the list change.\n */\nexport function useObservable(observableFactory: ObservableFactory, dependencies: DependencyList): Observable {\n const isFirstRender = useRef(true);\n const [source, setSource] = useState(() => {\n return observableFactory();\n });\n useMemo(() => {\n if (isFirstRender.current) {\n // avoiding setting the state a second time when the hook is first called\n // otherwise we potentially trigger a second render when a factory is passed\n isFirstRender.current = false;\n return;\n }\n setSource(observableFactory());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n return source;\n}\n\nexport function useObservableValue(observable: ObservableFactory, dependencies: DependencyList): T | undefined;\nexport function useObservableValue(\n observable: ObservableFactory,\n dependencies: DependencyList,\n initialValue: TInitialValue\n): T;\n/**\n * React hook to extract the latest value emitted by an observable.\n *\n * @param observable Observable source to subscribe to\n * @param dependencies Source observable will only be updated if the values in the list change.\n * @param initialValue If present, use this as the initial value\n */\nexport function useObservableValue(\n observable: ObservableFactory,\n dependencies: DependencyList,\n initialValue?: T\n): T | undefined {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const source = useObservable(observable, dependencies);\n const [value, setValue] = useState(initialValue);\n useDebugValue(value);\n useEffect(() => {\n if (isObservable(source)) {\n const subscription = source.subscribe(setValue);\n return () => {\n subscription.unsubscribe();\n };\n }\n }, [source]);\n return value;\n}\n\nexport function useObservableRef(\n observable: ObservableFactory,\n dependencies: DependencyList\n): MutableRefObject;\nexport function useObservableRef(\n observable: ObservableFactory,\n dependencies: DependencyList,\n initialValue: T\n): MutableRefObject;\n/**\n * React hook to store the latest value emitted by an observable in a React Ref.\n *\n * @param observable Observable source to subscribe to\n * @param dependencies Source observable will only be updated if the values in the list change.\n * @param initialValue If present, use this as the initial value\n */\nexport function useObservableRef(\n observable: ObservableFactory,\n dependencies: DependencyList,\n initialValue?: T\n): MutableRefObject {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const source = useObservable(observable, dependencies);\n const value = useRef(initialValue);\n\n useEffect(() => {\n if (isObservable(source)) {\n const subscription = source.subscribe(v => (value.current = v));\n return () => {\n subscription.unsubscribe();\n };\n }\n }, [source]);\n\n return value;\n}\n","import { createContext, useContext } from 'react';\nimport { of, type Observable } from 'rxjs';\nimport { useObservableValue } from '../hooks/useObservable';\nimport type { Balance } from '../types/Balance';\n\nexport const BalancesContext = createContext({\n listBalances: of([]),\n balancesByCurrencyMarketAccount: of(new Map()),\n balancesByMarketAccountCurrency: of(new Map()),\n});\n\nexport const useBalancesContext = () => {\n return useContext(BalancesContext);\n};\n\n/**\n * Returns an observable of a mapping currency -> market accounts -> Balances\n */\nexport const useBalancesByCurrencyMarketAccount = () => {\n const { balancesByCurrencyMarketAccount } = useBalancesContext();\n return useObservableValue(() => balancesByCurrencyMarketAccount, [balancesByCurrencyMarketAccount]);\n};\n\n/**\n * Returns an observable of a mapping market account -> currencies -> Balances\n */\nexport const useBalancesByMarketAccountCurrency = () => {\n const { balancesByMarketAccountCurrency } = useBalancesContext();\n return useObservableValue(() => balancesByMarketAccountCurrency, [balancesByMarketAccountCurrency]);\n};\n\ntype BalancesContextProps = {\n listBalances: Observable;\n balancesByCurrencyMarketAccount: Observable>>;\n balancesByMarketAccountCurrency: Observable>>;\n};\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { ConnectionErrorCodeEnum, ConnectionStatusEnum } from '../types/types';\nimport type { MarketCredential } from './UserContext';\n\nexport const ConnectionStatusContext = createContext(undefined);\nConnectionStatusContext.displayName = 'ConnectionStatusContext';\n\nexport function useConnectionStatusContext(): ConnectionStatusContextProps {\n const context = useContext(ConnectionStatusContext);\n if (context === undefined) {\n throw new Error('Missing ConnectionStatus.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface ConnectionStatusContextProps {\n /**\n * A function to update the market credentials list after adding, enabling or disabling credential\n */\n updateMarketCredentials: () => void;\n /**\n * A map of connection statuses by ConnectionID and Market Name\n */\n connectionStatusByConnectionIDAndMarketName: Map> | undefined;\n /**\n * A map of connection statuses by CredentialID and Market Name\n */\n connectionStatusByCredentialIDAndMarketName: Observable>>;\n /**\n * A map of market credentials with connection status by CredentialID\n */\n marketCredentialsWithConnectionStatusByCredentialID: Observable>;\n /**\n * A map of market credentials with connection status by Market Account Name\n */\n marketCredentialsWithConnectionStatusByMarketAccountName: Map;\n}\n\nexport interface MarketCredentialWithConnectionStatus {\n credential: MarketCredential;\n connectionStatus?: ConnectionStatus;\n}\n\nexport interface ConnectionStatus {\n Market: string;\n ConnectionID: number;\n ConnectionType: {\n BalanceUpdates?: boolean;\n OrdersRequests?: boolean;\n OrdersUpdates?: boolean;\n TradesUpdates?: boolean;\n MarketDataDepth?: boolean;\n MarketDataTrades?: boolean;\n };\n CredentialID: number;\n Status: ConnectionStatusEnum;\n ErrorCode: ConnectionErrorCodeEnum;\n UpdateAction: string;\n Text?: string;\n}\n","import { createContext, useCallback, useContext, useMemo } from 'react';\nimport type { Currency } from '../types/Currency';\nimport { abbreviate } from '../utils';\n\nexport const CurrenciesContext = createContext(undefined);\nCurrenciesContext.displayName = 'CurrenciesContext';\nexport function useCurrenciesContext() {\n const context = useContext(CurrenciesContext);\n if (context === undefined) {\n throw new Error('Missing CurrenciesContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface CurrenciesContextProps {\n isLoaded: boolean;\n currenciesBySymbol: Map;\n currenciesList: Currency[];\n}\n\nexport function useCurrencyUtils() {\n const { currenciesBySymbol } = useCurrenciesContext();\n\n const abbreviateByCurrency = useCallback(\n (currency?: string, amount?: string) => {\n if (!currency) {\n return '0';\n }\n\n const { DefaultIncrement } = currenciesBySymbol.get(currency) ?? {};\n const [_, precision = ''] = DefaultIncrement?.split('.') ?? [];\n\n return abbreviate(amount ?? '0', { precision: precision.length }).toUpperCase();\n },\n [currenciesBySymbol]\n );\n\n return useMemo(\n () => ({\n abbreviateByCurrency,\n }),\n [abbreviateByCurrency]\n );\n}\n","import { createContext, useContext } from 'react';\nimport { of, type Observable } from 'rxjs';\nimport type { CurrencyConversionRate } from '../types/CurrencyConversionRate';\n\nexport const CurrencyConversionContext = createContext({\n currencyRatesByCurrencyPair: of(new Map()),\n homeCurrencyRatesByCurrency: of(new Map()),\n registerSubscription: (currency?: string, equivalentCurrency?: string) => {},\n registerSubscriptions: (currency: string[], equivalentCurrency?: string) => {},\n unregisterSubscription: (currency?: string, equivalentCurrency?: string) => {},\n unregisterSubscriptions: (currency: string[], equivalentCurrency?: string) => {},\n});\nCurrencyConversionContext.displayName = 'CurrencyConversionContext';\n\nexport const useCurrencyConversionContext = () => {\n return useContext(CurrencyConversionContext);\n};\n\nexport interface CurrencyConversionContextProps {\n currencyRatesByCurrencyPair: Observable>;\n homeCurrencyRatesByCurrency: Observable>;\n registerSubscription: (currency?: string, equivalentCurrency?: string) => void;\n registerSubscriptions: (currency: string[], equivalentCurrency?: string) => void;\n unregisterSubscription: (currency?: string, equivalentCurrency?: string, persistRate?: boolean) => void;\n unregisterSubscriptions: (currency: string[], equivalentCurrency?: string) => void;\n}\n","import { createContext, useContext } from 'react';\n\nexport const EndpointsContext = createContext(undefined);\nEndpointsContext.displayName = 'EndpointsContext';\n\nexport function useEndpointsContext() {\n const context = useContext(EndpointsContext);\n if (context === undefined) {\n throw new Error('Missing EndpointsContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface EndpointsContextProps {\n apiEndpoint: string;\n wsEndpoint: string;\n orgApiEndpoint?: string;\n}\n","import { createContext, useContext } from 'react';\n\nexport const DefaultFavoriteSecuritiesConfig = {\n favoriteSecurities: [] as string[],\n};\n\nexport const DefaultFavoriteSecuritiesMethods = {\n setFavoriteSecurities: (favoriteSecurities: string[]) => {},\n};\n\nexport const DefaultFavoriteSecuritiesContext = {\n ...DefaultFavoriteSecuritiesConfig,\n ...DefaultFavoriteSecuritiesMethods,\n};\n\nexport type FavoriteSecuritiesConfig = typeof DefaultFavoriteSecuritiesConfig;\nexport type FavoriteSecuritiesContextProps = typeof DefaultFavoriteSecuritiesContext;\n\nexport const DefaultFavoritesConfig: FavoriteSecuritiesContextProps = {\n favoriteSecurities: [],\n setFavoriteSecurities: () => {},\n};\n\nexport const FavoriteSecuritiesContext = createContext(\n DefaultFavoriteSecuritiesContext\n);\nFavoriteSecuritiesContext.displayName = 'FavoriteSecuritiesContext';\n\nexport function useFavoriteSecurities() {\n const context = useContext(FavoriteSecuritiesContext);\n if (context === undefined) {\n throw new Error('Missing FavoriteSecuritiesContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import { createContext, useContext } from 'react';\n\nexport const HomeCurrencyContext = createContext(undefined);\nHomeCurrencyContext.displayName = 'HomeCurrencyContext';\n\nexport function useHomeCurrencyContext() {\n const context = useContext(HomeCurrencyContext);\n if (context === undefined) {\n throw new Error('Missing HomeCurrencyContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface HomeCurrencyContextProps {\n homeCurrency: string;\n}\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { MarketAccountCurrency } from '../types/MarketAccountCurrency';\n\nexport const MarketAccountCurrenciesContext = createContext(undefined);\nMarketAccountCurrenciesContext.displayName = 'MarketAccountCurrenciesContext';\n\nexport function useMarketAccountCurrenciesContext() {\n const context = useContext(MarketAccountCurrenciesContext);\n if (context === undefined) {\n throw new Error('Missing MarketAccountCurrencies.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\n/** Get a MarketAccountCurrency key for your MarketAccountID + Currency */\nexport function getMACKey(marketAccountID: number, currency: string): string;\n/** Get a unique key for your MarketAccountCurrency */\nexport function getMACKey(mktAccCurrency: MarketAccountCurrency): string;\nexport function getMACKey(MACOrMktAccID: MarketAccountCurrency | number, currency?: string): string {\n if (typeof MACOrMktAccID === 'number') {\n return `${MACOrMktAccID}-${currency}`;\n } else {\n return `${MACOrMktAccID.MarketAccountID}-${MACOrMktAccID.Currency}`;\n }\n}\n\nexport interface MarketAccountCurrenciesContextProps {\n /** Market account currencies by unique key. Use the getMACKey function to get a key for your MAC. */\n marketAccountCurrenciesByKeyObs: Observable>;\n marketAccountCurrenciesListObs: Observable;\n /** This mapping provides easy lookup to see if an asset is selectable at all for transfer within a Market */\n acceptedCurrenciesByMarketObs: Observable>>;\n /** This mapping provides easy lookup to see if an asset is selectable at all for transfer within a MarketAccount */\n acceptedCurrenciesByMarketAccountIDObs: Observable>>;\n /** A straight set of the accepted currencies, taken from the MarketAccountCurrencies subscription */\n acceptedCurrenciesObs: Observable>;\n}\n","import { get } from 'lodash';\nimport { createContext, useContext } from 'react';\nimport type {\n IOMSExecutionReport4203Markets,\n MarketAccountStatusEnum,\n MarketAccountTypeEnum,\n UpdateActionEnum,\n} from '../types/types';\n\nexport const MarketAccountsContext = createContext(undefined);\nMarketAccountsContext.displayName = 'MarketAccountsContext';\n\nexport function useMarketAccountsContext() {\n const context = useContext(MarketAccountsContext);\n if (context === undefined) {\n throw new Error('Missing MarketAccountContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface MarketAccountsContextProps {\n isLoaded: boolean;\n marketAccountsByID: Map;\n marketAccountsByCredentialIDByName: Map>;\n marketAccountsByName: Map;\n marketAccountsBySourceAccountID: Map;\n marketAccountsByMarket: Map;\n marketAccountsByCounterparty: Map;\n marketAccountsList: MarketAccount[];\n activeCustomerMarketAccountsByCounterpartyAndName?: Map>;\n isMarketAccountActive: (ma?: MarketAccount) => boolean;\n isMarketStatusError: (m: Partial) => boolean;\n marketAccountDisplayNameByName: Map;\n}\n\nexport interface MarketAccount {\n MarketAccountID: number;\n SourceAccountID: string;\n Name: string;\n Market: string;\n CredentialID: number;\n Timestamp?: string;\n Ownership: string;\n Status: MarketAccountStatusEnum;\n Description: string;\n DisplayName: string;\n Type: MarketAccountTypeEnum;\n TypeDescription: string;\n Group: string;\n Counterparty: string;\n UpdateAction?: UpdateActionEnum;\n ReferenceData?: string;\n Capabilities?: {\n TransferOutgoingSource?: boolean;\n TransferIncomingDest?: boolean;\n TransferOutgoingDest?: boolean;\n AcceptAllCurrencies?: boolean;\n };\n BlockchainAddresses?: {\n [key: string]: {\n Address: string;\n Name?: string;\n AddressType: 'Permanent' | 'Deposit';\n }[];\n };\n}\n\n/**\n * A utility function to help you grab BlockchainAddresses from a MarketAccount given an asset.\n * If no BlockchainAddresses can be found for the given currency, returns undefined.\n */\nexport function getBlockchainAddressesForCurrency(ma: MarketAccount, currency: string) {\n if (ma.BlockchainAddresses == null) {\n return undefined;\n }\n\n const blockchainAddressesForCurrency = get(ma.BlockchainAddresses, currency);\n if (blockchainAddressesForCurrency == null) {\n return undefined;\n }\n\n // [DEAL-2851] Filter out Permanent Addresses\n return blockchainAddressesForCurrency?.filter(ba => ba.AddressType !== 'Permanent');\n}\n","import type Big from 'big.js';\nimport { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\n\nexport interface MarketPrice {\n bid: Big | undefined | null;\n offer: Big | undefined | null;\n spread: Big | undefined | null;\n}\nexport interface MarketPriceContextProps {\n marketPricesBySymbol: Observable>;\n registerSubscription: (symbol: string) => void;\n registerSubscriptions: (symbols: string[]) => void;\n unregisterSubscription: (symbol: string, persistRate?: boolean) => void;\n unregisterSubscriptions: (symbols: string[]) => void;\n}\nexport const MarketPriceContext = createContext(undefined);\nMarketPriceContext.displayName = 'MarketPriceContext';\n\nexport function useMarketPriceContext() {\n const context = useContext(MarketPriceContext);\n if (context === undefined) {\n throw new Error('Missing MarketPriceContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { ConnectionType } from '../types/ConnectionType';\nimport type { Market } from '../types/Market';\nimport type { MarketTypeEnum } from '../types/types';\n\nexport const MarketsContext = createContext(undefined);\nMarketsContext.displayName = 'MarketsContext';\n\nexport function useMarketsContext(): MarketsContextProps {\n const context = useContext(MarketsContext);\n if (context === undefined) {\n throw new Error('Missing MarketsContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface MarketsContextProps {\n isLoaded: boolean;\n /**\n * Array of all markets in the system, sorted by DisplayName\n */\n marketsList: Market[];\n marketsByName: Map;\n marketDisplayNameByName: Map;\n marketTypeByName: Map;\n marketsWithConnTypesConfigured: (connectionTypes: ConnectionType[]) => Observable;\n /**\n * Returns only those markets which have at least one of the provided connection types configured.\n *\n * @param connectionTypes - Only markets with at least one of these connection types supported will be returned (default: All connection types defined in {@link ConnectionType | ConnectionType})\n * @returns Observable markets array, sorted by DisplayName\n */\n marketsWithConnTypesSupported: (connectionTypes?: ConnectionType[]) => Observable;\n isMarketSupported: (m: Market | string, connectionType: ConnectionType) => boolean;\n isMarketConfigured: (m: Market | string, connectionType: ConnectionType) => boolean;\n isMarketOnline: (m: Market | string, connectionType: ConnectionType) => boolean;\n isMarketOffline: (m: Market | string, connectionType: ConnectionType) => boolean;\n}\n","import { createContext, type PropsWithChildren } from 'react';\nimport type { MixpanelEventSource } from '../tokens';\n\nexport const MixpanelSourceContext = createContext(undefined);\nMixpanelSourceContext.displayName = 'MixpanelSourceContext';\n\nexport function MixpanelSourceProvider({\n value,\n children,\n}: PropsWithChildren<{ value: MixpanelEventSource | undefined }>) {\n return {children};\n}\n\nexport const withMixpanelSource =\n

(Component: React.ComponentType

, value: MixpanelEventSource) =>\n (props: PropsWithChildren

) =>\n (\n \n \n \n );\n","import type { Mixpanel } from 'mixpanel-browser';\nimport { createContext, useContext, useMemo } from 'react';\nimport { MixpanelEventProperty, type MixpanelEvent, type MixpanelEventSource } from '../tokens';\nimport { MixpanelSourceContext } from './MixpanelSourceContext';\n\nfunction NOOP(funcName: string, ...args: unknown[]) {\n if (import.meta.env.VITE_AVA_ENV === 'local') {\n // eslint-disable-next-line no-console\n console.debug('Mixpanel', funcName, ...args);\n }\n}\n\nexport const GET_MIXPANEL_MOCK = (source?: string): MixpanelInstance => {\n return {\n set_group: function (...args: unknown[]) {\n NOOP('set_group', ...args);\n },\n\n add_group: function (...args: unknown[]) {\n NOOP('add_group', ...args);\n },\n\n remove_group: function (...args: unknown[]) {\n NOOP('remove_group', ...args);\n },\n identify: function (...args: unknown[]) {\n NOOP('identify', ...args);\n },\n register: function (...args: unknown[]) {\n NOOP('register', ...args);\n },\n\n time_event: function (...args: unknown[]) {\n NOOP('time_event', ...args);\n },\n track: function (eventName: string, properties?: Record, ...args: unknown[]) {\n if (!properties) {\n properties = {};\n }\n if (source && !properties[MixpanelEventProperty.Source]) {\n properties[MixpanelEventProperty.Source] = source;\n }\n\n NOOP('track', eventName, properties, ...args);\n },\n };\n};\nexport interface MixpanelInstance\n extends Pick {\n track: TrackWithTypedDict;\n}\n\ntype TypedDict = { [K in MixpanelEventProperty]?: unknown };\n\ntype TrackWithTypedDict = Mixpanel['track'] extends (\n eventName: infer E,\n properties?: infer P,\n ...rest: infer Rest\n) => infer R\n ? (eventName: MixpanelEvent, properties?: TypedDict, ...rest: Rest) => R\n : never;\n\nexport const MixpanelContext = createContext<(source?: MixpanelEventSource) => MixpanelInstance>(GET_MIXPANEL_MOCK);\nMixpanelContext.displayName = 'MixpanelContext';\n\nexport const useMixpanel = (customSource?: MixpanelEventSource) => {\n const getMixpanelInstance = useContext(MixpanelContext);\n const sourceContext = useContext(MixpanelSourceContext);\n\n const mixpanel = useMemo(\n () => getMixpanelInstance(customSource ?? sourceContext),\n [customSource, sourceContext, getMixpanelInstance]\n );\n\n if (mixpanel === undefined) {\n throw new Error('Missing MixpanelContext.Provider further up in the tree. Did you forget to add it?');\n }\n return mixpanel;\n};\n","import { createContext, useContext } from 'react';\nimport type { Organization } from '../types/Organization';\n\nexport const OrganizationContext = createContext(undefined);\nOrganizationContext.displayName = 'OrganizationContext';\n\nexport function useOrganizationContext() {\n const context = useContext(OrganizationContext);\n if (context === undefined) {\n throw new Error('Missing OrganizationContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\nexport interface OrganizationContextProps {\n users: NonNullable;\n isLoaded: boolean;\n}\n","import { createContext, useCallback, useContext, useEffect, useState } from 'react';\n\nexport interface RecentSymbolsContextProps {\n recentSymbols: Record;\n setRecentSymbols: (value: Record) => void;\n}\nexport const RecentSymbolsContext = createContext(undefined);\nRecentSymbolsContext.displayName = 'RecentSymbolsContext';\nexport const useRecentSymbols = () => {\n const recentSymbolsContext = useContext(RecentSymbolsContext);\n\n const recentSymbols = recentSymbolsContext?.recentSymbols;\n const setRecentSymbols = recentSymbolsContext?.setRecentSymbols;\n\n const [recentSymbolsList, setRecentSymbolsList] = useState([]);\n\n const updateRecentSymbols = useCallback(\n (symbol: string) => {\n if (symbol != null && recentSymbols != null && setRecentSymbols != null) {\n const lastMonth = Sugar.Date.create('last month').getTime();\n const timestampOfNewSelection = Date.now();\n\n // Is this legacy backwards compatability code here, handling both arrs and individual numbers? Leaving as is for now for safety reasons\n recentSymbols[symbol] = Array.isArray(recentSymbols[symbol])\n ? [...recentSymbols[symbol], timestampOfNewSelection]\n : [timestampOfNewSelection];\n\n // Remove usage from previous months\n for (const symbol in recentSymbols) {\n recentSymbols[symbol] = recentSymbols[symbol].filter(ts => ts > lastMonth);\n if (recentSymbols[symbol].length < 1) {\n delete recentSymbols[symbol];\n }\n }\n setRecentSymbols({ ...recentSymbols });\n }\n },\n [recentSymbols, setRecentSymbols]\n );\n\n useEffect(() => {\n if (recentSymbols) {\n setRecentSymbolsList(\n Object.keys(recentSymbols).sort((a, b) => recentSymbols[b].length - recentSymbols[a].length)\n );\n }\n }, [recentSymbols]);\n\n return {\n recentSymbolsList,\n updateRecentSymbols,\n };\n};\n","import type Big from 'big.js';\nimport { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\n\nexport interface RefRate {\n currentPrice: Big | undefined;\n prevPrice: Big | undefined;\n isLoaded: boolean;\n}\nexport interface RefRateContextProps {\n refRatesBySymbol: Observable>;\n registerSubscription: (symbol: string) => void;\n registerSubscriptions: (symbols: string[]) => void;\n unregisterSubscription: (symbol: string, persistRate?: boolean) => void;\n unregisterSubscriptions: (symbols: string[]) => void;\n}\nexport const RefRateContext = createContext(undefined);\nRefRateContext.displayName = 'RefRateContext';\n\nexport function useRefRateContext() {\n const context = useContext(RefRateContext);\n if (context === undefined) {\n throw new Error('Missing RefRateContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { OptionSecurity, RepresentativeOptionSecurity } from '../types';\nimport type { FutureSecurity } from '../types/FutureSecurity';\nimport type { PerpSecurity } from '../types/PerpSecurity';\nimport type { Security } from '../types/Security';\n\nexport const SecuritiesContext = createContext(undefined);\nSecuritiesContext.displayName = 'SecuritiesContext';\n\nexport function useSecuritiesContext() {\n const context = useContext(SecuritiesContext);\n if (context === undefined) {\n throw new Error('Missing SecuritiesContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface SecuritiesContextProps {\n isLoaded: boolean;\n securitiesBySymbolObs: Observable>;\n securitiesBySymbol: Map;\n securitiesList: Security[];\n /**\n * A sorted list of securities based on their `Rank` value.\n */\n securitiesListSortedByRank: Security[];\n /** The searchable securities is a sorted list of all securities by DisplayName, with any recent selections weighted to be sorted to the top as well.\n * Note that this list has securities with EndTime (indicates it was soft deleted) and all expired securities filtered out.\n * This data set is used for the SymbolSelectors in the app, for example.\n */\n searchableSecurities: Security[];\n perps: PerpSecurity[];\n perpsByCurrencyPair: Map;\n futures: FutureSecurity[];\n futuresByCurrencyPair: Map;\n futuresByMarketByCurrency: Map>>;\n\n options: OptionSecurity[];\n expirationByMarketByCurrencyIdentity: Map>>;\n optionSecurityBySymbol: Map;\n optionSecurityBySymbolObs: Observable>;\n /** Given a compound key of BaseCurrency, UnderlyingCode, and Markets gives a Security which is representative\n * of the basket of Securities with that combination. This is to allow callers to look up properties\n * like SettlementCurrency which will be the same for all strike prices and expirations given the compound key\n */\n representativeOptionSecurityByKey: Map;\n strikesByOptionKey: Map;\n /** A mapping from Currency to all spot trading pairs where the indexed currency is the Base Currency of the trading pair. */\n spotTradingPairsByBaseCurrency: Map;\n /** A mapping from Currency to all spot trading pairs where the indexed currency is the Quote Currency of the trading pair. */\n spotTradingPairsByQuoteCurrency: Map;\n}\n","import type Big from 'big.js';\nimport { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\n\nexport interface SparklineValues {\n Volume: Big | undefined;\n Values: number[] | undefined;\n Close: Big | undefined;\n Open: Big | undefined;\n PercentChange: Big | undefined;\n}\n\nexport interface SparklineContextProps {\n sparklinesBySymbol: Observable>;\n registerSubscription: (symbol: string) => void;\n registerSubscriptions: (symbols: string[]) => void;\n unregisterSubscription: (symbol: string, persistRate?: boolean) => void;\n unregisterSubscriptions: (symbols: string[]) => void;\n}\nexport const SparklineContext = createContext(undefined);\nSparklineContext.displayName = 'SparklineContext';\n\nexport function useSparklineContext() {\n const context = useContext(SparklineContext);\n if (context === undefined) {\n throw new Error('Missing SparklineContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import { createContext, useContext } from 'react';\nimport type { Observable } from 'rxjs';\nimport type { OrderStrategy } from '../types/OrderStrategy';\n\nexport const StrategiesContext = createContext(undefined);\nStrategiesContext.displayName = 'StrategiesContext';\n\nexport function useStrategiesContext() {\n const context = useContext(StrategiesContext);\n if (context === undefined) {\n throw new Error('Missing StrategiesContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\nexport interface StrategiesContextProps {\n isLoaded: boolean;\n /**\n * Observable list of strategies with StrategyScope = \"OrderStrategy\"\n */\n listStrategiesObs: Observable;\n /**\n * List of strategies with StrategyScope = \"OrderStrategy\"\n */\n strategiesList: OrderStrategy[];\n /**\n * List of strategies with StrategyScope = \"AutoHedgingStrategy\"\n */\n autoHedgingStrategiesList: OrderStrategy[];\n /**\n * List of strategies with StrategyScope = \"DDHSubStrategy\"\n */\n ddhStrategiesList: OrderStrategy[];\n /**\n * All strategies by name in observable form\n */\n strategiesByNameObs: Observable>;\n /**\n * All strategies by name (includes sub strategies and strategies with StrategyScope = \"OrderStrategy\" etc.)\n */\n strategiesByName: Map;\n}\n","import { createContext, useContext } from 'react';\nimport type { AmountObject } from '../utils';\n\nexport const UnderlyingPriceContext = createContext<{\n underlyingAmountRecord: Record;\n currency: string | null;\n market: string | null;\n}>({\n currency: null,\n underlyingAmountRecord: {},\n market: null,\n});\n\nUnderlyingPriceContext.displayName = 'UnderlyingAmountContext';\n\nexport function useUnderlyingPriceContext() {\n const context = useContext(UnderlyingPriceContext);\n if (context === undefined) {\n throw new Error('Missing UnderlyingPriceContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n","import { createContext, useContext } from 'react';\nimport type { Counterparty } from '../types/Counterparty';\nimport type { ConnectionModeEnum } from '../types/types';\nimport type { User } from '../types/User';\n\nexport const UserContext = createContext(undefined);\nUserContext.displayName = 'UserContext';\n\nexport function useUserContext() {\n const context = useContext(UserContext);\n if (context === undefined) {\n throw new Error('Missing UserContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nexport interface UserContextProps {\n isLoaded: boolean;\n user: User;\n counterparties?: Counterparty[];\n counterpartiesByName?: Map;\n orgWsEndpoint: string;\n orgApiEndpoint: string;\n\n createApiKey(whitelistedIPs?: string[]): Promise;\n\n deleteApiKey(): Promise;\n\n updateApiKeyWhitelistedIPs(whitelistedIPs: string[]): Promise;\n\n updateApiKeyRoles(roles: string[]): Promise;\n\n listMarketConfigs(): Promise;\n\n listMarketCredentials(): Promise;\n\n createMarketCredential(marketName: string, values: CredentialsFormParams): Promise;\n\n updateMarketCredential(marketName: string, credentialName: string, values: CredentialsFormParams): Promise;\n\n patchMarketCredential(marketName: string, credentialName: string, values: CredentialsFormParams): Promise;\n\n deleteMarketCredential(marketName: string, credentialName: string): Promise;\n\n refetchCounterparties(): void;\n}\n\nexport type CredentialsFormParams = { [key: string]: string | Blob | undefined };\n\nexport interface MarketCredential {\n Name: string;\n Label: string; // Treat as a Display Name\n ConnectionType: string;\n CredentialID: number;\n Market: string;\n Mode: ConnectionModeEnum;\n Attributes?: Record;\n SecretsUpdatedAt?: string;\n AlertMutedUntil?: string;\n}\n\nexport type CredentialTemplateFields = {\n label: string;\n name: string;\n required: boolean;\n cleartext?: boolean;\n preview?: { first?: number; last?: number };\n type?: 'file' | 'textarea' | 'checkbox' | 'select';\n values?: string[];\n};\n\nexport type CredentialTemplate = {\n type: string;\n fields: CredentialTemplateFields[];\n displayName: string;\n};\n\nexport interface MarketConfig {\n credentials: CredentialTemplate[];\n feesDescription: string;\n feesUrl: string;\n guide: {\n header: string;\n image: string;\n text: string;\n }[];\n label: string;\n name: string;\n settingsUrl: string;\n}\n","import { addMilliseconds } from 'date-fns';\nimport { useEffect, useState } from 'react';\nimport { isOrderComplete } from '../utils/isOrderComplete';\n\nexport const useCountdownTime = (\n completionTime: Date,\n status?: Parameters[0],\n refreshRate = 16\n): number | null => {\n const [time, setTime] = useState(null);\n\n useEffect(() => {\n if (completionTime instanceof Date && !isNaN(completionTime.getTime())) {\n if (status && !isOrderComplete(status)) {\n // Define handler to be run once every [refreshRate] ms\n const timeLeft = completionTime.getTime() - new Date(Date.now()).getTime();\n const ltime = addMilliseconds(new Date(), timeLeft);\n const handler = () => {\n const remaining = ltime.getTime() - new Date().getTime();\n if (remaining <= 0) {\n clearInterval(interval);\n }\n setTime(Math.max(remaining, 0));\n };\n const interval = setInterval(handler, refreshRate);\n\n return () => {\n clearInterval(interval);\n };\n } else {\n setTime(null);\n }\n }\n }, [completionTime, status, refreshRate]);\n\n return time;\n};\n","import { useContext } from 'react';\nimport { IntlContext } from '../contexts/IntlContext';\n\nexport function useIntlContext() {\n const context = useContext(IntlContext);\n if (context === undefined) {\n throw new Error('useIntlContext must be used within an IntlProvider');\n }\n return context;\n}\n","import { useMemo } from 'react';\nimport { useIntl as useSharedIntl } from 'react-intl';\nimport type { ColDefIntl, IntlMessages } from '../components/BlotterTable/columns';\nimport { getIntlKey } from '../contexts/IntlContext';\nimport { prettyName } from '../utils';\nimport { useDynamicCallback } from './useDynamicCallback';\nimport { useIntlContext } from './useIntlContext';\n\nexport function useIntl(): ColDefIntl {\n const { doNotOverwriteDisplayNames, formatCell } = useIntlContext();\n const sharedIntl = useSharedIntl();\n return useMemo(\n () => ({ ...sharedIntl, doNotOverwriteDisplayNames, formatCell }),\n [sharedIntl, doNotOverwriteDisplayNames, formatCell]\n );\n}\n\n/**\n * Returns a function that can be used to handle the translations of an option label.\n */\nexport function useTranslatedOptionLabel(messages: IntlMessages) {\n const { formatMessage } = useIntl();\n\n return useDynamicCallback((option: string) => {\n const intlKey = getIntlKey(option);\n if (intlKey in messages) {\n return formatMessage(messages[intlKey as keyof typeof messages]);\n }\n return prettyName(option);\n });\n}\n","import type { ReactNode } from 'react';\nimport { useTheme } from 'styled-components';\nimport { Dot, HaloDot, Wrapper, type IndicatorDotProps } from './styles';\nexport { IndicatorDotVariants } from './styles';\n\nexport function IndicatorDotWrapper({\n children,\n size,\n ...props\n}: Omit & { children: ReactNode }) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const { indicatorDotSizeDefault } = theme;\n size = size ?? indicatorDotSizeDefault;\n return (\n \n {children}\n \n \n );\n}\n\nexport function IndicatorDot({ halo, size, ...props }: IndicatorDotProps) {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const { indicatorDotSizeDefault } = theme;\n size = size ?? indicatorDotSizeDefault;\n\n if (halo) {\n return ;\n }\n return ;\n}\n","import styled from 'styled-components';\nimport { OrderStatusSize } from './types';\n\nexport const Wrapper = styled.div<{\n align: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n size?: OrderStatusSize;\n}>`\n display: inline-flex;\n align-items: center;\n text-align: right;\n color: ${({ theme }) => theme.colorTextAttention};\n font-size: ${({ theme, size }) => (size === OrderStatusSize.Small ? theme.fontSizeTiny : theme.fontSizeSmall)}rem;\n ${({ align }) => align === 'right' && `justify-content: flex-end;`}\n ${({ iconPlacement }) => iconPlacement === 'left' && `flex-direction: row-reverse;`}\n overflow: visible;\n\n > div {\n margin: ${({ iconPlacement, theme }) =>\n iconPlacement === 'left' ? `0 ${theme.spacingSmall}px 0 0` : `0 0 0 ${theme.spacingSmall}px`};\n display: block;\n flex-shrink: 0;\n }\n`;\n","import Big from 'big.js';\nimport { useMemo } from 'react';\n\nimport { defineMessages } from 'react-intl';\nimport { useTheme, type DefaultTheme } from 'styled-components';\nimport { getIntlKey } from '../../contexts';\nimport { useCountdownTime } from '../../hooks/useCountdownTime';\nimport { useIntl } from '../../hooks/useIntl';\nimport { DecisionStatusEnum, OrdStatusEnum, PricingModeEnum } from '../../types/types';\nimport { formattedOrderTime, isDateInThePast, isOrderPaused } from '../../utils';\nimport { isOrderComplete } from '../../utils/isOrderComplete';\nimport { orderStatusTextToColor } from '../../utils/order';\nimport { Box } from '../Core';\nimport { Icon, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { Tooltip } from '../Tooltip';\nimport { Wrapper } from './styles';\nimport { OrderStatusSize, OrderStatusText } from './types';\n\nconst messages = defineMessages({\n open: {\n defaultMessage: 'Open',\n id: 'Status.open',\n },\n filled: {\n defaultMessage: 'Filled',\n id: 'Status.filled',\n },\n rejected: {\n defaultMessage: 'Rejected',\n id: 'Status.rejected',\n },\n systemPaused: {\n defaultMessage: 'System Paused',\n id: 'Status.systemPaused',\n },\n paused: {\n defaultMessage: 'Paused',\n id: 'Status.paused',\n },\n staged: {\n defaultMessage: 'Staged',\n id: 'Status.staged',\n },\n waiting: {\n defaultMessage: 'Waiting',\n id: 'Status.waiting',\n },\n filledAndCanceled: {\n defaultMessage: 'Filled & Canceled',\n id: 'Status.filledAndCanceled',\n },\n canceled: {\n defaultMessage: 'Canceled',\n id: 'Status.canceled',\n },\n pendingCancel: {\n defaultMessage: 'Pending Cancel',\n id: 'Status.pendingCancel',\n },\n pendingReplace: {\n defaultMessage: 'Pending Replace',\n id: 'Status.pendingReplace',\n },\n pendingFix: {\n defaultMessage: 'Pending Fix',\n id: 'Status.pendingFix',\n },\n allCanceled: {\n defaultMessage: 'All Canceled',\n id: 'Status.allCanceled',\n },\n allFilled: {\n defaultMessage: 'All Filled',\n id: 'Status.allFilled',\n },\n allOpen: {\n defaultMessage: 'All Open',\n id: 'Status.allOpen',\n },\n allRejected: {\n defaultMessage: 'All Rejected',\n id: 'Status.allRejected',\n },\n doneForDay: {\n defaultMessage: 'Done For Day',\n id: 'Status.doneForDay',\n },\n holding: {\n defaultMessage: 'Holding',\n id: 'Status.holding',\n },\n new: {\n defaultMessage: 'New',\n id: 'Status.new',\n },\n partiallyFilled: {\n defaultMessage: 'Partially Filled',\n id: 'Status.partiallyFilled',\n },\n pendingNew: {\n defaultMessage: 'Pending New',\n id: 'Status.pendingNew',\n },\n replaced: {\n defaultMessage: 'Replaced',\n id: 'Status.replaced',\n },\n});\nexport const orderStatusMessages = messages;\n\nconst orderStatusTextMapping = {\n [OrdStatusEnum.Filled]: OrderStatusText.Filled,\n [OrdStatusEnum.PendingCancel]: OrderStatusText.PendingCancel,\n [OrdStatusEnum.PendingReplace]: OrderStatusText.PendingReplace,\n [OrdStatusEnum.Rejected]: OrderStatusText.Rejected,\n [OrdStatusEnum.New]: OrderStatusText.Open,\n [OrdStatusEnum.PartiallyFilled]: OrderStatusText.Open,\n [OrdStatusEnum.PendingNew]: OrderStatusText.Open,\n [OrdStatusEnum.Holding]: OrderStatusText.Open,\n [OrdStatusEnum.Replaced]: OrderStatusText.Open,\n [OrdStatusEnum.PendingFix]: OrderStatusText.PendingFix,\n} satisfies Partial>;\n\nexport const getOrderStatusText = ({\n ordStatus,\n orderQty,\n cumQty,\n decisionStatus,\n pricingMode,\n}: {\n ordStatus: OrdStatusEnum;\n orderQty: string;\n cumQty: string;\n decisionStatus?: DecisionStatusEnum;\n pricingMode?: PricingModeEnum;\n}): OrderStatusText => {\n if (!isOrderComplete(ordStatus)) {\n if (decisionStatus === DecisionStatusEnum.Paused) {\n return OrderStatusText.Paused;\n }\n if (decisionStatus === DecisionStatusEnum.SystemPaused) {\n return OrderStatusText.SystemPaused;\n }\n if (decisionStatus === DecisionStatusEnum.Staged) {\n return OrderStatusText.Staged;\n }\n if (\n decisionStatus &&\n [DecisionStatusEnum.WaitingForTrigger, DecisionStatusEnum.WaitingForStartTime].includes(decisionStatus)\n ) {\n return OrderStatusText.Waiting;\n }\n }\n\n if (pricingMode === PricingModeEnum.SpreadToFixing && ordStatus === OrdStatusEnum.Filled) {\n return OrderStatusText.PendingFix;\n }\n\n if (ordStatus === OrdStatusEnum.Canceled) {\n return Big(cumQty || 0).gt(0) ? OrderStatusText.FilledAndCanceled : OrderStatusText.Canceled;\n }\n\n if (ordStatus === OrdStatusEnum.DoneForDay) {\n if (Big(cumQty || 0).eq(0)) {\n return OrderStatusText.Canceled;\n }\n // Synthetic ccy offers sometime fill over\n return Big(cumQty || 0).gte(orderQty) ? OrderStatusText.Filled : OrderStatusText.FilledAndCanceled;\n }\n\n const orderStatusText = orderStatusTextMapping[ordStatus];\n if (orderStatusText == null) {\n // TODO logger.warn...\n return OrderStatusText.Open;\n }\n\n return orderStatusText;\n};\n\nconst StatusIcon = ({ orderStatusText, ...props }) => {\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n const color = orderStatusTextToColor(orderStatusText, useTheme() ?? theme);\n switch (orderStatusText) {\n case OrderStatusText.Filled:\n case OrderStatusText.FilledAndCanceled:\n return ;\n case OrderStatusText.Canceled:\n return ;\n case OrderStatusText.Rejected:\n return ;\n case OrderStatusText.Paused:\n case OrderStatusText.SystemPaused:\n return ;\n case OrderStatusText.Staged:\n return ;\n case OrderStatusText.PendingCancel:\n case OrderStatusText.PendingReplace:\n case OrderStatusText.Waiting:\n return ;\n default:\n return ;\n }\n};\n\ntype OrderStatusProps = {\n ordStatus: OrdStatusEnum;\n decisionStatus?: DecisionStatusEnum;\n cumQty?: string;\n orderQty?: string;\n align?: 'right' | 'left';\n iconPlacement?: 'right' | 'left';\n tooltipText?: string;\n theme?: DefaultTheme;\n title?: string;\n startTime?: string;\n endTime?: string;\n size?: OrderStatusSize;\n pricingMode?: PricingModeEnum;\n};\n\nconst StatusText = ({\n useStartTime,\n formattedCountdown,\n orderStatusText,\n}: {\n useStartTime: boolean;\n formattedCountdown: string | undefined;\n orderStatusText: OrderStatusText;\n}) => {\n const { formatMessage } = useIntl();\n const intlKey = getIntlKey(orderStatusText);\n let orderStatusTextTranslated: string = orderStatusText;\n if (intlKey in messages) {\n orderStatusTextTranslated = formatMessage(messages[intlKey]);\n }\n return (\n <>\n {formattedCountdown ? `${useStartTime ? 'Starts' : 'Ends'} in ${formattedCountdown}` : orderStatusTextTranslated}\n \n );\n};\n\nexport function OrderStatus({\n ordStatus,\n decisionStatus,\n pricingMode,\n cumQty = '0',\n orderQty = '0',\n align = 'right',\n tooltipText,\n startTime,\n endTime,\n size = OrderStatusSize.Default,\n ...props\n}: OrderStatusProps) {\n const orderStatusText: OrderStatusText = getOrderStatusText({\n ordStatus,\n decisionStatus,\n cumQty,\n orderQty,\n pricingMode,\n });\n let variant = IndicatorDotVariants.Warning;\n if (tooltipText?.includes('Order has unhedged size on legs')) {\n variant = IndicatorDotVariants.Negative;\n }\n const defaultTheme = useTheme();\n const theme = props.theme ?? defaultTheme;\n\n const isPaused: boolean = decisionStatus != null && isOrderPaused(decisionStatus);\n const useStartTime: boolean = startTime != null && !isDateInThePast(startTime);\n const completionTime = useMemo(\n () => Sugar.Date.create(useStartTime ? startTime : endTime),\n [useStartTime, startTime, endTime]\n );\n const orderCountdown = useCountdownTime(completionTime, ordStatus, 1000);\n const formattedCountdown: string | undefined =\n !isOrderComplete(ordStatus) && !isPaused && ((startTime != null && !isDateInThePast(startTime)) || endTime != null)\n ? formattedOrderTime(orderCountdown)\n : undefined;\n\n const tooltipContent = !!tooltipText && {tooltipText};\n\n return tooltipContent ? (\n \n {renderOrderStatus()}\n \n ) : (\n renderOrderStatus()\n );\n\n function renderOrderStatus() {\n return (\n \n \n \n \n \n \n );\n }\n}\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n creditUtilization: {\n defaultMessage: 'Credit utilization',\n id: 'BlotterTable.columns.creditUtilization',\n },\n deposit: {\n defaultMessage: 'Deposit',\n id: 'BlotterTable.columns.deposit',\n },\n filledPercent: {\n defaultMessage: 'Filled %',\n id: 'BlotterTable.columns.filledPercent',\n },\n json: {\n defaultMessage: 'JSON',\n id: 'BlotterTable.columns.json',\n },\n market: {\n defaultMessage: 'Market',\n id: 'BlotterTable.columns.market',\n },\n progress: {\n defaultMessage: 'Progress',\n id: 'BlotterTable.columns.progress',\n },\n role: {\n defaultMessage: 'Role',\n id: 'BlotterTable.columns.role',\n },\n status: {\n defaultMessage: 'Status',\n id: 'BlotterTable.columns.status',\n },\n strategy: {\n defaultMessage: 'Strategy',\n id: 'BlotterTable.columns.strategy',\n },\n transfer: {\n defaultMessage: 'Transfer',\n id: 'BlotterTable.columns.transfer',\n },\n user: {\n defaultMessage: 'User',\n id: 'BlotterTable.columns.user',\n },\n withdraw: {\n defaultMessage: 'Withdraw',\n id: 'BlotterTable.columns.withdraw',\n },\n timestamp: {\n defaultMessage: 'Timestamp',\n id: 'BlotterTable.columns.timestamp',\n },\n ordStatus: {\n defaultMessage: 'Order Status',\n id: 'BlotterTable.columns.ordStatus',\n },\n orderStatus: {\n defaultMessage: 'Order Status',\n id: 'BlotterTable.columns.orderStatus',\n },\n symbol: {\n defaultMessage: 'Symbol',\n id: 'BlotterTable.columns.symbol',\n },\n side: {\n defaultMessage: 'Side',\n id: 'BlotterTable.columns.side',\n },\n currency: {\n defaultMessage: 'Currency',\n id: 'BlotterTable.columns.currency',\n },\n asset: {\n defaultMessage: 'Asset',\n id: 'BlotterTable.columns.asset',\n },\n productType: {\n defaultMessage: 'Product Type',\n id: 'BlotterTable.columns.productType',\n },\n ordType: {\n defaultMessage: 'Order Type',\n id: 'BlotterTable.columns.ordType',\n },\n cumQty: {\n defaultMessage: 'Filled Qty',\n id: 'BlotterTable.columns.cumQty',\n },\n amountCurrency: {\n defaultMessage: 'Amount Currency',\n id: 'BlotterTable.columns.amountCurrency',\n },\n cumFee: {\n defaultMessage: 'Fees',\n id: 'BlotterTable.columns.cumFee',\n },\n avgPx: {\n defaultMessage: 'Filled Price',\n id: 'BlotterTable.columns.avgPx',\n },\n EID: {\n defaultMessage: 'EID',\n id: 'BlotterTable.columns.EID',\n },\n OID: {\n defaultMessage: 'OID',\n id: 'BlotterTable.columns.OID',\n },\n transactionType: {\n defaultMessage: 'Type',\n id: 'BlotterTable.columns.transactionType',\n },\n addressType: {\n defaultMessage: 'Type',\n id: 'BlotterTable.columns.addressType',\n },\n addressRoutingType: {\n defaultMessage: 'Routing Type',\n id: 'BlotterTable.columns.addressRoutingType',\n },\n orderQty: {\n defaultMessage: 'Order Qty',\n id: 'BlotterTable.columns.orderQty',\n },\n orderID: {\n defaultMessage: 'Order ID',\n id: 'BlotterTable.columns.orderID',\n },\n tradeID: {\n defaultMessage: 'Trade ID',\n id: 'BlotterTable.columns.tradeID',\n },\n quoteID: {\n defaultMessage: 'Quote ID',\n id: 'BlotterTable.columns.quoteID',\n },\n externalID: {\n defaultMessage: 'External ID',\n id: 'BlotterTable.columns.externalID',\n },\n buy: {\n defaultMessage: 'Buy',\n id: 'BlotterTable.columns.buy',\n },\n sell: {\n defaultMessage: 'Sell',\n id: 'BlotterTable.columns.sell',\n },\n counterparty: {\n defaultMessage: 'Customer',\n id: 'BlotterTable.columns.counterparty',\n },\n tradeStatus: {\n defaultMessage: 'Status',\n id: 'BlotterTable.columns.tradeStatus',\n },\n submitTime: {\n defaultMessage: 'Date',\n id: 'BlotterTable.columns.submitTime',\n },\n filledQtyCurrency: {\n defaultMessage: 'Filled Qty Currency',\n id: 'BlotterTable.columns.filledQtyCurrency',\n },\n filledPriceCurrency: {\n defaultMessage: 'Filled Price Currency',\n id: 'BlotterTable.columns.filledPriceCurrency',\n },\n qtyCurrency: {\n defaultMessage: 'Qty Currency',\n id: 'BlotterTable.columns.qtyCurrency',\n },\n transactTime: {\n defaultMessage: 'Transact Time',\n id: 'BlotterTable.columns.transactTime',\n },\n price: {\n defaultMessage: 'Price',\n id: 'BlotterTable.columns.price',\n },\n longExposureLimit: {\n defaultMessage: 'Long Limit',\n id: 'BlotterTable.columns.longExposureLimit',\n },\n longExposure: {\n defaultMessage: 'Long Exposure',\n id: 'BlotterTable.columns.longExposure',\n },\n shortExposureLimit: {\n defaultMessage: 'Short Limit',\n id: 'BlotterTable.columns.shortExposureLimit',\n },\n shortExposure: {\n defaultMessage: 'Short Exposure',\n id: 'BlotterTable.columns.shortExposure',\n },\n addressID: {\n defaultMessage: 'Address ID',\n id: 'BlotterTable.columns.addressID',\n },\n customerUser: {\n defaultMessage: 'User',\n id: 'BlotterTable.columns.customerUser',\n },\n quantity: {\n defaultMessage: 'Quantity',\n id: 'BlotterTable.columns.quantity',\n },\n amount: {\n defaultMessage: 'Amount',\n id: 'BlotterTable.columns.amount',\n },\n availableAmount: {\n defaultMessage: 'Available Amount',\n id: 'BlotterTable.columns.availableAmount',\n },\n txHash: {\n defaultMessage: 'Tx Hash',\n id: 'BlotterTable.columns.txHash',\n },\n lastMismatchTime: {\n defaultMessage: 'Last Mismatch',\n id: 'BlotterTable.columns.lastMismatchTime',\n },\n reconWarning: {\n defaultMessage: 'Reconciliation Warning',\n id: 'BlotterTable.columns.reconWarning',\n },\n cumAmt: {\n defaultMessage: 'Cum Amt',\n id: 'BlotterTable.columns.cumAmt',\n },\n fee: {\n defaultMessage: 'Fee',\n id: 'BlotterTable.columns.fee',\n },\n transactionID: {\n defaultMessage: 'Transaction ID',\n id: 'BlotterTable.columns.transactionID',\n },\n customerAddressID: {\n defaultMessage: 'Customer Address ID',\n id: 'BlotterTable.columns.customerAddressID',\n },\n underlyingCrossSymbol: {\n defaultMessage: 'Underlying Cross Symbol',\n id: 'BlotterTable.columns.underlyingCrossSymbol',\n },\n minimumSize: {\n defaultMessage: 'Minimum Size',\n id: 'BlotterTable.columns.minimumSize',\n },\n maximumSize: {\n defaultMessage: 'Maximum Size',\n id: 'BlotterTable.columns.maximumSize',\n },\n sizeBuckets: {\n defaultMessage: 'Size Buckets',\n id: 'BlotterTable.columns.sizeBuckets',\n },\n startTime: {\n defaultMessage: 'Start Time',\n id: 'BlotterTable.columns.startTime',\n },\n endTime: {\n defaultMessage: 'End Time',\n id: 'BlotterTable.columns.endTime',\n },\n email: {\n defaultMessage: 'Email',\n id: 'BlotterTable.columns.email',\n },\n mode: {\n defaultMessage: 'Mode',\n id: 'BlotterTable.columns.mode',\n },\n warnThreshold: {\n defaultMessage: 'Warning Threshold',\n id: 'BlotterTable.columns.warnThreshold',\n },\n rejectThreshold: {\n defaultMessage: 'Reject Threshold',\n id: 'BlotterTable.columns.rejectThreshold',\n },\n thresholdCurrency: {\n defaultMessage: 'Threshold Currency',\n id: 'BlotterTable.columns.thresholdCurrency',\n },\n updateAction: {\n defaultMessage: 'Update Action',\n id: 'BlotterTable.columns.updateAction',\n },\n tradingLimitID: {\n defaultMessage: 'Trading Limit ID',\n id: 'BlotterTable.columns.tradingLimitID',\n },\n description: {\n defaultMessage: 'Description',\n id: 'BlotterTable.columns.description',\n },\n subAccount: {\n defaultMessage: 'Sub Account',\n id: 'BlotterTable.columns.subAccount',\n },\n avgCost: {\n defaultMessage: 'Avg Cost',\n id: 'BlotterTable.columns.avgCost',\n },\n outstandingBuy: {\n defaultMessage: 'Outstanding Buy',\n id: 'BlotterTable.columns.outstandingBuy',\n },\n outstandingSell: {\n defaultMessage: 'Outstanding Sell',\n id: 'BlotterTable.columns.outstandingSell',\n },\n delta: {\n defaultMessage: 'Delta',\n id: 'BlotterTable.columns.delta',\n },\n lastUpdateTime: {\n defaultMessage: 'Last Update Time',\n id: 'BlotterTable.columns.lastUpdateTime',\n },\n markPrice: {\n defaultMessage: 'Mark Price',\n id: 'BlotterTable.columns.markPrice',\n },\n directionalAmount: {\n defaultMessage: 'Directional Amount',\n id: 'BlotterTable.columns.directionalAmount',\n },\n marketTransferID: {\n defaultMessage: 'Market Transfer ID',\n id: 'BlotterTable.columns.marketTransferID',\n },\n transferID: {\n defaultMessage: 'Transfer ID',\n id: 'BlotterTable.columns.transferID',\n },\n marketDescription: {\n defaultMessage: 'Market Description',\n id: 'BlotterTable.columns.marketDescription',\n },\n marketTransferStatus: {\n defaultMessage: 'Market Transfer Status',\n id: 'BlotterTable.columns.marketTransferStatus',\n },\n fromAddress: {\n defaultMessage: 'From Address',\n id: 'BlotterTable.columns.fromAddress',\n },\n toAddress: {\n defaultMessage: 'To Address',\n id: 'BlotterTable.columns.toAddress',\n },\n reportID: {\n defaultMessage: 'Report ID',\n id: 'BlotterTable.columns.reportID',\n },\n warning: {\n defaultMessage: 'Warning',\n id: 'BlotterTable.columns.warning',\n },\n unifiedLiquidity: {\n defaultMessage: 'Unified Liquidity',\n id: 'BlotterTable.columns.unifiedLiquidity',\n },\n parentRFQID: {\n defaultMessage: 'Parent RFQ ID',\n id: 'BlotterTable.columns.parentRFQID',\n },\n priceProtection: {\n defaultMessage: 'Price Protection',\n id: 'BlotterTable.columns.priceProtection',\n },\n cxlRejReason: {\n defaultMessage: 'Cancel Reject Reason',\n id: 'BlotterTable.columns.cxlRejReason',\n },\n cancel: {\n defaultMessage: 'Cancel',\n id: 'BlotterTable.columns.cancel',\n },\n aggressorSide: {\n defaultMessage: 'Aggressor Side',\n id: 'BlotterTable.columns.aggressorSide',\n },\n RFQID: {\n defaultMessage: 'RFQID',\n id: 'BlotterTable.columns.RFQID',\n },\n allocation: {\n defaultMessage: 'Allocation',\n id: 'BlotterTable.columns.allocation',\n },\n sessionID: {\n defaultMessage: 'Session ID',\n id: 'BlotterTable.columns.sessionID',\n },\n expectedFillQty: {\n defaultMessage: 'Expected Fill Qty',\n id: 'BlotterTable.columns.expectedFillQty',\n },\n expectedFillPrice: {\n defaultMessage: 'Expected Fill Price',\n id: 'BlotterTable.columns.expectedFillPrice',\n },\n parameters: {\n defaultMessage: 'Parameters',\n id: 'BlotterTable.columns.parameters',\n },\n parentOrderID: {\n defaultMessage: 'Parent Order ID',\n id: 'BlotterTable.columns.parentOrderID',\n },\n revision: {\n defaultMessage: 'Revision',\n id: 'BlotterTable.columns.revision',\n },\n text: {\n defaultMessage: 'Text',\n id: 'BlotterTable.columns.text',\n },\n execID: {\n defaultMessage: 'Exec ID',\n id: 'BlotterTable.columns.execID',\n },\n decisionStatus: {\n defaultMessage: 'Decision Status',\n id: 'BlotterTable.columns.decisionStatus',\n },\n origClOrdID: {\n defaultMessage: 'Orig ClOrdID',\n id: 'BlotterTable.columns.origClOrdID',\n },\n timeInForce: {\n defaultMessage: 'Time In Force',\n id: 'BlotterTable.columns.timeInForce',\n },\n remainQty: {\n defaultMessage: 'Remaining Quantity',\n id: 'BlotterTable.columns.remainQty',\n },\n clOrdID: {\n defaultMessage: 'ClOrdID',\n id: 'BlotterTable.columns.clOrdID',\n },\n lastTradeTime: {\n defaultMessage: 'Last Trade Time',\n id: 'BlotterTable.columns.lastTradeTime',\n },\n group: {\n defaultMessage: 'Group',\n id: 'BlotterTable.columns.group',\n },\n tradedMarketAccounts: {\n defaultMessage: 'Traded Market Accounts',\n id: 'BlotterTable.columns.tradedMarketAccounts',\n },\n selectedMarketAccounts: {\n defaultMessage: 'Selected Market Accounts',\n id: 'BlotterTable.columns.selectedMarketAccounts',\n },\n riskStatus: {\n defaultMessage: 'Risk Status',\n id: 'BlotterTable.columns.riskStatus',\n },\n comments: {\n defaultMessage: 'Comments',\n id: 'BlotterTable.columns.comments',\n },\n connectionID: {\n defaultMessage: 'Connection ID',\n id: 'BlotterTable.columns.connectionID',\n },\n name: {\n defaultMessage: 'Name',\n id: 'BlotterTable.columns.name',\n },\n connectionType: {\n defaultMessage: 'Connection Type',\n id: 'BlotterTable.columns.connectionType',\n },\n beginString: {\n defaultMessage: 'Begin String',\n id: 'BlotterTable.columns.beginString',\n },\n senderCompID: {\n defaultMessage: 'Sender Comp ID',\n id: 'BlotterTable.columns.senderCompID',\n },\n targetCompID: {\n defaultMessage: 'Target Comp ID',\n id: 'BlotterTable.columns.targetCompID',\n },\n quoteStatus: {\n defaultMessage: 'Quote Status',\n id: 'BlotterTable.columns.quoteStatus',\n },\n vega: {\n defaultMessage: 'Vega',\n id: 'BlotterTable.columns.vega',\n },\n execType: {\n defaultMessage: 'Exec Type',\n id: 'BlotterTable.columns.execType',\n },\n expiration: {\n defaultMessage: 'Expiration',\n id: 'BlotterTable.columns.expiration',\n },\n rho: {\n defaultMessage: 'Rho',\n id: 'BlotterTable.columns.rho',\n },\n displayName: {\n defaultMessage: 'Display Name',\n id: 'BlotterTable.columns.displayName',\n },\n reduceOnly: {\n defaultMessage: 'Reduce Only',\n id: 'BlotterTable.columns.reduceOnly',\n },\n reduceFirst: {\n defaultMessage: 'Reduce First',\n id: 'BlotterTable.columns.reduceFirst',\n },\n direction: {\n defaultMessage: 'Direction',\n id: 'BlotterTable.columns.direction',\n },\n credentialID: {\n defaultMessage: 'Credential ID',\n id: 'BlotterTable.columns.credentialID',\n },\n positionAsset: {\n defaultMessage: 'Position Asset',\n id: 'BlotterTable.columns.positionAsset',\n },\n creditUsages: {\n defaultMessage: 'Credit Usage',\n id: 'BlotterTable.columns.creditUsages',\n },\n lastFee: {\n defaultMessage: 'Last Fee',\n id: 'BlotterTable.columns.lastFee',\n },\n limitID: {\n defaultMessage: 'Limit ID',\n id: 'BlotterTable.columns.limitID',\n },\n bestBidIv: {\n defaultMessage: 'Best Bid IV',\n id: 'BlotterTable.columns.bestBidIv',\n },\n bestOfferIv: {\n defaultMessage: 'Best Offer IV',\n id: 'BlotterTable.columns.bestOfferIv',\n },\n underlyingPrice: {\n defaultMessage: 'Underlying Price',\n id: 'BlotterTable.columns.underlyingPrice',\n },\n key: {\n defaultMessage: 'Key',\n id: 'BlotterTable.columns.key',\n },\n lastExecID: {\n defaultMessage: 'Last Exec ID',\n id: 'BlotterTable.columns.lastExecID',\n },\n minPriceIncrement: {\n defaultMessage: 'Min Price Increment',\n id: 'BlotterTable.columns.minPriceIncrement',\n },\n minSizeIncrement: {\n defaultMessage: 'Min Size Increment',\n id: 'BlotterTable.columns.minSizeIncrement',\n },\n maxPriceIncrement: {\n defaultMessage: 'Max Price Increment',\n id: 'BlotterTable.columns.maxPriceIncrement',\n },\n maxSizeIncrement: {\n defaultMessage: 'Max Size Increment',\n id: 'BlotterTable.columns.maxSizeIncrement',\n },\n liquidationPrice: {\n defaultMessage: 'Liquidation Price',\n id: 'BlotterTable.columns.liquidationPrice',\n },\n limit: {\n defaultMessage: 'Limit',\n id: 'BlotterTable.columns.limit',\n },\n value: {\n defaultMessage: 'Value',\n id: 'BlotterTable.columns.value',\n },\n lastActive: {\n defaultMessage: 'Last Active',\n id: 'BlotterTable.columns.lastActive',\n },\n label: {\n defaultMessage: 'Label',\n id: 'BlotterTable.columns.label',\n },\n executionStrategy: {\n defaultMessage: 'Execution Strategy',\n id: 'BlotterTable.columns.executionStrategy',\n },\n minNotionalThreshold: {\n defaultMessage: 'Min Notional Threshold',\n id: 'BlotterTable.columns.minNotionalThreshold',\n },\n maxNotionalThreshold: {\n defaultMessage: 'Max Notional Threshold',\n id: 'BlotterTable.columns.maxNotionalThreshold',\n },\n minQuantityThreshold: {\n defaultMessage: 'Min Qty Threshold',\n id: 'BlotterTable.columns.minQuantityThreshold',\n },\n maxQuantityThreshold: {\n defaultMessage: 'Max Qty Threshold',\n id: 'BlotterTable.columns.maxQuantityThreshold',\n },\n priority: {\n defaultMessage: 'Priority',\n id: 'BlotterTable.columns.priority',\n },\n type: {\n defaultMessage: 'Type',\n id: 'BlotterTable.columns.type',\n },\n ID: {\n defaultMessage: 'ID',\n id: 'BlotterTable.columns.ID',\n },\n typeDescription: {\n defaultMessage: 'Type Description',\n id: 'BlotterTable.columns.typeDescription',\n },\n organization: {\n defaultMessage: 'Organization',\n id: 'BlotterTable.columns.organization',\n },\n action: {\n defaultMessage: 'Action',\n id: 'BlotterTable.columns.action',\n },\n position: {\n defaultMessage: 'Position',\n id: 'BlotterTable.columns.position',\n },\n tradedPx: {\n defaultMessage: 'Traded Price',\n id: 'BlotterTable.columns.tradedPx',\n },\n tradedAmt: {\n defaultMessage: 'Traded Amount',\n id: 'BlotterTable.columns.tradedAmt',\n },\n origQuoteReqID: {\n defaultMessage: 'Orig Quote Req ID',\n id: 'BlotterTable.columns.origQuoteReqID',\n },\n internalText: {\n defaultMessage: 'Internal Text',\n id: 'BlotterTable.columns.internalText',\n },\n effectiveOfferSpread: {\n defaultMessage: 'Effective Offer Spread',\n id: 'BlotterTable.columns.effectiveOfferSpread',\n },\n effectiveBidSpread: {\n defaultMessage: 'Effective Bid Spread',\n id: 'BlotterTable.columns.effectiveBidSpread',\n },\n expectedHedgeOfferPx: {\n defaultMessage: 'Expected Hedge Offer Px',\n id: 'BlotterTable.columns.expectedHedgeOfferPx',\n },\n expectedHedgeBidPx: {\n defaultMessage: 'Expected Hedge Bid Px',\n id: 'BlotterTable.columns.expectedHedgeBidPx',\n },\n offerAmt: {\n defaultMessage: 'Offer Amount',\n id: 'BlotterTable.columns.offerAmt',\n },\n offerPx: {\n defaultMessage: 'Offer Price',\n id: 'BlotterTable.columns.offerPx',\n },\n validUntilTime: {\n defaultMessage: 'Valid Until Time',\n id: 'BlotterTable.columns.validUntilTime',\n },\n bidPx: {\n defaultMessage: 'Bid Price',\n id: 'BlotterTable.columns.bidPx',\n },\n bidAmt: {\n defaultMessage: 'Bid Amount',\n id: 'BlotterTable.columns.bidAmt',\n },\n tradedQty: {\n defaultMessage: 'Traded Quantity',\n id: 'BlotterTable.columns.tradedQty',\n },\n tradedSide: {\n defaultMessage: 'Traded Side',\n id: 'BlotterTable.columns.tradedSide',\n },\n quoteReqID: {\n defaultMessage: 'Quote Req ID',\n id: 'BlotterTable.columns.quoteReqID',\n },\n messageID: {\n defaultMessage: 'Message ID',\n id: 'BlotterTable.columns.messageID',\n },\n updateUser: {\n defaultMessage: 'Update User',\n id: 'BlotterTable.columns.updateUser',\n },\n tradeAction: {\n defaultMessage: 'Trade Action',\n id: 'BlotterTable.columns.tradeAction',\n },\n tradeSource: {\n defaultMessage: 'Trade Source',\n id: 'BlotterTable.columns.tradeSource',\n },\n clTradeID: {\n defaultMessage: 'Cl Trade ID',\n id: 'BlotterTable.columns.clTradeID',\n },\n pricingParameters: {\n defaultMessage: 'Pricing Parameters',\n id: 'BlotterTable.columns.pricingParameters',\n },\n ordRejReason: {\n defaultMessage: 'Order Reject Reason',\n id: 'BlotterTable.columns.ordRejReason',\n },\n adminFillPrice: {\n defaultMessage: 'Admin Fill Price',\n id: 'BlotterTable.columns.adminFillPrice',\n },\n leavesQty: {\n defaultMessage: 'Leaves Quantity',\n id: 'BlotterTable.columns.leavesQty',\n },\n lastQty: {\n defaultMessage: 'Last Quantity',\n id: 'BlotterTable.columns.lastQty',\n },\n lastPx: {\n defaultMessage: 'Last Price',\n id: 'BlotterTable.columns.lastPx',\n },\n lastAmt: {\n defaultMessage: 'Last Amount',\n id: 'BlotterTable.columns.lastAmt',\n },\n internalOrdRejReason: {\n defaultMessage: 'Internal Order Reject Reason',\n id: 'BlotterTable.columns.internalOrdRejReason',\n },\n dealerAction: {\n defaultMessage: 'Dealer Action',\n id: 'BlotterTable.columns.dealerAction',\n },\n cancelSessionID: {\n defaultMessage: 'Cancel Session ID',\n id: 'BlotterTable.columns.cancelSessionID',\n },\n allowedSlippage: {\n defaultMessage: 'Allowed Slippage',\n id: 'BlotterTable.columns.allowedSlippage',\n },\n displaySymbol: {\n defaultMessage: 'Display Symbol',\n id: 'BlotterTable.columns.displaySymbol',\n },\n sourceAccountID: {\n defaultMessage: 'Source Account ID',\n id: 'BlotterTable.columns.sourceAccountID',\n },\n gamma: {\n defaultMessage: 'Gamma',\n id: 'BlotterTable.columns.gamma',\n },\n creditUsageWarning: {\n defaultMessage: 'Credit Usage Warning',\n id: 'BlotterTable.columns.creditUsageWarning',\n },\n exposureDefinition: {\n defaultMessage: 'Exposure Definition',\n id: 'BlotterTable.columns.exposureDefinition',\n },\n marketAccountID: {\n defaultMessage: 'Market Account ID',\n id: 'BlotterTable.columns.marketAccountID',\n },\n theta: {\n defaultMessage: 'Theta',\n id: 'BlotterTable.columns.theta',\n },\n auth0ID: {\n defaultMessage: 'Auth0 ID',\n id: 'BlotterTable.columns.auth0ID',\n },\n vwapSlippage: {\n defaultMessage: 'VWAP Slippage',\n id: 'BlotterTable.columns.vwapSlippage',\n },\n arrivalSlippage: {\n defaultMessage: 'Arrival Slippage',\n id: 'BlotterTable.columns.arrivalSlippage',\n },\n avgAmount: {\n defaultMessage: 'Avg Amount',\n id: 'BlotterTable.columns.avgAmount',\n },\n totalVolume: {\n defaultMessage: 'Total Volume',\n id: 'BlotterTable.columns.totalVolume',\n },\n twapSlippage: {\n defaultMessage: 'TWAP Slippage',\n id: 'BlotterTable.columns.twapSlippage',\n },\n cancelRate: {\n defaultMessage: 'Cancel Rate',\n id: 'BlotterTable.columns.cancelRate',\n },\n fillRate: {\n defaultMessage: 'Fill Rate',\n id: 'BlotterTable.columns.fillRate',\n },\n rejectRate: {\n defaultMessage: 'Reject Rate',\n id: 'BlotterTable.columns.rejectRate',\n },\n minimumAmount: {\n defaultMessage: 'Minimum Amount',\n id: 'BlotterTable.columns.minimumAmount',\n },\n talosFeeCurrency: {\n defaultMessage: 'Talos Fee Currency',\n id: 'BlotterTable.columns.talosFeeCurrency',\n },\n talosFee: {\n defaultMessage: 'Talos Fee',\n id: 'BlotterTable.columns.talosFee',\n },\n allocID: {\n defaultMessage: 'Alloc ID',\n id: 'BlotterTable.columns.allocID',\n },\n dealtCurrency: {\n defaultMessage: 'Dealt Currency',\n id: 'BlotterTable.columns.dealtCurrency',\n },\n resolution: {\n defaultMessage: 'Resolution',\n id: 'BlotterTable.columns.resolution',\n },\n state: {\n defaultMessage: 'State',\n id: 'BlotterTable.columns.state',\n },\n positionSource: {\n defaultMessage: 'Position Source',\n id: 'BlotterTable.columns.positionSource',\n },\n rid: {\n defaultMessage: 'Rid',\n id: 'BlotterTable.columns.rid',\n },\n marketAccount: {\n defaultMessage: 'Market Account',\n id: 'BlotterTable.columns.marketAccount',\n },\n lastMarket: {\n defaultMessage: 'Last Market',\n id: 'BlotterTable.columns.lastMarket',\n },\n orderStartTime: {\n defaultMessage: 'Order Start Time',\n id: 'BlotterTable.columns.orderStartTime',\n },\n orderEndTime: {\n defaultMessage: 'Order End Time',\n id: 'BlotterTable.columns.orderEndTime',\n },\n participationRate: {\n defaultMessage: 'Participation Rate',\n id: 'BlotterTable.columns.participationRate',\n },\n ownership: {\n defaultMessage: 'Ownership',\n id: 'BlotterTable.columns.ownership',\n },\n ruleID: {\n defaultMessage: 'Rule ID',\n id: 'BlotterTable.columns.ruleID',\n },\n minIncrement: {\n defaultMessage: 'Min Increment',\n id: 'BlotterTable.columns.minIncrement',\n },\n defaultIncrement: {\n defaultMessage: 'Default Increment',\n id: 'BlotterTable.columns.defaultIncrement',\n },\n allInTier: {\n defaultMessage: 'All In Tier',\n id: 'BlotterTable.columns.allInTier',\n },\n feeTier: {\n defaultMessage: 'Fee Tier',\n id: 'BlotterTable.columns.feeTier',\n },\n symbolGroup: {\n defaultMessage: 'Symbol Group',\n id: 'BlotterTable.columns.symbolGroup',\n },\n rate: {\n defaultMessage: 'Rate',\n id: 'BlotterTable.columns.rate',\n },\n settleStatus: {\n defaultMessage: 'Settle Status',\n id: 'BlotterTable.columns.settleStatus',\n },\n priceCurrency: {\n defaultMessage: 'Price Currency',\n id: 'BlotterTable.columns.priceCurrency',\n },\n realizedPnL: {\n defaultMessage: 'Realized PnL',\n id: 'BlotterTable.columns.realizedPnL',\n },\n totalPnL: {\n defaultMessage: 'Total PnL',\n id: 'BlotterTable.columns.totalPnL',\n },\n cumFees: {\n defaultMessage: 'Cum Fees',\n id: 'BlotterTable.columns.cumFees',\n },\n feeCurrency: {\n defaultMessage: 'Fee Currency',\n id: 'BlotterTable.columns.feeCurrency',\n },\n pnLcurrency: {\n defaultMessage: 'PnL Currency',\n id: 'BlotterTable.columns.pnLcurrency',\n },\n deltaCurrency: {\n defaultMessage: 'Delta Currency',\n id: 'BlotterTable.columns.deltaCurrency',\n },\n unrealizedPnL: {\n defaultMessage: 'Unrealized PnL',\n id: 'BlotterTable.columns.unrealizedPnL',\n },\n deltaHomeCurrency: {\n defaultMessage: 'Delta ({homeCurrency})',\n id: 'BlotterTable.columns.deltaHomeCurrency',\n },\n amountHomeCurrency: {\n defaultMessage: 'Amount ({homeCurrency})',\n id: 'BlotterTable.columns.amountHomeCurrency',\n },\n markPriceHomeCurrency: {\n defaultMessage: 'Mark Price ({homeCurrency})',\n id: 'BlotterTable.columns.markPriceHomeCurrency',\n },\n feeMode: {\n defaultMessage: 'Fee Mode',\n id: 'BlotterTable.columns.feeMode',\n },\n tier: {\n defaultMessage: 'Tier',\n id: 'BlotterTable.columns.tier',\n },\n walletAddress: {\n defaultMessage: 'Wallet Address',\n id: 'BlotterTable.columns.walletAddress',\n },\n memo: {\n defaultMessage: 'Memo',\n id: 'BlotterTable.columns.memo',\n },\n});\n\nexport type ColumnHeaderMessageKey = keyof typeof messages;\n","import type { ColDef } from 'ag-grid-community';\nimport { get, isUndefined, omitBy } from 'lodash';\nimport { getIntlKey } from '../../../contexts';\nimport { prettyName } from '../../../utils';\nimport { messages } from './columnHeaderTranslations';\nimport { getAgGridColId } from './getAgGridColId';\nimport type { Column } from './types';\n\n/**\n * Create a base ColDef for AgGrid.\n *\n * @param column Column definition\n * @param ignoreDefaultHeaderValue Ignore the default title generated by the headerValueGetter if a translation is missing.\n */\nexport function baseColumn(column: Column, ignoreDefaultHeaderValue = false): ColDef {\n // Prevent clearing out values from `column` that are undefined\n return omitBy(\n {\n colId: getAgGridColId(column),\n hide: column.hide,\n field: column.field,\n flex: column.flex,\n width: column.width,\n maxWidth: column.maxWidth,\n minWidth: column.minWidth,\n headerValueGetter: ({ context }) => {\n const customIntlKey =\n typeof column.title === 'object' && column.title.intlKey ? column.title.intlKey : undefined;\n const effectiveField = column.field ?? column.id;\n const intlKey = customIntlKey ?? (effectiveField ? getIntlKey(effectiveField) : undefined);\n if (typeof column.title === 'string') {\n // Column header overwritten with title prop\n return column.title;\n } else if (intlKey && intlKey in messages) {\n // Column header has translation\n return context.current.intl.formatMessage(messages[intlKey], column.titleIntlKeyValues);\n }\n // Columns without a \"field\" don't have titles. They are used for buttons, etc.\n // If passed a title, it will be used instead.\n else if (!column.field) {\n return undefined;\n }\n // Useful to ignore the warning if you are intentionally not providing a title (but you did provide a field)\n else if (ignoreDefaultHeaderValue) {\n return undefined;\n }\n // Default behavior, determined by field. \"LastUpdateTime\" --> \"Last Update Time\"\n // We don't consider column.id here because some columns intentionally leave it undefined\n // This way, they don't render any column header name. Example: { id: 'edit-button' }\n const defaultTitle = prettyName(column.field);\n if (import.meta.env.VITE_AVA_ENV === 'local' && import.meta.env.VITE_APP !== 'ava') {\n console.warn(\n `Internationalization Missing: Column Title with intlKey \"${intlKey}\" will render as \"${defaultTitle}\"`\n );\n }\n return defaultTitle;\n },\n headerTooltip: column.description,\n headerComponent: column.headerGroupToggle ? 'groupToggleHeader' : undefined,\n headerComponentParams: column.columnsInGroup ? { columnsInGroup: column.columnsInGroup } : undefined,\n sortable: column.sortable ?? true,\n sort: column.sort === '+' ? 'asc' : column.sort === '-' ? 'desc' : undefined,\n editable: column.editable,\n resizable: !column.frozen,\n lockVisible: column.frozen,\n lockPinned: column.frozen,\n suppressMovable: column.frozen,\n pinned: column.pinned,\n checkboxSelection: column.checkboxSelection,\n showDisabledCheckboxes: column.showDisabledCheckboxes,\n headerCheckboxSelection: column.headerCheckboxSelection,\n rowGroup: column.rowGroup,\n rowGroupIndex: column.rowGroupIndex,\n enableRowGroup: column.enableRowGroup,\n suppressHeaderMenuButton: column.suppressHeaderMenuButton,\n suppressColumnsToolPanel: column.suppressColumnsToolPanel,\n tooltipField: column.tooltipField,\n tooltipValueGetter: column.tooltipValueGetter,\n tooltipComponent: column.tooltipComponent,\n cellStyle: column.cellStyle,\n headerClass: () => {\n return column.columnGroup ? `ag-custom-column-group ${column.headerClass ?? ''}` : column.headerClass;\n },\n rowSpan: column.rowSpan,\n cellClass: column.cellClass,\n cellClassRules: column.cellClassRules,\n comparator: (a, b) => {\n if (typeof a === 'string') {\n return a.localeCompare(b);\n }\n if (typeof b === 'string') {\n return -1 * b.localeCompare(a);\n }\n return a - b;\n },\n /**\n * This is the column's own context. Should not be confused with the entire Grid's context.\n */\n context: {\n [COLDEF_CUSTOM_KEY]: {\n exportable: column.exportable,\n } satisfies ColDefCustomProperties,\n },\n } as ColDef,\n isUndefined\n );\n}\n\nconst COLDEF_CUSTOM_KEY = '__custom__';\n\nexport interface ColDefCustomProperties {\n exportable?: boolean;\n}\n\nexport function getCustomColDefProperties(colDef: ColDef): ColDefCustomProperties | undefined {\n return get(colDef, `context.${COLDEF_CUSTOM_KEY}`);\n}\n","import type { IRowNode } from 'ag-grid-community';\nimport Big from 'big.js';\nimport { get } from 'lodash';\nimport type { DefaultTheme } from 'styled-components';\nimport type { DecisionStatusEnum, OrdStatusEnum, PricingModeEnum } from '../../../types';\nimport { numericComparator, orderStatusTextToColor, toBigWithDefault, type Leaves } from '../../../utils';\nimport type { AgGridMeterProps } from '../../AgGrid/AgGridMeter';\nimport { getOrderStatusText } from '../../Status/OrderStatus';\nimport type { ColDefFactory, Column } from '../columns/types';\nimport { baseColumn } from './baseColumn';\n\nexport type FilledPercentColumnParams = {\n /** The filled part of the bar, required */\n filledQtyField: Leaves;\n /** The total \"length\" of the bar, required */\n totalQtyField: Leaves;\n /** Given the node, get the color */\n getColor?: (rowNode: IRowNode, theme: DefaultTheme) => string | undefined;\n} & Partial>;\n\nexport interface FilledPercentColumnValue {\n value: string;\n color: string | undefined;\n}\n\nexport const filledPercent: ColDefFactory> = column => ({\n ...baseColumn(column),\n cellRenderer: 'meterColumn',\n cellRendererParams: {\n showInitialAnimation: false,\n ...column.params,\n },\n menuTabs: [],\n minWidth: 120,\n maxWidth: 480,\n flex: 1,\n\n // Todo: calculating this percentage below is somewhat heavy. Instead, these percentage calcs should be performed earlier and stored in the data entity so it doesnt have to be recalced in here\n valueGetter: ({ data, api, node, context }): FilledPercentColumnValue => {\n const filledQty = column.params?.filledQtyField ? get(data, column.params.filledQtyField) : undefined;\n const totalQty = column.params?.totalQtyField ? get(data, column.params.totalQtyField) : undefined;\n\n const filledQtyBig = toBigWithDefault(filledQty, 0);\n const totalQtyBig = toBigWithDefault(totalQty, 0);\n\n let value = '0';\n if (!totalQtyBig.eq('0') && !filledQtyBig.eq('0')) {\n const percent = filledQtyBig.div(totalQtyBig);\n if (percent.gt('0.99') && filledQtyBig.lt(totalQtyBig)) {\n // Ensure that we don't show '100.00%' when the order isn't fully filled\n // by adding extra precision and rounding down between 99% and 100%\n value = percent.toFixed(4, Big.roundDown);\n } else if (filledQtyBig.gt(0) && percent.lt('0.01')) {\n // Ensure that we don't show '0.00%' when the order is partially filled\n value = percent.toFixed(4, Big.roundUp);\n } else {\n value = percent.toFixed(4);\n }\n }\n\n const color = node && context.current.theme ? column.params?.getColor?.(node, context.current.theme) : undefined;\n\n return {\n value,\n color,\n };\n },\n comparator: (valueA, valueB) => {\n return numericComparator(valueA.value, valueB.value);\n },\n});\n\ninterface OrderLike {\n OrdStatus: OrdStatusEnum;\n OrderQty: string;\n CumQty: string;\n DecisionStatus?: DecisionStatusEnum;\n PricingMode?: PricingModeEnum;\n}\n\n/** When using the Filled Percent column for order types, this function can be used to derive the correct color */\nexport function getOrderStatusColor(order: OrderLike | undefined, theme: DefaultTheme) {\n // Just to make things simpler on usage, we handle the undefined order case in here. It shouldnt happen.\n if (!order) {\n return undefined;\n }\n\n const text = getOrderStatusText({\n ordStatus: order.OrdStatus,\n orderQty: order.OrderQty,\n cumQty: order.CumQty,\n decisionStatus: order.DecisionStatus,\n pricingMode: order.PricingMode,\n });\n\n return orderStatusTextToColor(text, theme);\n}\n","import Big from 'big.js';\nimport { isObject } from 'lodash';\nimport type { ExpectTrue } from '../tests';\nimport { logger } from '../utils';\nimport { isOrderPending } from '../utils/isOrderPending';\nimport type { OptionalProperties, ValueOf } from '../utils/types';\nimport type { CareNewOrderSingle } from './CareNewOrderSingle';\nimport type { Serializable } from './Serializable';\nimport {\n OrdStatusEnum,\n type CxlRejReasonEnum,\n type ExecTypeEnum,\n type ICareExecutionReport,\n type OrdRejReasonEnum,\n type SideEnum,\n} from './types';\n\nexport function isCareOrder(entity: any): entity is CareOrder {\n return entity instanceof CareOrder;\n}\n\nexport class CareOrder implements Serializable {\n static readonly rowID = 'OrderID';\n\n Timestamp: string;\n User: string;\n Symbol: string;\n Currency: string;\n OrderID: string;\n ClOrdID: string;\n OrigClOrdID: string | undefined;\n SubmitTime: string;\n ExecID: string;\n Side: SideEnum;\n TransactTime: string;\n ExecType: ExecTypeEnum;\n protected OrdStatus: OrdStatusEnum;\n OrderQty: string;\n LeavesQty: string;\n CumQty: string;\n OrdRejReason: OrdRejReasonEnum | undefined;\n CxlRejReason: CxlRejReasonEnum | undefined;\n RequestUser: string;\n Revision: number;\n Text?: string;\n Group: string;\n Comments: string;\n CumAmt?: string;\n AvgPx?: string;\n LastPx?: string;\n LastQty?: string;\n LastAmt?: string;\n AmountCurrency: string;\n Counterparty: string;\n LastExecID: string;\n Annotations?: Record;\n WorkingQty?: string;\n\n get isCancelable(): boolean {\n return !(this.isPendingOrdStatus || this.isComplete);\n }\n\n get isComplete(): boolean {\n return [OrdStatusEnum.Canceled, OrdStatusEnum.Filled, OrdStatusEnum.Rejected, OrdStatusEnum.DoneForDay].includes(\n this.OrdStatus\n );\n }\n\n get initiatingFrom(): string | undefined {\n if (this.Annotations != null && 'ETP' in this.Annotations && isObject(this.Annotations.ETP)) {\n return (this.Annotations as CareNewOrderSingle['Annotations'])?.ETP?.InitiatingFrom;\n }\n return undefined;\n }\n\n get status(): ValueOf {\n const cumQty = Big(this.CumQty);\n switch (this.OrdStatus) {\n case OrdStatusEnum.New:\n case OrdStatusEnum.Replaced:\n case OrdStatusEnum.PendingNew:\n return CareOrderStatusEnum.New;\n case OrdStatusEnum.PendingCancel:\n return CareOrderStatusEnum.PendingCancel;\n case OrdStatusEnum.PendingReplace:\n return CareOrderStatusEnum.PendingReplace;\n case OrdStatusEnum.PartiallyFilled:\n return CareOrderStatusEnum.PartiallyFilled;\n case OrdStatusEnum.Filled:\n return CareOrderStatusEnum.Filled;\n case OrdStatusEnum.DoneForDay:\n if (cumQty.eq(0)) {\n return CareOrderStatusEnum.Canceled;\n }\n return cumQty.gte(this.OrderQty) ? CareOrderStatusEnum.Filled : CareOrderStatusEnum.FilledAndCanceled;\n case OrdStatusEnum.Canceled:\n return CareOrderStatusEnum.Canceled;\n case OrdStatusEnum.Rejected:\n return CareOrderStatusEnum.Rejected;\n case OrdStatusEnum.Holding:\n case OrdStatusEnum.PendingFix:\n logger.error(new Error(`Unexpected OrdStatus: ${this.OrdStatus}`));\n return CareOrderStatusEnum.Unknown;\n default: {\n const _exhaustiveCheck: never = this.OrdStatus;\n logger.error(new Error(`Unexpected OrdStatus: ${this.OrdStatus}`));\n return CareOrderStatusEnum.Unknown;\n }\n }\n }\n\n toJSON() {\n return { ...this };\n }\n\n get remainQty(): string {\n return Big(this.OrderQty)\n .minus(this.CumQty)\n .minus(this.WorkingQty ?? 0)\n .toFixed();\n }\n\n // Private for now to encourage using the more abstract getters (isCancelable etc.)\n private get isPendingOrdStatus(): boolean {\n return isOrderPending(this.OrdStatus);\n }\n\n constructor(\n data:\n | CareOrder\n | OptionalProperties<\n ICareExecutionReport,\n 'OrdRejReason' | 'CxlRejReason' | 'Annotations' | 'Text' | 'OrgID' | 'OrigClOrdID'\n >\n ) {\n this.Timestamp = data.Timestamp;\n this.User = data.User;\n this.Symbol = data.Symbol;\n this.Currency = data.Currency;\n this.OrderID = data.OrderID;\n this.ClOrdID = data.ClOrdID;\n this.OrigClOrdID = data.OrigClOrdID;\n this.SubmitTime = data.SubmitTime;\n this.ExecID = data.ExecID;\n this.Side = data.Side;\n this.TransactTime = data.TransactTime;\n this.ExecType = data.ExecType;\n // tsc is angry because OrdStatus is protected...\n this.OrdStatus = data instanceof CareOrder ? data.OrdStatus : data.OrdStatus;\n this.OrderQty = data.OrderQty ?? '0';\n this.LeavesQty = data.LeavesQty ?? '0';\n this.CumQty = data.CumQty ?? '0';\n this.OrdRejReason = data.OrdRejReason;\n this.CxlRejReason = data.CxlRejReason;\n this.RequestUser = data.RequestUser;\n this.Revision = data.Revision;\n this.Text = data.Text;\n this.Group = data.Group;\n this.Comments = data.Comments;\n this.AmountCurrency = data.AmountCurrency;\n this.Counterparty = data.Counterparty;\n this.CumAmt = data.CumAmt;\n this.AvgPx = data.AvgPx;\n this.LastExecID = data.LastExecID;\n this.LastPx = data.LastPx;\n this.LastQty = data.LastQty;\n this.LastAmt = data.LastAmt;\n this.LastExecID = data.LastExecID;\n this.Annotations = data.Annotations as any;\n this.WorkingQty = (data as CareOrder).WorkingQty == null ? undefined : (data as CareOrder).WorkingQty;\n }\n}\n\nexport const CareOrderStatusEnum = {\n New: 'New',\n Rejected: 'Rejected',\n Canceled: 'Canceled',\n PartiallyFilled: 'Partially Filled',\n Filled: 'Filled',\n FilledAndCanceled: 'Filled & Canceled',\n PendingCancel: 'Pending Cancel',\n PendingReplace: 'Pending Replace',\n Unknown: 'Unknown',\n} as const;\n\n// TYPE LEVEL TESTS\ntype OmittedClassKeys =\n | 'isCancelable'\n | 'isComplete'\n | 'initiatingFrom'\n | 'status'\n | 'toJSON'\n | 'remainQty'\n | 'WorkingQty'\n | 'setWorkingQty';\ntype _Expect_CareOrder_To_Only_Have_Keys_From_ICareExecutionReport = ExpectTrue<\n {\n [K in Exclude & string]: K extends keyof ICareExecutionReport ? true : K;\n }[Exclude]\n>;\n\ntype OmittedInterfaceKeys = 'MessageID' | 'OrdStatus' | 'OrgID';\ntype _Expect_All_Keys_In_ICareExecutionReport_To_Be_In_CareOrder = ExpectTrue<\n {\n [K in keyof Exclude & string]: K extends keyof CareOrder ? true : K;\n }[Exclude]\n>;\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport { CustomerBalanceTransactionStatusEnum, type CustomerBalanceTransactionTypeEnum } from './types';\n\nexport class CustomerBalance {\n Counterparty!: string;\n\n Currency!: string;\n\n Amount!: string;\n\n AvailableAmount!: string;\n\n OutstandingBuy!: string;\n\n OutstandingSell!: string;\n\n PendingWithdrawal!: string;\n\n Timestamp!: string;\n\n MarketAccount!: string;\n\n Equivalent?: {\n Amount: string;\n Currency: string;\n };\n\n UnsettledAmount?: string;\n\n // Custom for unique Row ID\n get rowID() {\n return getCustomerBalanceRowID(this);\n }\n\n constructor(data: CustomerBalance) {\n Object.assign(this, data);\n }\n}\n\nexport const getCustomerBalanceRowID = (\n customerBalance: Pick\n) => {\n return `${customerBalance.Counterparty}-${customerBalance.MarketAccount}-${customerBalance.Currency}`;\n};\n\ninterface UseCustomerBalanceColumns {\n defaultColumns?: (keyof CustomerBalance | Partial)[];\n}\n\nexport function useCustomerBalanceColumns({ defaultColumns = EMPTY_ARRAY }: UseCustomerBalanceColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Counterparty',\n type: 'customer',\n },\n {\n field: 'Currency',\n type: 'text',\n },\n {\n field: 'Amount',\n type: 'size',\n },\n {\n field: 'AvailableAmount',\n type: 'size',\n },\n {\n field: 'OutstandingBuy',\n type: 'size',\n },\n {\n field: 'OutstandingSell',\n type: 'size',\n },\n {\n field: 'PendingWithdrawal',\n type: 'size',\n },\n {\n field: 'Timestamp',\n type: 'date',\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n {\n field: 'rowID',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\nexport class CustomerBalanceTransaction {\n Type!: string;\n\n Counterparty!: string;\n\n Currency!: string;\n\n Amount!: string;\n\n Status!: CustomerBalanceTransactionStatusEnum;\n\n Revision!: string;\n\n Timestamp!: string;\n\n TradeID!: string;\n\n ExternalID!: string;\n\n Comments!: string;\n\n ExternalComments?: string;\n\n MarketAccount!: string;\n\n TxHash!: string;\n\n TransactionID!: string;\n\n get rowID() {\n return `${this.MarketAccount}-${this.Currency}-${this.Revision}`;\n }\n\n constructor(data: CustomerBalanceTransaction) {\n Object.assign(this, data);\n }\n}\n\nexport function isCustomerBalanceTransactionActionable(transactionStatusEnum: CustomerBalanceTransactionStatusEnum) {\n return transactionStatusEnum === CustomerBalanceTransactionStatusEnum.PendingApproval;\n}\n\nexport function isCustomerBalanceTransactionTerminal(transactionStatusEnum: CustomerBalanceTransactionStatusEnum) {\n return (\n transactionStatusEnum === CustomerBalanceTransactionStatusEnum.Completed ||\n transactionStatusEnum === CustomerBalanceTransactionStatusEnum.Rejected ||\n transactionStatusEnum === CustomerBalanceTransactionStatusEnum.Canceled\n );\n}\n\ninterface UseCustomerBalanceTransactionColumns {\n defaultColumns?: (keyof CustomerBalanceTransaction | Partial)[];\n}\n\nexport function useCustomerBalanceTransactionColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseCustomerBalanceTransactionColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Type',\n type: 'text',\n },\n {\n field: 'Counterparty',\n type: 'customer',\n },\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'Amount',\n type: 'size',\n },\n {\n field: 'Status',\n type: 'transferStatus',\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'Timestamp',\n type: 'date',\n },\n {\n field: 'TradeID',\n type: 'id',\n },\n {\n field: 'ExternalID',\n type: 'text',\n },\n {\n field: 'Comments',\n type: 'text',\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n { field: 'TxHash', type: 'text' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\nexport class CustomerTransaction {\n TransactionID!: string;\n Timestamp!: string;\n ClReqID!: string;\n Revision!: number;\n TransactionType!: CustomerBalanceTransactionTypeEnum;\n Quantity!: number;\n Currency!: string;\n CustomerAddressID!: string;\n CustomerUser!: string;\n Counterparty!: string;\n MarketAccount!: string;\n DealerUser?: string;\n TreasuryUser?: string;\n TransferID?: string;\n TxHash?: string;\n Status!: CustomerBalanceTransactionStatusEnum;\n RejectReason?: string;\n RejectText?: string;\n Comments?: string;\n ExternalComments?: string;\n Initiator?: 'Dealer' | 'Customer';\n InitiatorUser?: string;\n\n constructor(data: CustomerTransaction) {\n Object.assign(this, data);\n }\n}\n\ninterface UseCustomerTransactionColumns {\n defaultColumns?: (keyof CustomerTransaction | Partial)[];\n}\n\nexport function useCustomerTransactionColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseCustomerTransactionColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'TransactionID',\n type: 'text',\n },\n {\n field: 'Timestamp',\n type: 'text',\n },\n {\n field: 'ClReqID',\n type: 'text',\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'TransactionType',\n type: 'text',\n },\n {\n field: 'Quantity',\n type: 'text',\n },\n {\n field: 'Currency',\n type: 'text',\n },\n {\n field: 'CustomerAddressID',\n type: 'text',\n },\n {\n field: 'CustomerUser',\n type: 'text',\n },\n {\n field: 'Counterparty',\n type: 'text',\n },\n {\n field: 'MarketAccount',\n type: 'text',\n },\n {\n field: 'DealerUser',\n type: 'text',\n },\n {\n field: 'TreasuryUser',\n type: 'text',\n },\n {\n field: 'TransferID',\n type: 'text',\n },\n {\n field: 'TxHash',\n type: 'text',\n },\n {\n field: 'Status',\n type: 'text',\n },\n {\n field: 'RejectReason',\n type: 'text',\n },\n {\n field: 'RejectText',\n type: 'text',\n },\n {\n field: 'Comments',\n type: 'text',\n },\n {\n field: 'Initiator',\n type: 'text',\n },\n {\n field: 'InitiatorUser',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type { PricingParameters } from './CustomerOrder';\nimport type { CustomerDealSummary } from './CustomerOrderSummary';\nimport type {\n CustomerExecutionStrategyEnum,\n CustomerWorkflowEnum,\n CxlRejReasonEnum,\n DecisionStatusEnum,\n ExecTypeEnum,\n ICustomerExecutionReport,\n OrdRejReasonEnum,\n OrdStatusEnum,\n OrdTypeEnum,\n OrderAdminActionEnum,\n PricingModeEnum,\n SideEnum,\n} from './types';\n\n// ICustomerExecutionReport / CustomerExecutionReport4224\nexport class CustomerExecutionReport {\n static readonly rowID = 'ExecID';\n static readonly defaultColumns = [\n 'SubmitTime',\n 'Side',\n 'Symbol',\n 'OrderQty',\n 'CumQty',\n 'LeavesQty',\n 'Price',\n 'AvgPx',\n 'CumFee',\n 'Strategy',\n 'SubAccount', // TODO this will be problematic with allocations\n 'Group',\n 'User',\n 'OrdStatus',\n 'ExecID',\n 'OrderID',\n 'ClOrdID',\n ] satisfies (keyof CustomerExecutionReport | Column)[];\n\n Timestamp!: string;\n\n MessageID?: string;\n\n User?: string;\n\n Symbol!: string;\n\n OrderID!: string;\n\n ClOrdID?: string;\n\n Counterparty?: string;\n\n OrigClOrdID?: string;\n\n SubmitTime!: string;\n\n ExecID!: string;\n\n Side?: SideEnum;\n\n TransactTime?: string;\n\n ExecType!: ExecTypeEnum;\n\n MarketAccount!: string;\n\n OrdStatus!: OrdStatusEnum;\n\n OrdType?: OrdTypeEnum;\n\n OrderQty?: string;\n\n Price?: string;\n\n Currency!: string;\n\n LeavesQty?: string;\n\n CumQty?: string;\n\n AvgPx?: string;\n\n AvgPxAllIn?: string;\n\n TimeInForce?: string;\n\n LastPx?: string;\n\n LastQty?: string;\n\n LastAmt?: string;\n\n LastFee?: string;\n\n LastFeeCurrency?: string;\n\n CumAmt?: string;\n\n CumFee?: string;\n\n FeeCurrency?: string;\n\n OrdRejReason?: OrdRejReasonEnum;\n\n CxlRejReason?: CxlRejReasonEnum;\n\n DecisionStatus?: DecisionStatusEnum;\n\n PricingParameters?: PricingParameters;\n\n QuoteID?: string;\n\n AmountCurrency?: string;\n\n SessionID?: string;\n\n CancelSessionID?: string;\n\n ExpectedFillPrice?: string;\n\n ExpectedFillQty?: string;\n\n SubAccount?: string;\n\n Strategy?: string;\n\n RFQID?: string;\n\n AllowedSlippage?: string;\n\n Text?: string;\n\n Group?: string;\n\n Parameters?: { [key: string]: string };\n\n summary?: CustomerDealSummary;\n\n CustomerUser?: string;\n\n Workflow?: CustomerWorkflowEnum;\n\n PricingMode?: PricingModeEnum;\n PricingReference?: string | undefined;\n\n InternalOrdRejReason?: string;\n AdminFillPrice?: string;\n DealerAction?: OrderAdminActionEnum;\n InternalText?: string;\n Comments?: string;\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n ExecutionStrategy?: CustomerExecutionStrategyEnum;\n constructor(data: CustomerExecutionReport) {\n Object.assign(this, data);\n }\n}\n\ninterface UseCustomerExecutionReportColumns {\n defaultColumns?: (keyof CustomerExecutionReport | Partial)[];\n}\n\nexport function useCustomerExecutionReportColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseCustomerExecutionReportColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n { field: 'Timestamp', type: 'date', sort: '-' },\n { field: 'ExecType', type: 'text' },\n { field: 'ExecID', type: 'id' },\n { field: 'Counterparty', title: 'Customer', type: 'text' },\n { field: 'Symbol', type: 'security' },\n { field: 'OrderQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'Price', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'OrderID', type: 'id' },\n { field: 'OrdStatus', type: 'orderStatus' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n { field: 'AdminFillPrice', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'AllowedSlippage', type: 'text' },\n { field: 'AvgPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'CancelSessionID', type: 'text' },\n { field: 'ClOrdID', type: 'id' },\n { field: 'Comments', type: 'text' },\n { field: 'CumAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'CumFee', type: 'size', params: { currencyField: 'FeeCurrency' } },\n { field: 'CumQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'MarketAccount', title: 'Customer Market Account', type: 'text' },\n { field: 'CustomerUser', type: 'user' },\n { field: 'CxlRejReason', type: 'text' },\n { field: 'DealerAction', type: 'text' },\n { field: 'DecisionStatus', type: 'text' },\n {\n field: 'ExpectedFillPrice',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n { field: 'ExpectedFillQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'Group', type: 'text' },\n { field: 'InternalOrdRejReason', type: 'text' },\n { field: 'InternalText', type: 'text' },\n { field: 'LastAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'LastFee', type: 'size', params: { currencyField: 'LastFeeCurrency' } },\n { field: 'LastPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'LastQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'LeavesQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'MessageID', type: 'text' },\n { field: 'OrdRejReason', type: 'text' },\n { field: 'OrdType', type: 'text' },\n { field: 'OrigClOrdID', type: 'id' },\n { field: 'Parameters', type: 'text' },\n { field: 'PricingParameters', type: 'text' },\n { field: 'QuoteID', type: 'id' },\n { field: 'RFQID', type: 'id' },\n { field: 'SessionID', type: 'text' },\n { field: 'Side', type: 'side' },\n { field: 'Strategy', type: 'strategy' },\n { field: 'SubAccount', type: 'text' },\n { field: 'SubmitTime', type: 'date' },\n { field: 'Text', type: 'text' },\n { field: 'TimeInForce', type: 'text' },\n { field: 'TransactTime', type: 'date' },\n { field: 'User', type: 'user' },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_CustomerExecutionReport_To_Only_Have_Keys_From_ICustomerExecutionReport = ExpectTrue<\n {\n [K in keyof CustomerExecutionReport & string]: K extends keyof ICustomerExecutionReport ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_ICustomerExecutionReport_To_Be_In_CustomerExecutionReport = ExpectTrue<\n {\n [K in keyof ICustomerExecutionReport & string]: K extends keyof CustomerExecutionReport ? true : K;\n }[Exclude]\n>;\n","import type {\n ICustomerOrderSummary,\n ICustomerOrderSummary4432PerCurrencyFees,\n ICustomerOrderSummary4432PerCurrencyPnL,\n} from './types';\n\nexport class CustomerDealSummary {\n Spread: ICustomerOrderSummary['TargetSpread'];\n\n FilledSpread: ICustomerOrderSummary['ActualSpread'];\n\n PnL: ICustomerOrderSummary4432PerCurrencyPnL[] | undefined;\n\n Fees: ICustomerOrderSummary4432PerCurrencyFees[] | undefined;\n\n SalesCommission: ICustomerOrderSummary['SalesCommission'];\n\n constructor(data: CustomerDealSummary) {\n Object.assign(this, data);\n // Need to reverse the PnL since we expect base to be first, quote second.\n this.PnL = this.PnL?.reverse();\n }\n}\n","import { CustomerDealSummary } from './CustomerOrderSummary';\nimport type {\n CustomerExecutionStrategyEnum,\n CxlRejReasonEnum,\n DecisionStatusEnum,\n ExecTypeEnum,\n ICustomerOrderSummary,\n IMarketViewRequest4146Markets,\n IStrategyParameters,\n OrdRejReasonEnum,\n OrdStatusEnum,\n OrdTypeEnum,\n PricingModeEnum,\n SideEnum,\n TimeInForceEnum,\n} from './types';\n\nexport const isCustomerOrder = (entity: any): entity is CustomerOrder => {\n return entity instanceof CustomerOrder;\n};\n\nexport interface PricingParameters {\n AcceptPriceLeniency: string;\n AcceptTimeLeniency: string;\n EnableSyntheticCounterCurrency: boolean;\n MinMarketDataThrottle: string;\n OrderPriceImprovementRatio: string;\n PriceImprovementRatio: string;\n PricesTimeout: string;\n QuoteTTL: string;\n RFQTTL: string;\n // Either Spread or OfferSpread/BidSpread exists as a Pricing Parameter\n Spread?: string;\n OfferSpread?: string;\n BidSpread?: string;\n PricingMarkets?: IMarketViewRequest4146Markets[];\n}\n\nexport class CustomerOrder {\n static readonly rowID = 'OrderID';\n\n AggressorSide?: SideEnum;\n AmountCurrency!: string;\n AvgPx?: string;\n AvgPxAllIn?: string;\n ClOrdID!: string;\n Counterparty?: string;\n CumAmt!: string;\n\n CumQty!: string;\n /**\n * The currency of the quantity the order was placed with.\n * Note: a currency can be excluded from an order. For example if the order is placed in number of contracts.\n */\n Currency?: string;\n\n CustomerUser?: string;\n ExecID!: string;\n LeavesQty!: string;\n MarketAccount!: string;\n OrdStatus!: OrdStatusEnum;\n OrdType!: OrdTypeEnum;\n OrderID!: string;\n OrderQty!: string;\n Price?: string;\n PricingParameters?: PricingParameters;\n QuoteID?: string;\n RFQID?: string;\n Side!: SideEnum;\n SubmitTime!: string;\n Symbol!: string;\n TimeInForce?: TimeInForceEnum;\n Timestamp?: string;\n TransactTime?: string;\n User?: string;\n CumFee?: string;\n DecisionStatus!: DecisionStatusEnum;\n ExecType?: ExecTypeEnum;\n FeeCurrency?: string;\n Strategy?: string;\n Text?: string;\n InternalText?: string;\n StartTime?: string;\n EndTime?: string;\n OrdRejReason?: OrdRejReasonEnum;\n OrigClOrdID?: string;\n CxlRejReason?: CxlRejReasonEnum;\n Parameters?: Partial;\n summary?: CustomerDealSummary;\n SubAccount?: string;\n Comments?: string;\n Group?: string;\n ExpectedFillPrice?: string;\n ExpectedFillQty?: string;\n AdminFillPrice?: string;\n PricingMode?: PricingModeEnum;\n PricingReference?: string | undefined;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n TargetSpread?: ICustomerOrderSummary['TargetSpread'];\n ActualSpread?: ICustomerOrderSummary['ActualSpread'];\n PerCurrencyPnL?: ICustomerOrderSummary['PerCurrencyPnL'];\n PerCurrencyFees?: ICustomerOrderSummary['PerCurrencyFees'];\n SalesCommission?: ICustomerOrderSummary['SalesCommission'];\n ExecutionStrategy?: CustomerExecutionStrategyEnum;\n\n /**\n * Monitoring blotter displays CustomerOrder objects originating from CUSTOMER_ORDERS subscription, however\n * we would like the rows to contain customer summary specific properties which are extracted from CUSTOMER_ORDER_SUMMARY subscription\n */\n public enrichOrderWithCustomerSummary?(customerOrderSummary?: ICustomerOrderSummary): void {\n if (!customerOrderSummary) {\n return;\n }\n this.TargetSpread = customerOrderSummary.TargetSpread;\n this.ActualSpread = customerOrderSummary.ActualSpread;\n this.PerCurrencyPnL = customerOrderSummary.PerCurrencyPnL;\n this.PerCurrencyFees = customerOrderSummary.PerCurrencyFees;\n this.SalesCommission = customerOrderSummary.SalesCommission;\n this.summary = new CustomerDealSummary({\n Fees: customerOrderSummary.PerCurrencyFees,\n FilledSpread: customerOrderSummary.ActualSpread,\n PnL: customerOrderSummary.PerCurrencyPnL,\n SalesCommission: customerOrderSummary.SalesCommission,\n Spread: customerOrderSummary.TargetSpread,\n });\n }\n\n constructor(data: CustomerOrder) {\n Object.assign(this, data);\n }\n}\n","import { compact } from 'lodash';\nimport { useMemo } from 'react';\nimport type { OrderStatusParams } from '../components';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type { CustomerDealSummary } from './CustomerOrderSummary';\nimport type { QuoteStatusEnum } from './types';\nimport {\n PricingModeEnum,\n type CustomerRiskApprovalStatusEnum,\n type CustomerWorkflowEnum,\n type ICustomerQuote,\n type SideEnum,\n} from './types';\n\nexport const isCustomerQuote = (entity: any): entity is CustomerQuote => {\n return entity instanceof CustomerQuote;\n};\n\nexport class CustomerQuote {\n static readonly rowID = 'RFQID';\n static readonly defaultColumns = [\n 'Side',\n 'Symbol',\n 'OrderQty',\n 'User',\n 'Counterparty',\n 'QuoteStatus',\n 'RFQID',\n ] satisfies (keyof CustomerQuote)[];\n\n AmountCurrency!: string;\n\n BidAmt?: string;\n\n BidPx?: string;\n\n Counterparty!: string;\n\n Currency!: string;\n\n CustomerUser!: string;\n\n EndTime!: string;\n\n OrderQty!: string;\n\n OfferAmt?: string;\n\n OfferPx?: string;\n\n Parameters!: { [key: string]: string | string[] | boolean | undefined };\n\n MarketAccount!: string;\n\n QuoteID!: string;\n\n QuoteReqID!: string;\n\n QuoteStatus!: QuoteStatusEnum;\n\n RFQID!: string;\n\n Side?: SideEnum;\n\n SubmitTime!: string;\n\n Symbol!: string;\n\n Text?: string;\n\n Timestamp!: string;\n\n TradedAmt?: string;\n\n TradedPx?: string;\n\n TradedQty?: string;\n\n TradedSide?: SideEnum;\n\n User?: string;\n\n ValidUntilTime?: string;\n\n ExpectedHedgeOfferPx?: string;\n\n ExpectedHedgeBidPx?: string;\n\n EffectiveBidSpread?: string;\n\n EffectiveOfferSpread?: string;\n\n OrigQuoteReqID!: string;\n\n TransactTime!: string;\n InternalText?: string | undefined;\n InternalQuoteRequestRejectReason?: string | undefined;\n QuoteRequestRejectReason?: string | undefined;\n SubAccount?: string | undefined;\n MessageID?: unknown;\n ReferenceQuoteID?: unknown;\n Group?: string | undefined;\n Comments?: string | undefined;\n InternalMarketErrors?: unknown;\n EventIndicator?: unknown;\n\n PricingMode?: PricingModeEnum;\n\n PricingReference?: string | undefined;\n\n summary?: CustomerDealSummary;\n\n Workflow?: CustomerWorkflowEnum;\n\n BuySideApprovalStatus?: CustomerRiskApprovalStatusEnum;\n SellSideApprovalStatus?: CustomerRiskApprovalStatusEnum;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n constructor(data: CustomerQuote) {\n Object.assign(this, data);\n }\n}\n\ninterface UseCustomerQuoteColumns {\n defaultColumns?: (keyof CustomerQuote | Partial)[];\n source?: 'monitoring' | 'dealer-monitoring';\n enableMakerMarketplaceETFRFQFlow?: boolean;\n}\n\nexport function useCustomerQuoteColumns({\n defaultColumns = EMPTY_ARRAY,\n source = 'dealer-monitoring',\n enableMakerMarketplaceETFRFQFlow = false,\n}: UseCustomerQuoteColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n },\n { field: 'Counterparty', type: 'customer', title: 'Customer' },\n { field: 'MarketAccount', type: 'text', title: 'Account', id: 'marketAccount' },\n {\n field: 'MarketAccount',\n type: 'marketAccountSourceAccountID',\n id: 'customerAccountID',\n hide: true,\n },\n { field: 'RFQID', type: 'id' },\n { field: 'Side', type: 'quoteSide' },\n { field: 'Symbol', type: 'security' },\n { field: 'OrderQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'TradedPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'TradedAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n {\n field: 'QuoteStatus',\n type: 'quoteStatus',\n params: { tooltipField: 'InternalText' } satisfies OrderStatusParams,\n },\n { field: 'QuoteID', type: 'id' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n compact([\n { field: 'User', type: 'user' },\n source === 'monitoring' && { field: 'SubAccount', type: 'subAccount' },\n { field: 'Timestamp', type: 'date' },\n source === 'monitoring' && { field: 'MessageID', type: 'text' },\n { field: 'QuoteReqID', type: 'id' },\n source === 'monitoring' && { field: 'QuoteRequestRejectReason', type: 'text' },\n { field: 'EndTime', type: 'date' },\n { field: 'TradedQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'TradedSide', type: 'side' },\n source === 'monitoring' && { field: 'Group', type: 'text' },\n { field: 'Text', type: 'text' },\n { field: 'Parameters', type: 'text' },\n source === 'monitoring' && { field: 'Comments', type: 'text' },\n {\n field: 'BidPx',\n type: 'price',\n params: {\n assetField: 'Symbol',\n isReferencePrice: (data: CustomerQuote) => data.PricingMode === PricingModeEnum.SpreadToFixing,\n },\n },\n { field: 'BidAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n {\n field: 'OfferPx',\n type: 'price',\n params: {\n assetField: 'Symbol',\n isReferencePrice: (data: CustomerQuote) => data.PricingMode === PricingModeEnum.SpreadToFixing,\n },\n },\n { field: 'OfferAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'ValidUntilTime', type: 'date' },\n source === 'monitoring' && { field: 'ReferenceQuoteID', type: 'text' },\n source === 'monitoring' && { field: 'InternalQuoteRequestRejectReason', type: 'text' },\n { field: 'CustomerUser', type: 'text' },\n { field: 'ExpectedHedgeBidPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'ExpectedHedgeOfferPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'EffectiveBidSpread', type: 'text' },\n enableMakerMarketplaceETFRFQFlow ? { field: 'PricingMode', type: 'text', title: 'Pricing Mode' } : undefined,\n { field: 'EffectiveOfferSpread', type: 'text' },\n { title: 'Allowed Slippage', type: 'text', id: 'allowedSlippage' },\n { field: 'OrigQuoteReqID', type: 'id' },\n { field: 'InternalText', type: 'text' },\n {\n field: 'PricingReference',\n type: 'price',\n params: {\n isReferencePrice: true,\n },\n },\n {\n field: 'FixingDetails.Index',\n title: 'Fixing Index',\n type: 'text',\n },\n {\n field: 'FixingDetails.Fixing',\n title: 'Fixing Price',\n type: 'price',\n params: {\n // TODO fhqvst this should probably be `FixingDetails.Index`\n assetField: 'Symbol',\n },\n },\n ]) satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, [source, enableMakerMarketplaceETFRFQFlow]);\n\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_CustomerQuote_To_Only_Have_Keys_From_ICustomerQuote = ExpectTrue<\n {\n [K in keyof CustomerQuote & string]: K extends keyof ICustomerQuote ? true : K;\n }[Exclude<\n keyof CustomerQuote,\n 'summary' | 'TransactTime' | 'FixingDetails' /* TODO Remove TransactTime from this type, it shouldn't be here */\n >]\n>;\ntype _Expect_All_Keys_In_ICustomerQuote_To_Be_In_CustomerQuote = ExpectTrue<\n {\n [K in keyof ICustomerQuote & string]: K extends keyof CustomerQuote ? true : K;\n }[Exclude]\n>;\n","import Big from 'big.js';\nimport { PnlLookbackEnum, type ProductTypeEnum, ReconStreamStatusEnum } from '../types/types';\nimport { toBigWithDefault } from '../utils';\nimport { WarningSeverity } from './WarningSeverity';\n\nexport class Position {\n AssetType!: ProductTypeEnum;\n\n Asset!: string;\n\n MarketAccount!: string;\n\n SubAccount?: string;\n\n Amount!: string;\n\n AvgCost?: string;\n\n AvgCostCurrency?: string;\n\n RealizedPnL?: string;\n\n UnrealizedPnL?: string;\n\n TotalPnL?: string;\n\n PnLCurrency?: string;\n\n CumFees?: string;\n FeeCurrency?: string;\n\n FundingPnL?: string;\n FundingPnLCurrency?: string;\n UnsettledAmount?: string;\n UnsettledAvgCost?: string;\n UnsettledPnL?: string;\n\n Delta?: string;\n DeltaCurrency?: string;\n\n Gamma?: string;\n\n Vega?: string;\n\n Theta?: string;\n\n Rho?: string;\n\n UnderlyingPrice?: string;\n\n LiquidationPrice?: string;\n\n get elpVsMp() {\n // Defend against nullish and empty strings\n if (!this.Amount || !this.LiquidationPrice || !this.MarkPrice) {\n return undefined;\n }\n\n try {\n return Big(Big(this.LiquidationPrice).div(this.MarkPrice)).minus(1).toFixed();\n } catch (e) {\n return undefined;\n }\n }\n\n LastUpdateTime!: string;\n\n Status!: string;\n\n PositionSource!: string;\n\n OutstandingBuy?: string;\n OutstandingSell?: string;\n\n Expiration?: string;\n\n MarkPrice?: string;\n MarkPriceCurrency?: string;\n UnderlyingQuoteCurrency?: string;\n\n Equivalent?: PositionEquivalent;\n\n ReconStatus?: PositionReconStatus;\n\n get reconWarning(): PositionWarning | undefined {\n if (!this.ReconStatus) {\n return undefined;\n }\n\n const severity = getReconStatusWarningSeverity(this.ReconStatus?.Status);\n\n if (severity == null) {\n return undefined;\n }\n\n return {\n severity,\n asset: this.Asset,\n reconStatus: this.ReconStatus,\n };\n }\n\n get warningSeverity(): WarningSeverity | undefined {\n return this.reconWarning?.severity;\n }\n\n get rowID() {\n return getPositionID(this.PositionSource, this.MarketAccount, this.Asset, this.SubAccount);\n }\n\n PnLLookbacks?: {\n [key in PnlLookbackEnum]?: PositionPnlLookback;\n };\n\n PnLTags?: {\n [key in PnLTagEnum]?: PositionPnlTag;\n };\n\n /** Summation of PnLTags.EndOfDay.TradeUnrealizedPnL and PnLTags.EndOfDay.OpeningUnrealizedPnL */\n get eodTotalPnL() {\n const dayTradePnl = this.PnLTags?.EndOfDay?.TradeUnrealizedPnL;\n const openingPnl = this.PnLTags?.EndOfDay?.OpeningUnrealizedPnL;\n\n // If neither of these properties exist, return undefined as opposed to just defaulting to 0.\n if (dayTradePnl == null && openingPnl == null) {\n return undefined;\n }\n\n const dayTradePnlBig = toBigWithDefault(dayTradePnl, 0);\n const openingPnlBig = toBigWithDefault(openingPnl, 0);\n\n return dayTradePnlBig.plus(openingPnlBig).toFixed();\n }\n\n /** Summation of PnLTags.EndOfDay.Equivalent.TradeUnrealizedPnL and PnLTags.EndOfDay.Equivalent.OpeningUnrealizedPnL */\n get eodTotalPnLEquivalent() {\n const dayTradePnl = this.PnLTags?.EndOfDay?.Equivalent?.TradeUnrealizedPnL;\n const openingPnl = this.PnLTags?.EndOfDay?.Equivalent?.OpeningUnrealizedPnL;\n\n // If neither of these properties exist, return undefined as opposed to just defaulting to 0.\n if (dayTradePnl == null && openingPnl == null) {\n return undefined;\n }\n\n const dayTradePnlBig = toBigWithDefault(dayTradePnl, 0);\n const openingPnlBig = toBigWithDefault(openingPnl, 0);\n\n return dayTradePnlBig.plus(openingPnlBig).toFixed();\n }\n\n constructor(\n data: Omit<\n Position,\n 'reconWarning' | 'warningSeverity' | 'rowID' | 'elpVsMp' | 'eodTotalPnL' | 'eodTotalPnLEquivalent'\n >\n ) {\n // Should be the auto generated interface from ava.xml\n Object.assign(this, data);\n }\n}\n\nexport function getPositionID(source: string, marketAccount: string, asset: string, subAccount?: string) {\n return `${source}-${marketAccount}-${subAccount}-${asset}`;\n}\n\nexport interface PositionEquivalent {\n Currency: string;\n Amount: string;\n ConversionRate?: string;\n AvgCost?: string;\n RealizedPnL?: string;\n UnrealizedPnL?: string;\n AvgCostConversionRate?: string;\n PnLConversionRate?: string;\n OutstandingBuy?: string;\n OutstandingSell?: string;\n Delta?: string;\n CumFees?: string;\n FundingPnL?: string;\n UnsettledAmount?: string;\n UnsettledPnL?: string;\n MarkPrice?: string;\n QuoteConversionRate?: string;\n TotalPnL?: string;\n DeltaConversionRate?: string;\n}\n\nexport interface PositionPnlLookback {\n PnLDelta: string;\n Currency: string;\n OpenTimestamp: string;\n Equivalent: {\n Currency: string;\n PnLDelta: string;\n };\n}\n\nexport interface PositionPnlTag {\n OpenTimestamp: string;\n OpeningPosition: string;\n OpeningPriceMark: string;\n OpeningUnrealizedPnL: string;\n TradePositionDelta: string;\n TradeUnrealizedPnL: string;\n PnLCurrency: string;\n Equivalent?: {\n OpeningPosition: string;\n OpeningUnrealizedPnL: string;\n OpeningPriceMark: string;\n TradePositionDelta: string;\n TradeUnrealizedPnL: string;\n Currency: string;\n };\n}\n\nexport enum PnLTagEnum {\n EndOfDay = 'EndOfDay',\n}\n\nexport function isPnLTagEnum(value: string | undefined): value is PnLTagEnum {\n return value ? (Object.values(PnLTagEnum) as string[]).includes(value) : false;\n}\n\nexport function isPnlLookbackEnum(value: string | undefined): value is PnlLookbackEnum {\n return value ? (Object.values(PnlLookbackEnum) as string[]).includes(value) : false;\n}\n\nexport const PNL_LOOKBACKS = [\n PnlLookbackEnum.Today,\n PnlLookbackEnum.H24,\n PnlLookbackEnum.WeekToDate,\n PnlLookbackEnum.D7,\n PnlLookbackEnum.MonthToDate,\n PnlLookbackEnum.D30,\n PnlLookbackEnum.YearToDate,\n PnlLookbackEnum.D365,\n] as const;\n\n// Might be changed to be just a ReconStatus type that can be placed onto different types like above in the future\n// For now keep unique for Position like this until further clarity\nexport interface PositionReconStatus {\n Revision: number;\n LastMismatchTime: string;\n Status: ReconStreamStatusEnum;\n TotalMismatch: string;\n}\n\nexport interface PositionWarning {\n severity: WarningSeverity;\n asset: string;\n reconStatus: PositionReconStatus;\n}\n\nexport function isPositionWarning(warning: any): warning is PositionWarning {\n return warning != null && 'severity' in warning && 'asset' in warning && 'reconStatus' in warning;\n}\n\nexport function getReconStatusWarningSeverity(reconStatusEnum: ReconStreamStatusEnum): WarningSeverity | undefined {\n switch (reconStatusEnum) {\n case ReconStreamStatusEnum.MarketOffline:\n case ReconStreamStatusEnum.MarketStale:\n return WarningSeverity.MEDIUM;\n case ReconStreamStatusEnum.MatchingSinceLatestMismatch:\n case ReconStreamStatusEnum.LedgerAheadSinceLatestMismatch:\n return WarningSeverity.LOW;\n default:\n return undefined;\n }\n}\n","import { isNil } from 'lodash';\nimport type { RequiredProperties } from '../utils/types';\nimport type { Security } from './Security';\nimport { ProductTypeEnum } from './types';\n\nexport const isFutureSecurity = (security: Security): security is FutureSecurity =>\n security.ProductType === ProductTypeEnum.Future &&\n !isNil(security.SettleValueType) &&\n !isNil(security.Expiration) &&\n !isNil(security.Markets);\n\nexport type FutureSecurity = RequiredProperties;\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY, toBigWithDefault } from '../utils';\nimport type {\n HedgeControlStatusEnum,\n HedgeDecisionEnum,\n IHedgeOrderStatus,\n IStrategyParameters,\n SideEnum,\n} from './types';\n\nexport class HedgeOrderStatus {\n Timestamp!: string;\n Revision!: number;\n InitiatingOrderID!: string;\n HedgeControlStatus!: HedgeControlStatusEnum;\n HedgeDecision?: HedgeDecisionEnum;\n HedgeSymbol!: string;\n OrderSymbol!: string;\n HedgeSide!: SideEnum;\n HedgeStrategy!: string;\n ActiveHedgeOrderID?: string;\n UnhedgedQty!: string;\n CumHedgeQty!: string;\n CumHedgeAmt!: string;\n AvgHedgePx!: string;\n AvgHedgePxAllIn!: string;\n CumHedgeFee!: string;\n FeeCurrency?: string;\n HedgeStrategyParams!: IStrategyParameters;\n Currency?: string;\n AmountCurrency?: string;\n LastDelta?: string;\n Text?: string;\n\n static readonly rowID = 'Revision';\n /** Front-end calculated UnhedgedQty + CumHedgeQty */\n get totalQty() {\n const unhedgedQtyBig = toBigWithDefault(this.UnhedgedQty, 0).abs(); // UI-5316, Currently, the UnhedgedQty number is always negative, which is causing issues in the calculation.\n const cumHedgeQtyBig = toBigWithDefault(this.CumHedgeQty, 0);\n return unhedgedQtyBig.plus(cumHedgeQtyBig).toFixed();\n }\n\n constructor(data: HedgeOrderStatus | IHedgeOrderStatus) {\n Object.assign(this, data);\n }\n}\n\ninterface UseHedgeOrderStatusColumns {\n defaultColumns?: (keyof HedgeOrderStatus | Partial)[];\n}\n\nexport function useHedgeOrderStatusColumns({ defaultColumns = EMPTY_ARRAY }: UseHedgeOrderStatusColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Timestamp',\n type: 'date',\n width: 100,\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'Revision',\n type: 'number',\n },\n {\n field: 'HedgeControlStatus',\n type: 'text',\n },\n {\n field: 'UnhedgedQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'CumHedgeQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'AvgHedgePx',\n type: 'price',\n params: { assetField: 'HedgeSymbol' },\n },\n {\n field: 'HedgeStrategyParams',\n type: 'orderParameters',\n },\n {\n field: 'LastDelta',\n type: 'number',\n },\n {\n field: 'Text',\n type: 'text',\n },\n {\n field: 'HedgeSide',\n type: 'side',\n },\n {\n field: 'HedgeStrategy',\n type: 'strategy',\n },\n {\n field: 'ActiveHedgeOrderID',\n type: 'id',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'InitiatingOrderID',\n type: 'id',\n },\n {\n field: 'HedgeSymbol',\n type: 'security',\n },\n {\n field: 'OrderSymbol',\n type: 'security',\n },\n {\n field: 'CumHedgeAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'AvgHedgePxAllIn',\n type: 'price',\n params: { assetField: 'HedgeSymbol' },\n },\n {\n field: 'CumHedgeFee',\n type: 'size',\n params: { currencyField: 'FeeCurrency' },\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import { MARKET_ACCOUNT_LEDGER_EVENT, SUB_ACCOUNT_LEDGER_EVENT } from '../tokens';\nimport { formattedDate, toBig } from '../utils';\nimport {\n type ExternalTypeEnum,\n type ILedgerEvent,\n type LedgerAccountTypeEnum,\n type LedgerUpdateStatusEnum,\n LedgerUpdateTypeEnum,\n} from './types';\n\nexport class LedgerEvent {\n static MarketAccountStreamName = MARKET_ACCOUNT_LEDGER_EVENT;\n static SubAccountStreamName = SUB_ACCOUNT_LEDGER_EVENT;\n\n TransactTime!: string;\n RequestID?: string;\n\n Type!: LedgerUpdateTypeEnum;\n /** Depending on the Type, AccountName will be either a MarketAccount.Name or a SubAccount.Name */\n AccountName!: string;\n\n AccountID!: number;\n Asset!: string;\n Amount!: string;\n Price!: string;\n PriceCurrency!: string;\n AvgCost!: string;\n AvgCostCurrency!: string;\n Status!: LedgerUpdateStatusEnum;\n Revision!: number;\n Timestamp!: string;\n TradeID?: string;\n ExternalID?: string;\n ResultingAmount!: string;\n AccountType!: LedgerAccountTypeEnum;\n ExternalType!: ExternalTypeEnum;\n Fee!: string;\n FeeCurrency!: string;\n AmountAsset?: string;\n Comments?: string;\n\n get amountAssetWithFallback() {\n return this.AmountAsset ?? this.Asset;\n }\n\n get rowID() {\n return `${this.AccountType}-${this.AccountID}-${this.Asset}-${this.Revision}`;\n }\n\n get dayString() {\n return formattedDate(this.TransactTime, '{yyyy}-{MM}-{dd}');\n }\n\n get hourString() {\n return formattedDate(this.TransactTime, '{yyyy}-{MM}-{dd} {HH}:{mm}');\n }\n\n /** What the amount was before this LedgerEvent */\n get startingAmount() {\n const amountBig = toBig(this.Amount);\n const resultingAmountBig = toBig(this.ResultingAmount);\n if (amountBig == null || resultingAmountBig == null) {\n return undefined;\n }\n\n return resultingAmountBig.minus(amountBig).toFixed();\n }\n\n constructor(data: ILedgerEvent | LedgerEvent) {\n Object.assign(this, data);\n }\n}\n\nconst LEDGER_UPDATE_TYPE_TEXT_MAPPING: { [key in LedgerUpdateTypeEnum]: string } = {\n [LedgerUpdateTypeEnum.Balance]: 'Balance',\n [LedgerUpdateTypeEnum.Trade]: 'Trade',\n [LedgerUpdateTypeEnum.TradingFee]: 'Trading Fee',\n [LedgerUpdateTypeEnum.TradingFeeSet]: 'Trading Fee Set',\n [LedgerUpdateTypeEnum.BalanceDelta]: 'Balance Delta',\n [LedgerUpdateTypeEnum.TradeCancel]: 'Trade Cancel',\n [LedgerUpdateTypeEnum.TradeAmend]: 'Trade Amend',\n [LedgerUpdateTypeEnum.Allocation]: 'Allocation',\n [LedgerUpdateTypeEnum.Unsettled]: 'Unsettled',\n [LedgerUpdateTypeEnum.UnsettledDelta]: 'Unsettled Delta',\n [LedgerUpdateTypeEnum.FundingPnL]: 'Funding PnL',\n [LedgerUpdateTypeEnum.FundingPnLDelta]: 'Funding PnL Delta',\n [LedgerUpdateTypeEnum.RealizedPnL]: 'Realized PnL',\n [LedgerUpdateTypeEnum.RealizedPnLDelta]: 'Realized PnL Delta',\n [LedgerUpdateTypeEnum.ReconAdjustment]: 'Recon Adjustment',\n [LedgerUpdateTypeEnum.Deposit]: 'Deposit',\n [LedgerUpdateTypeEnum.Withdrawal]: 'Withdrawal',\n [LedgerUpdateTypeEnum.TransferFee]: 'Transfer Fee',\n [LedgerUpdateTypeEnum.Delivery]: 'Delivery',\n [LedgerUpdateTypeEnum.StakingReward]: 'Staking Reward',\n};\n\nconst ledgerUpdateTypeEnums = Object.values(LedgerUpdateTypeEnum);\n\nexport function isLedgerUpdateTypeEnum(value: string): value is LedgerUpdateTypeEnum {\n return ledgerUpdateTypeEnums.includes(value);\n}\n\nexport function prettifyLedgerUpdateTypeEnum(type: LedgerUpdateTypeEnum | string): string {\n // we allow the user to pass in a string here just for simplicity. If it happens to not be a ledger update type, just return the passed string as-is\n if (isLedgerUpdateTypeEnum(type)) {\n return LEDGER_UPDATE_TYPE_TEXT_MAPPING[type];\n }\n\n return type;\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type { TermSheetRecipient } from './LendingRelationship';\nimport type { LoanQuoteStatusEnum, LoanQuoteTerminationTypeEnum } from './types';\n\nexport class LoanQuote {\n QuoteStatus!: LoanQuoteStatusEnum;\n\n Timestamp!: string;\n\n NegotiationID!: string;\n\n Rate!: string;\n\n ReqID!: string;\n\n SubmitTime!: string;\n\n Lender!: string;\n\n Borrower!: string;\n\n User!: string;\n\n Owner!: string;\n\n PrincipalCurrency!: string;\n\n CollateralCurrency?: string;\n\n Qty!: string;\n\n CollateralRatio?: string;\n\n ValidationError?: string;\n\n Text?: string;\n\n EndTime?: string;\n\n TerminationTime?: string;\n\n TerminationType?: LoanQuoteTerminationTypeEnum;\n\n Comments?: string;\n\n MinQty?: string;\n\n OrigQuoteReqID!: string;\n\n QuoteReqID!: string;\n\n Revision!: number;\n\n AmendmentCount!: number;\n\n TermSheetRecipients?: TermSheetRecipient[];\n\n EnabledCollateralCurrencies?: { Currency: string }[];\n\n constructor(data: LoanQuote) {\n Object.assign(this, data);\n }\n}\n\ninterface UseLoanQuoteColumns {\n defaultColumns?: (keyof LoanQuote | Partial)[];\n}\n\nexport function useLoanQuoteColumns({ defaultColumns = EMPTY_ARRAY }: UseLoanQuoteColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'QuoteStatus',\n type: 'loanQuoteStatus',\n },\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n sort: '-',\n },\n {\n field: 'NegotiationID',\n type: 'text',\n },\n {\n field: 'Rate',\n type: 'percent',\n },\n {\n field: 'ReqID',\n type: 'text',\n },\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n },\n {\n field: 'Lender',\n type: 'loanParticipant',\n },\n {\n field: 'Borrower',\n type: 'loanParticipant',\n },\n {\n field: 'User',\n type: 'user',\n },\n {\n field: 'Owner',\n type: 'user',\n },\n {\n field: 'PrincipalCurrency',\n type: 'currency',\n },\n {\n field: 'CollateralCurrency',\n type: 'currency',\n },\n {\n field: 'Qty',\n type: 'size',\n params: { currencyField: 'PrincipalCurrency' },\n },\n {\n field: 'CollateralRatio',\n type: 'text',\n },\n {\n field: 'ValidationError',\n type: 'text',\n },\n {\n field: 'Text',\n type: 'text',\n },\n {\n field: 'EndTime',\n type: 'date',\n },\n {\n field: 'TerminationTime',\n type: 'date',\n },\n {\n field: 'TerminationType',\n type: 'text',\n },\n {\n field: 'Comments',\n type: 'text',\n },\n {\n field: 'MinQty',\n type: 'text',\n },\n {\n field: 'OrigQuoteReqID',\n type: 'id',\n },\n {\n field: 'QuoteReqID',\n type: 'id',\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'AmendmentCount',\n type: 'text',\n },\n {\n field: 'TermSheetRecipients',\n type: 'text',\n },\n {\n field: 'EnabledCollateralCurrencies',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import type React from 'react';\n\nimport type { CardViewEnum } from '../tokens/card';\nimport type { ResolutionEnumNoPrefix } from './OrderAnalytic';\nimport type { UnifiedLiquidityEnum } from './types';\n\nexport interface MarketDataCardsContextProps {\n showPlaceholderCards: () => void;\n hidePlaceholderCards: () => void;\n saveCard: (nextCard: MarketDataCardConfig) => void;\n deleteCard: (card: MarketDataCardConfig) => void;\n cardFilter: string;\n setCardFilter: React.Dispatch>;\n isAddingCard: boolean;\n isShowingPlaceholders: boolean;\n}\n\nexport const MarketDataCardState = {\n NEW_CARD: 'NEW_CARD',\n UPDATED_CARD: 'UPDATED_CARD',\n} as const;\nexport interface MarketDataCardConfig {\n id: string;\n symbol?: string;\n view: CardViewEnum;\n state: keyof typeof MarketDataCardState;\n title?: string;\n activeSlideIndex: number;\n availableMarketAccounts: string[];\n selectedMarketAccounts: string[];\n availableMarkets: string[];\n selectedMarkets: string[];\n detailsExpanded?: boolean;\n topOfBookSizeBucket: string;\n sizeBuckets: string[];\n priceIncrement: string;\n unifiedLiquidity?: UnifiedLiquidityEnum;\n alwaysDisplayBestBidOffer?: boolean;\n resolution?: ResolutionEnumNoPrefix;\n orderPresetID?: string;\n}\n\n// For React Drag and Drop External Library with no typings\nexport interface RBDNDCard {\n droppableId: string;\n index: number;\n}\nexport interface RBMoveCardResult {\n source: RBDNDCard;\n destination: RBDNDCard;\n draggableId: string;\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type {\n ExecTypeEnum,\n OrdRejReasonEnum,\n OrdStatusEnum,\n OrdTypeEnum,\n SideEnum,\n TimeInForceEnum,\n TradeStatusEnum,\n} from './types';\n\n// ExecutionReport5000\nexport class MarketExecutionReport {\n static readonly rowID = 'EID';\n static readonly defaultColumns = [\n 'Timestamp',\n 'ExecType',\n 'OrderQty',\n 'Price',\n 'MarketAccount',\n 'ExecID',\n 'EID',\n 'OID',\n 'LastQty',\n 'LastPx',\n 'LastFee',\n 'LastAmt',\n 'AggressorSide',\n ] satisfies (keyof MarketExecutionReport)[];\n\n Timestamp?: string;\n\n MessageID?: string;\n\n Market?: string;\n\n Symbol?: string;\n\n CredentialID?: string;\n\n OrderID?: string;\n\n ClOrdID?: string;\n\n OrigClOrdID?: string;\n\n SubmitTime?: string;\n\n ExecID?: string;\n\n Side?: SideEnum;\n\n TransactTime?: string;\n\n ExecType?: ExecTypeEnum;\n\n OrdStatus?: OrdStatusEnum;\n\n OrderQty?: string;\n\n OrdType?: OrdTypeEnum;\n\n Price?: string;\n\n Currency?: string;\n\n LeavesQty?: string;\n\n CumQty?: string;\n\n AvgPx?: string;\n\n TimeInForce?: TimeInForceEnum;\n\n LastPx?: string;\n\n LastQty?: string;\n\n LastAmt?: string;\n\n LastFee?: string;\n\n CumAmt?: string;\n\n CumFee?: string;\n\n FeeCurrency?: string;\n\n OrdRejReason?: OrdRejReasonEnum;\n\n ClOID?: string;\n\n OID?: string;\n\n EID?: string;\n\n TradeStatus?: TradeStatusEnum;\n\n AggressorSide?: SideEnum;\n\n QID?: string;\n\n AmountCurrency?: string;\n\n ParentOrderID?: string;\n\n RID?: string;\n\n ExpectedFillPrice?: string;\n\n ExpectedFillQty?: string;\n\n MarketAccountID?: string;\n\n MarketAccount?: string;\n\n Text?: string;\n\n constructor(data: MarketExecutionReport) {\n Object.assign(this, data);\n }\n}\n\ninterface UseMarketExecutionReportColumns {\n defaultColumns?: (keyof MarketExecutionReport | Partial)[];\n}\n\nexport function useMarketExecutionReportColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseMarketExecutionReportColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'ExecType',\n type: 'text',\n width: 150,\n },\n {\n field: 'OrderQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'Price',\n type: 'price',\n params: { assetField: 'Symbol' },\n width: 100,\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n {\n field: 'ExecID',\n type: 'id',\n width: 100,\n },\n {\n field: 'EID',\n type: 'text',\n },\n {\n field: 'OID',\n type: 'text',\n },\n {\n field: 'LastQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'LastPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n width: 100,\n },\n {\n field: 'LastFee',\n type: 'size',\n params: { currencyField: 'FeeCurrency' },\n width: 100,\n },\n {\n field: 'LastAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n width: 100,\n },\n {\n field: 'AggressorSide',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'MessageID',\n type: 'text',\n },\n {\n field: 'Market',\n type: 'market',\n },\n {\n field: 'Symbol',\n type: 'security',\n },\n {\n field: 'CredentialID',\n type: 'text',\n },\n {\n field: 'OrderID',\n type: 'id',\n },\n {\n field: 'ClOrdID',\n type: 'id',\n },\n {\n field: 'OrigClOrdID',\n type: 'id',\n },\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'Side',\n type: 'side',\n },\n {\n field: 'TransactTime',\n type: 'date',\n params: { milliseconds: true },\n },\n {\n field: 'OrdStatus',\n type: 'orderStatus',\n },\n {\n field: 'OrdType',\n type: 'text',\n },\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'LeavesQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'CumQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'AvgPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'TimeInForce',\n type: 'text',\n },\n {\n field: 'CumAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'CumFee',\n type: 'size',\n params: { currencyField: 'FeeCurrency' },\n },\n {\n field: 'FeeCurrency',\n type: 'currency',\n },\n {\n field: 'OrdRejReason',\n type: 'text',\n },\n {\n field: 'ClOID',\n type: 'text',\n },\n {\n field: 'TradeStatus',\n type: 'text',\n },\n {\n field: 'QID',\n type: 'text',\n },\n {\n field: 'AmountCurrency',\n type: 'currency',\n },\n {\n field: 'ParentOrderID',\n type: 'id',\n },\n {\n field: 'RID',\n type: 'text',\n },\n {\n field: 'ExpectedFillPrice',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'ExpectedFillQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'MarketAccountID',\n type: 'text',\n },\n {\n field: 'Text',\n type: 'text',\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type { ExecTypeEnum, ITradeCapture, SideEnum, TradeStatusEnum } from './types';\n\n// TradeCapture4046\nexport class MarketTrade {\n static readonly rowID = 'EID';\n static readonly defaultColumns = [\n 'TransactTime',\n 'Side',\n 'Symbol',\n 'Quantity',\n 'Price',\n 'Amount',\n 'Fee',\n 'TradeID',\n 'Market',\n 'OrderID',\n 'TradeStatus',\n ] satisfies (keyof MarketTrade)[];\n\n Timestamp!: string;\n\n Market!: string;\n\n CredentialID!: string;\n\n Symbol!: string;\n\n Currency?: string;\n\n AmountCurrency!: string;\n\n FeeCurrency!: string;\n\n DealtCurrency!: string;\n\n OrderID?: string;\n\n TradeID?: string;\n\n TransactTime!: string;\n\n ExecType!: ExecTypeEnum;\n\n Side!: SideEnum;\n\n Price!: string;\n\n Quantity!: string;\n\n Amount!: string;\n\n Fee?: string;\n\n TradeStatus!: TradeStatusEnum;\n\n OID?: string;\n\n EID?: string;\n\n ClOrdID?: string;\n\n QID?: string;\n\n OrgID?: number;\n\n AggressorSide?: SideEnum;\n MarketAccount?: string;\n ParentService?: unknown;\n MessageID?: unknown;\n\n Attributes?: unknown;\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n TalosFee?: string;\n TalosFeeCurrency?: string;\n\n constructor(data: MarketTrade) {\n Object.assign(this, data);\n }\n}\n\ninterface UseMarketTradeColumns {\n defaultColumns?: (keyof MarketTrade | Partial)[];\n}\n\nexport function useMarketTradeColumns({ defaultColumns = EMPTY_ARRAY }: UseMarketTradeColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n { field: 'TransactTime', type: 'date', sortable: true, sort: '-' },\n { field: 'Symbol', type: 'security' },\n { field: 'Side', type: 'side' },\n { field: 'Quantity', title: 'Filled Quantity', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'Price', title: 'Filled Price', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'Amount', title: 'Filled Counter Amt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'Fee', type: 'size', params: { currencyField: 'FeeCurrency' } },\n { field: 'TradeID', type: 'id' },\n { field: 'MarketAccount', type: 'marketAccount' },\n { field: 'OrderID', type: 'id' },\n { field: 'TradeStatus', type: 'tradeStatus' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n { field: 'AggressorSide', type: 'side' },\n { field: 'Market', type: 'market' },\n { field: 'ClOrdID', type: 'id' },\n { field: 'QID', type: 'text' },\n { field: 'OID', type: 'text' },\n { field: 'EID', type: 'text' },\n { field: 'Timestamp', type: 'date' },\n { field: 'ExecType', type: 'text' },\n { field: 'CredentialID', type: 'text' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_MarketTrade_To_Only_Have_Keys_From_ITradeCapture = ExpectTrue<\n {\n [K in keyof MarketTrade & string]: K extends keyof ITradeCapture ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_ITradeCapture_To_Be_In_MarketTrade = ExpectTrue<\n {\n [K in keyof ITradeCapture & string]: K extends keyof MarketTrade ? true : K;\n }[Exclude]\n>;\n","import { isNil } from 'lodash';\nimport type { RequiredProperties } from '../utils/types';\nimport type { Security } from './Security';\nimport { ProductTypeEnum } from './types';\n\nexport const isOptionSecurity = (security: Security | undefined): security is OptionSecurity =>\n !!security &&\n security.ProductType === ProductTypeEnum.Option &&\n !isNil(security.Expiration) &&\n !isNil(security.StrikePrice) &&\n //!isNil(security.UnderlyingSymbol) &&\n // TODO(robertz): Add Security.UnderlyingQuoteCurrency\n //!isNil(security.UnderlyingQuoteCurrency) &&\n !isNil(security.QuoteCurrency) &&\n !isNil(security.BaseCurrency) &&\n !isNil(security.OptionType);\n\nexport type OptionSecurity = RequiredProperties<\n Security,\n 'Expiration' | 'StrikePrice' | 'OptionType' /*| 'UnderlyingSymbol' /* | 'UnderlyingQuoteCurrency'*/\n>;\n\nexport type RepresentativeOptionSecurity = Pick;\n","import { isNil } from 'lodash';\nimport type { RequiredProperties } from '../utils/types';\nimport type { Security } from './Security';\nimport { ProductTypeEnum } from './types';\n\nexport const isPerpSecurity = (security: Security): security is PerpSecurity =>\n security.ProductType === ProductTypeEnum.PerpetualSwap &&\n !isNil(security.SettleValueType) &&\n !isNil(security.Markets);\n\nexport type PerpSecurity = RequiredProperties;\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { toBigWithDefault } from '../utils';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport {\n PricingModeEnum,\n QuoteStatusEnum,\n type IAllocation,\n type IOMSQuote,\n type IOMSQuote4401Aggregations,\n type OrdRejReasonEnum,\n type SideEnum,\n} from './types';\n\nexport function isQuote(entity: any): entity is Quote {\n return entity instanceof Quote;\n}\n\nexport interface QuoteMarket {\n BidAmt: string;\n BidPx: string;\n FirstTransactTime: string;\n LegIndexes: { LegIndex: number }[];\n Market: string;\n MarketAccount: string;\n OfferAmt: string;\n OfferPx: string;\n QuoteStatus: string;\n TradedAmt?: string;\n TradedPx?: string;\n TradedQty?: string;\n TradedSide?: SideEnum;\n TransactTime: string;\n Timestamp?: string;\n Text?: string;\n ValidUntilTime: string;\n LimitBidPx?: string;\n LimitOfferPx?: string;\n QID?: string;\n}\n\n// OMSQuote4401\nexport class Quote {\n static readonly rowID = 'RFQID';\n static readonly defaultColumns = [\n 'SubmitTime',\n 'RFQID',\n 'Side',\n 'Symbol',\n 'OrderQty',\n 'Markets',\n 'SubAccount',\n 'User',\n 'QuoteStatus',\n 'ParentRFQID',\n 'QuoteID',\n ] satisfies (keyof Quote)[];\n\n Timestamp!: string;\n\n MessageID?: string;\n\n User!: string;\n\n Symbol!: string;\n\n Currency!: string;\n\n RFQID!: string;\n\n QuoteReqID!: string;\n\n QuoteStatus!: QuoteStatusEnum;\n\n QuoteID!: string;\n\n QuoteRequestRejectReason?: OrdRejReasonEnum;\n\n SubmitTime!: string;\n\n OrderQty?: string;\n\n AmountCurrency?: string;\n\n FirstTransactTime?: string;\n\n EndTime?: string;\n\n SubAccount?: string;\n\n Side?: SideEnum;\n\n TradedPx?: string;\n\n TradedQty?: string;\n\n TradedAmt?: string;\n\n TradedSide?: SideEnum;\n\n ParentRFQID?: string;\n\n TransactTime?: string;\n\n EventIndicator?: string;\n\n Markets!: QuoteMarket[];\n\n Legs?: QuoteLeg[];\n\n Text?: string;\n\n Group?: string;\n\n Parameters?: { [key: string]: string };\n\n Allocation?: IAllocation;\n\n OrgID?: string;\n\n Comments?: string;\n\n Aggregations?: IOMSQuote4401Aggregations[];\n\n PricingMode?: PricingModeEnum;\n\n PricingReference?: string;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n get isTerminal() {\n return [\n QuoteStatusEnum.Canceled,\n QuoteStatusEnum.Rejected,\n QuoteStatusEnum.Filled,\n QuoteStatusEnum.PendingFix,\n ].includes(this.QuoteStatus);\n }\n\n get isPending() {\n return [QuoteStatusEnum.PendingCancel, QuoteStatusEnum.PendingNew, QuoteStatusEnum.PendingFill].includes(\n this.QuoteStatus\n );\n }\n\n /**\n * This is a heuristic to determine whether a Quote is part of a sales RFQ.\n *\n * Unfortunately, we can't definitively tell whether a Quote is part of a sales RFQ,\n * or if it's a regular RFQ that belongs to a care order, just by looking at the Quote itself.\n *\n * Rather we'd need to try to fetch a care order with OrderID == quote.ParentRFQID, and if it exists,\n * only then do we know that this quote was in fact not a sales RFQ.\n */\n get isProbablySalesRFQ() {\n return this.ParentRFQID != null && this.PricingMode !== PricingModeEnum.SpreadToFixing;\n }\n\n get tradedMarket(): QuoteMarket | undefined {\n return this.Markets.find(m => toBigWithDefault(m.TradedQty, 0).gt(0));\n }\n\n get tradedMarkets(): string[] {\n const market = this.tradedMarket;\n return market == null ? [] : [market.Market];\n }\n\n get selectedMarkets(): string[] {\n return this.Markets.map(market => market.Market);\n }\n\n get remainQty(): string {\n return toBigWithDefault(this.OrderQty, 0)\n .minus(this.TradedQty ?? 0)\n .toFixed();\n }\n\n constructor(data: Partial | Partial) {\n Object.assign(this, data);\n }\n}\n\ninterface UseQuoteColumns {\n defaultColumns?: (keyof Quote | Partial)[];\n}\n\nexport function useQuoteColumns({ defaultColumns = EMPTY_ARRAY }: UseQuoteColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n sort: '-',\n },\n {\n field: 'RFQID',\n type: 'id',\n },\n {\n field: 'Side',\n type: 'quoteSide',\n },\n {\n field: 'Symbol',\n type: 'security',\n },\n {\n field: 'OrderQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'Markets',\n type: 'quoteMarkets',\n },\n {\n field: 'SubAccount',\n type: 'text',\n },\n {\n field: 'User',\n type: 'user',\n },\n {\n field: 'QuoteStatus',\n type: 'quoteStatus',\n },\n {\n field: 'ParentRFQID',\n type: 'id',\n },\n {\n field: 'QuoteID',\n type: 'id',\n },\n { field: 'PricingMode', type: 'text', title: 'Pricing Mode' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'Timestamp',\n type: 'date',\n },\n {\n field: 'MessageID',\n type: 'text',\n },\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'QuoteReqID',\n type: 'id',\n },\n {\n field: 'QuoteRequestRejectReason',\n type: 'text',\n },\n {\n field: 'AmountCurrency',\n type: 'currency',\n },\n {\n field: 'FirstTransactTime',\n type: 'date',\n },\n {\n field: 'EndTime',\n type: 'date',\n },\n {\n field: 'TradedPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'TradedQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'TradedAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'TradedSide',\n type: 'side',\n },\n { field: 'tradedMarkets', type: 'markets', title: 'Traded Markets', sortable: true },\n {\n field: 'TransactTime',\n type: 'date',\n },\n {\n field: 'EventIndicator',\n type: 'text',\n },\n {\n field: 'Legs',\n type: 'text',\n },\n {\n field: 'Text',\n type: 'text',\n },\n {\n field: 'Group',\n type: 'text',\n },\n {\n field: 'Parameters',\n type: 'text',\n },\n {\n field: 'Allocation',\n type: 'text',\n },\n {\n field: 'PricingReference',\n type: 'price',\n hide: true,\n params: {\n isReferencePrice: true,\n },\n },\n {\n field: 'FixingDetails.Index',\n title: 'Fixing Index',\n type: 'text',\n },\n {\n field: 'FixingDetails.Fixing',\n title: 'Fixing Price',\n type: 'price',\n params: {\n // TODO fhqvst this should probably be `FixingDetails.Index`\n assetField: 'Symbol',\n },\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [...defaultVisibleColumns.values(), ...defaultHiddenColumns.values()] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\nexport interface QuoteLeg {\n Market: string;\n Symbol: string;\n BidQty: string;\n OfferQty: string;\n Currency: string;\n AmountCurrency: string;\n QuoteStatus: string;\n QuoteRequestRejectReason: string;\n MarketAccount: string;\n Text: string;\n}\n","import Big from 'big.js';\nimport { addMilliseconds, differenceInMilliseconds, subMilliseconds } from 'date-fns';\nimport { parseDate, toBig } from '../utils';\nimport { ReconResolutionEnum, ReconStateEnum } from './types';\n\nexport const ReconResolutionEnumLabels = {\n [ReconResolutionEnum.MissedFees]: 'Missed Fees',\n [ReconResolutionEnum.MissedTrade]: 'Missed Trade',\n [ReconResolutionEnum.MissedTransfer]: 'Missed Transfer',\n [ReconResolutionEnum.Unknown]: 'Unknown',\n [ReconResolutionEnum.BelowThreshold]: 'Below Threshold',\n [ReconResolutionEnum.InitialPosition]: 'Initial Position',\n};\n\nexport const ReconStateEnumLabels = {\n [ReconStateEnum.PendingReview]: 'Pending Review',\n [ReconStateEnum.ManualResolved]: 'Resolved',\n [ReconStateEnum.AutoResolved]: 'Auto Resolved',\n [ReconStateEnum.Ignored]: 'Ignored',\n};\n\n// either 5s or 20% is what we're going for in the buffering\nconst MIN_TIME_BUFFER_MS = 5000; // 5s\nconst RELATIVE_TIME_BUFFER_PCT = 0.2; // 20%\n\nexport class ReconMismatch {\n ID!: string;\n\n Asset!: string;\n\n MarketAccount!: string;\n\n MissingDelta!: string;\n\n ResultAmount!: string;\n\n StartAmount!: string;\n\n EventsDelta!: string;\n\n StartTime!: string;\n\n EndTime!: string;\n\n State!: ReconStateEnum;\n\n Resolution!: ReconResolutionEnum;\n\n Comments!: string;\n\n private startDate: Date;\n private endDate: Date;\n\n /** Returns the time in ms between the StartTime and EndTime */\n get msBetweenStartTimeEndTime(): number {\n return differenceInMilliseconds(this.startDate, this.endDate);\n }\n\n /**\n * Returns a time buffer which can be applied when working with the StartTime and EndTime for some margin of safety.\n */\n get timeBuffer(): number {\n return Math.max(MIN_TIME_BUFFER_MS, this.msBetweenStartTimeEndTime * RELATIVE_TIME_BUFFER_PCT);\n }\n\n /**\n * Returns a buffered StartTime, as in slightly earlier StartTime, which can be used to make certain requests with a greater margin of safety.\n */\n get bufferedStartTime(): Date {\n return subMilliseconds(this.startDate, this.timeBuffer);\n }\n\n /**\n * Returns a buffered EndTime, as in slightly later EndTime, which can be used to make certain requests with a greater margin of safety.\n */\n get bufferedEndTime(): Date {\n return addMilliseconds(this.endDate, this.timeBuffer);\n }\n\n get resolvable(): boolean {\n return this.State === ReconStateEnum.PendingReview;\n }\n\n get rowID() {\n return `${this.ID}`;\n }\n get sortKey() {\n return `${this.MarketAccount}-${this.Asset}`;\n }\n constructor(data: ReconMismatch) {\n // Should be the auto generated interface from ava.xml\n Object.assign(this, data);\n this.startDate = parseDate(data.StartTime);\n this.endDate = parseDate(data.EndTime);\n }\n}\n\n/**\n * Given an array of recon statuses, reduces them to either one status if they are all are the same, \"No State\" if\n * the reconStatuses array length is 0, or \"Mixed States\" if theres a mix of states in the array.\n */\nexport function reduceReconStatuses(reconStatuses: ReconStateEnum[]): ReconStateEnum | 'Mixed States' | 'No State' {\n if (reconStatuses.length === 0) {\n return 'No State';\n }\n\n if (reconStatuses.length === 1) {\n return reconStatuses[0];\n }\n\n const [first, ...rest] = reconStatuses;\n const allStatusesEqual = rest.every(status => status === first);\n return allStatusesEqual ? first : 'Mixed States';\n}\n\n/**\n * Given an array of recon mismatches, gets you the lowest StartTime and highest EndTime across all the mismatches.\n *\n * If the mismatches array length is 0, undefined is returned.\n */\nexport function reduceReconMismatchStartAndEndTimes(reconMismatches: ReconMismatch[]):\n | {\n StartTime: Date;\n EndTime: Date;\n }\n | undefined {\n if (reconMismatches.length === 0) {\n return undefined;\n }\n\n return {\n StartTime: reconMismatches.map(r => new Date(r.StartTime)).sort()[0],\n EndTime: reconMismatches\n .map(r => new Date(r.EndTime))\n .sort()\n .reverse()[0],\n };\n}\n\n/**\n * Given an array of recon mismatches, reduces the mismatches to one amount per currency.\n *\n * For each currency, we create an aggregate mismatch by summing all the amounts of mismatches within that currency.\n */\nexport function reduceReconMismatchAmounts(reconMismatches: ReconMismatch[]): { amount: Big; asset: string }[] {\n const amountsByCurrency = new Map();\n for (const mismatch of reconMismatches) {\n const bigAmount = toBig(mismatch.MissingDelta);\n if (!bigAmount) {\n continue;\n }\n const existingBigAmount = amountsByCurrency.get(mismatch.Asset) ?? Big(0);\n amountsByCurrency.set(mismatch.Asset, existingBigAmount.plus(bigAmount));\n }\n\n return [...amountsByCurrency.entries()].map(([asset, amount]) => ({ asset, amount: amount }));\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport { ReconStreamStatusEnum, type UpdateActionEnum } from './types';\n\nexport const ReconStreamStatusEnumLabels = {\n [ReconStreamStatusEnum.Unknown]: 'Unknown',\n [ReconStreamStatusEnum.Matching]: 'Matching',\n [ReconStreamStatusEnum.LedgerAhead]: 'Ledger Ahead',\n [ReconStreamStatusEnum.MatchingSinceLatestMismatch]: 'Reconciliation Mismatch',\n [ReconStreamStatusEnum.LedgerAheadSinceLatestMismatch]: 'Reconciliation Mismatch',\n [ReconStreamStatusEnum.MarketStale]: 'Market Stale',\n [ReconStreamStatusEnum.MarketOffline]: 'Market Offline',\n};\n\nexport class ReconStatus {\n MarketAccount!: string;\n\n Asset!: string;\n\n TotalMismatch!: string;\n\n LastMismatchTime!: string;\n\n Status!: ReconStreamStatusEnum;\n\n Revision!: number;\n\n UpdateAction?: UpdateActionEnum;\n\n get rowID() {\n return `${this.MarketAccount}-${this.Asset}`;\n }\n get sortKey() {\n return `${this.MarketAccount}-${this.Asset}`;\n }\n constructor(data: ReconStatus) {\n // Should be the auto generated interface from ava.xml\n Object.assign(this, data);\n }\n}\n\ninterface UseReconStatusColumns {\n defaultColumns?: (keyof ReconStatus | Partial)[];\n}\n\nexport function useReconStatusColumns({ defaultColumns = EMPTY_ARRAY }: UseReconStatusColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n sortable: true,\n rowGroup: true,\n },\n {\n field: 'Asset',\n type: 'asset',\n sortable: true,\n params: { colorful: true },\n },\n {\n field: 'TotalMismatch',\n type: 'size',\n sortable: true,\n params: { currencyField: 'Asset', highlightNegative: true },\n },\n {\n field: 'LastMismatchTime',\n type: 'date',\n sortable: true,\n },\n {\n field: 'Status',\n type: 'text',\n sortable: true,\n params: { getLabel: (item: string) => ReconStreamStatusEnumLabels[item as ReconStreamStatusEnum] },\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'UpdateAction',\n type: 'text',\n },\n {\n field: 'rowID',\n type: 'text',\n },\n {\n field: 'sortKey',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const columnDefinitions = useMemo(() => {\n return new Map(\n ([...defaultVisibleColumns.values()] satisfies ColumnDef[] as Column[]).map(c => [\n getAgGridColId(c),\n c,\n ])\n );\n }, [defaultVisibleColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import {\n ModeEnum,\n ProductTypeEnum,\n SettleValueTypeEnum,\n type FeeModeEnum,\n type ISecurity,\n type InstrumentCompositionEnum,\n type LegDirectionEnum,\n type OptionTypeEnum,\n type SyntheticProductTypeEnum,\n} from './types';\n\nexport interface MultilegMarketDetails {\n Market: string;\n MarketAccount: string;\n}\n\nexport interface Security {\n Timestamp: string;\n Symbol: string;\n MinAmtIncrement?: string;\n MinPriceIncrement: string;\n MinSizeIncrement: string;\n MinimumSize: string;\n MaximumSize: string;\n MinimumAmount?: string;\n QuoteCurrency: string;\n BaseCurrency: string;\n DefaultPriceIncrement: string;\n DefaultSizeIncrement: string;\n PriceDisplaySpec: string;\n SizeDisplaySpec: string;\n NormalSize: string;\n ProductType: ProductTypeEnum;\n PositionCurrency?: string;\n SettlementCurrency: string;\n SettleValueType?: SettleValueTypeEnum;\n NotionalMultiplier: string;\n DisplaySymbol: string;\n Description: string;\n Markets?: string[];\n Expiration?: string;\n UnderlyingQuoteCurrency?: ISecurity['UnderlyingQuoteCurrency'];\n UnderlyingSymbol?: ISecurity['UnderlyingSymbol'];\n UnderlyingCode?: string;\n OptionType?: OptionTypeEnum;\n StrikePrice?: string;\n Mode?: ModeEnum;\n DefaultPricingRuleMode?: ModeEnum;\n Rank?: number;\n Composition?: InstrumentCompositionEnum;\n EndTime?: string;\n SupportedPricingModes?: {\n ImpliedVolatility?: boolean;\n UnderlyingQuoteCurrency?: boolean;\n };\n // Generated locally to help with autocompletes\n searchSymbol?: string;\n MultilegDetails?: {\n FeeMode: FeeModeEnum;\n SyntheticProductType: SyntheticProductTypeEnum;\n MaxMarketDataDepth: number;\n Legs: {\n Direction: LegDirectionEnum;\n Index: number;\n Markets?: MultilegMarketDetails[];\n Symbol: string;\n }[];\n Parameters: {\n LegParams: (Record & {\n Initiating: boolean;\n })[];\n };\n };\n Legs?: {\n Direction: LegDirectionEnum;\n Symbol: string;\n }[];\n}\n\nexport const EMPTY_SECURITY: Security & { SizeBuckets: unknown[] } = {\n Timestamp: '',\n Symbol: '',\n MinPriceIncrement: '',\n MinSizeIncrement: '',\n MinimumSize: '',\n MaximumSize: '',\n QuoteCurrency: '',\n BaseCurrency: '',\n DefaultPriceIncrement: '',\n DefaultSizeIncrement: '',\n PriceDisplaySpec: '',\n SizeDisplaySpec: '',\n NormalSize: '',\n ProductType: ProductTypeEnum.Spot,\n PositionCurrency: '',\n SettlementCurrency: '',\n SettleValueType: SettleValueTypeEnum.Regular,\n NotionalMultiplier: '',\n DisplaySymbol: '',\n Description: '',\n SizeBuckets: [],\n Markets: [],\n Expiration: '',\n Mode: ModeEnum.Enabled,\n DefaultPricingRuleMode: ModeEnum.Enabled,\n};\n\n// Mirrors the backend API\nexport interface MultilegModel {\n Symbol: string;\n Description: string;\n DisplaySymbol: string;\n ProductType: ProductTypeEnum;\n SyntheticProductType: SyntheticProductTypeEnum;\n MinSizeIncrement: string;\n MinPriceIncrement: string;\n MaxMarketDataDepth: number;\n FeeMode?: FeeModeEnum;\n ReqLegs: {\n Symbol: string;\n Markets: string[];\n }[];\n Parameters: {\n LegParams: {\n Initiating: boolean;\n }[];\n };\n}\n","import { ThresholdTypeEnum, type ModeEnum, type PositionSideTypeEnum, type UpdateActionEnum } from './types';\n\nexport interface SubAccountWindowLimit {\n Timestamp: string;\n LimitID: string;\n Direction: PositionSideTypeEnum;\n ThresholdType: ThresholdTypeEnum;\n ThresholdValue: string;\n WindowDuration: string;\n ThresholdAsset?: string;\n SubAccount?: string;\n MatchAsset?: string;\n MatchUser?: string;\n Mode: ModeEnum;\n UpdateAction?: UpdateActionEnum;\n Revision: number;\n UpdateUser: string;\n Description?: string;\n}\n\nexport function prettifyThresholdTypeEnum(thresholdType: ThresholdTypeEnum): string {\n switch (thresholdType) {\n case ThresholdTypeEnum.NewOrderCount:\n return 'New Order Count';\n case ThresholdTypeEnum.NewOrderVolume:\n return 'New Order Volume';\n case ThresholdTypeEnum.TotalActiveVolume:\n return 'Total Active Volume';\n default:\n return thresholdType;\n }\n}\n\nexport function getThresholdTypeDescription(thresholdType: ThresholdTypeEnum): string {\n switch (thresholdType) {\n case ThresholdTypeEnum.NewOrderCount:\n return 'New Order Count - limits the number of new orders that can be submitted within a specific rolling look-back period.';\n case ThresholdTypeEnum.NewOrderVolume:\n return 'New Order Volume - limits total volume of new orders that can be submitted within a specific rolling look-back period.';\n case ThresholdTypeEnum.TotalActiveVolume:\n return 'Total Active Volume - limits combined volume of new orders, existing open orders, and filled orders within a specific rolling look-back period.';\n default:\n return '';\n }\n}\n","import { isObject } from 'lodash';\nimport type { UpdateActionEnum } from './types';\n\nexport interface WebsocketError {\n code: number;\n msg: string;\n}\n\nexport interface ErrorSubscriptionResponse {\n reqid?: number;\n type: 'error';\n ts: string;\n seq?: number;\n error?: WebsocketError;\n}\n\nexport const isErrorSubscriptionResponse = (res: unknown): res is ErrorSubscriptionResponse => {\n return isObject(res) && 'type' in res && res.type === 'error' && 'ts' in res;\n};\n\nexport interface SubscriptionResponse {\n reqid?: number;\n type: TType;\n tag?: string;\n ts: string;\n initial?: boolean;\n action?: UpdateActionEnum;\n // note: data will be undefined if this subscription is not supported by an older backend!\n // we should change this to \"data?\" just as reminder to developers to think about and handle this possibility\n data: TData[];\n seq?: number;\n next?: string;\n page?: boolean;\n error?: WebsocketError;\n}\n\n/**\n * A SubscriptionResponse type which only requires you to provide the minimal necessary fields; namely data.\n */\nexport type MinimalSubscriptionResponse = Partial<\n SubscriptionResponse\n> &\n Pick, 'data'>;\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport {\n TradeSourceEnum,\n type ExecTypeEnum,\n type IAllocation,\n type PricingModeEnum,\n type SideEnum,\n type TradeActionEnum,\n type TradeStatusEnum,\n} from './types';\n\n// OMSTradeCapture4211\nexport class Trade {\n static readonly rowID = 'TradeID';\n /** @deprecated Use containers/Blotters/Trades/index.tsx DEFAULT_TRADE_COLUMNS instead */\n static readonly defaultColumns: (keyof Trade)[] = [\n 'TransactTime',\n 'Side',\n 'Symbol',\n 'Quantity',\n 'Price',\n 'Fee',\n 'PriceAllIn',\n 'Amount',\n 'SubAccount',\n 'TradeID',\n 'MarketAccount',\n 'TradeStatus',\n 'OrderID',\n 'EID',\n 'AggressorSide',\n ];\n\n TradeID!: string;\n\n OrderID!: string;\n\n Symbol!: string;\n\n Quantity!: string;\n\n Market!: any;\n\n Amount!: string;\n\n Fee?: string;\n\n User!: string;\n\n Timestamp!: string;\n\n DealtCurrency?: string;\n\n MarketTradeID?: string;\n\n TalosFee?: string;\n\n TalosFeeCurrency?: string;\n\n Price?: string;\n\n PriceAllIn?: string;\n\n AllocID?: string;\n\n MessageID?: string;\n\n CredentialID?: string;\n\n TransactTime!: string;\n\n ExecType?: ExecTypeEnum;\n\n Currency?: string;\n\n AmountCurrency?: string;\n\n FeeCurrency?: string;\n\n TradeStatus?: TradeStatusEnum;\n\n Side?: SideEnum;\n\n AggressorSide?: SideEnum;\n\n OID?: string;\n\n EID?: string;\n\n QuoteID?: string;\n\n RFQID?: string;\n\n Group?: string;\n\n SubAccount?: string;\n\n Counterparty?: string;\n\n Comments?: string;\n\n ParentTradeID?: string;\n\n TradeSource?: TradeSourceEnum;\n\n TradeAction?: TradeActionEnum;\n\n Revision?: string;\n\n UpdateUser?: string;\n\n MarketAccount!: string;\n\n MarketAccountID?: string;\n\n Allocation?: IAllocation;\n\n Attributes?: {\n TxHash?: string;\n };\n\n PricingReference?: string;\n\n PricingMode?: PricingModeEnum;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n get isManualBookedTrade() {\n return this.TradeSource === TradeSourceEnum.User;\n }\n\n get isOrphanTrade() {\n return this.OrderID == null;\n }\n\n /** True if the OrderID on the Trade is actually a CustomerOrderID */\n get isOrderIDCustomerOrderID() {\n return this.Market === 'dealer';\n }\n\n constructor(data: Trade) {\n Object.assign(this, data);\n }\n}\n\ninterface UseTradeColumns {\n defaultColumns?: (keyof Trade | Partial)[];\n}\n\nexport function useTradeColumns({ defaultColumns = EMPTY_ARRAY }: UseTradeColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'TransactTime',\n type: 'date',\n width: 140,\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'Side',\n type: 'side',\n sortable: true,\n },\n {\n field: 'Symbol',\n type: 'security',\n sortable: true,\n },\n {\n field: 'Quantity',\n type: 'size',\n title: 'Filled Quantity',\n sortable: true,\n params: { currencyField: 'Currency' },\n width: 120,\n },\n {\n field: 'Price',\n type: 'price',\n title: 'Filled Price',\n sortable: true,\n params: { assetField: 'Symbol' },\n width: 120,\n },\n {\n field: 'Fee',\n type: 'size',\n sortable: true,\n params: { currencyField: 'FeeCurrency' },\n width: 80,\n },\n {\n field: 'PriceAllIn',\n type: 'price',\n title: 'Filled Price All-In',\n sortable: true,\n params: { assetField: 'Symbol' },\n },\n {\n field: 'Amount',\n type: 'size',\n title: 'Filled Counter Amt.',\n sortable: true,\n params: { currencyField: 'AmountCurrency' },\n width: 120,\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n sortable: true,\n width: 100,\n },\n {\n field: 'AggressorSide',\n type: 'side',\n sortable: true,\n minWidth: 150,\n },\n {\n field: 'SubAccount',\n type: 'subAccount',\n title: 'Sub Account(s)',\n sortable: true,\n },\n {\n field: 'TradeID',\n type: 'id',\n sortable: true,\n },\n {\n field: 'TradeStatus',\n type: 'tradeStatus',\n sortable: true,\n },\n {\n field: 'OrderID',\n type: 'id',\n },\n {\n field: 'User',\n type: 'user',\n sortable: true,\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'Market',\n type: 'market',\n sortable: true,\n },\n {\n field: 'EID',\n type: 'text',\n },\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'DealtCurrency',\n type: 'text',\n },\n {\n field: 'MarketTradeID',\n type: 'text',\n },\n {\n field: 'TalosFee',\n type: 'size',\n },\n {\n field: 'TalosFeeCurrency',\n type: 'currency',\n },\n {\n field: 'AllocID',\n type: 'text',\n },\n {\n field: 'Currency',\n type: 'currency',\n sortable: true,\n },\n {\n field: 'AmountCurrency',\n type: 'currency',\n },\n {\n field: 'FeeCurrency',\n type: 'currency',\n },\n {\n field: 'OID',\n type: 'text',\n },\n {\n field: 'QuoteID',\n type: 'id',\n },\n {\n field: 'RFQID',\n type: 'id',\n },\n {\n field: 'Group',\n type: 'text',\n sortable: true,\n },\n {\n field: 'Counterparty',\n type: 'text',\n sortable: true,\n },\n {\n field: 'Comments',\n type: 'text',\n sortable: true,\n },\n {\n field: 'ParentTradeID',\n type: 'id',\n },\n {\n field: 'TradeSource',\n type: 'text',\n },\n {\n field: 'TradeAction',\n type: 'text',\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'UpdateUser',\n type: 'user',\n sortable: true,\n },\n {\n field: 'MarketAccountID',\n type: 'text',\n },\n {\n field: 'Allocation',\n type: 'text',\n },\n { field: 'Attributes.TxHash', title: 'TxHash', type: 'text', hide: true },\n {\n field: 'PricingReference',\n type: 'price',\n hide: true,\n params: {\n isReferencePrice: true,\n },\n },\n {\n field: 'FixingDetails.Index',\n title: 'Fixing Index',\n type: 'text',\n },\n {\n field: 'FixingDetails.Fixing',\n title: 'Fixing Price',\n type: 'price',\n params: {\n // TODO fhqvst this should probably be `FixingDetails.Index`\n assetField: 'Symbol',\n },\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [...defaultVisibleColumns.values(), ...defaultHiddenColumns.values()] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import type { MarketAccount } from '../contexts';\nimport { TRANSFER } from '../tokens';\nimport { toBig, truncateBlockchainAddress } from '../utils';\nimport { type IMessageID, type ITransfer, TransferStatusEnum } from './types';\n\nconst TERMINAL_TRANSFER_STATES = [TransferStatusEnum.Completed, TransferStatusEnum.Rejected];\nconst TERMINAL_TRANSFER_STATES_SET = new Set(TERMINAL_TRANSFER_STATES);\n\nexport class Transfer {\n public static StreamName = TRANSFER;\n\n TransferID!: string;\n Market!: string;\n OwnerAccountID!: number;\n Amount!: string;\n Currency!: string;\n Status!: TransferStatusEnum;\n Timestamp!: string;\n TransactTime!: string;\n CredentialID!: number;\n ClientID!: string;\n User!: string;\n SubmitTime!: string;\n FromMarketAccountID!: number;\n ToMarketAccountID!: number;\n EffectiveDate?: string;\n ChainCurrencySymbol?: string;\n FeeAmount?: string;\n FeeCurrency?: string;\n OrgID!: number;\n ParentTransactionID?: string;\n MarketTransferStatus?: string;\n MarketTransferID?: string;\n OwnerSourceAccountID?: string;\n FromSourceAccountID?: string;\n ToSourceAccountID?: string;\n Description?: string;\n Text?: string;\n ReferenceData?: string;\n MarketDescription?: string;\n SourceData?: number;\n MessageID?: IMessageID;\n FromAddress?: string;\n ToAddress?: string;\n TxHash?: string;\n TxHashes?: string[];\n\n private getCounterpartyAddressTruncated(address: string | undefined) {\n return address ? truncateBlockchainAddress(address) : undefined;\n }\n\n get counterpartyAccountID() {\n return this.isTransferOutgoing ? this.ToMarketAccountID : this.FromMarketAccountID;\n }\n\n get counterpartySourceAccountID() {\n return this.isTransferOutgoing ? this.ToSourceAccountID : this.FromSourceAccountID;\n }\n\n get counterpartyAddress() {\n return this.isTransferOutgoing ? this.ToAddress : this.FromAddress;\n }\n\n /** The transferDescription is a front-end computed readable description based on the properties of the transfer.\n *\n * This is different from Transfer.Description, which is sent from the backend and is currently presented to the user in the column \"Note\".\n */\n getTransferDescription(\n marketAccountsByID: Map | undefined,\n avoidMarketAccountIdDisplay: boolean\n ) {\n // The counterparty account being an external account means that we don't have it represented as a Talos MarketAccount.\n // When this happens, we instead look at the SourceAccountIDs and the Addresses (blockchain addresses) in order to\n // try to display some useful description to the user.\n if (this.isCounterpartyExternalAccount) {\n return `Transfer ${this.isTransferOutgoing ? 'TO' : 'FROM'} External ID: ${\n this.counterpartySourceAccountID ?? this.getCounterpartyAddressTruncated(this.counterpartyAddress) ?? 'unknown'\n }`;\n }\n\n // Base case: we do have the counterpartyAccountID represented as a Talos MarketAccount, and so we grab its display name.\n return `Transfer ${this.isTransferOutgoing ? 'TO' : 'FROM'} ${\n marketAccountsByID?.get(this.counterpartyAccountID)?.DisplayName ??\n (avoidMarketAccountIdDisplay ? 'unknown' : `ID: ${this.counterpartyAccountID}`)\n }`;\n }\n\n /**\n * Returns whether or not the counterparty account in this transfer is an \"external\" account or not.\n *\n * An external account is essentially one that is not a Talos MarketAccount.\n */\n get isCounterpartyExternalAccount() {\n return this.counterpartyAccountID === 0;\n }\n\n /** Returns the Amount property of the transfer, but as a negative number if the transfer is outgoing */\n get directionalAmount() {\n const bigAmount = toBig(this.Amount);\n if (!bigAmount) {\n return undefined;\n }\n\n return this.isTransferOutgoing ? bigAmount.times(-1).toFixed() : bigAmount.toFixed();\n }\n\n getAccountDisplay(\n marketAccountsByID: Map | undefined,\n type: 'source' | 'destination',\n /** Avoid showing data (like IDs) about market accounts outside of scope */\n avoidMarketIdDisplay: boolean\n ) {\n let accountID: number | undefined;\n let source: string | undefined;\n let address: string | undefined;\n switch (type) {\n case 'source':\n accountID = this.FromMarketAccountID;\n source = this.FromSourceAccountID;\n address = this.FromAddress;\n break;\n case 'destination':\n accountID = this.ToMarketAccountID;\n source = this.ToSourceAccountID;\n address = this.ToAddress;\n break;\n }\n\n if (accountID && accountID !== 0) {\n const marketAccount = marketAccountsByID?.get(accountID);\n const marketAccountDisplayableName = marketAccount ? marketAccount.DisplayName ?? marketAccount.Name : undefined;\n const result = marketAccountDisplayableName ?? (avoidMarketIdDisplay ? 'Unknown' : `ID: ${accountID}`);\n return result;\n }\n return source ? `External ID: ${source}` : this.getCounterpartyAddressTruncated(address) ?? 'External ID: unknown';\n }\n\n /** Whether or not this transfer represents a reduction in the user's balance */\n get isTransferOutgoing() {\n return this.OwnerAccountID === this.FromMarketAccountID;\n }\n\n get rowID() {\n return this.TransferID;\n }\n\n /** Whether or not the transfer is in a terminal state */\n get isTerminal() {\n return TERMINAL_TRANSFER_STATES_SET.has(this.Status);\n }\n\n constructor(data: Transfer | ITransfer) {\n Object.assign(this, data);\n }\n}\n","const N_LEAD_CHARS = 6;\nconst N_END_CHARS = 6;\n\n// spell-checker:disable-next-line\n// 0xabcdefargaerg35g35h3095h -> 0xabcd...h3095h\nexport function truncateBlockchainAddress(address: string | null | undefined) {\n if (address == null) {\n return '';\n }\n\n if (address.length <= N_END_CHARS + N_LEAD_CHARS + 3) {\n return address;\n }\n\n const lead = address.substring(0, N_LEAD_CHARS);\n const end = address.substring(address.length - N_END_CHARS);\n return `${lead}...${end}`;\n}\n","import { filter, pipe, scan, shareReplay, type Observable, type UnaryFunction } from 'rxjs';\nimport type { MinimalSubscriptionResponse } from '../types/SubscriptionResponse';\nimport { UpdateActionEnum } from '../types/types';\n\ntype DiffMap = Map;\n\nexport interface WSSubscriptionMemoryOutput {\n /** The current state of the world at any point in time -- the result of scanning all received data updates into a map since the creation of the observable */\n memory: Map;\n /** The latest json message received in its entirety */\n latestMessage: MinimalSubscriptionResponse;\n /** The diff between the latest json message and the one before it. If the latest message is an initial: true message, it will be undefined. */\n diff: DiffMap | undefined;\n}\n\n/**\n * An RxJS pipe to attach to any SubscriptionResponse-emitting observable in order to maintain a memory, the latestMessage and a diff.\n * The pipe will not emit anything until some first json message has arrived.\n * The pipe will be shared amongst subscribers, and on new subscriber will return the latest emitted set of its output: `{memory, latestMessage, diff}`.\n * Also, this memory pipe keeps the observable hot at this point -- meaning that if all subscribers leave, the observable will stay around maintaining its memory,\n * waiting for a new subscriber to come along.\n * @returns output of type {@link WSSubscriptionMemoryOutput}.\n * `memory` is the current state of the world -- the result of scanning all received data updates into a map since the creation of the observable.\n * `latestMessage` is the latest json message received.\n * `diff` is the difference applied between the latest message, and the one before that. If the latest message is an `initial: true` message, diff will be undefined.\n */\nexport function wsSubscriptionMemory(\n getUniqueKey: (item: T) => string\n): UnaryFunction>, Observable>> {\n return pipe(\n scan(\n ({ memory, latestMessage, diff }, json: MinimalSubscriptionResponse) => {\n latestMessage = json;\n\n if (json.initial) {\n // If json initial, there is no \"diff\" and we clear memory.\n memory.clear();\n diff = undefined;\n } else {\n // If json is not initial, there is a diff, so create a new map we can populate with the diff below\n diff = new Map();\n }\n\n for (const update of json.data) {\n const key = getUniqueKey(update);\n\n if (!json.initial) {\n // We assume that any item present in the json.data array, if it is an update and not an addition, is different than its previous revision\n diff?.set(key, { prev: memory.get(key), next: update });\n }\n\n const remove = (update['UpdateAction'] ?? json.action) === UpdateActionEnum.Remove;\n remove ? memory.delete(key) : memory.set(key, update);\n }\n\n return { memory, latestMessage, diff };\n },\n {\n memory: new Map(),\n latestMessage: undefined as MinimalSubscriptionResponse | undefined,\n diff: undefined as DiffMap | undefined,\n }\n ),\n filter(isWSSubscriptionMemoryOutput), // only forwards messages if latestMessage is defined (and memory)\n shareReplay(1) // keep the observable hot and replay the latest message on new subscriber\n );\n}\n\nfunction isWSSubscriptionMemoryOutput(\n value: Partial>\n): value is WSSubscriptionMemoryOutput {\n return value.memory != null && value.latestMessage != null;\n}\n","import { filter, map, pipe, scan, type Observable, type UnaryFunction } from 'rxjs';\nimport type { MinimalSubscriptionResponse } from '../types/SubscriptionResponse';\nimport { jsonDefined, mapToInitialSubscriptionResponse } from './utils';\nimport { wsSubscriptionMemory, type WSSubscriptionMemoryOutput } from './wsSubscriptionMemory';\n\n/**\n * An RxJS pipe you can attach to any SubscriptionResponse emitting observable in order to cache its current state for any incoming\n * late subscribers. For a late subscriber, it behaves to them just as if they are performing a fresh subscription to the backend.\n * After receiving a first initial response, they will be forwarded all SubscriptionResponses as usual.\n * @param getUniqueKey a function to get a unique key for each entry in the data set\n * @param subscriptionResponseType an optional parameter to define what the type should be on the emitted SubscriptionResponses\n */\nexport function wsSubscriptionCache(getUniqueKey: (item: T) => string, subscriptionResponseType?: string) {\n return pipe(\n wsSubscriptionMemory(getUniqueKey),\n // Below here each subscriber has its own fork of the pipeline, and above is shared\n wsSubscriptionMemoryConsumption(subscriptionResponseType)\n );\n}\n\n/**\n * An RxJS pipe meant to be attached directly following a `wsSubscriptionMemory` pipe, consuming the memory in such a way that\n * downstream subscribers perceive cache-like behavior. On initial subscription, this pipe will construct a \"synthetic\" initial json message using the received memory,\n * and following that will simply forward any SubscriptionResponse messages.\n * @param subscriptionResponseType an optional type to attach to the initial synthetic message\n */\nexport function wsSubscriptionMemoryConsumption(\n subscriptionResponseType?: string\n): UnaryFunction>, Observable>> {\n return pipe(\n scan(\n ({ instantiated, json }, { memory, latestMessage }) => {\n if (!instantiated) {\n instantiated = true;\n json = mapToInitialSubscriptionResponse(memory, subscriptionResponseType, latestMessage);\n } else {\n json = latestMessage;\n }\n\n return { instantiated, json };\n },\n {\n instantiated: false,\n json: undefined as undefined | MinimalSubscriptionResponse,\n }\n ),\n // Only forward the json\n map(({ json }) => json),\n // filter out undefined that get here, and only propagate changes which either have any data updates in them or are json.initial\n filter(jsonDefined)\n );\n}\n\nexport interface WSSubscriptionMemoryConsumptionWithMetadataOutput {\n json: MinimalSubscriptionResponse;\n memory: WSSubscriptionMemoryOutput['memory'];\n diff: WSSubscriptionMemoryOutput['diff'];\n}\n\n/**\n *\n * An RxJS pipe meant to be attached directly following a `wsSubscriptionMemory` pipe, consuming the memory in such a way that\n * downstream subscribers perceive cache-like behavior. On initial subscription, this pipe will construct a \"synthetic\" initial json message using the received memory,\n * and following that will simply forward any SubscriptionResponse messages.\n * This is just like the `wsSubscriptionMemoryConsumption` pipe, but also passes along the `memory` and `diff` metadata from the memory pipe.\n * @param subscriptionResponseType an optional type to attach to the initial synthetic message\n */\nexport function wsSubscriptionMemoryConsumptionWithMetadata(subscriptionResponseType?: string) {\n return pipe(\n scan<\n WSSubscriptionMemoryOutput,\n {\n instantiated: boolean;\n json: MinimalSubscriptionResponse | undefined;\n memory: WSSubscriptionMemoryOutput['memory'];\n diff: WSSubscriptionMemoryOutput['diff'];\n }\n >(\n ({ instantiated, json }, memoryOutput) => {\n if (!instantiated) {\n instantiated = true;\n json = mapToInitialSubscriptionResponse(memoryOutput.memory, subscriptionResponseType);\n } else {\n json = memoryOutput.latestMessage;\n }\n\n return { instantiated, json, memory: memoryOutput.memory, diff: memoryOutput.diff };\n },\n {\n instantiated: false,\n json: undefined,\n memory: new Map(),\n diff: undefined,\n }\n ),\n // Don't forward the instantiated property\n map(({ json, memory, diff }) => ({ json, memory, diff })),\n // filter out any messages that get here where json is undefined, and also helps with typing\n filter(memoryConsumptionWithMetadataReturnDefined)\n );\n}\n\nfunction memoryConsumptionWithMetadataReturnDefined(\n input: Partial>\n): input is WSSubscriptionMemoryConsumptionWithMetadataOutput {\n return input.json != null;\n}\n","import { useState, type DependencyList } from 'react';\nimport { useUpdateEffect } from 'react-use';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Converts your value into an observable stream of value changes. Emits a new value each time the deps array contents changes.\n * @param {Function} factory function calculating the value to emit in the observable\n * @param dependencies the deps to trigger new emissions on\n * @returns both a subject and an observable\n */\nexport const useBehaviorSubject = (factory: () => T, dependencies: DependencyList) => {\n const [subjectAndObservable] = useState(() => {\n const subject = new BehaviorSubject(factory());\n return {\n subject,\n observable: subject.asObservable(),\n };\n });\n\n // On each non-first update of value, next the subject\n useUpdateEffect(() => {\n subjectAndObservable.subject.next(factory());\n }, dependencies);\n\n return subjectAndObservable;\n};\n","import { useEffect, useRef } from 'react';\n\n/**\n * Creates a countdown timer that will call the action when the countdown is finished.\n */\nexport function useCountdownAction({\n action,\n countdownTarget,\n}: {\n countdownTarget: string | undefined;\n action: () => void;\n}) {\n const startTimeCountdowRef = useRef | null>(null);\n useEffect(() => {\n if (countdownTarget && typeof countdownTarget === 'string') {\n const timeLeft = new Date(countdownTarget).getTime() - Date.now();\n startTimeCountdowRef.current = setTimeout(() => {\n action();\n }, timeLeft);\n return () => {\n if (startTimeCountdowRef.current) {\n clearTimeout(startTimeCountdowRef.current);\n }\n };\n }\n }, [countdownTarget, action]);\n}\n","import { useCurrenciesContext } from '../contexts/CurrenciesContext';\nimport type { Currency } from '../types/Currency';\n\nexport const useCurrency = (symbol: string | null | undefined): Currency | undefined => {\n const { currenciesBySymbol } = useCurrenciesContext();\n if (symbol != null) {\n return currenciesBySymbol.get(symbol);\n }\n};\n","import { useEffect } from 'react';\nimport { distinctUntilChanged } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { useCurrencyConversionContext } from '../contexts';\nimport type { CurrencyConversionRate } from '../types/CurrencyConversionRate';\nimport { useObservable, useObservableValue } from './useObservable';\n\nexport const useCurrencyConversionRate = (currency?: string, equivalentCurrency?: string) => {\n const { currencyRatesByCurrencyPair, registerSubscription, unregisterSubscription } = useCurrencyConversionContext();\n\n useEffect(() => {\n if (equivalentCurrency != null) {\n registerSubscription(currency, equivalentCurrency);\n return () => {\n unregisterSubscription(currency, equivalentCurrency);\n };\n }\n }, [currency, equivalentCurrency, registerSubscription, unregisterSubscription]);\n\n return useObservable(\n () =>\n currencyRatesByCurrencyPair?.pipe(\n map((rates: Map) => rates.get(`${currency}-${equivalentCurrency}`))\n ),\n [currencyRatesByCurrencyPair, currency, equivalentCurrency]\n );\n};\n\nexport const useCurrencyConversionRateValue = (currency?: string, equivalentCurrency?: string) => {\n const obs = useCurrencyConversionRate(currency, equivalentCurrency);\n return useObservableValue(() => obs, [obs]);\n};\n\nexport const useCurrencyConversionRates = (currencies: string[], equivalentCurrency: string) => {\n const { currencyRatesByCurrencyPair, registerSubscriptions, unregisterSubscriptions } =\n useCurrencyConversionContext();\n\n useEffect(() => {\n if (currencies.length > 0) {\n registerSubscriptions(currencies, equivalentCurrency);\n return () => {\n unregisterSubscriptions(currencies, equivalentCurrency);\n };\n }\n }, [currencies, equivalentCurrency, registerSubscriptions, unregisterSubscriptions]);\n\n return useObservable>(\n () =>\n currencyRatesByCurrencyPair?.pipe(\n map(\n (rates: Map) =>\n new Map(currencies.map(currency => [currency, rates.get(`${currency}-${equivalentCurrency}`)]))\n ),\n distinctUntilChanged()\n ),\n [currencyRatesByCurrencyPair, currencies, equivalentCurrency]\n );\n};\n\nexport const useCurrencyConversionRatesValue = (currencies: string[], equivalentCurrency: string) => {\n const obs = useCurrencyConversionRates(currencies, equivalentCurrency);\n return useObservableValue(() => obs, [obs]);\n};\n","import { endsWith } from 'lodash';\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react';\nimport { useSearchParam } from 'react-use';\nimport { ReplaySubject, type Observable } from 'rxjs';\nimport { useConstant } from '../hooks/useConstant';\nimport { useSessionStorage } from '../hooks/useSessionStorage';\nimport { hashThemeRunTime } from '../styles/themes';\nimport { CustomerUserConfigLayoutType } from '../types/CustomerUserConfigLayout';\nimport type { WLOrgConfig } from '../types/WLOrgConfig';\nimport { logger } from '../utils';\nimport { Get } from '../utils/http';\n\nexport const DEFAULT_WL_ORG_CONFIG: WLOrgConfig = {\n title: 'Demo Trade',\n theme: 'DarkTheme',\n favicon: 'cryptoco-otc-icon.svg',\n layout: CustomerUserConfigLayoutType.TradingLayout,\n supportPhone: 'support-phone-here',\n supportEmail: 'support-email-here',\n supportWebsite: 'support-website-here',\n logo: {\n dark: 'cryptoco-otc-logo-d.svg',\n light: 'cryptoco-otc-logo-l.svg',\n },\n // [sc-76773] Enable Customer Withdraw on the \"default\" whitelabel UI config\n enableBalanceTransactions: true,\n blotterRowsMax: 10000,\n disableCustomLadderSizeBuckets: false,\n hideRecordDepositButton: false,\n showMarketAccountDisplayName: false,\n usePreciseTopOfBookIncrement: true,\n allowMobile: true,\n};\n\ninterface WLOrgConfigContextProps {\n config: WLOrgConfig;\n isLoaded: boolean;\n overrides: Partial;\n loadedConfig: Observable;\n setOverrides: (overrides: Partial) => void;\n}\n\nexport const WLCustomerConfigContext = createContext(undefined);\n\nexport function useWLOrgConfigContext() {\n const context = useContext(WLCustomerConfigContext);\n if (context === undefined) {\n throw new Error('Missing WLCustomerConfigContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n}\n\nconst DEMO_OVERRIDES = 'DEMO_OVERRIDES';\n\nexport const WLOrgConfigProvider = ({ children }) => {\n const urlOverride = useSearchParam('override');\n const urlthemeOverride = useSearchParam('themeOverride');\n // The usecase here is to provide a way to test customer themes using url params in local/staging.\n // Try it out by adding ?themeOverride=DarkTDATheme to the end of the url.\n const { override, themeOverride } =\n import.meta.env.VITE_IS_MOBILE === 'true'\n ? // for mobile, no url overrides and set url to be base url, since code defaults to hostname which includes .localhost\n { override: import.meta.env.VITE_BASE_URL, themeOverride: undefined }\n : import.meta.env.VITE_AVA_ENV === 'local' || import.meta.env.VITE_AVA_ENV === 'staging'\n ? { override: urlOverride, themeOverride: urlthemeOverride }\n : { override: undefined, themeOverride: undefined };\n const [config, setConfig] = useState(DEFAULT_WL_ORG_CONFIG);\n const [overrides, setOverrides] = useSessionStorage>(DEMO_OVERRIDES, {});\n const [isLoaded, setIsLoaded] = useState(false);\n const [loadedConfig] = useState(() => new ReplaySubject(1));\n\n const canUseDefaultConfig = useConstant(\n // Allow using default customer config in a Local environment,\n // or on NON-PROD environments that end with \".whitelabel-talos.com\"\n import.meta.env.VITE_AVA_ENV === 'local' ||\n (import.meta.env.VITE_AVA_ENV !== 'prod' && endsWith(window.location.hostname, '.whitelabel-talos.com'))\n );\n\n useEffect(() => {\n const configUrl = `/config/${override ?? window.location.hostname}.json`;\n const fetchConfig = (shouldRetry: boolean) => {\n logger.info(`[config] Fetching customer config`, { extra: { url: configUrl } });\n return Get(configUrl)\n .then(async (res: WLOrgConfig) => {\n const config: WLOrgConfig = {\n ...res,\n usePreciseTopOfBookIncrement: res.usePreciseTopOfBookIncrement ?? true,\n volumeLadderDecimalPrecision: res.volumeLadderDecimalPrecision?.toString(),\n theme: hashThemeRunTime(themeOverride ?? res.theme),\n };\n setConfig(config);\n loadedConfig.next(config);\n setIsLoaded(true);\n logger.info(`[config] Loaded customer config`, { extra: { url: configUrl } });\n })\n .catch(reason => {\n if (shouldRetry) {\n fetchConfig(false);\n } else if (canUseDefaultConfig) {\n setConfig(DEFAULT_WL_ORG_CONFIG);\n loadedConfig.next(DEFAULT_WL_ORG_CONFIG);\n setIsLoaded(true);\n } else {\n throw new Error(`Could not load customer config ${configUrl}: ${reason}`);\n }\n });\n };\n fetchConfig(true);\n }, [canUseDefaultConfig, override, themeOverride, loadedConfig]);\n\n useEffect(() => {\n if (isLoaded) {\n document.title = config.title || '';\n const favicon = document.getElementById('favicon') as HTMLLinkElement | undefined;\n if (favicon) {\n favicon.href = `customers/${config.favicon}`;\n }\n }\n }, [config, isLoaded]);\n\n const value = useMemo(\n () => ({\n config: { ...config, ...overrides },\n isLoaded,\n loadedConfig,\n overrides,\n setOverrides,\n }),\n [config, isLoaded, overrides, setOverrides, loadedConfig]\n );\n\n return {children};\n};\n","import { useEffect, useState, type Dispatch, type SetStateAction } from 'react';\n\nexport function useSessionStorage(key: string, initialValue?: T, raw?: boolean): [T, Dispatch>] {\n const [state, setState] = useState(() => {\n try {\n const sessionStorageValue = sessionStorage.getItem(key);\n if (typeof sessionStorageValue !== 'string') {\n sessionStorage.setItem(key, raw ? String(initialValue) : JSON.stringify(initialValue));\n return initialValue;\n } else {\n return raw ? sessionStorageValue : JSON.parse(sessionStorageValue || 'null');\n }\n } catch {\n // If user is in private mode or has storage restriction\n // sessionStorage can throw. JSON.parse and JSON.stringify\n // can throw, too.\n return initialValue;\n }\n });\n\n useEffect(() => {\n try {\n const serializedState = raw ? String(state) : JSON.stringify(state);\n sessionStorage.setItem(key, serializedState);\n } catch {\n // If user is in private mode or has storage restriction\n // sessionStorage can throw. Also JSON.stringify can throw.\n }\n });\n\n return [state, setState];\n}\n","import { noop } from 'lodash';\nimport type { SubscriptionResponse } from '../types/SubscriptionResponse';\n\nimport {\n BUYING_POWER,\n CARE_EXECUTION_REPORT,\n CARE_ORDER,\n CUSTOMER,\n CUSTOMER_BALANCE,\n CUSTOMER_BALANCE_TRANSACTION,\n CUSTOMER_MAX_ORDER_SIZE_LIMIT,\n CUSTOMER_ORDER,\n CUSTOMER_QUOTE,\n CUSTOMER_QUOTE_HISTORY,\n CUSTOMER_TRADE,\n CUSTOMER_TRANSACTION,\n CUSTOMER_USER,\n EXECUTION_REPORT,\n FIXING_INDEX,\n HEDGE_ORDER_STATUS,\n LOAN_QUOTE_BORROWER,\n LOAN_QUOTE_LENDER,\n MARKET_FIXING_INDEX,\n MARKET_ORDER,\n MARKET_QUOTE,\n ORDER,\n PORTFOLIO_TREASURY_LINKS,\n POSITION,\n POSITION_SUB_ACCOUNT,\n QUOTE,\n QUOTE_HISTORY,\n RECON_MISMATCH,\n RECON_STATUS,\n TRADE,\n TRADE_SETTLE_REPORT,\n} from '../tokens/requestTypes';\n\nimport { Customer } from '../types/Customer';\nimport { CustomerBalance, CustomerBalanceTransaction, CustomerTransaction } from '../types/CustomerBalance';\nimport { CustomerOrder } from '../types/CustomerOrder';\nimport { CustomerQuote } from '../types/CustomerQuote';\nimport { CustomerTrade } from '../types/CustomerTrade';\nimport { CustomerTradingLimit } from '../types/CustomerTradingLimit';\nimport { CustomerUser } from '../types/CustomerUser';\nimport { LoanQuote } from '../types/LoanQuote';\nimport { MarketFixingIndex } from '../types/MarketFixingIndex';\nimport { MarketOrder } from '../types/MarketOrder';\nimport { MarketQuote } from '../types/MarketQuote';\nimport { Order } from '../types/Order';\nimport { Position } from '../types/Position';\nimport { Quote } from '../types/Quote';\nimport { ReconMismatch } from '../types/ReconMismatch';\nimport { ReconStatus } from '../types/ReconStatus';\nimport { Trade } from '../types/Trade';\nimport { TreasuryLink } from '../types/TreasuryLink';\n\nimport {\n AssetTransaction,\n CareExecutionReport,\n CareOrder,\n ExecutionReport,\n FixingIndex,\n Transfer,\n type RequestStream,\n} from '../types';\nimport { BidAskSpreadsDatapoint } from '../types/Analytics/BidAskSpread';\nimport { MarketOrderOutcomeDatapoints } from '../types/Analytics/MarketOrderOutcome';\nimport { NumOrdersDatapoint } from '../types/Analytics/NumOrders';\nimport { OrdersSummaryDatapoint } from '../types/Analytics/OrdersSummary';\nimport { PostTradeOrderAnalyticsDatapoint } from '../types/Analytics/PostTradeOrderAnalytics';\nimport { SlippageDatapoint } from '../types/Analytics/Slippage';\nimport { TotalTradingVolumeStats } from '../types/Analytics/TotalTradingVolume';\nimport { BuyingPower } from '../types/BuyingPower';\nimport { HedgeOrderStatus } from '../types/HedgeOrderStatus';\nimport { LedgerEvent } from '../types/LedgerEvent';\nimport { TradeSettleReport } from '../types/TradeSettleReport';\nimport { logger } from '../utils';\n\nconst wsTypeMappings = {\n [ORDER]: Order,\n [CARE_ORDER]: CareOrder,\n [CARE_EXECUTION_REPORT]: CareExecutionReport,\n [MARKET_ORDER]: MarketOrder,\n [MARKET_QUOTE]: MarketQuote,\n [EXECUTION_REPORT]: ExecutionReport,\n [QUOTE]: Quote,\n [QUOTE_HISTORY]: Quote,\n [TRADE]: Trade,\n [CUSTOMER]: Customer,\n [CUSTOMER_ORDER]: CustomerOrder,\n [CUSTOMER_QUOTE]: CustomerQuote,\n [CUSTOMER_QUOTE_HISTORY]: CustomerQuote,\n [CUSTOMER_TRADE]: CustomerTrade,\n [LOAN_QUOTE_BORROWER]: LoanQuote,\n [FIXING_INDEX]: FixingIndex,\n [MARKET_FIXING_INDEX]: MarketFixingIndex,\n [LOAN_QUOTE_LENDER]: LoanQuote,\n [CUSTOMER_BALANCE]: CustomerBalance,\n [CUSTOMER_USER]: CustomerUser,\n [CUSTOMER_MAX_ORDER_SIZE_LIMIT]: CustomerTradingLimit,\n [CUSTOMER_TRANSACTION]: CustomerTransaction,\n [RECON_STATUS]: ReconStatus,\n [RECON_MISMATCH]: ReconMismatch,\n [PORTFOLIO_TREASURY_LINKS]: TreasuryLink,\n [POSITION]: Position,\n [POSITION_SUB_ACCOUNT]: Position,\n [BUYING_POWER]: BuyingPower,\n [HEDGE_ORDER_STATUS]: HedgeOrderStatus,\n [TotalTradingVolumeStats.Stream_Name]: TotalTradingVolumeStats,\n [NumOrdersDatapoint.Stream_Name]: NumOrdersDatapoint,\n [LedgerEvent.MarketAccountStreamName]: LedgerEvent,\n [LedgerEvent.SubAccountStreamName]: LedgerEvent,\n [SlippageDatapoint.Stream_Name]: SlippageDatapoint,\n [OrdersSummaryDatapoint.Stream_Name]: OrdersSummaryDatapoint,\n [MarketOrderOutcomeDatapoints.Stream_Name]: MarketOrderOutcomeDatapoints,\n [PostTradeOrderAnalyticsDatapoint.Stream_Name]: PostTradeOrderAnalyticsDatapoint,\n [BidAskSpreadsDatapoint.Stream_Name]: BidAskSpreadsDatapoint,\n [TRADE_SETTLE_REPORT]: TradeSettleReport,\n [AssetTransaction.StreamName]: AssetTransaction,\n [CUSTOMER_BALANCE_TRANSACTION]: CustomerBalanceTransaction,\n [Transfer.StreamName]: Transfer,\n} as const;\n\nexport type SubscriptionCallback = (err: unknown | undefined, response?: SubscriptionResponse) => void;\nexport class Subscription {\n address: string;\n reqid: number;\n streams: RequestStream[];\n callback: SubscriptionCallback;\n active: boolean;\n loadAll: boolean;\n next?: string;\n overrideParticipant?: string;\n data = new Map();\n\n startedAt: number;\n\n constructor({\n address,\n reqid,\n streams,\n callback,\n overrideParticipant,\n loadAll = true,\n }: {\n address: string;\n reqid: number;\n streams: RequestStream[];\n callback: SubscriptionCallback;\n loadAll?: boolean;\n overrideParticipant?: string;\n }) {\n this.address = address;\n this.reqid = reqid;\n this.streams = streams;\n this.callback = callback;\n this.active = true;\n this.loadAll = loadAll;\n this.overrideParticipant = overrideParticipant; // todo remove, dont use\n\n this.startedAt = Date.now();\n }\n\n handleJson(json: SubscriptionResponse) {\n const now = Date.now();\n\n // This guard is important. We only want to update the Subscription.next property if we are looking at a \"potentially pageably\" response.\n // As in, either an initial or a paged response. Reason being that we could receive a non-peageable response in the middle of paging.\n // As in we're paging for old data and get a new delta update while doing that. We can't have the non-existance of .next on that live update\n // stop us from paging\n if (json.initial || json.page) {\n this.next = json.next; // Allow us to load more pages if they exist\n }\n\n // If we have been disposed don't do anything\n if (!this.callback) {\n return { loadMore: false };\n }\n\n this.callback(undefined, instantiateClasses(json));\n const loadMore = this.loadAll && json.next != null && this.streams.length === 1;\n\n if (json.initial && this.streams.length === 1) {\n logger.trackDuration('subscriptionInitialResponseMs', {\n startTime: this.startedAt,\n duration: now - this.startedAt,\n context: this.streams[0],\n description: this.streams[0].name,\n });\n }\n\n const didReachLastPage = json.next == null && (json.initial || json.page);\n if (this.loadAll && this.streams.length === 1 && didReachLastPage) {\n // loadAll was set, and we've reached the last page\n logger.trackDuration('subscriptionLoadAllMs', {\n startTime: this.startedAt,\n duration: now - this.startedAt,\n context: this.streams[0],\n description: this.streams[0].name,\n });\n }\n\n return { loadMore };\n }\n\n dispose() {\n this.callback = noop;\n }\n}\n\n// Attempts to create an instance of the stream's respective class and passes that back instead if possible.\nfunction instantiateClasses(json: SubscriptionResponse): SubscriptionResponse {\n const Constructor = wsTypeMappings[json.type as keyof typeof wsTypeMappings];\n if (Constructor == null || json.data == null) {\n return json;\n }\n for (let i = 0; i < json.data.length; i++) {\n json.data[i] = new Constructor(json.data[i]);\n }\n return json;\n}\n","import type { IRowNode } from 'ag-grid-community';\nimport { useMemo } from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport { getOrderStatusColor, type FilledPercentColumnParams } from '../components/BlotterTable/columns/filledPercent';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport { isOrderPending } from '../utils/isOrderPending';\nimport type { ICareExecutionReport } from './types';\nimport { OrdStatusEnum, type CxlRejReasonEnum, type ExecTypeEnum, type OrdRejReasonEnum, type SideEnum } from './types';\n\nexport function isCareExecutionReport(entity: any): entity is CareExecutionReport {\n return entity instanceof CareExecutionReport;\n}\n\nexport class CareExecutionReport {\n static readonly rowID = 'OrderID';\n\n Timestamp: string;\n User: string;\n Symbol: string;\n Currency: string;\n OrderID: string;\n ClOrdID: string;\n OrigClOrdID: string;\n SubmitTime: string;\n ExecID: string;\n Side: SideEnum;\n TransactTime: string;\n ExecType: ExecTypeEnum;\n OrdStatus: OrdStatusEnum;\n OrderQty: string | undefined;\n LeavesQty: string | undefined;\n CumQty: string | undefined;\n OrdRejReason: OrdRejReasonEnum | undefined;\n CxlRejReason: CxlRejReasonEnum | undefined;\n RequestUser: string;\n Revision: number;\n OrgID: number;\n Text: string;\n Group: string;\n Comments: string;\n CumAmt?: string;\n AvgPx?: string;\n LastPx?: string;\n LastQty?: string;\n LastAmt?: string;\n AmountCurrency: string;\n Counterparty: string;\n LastExecID: string;\n Annotations: unknown;\n\n get isCancelable(): boolean {\n return !(this.isPendingOrdStatus || this.isComplete);\n }\n\n get isComplete(): boolean {\n return [OrdStatusEnum.Canceled, OrdStatusEnum.Filled, OrdStatusEnum.Rejected, OrdStatusEnum.DoneForDay].includes(\n this.OrdStatus\n );\n }\n\n // Private for now to encourage using the more abstract getters (isCancelable etc.)\n private get isPendingOrdStatus(): boolean {\n return isOrderPending(this.OrdStatus);\n }\n\n constructor(data: ICareExecutionReport | Omit) {\n this.Timestamp = data.Timestamp;\n this.User = data.User;\n this.Symbol = data.Symbol;\n this.OrderID = data.OrderID;\n this.ClOrdID = data.ClOrdID;\n this.OrigClOrdID = data.OrigClOrdID;\n this.SubmitTime = data.SubmitTime;\n this.ExecID = data.ExecID;\n this.Side = data.Side;\n this.TransactTime = data.TransactTime;\n this.ExecType = data.ExecType;\n this.OrdStatus = data.OrdStatus;\n this.OrderQty = data.OrderQty;\n this.LeavesQty = data.LeavesQty;\n this.Currency = data.Currency;\n this.CumQty = data.CumQty;\n this.OrdRejReason = data.OrdRejReason;\n this.CxlRejReason = data.CxlRejReason;\n this.RequestUser = data.RequestUser;\n this.Revision = data.Revision;\n this.OrgID = data.OrgID;\n this.Text = data.Text;\n this.Group = data.Group;\n this.Comments = data.Comments;\n this.AmountCurrency = data.AmountCurrency;\n this.Counterparty = data.Counterparty;\n this.CumAmt = data.CumAmt;\n this.AvgPx = data.AvgPx;\n this.LastExecID = data.LastExecID;\n this.LastPx = data.LastPx;\n this.LastQty = data.LastQty;\n this.LastAmt = data.LastAmt;\n this.LastExecID = data.LastExecID;\n this.Annotations = data.Annotations;\n }\n}\n\ninterface UseCareExecutionReportColumns {\n defaultColumns?: (keyof CareExecutionReport | Partial)[];\n}\n\nexport function useCareExecutionReportColumns({\n defaultColumns = EMPTY_ARRAY,\n}: UseCareExecutionReportColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n sort: '-',\n },\n {\n field: 'Side',\n type: 'side',\n sortable: true,\n },\n {\n field: 'Symbol',\n type: 'security',\n sortable: true,\n },\n {\n field: 'OrdStatus',\n type: 'orderStatus',\n sortable: true,\n },\n {\n type: 'filledPercent',\n id: 'filledPercent',\n params: {\n filledQtyField: 'CumQty',\n totalQtyField: 'OrderQty',\n getColor: getCareExecutionReportMeterColor,\n } satisfies FilledPercentColumnParams,\n },\n {\n field: 'OrderQty',\n type: 'size',\n sortable: true,\n params: { currencyField: 'Currency' },\n },\n {\n field: 'LeavesQty',\n type: 'size',\n sortable: true,\n params: { currencyField: 'Currency' },\n },\n {\n field: 'User',\n type: 'user',\n sortable: true,\n },\n {\n field: 'OrderID',\n type: 'id',\n },\n {\n field: 'ClOrdID',\n type: 'id',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'ExecID',\n type: 'id',\n },\n {\n field: 'ExecType',\n type: 'text',\n sortable: true,\n },\n {\n field: 'TransactTime',\n type: 'date',\n sortable: true,\n },\n {\n field: 'Text',\n type: 'text',\n sortable: true,\n },\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n },\n {\n field: 'RequestUser',\n type: 'user',\n sortable: true,\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'OrigClOrdID',\n type: 'id',\n },\n {\n field: 'OrdRejReason',\n type: 'text',\n },\n {\n field: 'CxlRejReason',\n type: 'text',\n },\n {\n field: 'isCancelable',\n type: 'text',\n },\n {\n field: 'isComplete',\n type: 'text',\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\nfunction getCareExecutionReportMeterColor(node: IRowNode, theme: DefaultTheme) {\n if (!node.data) {\n return;\n }\n // If these dont exist we arent gonna show any color anyway\n const { OrderQty, CumQty } = node.data;\n if (!OrderQty || !CumQty) {\n return undefined;\n }\n\n return getOrderStatusColor({ ...node.data, OrderQty, CumQty }, theme);\n}\n\n// TYPE LEVEL TESTS\ntype OmittedClassKeys = 'isCancelable' | 'isComplete';\ntype _Expect_CareExecutionReport_To_Only_Have_Keys_From_ICareExecutionReport = ExpectTrue<\n {\n [K in Exclude & string]: K extends keyof ICareExecutionReport\n ? true\n : K;\n }[Exclude]\n>;\n\ntype OmittedInterfaceKeys = 'MessageID';\ntype _Expect_All_Keys_In_ICareExecutionReport_To_Be_In_CareExecutionReport = ExpectTrue<\n {\n [K in keyof Exclude & string]: K extends keyof CareExecutionReport\n ? true\n : K;\n }[Exclude]\n>;\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { PriceParams } from '../components/BlotterTable/columns/price.types';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type {\n ExecTypeEnum,\n OrdRejReasonEnum,\n OrdStatusEnum,\n SideEnum,\n TimeInForceEnum,\n TradeStatusEnum,\n} from './types';\n\nexport function isMarketOrder(entity: any): entity is MarketOrder {\n return entity instanceof MarketOrder;\n}\n// ExecutionReport5000\nexport class MarketOrder {\n static readonly rowID = 'OID';\n static readonly defaultColumns = [\n 'SubmitTime',\n 'OrdStatus',\n 'MarketAccount',\n 'ClOrdID',\n 'Symbol',\n 'Side',\n 'OrderQty',\n 'Price',\n 'OID',\n 'Status',\n 'OrdType',\n 'ExecType',\n 'ExecID',\n 'EID',\n ] satisfies (keyof MarketOrder)[];\n\n Timestamp!: string;\n\n MessageID?: string;\n\n ParentService?: string;\n\n Market?: string;\n\n Symbol?: string;\n\n CredentialID?: number;\n\n Status?: string;\n\n OrderID?: string;\n\n ClOrdID?: string;\n\n SubmitTime?: string;\n\n ExecID?: string;\n\n Side?: SideEnum;\n\n TransactTime?: string;\n\n ExecType?: ExecTypeEnum;\n\n OrdStatus!: OrdStatusEnum;\n\n OrderQty?: string;\n\n OrdType?: string;\n\n Price?: string;\n\n Currency?: string;\n\n LeavesQty?: string;\n\n CumQty?: string;\n\n AvgPx?: string;\n\n TimeInForce?: TimeInForceEnum;\n\n LastPx?: string;\n\n LastQty?: string;\n\n LastAmt?: string;\n\n LastFee?: string;\n\n CumAmt?: string;\n\n CumFee?: string;\n\n FeeCurrency?: string;\n\n OrdRejReason?: OrdRejReasonEnum;\n\n ClOID?: string;\n\n OID?: string;\n\n EID?: string;\n\n TradeStatus?: TradeStatusEnum;\n\n AggressorSide?: SideEnum;\n\n QID?: string;\n\n AmountCurrency?: string;\n\n ParentOrderID?: string;\n\n RID?: string;\n\n ExpectedFillPrice?: string;\n\n ExpectedFillQty?: string;\n\n MarketAccountID?: string;\n\n MarketAccount?: string;\n\n Text?: string;\n\n PricingReference?: string;\n\n constructor(data: MarketOrder) {\n Object.assign(this, data);\n }\n}\n\ninterface UseMarketOrderColumns {\n defaultColumns?: (keyof MarketOrder | Partial)[];\n}\n\nexport function useMarketOrderColumns({ defaultColumns = EMPTY_ARRAY }: UseMarketOrderColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'OrdStatus',\n type: 'orderStatus',\n sortable: true,\n },\n {\n field: 'MarketAccount',\n type: 'text',\n },\n {\n id: 'marketAccountGroup',\n type: 'marketAccountGroupDerived',\n hide: true,\n params: {\n marketAccountField: 'MarketAccount' satisfies keyof MarketOrder,\n },\n },\n {\n field: 'ClOrdID',\n type: 'id',\n },\n {\n field: 'Symbol',\n type: 'security',\n },\n {\n field: 'Side',\n type: 'side',\n },\n {\n field: 'OrderQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'Price',\n type: 'price',\n params: { assetField: 'Symbol', showReferencePrice: true } satisfies PriceParams,\n },\n {\n field: 'PricingReference',\n type: 'price',\n hide: true,\n params: {\n isReferencePrice: true,\n },\n },\n {\n field: 'OID',\n type: 'text',\n },\n {\n field: 'Status',\n type: 'text',\n },\n {\n field: 'OrdType',\n type: 'text',\n width: 100,\n },\n {\n field: 'ExecType',\n type: 'text',\n width: 100,\n },\n {\n field: 'ExecID',\n type: 'text',\n width: 400,\n },\n {\n field: 'EID',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'MessageID',\n type: 'text',\n },\n {\n field: 'ParentService',\n type: 'text',\n },\n {\n field: 'Market',\n type: 'market',\n },\n {\n field: 'CredentialID',\n type: 'text',\n },\n {\n field: 'OrderID',\n type: 'id',\n },\n {\n field: 'TransactTime',\n type: 'date',\n params: { milliseconds: true },\n },\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'LeavesQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'CumQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'AvgPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'TimeInForce',\n type: 'text',\n },\n {\n field: 'LastQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'CumAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'CumFee',\n type: 'size',\n params: { currencyField: 'FeeCurrency' },\n },\n {\n field: 'FeeCurrency',\n type: 'currency',\n },\n {\n field: 'OrdRejReason',\n type: 'text',\n },\n {\n field: 'ClOID',\n type: 'text',\n },\n {\n field: 'TradeStatus',\n type: 'tradeStatus',\n },\n {\n field: 'AggressorSide',\n type: 'side',\n },\n {\n field: 'QID',\n type: 'text',\n },\n {\n field: 'AmountCurrency',\n type: 'currency',\n },\n {\n field: 'ParentOrderID',\n type: 'id',\n },\n {\n field: 'RID',\n type: 'text',\n },\n {\n field: 'ExpectedFillPrice',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'ExpectedFillQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'MarketAccountID',\n type: 'text',\n },\n {\n field: 'Text',\n type: 'text',\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type { OrdRejReasonEnum, QuoteStatusEnum, SideEnum } from './types';\n\n// Quote4411\nexport class MarketQuote {\n static readonly rowID = 'QID';\n static readonly defaultColumns = [\n 'SubmitTime',\n 'QID',\n 'Market',\n 'QuoteReqID',\n 'Side',\n 'TradedSide',\n 'Symbol',\n 'OrderQty',\n 'QuoteStatus',\n 'ParentRFQID',\n 'RID',\n ] satisfies (keyof MarketQuote)[];\n\n Timestamp!: string;\n\n MessageID?: string;\n\n Symbol!: string;\n\n Currency!: string;\n\n RID!: string;\n\n QID!: string;\n\n QuoteReqID?: string;\n\n QuoteStatus!: QuoteStatusEnum;\n\n QuoteID?: string;\n\n QuoteRequestRejectReason?: OrdRejReasonEnum;\n\n SubmitTime?: string;\n\n OrderQty?: string;\n\n AmountCurrency?: string;\n\n Side?: SideEnum;\n\n TradedPx?: string;\n\n TradedQty?: string;\n\n TradedAmt?: string;\n\n TradedSide?: SideEnum;\n\n ParentRFQID?: string;\n\n TransactTime?: string;\n\n EventIndicator?: string;\n\n Text?: string;\n\n BidAmt?: string;\n\n BidPx?: string;\n\n Market!: string;\n\n MarketAccount?: string;\n\n OfferAmt?: string;\n\n OfferPx?: string;\n\n ValidUntilTime?: string;\n\n constructor(data: MarketQuote) {\n Object.assign(this, data);\n }\n}\n\ninterface UseMarketQuoteColumns {\n defaultColumns?: (keyof MarketQuote | Partial)[];\n}\n\nexport function useMarketQuoteColumns({ defaultColumns = EMPTY_ARRAY }: UseMarketQuoteColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'SubmitTime',\n type: 'date',\n sortable: true,\n sort: '-',\n },\n {\n field: 'QID',\n type: 'text',\n },\n {\n field: 'Market',\n type: 'market',\n },\n {\n field: 'QuoteReqID',\n type: 'id',\n },\n {\n field: 'Side',\n type: 'quoteSide',\n },\n {\n field: 'TradedSide',\n type: 'side',\n },\n {\n field: 'Symbol',\n type: 'security',\n },\n {\n field: 'OrderQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'QuoteStatus',\n type: 'quoteStatus',\n },\n {\n field: 'ParentRFQID',\n type: 'id',\n },\n {\n field: 'RID',\n type: 'text',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'Timestamp',\n type: 'date',\n },\n {\n field: 'MessageID',\n type: 'text',\n },\n {\n field: 'Currency',\n type: 'currency',\n },\n {\n field: 'QuoteID',\n type: 'id',\n },\n {\n field: 'QuoteRequestRejectReason',\n type: 'text',\n },\n {\n field: 'AmountCurrency',\n type: 'currency',\n },\n {\n field: 'TradedPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'TradedQty',\n type: 'size',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'TradedAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'TransactTime',\n type: 'date',\n },\n {\n field: 'EventIndicator',\n type: 'text',\n },\n {\n field: 'Text',\n type: 'text',\n },\n {\n field: 'BidAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'BidPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'MarketAccount',\n type: 'marketAccount',\n },\n {\n field: 'OfferAmt',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'OfferPx',\n type: 'price',\n params: { assetField: 'Symbol' },\n },\n {\n field: 'ValidUntilTime',\n type: 'date',\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { PriceParams } from '../components/BlotterTable/columns/price.types';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport type { ExpectTrue } from '../tests';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type {\n CxlRejReasonEnum,\n DecisionStatusEnum,\n ExecTypeEnum,\n IAllocation,\n IMultilegParameters,\n IOMSExecutionReport,\n IOMSExecutionReport4203Aggregations,\n IOMSExecutionReport4203LegSummary,\n IOMSExecutionReport4203TransactedAssets,\n OrdRejReasonEnum,\n OrdRiskStatusEnum,\n OrdStatusEnum,\n OrdTypeEnum,\n PricingModeEnum,\n RequestSourceEnum,\n SideEnum,\n} from './types';\n\n// OMSExecutionReport4203\nexport class ExecutionReport {\n static readonly rowID = 'ExecID';\n static readonly defaultColumns: (Column | keyof ExecutionReport)[] = [\n 'Timestamp',\n 'Revision',\n 'ExecType',\n 'ExecID',\n 'OrderQty',\n 'Price',\n 'LastMarket',\n 'LastExecID',\n 'CumQty',\n 'AvgPx',\n 'CumFee',\n 'AvgPxAllIn',\n 'CumAmt',\n 'OrdStatus',\n ];\n\n Timestamp!: string;\n\n MessageID?: string;\n\n User!: string;\n\n RequestUser?: string;\n\n Symbol!: string;\n\n OrderID!: string;\n\n ClOrdID!: string;\n\n Comments?: string;\n\n OrigClOrdID?: string;\n\n SubmitTime!: string;\n\n ExecID!: string;\n\n Side!: SideEnum;\n\n TransactTime?: string;\n\n ExecType!: ExecTypeEnum;\n\n OrdStatus!: OrdStatusEnum;\n\n OrdType!: OrdTypeEnum;\n\n OrderQty!: string;\n\n Price?: string;\n\n Currency!: string;\n\n LeavesQty?: string;\n\n CumQty!: string;\n\n AvgPx?: string;\n\n TimeInForce?: string;\n\n LastMarket?: string;\n\n LastMarketAccount?: string;\n\n LastPx?: string;\n\n LastQty?: string;\n\n LastAmt?: string;\n\n LastFee?: string;\n\n LastFeeCurrency?: string;\n\n CumAmt?: string;\n\n CumFee?: string;\n\n FeeCurrency?: string;\n\n OrdRejReason?: OrdRejReasonEnum;\n\n LastExecID?: string;\n\n CxlRejReason?: CxlRejReasonEnum;\n\n DecisionStatus!: DecisionStatusEnum;\n\n QuoteID?: string;\n\n AmountCurrency?: string;\n\n SessionID?: string;\n\n CancelSessionID?: string;\n\n ExpectedFillPrice?: string;\n\n ExpectedFillQty?: string;\n\n SubAccount?: string;\n\n Strategy?: string;\n\n AvgPxAllIn?: string;\n\n RFQID?: string;\n\n ParentOrderID?: string;\n\n ParentRFQID?: string;\n\n StartTime?: string;\n\n EndTime?: string;\n\n EID?: string;\n\n AllowedSlippage?: string;\n\n EventIndicator?: string;\n\n LastTalosFee?: string;\n\n CumTalosFee?: string;\n\n TalosFeeCurrency?: string;\n\n AggressorSide?: SideEnum;\n\n Revision!: number;\n\n Markets!: IOMSExecutionReport['Markets'];\n\n Text?: string;\n\n Group?: string;\n\n Parameters?: Partial;\n\n Allocation?: IAllocation;\n\n PricingReference?: string;\n\n LastRequestTimestamp?: string;\n RiskStatus?: Record;\n LastTradeTime?: string;\n PricingMode?: PricingModeEnum;\n TriggerTime?: string;\n OrgID?: string;\n ProcessingService?: {\n ServiceID?: number;\n PartitionID?: number;\n };\n MultilegParams?: IMultilegParameters;\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n LegSummary?: IOMSExecutionReport4203LegSummary[];\n Aggregations?: IOMSExecutionReport4203Aggregations[];\n TransactedAssets?: IOMSExecutionReport4203TransactedAssets[];\n\n RequestSource?: RequestSourceEnum;\n LastRequestSource?: RequestSourceEnum;\n\n constructor(data: ExecutionReport) {\n Object.assign(this, data);\n }\n}\n\ninterface UseExecutionReportColumns {\n defaultColumns?: (keyof ExecutionReport | Partial)[];\n}\n\nexport function useExecutionReportColumns({ defaultColumns = EMPTY_ARRAY }: UseExecutionReportColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n { field: 'Timestamp', type: 'date', sortable: true, params: { milliseconds: true } },\n { field: 'Revision', type: 'text', sortable: true, width: 120 },\n { field: 'ExecType', type: 'text', width: 150 },\n { field: 'ExecID', type: 'id' },\n { field: 'OrderQty', type: 'size', params: { currencyField: 'Currency' } },\n {\n field: 'Price',\n type: 'price',\n params: { assetField: 'Symbol', showReferencePrice: true } satisfies PriceParams,\n },\n {\n field: 'PricingReference',\n type: 'price',\n hide: true,\n params: {\n isReferencePrice: true,\n },\n },\n { field: 'LastMarket', type: 'market' },\n { field: 'LastExecID', type: 'id' },\n { field: 'CumQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'AvgPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'CumFee', type: 'size', params: { currencyField: 'FeeCurrency' } },\n {\n field: 'AvgPxAllIn',\n title: 'Filled Price All-In',\n type: 'price',\n params: { assetField: 'Symbol', showFeeIcon: 'always' },\n },\n { field: 'CumAmt', title: 'Filled Counter Amt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'OrdStatus', type: 'orderStatus' },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n { field: 'AggressorSide', type: 'text' },\n { field: 'Allocation', type: 'text' },\n { field: 'AllowedSlippage', type: 'text' },\n { field: 'CancelSessionID', type: 'text' },\n { field: 'ClOrdID', type: 'id' },\n { field: 'Comments', type: 'text', sortable: true },\n { field: 'CumTalosFee', type: 'id' },\n { field: 'CxlRejReason', type: 'text' },\n { field: 'DecisionStatus', type: 'text' },\n { field: 'EID', type: 'text' },\n { field: 'EndTime', type: 'date' },\n { field: 'ExpectedFillPrice', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'ExpectedFillQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'Group', type: 'text' },\n { field: 'LastAmt', type: 'size', params: { currencyField: 'AmountCurrency' } },\n { field: 'LastFee', type: 'size', params: { currencyField: 'FeeCurrency' } },\n { field: 'LastPx', type: 'price', params: { assetField: 'Symbol' } },\n { field: 'LastQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'LastTalosFee', type: 'id' },\n { field: 'LeavesQty', type: 'size', params: { currencyField: 'Currency' } },\n { field: 'LastMarketAccount', type: 'marketAccount' },\n // 'Market Account Label',\n { field: 'Markets', type: 'text' },\n { field: 'MessageID', type: 'text' },\n { field: 'OrdRejReason', type: 'text' },\n { field: 'OrdType', type: 'text' },\n { field: 'OrderID', type: 'id' },\n { field: 'OrigClOrdID', type: 'id' },\n { field: 'Parameters', type: 'text' },\n { field: 'ParentOrderID', type: 'id' },\n { field: 'ParentRFQID', type: 'id' },\n { field: 'QuoteID', type: 'id' },\n { field: 'RFQID', type: 'id' },\n { field: 'SessionID', type: 'text' },\n { field: 'Side', type: 'side' },\n { field: 'StartTime', type: 'date' },\n { field: 'Strategy', type: 'text' },\n { field: 'SubAccount', type: 'text' },\n { field: 'SubmitTime', type: 'date', sortable: true, params: { milliseconds: true } },\n { field: 'Symbol', type: 'security' },\n { field: 'Text', type: 'text' },\n { field: 'TimeInForce', type: 'text' },\n { field: 'TransactTime', type: 'date', params: { milliseconds: true } },\n { field: 'User', type: 'user' },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_ExecutionReport_To_Only_Have_Keys_From_IOMSExecutionReport = ExpectTrue<\n {\n [K in keyof ExecutionReport & string]: K extends keyof IOMSExecutionReport ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IOMSExecutionReport_To_Be_In_ExecutionReport = ExpectTrue<\n {\n [K in keyof IOMSExecutionReport & string]: K extends keyof ExecutionReport ? true : K;\n }[Exclude]\n>;\n","import type { CounterpartyTypeEnum, ModeEnum } from './types';\n\nexport class Customer {\n CounterpartyID!: number;\n DisplayName!: string;\n Name!: string;\n Type!: CounterpartyTypeEnum.Customer;\n Timestamp?: number;\n PricingRuleMode?: ModeEnum;\n\n constructor(data: Customer) {\n Object.assign(this, data);\n }\n}\n","import { useMemo } from 'react';\nimport { getAgGridColId } from '../components/BlotterTable/columns/getAgGridColId';\nimport type { Column, ColumnDef } from '../components/BlotterTable/columns/types';\nimport { useDefaultColumns } from '../components/BlotterTable/useDefaultColumns';\nimport { EMPTY_ARRAY } from '../utils/empty';\nimport type {\n ExecTypeEnum,\n PricingModeEnum,\n SideEnum,\n TradeActionEnum,\n TradeSourceEnum,\n TradeStatusEnum,\n} from './types';\n\nexport const isCustomerTrade = (entity: any): entity is CustomerTrade => {\n return entity instanceof CustomerTrade;\n};\n\n// CustomerTradeCapture4225\nexport class CustomerTrade {\n static readonly rowID = 'TradeID';\n static readonly defaultColumns = [\n 'TransactTime',\n 'Counterparty',\n 'MarketAccount',\n 'TradeID',\n 'Side',\n 'Symbol',\n 'Amount',\n 'Quantity',\n 'Price',\n 'TradeStatus',\n ] satisfies (keyof CustomerTrade)[];\n\n TradeID!: string;\n\n OrderID?: string; // does not exist for manual trades\n\n Symbol!: string;\n\n Quantity!: string;\n\n Amount!: string;\n\n Fee?: string;\n\n User!: string;\n\n CustomerUser?: string;\n\n Timestamp!: string;\n\n DealtCurrency?: string;\n\n Price!: string;\n\n CredentialID?: string;\n\n ClTradeID?: string;\n\n TransactTime!: string;\n\n ExecType?: ExecTypeEnum;\n\n Currency!: string;\n\n AmountCurrency!: string;\n\n FeeCurrency?: string;\n\n TradeStatus?: TradeStatusEnum;\n\n Side!: SideEnum;\n\n AggressorSide?: SideEnum;\n\n OID?: string;\n\n EID?: string;\n\n QuoteID?: string;\n\n RFQID?: string;\n\n Group?: string;\n\n SubAccount?: string;\n\n Counterparty?: string;\n\n Comments?: string;\n\n TradeSource?: TradeSourceEnum;\n\n TradeAction?: TradeActionEnum;\n\n Revision?: string;\n\n UpdateUser?: string;\n\n MarketAccount!: string;\n\n MessageID?: string;\n\n SalesCommission?: string;\n\n PricingReference?: string;\n\n FixingDetails?: {\n Index?: string;\n Fixing?: string;\n };\n\n PricingMode?: PricingModeEnum;\n\n constructor(data: CustomerTrade) {\n Object.assign(this, data);\n }\n}\n\ninterface UseCustomerTradeColumns {\n defaultColumns?: (keyof CustomerTrade | Partial)[];\n}\n\nexport function useCustomerTradeColumns({ defaultColumns = EMPTY_ARRAY }: UseCustomerTradeColumns): Column[] {\n const defaultVisibleColumns = useMemo(\n () =>\n new Map(\n (\n [\n {\n field: 'Revision',\n id: 'revision_indicator',\n type: 'revision',\n },\n {\n field: 'TransactTime',\n type: 'date',\n width: 200,\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'Counterparty',\n title: 'Counterparty',\n type: 'customer',\n },\n {\n field: 'MarketAccount',\n type: 'text',\n title: 'Market Account',\n id: 'marketAccount',\n },\n {\n field: 'MarketAccount',\n type: 'marketAccountSourceAccountID',\n id: 'customerAccountID',\n hide: true,\n },\n {\n field: 'TradeID',\n type: 'id',\n },\n {\n field: 'Symbol',\n type: 'security',\n },\n {\n field: 'Side',\n type: 'side',\n },\n {\n field: 'Quantity',\n type: 'size',\n title: 'Filled Qty',\n params: { currencyField: 'Currency' },\n },\n {\n field: 'Price',\n type: 'price',\n title: 'Filled Price',\n sortable: true,\n params: { assetField: 'Symbol' },\n width: 120,\n },\n {\n field: 'Amount',\n title: 'Filled Counter Amount',\n type: 'size',\n params: { currencyField: 'AmountCurrency' },\n },\n {\n field: 'TradeStatus',\n type: 'tradeStatus',\n },\n {\n field: 'CustomerUser',\n type: 'user',\n title: 'Customer User',\n },\n {\n field: 'User',\n type: 'user',\n },\n {\n field: 'OrderID',\n type: 'id',\n },\n ] satisfies ColumnDef[]\n ).map(c => [getAgGridColId(c), c])\n ),\n []\n );\n const defaultHiddenColumns = useMemo(() => {\n return new Map(\n (\n [\n {\n field: 'Fee',\n type: 'size',\n params: { currencyField: 'FeeCurrency' },\n },\n {\n field: 'Timestamp',\n type: 'date',\n sortable: true,\n params: { milliseconds: true },\n },\n {\n field: 'CredentialID',\n type: 'text',\n },\n {\n field: 'ClTradeID',\n type: 'text',\n },\n {\n field: 'ExecType',\n type: 'text',\n },\n {\n field: 'AggressorSide',\n type: 'side',\n },\n {\n field: 'OID',\n type: 'text',\n },\n {\n field: 'EID',\n type: 'text',\n },\n {\n field: 'QuoteID',\n type: 'id',\n },\n {\n field: 'RFQID',\n type: 'id',\n },\n {\n field: 'Group',\n type: 'text',\n },\n {\n field: 'SubAccount',\n type: 'subAccount',\n },\n {\n field: 'Comments',\n type: 'text',\n },\n {\n field: 'TradeSource',\n type: 'text',\n },\n {\n field: 'TradeAction',\n type: 'text',\n },\n {\n field: 'Revision',\n type: 'text',\n },\n {\n field: 'UpdateUser',\n type: 'user',\n },\n {\n field: 'MessageID',\n type: 'text',\n },\n {\n field: 'PricingReference',\n type: 'price',\n hide: true,\n params: {\n isReferencePrice: true,\n },\n },\n {\n field: 'FixingDetails.Index',\n title: 'Fixing Index',\n type: 'text',\n },\n {\n field: 'FixingDetails.Fixing',\n title: 'Fixing Price',\n type: 'price',\n params: {\n // TODO fhqvst this should probably be `FixingDetails.Index`\n assetField: 'Symbol',\n },\n },\n ] satisfies (false | ColumnDef)[]\n ).map(c => [getAgGridColId(c), { ...c, hide: true }])\n );\n }, []);\n const columnDefinitions = useMemo(() => {\n return new Map(\n (\n [\n ...defaultVisibleColumns.values(),\n ...defaultHiddenColumns.values(),\n ] satisfies ColumnDef[] as Column[]\n ).map(c => [getAgGridColId(c), c])\n );\n }, [defaultVisibleColumns, defaultHiddenColumns]);\n return useDefaultColumns(defaultColumns, columnDefinitions);\n}\n","import type { ExpectTrue } from '../tests';\nimport type { OptionalProperties } from '../utils';\nimport type { IIndex, UpdateActionEnum } from './types';\n\nexport class FixingIndex {\n Timestamp: string;\n Revision: number;\n UpdateUser?: string;\n Name: string;\n DisplayName: string;\n DefaultSpreadIncrement?: string;\n MinSpreadIncrement?: string;\n SpreadDisplaySpec: string;\n ValidNominalIndexTime: number;\n NominalIndexTimeZone: string;\n Description: string;\n IndexID: string;\n UpdateAction: UpdateActionEnum;\n\n constructor(fixingIndex: OptionalProperties) {\n this.Timestamp = fixingIndex.Timestamp;\n this.Revision = fixingIndex.Revision;\n this.UpdateUser = fixingIndex.UpdateUser;\n this.Name = fixingIndex.Name;\n this.DisplayName = fixingIndex.DisplayName;\n this.DefaultSpreadIncrement = fixingIndex.DefaultSpreadIncrement;\n this.MinSpreadIncrement = fixingIndex.MinSpreadIncrement;\n this.SpreadDisplaySpec = fixingIndex.SpreadDisplaySpec;\n this.ValidNominalIndexTime = fixingIndex.ValidNominalIndexTime;\n this.NominalIndexTimeZone = fixingIndex.NominalIndexTimeZone;\n this.Description = fixingIndex.Description;\n this.IndexID = fixingIndex.IndexID;\n this.UpdateAction = fixingIndex.UpdateAction;\n }\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_FixingIndex_To_Only_Have_Keys_From_IIndex = ExpectTrue<\n {\n [K in keyof FixingIndex & string]: K extends keyof IIndex ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IIndex_To_Be_In_FixingIndex = ExpectTrue<\n {\n [K in keyof IIndex & string]: K extends keyof FixingIndex ? true : K;\n }[Exclude]\n>;\n","import type { ExpectTrue } from '../tests';\nimport type { OptionalProperties } from '../utils';\nimport type { IMarketIndex, UpdateActionEnum } from './types';\n\ntype Optional = 'UpdateUser' | 'EndTime';\ntype Omitted = 'IndexID';\ntype _IMarketIndex = OptionalProperties, Optional> & { Index: string };\n\nexport class MarketFixingIndex {\n Index: string;\n Market: string;\n MarketSymbol: string;\n Revision: number;\n Timestamp: string;\n UpdateAction: UpdateActionEnum;\n UpdateUser?: string;\n EndTime?: string;\n\n constructor(marketFixingIndex: _IMarketIndex) {\n this.Timestamp = marketFixingIndex.Timestamp;\n this.Revision = marketFixingIndex.Revision;\n this.UpdateUser = marketFixingIndex.UpdateUser;\n this.UpdateAction = marketFixingIndex.UpdateAction;\n this.Index = marketFixingIndex.Index;\n this.Market = marketFixingIndex.Market;\n this.MarketSymbol = marketFixingIndex.MarketSymbol;\n this.EndTime = marketFixingIndex.EndTime;\n }\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_FixingIndex_To_Only_Have_Keys_From_IIndex = ExpectTrue<\n {\n [K in keyof MarketFixingIndex & string]: K extends keyof _IMarketIndex ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_IMarketIndex_To_Be_In_MarketFixingIndex = ExpectTrue<\n {\n [K in keyof _IMarketIndex & string]: K extends keyof MarketFixingIndex ? true : K;\n }[Exclude]\n>;\n","import type { CustomerRole } from './CustomerRole';\nimport type { ModeEnum, UpdateActionEnum } from './types';\n\nexport interface MarketAccountAuthorizations {\n [customerAccount: string]: string[];\n}\nexport class CustomerUser {\n Config!: {\n Timestamp?: number;\n CustomerUserID?: string;\n Revision?: number;\n UpdateAction?: UpdateActionEnum;\n Key: string;\n Value: string;\n }[];\n CustomerUserID!: string;\n DisplayName!: string;\n Email!: string;\n ExternalID!: string;\n Counterparty!: string;\n Roles!: CustomerRole[];\n Mode!: ModeEnum;\n\n Permissions?: string[];\n\n // no value here means the user will have trade/write access to all accounts\n MarketAccountAuthorizations?: MarketAccountAuthorizations;\n\n constructor(data: CustomerUser) {\n Object.assign(this, data);\n }\n}\n","import type { ModeEnum } from './types';\n\nexport class CustomerTradingLimit {\n WarnThreshold!: string;\n RejectThreshold!: string;\n ThresholdCurrency!: string;\n Mode!: ModeEnum;\n Counterparty?: string; //name of Customer\n CustomerUser?: string; //email of CustomerUser\n Currency?: string;\n Symbol?: string;\n Description?: string;\n TradingLimitID?: string;\n UpdateAction?: string;\n MarketAccount?: string;\n\n constructor(data: CustomerTradingLimit) {\n Object.assign(this, data);\n }\n}\n","import Big from 'big.js';\nimport { EMPTY_OBJECT, bigMin } from '../utils';\nimport { SideEnum, type ExposureStatusEnum } from './types';\n\nexport class BuyingPower {\n readonly AvailableBuy?: string;\n readonly AvailableSell?: string;\n readonly Counterparty!: string;\n readonly Currency!: string;\n readonly MaxBuyOrderSize?: string;\n readonly MaxSellOrderSize?: string;\n readonly MarketAccount!: string;\n readonly Status!: ExposureStatusEnum;\n readonly Symbol!: string;\n readonly Timestamp!: string;\n readonly Text?: string;\n\n getMaxBuy({ useMaxOrderSize }: { useMaxOrderSize?: boolean } = EMPTY_OBJECT) {\n const buySizeBig = bigMin(this.MaxBuyOrderSize, this.AvailableBuy);\n return useMaxOrderSize ? buySizeBig?.toFixed() : this.AvailableBuy;\n }\n\n getMaxSell({ useMaxOrderSize }: { useMaxOrderSize?: boolean } = EMPTY_OBJECT) {\n const sellSizeBig = bigMin(this.MaxSellOrderSize, this.AvailableSell);\n return useMaxOrderSize ? sellSizeBig?.toFixed() : this.AvailableSell;\n }\n\n getMaxSize({ useMaxOrderSize, side }: { useMaxOrderSize?: boolean; side?: SideEnum | string } = EMPTY_OBJECT) {\n if (side === SideEnum.Buy) {\n return this.getMaxBuy({ useMaxOrderSize });\n } else if (side === SideEnum.Sell) {\n return this.getMaxSell({ useMaxOrderSize });\n } else {\n // Twoway\n const buySize = this.getMaxBuy({ useMaxOrderSize });\n const sellSize = this.getMaxSell({ useMaxOrderSize });\n return Big(buySize || '0').gt(sellSize || '0') ? buySize : sellSize;\n }\n }\n\n get rowID() {\n return `${this.MarketAccount}-${this.Currency}`;\n }\n\n constructor(data: BuyingPower) {\n Object.assign(this, data);\n }\n}\n","import type { ExpectTrue } from '../tests';\nimport type {\n IAllocation,\n ITradeSettleReport,\n SideEnum,\n TradeSettleActionEnum,\n TradeSettleSourceEnum,\n TradeSettleStatusEnum,\n} from './types';\n\nexport class TradeSettleReport {\n ReportID!: string;\n Timestamp!: string;\n TradeID!: string;\n TradeTransactTime!: string;\n TradeSide!: SideEnum;\n Revision!: number;\n Status!: TradeSettleStatusEnum;\n DueAsset!: string;\n Due!: string;\n CumSettledDue!: string;\n ProceedsAsset!: string;\n Proceeds!: string;\n CumSettledProceeds!: string;\n Price!: string;\n LastSettledDue!: string;\n LastSettledProceeds!: string;\n LastSettledSource!: TradeSettleSourceEnum;\n LastSourceID!: string;\n MarketAccount!: string;\n SubAccount?: string;\n TransactTime!: string;\n LastAction!: TradeSettleActionEnum;\n Counterparty!: string;\n InitialProceeds!: number;\n Allocation?: IAllocation;\n\n constructor(tsr: ITradeSettleReport) {\n Object.assign(this, tsr);\n }\n}\n\n// TYPE LEVEL TESTS\ntype _Expect_TradeSettleReport_To_Only_Have_Keys_From_ITradeSettleReport = ExpectTrue<\n {\n [K in keyof TradeSettleReport & string]: K extends keyof ITradeSettleReport ? true : K;\n }[Exclude]\n>;\ntype _Expect_All_Keys_In_ITradeSettleReport_To_Be_In_TradeSettleReport = ExpectTrue<\n {\n [K in keyof ITradeSettleReport & string]: K extends keyof TradeSettleReport ? true : K;\n }[Exclude]\n>;\n","import { isFunction, isNil, values } from 'lodash';\nimport { BehaviorSubject, Subject, timer, type Observable, type Subscription as RxJsSubscription } from 'rxjs';\nimport { repeat, retry } from 'rxjs/operators';\nimport { webSocket, type WebSocketSubject } from 'rxjs/webSocket';\nimport { AVA_PING, AVA_PONG, CANCEL, PAGE, SUBSCRIBE, type WL_PING, type WL_PONG } from '../tokens';\n\nimport type { ErrorSubscriptionResponse } from '../types';\nimport type { RequestStream } from '../types/RequestStream';\nimport type { Response } from '../types/Response';\nimport { logger, type LogContext } from '../utils';\nimport { formattedDateForSubscription } from '../utils/date';\nimport { Subscription, type SubscriptionCallback } from './subscription';\nimport { WebsocketErrorCodeEnum } from './types';\n\nconst CLOSE_NORMAL = 1000;\nconst CLOSE_GOING_AWAY = 1001;\nconst CLOSE_NO_STATUS_RECEIVED = 1005;\nconst CLOSE_ABNORMAL = 1006;\nconst WEBSOCKET_CLOSE_CODES = {\n [CLOSE_NORMAL]: 'Normal Closure',\n [CLOSE_GOING_AWAY]: 'Going Away',\n 1002: 'Protocol Error',\n 1003: 'Unsupported Data',\n 1004: '(For future)',\n [CLOSE_NO_STATUS_RECEIVED]: 'No Status Received',\n [CLOSE_ABNORMAL]: 'Abnormal Closure',\n 1007: 'Invalid frame payload data',\n 1008: 'Policy Violation',\n 1009: 'Message too big',\n 1010: 'Missing Extension',\n 1011: 'Internal Error',\n 1012: 'Service Restart',\n 1013: 'Try Again Later',\n 1014: 'Bad Gateway',\n 1015: 'TLS Handshake',\n} as const;\n\nfunction getCloseCodeString(code: keyof typeof WEBSOCKET_CLOSE_CODES) {\n if (code >= 0 && code <= 999) {\n return '(Unused)';\n }\n if (code <= 1015) {\n return WEBSOCKET_CLOSE_CODES[code];\n }\n if (code <= 1999) {\n return '(For WebSocket standard)';\n }\n if (code <= 2999) {\n return '(For WebSocket extensions)';\n }\n if (code <= 3999) {\n return '(For libraries and frameworks)';\n }\n if (code <= 4999) {\n return '(For applications)';\n }\n}\n\nfunction getConnectionData() {\n const nav: any = navigator;\n if (!('connection' in nav)) {\n return {};\n }\n return {\n connectionType: nav.connection.type,\n rtt: nav.connection.rtt,\n effectiveType: nav.connection.effectiveType,\n type: nav.connection.type,\n downlink: nav.connection.downlink,\n saveData: nav.connection.saveData,\n };\n}\n\nconst ErrorCodesCausingInactiveSubscription = new Set([\n WebsocketErrorCodeEnum.WebsocketErrorDuplicateReqID,\n WebsocketErrorCodeEnum.WebsocketErrorInvalidRequest,\n WebsocketErrorCodeEnum.WebsocketErrorInvalidStream,\n]);\n\nexport interface IWebSocketClient {\n isConnected: boolean;\n sessionId: string | null;\n performance: WebSocketPerformance | null;\n\n connect(url: string, options?: IWebSocketClientConnectOptions): void;\n closeAndReconnect(): void;\n /** Sends a message (\"publication\") and does not perform any subscription. Returns a cleanup function which should be called after some time to get rid of the onError handler. */\n registerPublication(request: object, onError?: (err: any) => void): () => void;\n registerSubscription(\n address: string,\n streams: RequestStream[],\n callback: Subscription['callback'],\n options?: { loadAll?: boolean; overrideParticipant?: string }\n ): () => void;\n unregisterSubscription(address: string): void;\n updateSubscription(address: string, streams: RequestStream[], callback?: unknown): void;\n pageSubscription(address: string, options?: { loadAll?: boolean }): void;\n sendMessage(message: object): void;\n sendTimedMessage(message: object): void;\n ping(data: object): void;\n pongs(): Observable>;\n\n /**\n * Notifies subscribers when the connection is opened (a \"hello\" event is received).\n */\n onOpen: Subject;\n /**\n * Notifies subscribers when an error message is received.\n */\n onError: Subject;\n /**\n * Notifies subscribers when the connection is closed.\n */\n onClose: Subject;\n}\n\ninterface IWebSocketClientConnectOptions {\n initialRetryInterval?: number;\n maxRetryInterval?: number;\n maxRetryAttempts?: number;\n}\n\ntype PingPongTypes = { ping: typeof AVA_PING | typeof WL_PING; pong: typeof AVA_PONG | typeof WL_PONG };\n\nexport class WebSocketClient implements IWebSocketClient {\n public sessionId: string | null;\n public isConnected = false;\n public performance: WebSocketPerformance | null;\n\n private url?: string;\n private subscriptionsByAddress: Map>;\n private subscriptionsByReqID: Map>;\n private canceledSubscriptions: Map>;\n private requestCount = 1;\n private socket?: WebSocketSubject>;\n public readonly onOpen: Subject;\n public readonly onError: Subject;\n public readonly onClose: Subject;\n private socketSubscription?: RxJsSubscription;\n private pongSubject: Subject>;\n private pongObservable: Observable>;\n // Customer Api and principal api have different ping/pong types.\n private pingPongTypes: PingPongTypes;\n\n /**\n * For each registerPublication invocation, we add the reqid we sent out here to keep track.\n * The value of the map is the onError callback. If it wasn't provided, the value will be null.\n */\n private publicationsByReqID: Map void) | null>;\n\n constructor({\n pingPongTypes = { ping: AVA_PING, pong: AVA_PONG },\n }: {\n pingPongTypes?: PingPongTypes;\n } = {}) {\n logger.info('[ws] Creating new WebSocketClient');\n this.subscriptionsByAddress = new Map();\n this.subscriptionsByReqID = new Map();\n this.canceledSubscriptions = new Map();\n this.sessionId = null;\n this.pingPongTypes = pingPongTypes;\n\n this.onOpen = new Subject();\n this.onError = new Subject();\n this.onClose = new Subject();\n this.performance = null;\n\n this.pongSubject = new Subject();\n this.pongObservable = this.pongSubject.asObservable();\n\n this.publicationsByReqID = new Map();\n }\n\n connect(\n url: string,\n {\n initialRetryInterval = 1000,\n maxRetryInterval = 15000,\n maxRetryAttempts = Infinity,\n }: IWebSocketClientConnectOptions = {}\n ) {\n logger.info('[ws] Creating new WebSocket', { extra: { url } });\n this.url = url;\n this.socket = webSocket({\n url,\n openObserver: {\n next: () => {\n logger.info('[ws] WebSocket connected');\n },\n },\n closeObserver: {\n next: e => {\n logger.info(`[ws] WebSocket closed`, {\n extra: {\n code: e.code,\n message: getCloseCodeString(e.code as keyof typeof WEBSOCKET_CLOSE_CODES),\n reason: e.reason,\n wasClean: e.wasClean,\n sessionId: this.sessionId,\n connection: getConnectionData(),\n },\n });\n\n this.isConnected = false;\n this.onClose.next(e);\n },\n },\n });\n\n this.socketSubscription = this.socket\n .pipe(\n // If there was an error starting, maintaining or closing the connection,\n // an `error` is emitted, in which case we `retry`.\n retry({\n count: maxRetryAttempts,\n delay: (_, numRetries) => timer(Math.min(maxRetryInterval, initialRetryInterval * Math.pow(2, numRetries))),\n }),\n\n // If the connection closes without any issues, a `complete` is emitted,\n // in which case we `repeat`.\n repeat({\n count: maxRetryAttempts,\n delay: numRetries => timer(Math.min(maxRetryInterval, initialRetryInterval * Math.pow(2, numRetries))),\n })\n )\n\n // Note that all we need to \"force close\" the connection is to unsubscribe from the observable.\n .subscribe({\n next: json => this.handleMessage(json),\n error: error => this.handleError(error),\n });\n }\n\n closeAndReconnect(\n connectArgs: { initialRetryInterval?: number; maxRetryInterval?: number; maxRetryAttempts?: number } = {}\n ) {\n logger.info('[ws] Closing and attempting reconnect');\n this.close();\n if (this.url == null) {\n throw new Error('Socket is not initialized');\n }\n this.connect(this.url, connectArgs);\n }\n\n close() {\n // Unsubscribe from the socket observable to close the connection.\n if (this.socketSubscription != null) {\n this.socketSubscription.unsubscribe();\n }\n }\n\n pongs() {\n return this.pongObservable;\n }\n\n registerPublication(request: object, onError?: (err: any) => void) {\n const reqid = this.requestCount++;\n this.publicationsByReqID.set(reqid, onError ?? null);\n this.sendMessage({ reqid, ...request });\n return () => {\n this && this.publicationsByReqID.delete(reqid);\n };\n }\n\n registerSubscription(\n address: string,\n streams: RequestStream[],\n callback: SubscriptionCallback,\n options?: {\n loadAll?: boolean;\n overrideParticipant?: string;\n }\n ) {\n if (this.subscriptionsByAddress.has(address)) {\n this.logError(`Subscription address ${address} is already in use`);\n }\n performance.mark(`${address}-start`);\n const reqid = this.requestCount++;\n const overrideParticipant = options?.overrideParticipant;\n const sub = new Subscription({\n address,\n streams,\n reqid,\n callback,\n loadAll: options?.loadAll,\n overrideParticipant,\n });\n this.subscriptionsByAddress.set(address, sub);\n this.subscriptionsByReqID.set(reqid, sub);\n\n /**\n * Tiny change to make sure we don't subscribe prematurely.\n * Just for this demo (but honestly we should probably just do this anyway, it's a better API)\n */\n this.sendTimedMessage({\n type: SUBSCRIBE,\n reqid,\n streams,\n overrideParticipant,\n });\n this.performance?.registerSubscription(reqid, streams);\n\n /** For convenience */\n return () => {\n this.unregisterSubscription(address);\n };\n }\n\n unregisterSubscription(address: string) {\n const sub = this.subscriptionsByAddress.get(address);\n if (sub == null) {\n this.logError(`Subscription not found while trying to unregister subscription on address ${address}`);\n return;\n }\n\n const reqid = sub.reqid;\n // Note: we always send a `cancel` message, even if the sub is *believed* to be inactive\n // We just ignore `unknown req id` errors for any subs in our canceled subscriptions list\n // This way, we can be sure to cancel subscriptions that are still active on the server.\n this.sendTimedMessage({\n type: CANCEL,\n tag: sub.streams[0]['Tag'],\n reqid,\n });\n\n // Dispose to avoid memory leak\n sub.dispose();\n\n // add to the canceled subs map, by both reqid and address\n this.canceledSubscriptions.set(reqid, sub);\n this.canceledSubscriptions.set(address, sub);\n this.subscriptionsByAddress.delete(address);\n this.subscriptionsByReqID.delete(reqid);\n this.performance?.unregisterSubscription(reqid);\n }\n\n updateSubscription(address: string, streams: RequestStream[], callback?: unknown) {\n const sub = this.subscriptionsByAddress.get(address);\n if (sub == null) {\n this.logError(`Subscription not found while trying to update subscription on address ${address}`);\n return;\n }\n\n // Since we can never quite be sure if an error response means that a subscription is active or not,\n // We amend subscriptions by cancelling the old one and sending a new subscribe request.\n // This also prevents us sending an `amend` that fails, and leaves the server with the old subscription\n // while the client side has the updated subscription details.\n // Instead, we'd now have one cancelled subscription, and one in-active subscription, which is consistent\n // with the server state.\n this.unregisterSubscription(address);\n return this.registerSubscription(address, streams, isFunction(callback) ? callback : sub?.callback, {\n loadAll: sub?.loadAll,\n });\n }\n\n pageSubscription(address, { loadAll = false } = {}) {\n const sub = this.subscriptionsByAddress.get(address);\n if (sub == null) {\n if (!this.canceledSubscriptions.has(address)) {\n this.logError(`Subscription not found while trying to page on address ${address}`);\n }\n return;\n }\n\n const { reqid, streams, next } = sub;\n if (streams.length > 1) {\n throw new Error('Paging subscriptions with multiple streams is not supported');\n }\n const stream = streams[0];\n sub.loadAll = loadAll;\n if (next != null) {\n return this.sendTimedMessage({\n type: PAGE,\n reqid,\n streams: [{ name: stream.name, after: next }],\n });\n }\n }\n\n sendMessage(message) {\n if (this.socket == null) {\n throw new Error('Socket is not initialized');\n }\n this.socket.next(message);\n }\n\n sendTimedMessage(message) {\n return this.sendMessage({\n ...message,\n ts: formattedDateForSubscription(new Date()),\n });\n }\n\n ping(data) {\n if (this.isConnected) {\n return this.sendTimedMessage({\n type: this.pingPongTypes.ping,\n reqid: this.requestCount++,\n data: [data],\n });\n }\n }\n\n pong(reqid, data) {\n return this.sendTimedMessage({\n type: this.pingPongTypes.pong,\n reqid,\n data,\n });\n }\n\n private handlePublicationMessage(json) {\n // It should always be an error, but just making it explicit...\n if (json.type === 'error') {\n this.logError(JSON.stringify(json.error), { message: json });\n\n const publicationErrorCallback = json.reqid ? this.publicationsByReqID.get(json.reqid) : undefined;\n if (publicationErrorCallback) {\n publicationErrorCallback(json);\n } else {\n logger.error(new Error('Unhandled websocket publication error'), { extra: json });\n }\n }\n }\n\n handleMessage(json) {\n const sub = this.subscriptionsByReqID.get(json.reqid);\n const reqSub = sub ?? this.canceledSubscriptions.get(json.reqid);\n\n // not all received messages will be related to a subscription. Some will be related to publications. These are one-way ui-to-backend messages\n // which can still receive responses (which should only happen in the case of an error). If we hit a publication message here, lets branch off into a different handler and exit.\n const isResponseToPublication = json.reqid ? this.publicationsByReqID.has(json.reqid) : undefined;\n if (isResponseToPublication) {\n this.handlePublicationMessage(json);\n return;\n }\n\n if (json.type === 'hello') {\n this.sessionId = json.session_id;\n if (this.performance) {\n this.performance.sessionId = this.sessionId;\n }\n this.isConnected = true;\n\n // Collect any active subscriptions\n const activeSubscriptions = [...this.subscriptionsByAddress.entries()];\n\n // Re-subscribe to any active subscriptions\n for (const [address, subscription] of activeSubscriptions) {\n this.updateSubscription(address, subscription.streams, subscription.callback);\n }\n\n logger.info('[ws] WebSocket handshake complete', { extra: { sessionId: this.sessionId } });\n\n return this.onOpen.next(this.sessionId);\n }\n\n if (json.type === this.pingPongTypes.ping) {\n return this.pong(json.reqid, json.data);\n }\n\n if (json.type === this.pingPongTypes.pong) {\n if (this.performance) {\n // clock skew estimate:\n // pingPayload - serverTS - (now - pingPayload) / 2\n // this is just an estimate as it does not account for processing time on the server. We assume for simple messages\n // this is much lower than our network latency.\n const pingPayload = new Date(json.data[0].ts).getTime();\n const skew = pingPayload - new Date(json.ts).getTime() - (new Date().getTime() - pingPayload) / 2;\n this.performance.clockSkew = skew;\n }\n this.pongSubject.next(json);\n return;\n }\n\n if (this.performance) {\n this.performance.onMessage(json);\n }\n\n // Note: we only ignore `UnknownReqID` errors here if the subscription is in our cancelled list\n // That usually indicates that we tried to cancel a subscription that never got setup correctly\n // (e.g. invalid stream, etc.).\n // If the reqid is not in our list of cancelled subscriptions, this is definitely still an error worth reporting\n\n const isIgnoredErrorCode = [\n WebsocketErrorCodeEnum.WebsocketErrorUnknownReqID,\n WebsocketErrorCodeEnum.WebsocketErrorSubscriptionLimit,\n WebsocketErrorCodeEnum.WebsocketErrorPermissionDenied,\n ].includes(json?.error?.code);\n const isCancelledSub = this.canceledSubscriptions.has(json.reqid);\n\n const shouldLogError = json.type === 'error' && !isIgnoredErrorCode && !isCancelledSub;\n\n if (shouldLogError) {\n this.logError(JSON.stringify(json.error), {\n subscription: {\n address: reqSub?.address,\n reqid: reqSub?.reqid,\n streams: reqSub?.streams,\n active: reqSub?.active,\n next: reqSub?.next,\n tag: reqSub?.streams?.map(s => s.tag).join(', '),\n cancelled: isNil(sub) && !isNil(reqSub),\n },\n });\n\n // mark this sub as inactive, so we won't try to unsubscribe later\n if (sub && ErrorCodesCausingInactiveSubscription.has(json.error.code)) {\n sub.active = false;\n }\n\n if (json.error.code === WebsocketErrorCodeEnum.WebsocketErrorInternalServerError) {\n this.onError.next(json);\n }\n }\n\n if (json.type === 'error') {\n const callback = sub?.callback;\n if (callback != null) {\n return callback(json);\n }\n }\n\n if (isNil(sub) && isCancelledSub) {\n // Sometimes the backend manages to send out messages right before\n // our `cancel` message has reached it\n return;\n }\n\n if (isNil(sub)) {\n this.logError('Subscription not found for request id', {\n level: 'info',\n extra: { json },\n });\n } else {\n sub.active = true; // in case it was inactive previously\n const { loadMore } = sub.handleJson(json);\n if (loadMore) {\n this.pageSubscription(sub.address, { loadAll: true });\n } else {\n if (json.initial) {\n performance.mark(`${sub.address}-end`);\n performance.measure(`sub-${json.type}-${json.tag}`, `${sub.address}-start`, `${sub.address}-end`);\n }\n }\n }\n }\n\n handleError(error) {\n console.warn('websocket error:', error);\n }\n\n logError = (message: string, context?: LogContext) => {\n return logger.error(new Error(message), {\n websocket: {\n url: this.url,\n sessionId: this.sessionId,\n },\n ...context,\n });\n };\n}\n\ndeclare global {\n // typing for https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation\n // - now in TS main due to limited browser support (was added then removed)\n interface NetworkInformation {\n type?: string;\n downlink?: number;\n effectiveType?: string;\n rtt?: number;\n }\n}\n\ninterface SubscriptionInfo {\n /** The first of the requestStreams, primarily used for typing to show that we always have at least one stream for this object to exist. */\n primaryStream: RequestStream;\n\n /** The raw request stream objects, these won't show up properly in the console table, but we can expand the object underneath the table to drill into these if needed. */\n requestStreams: RequestStream[];\n\n /** Total number of messages received for this subscription. */\n totalMessages: number;\n\n /** Data records received from this subscription if this stream is listed in the captureStreams local storage config. */\n capturedMessages: unknown[];\n\n /** Total number of data records received for this subscription. */\n totalRecords: number;\n\n /** Number of data records received since the last timed reset (every second). */\n recordsSinceLastSecond: number;\n\n /** Number of data records received in the previous second. Consider changing this to a moving average. */\n recordsInLastSecond: number;\n\n /** Time when the subscription was first subscribed to. */\n subscribedAt: Date;\n\n /** Time taken for the subscription to either receive it first message or when it has loaded it's last page of data. */\n loadTimeMs?: number;\n\n /** Time when the subscription was unsubscribed from. */\n unsubscribedAt?: Date;\n}\n\ntype SubscriptionInfos = { [reqid: string]: SubscriptionInfo };\n\nexport interface SubscriptionStats {\n reqId: string;\n sub: string;\n tag: string;\n totalMessages: number;\n totalRecords: number;\n recordsLastSecond: number;\n loadTimeMs?: number;\n subscribedTime: string;\n unsubscribedTime?: string;\n requestStreams: RequestStream[];\n isCapturedStream: boolean;\n capturedMessages: unknown[];\n}\nconst CAPTURED_STREAMS_KEY = 'stats.capturedStreams';\nconst LOG_SUBSCRIPTION_INFO_KEY = 'stats.logSubscriptionInfo';\nconst LOG_SUBSCRIPTION_INFO_TIME_LIMIT_KEY = 'stats.logSubscriptionInfoTimeLimit';\n\nexport class WebSocketPerformance {\n sessionId: string | null = null;\n interval: ReturnType | null = null;\n subject = new Subject<{\n messagesPerSecond: number;\n latencyPerSecond: number;\n activeSubscriptions: number;\n activeSubscriptionStats: SubscriptionStats[];\n canceledSubscriptions: number;\n canceledSubscriptionStats: SubscriptionStats[];\n }>();\n\n // estimate of the difference between the client and server clocks. This number (ms) should be subtracted to any\n // timestamp received from the server if comparing it to a local timestamp.\n clockSkew = 0;\n\n // Only send latency warnings once every 60s\n didSendLatencyWarning = false;\n latencySinceLastReset = 0;\n messagesSinceLastReset = 0;\n latencyPerSecond = 0;\n messagesPerSecond = 0;\n started = false;\n\n private subscriptionInfos: SubscriptionInfos = {};\n\n private capturedStreams: Set;\n\n activeSubscriptions = 0;\n canceledSubscriptions = 0;\n\n isLogSubscriptionInfo$ = new BehaviorSubject(this.isLogSubscriptionInfo());\n\n constructor() {\n this.sessionId = null;\n const capturedStreams = localStorage.getItem(CAPTURED_STREAMS_KEY);\n this.capturedStreams = new Set(capturedStreams?.split(','));\n }\n\n reset() {\n this.messagesSinceLastReset = 0;\n this.latencySinceLastReset = 0;\n }\n\n stats() {\n return this.subject;\n }\n\n registerSubscription(reqid: number, streams: RequestStream[]) {\n this.activeSubscriptions++;\n\n if (this.isLogSubscriptionInfo()) {\n if (streams.length > 0) {\n this.subscriptionInfos[reqid] = {\n primaryStream: streams[0],\n requestStreams: streams,\n totalMessages: 0,\n capturedMessages: [],\n totalRecords: 0,\n recordsInLastSecond: 0,\n recordsSinceLastSecond: 0,\n subscribedAt: new Date(),\n };\n }\n }\n }\n\n onMessage(json: any) {\n const { reqid, next, ts } = json;\n if (ts) {\n // We need to subtract the clock skew from the server timestamp to get the correct latency\n const latency = new Date().getTime() - Date.parse(ts) - this.clockSkew;\n this.latencySinceLastReset += latency;\n }\n this.messagesSinceLastReset += 1;\n\n const subscriptionInfo = this.subscriptionInfos[reqid];\n // this will be undefined if isLogSubscriptionInfo() is false\n if (subscriptionInfo) {\n const recordsLength = json.data?.length ?? 0;\n subscriptionInfo.totalMessages++;\n const streamName = subscriptionInfo.primaryStream.name;\n if (this.isCapturedStream(streamName)) {\n subscriptionInfo.capturedMessages.push(json);\n }\n subscriptionInfo.totalRecords += recordsLength;\n subscriptionInfo.recordsSinceLastSecond += recordsLength;\n if (!next && !subscriptionInfo.loadTimeMs) {\n subscriptionInfo.loadTimeMs = new Date().getTime() - subscriptionInfo.subscribedAt.getTime();\n }\n }\n }\n\n unregisterSubscription(reqid: number) {\n this.activeSubscriptions--;\n this.canceledSubscriptions++;\n\n const subscription = this.subscriptionInfos[reqid];\n if (subscription) {\n subscription.unsubscribedAt = new Date();\n }\n }\n\n private getSubscriptionStats(unsubscribed: boolean): SubscriptionStats[] {\n if (!this.isLogSubscriptionInfo()) {\n return [];\n }\n const filteredSubscriptions = Object.entries(this.subscriptionInfos).filter(([, s]) =>\n unsubscribed ? !!s.unsubscribedAt : !s.unsubscribedAt\n );\n\n return filteredSubscriptions.map(([reqid, info]) => {\n return {\n reqId: reqid,\n sub: info.primaryStream.name,\n tag: info.primaryStream.tag,\n totalMessages: info.totalMessages,\n totalRecords: info.totalRecords,\n recordsLastSecond: info.recordsInLastSecond,\n loadTimeMs: info.loadTimeMs,\n subscribedTime: info.subscribedAt?.toLocaleTimeString(),\n unsubscribedTime: info.unsubscribedAt?.toLocaleTimeString(),\n requestStreams: info.requestStreams,\n isCapturedStream: this.isCapturedStream(info.primaryStream.name),\n capturedMessages: info.capturedMessages,\n };\n });\n }\n\n start() {\n this.interval = setInterval(() => {\n this.messagesPerSecond = this.messagesSinceLastReset;\n\n if (this.isLogSubscriptionInfoTimeLimitExceeded()) {\n this.setLogSubscriptionInfo(false);\n }\n if (this.isLogSubscriptionInfo()) {\n values(this.subscriptionInfos).forEach(info => {\n info.recordsInLastSecond = info.recordsSinceLastSecond;\n info.recordsSinceLastSecond = 0;\n });\n }\n\n if (this.messagesSinceLastReset > 0) {\n this.latencyPerSecond = Math.round(this.latencySinceLastReset / this.messagesSinceLastReset);\n } else {\n this.latencyPerSecond = 0;\n }\n\n this.subject.next({\n messagesPerSecond: this.messagesPerSecond,\n latencyPerSecond: this.latencyPerSecond,\n activeSubscriptions: this.activeSubscriptions,\n activeSubscriptionStats: this.getSubscriptionStats(false),\n canceledSubscriptions: this.canceledSubscriptions,\n canceledSubscriptionStats: this.getSubscriptionStats(true),\n });\n\n if (this.latencyPerSecond > 0) {\n logger.trackDuration('responseLatencyAvg', {\n startTime: new Date().getTime(),\n duration: this.latencyPerSecond,\n context: {\n activeSubscriptions: this.activeSubscriptions,\n messagesPerSecond: this.messagesPerSecond,\n },\n });\n }\n\n this.reset();\n }, 1000);\n }\n\n stop() {\n this.started = false;\n if (this.interval != null) {\n clearInterval(this.interval);\n }\n }\n\n isLogSubscriptionInfo() {\n // only log subscription info when feature flag is set as subscription info will grow indefinitely over time.\n return localStorage.getItem(LOG_SUBSCRIPTION_INFO_KEY) === 'true';\n }\n\n isLogSubscriptionInfoTimeLimitExceeded() {\n // we want to do this in case someone has accidentally left subscription logging on, which will eventually cause an OOM.\n const timeLimit = localStorage.getItem(LOG_SUBSCRIPTION_INFO_TIME_LIMIT_KEY);\n if (!timeLimit) {\n return false;\n }\n return new Date(timeLimit) < new Date();\n }\n\n setLogSubscriptionInfo(enabled: boolean) {\n if (!enabled) {\n this.subscriptionInfos = {};\n localStorage.removeItem(LOG_SUBSCRIPTION_INFO_KEY);\n this.capturedStreams.clear();\n localStorage.removeItem(CAPTURED_STREAMS_KEY);\n localStorage.removeItem(LOG_SUBSCRIPTION_INFO_TIME_LIMIT_KEY);\n } else {\n localStorage.setItem(LOG_SUBSCRIPTION_INFO_KEY, 'true');\n // save UTC date one hour from now to localStorage to automatically stop logging subscription info after an hour.\n const stopTime = new Date();\n stopTime.setHours(stopTime.getHours() + 1);\n localStorage.setItem(LOG_SUBSCRIPTION_INFO_TIME_LIMIT_KEY, stopTime.toISOString());\n }\n this.isLogSubscriptionInfo$.next(enabled);\n }\n\n isCapturedStream(stream?: string) {\n return stream ? this.capturedStreams.has(stream) ?? false : false;\n }\n\n setCapturedStream(stream: string, enabled: boolean) {\n if (enabled) {\n this.capturedStreams.add(stream);\n } else {\n this.capturedStreams.delete(stream);\n }\n localStorage.setItem(CAPTURED_STREAMS_KEY, [...this.capturedStreams].join(','));\n }\n}\n","import { createContext, memo, useContext, useEffect, useState, type ReactNode } from 'react';\nimport { useAuthContext, useEndpointsContext } from '../contexts';\nimport { WebSocketStatus } from '../tokens/socket';\nimport { WebSocketClient, WebSocketPerformance, type IWebSocketClient } from './WebSocketClient';\n\nexport interface WebSocketContextProps {\n client?: IWebSocketClient | null;\n status: WebSocketStatus;\n performance?: any;\n}\nexport const WebSocketContext = createContext>({\n status: WebSocketStatus.CONNECTING,\n});\nWebSocketContext.displayName = 'WebSocketContext';\n\nexport function useSocketClient() {\n const { client } = useContext(WebSocketContext);\n if (client === undefined) {\n throw new Error('Missing WebSocketClient.Provider further up in the tree. Did you forget to add it?');\n }\n return client as IWebSocketClient;\n}\n\nexport function useSocketStatus() {\n const { status } = useContext(WebSocketContext);\n return status;\n}\n\ntype WebSocketClientProviderProps = {\n wsEndpoint?: string;\n pingPongTypes?: WebSocketClient['pingPongTypes'];\n children: ReactNode;\n wsClient?: WebSocketClient;\n};\n\nexport const WebSocketClientProvider = memo(function WebSocketClientProvider(props: WebSocketClientProviderProps) {\n const authContext = useAuthContext();\n const { wsEndpoint } = useEndpointsContext();\n const [client, setClient] = useState(null);\n const [status, setStatus] = useState(WebSocketStatus.CONNECTING);\n const [socketUrl, setSocketUrl] = useState();\n const performance = useState(null);\n\n useEffect(() => {\n if (authContext.isAuthenticated) {\n const urlWithVersion = `${wsEndpoint}/${import.meta.env.VITE_GIT_HASH}`;\n setSocketUrl(urlWithVersion);\n }\n }, [authContext, wsEndpoint]);\n\n const isAuthenticated = authContext?.isAuthenticated;\n useEffect(() => {\n if (socketUrl && isAuthenticated) {\n const performance = new WebSocketPerformance();\n const client =\n props.wsClient ??\n new WebSocketClient({\n pingPongTypes: props.pingPongTypes,\n });\n client.performance = performance;\n const onOpen = client.onOpen.subscribe(() => {\n setStatus(WebSocketStatus.CONNECTED);\n });\n const onClose = client.onClose.subscribe(e => {\n setStatus(WebSocketStatus.RECONNECTING);\n });\n client.connect(socketUrl);\n performance.start();\n setClient(client);\n return () => {\n performance.stop();\n client.close();\n onOpen.unsubscribe();\n onClose.unsubscribe();\n setClient(null);\n };\n } else {\n setClient(null);\n }\n }, [isAuthenticated, socketUrl, props.pingPongTypes, props.wsClient]);\n\n return (\n {props.children}\n );\n});\n","import { useEffect, useState } from 'react';\n\nexport const usePageVisibility = () => {\n const [isVisible, setIsVisible] = useState(!document.hidden);\n\n const handleVisibilityChange = () => {\n setIsVisible(!document.hidden);\n };\n\n useEffect(() => {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n return isVisible;\n};\n","import { useCallback, useDebugValue, useEffect, useMemo, useRef, useState } from 'react';\nimport { useUnmount } from 'react-use';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { WebSocketStatus } from '../tokens/socket';\n\nimport { v4 as uuid } from 'uuid';\nimport { useConstant } from './useConstant';\nimport { useDynamicCallback } from './useDynamicCallback';\n\nimport { useSocketClient, useSocketStatus } from '../providers/WebSocketClientProvider';\nimport type { RequestStream } from '../types/RequestStream';\n\nimport type { SubscriptionCallback } from '../providers';\nimport {\n isErrorSubscriptionResponse,\n type ErrorSubscriptionResponse,\n type SubscriptionResponse,\n} from '../types/SubscriptionResponse';\nimport { usePageVisibility } from './usePageVisibility';\nexport interface NextPageOptions {\n loadAll?: boolean;\n}\n\nexport interface UseSubscriptionReturn {\n isLoading: boolean;\n data: Observable;\n error: Observable;\n /**\n * Push a manual update to the stream.\n * Can be used for example to perform kinds of optimistic updates, or just push in REST operation success results for immediate frontend feedback.\n * If you are pushing manual updates and co-mingling that with backend updates, make sure your pipeline is idempotent.\n */\n push: (message: T) => void;\n nextPage: (options?: NextPageOptions) => void;\n}\n\nexport type UseSubscriptionRequest = RequestStream | RequestStream[] | null;\n\nexport interface UseSubscriptionOptions {\n replay?: boolean;\n loadAll?: boolean;\n overrideParticipant?: string;\n unsubscribeOnPageInvisibility?: boolean;\n}\n\n/** Subscribe to Ava Service endpoints via the given requests\n * @param request The request to subscribe to; if set to null, the subscription will be unsubscribed (or won't be started)\n * @param options Options for the subscription\n * @returns An object containing the subscription state\n */\nexport function useSubscription>(\n request: UseSubscriptionRequest,\n options?: UseSubscriptionOptions\n): UseSubscriptionReturn;\nexport function useSubscription(\n request: UseSubscriptionRequest,\n options?: UseSubscriptionOptions\n): UseSubscriptionReturn>;\nexport function useSubscription(\n request: UseSubscriptionRequest,\n { replay = true, ...options }: UseSubscriptionOptions = {}\n): UseSubscriptionReturn {\n const address = useConstant(uuid());\n\n // Must keep track of request so we know when to update subscription\n const activeRequest = useRef();\n\n // Must also keep track of if we have an RxJS subscriber.\n // If not, there's no point in performing the socket subscription.\n const [subscriberCount, setSubscriberCount] = useState(0);\n const hasSubscriber = subscriberCount > 0;\n\n // Keep track of the current isLoading state.\n const [isLoading, setIsLoading] = useState(false);\n\n const client = useSocketClient();\n const status = useSocketStatus();\n\n const isPageVisible = usePageVisibility();\n\n const subject = useMemo(() => {\n return replay ? new ReplaySubject(1) : new Subject();\n }, [replay]);\n\n const errors = useMemo(() => {\n return replay\n ? new ReplaySubject(1)\n : new Subject();\n }, [replay]);\n\n const observable = useMemo(\n () =>\n new Observable(subscriber => {\n const subscription = subject.asObservable().subscribe(x => {\n // If we are loading all, and there is a next page, we're not done loading yet\n setIsLoading(!!options.loadAll && !!x.next);\n subscriber.next(x);\n });\n setSubscriberCount(curr => curr + 1);\n return () => {\n subscription.unsubscribe();\n setSubscriberCount(curr => curr - 1);\n };\n }),\n [subject, options.loadAll]\n );\n\n const errorObservable = useMemo(\n () =>\n new Observable(subscriber => {\n const subscription = errors.asObservable().subscribe(x => {\n subscriber.next(x);\n });\n return () => {\n subscription.unsubscribe();\n };\n }),\n [errors]\n );\n\n const callback: SubscriptionCallback = useCallback(\n (err, json) => {\n if (err && isErrorSubscriptionResponse(err)) {\n errors.next(err);\n }\n if (json) {\n errors.next(undefined);\n subject.next(json);\n }\n },\n [subject, errors]\n );\n\n useEffect(() => {\n if (client == null || status !== WebSocketStatus.CONNECTED) {\n return;\n }\n let requestStream: RequestStream[] | null = request as RequestStream[];\n\n // null-check so we don't do `request = [undefined]`\n if (request != null && !Array.isArray(request)) {\n // Eslint tells us to store the request in a useRef, but this works just fine\n requestStream = [request];\n }\n\n // Set request to `null` if there are no streams specified\n if (request != null && (request as object[]).length === 0) {\n requestStream = null;\n }\n\n // amend: have active subscription, request is set (but changed), and component is mounted\n if (\n requestStream != null &&\n hasSubscriber &&\n activeRequest.current != null &&\n JSON.stringify(requestStream) !== JSON.stringify(activeRequest.current)\n ) {\n setIsLoading(true);\n client.updateSubscription(address, requestStream, callback);\n activeRequest.current = requestStream;\n }\n\n // register: have no active subscription, request is set and component is mounted\n else if (\n activeRequest.current == null &&\n requestStream != null &&\n hasSubscriber &&\n (!options.unsubscribeOnPageInvisibility || isPageVisible)\n ) {\n setIsLoading(true);\n client.registerSubscription(address, requestStream, callback, options);\n activeRequest.current = requestStream;\n }\n\n // cancel: have active subscription, but request is null\n else if (activeRequest.current != null && requestStream == null) {\n setIsLoading(false);\n client.unregisterSubscription(address);\n activeRequest.current = null;\n }\n\n // cancel: do not have any active subscriptions, but there is an active request\n else if (!hasSubscriber && activeRequest.current != null) {\n activeRequest.current = null;\n client.unregisterSubscription(address);\n }\n\n // unsubscribe on page invisibility\n else if (options.unsubscribeOnPageInvisibility && !isPageVisible && activeRequest.current != null) {\n activeRequest.current = null;\n client.unregisterSubscription(address);\n }\n }, [address, status, client, request, callback, hasSubscriber, options, isPageVisible]);\n\n useUnmount(() => {\n if (activeRequest.current != null) {\n activeRequest.current = null;\n client.unregisterSubscription(address);\n }\n });\n\n useDebugValue(address, () => ({ address, activeRequest: activeRequest.current, hasSubscriber }));\n\n const nextPage = useDynamicCallback((options: NextPageOptions = {}) => {\n client.pageSubscription(address, options);\n });\n\n const push = useDynamicCallback((message: T) => {\n subject.next(message as SubscriptionResponse);\n });\n\n // Toggle the `isLoading` status when we receive an error message from the backend\n useEffect(() => {\n const errorSubscription = errorObservable.subscribe(() => setIsLoading(false));\n return () => errorSubscription.unsubscribe();\n }, [errorObservable, setIsLoading]);\n\n return {\n isLoading,\n data: observable as unknown as Observable,\n error: errorObservable as unknown as Observable,\n push,\n nextPage,\n };\n}\n","import { useEffect, useState } from 'react';\nimport { useWLOrgConfigContext } from '../providers/WLOrgConfigProvider';\nimport type { RequestStream, UpdateActionEnum } from '../types';\nimport { useObservableValue } from './useObservable';\nimport { useSubscription } from './useSubscription';\n\n/**\n * Hook to get the Current Fee Tier using the CurrentFeeTier subscription\n * @returns {string | undefined} The current name of the fee tier\n */\nexport const useCurrentFeeTier = (): string | undefined => {\n const { config } = useWLOrgConfigContext();\n const [request, setRequest] = useState(null);\n\n useEffect(() => {\n // Only set the request to non-null if config.showUserFeeTier is true\n if (config.showUserFeeTier) {\n setRequest({ name: 'CurrentFeeTier', tag: 'USE_CURRENT_FEE_TIER' });\n }\n }, [config.showUserFeeTier]);\n\n const { data: currentFeeTierObs } = useSubscription<{\n FeeTier?: string;\n UpdateAction: UpdateActionEnum;\n }>(request);\n\n const response = useObservableValue(() => currentFeeTierObs, [currentFeeTierObs]);\n return response?.data?.at(0)?.FeeTier;\n};\n","import { useMemo, useState } from 'react';\nimport { useDynamicCallback } from './useDynamicCallback';\n\nexport interface UseDisclosureProps {\n isOpen?: boolean;\n initialIsOpen?: boolean;\n onClose?(): void;\n onOpen?(): void;\n}\n\n/**\n * `useDisclosure` is a custom hook used to help handle common open, close, or toggle scenarios.\n * It can be used to control feedback components such as `Modal`, `Dialog`, `Drawer`, etc.\n */\nexport function useDisclosure(props: UseDisclosureProps = {}) {\n const [isOpenState, setIsOpen] = useState(props.initialIsOpen || false);\n const isOpen = props.isOpen === undefined ? isOpenState : props.isOpen;\n const isControlled = props.isOpen !== undefined;\n\n const close = useDynamicCallback(() => {\n if (!isControlled) {\n setIsOpen(false);\n }\n props.onClose?.();\n });\n\n const open = useDynamicCallback(() => {\n if (!isControlled) {\n setIsOpen(true);\n }\n props.onOpen?.();\n });\n\n const toggle = useDynamicCallback(() => (isOpen ? close() : open()));\n\n return useMemo(\n () => ({\n open,\n close,\n toggle,\n\n isOpen,\n isControlled,\n }),\n [open, close, toggle, isOpen, isControlled]\n );\n}\n\nexport type UseDisclosureReturn = ReturnType;\n","import { kebabCase } from 'lodash';\nimport { useCallback, useDebugValue, useMemo } from 'react';\n\nconst idCounter = new Map();\nfunction getCount(description: string): number {\n const counter = (idCounter.get(description) ?? -1) + 1;\n idCounter.set(description, counter);\n return counter;\n}\n/**\n * A hook to generate unique ids for elements.\n *\n * @description\n * This hook returns a function to call whenever you need an id.\n * Within your component, any calls to this function would be memoized,\n * i.e. if you call it with some input, it will always return the same value.\n * This makes it work well for generating input / label ids, etc.\n * If multiple components call this hook with the same prefix, they will all have unique suffixes.\n *\n * @example\n * ```\n * // inside your component\n * const id = useElementId(props.id ?? 'component-name');\n *\n * return

\n * \n * \n *
;\n * ```\n *\n * @param prefix Component description / name / id\n * @returns A function that will generate unique ids for elements\n */\nexport function useElementId(prefix: string): (id: string) => string {\n const idPrefix = kebabCase(prefix);\n const uniqueId = useMemo(() => getCount(idPrefix), [idPrefix]);\n useDebugValue(`${idPrefix}-*-${uniqueId}`);\n const uniqueIdGenerator = useCallback((id: string) => `${idPrefix}-${id}-${uniqueId}`, [idPrefix, uniqueId]);\n return uniqueIdGenerator;\n}\n","import type { Security } from '../types/Security';\nimport { ProductTypeEnum, SettleValueTypeEnum } from '../types/types';\nimport { isCounterCurrency, toBigWithDefault } from '../utils';\nimport { useCurrencyConversionRateValue } from './useCurrencyConversionRate';\n\n/**\n * Calculates the total estimated notional amount for an order given the quantity and the limit price entered by the user.\n */\nexport const useEstimatedAmount = ({\n OrderQty,\n Currency,\n LimitPrice,\n security,\n marketRate,\n}: {\n OrderQty?: string;\n Currency?: string;\n LimitPrice?: string;\n security?: Security;\n marketRate?: string;\n}) => {\n const { BaseCurrency, QuoteCurrency, NotionalMultiplier, ProductType } = security || {};\n const usingCounterCurrency = isCounterCurrency(Currency, security);\n let conversionCurrency = Currency;\n let amtCurrency = usingCounterCurrency ? BaseCurrency : QuoteCurrency;\n if (!Currency || Currency === '') {\n // For contracts use conversion rate of security.Symbol and amtCurrency based on SettleValueType\n conversionCurrency = security?.Symbol;\n amtCurrency = security?.SettleValueType === SettleValueTypeEnum.Inverted ? BaseCurrency : QuoteCurrency;\n }\n const { Rate: conversionRate } = useCurrencyConversionRateValue(conversionCurrency, amtCurrency) ?? {};\n\n if (!security) {\n return null;\n }\n let estimatedAmount: string | null = null;\n const limitPriceBig = toBigWithDefault(LimitPrice, 0);\n const orderQtyBig = toBigWithDefault(OrderQty, 0);\n const marketRateBig = toBigWithDefault(marketRate, 0);\n const conversionRateBig = toBigWithDefault(conversionRate, 0);\n if (orderQtyBig.lte(0)) {\n return null;\n }\n\n switch (ProductType) {\n case ProductTypeEnum.Spot:\n if (limitPriceBig.gt(0)) {\n estimatedAmount = usingCounterCurrency\n ? orderQtyBig\n .div(NotionalMultiplier || 1)\n .div(limitPriceBig)\n .toFixed()\n : orderQtyBig\n .times(NotionalMultiplier || 1)\n .times(limitPriceBig)\n .toFixed();\n } else if (marketRateBig.gt(0)) {\n estimatedAmount = usingCounterCurrency\n ? orderQtyBig\n .div(NotionalMultiplier || 1)\n .div(marketRateBig)\n .toFixed()\n : orderQtyBig\n .times(NotionalMultiplier || 1)\n .times(marketRateBig)\n .toFixed();\n } else if (conversionRateBig.gt(0)) {\n estimatedAmount = orderQtyBig\n .times(NotionalMultiplier || 1)\n .times(conversionRateBig)\n .toFixed();\n }\n break;\n\n case ProductTypeEnum.Future:\n case ProductTypeEnum.PerpetualSwap:\n case ProductTypeEnum.CFD:\n if (limitPriceBig.gt(0)) {\n if (!Currency || Currency === '') {\n // Contracts\n if (security?.SettleValueType === SettleValueTypeEnum.Inverted) {\n estimatedAmount = orderQtyBig.mul(security.NotionalMultiplier).div(limitPriceBig).toFixed();\n } else {\n estimatedAmount = orderQtyBig.mul(security.NotionalMultiplier).mul(limitPriceBig).toFixed();\n }\n } else if (usingCounterCurrency) {\n estimatedAmount = orderQtyBig.div(limitPriceBig).toFixed();\n } else {\n estimatedAmount = orderQtyBig.mul(limitPriceBig).toFixed();\n }\n } else if (marketRateBig.gt(0)) {\n if (usingCounterCurrency) {\n estimatedAmount = orderQtyBig.div(marketRateBig).toFixed();\n } else {\n estimatedAmount = orderQtyBig.times(marketRateBig).toFixed();\n }\n } else if (conversionRateBig.gt(0)) {\n estimatedAmount = orderQtyBig.times(conversionRateBig).toFixed();\n }\n break;\n }\n\n return estimatedAmount;\n};\n","import { createContext, useContext } from 'react';\n\nconst defaultValue: InlineFormattedNumberContextProps = { showAllDecimals: false };\nexport const InlineFormattedNumberContext = createContext(defaultValue);\n\nexport interface InlineFormattedNumberContextProps {\n showAllDecimals: boolean;\n}\n\nexport function useInlineFormattedNumberContext() {\n return useContext(InlineFormattedNumberContext);\n}\n","import type React from 'react';\nimport { memo, useContext, type ReactNode } from 'react';\n\nimport { abbreviate, format, highlight, toBigWithDefault } from '../../utils/number';\n\nimport { Big } from 'big.js';\nimport { isEqual } from 'lodash';\nimport type { DefaultTheme } from 'styled-components';\nimport { CurrenciesContext } from '../../contexts';\nimport { Icon } from '../Icons';\nimport { useInlineFormattedNumberContext } from './InlineFormattedNumberContext';\nimport { Currency, FullNumber, Highlight, Indicator, Number, NumberWrapper, RoundedNumber } from './styles';\nimport { SmartTruncateEnum, type InlineFormattedNumberProps, type NumberVariants } from './types';\n\nexport { NumberWrapper } from './styles';\n\nconst DEFAULT_ICON_STYLE = {\n size: 9,\n style: { marginRight: '2px' },\n};\n\n// The maximum increment that shows on compact mode before truncated *\nconst SMART_TRUNCATE_MAX_INCREMENT = '0.00001';\nconst SMART_TRUNCATE_THRESHOLD = 1000000;\nconst trimZeroesFunc = (value: string, trimZeroesRegExp: RegExp) => {\n const [_, beforeDecimal, afterDecimal] = trimZeroesRegExp.exec(value) ?? [];\n return afterDecimal?.length ? `${beforeDecimal}.${afterDecimal}` : beforeDecimal;\n};\n\nexport const InlineFormattedNumber: React.FC = memo(\n props => {\n const {\n number,\n startIcon,\n specification = 'M.m',\n increment: _increment,\n isSmall: _isSmall,\n largeHighlight,\n highlightAll = true,\n currency,\n background,\n align = 'left',\n variant,\n truncate = true,\n pretty = true,\n round = false,\n estimate = false,\n theme,\n showSign,\n highlightColor,\n smartTruncate = SmartTruncateEnum.None,\n smartTruncateThreshold = SMART_TRUNCATE_THRESHOLD,\n trimTrailingZeroes = smartTruncate === SmartTruncateEnum.Compact,\n prefix,\n } = props;\n\n const { showAllDecimals } = useInlineFormattedNumberContext();\n\n const currenciesContext = useContext(CurrenciesContext);\n const currencyInfo = currenciesContext?.currenciesBySymbol?.get(currency ?? '');\n const increment = _increment ?? currencyInfo?.DefaultIncrement;\n const incrementIsTooSmall =\n smartTruncate === SmartTruncateEnum.Compact &&\n toBigWithDefault(increment, 0).gt(0) &&\n toBigWithDefault(increment, 0).lt(SMART_TRUNCATE_MAX_INCREMENT);\n const isSmall = _isSmall ?? incrementIsTooSmall;\n\n if (number == null) {\n return null;\n }\n\n const formatFn =\n smartTruncate === SmartTruncateEnum.Compact && Big(number).gte(smartTruncateThreshold) ? abbreviate : format;\n\n const fullNumberString = formatFn(number.toString(), { spec: increment, pretty, showSign });\n const numberString = formatFn(number.toString(), {\n spec: incrementIsTooSmall ? SMART_TRUNCATE_MAX_INCREMENT : increment,\n truncate,\n round,\n pretty,\n showSign,\n });\n\n let formattedFullNumberString = fullNumberString;\n let formattedNumberString = numberString;\n\n if (trimTrailingZeroes) {\n /**\n * Anything before a possible decimal point, followed by a decimal point with any number of digits,\n * ending in any number of explicit 0's. If there's no decimal point, take the whole string as capture\n * group 1. If there's a decimal point with digits following it, take any number of digits excluding\n * trailing 0's before end of string as capture group 2.\n */\n const [_, afterDecimal] = increment?.split('.') || [];\n const trimZeroesRegExp = new RegExp(`(.+?)(?:\\\\.([\\\\d]{${afterDecimal?.length ?? 0},}?)0*)?$`);\n\n formattedFullNumberString = trimZeroesFunc(fullNumberString, trimZeroesRegExp);\n formattedNumberString = trimZeroesFunc(numberString, trimZeroesRegExp);\n }\n\n if (showAllDecimals) {\n // Catch-all for circumventing any and all formatting.\n formattedNumberString = formattedFullNumberString;\n }\n\n let parts;\n let fullParts: ReactNode[];\n\n if (highlightAll) {\n parts = [\n \n {formattedNumberString}\n ,\n ];\n fullParts = [\n \n {formattedFullNumberString}\n ,\n ];\n } else {\n parts = buildParts(formattedNumberString, specification, isSmall, largeHighlight, variant);\n fullParts = buildParts(formattedFullNumberString, specification, isSmall, largeHighlight, variant);\n }\n\n return round || formattedFullNumberString === formattedNumberString ? (\n \n {estimate && '~'}\n {startIcon && }\n \n {prefix}\n {parts}\n \n {currency && (\n \n {' '}\n {currency}\n \n )}\n \n ) : (\n \n \n {estimate && '~'}\n {startIcon && }\n \n {prefix}\n {parts}\n \n \n *\n \n {currency && (\n \n {' '}\n {currency}\n \n )}\n \n \n {estimate && '~'}\n {startIcon && }\n \n {prefix}\n {fullParts}\n \n {currency && (\n \n {' '}\n {currency}\n \n )}\n \n \n );\n },\n (p, n) => isEqual(p, n)\n);\n\nfunction buildParts(\n numberString: string,\n specification: string,\n isSmall?: boolean,\n largeHighlight?: boolean,\n sentiment?: NumberVariants,\n theme?: DefaultTheme\n) {\n const parts: (JSX.Element | string)[] = [];\n const hi = highlight({ number: numberString, specification: specification });\n const v = hi.value;\n const s = hi.highlight[0];\n const e = hi.highlight[1] ?? 0;\n if (s == null) {\n parts.push(v);\n } else {\n if (s > 0) {\n parts.push(v.slice(0, s));\n }\n parts.push(\n \n {v.slice(s, e + 1)}\n \n );\n if (e + 1 < v.length) {\n parts.push(v.slice(e + 1));\n }\n }\n return parts;\n}\n","import { Fragment, type CSSProperties } from 'react';\nimport { format, highlight } from '../../utils/number';\nimport type { NumberVariants } from './types';\n\nimport { useTheme } from 'styled-components';\nimport { Currency, StackedNumber } from './styles';\n\nexport function StackedFormattedNumber({\n number,\n increment,\n specification = 'M.m',\n highlightAll,\n variant,\n round = false,\n pretty = true,\n largeSize,\n baseSize,\n currency,\n}: StackedFormattedNumberProps) {\n const numberString = number == null ? '-' : format(number, { spec: increment, round, pretty });\n const hi = highlight({ number: numberString, specification });\n const value = hi.value;\n const startHighlight = hi.highlight[0];\n const endHighlight = hi.highlight[1];\n const theme = useTheme();\n\n const parts: JSX.Element[] = [];\n if (startHighlight == null || endHighlight == null) {\n return (\n <>\n \n  \n \n \n {value}\n {currency && (\n \n {' '}\n {currency}\n \n )}\n \n \n  \n \n \n );\n } else {\n parts.push(\n \n {startHighlight > 0 ? value.slice(0, startHighlight) : <> }\n \n );\n parts.push(\n \n {value.slice(startHighlight, endHighlight + 1)}\n {currency && (\n \n {' '}\n {currency}\n \n )}\n \n );\n parts.push(\n \n {endHighlight + 1 < value.length ? value.slice(endHighlight + 1) : <> }\n \n );\n return {parts};\n }\n}\n\ntype StackedFormattedNumberProps = {\n number?: string | number;\n specification?: string;\n highlightAll?: boolean;\n variant?: NumberVariants;\n round?: boolean;\n pretty?: boolean;\n increment?: string;\n largeSize?: CSSProperties['fontSize'];\n baseSize?: CSSProperties['fontSize'];\n currency?: string | null;\n};\n","import Big from 'big.js';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { NumberVariants } from '../components/FormattedNumber';\nimport { Direction } from '../types/Direction';\n\nexport const useFlashSentiment = (symbol: string | undefined, positiveDirection: Direction, value?: string) => {\n const lastValue = useRef();\n const [sentiment, setSentiment] = useState();\n\n const getSentiment = useCallback(\n (price: string, last: string): NumberVariants | undefined => {\n const lastPrice = last || price;\n if (positiveDirection === Direction.Asc) {\n if (Big(lastPrice).lt(price)) {\n return NumberVariants.Positive;\n } else if (Big(lastPrice).gt(price)) {\n return NumberVariants.Negative;\n }\n } else {\n if (Big(lastPrice).gt(price)) {\n return NumberVariants.Negative;\n } else if (Big(lastPrice).lt(price)) {\n return NumberVariants.Negative;\n }\n }\n return undefined;\n },\n [positiveDirection]\n );\n\n useEffect(() => {\n if (value != null) {\n if (lastValue.current != null) {\n setSentiment(getSentiment(value, lastValue.current));\n }\n lastValue.current = value;\n const timer = setTimeout(() => setSentiment(undefined), 300);\n return () => clearTimeout(timer);\n }\n }, [value, getSentiment]);\n\n useEffect(() => {\n lastValue.current = undefined;\n setSentiment(undefined);\n }, [symbol]);\n\n return sentiment;\n};\n","import type { RequestStream } from '../types/RequestStream';\nimport type { SubscriptionResponse } from '../types/SubscriptionResponse';\nimport { useConstant } from './useConstant';\nimport type { UseSubscriptionReturn } from './useSubscription';\nimport { useSubscription } from './useSubscription';\nexport function useStaticSubscription>(\n request: RequestStream | RequestStream[],\n options?: Partial<{\n replay: boolean;\n loadAll: boolean;\n }>\n): UseSubscriptionReturn;\nexport function useStaticSubscription(\n request: RequestStream | RequestStream[],\n options?: Partial<{\n replay: boolean;\n loadAll: boolean;\n }>\n): UseSubscriptionReturn>;\nexport function useStaticSubscription(\n request: RequestStream | RequestStream[],\n options?: {\n replay?: boolean;\n loadAll?: boolean;\n }\n): UseSubscriptionReturn>;\n/**\n * Create a static web socket subscription.\n */\nexport function useStaticSubscription(\n request: RequestStream | RequestStream[],\n options = {}\n): UseSubscriptionReturn> {\n const req = useConstant(request);\n return useSubscription(req, options);\n}\n","import { isArray } from 'lodash';\nimport { createContext, useContext, useMemo } from 'react';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { useObservable, useObservableValue } from '../hooks/useObservable';\nimport { useStaticSubscription } from '../hooks/useStaticSubscription';\nimport { wsScanToMap } from '../pipes';\nimport { MARKET_ACCOUNT } from '../tokens';\nimport { type IMarketAccount, MarketAccountStatusEnum } from '../types';\nimport type { CustomerMarketAccount } from '../types/CustomerMarketAccount';\nimport { DEFAULT_CUSTOMER_MARKET_ACCOUNT } from '../utils/customerMarketAccounts';\n\n// The Market Accounts values from this provider only include Active Market Accounts\ninterface WLCustomerMarketAccountContextProps {\n customerMarketAccountsBySourceAccountID: Map | undefined;\n customerMarketAccountsList: CustomerMarketAccount[] | undefined;\n isLoaded: boolean;\n}\n\nexport const WLCustomerMarketAccountContext = createContext(undefined);\n\nexport function useWLCustomerMarketAccountContext() {\n const context = useContext(WLCustomerMarketAccountContext);\n if (context === undefined) {\n throw new Error(\n 'Missing WLCustomerMarketAccountContext.Provider further up in the tree. Did you forget to add it?'\n );\n }\n return context;\n}\n\nexport const WLCustomerMarketAccountsProvider = ({ children }) => {\n const { data: subscription } = useStaticSubscription({\n name: MARKET_ACCOUNT,\n tag: 'WLCustomerMarketAccountsProvider',\n });\n\n // Convert the Market Account to a Customer Market Account\n // SourceData is a JSON string, so we need to parse it\n const convertToCustomerMarketAccount = (account: IMarketAccount): CustomerMarketAccount => ({\n ...account,\n SourceData: account.SourceData ? JSON.parse(account.SourceData) : undefined,\n });\n\n const customerMarketAccountsBySourceAccountIDObs = useObservable(\n () =>\n subscription.pipe(\n wsScanToMap({\n getUniqueKey: (account: IMarketAccount) => account.SourceAccountID,\n newMapEachUpdate: true, // Ensures that a new map is created with each update\n shouldDelete: account => account.Status !== MarketAccountStatusEnum.Active, // addition\n getInsertable: account => convertToCustomerMarketAccount(account),\n }),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [subscription]\n );\n\n const customerMarketAccountsListObs = useObservable(\n () =>\n customerMarketAccountsBySourceAccountIDObs.pipe(\n map(map => [...map.values()]),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [customerMarketAccountsBySourceAccountIDObs]\n );\n\n const customerMarketAccountsBySourceAccountID = useObservableValue(\n () => customerMarketAccountsBySourceAccountIDObs,\n [customerMarketAccountsBySourceAccountIDObs]\n );\n const customerMarketAccountsList = useObservableValue(\n () => customerMarketAccountsListObs,\n [customerMarketAccountsListObs]\n );\n\n const value = useMemo(\n () => ({\n customerMarketAccountsBySourceAccountID,\n customerMarketAccountsList,\n isLoaded: isArray(customerMarketAccountsList),\n }),\n [customerMarketAccountsBySourceAccountID, customerMarketAccountsList]\n );\n\n return {children};\n};\n\n/**\n * Hook to get sorted market accounts, sorted by shared logic.\n *\n * @param marketAccounts Array of market accounts\n * @returns sorted Array of market accounts\n */\nexport const useWLSortedMarketAccounts = (marketAccounts): CustomerMarketAccount[] | undefined => {\n return useMemo(() => {\n if (!marketAccounts) {\n return undefined;\n }\n\n return marketAccounts.sort((a, b) => {\n if (a.SourceAccountID === DEFAULT_CUSTOMER_MARKET_ACCOUNT) {\n return -1;\n } else if (b.SourceAccountID === DEFAULT_CUSTOMER_MARKET_ACCOUNT) {\n return 1;\n } else if (a.SourceAccountID && b.SourceAccountID) {\n return a.SourceAccountID.localeCompare(b.SourceAccountID);\n } else {\n return b.MarketAccountID - a.MarketAccountID;\n }\n });\n }, [marketAccounts]);\n};\n","import { useCallback } from 'react';\nimport { useWLCustomerMarketAccountContext } from '../providers/WLCustomerMarketAccountsProvider';\nimport { useWLOrgConfigContext } from '../providers/WLOrgConfigProvider';\n\nexport const useGetCustomerMarketAccountLabel = () => {\n const { config: customerConfig } = useWLOrgConfigContext();\n const { customerMarketAccountsBySourceAccountID } = useWLCustomerMarketAccountContext();\n\n return useCallback(\n (sourceAccountID: string) => {\n if (!customerConfig.showMarketAccountDisplayName) {\n return sourceAccountID;\n }\n return customerMarketAccountsBySourceAccountID?.get(sourceAccountID)?.DisplayName ?? sourceAccountID;\n },\n [customerConfig.showMarketAccountDisplayName, customerMarketAccountsBySourceAccountID]\n );\n};\n","import { useCallback } from 'react';\nimport { defineMessages } from 'react-intl';\nimport { getIntlKey } from '../contexts';\nimport type { StrategyLike } from '../types';\nimport { useIntl } from './useIntl';\nimport { useIntlContext } from './useIntlContext';\n\n// Keep these ids in sync with what they were\nexport const strategyTranslations = defineMessages({\n limit: {\n defaultMessage: 'Limit',\n id: 'Forms.NewOrderForm.limit',\n },\n fullAmount: {\n defaultMessage: 'Full Amount',\n id: 'Forms.NewOrderForm.fullAmount',\n },\n market: {\n defaultMessage: 'Market',\n id: 'Forms.NewOrderForm.market',\n },\n steadyPace: {\n defaultMessage: 'Steady Pace',\n id: 'Forms.NewOrderForm.steadyPace',\n },\n stopFullAmount: {\n defaultMessage: 'Stop Full Amount',\n id: 'Forms.NewOrderForm.stopFullAmount',\n },\n multilegAggressiveLimit: {\n defaultMessage: 'Limit',\n id: 'Forms.NewOrderForm.multilegAggressiveLimit',\n },\n stopLimit: {\n defaultMessage: 'Stop Limit',\n id: 'Forms.NewOrderForm.stopLimit',\n },\n timeSliced: {\n defaultMessage: 'Time Sliced',\n id: 'Forms.NewOrderForm.timeSliced',\n },\n takeProfitFullAmount: {\n defaultMessage: 'Take Profit Full Amount',\n id: 'Forms.NewOrderForm.takeProfitFullAmount',\n },\n takeProfitLimit: {\n defaultMessage: 'Take Profit Limit',\n id: 'Forms.NewOrderForm.takeProfitLimit',\n },\n TWAP: {\n defaultMessage: 'TWAP',\n id: 'Forms.NewOrderForm.TWAP',\n },\n stopMarket: {\n defaultMessage: 'Stop Market',\n id: 'Forms.NewOrderForm.stopMarket',\n },\n rfq: {\n defaultMessage: 'RFQ',\n id: 'Forms.NewOrderForm.rfq',\n },\n} as const);\n\nexport function useGetStrategyLikeLabel() {\n const intl = useIntl();\n const { doNotOverwriteDisplayNames } = useIntlContext();\n\n return useCallback(\n (s: StrategyLike) => {\n if (doNotOverwriteDisplayNames) {\n return s.DisplayName || s.Name;\n }\n const intlKey = getIntlKey(s.Name);\n\n if (intlKey in strategyTranslations) {\n return intl.formatMessage(strategyTranslations[intlKey]);\n }\n\n return s.DisplayName || s.Name;\n },\n [intl, doNotOverwriteDisplayNames]\n );\n}\n","import { useEffect, useState } from 'react';\nimport { concat, from, map, of, scan, type Observable } from 'rxjs';\n\nimport { useEndpointsContext } from '../contexts';\nimport type { OHLCData } from '../types/OHLCData';\nimport type { ResolutionEnumNoPrefix } from '../types/OrderAnalytic';\nimport { formattedDateForSubscription, Get, urlFromLocalOrAbsolute } from '../utils';\nimport { useSubscription } from './useSubscription';\n\ninterface useOHLCDataProps {\n symbol: string | undefined;\n markets?: string[];\n startDate: Date | undefined;\n endDate: Date | undefined;\n resolution: ResolutionEnumNoPrefix;\n liveUpdates?: boolean;\n}\n\nexport const useOHLCData = ({\n symbol,\n markets,\n startDate,\n endDate,\n resolution,\n liveUpdates = true,\n}: useOHLCDataProps) => {\n const { apiEndpoint } = useEndpointsContext();\n const [request, setRequest] = useState();\n const [observable, setObservable] = useState>(of([]));\n const { data: sub } = useSubscription(request);\n\n const sd = formattedDateForSubscription(startDate);\n const ed = formattedDateForSubscription(endDate);\n\n useEffect(() => {\n if (sd == null || ed == null || symbol == null || resolution == null) {\n return;\n }\n const marketsPart = markets && markets.length > 0 ? `/markets/${encodeURIComponent(markets.join(','))}` : '';\n\n if (liveUpdates) {\n setRequest({\n name: 'OHLCV',\n tag: `OHLCV-${symbol}-${resolution}`,\n Symbol: symbol,\n Markets: markets,\n Resolution: resolution,\n });\n }\n\n setObservable(\n concat(\n from(\n Get(\n urlFromLocalOrAbsolute(apiEndpoint),\n `/symbols/${symbol}${marketsPart}/ohlcv/${resolution}?startDate=${sd}&endDate=${ed}`\n )\n ),\n sub\n ).pipe(\n map(res => res.data),\n scan((prices: OHLCData[], data: OHLCData[]) => {\n data.forEach(newPrice => {\n const lastPrice = prices.at(-1);\n const lastPriceTimestamp = lastPrice ? Date.parse(lastPrice.Timestamp) : 0;\n const newPriceTimestamp = Date.parse(newPrice.Timestamp);\n if (lastPriceTimestamp === newPriceTimestamp) {\n prices.pop();\n }\n if (lastPriceTimestamp <= newPriceTimestamp) {\n prices.push(newPrice);\n }\n });\n return prices;\n })\n )\n );\n }, [symbol, sd, ed, resolution, sub, apiEndpoint, liveUpdates, markets]);\n\n return observable;\n};\n","import { sub } from 'date-fns';\nimport { useMemo } from 'react';\nimport type { Observable } from 'rxjs';\nimport { combineLatestWith, map } from 'rxjs/operators';\nimport type { IOhlcv } from '../types';\nimport type { OHLCData } from '../types/OHLCData';\nimport type { ResolutionEnumNoPrefix } from '../types/OrderAnalytic';\nimport { EMPTY_ARRAY } from '../utils';\nimport { useBehaviorSubject } from './useBehaviorSubject';\nimport { useDynamicCallback } from './useDynamicCallback';\nimport { useOHLCData } from './useOHLCData';\n\nexport const useHistoricalPrices = ({\n clearOnSymbolChange,\n symbol,\n markets,\n resolution,\n}: {\n clearOnSymbolChange?: boolean;\n symbol: string | undefined;\n markets?: string[];\n resolution: ResolutionEnumNoPrefix;\n}): Observable => {\n const { endDate, startDate } = useMemo(\n () =>\n symbol != null\n ? {\n startDate: sub(new Date(), { hours: resolution === '1H' ? 24 : resolution === '5M' ? 6 : 1 }),\n endDate: new Date(),\n }\n : {},\n [resolution, symbol]\n );\n const { observable: symbolObservable } = useBehaviorSubject(() => symbol, [symbol]);\n\n const checkToClearOHLCData = useDynamicCallback((ohlcData: IOhlcv[], currSymbol?: string) => {\n // Symbol data comes through from this endpoint, it just isn't on the official type def\n const firstRecord: IOhlcv = ohlcData[0];\n\n if (clearOnSymbolChange && currSymbol !== firstRecord?.Symbol) {\n return EMPTY_ARRAY;\n }\n\n return ohlcData as OHLCData[];\n });\n\n const ohlcDataObservable = useOHLCData({ symbol, startDate, endDate, resolution, markets }) as Observable;\n\n return useMemo(\n () =>\n ohlcDataObservable.pipe(\n combineLatestWith(symbolObservable),\n map(([ohlcData, currSymbol]) => {\n return checkToClearOHLCData(ohlcData, currSymbol);\n })\n ),\n [checkToClearOHLCData, ohlcDataObservable, symbolObservable]\n );\n};\n","import { useEffect } from 'react';\nimport { useDynamicCallback } from '../hooks/useDynamicCallback';\n\ninterface TargetEvent {\n key: KeyboardEvent['key'];\n metaKey?: KeyboardEvent['metaKey'];\n ctrlKey?: KeyboardEvent['ctrlKey'];\n shiftKey?: KeyboardEvent['shiftKey'];\n altKey?: KeyboardEvent['altKey'];\n}\n\nexport const useOnKeyDown = (targetEvent: TargetEvent, onKeyDown?: (e: KeyboardEvent) => void) => {\n const handler = useDynamicCallback((e: KeyboardEvent) => {\n for (const property in targetEvent) {\n if (e[property] !== targetEvent[property]) {\n return;\n }\n }\n onKeyDown?.(e);\n e.preventDefault();\n });\n\n useEffect(() => {\n if (onKeyDown) {\n window.addEventListener('keydown', handler);\n return () => {\n window.removeEventListener('keydown', handler);\n };\n }\n }, [handler, onKeyDown]);\n};\n","import styled from 'styled-components';\n\nexport const JsonModalContent = styled.div`\n padding: ${({ theme }) => theme.spacingMedium}px;\n max-height: 80vh;\n overflow-y: auto;\n line-height: 1.5;\n max-width: 80vw;\n`;\n","import { useRef, type ReactNode } from 'react';\nimport { useOnKeyDown } from '../../hooks/useOnKeyPress';\nimport { JsonModalContent } from './styles';\n\nexport function JsonModal({ children, isVisible }: { children: ReactNode; isVisible: boolean }) {\n const textRef = useRef(null);\n useOnKeyDown({ key: 'a', metaKey: true }, e => {\n if (isVisible && textRef.current) {\n window.getSelection()?.selectAllChildren(textRef.current);\n e.preventDefault();\n }\n });\n\n return (\n \n
{children}
\n
\n );\n}\n","import { useRef } from 'react';\nimport { JsonModal } from '../components/JsonModal';\nimport { Modal } from '../components/Modal';\nimport { useMixpanel } from '../contexts';\nimport { MixpanelEvent } from '../tokens';\nimport { EMPTY_OBJECT, logger } from '../utils';\nimport { useDisclosure } from './useDisclosure';\nimport { useDynamicCallback } from './useDynamicCallback';\n\ninterface UseJsonModalParams {\n /** When handleClickJson is invoked, you can have a customMixpanelEvent be sent. The default sent Mixpanel event is `MixpanelEvent.ShowJSON`. */\n customMixpanelEvent?: MixpanelEvent;\n}\n\n/**\n * A helper hook encapsulating the logic needed to show a Json Modal with some data inside it\n * @returns `handleClickJson`, to be invoked whenever you want to show some data in the json modal, and then `jsonModal` which is the ReactNode\n * of the json modal itself\n */\nexport function useJsonModal({ customMixpanelEvent }: UseJsonModalParams = EMPTY_OBJECT) {\n const selectedJsonItem = useRef('');\n const jsonModal = useDisclosure();\n const mixpanel = useMixpanel();\n\n const handleClickJson = useDynamicCallback((data: R | undefined) => {\n mixpanel.track(customMixpanelEvent ?? MixpanelEvent.ShowJSON);\n try {\n if (data instanceof Map) {\n selectedJsonItem.current = JSON.stringify(mapToObject(data), replacer, 2);\n } else {\n selectedJsonItem.current = JSON.stringify(data, replacer, 2);\n }\n } catch (e) {\n logger.error(e as Error);\n }\n jsonModal.open();\n });\n\n return {\n handleClickJson,\n jsonModal: (\n \n {selectedJsonItem.current}\n \n ),\n };\n}\n\nfunction mapToObject(aMap: Map) {\n const obj = Object.create(null);\n for (const [k, v] of aMap) {\n if (v instanceof Map) {\n obj[k.toString()] = mapToObject(v); // handle Maps that have Maps as values\n } else {\n // calling toString handles case where map key is not a string JSON requires key to be a string\n obj[k.toString()] = v;\n }\n }\n return obj;\n}\n\nfunction replacer(key: string, value: any) {\n if (value instanceof Map) {\n return mapToObject(value);\n } else {\n return value;\n }\n}\n","import { useSecuritiesContext } from '../contexts';\nimport type { Security } from '../types/Security';\n\nexport const useSecurity = (symbol?: string | null): Security | undefined => {\n const { securitiesBySymbol } = useSecuritiesContext();\n if (symbol != null && securitiesBySymbol != null) {\n return securitiesBySymbol.get(symbol);\n }\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { combineLatestWith, filter, map, shareReplay } from 'rxjs/operators';\n\nimport { isEqual } from 'lodash';\nimport { useMarketAccountsContext, useMarketsContext } from '../contexts';\nimport { MARKET_DATA_SNAPSHOT, TRADE_DIRECTION } from '../tokens';\nimport type {\n MarketDataSnapshot,\n MarketDataSnapshotRequest,\n TradeDirection,\n TradeDirectionRequest,\n} from '../types/MarketDataSnapshot';\nimport type { SubscriptionResponse } from '../types/SubscriptionResponse';\nimport { DepthTypeEnum, MarketAccountTypeEnum, type FeeModeEnum, type LiquidityTypeEnum } from '../types/types';\nimport { EMPTY_ARRAY } from '../utils';\nimport { useBehaviorSubject } from './useBehaviorSubject';\nimport { useDynamicCallback } from './useDynamicCallback';\nimport { useObservable } from './useObservable';\nimport { useSecurity } from './useSecurity';\nimport { useSubscription } from './useSubscription';\n\n/** A market (account) name that can be sent for the MarketDataSnapshot subscription */\ntype TradeableMarketAccountOrMarketName = string & { __type: 'TradeableMarketAccountOrMarketName' };\n\n/**\n * Takes a list of market names and market account names, and returns only the ones that are valid to send to `useMarketDataSnapshot`.\n *\n * The MarketDataSnapshot subscription will throw an error if `markets` contains any market accounts that have `Type` !== `Trading`.\n * It will also throw an error if `markets` contains any markets that don't exist.\n *\n * @param marketsAndMarketAccounts A combined list of market names and market account names\n * @return Only those markets / market accounts which can be passed to `useMarketDataSnapshot`\n */\nexport function useMarketsAndMarketAccountsForMarketDataSnapshot(\n marketsAndMarketAccounts: string[]\n): TradeableMarketAccountOrMarketName[] {\n const { marketAccountsByName } = useMarketAccountsContext();\n const { marketsByName } = useMarketsContext();\n\n const validMarketAccounts = useRef([]);\n\n useEffect(() => {\n const newValue = marketsAndMarketAccounts.filter(\n (market): market is TradeableMarketAccountOrMarketName =>\n marketsByName?.has(market) || marketAccountsByName?.get(market)?.Type === MarketAccountTypeEnum.Trading\n );\n if (!isEqual(validMarketAccounts.current, newValue)) {\n validMarketAccounts.current = newValue;\n }\n }, [marketAccountsByName, marketsAndMarketAccounts, marketsByName]);\n return validMarketAccounts.current;\n}\n\nexport function useMarketDataSnapshot({\n clearOnSymbolChange,\n currency,\n baseCurrency = currency,\n depth,\n includeTradeDirection,\n priceIncrement,\n quantity,\n markets,\n sizeBuckets,\n symbol,\n tag,\n feeMode,\n liquidityType,\n throttle,\n}: UseMarketDataSnapshotProps) {\n const [request, setRequest] = useState<(MarketDataSnapshotRequest | TradeDirectionRequest)[] | null>(null);\n const security = useSecurity(symbol);\n\n useEffect(() => {\n if (security != null && (depth || quantity || sizeBuckets)) {\n const marketDataRequest: MarketDataSnapshotRequest = {\n name: MARKET_DATA_SNAPSHOT,\n DepthType: DepthTypeEnum.Price,\n PriceIncrement: priceIncrement,\n Symbol: security.Symbol,\n FeeMode: feeMode,\n LiquidityType: liquidityType,\n tag: tag,\n Markets: markets,\n Throttle: throttle,\n };\n if (depth != null) {\n marketDataRequest.Depth = depth;\n } else {\n if (currency && baseCurrency && currency !== baseCurrency && quantity != null) {\n marketDataRequest.AmountBuckets = [quantity];\n } else {\n marketDataRequest.SizeBuckets = quantity ? [quantity] : sizeBuckets;\n }\n }\n const requests: (MarketDataSnapshotRequest | TradeDirectionRequest)[] = [marketDataRequest];\n if (includeTradeDirection) {\n requests.push({\n name: TRADE_DIRECTION,\n Symbol: security.Symbol,\n Markets: markets,\n tag: tag,\n });\n }\n setRequest(requests);\n } else {\n setRequest(null);\n }\n }, [\n baseCurrency,\n currency,\n priceIncrement,\n security,\n depth,\n tag,\n sizeBuckets,\n quantity,\n feeMode,\n liquidityType,\n includeTradeDirection,\n markets,\n throttle,\n ]);\n\n const { observable: symbolObservable } = useBehaviorSubject(() => symbol, [symbol]);\n const { data: subscription } = useSubscription>(request, {\n unsubscribeOnPageInvisibility: true,\n });\n\n const checkToClearMarketData = useDynamicCallback((marketData: MarketDataSnapshot, currSymbol?: string) => {\n if (clearOnSymbolChange && currSymbol !== marketData.Symbol) {\n return {\n ...marketData,\n Bids: EMPTY_ARRAY,\n Offers: EMPTY_ARRAY,\n };\n }\n\n return marketData;\n });\n\n const marketDataSnapshots = useObservable(\n () =>\n subscription.pipe(\n filter(\n (json): json is SubscriptionResponse =>\n json.type === MARKET_DATA_SNAPSHOT && (json.data[0]['Bids'] || json.data[0]['Offers'])\n ),\n // TODO: Revise this logic as it's mostly the same as ava/useMarketDataSnapshot except the wrapper object\n map(json => json.data[0]),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [subscription]\n );\n\n const marketDataSnapshotsWithCheckToClear = useMemo(\n () =>\n marketDataSnapshots.pipe(\n combineLatestWith(symbolObservable),\n map(([marketData, currSymbol]) => {\n return checkToClearMarketData(marketData, currSymbol);\n })\n ),\n [checkToClearMarketData, marketDataSnapshots, symbolObservable]\n );\n\n const tradeDirections = useObservable(\n () =>\n subscription.pipe(\n filter((json): json is SubscriptionResponse => json.type === TRADE_DIRECTION),\n map(json => json.data[0]),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [subscription]\n );\n\n return {\n marketDataSnapshots: marketDataSnapshotsWithCheckToClear,\n tradeDirections,\n };\n}\n\ntype UseMarketDataSnapshotProps = {\n clearOnSymbolChange?: boolean;\n currency?: string;\n baseCurrency?: string;\n depth?: number;\n includeTradeDirection?: boolean;\n priceIncrement?: string;\n quantity?: string;\n sizeBuckets?: string[];\n symbol?: string;\n tag: string;\n feeMode?: FeeModeEnum;\n liquidityType?: LiquidityTypeEnum;\n /**\n * If you are passing `markets`, filter them with the useMarketsAndMarketAccountsForMarketDataSnapshot function first\n */\n markets?: TradeableMarketAccountOrMarketName[];\n throttle?: string;\n};\n","import Big from 'big.js';\nimport { ConnectionStatusEnum, type Balance, type CurrencyConversionRate } from '../types';\nimport { useCurrencyConversionRateValue } from './useCurrencyConversionRate';\n\nexport function useMaxBalance(\n balances: Map | undefined,\n currency: string | undefined,\n formCurrency: string | null | undefined\n) {\n const conversionRate =\n useCurrencyConversionRateValue(currency, formCurrency ?? undefined) ??\n // If no conversion rate is available, return 1:1 conversion rate if the currencies are the same\n oneToOneConversionRate({ currency, formCurrency });\n if (!currency || !balances) {\n return undefined;\n }\n\n const balance = balances.get(currency);\n\n // Convert balance to max available amount to buy/sell based on side and form currency\n const value =\n balance?.AvailableAmount != null &&\n balance.AvailableAmount !== '' &&\n conversionRate?.Rate != null &&\n conversionRate.EquivalentCurrency === formCurrency &&\n conversionRate.Asset === currency\n ? Big(conversionRate.Rate).times(balance.AvailableAmount).toFixed()\n : undefined;\n return value;\n}\n\nconst oneToOneConversionRate = ({\n currency,\n formCurrency,\n}: {\n currency: string | undefined;\n formCurrency: string | undefined | null;\n}): CurrencyConversionRate | undefined => {\n if (formCurrency && currency && formCurrency === currency) {\n return {\n Asset: currency,\n EquivalentCurrency: currency,\n Rate: '1',\n Status: ConnectionStatusEnum.Online,\n Currency: currency,\n Symbol: currency,\n };\n }\n return undefined;\n};\n","import { keys, pick } from 'lodash';\nimport { useMemo, useRef, type HTMLAttributes, type MouseEventHandler, type MutableRefObject } from 'react';\nimport { useDynamicCallback } from './useDynamicCallback';\n\ntype MouseHoverEvents = 'onMouseEnter' | 'onMouseLeave';\ntype MouseHoverConfig = {\n [key in MouseHoverEvents]?: number;\n};\ntype useMouseEventHandlers = Pick, MouseHoverEvents>;\ninterface useMouseEventsProps extends useMouseEventHandlers {\n delay?: MouseHoverConfig;\n}\n\nconst DEFAULT_DELAY: Required = {\n onMouseEnter: 0,\n onMouseLeave: 0,\n};\n\nconst clearRefAndTimeout = (ref: MutableRefObject) => {\n if (ref.current) {\n clearTimeout(ref.current);\n ref.current = undefined;\n }\n};\n/**\n * Utility hook for handling onMouseEnter and onMouseLeave events with optional delays\n *\n * Usage:\n * ```tsx\n * const Example = () => {\n * const onMouseEnter = () => {}\n * const onMouseLeave = () => {}\n * const hoverProps = useMouseHover({ onMouseEnter, onMouseLeave, delay: { onMouseEnter: 100 } });\n *\n * return ;\n * }\n * ```\n */\nexport const useMouseHover = (props: useMouseEventsProps) => {\n const { delay: _delay = DEFAULT_DELAY, onMouseEnter, onMouseLeave } = props;\n const delay = useMemo(() => ({ ...DEFAULT_DELAY, ..._delay }), [_delay]);\n const onMouseEnterTimeoutRef = useRef | undefined>(undefined);\n const onMouseLeaveTimeoutRef = useRef | undefined>(undefined);\n\n const handleOnMouseEnter: MouseEventHandler = useDynamicCallback(e => {\n clearRefAndTimeout(onMouseLeaveTimeoutRef);\n if (delay.onMouseEnter) {\n onMouseEnterTimeoutRef.current = setTimeout(() => {\n onMouseEnter?.(e);\n }, delay.onMouseEnter);\n } else {\n onMouseEnter?.(e);\n }\n });\n const handleOnMouseLeave: MouseEventHandler = useDynamicCallback(e => {\n clearRefAndTimeout(onMouseEnterTimeoutRef);\n if (delay.onMouseLeave) {\n onMouseLeaveTimeoutRef.current = setTimeout(() => {\n onMouseLeave?.(e);\n }, delay.onMouseLeave);\n } else {\n onMouseLeave?.(e);\n }\n });\n const definedHandlers = useMemo(() => keys(props), [props]);\n const returnProps: Pick = useMemo(\n () => pick({ onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave }, definedHandlers),\n [definedHandlers, handleOnMouseEnter, handleOnMouseLeave]\n );\n\n return returnProps;\n};\n","import { useDebugValue, useState, type Dispatch, type SetStateAction } from 'react';\nconst format = ({ label, value }) => label + ': ' + (typeof value === 'object' ? JSON.stringify(value) : value);\n\n/**\n * Returns a stateful value, and a function to update it.\n * This version adds the ability to name the state variable, which makes the dev tools much easier to use.\n * @see {useState} from react - this wraps that function but adds the debug label\n \n * @param label Label to show in react-dev-tools\n */\n\nexport function useNamedState(initialState: S | (() => S), label = 'UseState'): [S, Dispatch>] {\n const states = useState(initialState);\n useDebugValue({ label, value: states[0] }, format);\n return states;\n}\n","import { useMemo, type PropsWithChildren } from 'react';\nimport { debounceTime, scan, shareReplay } from 'rxjs';\nimport type { RequestStream } from '../types/RequestStream';\nimport type { SubscriptionResponse } from '../types/SubscriptionResponse';\nimport { useConstant } from './useConstant';\nimport { useDynamicCallback } from './useDynamicCallback';\nimport { useNamedState } from './useNamedState';\nimport { useObservable } from './useObservable';\nimport { useSubscription } from './useSubscription';\n\nexport function useMultipleStreamsSubscription<\n TReturn,\n TKey,\n TRequest,\n TAllRequests extends RequestStream | RequestStream[] | null,\n TSubscriptionResponse\n>({\n subscriptionCallback,\n getRequest,\n getAllRequests,\n}: PropsWithChildren<{\n subscriptionCallback: (\n acc: Map,\n json: SubscriptionResponse\n ) => Map;\n getRequest: (key: TKey) => TRequest;\n getAllRequests: (requests: Map) => TAllRequests;\n}>) {\n // Constant tracking latest value per key\n const [values] = useNamedState(new Map(), 'latest values');\n // Constant tracking active requests\n const [requests, setRequests] = useNamedState(null, 'requests');\n // Constant tracking requests per key\n const [requestMap] = useNamedState(new Map(), 'requestMap');\n\n // Tracks number of listeners per key\n const listeners = useConstant(new Map());\n\n const { data: subscription } = useSubscription>(requests);\n\n const valueMapObservable = useObservable(\n () =>\n subscription?.pipe(\n scan(subscriptionCallback, values),\n debounceTime(100),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [subscription, subscriptionCallback, values]\n );\n\n const registerSubscription = useDynamicCallback((key: TKey) => {\n // Get listeners for this key\n const count = listeners.get(key);\n if (count) {\n // Increment listeners by 1 if there are existing listeners\n listeners.set(key, count + 1);\n } else {\n // Set listeners to 1 if there are no existing listeners\n listeners.set(key, 1);\n\n // Create a new request for this key\n const request: TRequest = getRequest(key);\n // Add new request to requestMap\n requestMap.set(key, request);\n // Update list of requests to include the latest addition\n setRequests(getAllRequests(requestMap));\n }\n });\n\n const registerSubscriptions = useDynamicCallback((keys: TKey[]) => keys.forEach(key => registerSubscription(key)));\n\n const unregisterSubscription = useDynamicCallback((key: TKey) => {\n // Get listeners for this key\n const count = (listeners.get(key) ?? 1) - 1;\n // Update the number of listeners for this key\n listeners.set(key, count);\n if (count <= 0) {\n listeners.delete(key);\n // Remove request from requestMap if there are no more listeners\n requestMap.delete(key);\n setRequests(getAllRequests(requestMap));\n }\n });\n\n const unregisterSubscriptions = useDynamicCallback((keys: TKey[]) =>\n keys.forEach(key => unregisterSubscription(key))\n );\n\n return useMemo(\n () => ({\n valueMapObservable,\n registerSubscription,\n registerSubscriptions,\n unregisterSubscription,\n unregisterSubscriptions,\n }),\n [valueMapObservable, registerSubscription, unregisterSubscription, registerSubscriptions, unregisterSubscriptions]\n );\n}\n","import type { Currency } from '../types/Currency';\nimport type { Security } from '../types/Security';\nimport { isCounterCurrency } from '../utils';\nimport { useCurrency } from './useCurrency';\nimport { useSecurity } from './useSecurity';\n\nexport const useOrderIncrements = (order: { Currency?: string; Symbol: string }) => {\n const security = useSecurity(order.Symbol);\n const currency = useCurrency(order.Currency);\n\n return getOrderIncrements(order, security, currency);\n};\n\nexport function getOrderIncrements(\n order: { Currency?: string; Symbol: string },\n security: Security | undefined,\n currency: Currency | undefined\n) {\n const isCcy = isCounterCurrency(order.Currency, security);\n\n let quantityIncrement: string | undefined;\n if (!order.Currency) {\n quantityIncrement = security?.DefaultSizeIncrement;\n } else if (isCcy) {\n quantityIncrement = security?.DefaultPriceIncrement;\n } else {\n quantityIncrement = currency?.DefaultIncrement;\n }\n\n return {\n quantityIncrement: quantityIncrement ?? '0.01',\n };\n}\n","const doc = window.document;\nconst getTextHeight = (text: string, styles: CSSStyleDeclaration) => {\n const tag = window.document.createElement('div');\n\n tag.innerText = text;\n\n for (const key in styles) {\n tag.style[key] = styles[key];\n }\n\n doc.body.appendChild(tag);\n const { height: texHeight } = tag.getBoundingClientRect();\n doc.body.removeChild(tag);\n\n return texHeight;\n};\n\n/** Evaluate if text is overflowing based on whether the text height changes\n * - this is more accurate than checking scrollWidth and clientWidth\n */\nexport const isTextEllipsized = (node: HTMLElement) => {\n const title = node.innerText;\n const { width: nodeWidth, height: nodeHeight } = node.getBoundingClientRect();\n const computedNodeStyles = getComputedStyle(node);\n const styles: Partial = {\n width: `${nodeWidth}px`,\n padding: computedNodeStyles.getPropertyValue('padding'),\n fontSize: computedNodeStyles.getPropertyValue('font-size'),\n fontFamily: computedNodeStyles.getPropertyValue('font-family'),\n fontWeight: computedNodeStyles.getPropertyValue('font-weight'),\n fontStyle: computedNodeStyles.getPropertyValue('font-style'),\n fontVariant: computedNodeStyles.getPropertyValue('font-variant'),\n lineHeight: computedNodeStyles.getPropertyValue('line-height'),\n wordBreak: 'break-all',\n };\n\n const textHeight = getTextHeight(title, styles as CSSStyleDeclaration);\n return textHeight > nodeHeight;\n};\n","import { ThemeTypes } from '../styles';\nimport { useMatchMedia } from './useMatchMedia';\n\nexport const usePreferredColorScheme = () => {\n const match = useMatchMedia('(prefers-color-scheme: dark)');\n return match ? ThemeTypes.dark : ThemeTypes.light;\n};\n","import type { User } from '../types';\n\nexport const isTalosUser = (user: Partial | undefined): boolean => {\n if (!user || !('Roles' in user)) {\n return false;\n }\n return (user?.Roles ?? []).some(role => role.startsWith('talos.'));\n};\n","import { noop } from 'lodash';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport function useScreenOrientation() {\n const screenOrientation = useMemo(\n () => window.screen.orientation ?? { type: 'portrait-primary', addEventListener: noop, removeEventListener: noop },\n []\n );\n const [orientation, setOrientation] = useState(screenOrientation?.type);\n\n useEffect(() => {\n const handler = () => {\n setOrientation(screenOrientation?.type);\n };\n screenOrientation?.addEventListener('change', handler);\n return () => {\n screenOrientation?.removeEventListener('change', handler);\n };\n }, [screenOrientation]);\n\n return orientation;\n}\n","import { createContext, useContext, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { shareReplay } from 'rxjs/operators';\nimport { useObservable, useObservableValue } from '../hooks/useObservable';\nimport { useSubscription } from '../hooks/useSubscription';\nimport { wsScanToMap } from '../pipes/wsScanToMap';\nimport { UNIFIED_LIQUIDITY_TOKEN } from '../tokens';\nimport type { RequestStream } from '../types/RequestStream';\nimport type { IMarketAccount } from '../types/types';\n\ninterface UnifiedLiquidityTokenRequest extends RequestStream {\n name: typeof UNIFIED_LIQUIDITY_TOKEN;\n Symbols?: string[];\n}\n\nexport interface UnifiedLiquidityTokenProps {\n symbol?: string;\n}\n\nexport interface UnifiedLiquidityResponse {\n Symbol: string;\n Tokens: { Market: IMarketAccount['Market']; Symbol: string }[];\n}\nexport const UnifiedLiquidityContext = createContext({\n unifiedLiquidityTokenBySymbol: new Map(),\n isLoaded: false,\n});\nUnifiedLiquidityContext.displayName = 'UnifiedLiquidityContext';\n\nexport interface UnifiedLiquidityContextProps {\n unifiedLiquidityTokenBySymbol: Map | undefined;\n isLoaded: boolean;\n}\n\nexport const useUnifiedLiquidityContext = () => {\n const context = useContext(UnifiedLiquidityContext);\n if (context === null) {\n throw new Error('Missing UnifiedLiquidityContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n};\n\nexport const UnifiedLiquidityProvider = function UnifiedLiquidityProvider({ children }: { children: ReactNode }) {\n const [isLoaded, setIsLoaded] = useState(false);\n const request: UnifiedLiquidityTokenRequest = useMemo(\n () => ({\n name: UNIFIED_LIQUIDITY_TOKEN,\n tag: 'UnifiedLiquidityProvider',\n }),\n []\n );\n const { data: subscription } = useSubscription(request);\n const unifiedLiquidityTokenBySymbolObs = useObservable(\n () =>\n subscription.pipe(\n wsScanToMap({ getUniqueKey: d => d.Symbol, newMapEachUpdate: false }),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n })\n ),\n [subscription]\n );\n\n const unifiedLiquidityTokenBySymbol = useObservableValue(\n () => unifiedLiquidityTokenBySymbolObs,\n [unifiedLiquidityTokenBySymbolObs]\n );\n\n useEffect(() => {\n if (unifiedLiquidityTokenBySymbol != null) {\n setIsLoaded(true);\n }\n }, [unifiedLiquidityTokenBySymbol]);\n\n const value = useMemo(\n () => ({\n unifiedLiquidityTokenBySymbol,\n isLoaded,\n }),\n [unifiedLiquidityTokenBySymbol, isLoaded]\n );\n\n return {children};\n};\n","import { useEffect, useState } from 'react';\nimport { useWLOrgConfigContext } from '../../../providers/WLOrgConfigProvider';\nimport { POST, request } from '../../../utils/http';\n\nexport interface MaxOrderAmountResponse {\n MaxOrderAmount: string;\n Currency: string;\n FeesIncluded: boolean;\n}\n\nexport interface MaxOrderAmountProps {\n MarketAccount: string | undefined;\n Symbol: string | undefined;\n Currency: string | undefined;\n Side: string | undefined;\n Price?: string;\n}\n\nexport const useMaxOrderQuantity = (maxAmountProps: MaxOrderAmountProps) => {\n const [maxOrderAmountResponse, setMaxOrderAmountResponse] = useState();\n const { config } = useWLOrgConfigContext();\n\n const allowedToRequest = config.useBackendMaxAvailable === true;\n const [requesting, setRequesting] = useState(allowedToRequest);\n\n useEffect(() => {\n // Check if the feature flag (if any) is enabled\n if (!allowedToRequest) {\n setMaxOrderAmountResponse(undefined);\n return;\n }\n\n const requiredFields = [\n 'MarketAccount',\n 'Symbol',\n 'Currency',\n 'Side',\n ] as const satisfies (keyof MaxOrderAmountProps)[];\n\n // If any required fields are missing, don't make the request\n if (requiredFields.some(field => !maxAmountProps[field])) {\n setMaxOrderAmountResponse(undefined);\n return;\n }\n\n setRequesting(true);\n request<{ data: MaxOrderAmountResponse[] }>(POST, '/v1/max-order-amount', maxAmountProps)\n .then(response => {\n setMaxOrderAmountResponse(response.data[0]);\n })\n .catch(() => {\n setMaxOrderAmountResponse(undefined);\n })\n .finally(() => {\n setRequesting(false);\n });\n }, [allowedToRequest, maxAmountProps]);\n\n return { maxOrderAmountResponse, loaded: !requesting };\n};\n","import Big from 'big.js';\nimport { useMemo } from 'react';\nimport { useMaxOrderQuantity } from '../components/Forms/FormBalances/hooks';\nimport { useBalancesByMarketAccountCurrency } from '../contexts';\nimport { useMaxBalance } from '../hooks/useMaxBalance';\nimport { OrderFormSides, type Security } from '../types';\nimport { useCurrencyConversionRateValue } from './useCurrencyConversionRate';\n\nexport function useWLEffectiveMaxBalance({\n account,\n security,\n side,\n currency,\n price,\n}: {\n account: string | undefined;\n security: Security | undefined;\n side: OrderFormSides | undefined;\n currency: string | undefined;\n price: string | undefined;\n}) {\n const { BaseCurrency, QuoteCurrency } = security || {};\n const balancesByMarketAccountCurrency = useBalancesByMarketAccountCurrency();\n const balances = account ? balancesByMarketAccountCurrency?.get(account) : undefined;\n\n const maxBalanceBase = useMaxBalance(balances, BaseCurrency, BaseCurrency);\n const maxBalanceQuote = useMaxBalance(balances, QuoteCurrency, QuoteCurrency);\n\n const baseMaxOrderAmountProps = useMemo(\n () => ({\n MarketAccount: account,\n Symbol: security?.Symbol,\n Currency: security?.BaseCurrency,\n Side: side,\n Price: price,\n }),\n [account, security?.Symbol, security?.BaseCurrency, side, price]\n );\n const quoteMaxOrderAmountProps = useMemo(\n () => ({\n MarketAccount: account,\n Symbol: security?.Symbol,\n Currency: security?.QuoteCurrency,\n Side: side,\n Price: price,\n }),\n [account, security?.Symbol, security?.QuoteCurrency, side, price]\n );\n const { maxOrderAmountResponse: maxAmountBaseResponse } = useMaxOrderQuantity(baseMaxOrderAmountProps);\n const { maxOrderAmountResponse: maxAmountQuoteResponse } = useMaxOrderQuantity(quoteMaxOrderAmountProps);\n\n const baseToQuoteConversionRate = useCurrencyConversionRateValue(BaseCurrency, QuoteCurrency)?.Rate;\n const quoteToBaseConversionRate = useMemo(\n () => (baseToQuoteConversionRate ? Big(1).div(baseToQuoteConversionRate) : undefined),\n [baseToQuoteConversionRate]\n );\n\n const effectiveMaxBase = useMemo(() => {\n // Return the base balance if conversion rate is unavailable\n if (!quoteToBaseConversionRate) {\n return maxBalanceBase;\n }\n\n if (side === OrderFormSides.Buy) {\n // Buying base: available funds come from the quote side\n if (maxAmountQuoteResponse) {\n if (maxAmountQuoteResponse.Currency === QuoteCurrency) {\n return Big(maxAmountQuoteResponse.MaxOrderAmount).times(quoteToBaseConversionRate).toFixed();\n }\n // Assume the response is already in base currency\n return maxAmountQuoteResponse.MaxOrderAmount;\n }\n // Fallback to converting the quote balance to base\n if (maxBalanceQuote) {\n return Big(maxBalanceQuote).times(quoteToBaseConversionRate).toFixed();\n }\n } else if (side === OrderFormSides.Sell) {\n // Selling base: available funds come from the base side\n if (maxAmountBaseResponse) {\n // If the max amount response is already in base currency, use it directly\n if (maxAmountBaseResponse.Currency === BaseCurrency) {\n return maxAmountBaseResponse.MaxOrderAmount;\n }\n // Assume the response is in quote currency and convert it to base\n return Big(maxAmountBaseResponse.MaxOrderAmount).times(quoteToBaseConversionRate).toFixed();\n }\n return maxBalanceBase;\n }\n return maxBalanceBase;\n }, [\n side,\n quoteToBaseConversionRate,\n maxBalanceBase,\n maxBalanceQuote,\n maxAmountQuoteResponse,\n maxAmountBaseResponse,\n BaseCurrency,\n QuoteCurrency,\n ]);\n\n const effectiveMaxQuote = useMemo(() => {\n // Return the quote balance if conversion rate is unavailable\n if (!baseToQuoteConversionRate) {\n return maxBalanceQuote;\n }\n\n if (side === OrderFormSides.Buy) {\n // Buying quote: available funds come directly from the quote side\n if (maxAmountQuoteResponse) {\n if (maxAmountQuoteResponse.Currency === QuoteCurrency) {\n return maxAmountQuoteResponse.MaxOrderAmount;\n }\n // Assume the response is in base and convert it to quote\n return Big(maxAmountQuoteResponse.MaxOrderAmount).times(baseToQuoteConversionRate).toFixed();\n }\n return maxBalanceQuote;\n } else if (side === OrderFormSides.Sell) {\n // Selling quote: available funds come from the base side converted to quote\n if (maxAmountBaseResponse) {\n if (maxAmountBaseResponse.Currency === BaseCurrency) {\n return Big(maxAmountBaseResponse.MaxOrderAmount).times(baseToQuoteConversionRate).toFixed();\n }\n // Assume the response is already in quote currency\n return maxAmountBaseResponse.MaxOrderAmount;\n }\n if (maxBalanceBase) {\n return Big(maxBalanceBase).times(baseToQuoteConversionRate).toFixed();\n }\n }\n return maxBalanceQuote;\n }, [\n side,\n baseToQuoteConversionRate,\n maxBalanceBase,\n maxBalanceQuote,\n maxAmountQuoteResponse,\n maxAmountBaseResponse,\n BaseCurrency,\n QuoteCurrency,\n ]);\n\n return {\n effectiveMaxBase,\n effectiveMaxQuote,\n effectiveMaxBalance: currency === BaseCurrency ? effectiveMaxBase : effectiveMaxQuote,\n estimate:\n currency === BaseCurrency\n ? maxAmountBaseResponse?.Currency !== BaseCurrency\n : maxAmountQuoteResponse?.Currency !== QuoteCurrency,\n };\n}\n","import { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { createContext, useCallback, useContext, useEffect, useRef, type PropsWithChildren } from 'react';\nimport { map } from 'rxjs/operators';\nimport {\n useEndpointsContext,\n useUserContext as useKyokoUserContext,\n useMixpanel,\n UserContext,\n type UserContextProps,\n} from '../contexts';\nimport { useObservableValue } from '../hooks/useObservable';\nimport { useStaticSubscription } from '../hooks/useStaticSubscription';\nimport type { CUSTOMER_USER_API_KEY } from '../tokens';\nimport type { CustomerUser, CustomerUserApiKey } from '../types';\nimport { DELETE, GET, PATCH, POST, request } from '../utils';\nimport { useWLOrgConfigContext } from './WLOrgConfigProvider';\n\nexport interface WLUserApiKeyContextProps {\n getUserApiKeys: (userID: string) => Promise;\n createUserApiKey: (userID: string) => Promise;\n deleteUserApiKey: (userID: string, apiKeyID: string) => Promise;\n updateUserApiKey: (apiKey: CustomerUserApiKey) => Promise;\n}\n\ntype CombinedUserContextProps = UserContextProps & WLUserApiKeyContextProps;\n\nexport const WLUserApiKeyContext = createContext(undefined);\nWLUserApiKeyContext.displayName = 'WLUserApiKeyContext';\n\nexport function useWLUserContext(): CombinedUserContextProps {\n const userContext = useKyokoUserContext();\n const userApiKeyContext = useContext(WLUserApiKeyContext);\n if (userApiKeyContext === undefined) {\n throw new Error('Missing WLUserApiKeyContext.Provider further up in the tree. Did you forget to add it?');\n }\n return {\n ...userContext,\n ...userApiKeyContext,\n };\n}\n\nexport function WLUserApiKeyContextProvider({ children }: PropsWithChildren) {\n const { apiEndpoint } = useEndpointsContext();\n const userEndpoint = `${apiEndpoint}/user`;\n\n const getUserApiKeys = useCallback((userID: string) => request(GET, `${userEndpoint}/api-key`, null), [userEndpoint]);\n const createUserApiKey = useCallback(\n (userID: string) => request(POST, `${userEndpoint}/api-key`, null),\n [userEndpoint]\n );\n const deleteUserApiKey = useCallback(\n (userID: string, apiKeyID: string) => request(DELETE, `${userEndpoint}/api-key/${apiKeyID}`, null),\n [userEndpoint]\n );\n const updateUserApiKey = useCallback(\n (apiKey: CustomerUserApiKey) => request(PATCH, `${userEndpoint}/api-key`, apiKey),\n [userEndpoint]\n );\n\n return (\n \n {children}\n \n );\n}\n\nexport function WLUserContextProvider({ children }: PropsWithChildren) {\n const { data: subscription } = useStaticSubscription({\n tag: 'WLUserContextProvider',\n name: 'User',\n });\n\n const mixpanel = useMixpanel();\n const user = useObservableValue(\n () => subscription.pipe(map(response => response?.data[0])),\n [subscription]\n );\n\n useEffect(() => {\n if (user?.CustomerUserID != null) {\n mixpanel.identify(user.CustomerUserID);\n datadogRum.setUser({\n id: user.CustomerUserID,\n name: user.DisplayName,\n email: user.Email,\n organization: window.location.hostname,\n });\n datadogLogs.setUser({\n id: user.CustomerUserID,\n name: user.DisplayName,\n email: user.Email,\n organization: window.location.hostname,\n });\n }\n }, [user, mixpanel]);\n\n const isLoaded = user != null;\n\n // Arbitrarily put this here in this component, but could live anywhere...\n const didForceSessionReplay = useRef(false);\n const {\n config: { forceSessionReplay },\n } = useWLOrgConfigContext();\n useEffect(() => {\n if (forceSessionReplay && !didForceSessionReplay.current) {\n didForceSessionReplay.current = true;\n datadogRum.startSessionReplayRecording({ force: true });\n }\n }, [forceSessionReplay]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function useWLUser(): CustomerUser {\n const { user } = useWLUserContext();\n return user as unknown as CustomerUser;\n}\n\nexport interface CustomerUserAPIKeyResponse {\n type: typeof CUSTOMER_USER_API_KEY;\n initial: boolean;\n ts: string;\n data: CustomerUserApiKey[];\n}\n","import { values } from 'lodash';\nimport { useMemo } from 'react';\nimport { useWLCustomerMarketAccountContext } from '../providers/WLCustomerMarketAccountsProvider';\nimport { useWLUser } from '../providers/WLUserContextProvider';\nimport type { CustomerMarketAccount, MarketAccountAuthorizations } from '../types';\nimport { WL_WRITE_ORDERS } from './useWLRoleAuth';\n\nexport function useWLTradableCustomerMarketAccounts() {\n const { MarketAccountAuthorizations } = useWLUser();\n const { customerMarketAccountsList } = useWLCustomerMarketAccountContext();\n return useMemo(\n () => getTradableAccounts(customerMarketAccountsList, MarketAccountAuthorizations),\n [customerMarketAccountsList, MarketAccountAuthorizations]\n );\n}\n\nfunction getTradableAccounts(\n accounts?: CustomerMarketAccount[],\n authorizations?: MarketAccountAuthorizations\n): Map | null {\n // returning null means all accounts tradable. If there are no authorizations it means read/write to everything.\n // Also if there are read authorizations, but no write authorizations, it means we can write/trade to everything (because no write permissions have been restricted to any account).\n if (!accounts || !authorizations || !values(authorizations).some(a => a.includes(WL_WRITE_ORDERS))) {\n return null;\n }\n\n return new Map(\n accounts\n .map(account => ({\n account,\n hasWriteAuthorization: !!authorizations[account.SourceAccountID]?.some(a => a === WL_WRITE_ORDERS),\n }))\n .filter(({ hasWriteAuthorization }) => hasWriteAuthorization)\n .map(({ account }) => [account.SourceAccountID, account])\n );\n}\n","import { Link } from 'react-router-dom';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css, keyframes } from 'styled-components';\nimport { parseDimension } from 'styles';\nimport { Box, HStack, VStack } from '../Core';\nimport { Icon } from '../Icons';\nimport { TabAppearance, TabSize, type TabProps } from './types';\n\nexport const Wrapper = styled(VStack)``;\nWrapper.defaultProps = {\n alignItems: 'initial',\n flex: '0 1 auto',\n w: '100%',\n overflow: 'hidden',\n justifyContent: 'initial',\n};\n\nfunction getTabHeight(\n theme: DefaultTheme,\n appearance: TabAppearance = TabAppearance.Underlined,\n size: TabSize = TabSize.Default\n): string {\n let height = theme.baseSize * size;\n if (appearance === TabAppearance.Pill) {\n // Adjust for border around the pill\n height = height - 2 * theme.spacingTiny;\n }\n return `${height}px`;\n}\n\nfunction getTabListHeight(theme: DefaultTheme, size: TabSize = TabSize.Default): string {\n return `${theme.baseSize * size}px`;\n}\n\nfunction getFontSize(\n theme: DefaultTheme,\n appearance: TabAppearance = TabAppearance.Underlined,\n size: TabSize = TabSize.Default\n): string {\n if (appearance === TabAppearance.Pill) {\n return size === TabSize.Small ? `${theme.fontSizeTiny}rem` : `${theme.fontSizeSmall}rem`;\n }\n return size === TabSize.Small ? `${theme.fontSizeSmall}rem` : `${theme.fontSizeDefault}rem`;\n}\n\nfunction getPadding(\n theme: DefaultTheme,\n appearance: TabAppearance = TabAppearance.Underlined,\n size: TabSize = TabSize.Default\n): string {\n if (appearance === TabAppearance.Pill) {\n switch (size) {\n case TabSize.Small:\n return `0 ${theme.spacingDefault}px`;\n default:\n return `0 ${theme.spacingComfortable}px`;\n }\n }\n if (appearance === TabAppearance.Filled) {\n switch (size) {\n case TabSize.Small:\n return `0 ${theme.spacingDefault}px`;\n case TabSize.Default:\n return `0 ${theme.spacingDefault}px`;\n case TabSize.Large:\n return `0 ${theme.spacingComfortable}px`;\n default:\n throw new Error(`Unknown size: ${size}`);\n }\n }\n return '0';\n}\n\nfunction getFontWeight(theme: DefaultTheme, appearance: TabAppearance = TabAppearance.Underlined): string {\n return appearance === TabAppearance.Pill ? theme.fontWeightMedium : theme.fontWeightRegular;\n}\n\nconst tab = css`\n border: 0;\n text-decoration: none;\n color: ${({ theme, isSelected }) => (isSelected ? theme.colorTabSelected : theme.colorTab)};\n cursor: pointer;\n display: flex;\n align-items: center;\n white-space: nowrap;\n appearance: none;\n height: ${({ theme, appearance, size }) => getTabHeight(theme, appearance, size)};\n user-select: none;\n font-weight: ${({ theme, appearance }) => getFontWeight(theme, appearance)};\n padding: ${({ theme, appearance, size }) => getPadding(theme, appearance, size)};\n position: relative;\n font-size: ${({ theme, appearance, size }) => getFontSize(theme, appearance, size)};\n transition: color 200ms;\n\n &:hover {\n color: ${({ theme, isSelected }) => (isSelected ? theme.colorTabSelected : theme.colorTabHover)};\n }\n\n &:active {\n color: ${({ theme }) => theme.colorTabActive};\n }\n\n ${({ theme }) => `\n > span + i, > i + span {\n margin-left: ${theme.spacingSmall}px;\n }\n `};\n\n &:before {\n bottom: -1px;\n border-bottom: ${({ theme, appearance, isSelected, isDragging }) =>\n isSelected && isDragging && appearance !== TabAppearance.Filled\n ? `2px solid ${theme.borderColorTabSelected}`\n : '0'};\n content: ' ';\n position: absolute;\n right: 0;\n width: 100%;\n }\n`;\n\nexport const NavTabWrapper = styled(Link).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['isSelected'].includes(prop) && defaultValidatorFn(prop),\n})`\n ${tab};\n background: transparent;\n`;\n\nexport const TabWrapper = styled(Box).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['isSelected'].includes(prop) && defaultValidatorFn(prop),\n})`\n ${tab};\n height: ${({ theme, appearance, size }) => getTabHeight(theme, appearance, size)};\n`;\n\nTabWrapper.defaultProps = {\n background: 'transparent',\n};\n\nexport const TabPanel = styled(Box)<{ renderInBackground?: boolean }>`\n flex: 1 1 0;\n ${({ renderInBackground }) =>\n renderInBackground &&\n css`\n flex: 0;\n `};\n`;\n\nexport const TabsWrapper = styled.div<{ appearance?: TabAppearance }>`\n display: flex;\n list-style: none;\n flex: 0 0 auto;\n margin: 0;\n position: relative;\n width: auto;\n z-index: 1;\n align-items: flex-end;\n padding: 0\n ${({ theme, appearance }) =>\n appearance === TabAppearance.Underlined ? parseDimension(theme, theme.spacingComfortable) : undefined};\n`;\n\nexport const TabListWrapper = styled(Box)<{ appearance?: TabAppearance; size?: TabSize }>`\n overflow-y: hidden;\n overflow-x: auto;\n position: relative;\n width: 100%;\n\n height: ${({ theme, size, h }) => (h ? parseDimension(theme, h) : getTabListHeight(theme, size))};\n background: ${({ theme, appearance }) =>\n appearance === TabAppearance.Filled\n ? theme.backgroundFilledTabList\n : appearance === TabAppearance.Pill\n ? theme.backgroundToggle\n : undefined};\n\n ${({ appearance, theme }) =>\n appearance === TabAppearance.Pill &&\n `\n border-radius: ${theme.borderRadiusDefault}px;\n border: ${theme.spacingTiny}px solid transparent;\n `};\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n height: 0;\n }\n`;\n\nexport const TabBorder = styled.div<{ isBordered: boolean }>`\n ${({ isBordered, theme }) => isBordered && `background: ${theme.borderColorTab}`};\n height: 1px;\n margin-top: -1px;\n`;\n\nexport const TabPanelsWrapper = Box;\n\nexport const TabIndicator = styled.div.attrs({\n 'data-testid': 'tab-indicator',\n})<{\n translateX: number;\n width: number;\n appearance?: TabAppearance;\n isDragging?: boolean;\n}>`\n height: ${({ appearance }) => (appearance === TabAppearance.Underlined ? '2px' : `100%`)};\n width: 100px;\n background: ${({ theme, appearance }) =>\n appearance === TabAppearance.Underlined\n ? theme.borderColorTabSelected\n : appearance === TabAppearance.Filled\n ? theme.backgroundFilledTab\n : theme.backgroundPriorityButton};\n border-radius: ${({ theme, appearance }) =>\n appearance === TabAppearance.Pill && theme.borderRadiusDefault - theme.spacingTiny}px;\n ${({ theme, appearance }) =>\n appearance === TabAppearance.Pill && `border: solid 1px ${theme.borderColorPriorityButton};`}\n bottom: 0;\n transition: background 200ms 0s ease, transform 300ms 0s cubic-bezier(0.46, 0.75, 0.36, 1.06);\n transform: ${({ translateX = 0, width = 0, appearance }) =>\n `translateX(${translateX}px) ${appearance === TabAppearance.Filled ? 'translateY(-100%)' : ''} scaleX(${width}%)`};\n transform-origin: left;\n position: ${({ appearance }) => `${appearance !== TabAppearance.Filled ? 'absolute' : 'static'}`};\n display: ${({ isDragging }) => `${isDragging ? 'none' : 'block'}`};\n box-shadow: ${({ theme, appearance }) =>\n appearance === TabAppearance.Filled || appearance === TabAppearance.Underlined ? theme.boxShadowTabActive : 'none'};\n`;\n\nconst tabEditorBackground = keyframes`\n 0% {\n transform: scaleX(90%);\n opacity: 0.5;\n }\n 100% {\n transform: scaleX(100%);\n opacity: 1;\n }\n`;\n\nexport const TabEditorWrapper = styled.div`\n animation: ${tabEditorBackground} 200ms;\n display: flex;\n transform-origin: left;\n background: ${({ theme }) => theme.backgroundTabInput};\n padding-left: ${({ theme }) => `${theme.spacingDefault}px`};\n align-items: center;\n align-self: stretch;\n margin-top: ${({ theme }) => theme.spacingSmall}px;\n margin-bottom: ${({ theme }) => theme.spacingSmall}px;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n cursor: text;\n\n > span {\n border: 0;\n outline: 0;\n appearance: none;\n min-width: 20px;\n display: block;\n overflow-x: auto;\n padding-right: ${({ theme }) => `${theme.spacingSmall}px`};\n }\n\n button {\n background: transparent;\n border: 0;\n outline: 0;\n appearance: none;\n height: 100%;\n padding: ${({ theme }) => `0 ${theme.spacingDefault}px`};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n color: ${({ theme }) => theme.colorTabInputButton};\n &:hover {\n background: transparent;\n color: ${({ theme }) => theme.colorTabInputButtonHover};\n }\n &:active {\n background: transparent;\n color: ${({ theme }) => theme.colorTabInputButtonActive};\n }\n }\n`;\n\nexport const RightItems = styled.div`\n margin-left: auto;\n align-self: center;\n`;\n\nexport const OverflowWrapper = styled.div`\n margin: ${({ theme }) => `0 -${theme.spacingDefault}px`};\n ${TabWrapper} {\n width: 100%;\n\n ${HStack} {\n &:first-child {\n width: 100%;\n justify-content: space-between;\n }\n }\n }\n`;\n\nexport const CloseIcon = styled(Icon)`\n margin-left: ${({ theme }) => theme.spacingSmall}px;\n &:hover {\n color: ${({ theme }) => theme.colorTextAttention};\n }\n`;\n","import { useEffect, useRef, useState, type KeyboardEvent } from 'react';\nimport styled from 'styled-components';\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside';\nimport { IconButton } from '../Button';\nimport { FormControlSizes } from '../Form/types';\nimport { IconName } from '../Icons';\nimport { TabEditorWrapper } from './styles';\n\nexport interface TabEditorProps {\n initialValue?: string;\n onSubmit(text: string): void;\n onCancel(): void;\n}\n\nconst selectElementContent = (element: Node) => {\n const range = document.createRange();\n const selection = window.getSelection();\n range.selectNodeContents(element);\n range.collapse(false);\n selection?.removeAllRanges();\n selection?.addRange(range);\n};\n\nexport const TabEditor = styled(({ initialValue = '', onSubmit, onCancel, ...props }: TabEditorProps) => {\n const value = useRef(initialValue);\n const [disableSubmit, setDisableSumbit] = useState(true);\n\n const ref = useRef(null);\n useOnClickOutside(ref, onCancel);\n\n const inputRef = useRef(null);\n\n useEffect(() => {\n if (inputRef.current != null) {\n inputRef.current.innerText = value.current;\n inputRef.current.focus();\n // Find closet wrapper and scroll into view\n inputRef.current?.closest(\"[role='button']\")?.scrollIntoView({\n behavior: 'smooth',\n // We don't want any changes to the vertical scroll of the window\n block: 'nearest',\n });\n setDisableSumbit(!value.current);\n selectElementContent(inputRef.current);\n } else {\n throw new Error(`Tried to set innerText without inputRef in the DOM. This should never occur.`);\n }\n }, []);\n\n const handleSubmit = () => {\n if (inputRef.current != null && inputRef.current.innerText !== '') {\n onSubmit(inputRef.current?.innerText);\n }\n };\n\n const handleKeyUp = () => {\n setDisableSumbit(!inputRef.current?.innerText);\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleSubmit();\n return false;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n onCancel();\n return false;\n }\n };\n\n return (\n \n \n \n \n );\n})``;\n","import { forwardRef, useCallback, useState, type MouseEvent } from 'react';\nimport type { LinkProps } from 'react-router-dom';\nimport styled, { useTheme } from 'styled-components';\nimport { IconButton } from '../Button';\nimport { FormControlSizes } from '../Form/types';\nimport { IconName } from '../Icons';\nimport { Text } from '../Text';\nimport { TabEditor } from './TabEditor';\nimport { NavTabWrapper } from './styles';\nimport type { TabProps } from './types';\n\nexport interface NavTabProps extends TabProps, Omit {\n labelMarginBottom?: string;\n}\n\nexport const NavTab = styled(\n forwardRef(\n (\n {\n label,\n prefix,\n suffix,\n editable = false,\n closable = false,\n reorderable = false,\n isSelected,\n onRename,\n onCancel,\n onRemove,\n isAddingTab = false,\n isDragging = false,\n to = '/',\n labelMarginBottom,\n ...props\n }: NavTabProps,\n ref\n ) => {\n const [isEditing, setEditing] = useState(isAddingTab);\n const handleRename = useCallback(\n (value: string) => {\n if (value) {\n onRename?.(value);\n setEditing(false);\n }\n },\n [onRename]\n );\n const handleCancel = useCallback(() => {\n onCancel?.();\n setEditing(false);\n if (isAddingTab) {\n onRemove?.();\n }\n }, [onCancel, onRemove, isAddingTab]);\n\n const handleRemove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation();\n onRemove?.();\n return false;\n },\n [onRemove]\n );\n\n const theme = useTheme();\n\n return (\n editable && setEditing(true)}\n to={to}\n {...props}\n >\n {isEditing ? (\n \n ) : (\n <>\n {!!prefix && prefix}\n {label && {label}}\n {!!suffix && suffix}\n {closable && (\n \n )}\n \n )}\n \n );\n }\n )\n)``;\n","import { Tooltip } from 'components/Tooltip';\nimport { forwardRef, useCallback, useState, type MouseEvent } from 'react';\nimport styled, { useTheme } from 'styled-components';\nimport { HStack } from '../Core';\nimport { ICON_SIZES, IconName } from '../Icons';\nimport { IndicatorDotVariants, IndicatorDotWrapper } from '../IndicatorDot';\nimport { TabEditor } from './TabEditor';\nimport { CloseIcon, TabWrapper } from './styles';\nimport type { TabProps } from './types';\n\nexport const Tab = styled(\n forwardRef(\n (\n {\n label,\n prefix,\n suffix,\n editable = false,\n closable = false,\n reorderable = false,\n isSelected,\n onRename,\n onCancel,\n onRemove,\n isAddingTab = false,\n isDragging = false,\n showDot,\n dotVariant = IndicatorDotVariants.Default,\n maxTabLength,\n ...props\n }: TabProps,\n ref\n ) => {\n const [isEditing, setEditing] = useState(isAddingTab);\n const handleRename = useCallback(\n (value: string) => {\n if (value) {\n onRename?.(value);\n setEditing(false);\n }\n },\n [onRename]\n );\n const handleCancel = useCallback(() => {\n onCancel?.();\n setEditing(false);\n if (isAddingTab) {\n onRemove?.();\n }\n }, [onCancel, onRemove, isAddingTab]);\n\n const handleRemove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation();\n onRemove?.();\n return false;\n },\n [onRemove]\n );\n\n const handleAuxClick = useCallback(\n (e: MouseEvent) => {\n if (e.button === 1 && closable) {\n onRemove?.();\n }\n return false;\n },\n [onRemove, closable]\n );\n\n const theme = useTheme();\n\n return (\n editable && setEditing(true)}\n onAuxClick={handleAuxClick}\n {...props}\n >\n {isEditing ? (\n \n ) : (\n \n \n \n \n {!!prefix && prefix}\n {label && (\n \n {label}\n \n )}\n \n \n {!!suffix && suffix}\n {closable && (\n \n )}\n \n \n )}\n \n );\n }\n )\n)``;\n","import styled from 'styled-components';\nimport { Tab } from './Tab';\nimport type { TabProps } from './types';\n\nexport type TabButtonProps = Pick<\n TabProps,\n 'label' | 'prefix' | 'suffix' | 'onClick' | 'appearance' | 'size' | 'isSelected'\n>;\n\nexport const TabButton = styled(({ label, onClick, ...props }: TabButtonProps) => (\n \n))`\n padding: 0 ${({ theme }) => theme.spacingDefault}px;\n`;\n","import { createContext, type CSSProperties, type ReactNode } from 'react';\nimport type { BoxProps } from '../Core';\nimport { Wrapper } from './styles';\nimport { TabAppearance, TabSize } from './types';\n\nexport interface TabsContextProps {\n selectedIndex: number;\n onSelect?(index: number);\n onCancel?(index: number);\n onRemove?(index: number);\n onAdd?();\n onRename?(index: number, text: string);\n onReorder?(startIndex: number, endIndex: number): void;\n showAddTab?: boolean;\n allowClosingLastTab: boolean;\n appearance: TabAppearance;\n size: TabSize;\n}\n\nexport const TabsContext = createContext(undefined);\nTabsContext.displayName = 'TabsContext';\n\nexport interface TabsProps extends Omit {\n children?: ReactNode;\n selectedIndex: number;\n onSelect?(index: number): void;\n onCancel?(index: number): void;\n onRemove?(index: number): void;\n onAdd?(tab?: Partial): string | void;\n onRename?(index: number, text: string): void;\n onReorder?(startIndex: number, endIndex: number): void;\n style?: CSSProperties;\n showAddTab?: boolean;\n allowClosingLastTab?: boolean;\n appearance?: TabAppearance;\n size?: TabSize;\n}\n\nexport function Tabs({\n children,\n selectedIndex,\n onSelect,\n onRename,\n onCancel,\n onRemove,\n onReorder,\n onAdd,\n showAddTab = false,\n allowClosingLastTab = false,\n appearance = TabAppearance.Underlined,\n size = TabSize.Default,\n ...props\n}: TabsProps) {\n return (\n \n {children}\n \n );\n}\n","import {\n DragDropContext,\n Draggable,\n Droppable,\n type Direction,\n type DraggableProvided,\n type DroppableProvided,\n} from '@hello-pangea/dnd';\nimport {\n Children,\n cloneElement,\n isValidElement,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport styled, { useTheme } from 'styled-components';\n\nimport { NavTab } from './NavTab';\nimport {\n OverflowWrapper,\n RightItems,\n TabBorder,\n TabIndicator,\n TabListWrapper,\n TabsWrapper,\n TabWrapper,\n} from './styles';\nimport { Tab } from './Tab';\nimport { TabButton } from './TabButton';\nimport { TabsContext } from './Tabs';\n\nimport { TabAppearance } from 'components/Tabs/types';\nimport { findLast } from 'lodash';\nimport { defineMessages } from 'react-intl';\nimport { useMountedState } from 'react-use';\nimport { v1 as uuid } from 'uuid';\nimport { useConstant, useDynamicCallback, useElementSize, useIntl } from '../../hooks';\nimport { modeColor } from '../../styles';\nimport type { BoxProps } from '../Core';\nimport { Icon, IconName } from '../Icons';\nimport { Popover, usePopoverState } from '../Popover';\n\nconst messages = defineMessages({\n countMore: {\n defaultMessage: '{count} More',\n id: 'Tabs.countMore',\n },\n});\n\nexport interface TabListProps extends BoxProps {\n children?: ReactNode;\n rightItems?: ReactNode;\n isBordered?: boolean;\n suppressOverflowList?: boolean;\n renderAddTab?: () => ReactNode;\n}\n\ninterface DraggableTabProps {\n draggableProvided: DraggableProvided;\n child: ReactElement;\n i: number;\n isDragged: boolean;\n withinOverflowList?: boolean;\n}\n\nconst overflowButtonSize = 80;\n\nexport const TabList = styled(function TabList({\n children,\n rightItems,\n isBordered = false,\n suppressOverflowList = false,\n renderAddTab,\n ...props\n}: TabListProps) {\n const {\n selectedIndex,\n onSelect,\n onRename,\n onCancel,\n onRemove,\n onReorder,\n onAdd,\n showAddTab,\n allowClosingLastTab,\n appearance,\n size,\n } = useContext(TabsContext)!;\n const theme = useTheme();\n const itemRefs = useRef([]);\n const isMounted = useMountedState();\n const [translateXMap, setTranslateXMap] = useState(itemRefs.current.map(item => item.offsetLeft));\n const [widthMap, setWidthMap] = useState(itemRefs.current.map(item => item.offsetWidth));\n const [isDragging, setIsDragging] = useState(false);\n const numberOfChildren = Children.count(children);\n const { formatMessage } = useIntl();\n\n const [maxVisible, setMaxVisible] = useState(numberOfChildren);\n\n const {\n elementRef: containerSizeObserverRef,\n size: { offsetWidth: containerWidth },\n } = useElementSize({ debounceWait: 100 });\n\n // This useEffect tracks mounted/unmounted children, and also maintains a ResizeObserver that\n // watches if a child has been resized (due to renaming a tab for example). If so, we need to update\n // the tab indicator width.\n useEffect(() => {\n if (itemRefs.current != null) {\n const observer = new ResizeObserver(() => {\n window.requestAnimationFrame(() => {\n const widthMap = itemRefs.current.map(item => item.offsetWidth);\n const translateXMap = itemRefs.current.map(item => item.offsetLeft);\n if (isMounted()) {\n setWidthMap(widthMap);\n setTranslateXMap(translateXMap);\n }\n });\n });\n for (const itemRef of itemRefs.current) {\n if (itemRef) {\n observer.observe(itemRef);\n }\n }\n return () => observer.disconnect();\n }\n }, [children, isMounted, containerWidth]);\n\n const containerRef = useRef(null);\n const rightItemsRef = useRef(null);\n\n useEffect(() => {\n // handle cases where tabs are rendered with empty array initially, we need an initial sensible maxVisible that renders all children\n // only after rendering first time we can measure the element sizes and subsequently calculate what fits and what does not\n if (maxVisible === 0) {\n setMaxVisible(numberOfChildren);\n }\n }, [numberOfChildren, maxVisible]);\n\n useEffect(() => {\n if (containerRef.current && widthMap.length) {\n // Some usages of tabs (symbol selector) are always rendered but initially hidden due to the way we use downshift\n const isHidden = containerRef.current && window.getComputedStyle(containerRef.current).visibility === 'hidden';\n if (isHidden) {\n return;\n }\n\n if (suppressOverflowList) {\n setMaxVisible(numberOfChildren);\n return;\n }\n\n let availableWidth =\n containerRef.current.offsetWidth - (rightItemsRef.current?.offsetWidth || 0) - (showAddTab ? 30 : 0);\n\n let maxVisible;\n for (maxVisible = 0; maxVisible < numberOfChildren; ++maxVisible) {\n // unfortunately not all tabs have an accurate width tracking, only those on the main tab bar are up to date in widthMap\n // those in the overflow are all sized to the widest tab as to align the close icon, so using 90 as an average\n const nextTabWidth = widthMap[maxVisible] || 90;\n\n if (availableWidth - nextTabWidth > overflowButtonSize) {\n availableWidth = availableWidth - nextTabWidth;\n continue;\n } else if (maxVisible === numberOfChildren - 1 && nextTabWidth < availableWidth) {\n // if only 1 tab not fitting check if it fits reserved space instead - i.e. don't show \"1 more\" if the underlying tab fits there\n continue;\n }\n break;\n }\n\n setMaxVisible(Math.max(maxVisible, 1)); // ensure at least 1 is visible\n }\n }, [\n containerRef,\n rightItemsRef,\n containerWidth,\n widthMap,\n numberOfChildren,\n showAddTab,\n appearance,\n size,\n suppressOverflowList,\n ]);\n\n const handleClickOutside = useDynamicCallback((e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n popover.close();\n }\n });\n\n const popover = usePopoverState({\n usePortal: true,\n trigger: 'click',\n placement: 'bottom-end',\n isSmall: true,\n delay: undefined,\n onClickOutside: handleClickOutside,\n });\n\n // Ensure we are positioning TabIndicator on already calculated offset\n // of latest tab as on initial render translateXMap[selectedIndex] will be\n // undefined until useEffect calculating offsets and widths fill execute.\n const translateX = useMemo(\n () => findLast(translateXMap, v => v > 0, selectedIndex) || 0,\n [translateXMap, selectedIndex]\n );\n\n const droppableId = useConstant(`tab-list-${uuid()}`);\n const overflowDroppableId = useConstant(`overflow-list-${uuid()}`);\n\n const handleDragEnd = useCallback(\n result => {\n setIsDragging(false);\n if (result?.destination) {\n const isSourceOnOverflow = result.source.droppableId === overflowDroppableId;\n const isDestinationOnOverflow = result.destination.droppableId === overflowDroppableId;\n const isMovingFromListToOverflow = !isSourceOnOverflow && isDestinationOnOverflow;\n\n const destinationIndex = isMovingFromListToOverflow ? result.destination.index - 1 : result.destination.index;\n\n if (children?.[destinationIndex].props?.reorderable) {\n onReorder?.(result.source.index, destinationIndex);\n }\n }\n },\n [onReorder, children, overflowDroppableId]\n );\n\n const getListStyle = (listId: string): CSSProperties => {\n return {\n display: 'flex',\n flexDirection: listId === droppableId ? 'row' : 'column',\n gap: listId === droppableId && appearance === TabAppearance.Underlined ? theme.spacingMedium : 0,\n };\n };\n\n const DraggableTab = memo(({ draggableProvided, isDragged, child, i, withinOverflowList }: DraggableTabProps) => {\n const draggingStyles = isDragged\n ? {\n background: theme.backgroundContent,\n boxShadow: `0 2px 10px ${modeColor(theme, 'hsla(0, 0%, 0%, 0.1)', theme.colors.black.dim)}`,\n }\n : {};\n const getItemStyle = (draggableStyle): CSSProperties => ({\n display: 'flex',\n userSelect: 'none',\n padding: withinOverflowList ? '0px 8px' : 0,\n background: withinOverflowList && selectedIndex === i ? theme.colors.gray['020'] : 'transparent',\n ...draggingStyles,\n ...draggableStyle,\n });\n\n return (\n \n {cloneElement(child, {\n ...child.props,\n closable: Children.count(children) === 1 ? allowClosingLastTab && child.props.closable : child.props.closable,\n appearance,\n size,\n key: i,\n 'data-testid': child.props['data-testid'] ?? `tab-${i}`,\n ref: element => {\n if (element == null) {\n return;\n }\n itemRefs.current[i] = element;\n return element;\n },\n isDragging,\n onClick: e => {\n onSelect?.(i);\n child.props.onClick?.(e);\n },\n onRename: (name: string) => onRename?.(i, name),\n onCancel: () => onCancel?.(i),\n onRemove: () => onRemove?.(i),\n isSelected: selectedIndex === i,\n })}\n \n );\n });\n\n // https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/reparenting.md\n const renderClone = (provided, snapshot, rubric) => (\n \n {children?.[rubric.source.index]?.props?.label}\n \n );\n\n const getDroppable = useDynamicCallback(\n (id: string, direction: Direction, from: number, to: number, withinOverflowList: boolean) => (\n \n {(droppableProvided: DroppableProvided) => (\n
\n {Children.map(children, (child, i) => {\n if (!isValidElement(child) || i < from || i >= to) {\n return null;\n }\n if (child.type === Tab || child.type === NavTab) {\n const id = child.props.id || uuid();\n const isReorderable = child.props.reorderable;\n return (\n \n {(draggableProvided, snapshot) => (\n \n )}\n \n );\n }\n return child;\n })}\n {droppableProvided.placeholder}\n
\n )}\n
\n )\n );\n\n const overflowList = useMemo(() => {\n return maxVisible < numberOfChildren ? (\n \n = maxVisible}\n suffix={}\n />\n \n {getDroppable(overflowDroppableId, 'vertical', maxVisible, numberOfChildren, true)}\n \n \n ) : null;\n }, [\n maxVisible,\n numberOfChildren,\n popover,\n appearance,\n size,\n formatMessage,\n selectedIndex,\n getDroppable,\n overflowDroppableId,\n ]);\n\n // if we are adding new tab and overflow list exists, we must expand it to show\n const lastAddedIndex = useRef(-1);\n const handleAdd = useDynamicCallback(() => {\n lastAddedIndex.current = numberOfChildren;\n onAdd?.();\n });\n useEffect(() => {\n if (maxVisible <= lastAddedIndex.current) {\n popover.open();\n }\n // exclude popover or else you won't be able to close it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [numberOfChildren]);\n\n const handleRef = useDynamicCallback((el: HTMLDivElement) => {\n containerRef.current = el;\n containerSizeObserverRef.current = el;\n });\n\n return (\n \n \n setIsDragging(true)} onDragEnd={handleDragEnd}>\n {getDroppable(droppableId, 'horizontal', 0, maxVisible, false)}\n {overflowList}\n \n {showAddTab &&\n (renderAddTab ? (\n renderAddTab()\n ) : (\n }\n data-testid=\"add-tab-button\"\n />\n ))}\n {rightItems && {rightItems}}\n \n {translateXMap.length > 0 && selectedIndex < maxVisible && (\n \n )}\n \n \n );\n})``;\n","import { Children, cloneElement, isValidElement, useContext, type CSSProperties, type ReactNode } from 'react';\nimport styled from 'styled-components';\nimport type { BoxProps } from '../Core';\nimport { TabsContext } from './Tabs';\nimport { TabPanelsWrapper } from './styles';\n\nexport interface TabPanelsProps extends BoxProps {\n children?: ReactNode;\n style?: CSSProperties;\n unmountUnselected?: boolean;\n}\n\nexport const TabPanels = styled(function TabPanels({ children, unmountUnselected = true, ...props }: TabPanelsProps) {\n const { selectedIndex } = useContext(TabsContext)!;\n return (\n \n {Children.map(children, (child, i) => {\n const isSelected = isValidElement(child) && selectedIndex === i;\n\n if (unmountUnselected) {\n return isSelected ? child : null;\n }\n\n if (isValidElement(child)) {\n return cloneElement(child, {\n position: isSelected ? 'static' : 'absolute',\n zIndex: isSelected ? 'initial' : '-1',\n opacity: isSelected ? '1' : '0',\n } as any);\n } else {\n return null;\n }\n })}\n \n );\n})``;\n","import { createContext, useContext, useMemo } from 'react';\nimport { useDynamicCallback } from '../../hooks';\nimport type { TabProps } from './types';\n\nexport const DefaultTabsStateConfig = {\n tabs: {} as { [k: string]: TabsState },\n};\nconst DefaultTabsStorageMethods: TabsStorageContextProps = {\n getState() {\n return null;\n },\n setSelectedIndex() {\n return;\n },\n setItems() {\n return;\n },\n};\nconst DefaultTabsStorageContext = { /* ...DefaultTabsStateConfig, */ ...DefaultTabsStorageMethods };\nexport const TabsStorage = createContext(DefaultTabsStorageContext);\nTabsStorage.displayName = 'TabsStorage';\n\n/**\n * Returns a set of TabsStorage functions where all references are stable and will not cause re-renders\n * despite the underlying tab item data maybe changing\n */\nexport function useStaticTabsStorage() {\n const { getState, setSelectedIndex, setItems } = useContext(TabsStorage);\n\n const staticGetState = useDynamicCallback(getState);\n\n return useMemo(\n () => ({\n getState: staticGetState,\n setSelectedIndex,\n setItems,\n }),\n [staticGetState, setSelectedIndex, setItems]\n );\n}\n\n/**\n * Returns the same functions as useStaticTabsStorage, but allows the `getState` function\n * to be reactive, meaning that this hook will cause your component to re-render when the underlying persisted tab data changes\n */\nexport function useDynamicTabsStorage() {\n return useContext(TabsStorage);\n}\n\nexport type TabsState = {\n selectedIndex: number;\n items: TTabProps[];\n};\n\nexport interface TabsStorageContextProps {\n getState(tabsID: string): TabsState | null;\n setSelectedIndex(tabsID: string, index: number): void;\n setItems(tabsID: string, items: TTabProps[]): void;\n}\n","import { noop } from 'lodash';\nimport { createContext, useContext, useRef } from 'react';\nimport { ButtonVariants } from '../components/Button/styles';\nimport type { DialogProps } from '../components/Dialog/types';\nimport { useDisclosure, type UseDisclosureReturn } from '../hooks/useDisclosure';\nimport { useDynamicCallback } from '../hooks/useDynamicCallback';\n\ntype OpenDialogProps = Partial & { content: JSX.Element };\n\nconst Dialog = createContext<\n | ({\n content?: JSX.Element;\n open: (params?: OpenDialogProps) => void;\n } & DialogProps &\n Omit)\n | undefined\n>(undefined);\n\nexport const useGlobalDialog = () => {\n const context = useContext(Dialog);\n if (context === undefined) {\n throw new Error('Missing Dialog.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n};\n\nconst DEFAULT_PARAMS = {\n onConfirm: noop,\n onCancel: noop,\n content: undefined,\n confirmLabel: 'Yes',\n cancelLabel: 'No',\n showClose: false,\n showCancel: true,\n showConfirm: true,\n closeOnClickOutside: true,\n stretchButtons: true,\n variant: ButtonVariants.Primary,\n};\n\nexport const DialogProvider = function DialogProvider({ children }) {\n const paramsRef = useRef>();\n\n // TODO: parameterize more props as needed, starting with most common for now\n // NOTE: usePortal is not supported. This Dialog is on top of the DOM chain which means that we can't actually place it inline the local component\n const dialog = useDisclosure();\n\n const openDialog = useDynamicCallback((params?: OpenDialogProps) => {\n paramsRef.current = { ...DEFAULT_PARAMS, ...params };\n\n dialog.open();\n });\n\n return (\n \n {children}\n \n );\n};\n","import { cloneDeep, compact, isEqual, isFunction } from 'lodash';\nimport {\n createElement,\n useCallback,\n useMemo,\n useState,\n type Dispatch,\n type ReactElement,\n type SetStateAction,\n} from 'react';\nimport { useUpdateEffect } from 'react-use';\nimport { v1 as uuid } from 'uuid';\nimport { useDynamicCallback } from '../../hooks/useDynamicCallback';\nimport { useGlobalDialog } from '../../providers/DialogProvider';\nimport type { TabsProps } from './Tabs';\nimport type { TabProps } from './types';\n\nexport type UseTabsProps = Omit, 'selectedIndex' | 'onSelect'> & {\n /** The index to have selected on init */\n initialSelectedIndex?: number;\n /** The initial set of items */\n initialItems: (T | null | undefined)[];\n /** A function which is called every time the items set changes, but also when onItemsChanged function itself changes (be careful) */\n onItemsChanged?(items: T[]): void;\n /** Called whenever the selectedIndex changes, or this function reference changes (be careful) */\n onSelect?(index: number, items?: T[]): void;\n /**\n * A function which is called on tab creation, which spreads the return of the function on top of all new tabs.\n * Is invoked with the passed in tab to be created as its only parameter.\n */\n onCreateTab?: (tab: Partial | undefined) => Partial;\n requireRemoveConfirmation?: boolean | ((tabIndex: number, tab: T) => boolean);\n getConfirmationContent?: (tabIndex: number, tab: T) => ReactElement;\n /**\n * Supplying this callback allows you to control the label of the tabs as a function of their state.\n * This callback will run whenever there is some state change to any tab.\n *\n * A tab is \"usingSmartLabel\" up until the user manually renames the tab. At that point, that tab will stop calling\n * this callback forever, and instead just have its manually set label.\n */\n tabLabeler?: string | TabLabelerFn;\n};\n\nexport type TabLabelerFn = (\n tab: T,\n currentTabs: T[],\n action: 'creation' | 'update' | 'cloning'\n) => string;\n\nexport type UseTabs = {\n /** If true we're in edit mode, can rename new tab **/\n isAdding: boolean;\n\n /** Currently selected tab index **/\n selectedIndex: number;\n\n /** Change selected tab index **/\n setSelectedIndex: Dispatch>;\n\n /** Called after tab name change */\n onRename(index: number, name: string): void;\n\n /** Called on tab change */\n onSelect(index: number): void;\n\n /** Called on cancel/exit edit mode */\n onCancel(index: number): void;\n\n /** Called on tab removal */\n onRemove(index: number): void;\n\n /** Custom reorder function */\n onReorder(startIndex: number, endIndex: number): void;\n\n /** Called on tab addition */\n onAdd?(tab?: Partial): string | undefined;\n\n /** Default reorder function when onReorder is not provided */\n reorderItems(\n startIndex: number,\n endIndex: number\n ): {\n selectedIndex: number;\n items: (T | TabProps)[];\n };\n\n /**\n * Call to clone the tab at the provided index.\n * The provided `props` are spread last onto the newly created tab.\n *\n * `editable` and `closable` are set to `true` on the new tab. If you for whatever reason really don't want\n * your cloned tab to be editad or closed, set these to false in the passed props.\n */\n clone(index: number, props?: T | TabProps): void;\n\n /** Current list of tabs */\n items: T[];\n\n /** Set new list of tabs */\n setItems: Dispatch>;\n\n /**\n * Allows you to update just one item. Assumes that the item is already present in the `items` array (finds by item.id).\n * If the item.id is not found in the current items array, will result in this call being a no-op.\n */\n updateItem: (item: T) => void;\n\n /** Allow to have 0 tabs or require at least 1 tab */\n allowClosingLastTab: boolean | undefined;\n};\n\nexport function useTabs({\n initialSelectedIndex = 0,\n initialItems,\n requireRemoveConfirmation,\n getConfirmationContent,\n onSelect,\n onAdd,\n onRemove,\n onReorder,\n onCancel,\n onRename,\n onItemsChanged,\n allowClosingLastTab,\n onCreateTab,\n tabLabeler,\n // TODO spreading props like this makes the memo at the bottom useless\n ...props\n}: UseTabsProps) {\n const [selectedIndex, setSelectedIndex] = useState(initialSelectedIndex);\n const [items, setItems] = useState(\n compact(initialItems).map((tab, _, currentTabs) => ({\n ...tab,\n id: tab.id ?? uuid(),\n label: getLabelToUse({ tab, currentTabs, action: 'update', tabLabeler }),\n }))\n );\n const [isAdding, setAdding] = useState(false);\n useUpdateEffect(() => {\n onSelect?.(selectedIndex, items);\n }, [selectedIndex, onSelect]);\n\n // This effect runs every time any tab's state updates.\n useUpdateEffect(() => {\n onItemsChanged?.(items);\n }, [items, onItemsChanged]);\n\n const handleRename = useCallback(\n (index: number, name: string) => {\n setItems(items => {\n if (items[index].isAddingTab) {\n setSelectedIndex(index);\n }\n return items.map((tab, i) =>\n // Set the new name, disable any potential smartLabeling going on, and if we're adding a tab also stop that action\n i === index ? { ...tab, label: name, usingSmartLabel: false, isAddingTab: false } : tab\n );\n });\n setAdding(false);\n onRename?.(index, name);\n },\n [onRename]\n );\n\n const handleSelect = useCallback(index => setSelectedIndex(index), []);\n\n const handleCancel = useCallback(\n (index: number) => {\n setAdding(false);\n onCancel?.(index);\n },\n [onCancel]\n );\n\n const { open } = useGlobalDialog();\n\n const removeTab = useDynamicCallback((index: number) => {\n setSelectedIndex(selectedIndex => {\n if (selectedIndex >= index) {\n return Math.max(0, selectedIndex - 1);\n }\n return selectedIndex;\n });\n setItems(items => items.filter((_, i) => i !== index));\n onRemove?.(index);\n });\n\n const onRemoveWithDialog = useDynamicCallback((index: number, tab: T) => {\n open({\n onConfirm: () => {\n removeTab(index);\n },\n width: 360,\n content: getConfirmationContent\n ? getConfirmationContent(index, tab)\n : createElement('p', null, 'Would you like to proceed?'),\n });\n });\n\n const handleRemove = useDynamicCallback((index: number) => {\n const openDialog = isFunction(requireRemoveConfirmation)\n ? requireRemoveConfirmation(index, items[index])\n : requireRemoveConfirmation;\n if (openDialog) {\n onRemoveWithDialog(index, items[index]);\n } else {\n removeTab(index);\n }\n });\n\n const handleAdd = useCallback(\n (tab?: Partial) => {\n const newTab = {\n id: uuid(),\n closable: true,\n editable: true,\n reorderable: true,\n ...onCreateTab?.(tab),\n ...tab,\n } as T;\n\n setItems(currentTabs => {\n const label = getLabelToUse({ tab: newTab, currentTabs, action: 'creation', tabLabeler });\n const hasLabel = label !== '';\n setAdding(!hasLabel);\n\n newTab.isAddingTab = !hasLabel;\n newTab.label = label;\n const newItems = [...currentTabs, newTab];\n\n if (hasLabel) {\n setSelectedIndex(newItems.length - 1);\n }\n return newItems;\n });\n onAdd?.(tab);\n return newTab.id;\n },\n [onAdd, onCreateTab, tabLabeler]\n );\n\n const reorderItems = useCallback(\n (\n startIndex: number,\n endIndex: number\n ): {\n selectedIndex: number;\n items: (T | TabProps)[];\n } => {\n if (startIndex === endIndex) {\n return {\n selectedIndex,\n items,\n };\n }\n const newItems = [...items];\n const selectedId = newItems[selectedIndex].id;\n const [removed] = newItems.splice(startIndex, 1);\n newItems.splice(endIndex, 0, removed);\n setItems(newItems);\n const newSelectedIndex = newItems.findIndex(item => item.id === selectedId);\n if (newSelectedIndex > -1) {\n setSelectedIndex(newSelectedIndex);\n }\n return {\n selectedIndex: newSelectedIndex,\n items: newItems,\n };\n },\n [items, selectedIndex]\n );\n\n const customReorderItems = useCallback(\n (startIndex: number, endIndex: number) => {\n onReorder ? onReorder(startIndex, endIndex) : reorderItems(startIndex, endIndex);\n },\n [onReorder, reorderItems]\n );\n\n const clone = useCallback(\n (index: number, props: T | TabProps = {}) => {\n setItems(currentTabs => {\n const newTab: T = {\n ...currentTabs[index],\n id: uuid(),\n closable: true,\n editable: true,\n ...props,\n };\n\n // if the user provided their own label as an override (via props), use that first and foremost\n newTab.label = props.label ?? getClonedTabLabel({ clonedTab: newTab, currentTabs, tabLabeler });\n const updatedTabs = [...currentTabs, newTab];\n setSelectedIndex(updatedTabs.length - 1);\n return updatedTabs;\n });\n },\n [tabLabeler]\n );\n\n const wrappedSetTabItems = useDynamicCallback((setItemsAction: ((currentItems: T[]) => T[]) | T[]) => {\n // Just how you can pass a function or just the new state in a setState call, same happens here.\n // We can now inject custom logic here before the _actual_ setItems call is made to apply any derived state.\n setItems(prevItems => {\n const prevItemsByID = new Map(prevItems.map(item => [item.id, item]));\n // Note: We deep clone the items here, so that if any of the items are modified without cloning,\n // we can still deep-compare against the original items list for changes.\n let updatedItems = typeof setItemsAction === 'function' ? setItemsAction(cloneDeep(prevItems)) : setItemsAction;\n\n // We now have the updates the implementer wishes to make. At this point we apply some internal derived state (maybe)\n // to the new list of tabs\n if (tabLabeler) {\n // Check each tab and make sure their smart label is up to date (if the tab is using smart labels)\n updatedItems = updatedItems.map(item => {\n if (!item.usingSmartLabel) {\n return item;\n }\n\n const prevItem = item.id ? prevItemsByID.get(item.id) : undefined;\n const labelChanged = prevItem != null && prevItem.label !== item.label;\n if (labelChanged) {\n // If there was a change to the tab label from the outside, we assume the implementer no longer wants to use our smart labeling\n return {\n ...item,\n usingSmartLabel: false,\n };\n }\n\n return {\n ...item,\n label: getLabelToUse({ tab: item, currentTabs: updatedItems, action: 'update', tabLabeler }),\n };\n });\n }\n\n // Only do the deep equals check in the case of a function for the setItemsAction;\n // if an array was passed for the item, we assume that the caller already knows whether any changes were made or not.\n // But for a function, the caller may use `tabs.forEach` and update e.g. filters for the tabs, without checking for actual differences\n // (see the analytics code for an example, which unconditionally updates the filters when new datasets come in)\n if (typeof setItemsAction === 'function' && isEqual(updatedItems, prevItems)) {\n return prevItems;\n }\n\n return updatedItems;\n });\n });\n\n const updateItem = useDynamicCallback((updatedItem: T) => {\n wrappedSetTabItems(currentItems => currentItems.map(item => (item.id === updatedItem.id ? updatedItem : item)));\n });\n\n return useMemo(\n () =>\n ({\n isAdding,\n selectedIndex,\n setSelectedIndex,\n onRename: handleRename,\n onSelect: handleSelect,\n onCancel: handleCancel,\n onRemove: handleRemove,\n onAdd: handleAdd,\n onReorder: customReorderItems,\n reorderItems,\n clone,\n items,\n setItems: wrappedSetTabItems,\n allowClosingLastTab,\n updateItem,\n ...props,\n } satisfies UseTabs),\n [\n isAdding,\n selectedIndex,\n setSelectedIndex,\n handleRename,\n handleSelect,\n handleCancel,\n handleRemove,\n handleAdd,\n customReorderItems,\n reorderItems,\n wrappedSetTabItems,\n clone,\n updateItem,\n items,\n allowClosingLastTab,\n props,\n ]\n );\n}\n\ninterface GetLabelToUseParams {\n tab: T;\n currentTabs: T[];\n action: 'creation' | 'update' | 'cloning';\n tabLabeler: UseTabsProps['tabLabeler'];\n}\n\n/** Given a tab, returns what tab it should show */\nfunction getLabelToUse({ tab, currentTabs, action, tabLabeler }: GetLabelToUseParams) {\n // We use the tabLabeler if we are creating a new tab, or if the tab has usingSmartLabel to true.\n const shouldGetLabelFromTabLabeler = tabLabeler != null && (action === 'creation' || tab.usingSmartLabel);\n if (shouldGetLabelFromTabLabeler) {\n return typeof tabLabeler === 'string' ? tabLabeler : tabLabeler(tab, currentTabs, action);\n }\n\n return tab.label ?? '';\n}\n\ninterface GetClonedTabLabelParams {\n clonedTab: T;\n currentTabs: T[];\n tabLabeler: UseTabsProps['tabLabeler'];\n}\n\nfunction getClonedTabLabel({ clonedTab, currentTabs, tabLabeler }: GetClonedTabLabelParams) {\n if (clonedTab.usingSmartLabel && tabLabeler) {\n return getLabelToUse({ tab: clonedTab, currentTabs, action: 'cloning', tabLabeler });\n }\n\n return `Copy of ${clonedTab.label}`;\n}\n","import type { ReactNode } from 'react';\nimport type {\n AutocompleteGroupSorterFunc,\n AutocompleteResultsProps,\n UseAutocompleteOutput,\n} from '../Autocomplete/types';\nimport type { UseDropdownPopperOutput, UseDropdownPopperProps } from '../Dropdown';\nimport type { DropdownProps } from '../Dropdown/Dropdown';\n\nexport type AutocompleteDropdownProps = UseDropdownPopperOutput &\n Omit &\n AutocompleteResultsProps &\n Pick, 'tabs'> & {\n childrenAboveResults?: ReactNode;\n /** Whether or not to show the group tabs at the top of the dropdown */\n showGroupTabs?: boolean;\n groupsPrefix?: ReactNode;\n groupSorter?: AutocompleteGroupSorterFunc;\n };\n// Expose a subset of the props for now\n// also cast the to any since we're not using it\n\nexport type ExposedAutocompleteDropdownProps = Pick<\n AutocompleteDropdownProps,\n 'portalize' | 'maxHeight' | 'groupMaxHeight' | 'RenderGroupHeader' | 'suffix' | 'showGroupTabs'\n> &\n Pick;\n\nexport const ALL_TAB = {\n group: 'All',\n};\n","import { IGNORED_AUTOCOMPLETE_GROUP } from './tokens';\nimport type { AutocompleteGroup } from './types';\n\nexport function getGroupsMetadata(\n items: T[],\n getGroup?: (obj: T) => string | undefined\n): Map> {\n const shouldGroupFlatItems = getGroup !== undefined;\n if (shouldGroupFlatItems) {\n const groupMetadata = new Map>();\n for (const item of items) {\n // If getGroup returns undefined, its the \"empty\" / \"headerless\" group\n const group = getGroup(item) ?? IGNORED_AUTOCOMPLETE_GROUP;\n if (groupMetadata.has(group)) {\n groupMetadata.get(group)?.items.push(item);\n } else {\n groupMetadata.set(group, {\n group,\n items: [item],\n });\n }\n }\n\n return groupMetadata;\n }\n\n return new Map>([\n [IGNORED_AUTOCOMPLETE_GROUP, { group: IGNORED_AUTOCOMPLETE_GROUP, items: items as T[] }],\n ]);\n}\n","import { useCombobox } from 'downshift';\nimport Fuse from 'fuse.js';\nimport { isEqual } from 'lodash';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useUpdateEffect } from 'react-use';\nimport { useConstant } from '../../../hooks';\nimport { useTabs, type TabProps } from '../../Tabs';\nimport { ALL_TAB } from '../AutocompleteDropdown/types';\nimport type {\n AutocompleteGroup,\n FuseSearchObject,\n FuseSearchResult,\n UseAutocompleteOutput,\n UseAutocompleteProps,\n} from './types';\nimport { getGroupsMetadata } from './utils';\n\n// Searching options for fuse.js\nconst fuseOptions = {\n keys: ['label', 'description'],\n includeMatches: true,\n includeScore: true,\n} as const;\n\nconst DEFAULT_THRESHOLD = 0.5; // default fusejs threshold is 0.6. Keeping it defined here so we can change it.\n\nexport function getLabelWrapper(getLabel: ((obj: T) => string) | undefined, obj: T | undefined) {\n if (obj == null) {\n return '';\n } else if (getLabel == null) {\n if (typeof obj === 'string') {\n return obj;\n } else {\n return JSON.stringify(obj);\n }\n } else {\n return getLabel(obj);\n }\n}\n\nexport function useAutocomplete({\n items,\n getLabel,\n getDescription,\n isItemDisabled,\n getGroup,\n initialSortByLabel = true,\n matchThreshold = DEFAULT_THRESHOLD,\n minMatchCharLength,\n searchKeys,\n itemSize,\n additionalSearchKeys,\n fuseDistance,\n sortFilterOverride,\n customFuseSearchResultsSorter,\n disableFuzzyMatching = false,\n groupSorter,\n inputRef,\n ...props\n}: UseAutocompleteProps): UseAutocompleteOutput {\n const isReadyRef = useRef(false);\n const [results, setResults] = useState[]>([]);\n\n const itemLabelSorter = useCallback(\n (a: T, b: T) => {\n return getLabelWrapper(getLabel, a).localeCompare(getLabelWrapper(getLabel, b));\n },\n [getLabel]\n );\n\n // This sorting is applied on search results only.\n // Note that Fuse by default sorts the search results by score. This function below allows you to pass in a \"modifier\" to this in\n // order to for example bubble certain special options to the top. Or whatever you want to do to the search results.\n const maybeSortSearchResults = useCallback(\n (searchResults: FuseSearchResult[], searchString: string) => {\n if (customFuseSearchResultsSorter) {\n return searchResults.sort((a, b) => customFuseSearchResultsSorter(a, b, searchString));\n } else {\n return searchResults;\n }\n },\n [customFuseSearchResultsSorter]\n );\n\n // We want to store a mapping of group key -> group metadata since we are flattening all groups' items\n // in order to push it through fuse. when the items come back on the other side, we need to stitch\n // the groups back together using this group -> metadata lookup\n // Note in the case of selecting groups the metadata does not change, the items are just filtered\n const groupMetadata = useMemo(() => {\n const itemsAlreadyGrouped = itemsAreAutocompleteGroups(items);\n if (itemsAlreadyGrouped) {\n return new Map(items.map(itemGroup => [itemGroup.group, itemGroup]));\n }\n return getGroupsMetadata(items, getGroup);\n }, [getGroup, items]);\n\n // After making sure all items are grouped, we sort the groups individually\n const groups = useMemo(() => {\n const newGroups = [...groupMetadata.values()];\n if (initialSortByLabel) {\n return newGroups.map(group => ({ ...group, items: group.items.slice().sort(itemLabelSorter) }));\n }\n if (groupSorter) {\n return newGroups.sort(groupSorter);\n }\n return newGroups;\n }, [groupMetadata, initialSortByLabel, itemLabelSorter, groupSorter]);\n\n const initialTabItems = useConstant([ALL_TAB, ...groups.map(group => ({ group: group.group }))]);\n\n // We now grouped and sorted items. Using this, we can create tabs.\n const tabs = useTabs({\n initialItems: initialTabItems,\n showAddTab: false,\n initialSelectedIndex: 0,\n onSelect: () => {\n // Upon clicking a tab item, the input loses focus. Return focus to the input immediately.\n inputRef?.current?.focus();\n },\n });\n\n const { setItems: setTabItems } = tabs;\n\n // Keep the state of the tab items in check with the AutocompleteGroups we compute directly above.\n // We already set an initial set of tabs, so skip the initial render here by doing useUpdateEffect.\n useUpdateEffect(() => {\n // The tabs only care about the \"group\" (key) property, so map to that.\n const newTabItems = [ALL_TAB, ...groups.map(group => ({ group: group.group }))];\n setTabItems(prevTabItems => {\n if (!isEqual(prevTabItems, newTabItems)) {\n return newTabItems;\n }\n return prevTabItems;\n });\n }, [groups, setTabItems]);\n\n // Given the selected tab (\"selectedGroup\"), we then filter down the groups to just that group.\n const renderedGroups = useMemo(() => {\n const selectedGroup = tabs.items[tabs.selectedIndex]?.group ?? ALL_TAB.group;\n if (selectedGroup === ALL_TAB.group) {\n return groups;\n }\n\n return groups.filter(group => group.group === selectedGroup);\n }, [tabs.items, tabs.selectedIndex, groups]);\n\n // After having pushed all the items through fuse, re-attach items to their groups\n const { resultGroups, flattenedResults } = useMemo(() => {\n const resultsByGroup = results.reduce((map, result) => {\n if (map.has(result.item._group)) {\n map.get(result.item._group)!.push(result);\n } else {\n map.set(result.item._group, [result]);\n }\n\n return map;\n }, new Map[]>());\n const resultGroups: AutocompleteGroup>[] = [...resultsByGroup.entries()]\n .map(([groupKey, items]) => {\n const group = groupMetadata.get(groupKey);\n if (!group) {\n return undefined;\n }\n\n return {\n ...group,\n items,\n };\n })\n .compact();\n\n if (groupSorter) {\n resultGroups.sort(groupSorter);\n }\n\n // After re-merging all search results into groups, we need to proide downshift with a flat list of all our items.\n // This list should be of type T[]\n // It's important that we group them and then re-flatten because then we can guarantee the correct ordering of items over several groups\n const flattenedResults = resultGroups.reduce(\n (arr, group) => arr.concat(group.items.map(item => item.item.item)),\n [] as T[]\n );\n return { resultGroups, flattenedResults };\n }, [results, groupMetadata, groupSorter]);\n\n const combobox = useCombobox({\n defaultHighlightedIndex: 0,\n items: flattenedResults,\n itemToString: item => {\n return item ? getLabelWrapper(getLabel, item) : '';\n },\n onInputValueChange: ({ inputValue }) => {\n if (inputValue == null) {\n inputValue = '';\n }\n },\n isItemDisabled: (item, index) => {\n // Two issues:\n // - due to the useUpdateEffect re-render, we need to check if the items are ready before we can check if they are disabled\n // - the 'item' checked could be undefined due to internal downshift behavior when the user is typing and the list is empty\n const listEmpty = flattenedResults.length === 0;\n return !isReadyRef.current || listEmpty ? true : isItemDisabled?.(item, index) ?? false;\n },\n ...props,\n });\n\n const fuseSearchObjects = useMemo(() => {\n return renderedGroups.flatMap(group => {\n return group.items.map(item => {\n const wrappedItem: FuseSearchObject = {\n item: item,\n label: getLabelWrapper(getLabel, item),\n description: getDescription ? getDescription(item) : '',\n disabled: isItemDisabled ? isItemDisabled(item) : false,\n _group: group.group,\n };\n\n // If there are any additional search keys provided, apply them to the FuseSearchObject\n if (additionalSearchKeys) {\n for (const additionalSearchKey of additionalSearchKeys) {\n wrappedItem[additionalSearchKey] = item[additionalSearchKey];\n }\n }\n\n return wrappedItem;\n });\n });\n }, [renderedGroups, additionalSearchKeys, getLabel, getDescription, isItemDisabled]);\n\n const shouldSort = customFuseSearchResultsSorter == null;\n const fuse = useMemo(() => {\n const fuseKeys: (string | { name: string; weight?: number })[] = [\n ...fuseOptions.keys,\n ...(additionalSearchKeys || []),\n ];\n\n return new Fuse(fuseSearchObjects, {\n ...fuseOptions,\n threshold: matchThreshold,\n ignoreLocation: true, // ignore _where_ in the string the match occurred. if its there, its there.\n keys: searchKeys ? searchKeys : fuseKeys,\n distance: fuseDistance,\n useExtendedSearch: disableFuzzyMatching,\n minMatchCharLength,\n shouldSort,\n });\n }, [\n fuseSearchObjects,\n searchKeys,\n minMatchCharLength,\n matchThreshold,\n additionalSearchKeys,\n fuseDistance,\n disableFuzzyMatching,\n shouldSort,\n ]);\n\n // Here we change the search results based on any inputValue changes and any fuse object changes.\n // If fuse object changes when there is a non-empty inputValue for example, we redo the search on the new fuseObject using\n // our pre-existing inputValue search string\n useEffect(() => {\n if (combobox.inputValue === '' || combobox.inputValue == null) {\n setResults(fuseSearchObjects.map(item => ({ item, refIndex: 0, matches: undefined, score: 0 })));\n } else {\n const searchString = combobox.inputValue.toLowerCase();\n // https://www.fusejs.io/examples.html#extended-search\n const extendedSearchString = searchString\n .split(' ')\n .filter(n => n)\n .map(item => `'${item}`) // note the ' applied here, see the extended search url above for docs\n .join(' ');\n\n if (sortFilterOverride) {\n const fuseSearchResults = fuseSearchObjects.map(item => ({ item, refIndex: 0, matches: undefined, score: 0 }));\n const results = sortFilterOverride(fuseSearchResults, searchString);\n\n setResults(results);\n } else {\n const results = fuse.search(disableFuzzyMatching ? extendedSearchString : searchString);\n setResults(maybeSortSearchResults(results, searchString));\n }\n }\n isReadyRef.current = true;\n }, [\n combobox.inputValue,\n fuse,\n maybeSortSearchResults,\n disableFuzzyMatching,\n fuseSearchObjects,\n customFuseSearchResultsSorter,\n sortFilterOverride,\n ]);\n return {\n groupMetadata,\n searchResults: results.map(item => item.item.item),\n items: flattenedResults,\n searchResultGroups: resultGroups,\n itemSize,\n isItemDisabled,\n tabs,\n ...combobox,\n };\n}\n\nexport function itemsAreAutocompleteGroups(items: T[] | AutocompleteGroup[]): items is AutocompleteGroup[] {\n if (items.length === 0) {\n return false; // inconclusive, assume false for this render\n }\n\n const firstItem = items[0];\n if (typeof firstItem !== 'object' || firstItem == null) {\n // If its not an object then its a string or a number meaning it cant be an autocompletegroup item\n return false;\n }\n\n return itemIsAutocompleteGroup(firstItem);\n}\n\nexport function itemIsAutocompleteGroup(item: T | AutocompleteGroup): item is AutocompleteGroup {\n return (\n item &&\n typeof item === 'object' &&\n ('items' satisfies keyof AutocompleteGroup) in item &&\n ('group' satisfies keyof AutocompleteGroup) in item\n );\n}\n\n/**\n * Takes an array of items, which can be whatever mix of T and AutocompleteGroup, and flattens them to just T[]\n */\nexport function flattenAutocompleteGroupItems(items: (T | AutocompleteGroup)[]): T[] {\n return items.flatMap(groupOrItem => {\n if (itemIsAutocompleteGroup(groupOrItem)) {\n return groupOrItem.items;\n } else {\n return groupOrItem;\n }\n });\n}\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { IconButton } from '../Button';\nimport type { BoxProps } from '../Core';\nimport { HStack } from '../Core';\nimport { FormControlSizes } from '../Form/types';\nimport { Icon, IconName } from '../Icons';\nimport { Text } from '../Text';\n\nexport interface PopperHeaderProps {\n icon?: IconName;\n iconColor?: string;\n title?: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n /** If true, will disable the close button (X) in the header */\n closeDisabled?: boolean;\n onCloseClicked?: () => void;\n\n boxProps?: BoxProps;\n}\n\n/** This component exists to be used as a header component for all \"popper\" components -- modals, dropdowns, popovers, etc */\nexport function PopperHeader({\n icon,\n iconColor,\n title,\n prefix,\n suffix,\n onCloseClicked,\n closeDisabled,\n ...boxProps\n}: PopperHeaderProps) {\n return (\n \n \n {icon && }\n {title}\n {prefix}\n \n\n \n {suffix}\n {onCloseClicked && (\n \n )}\n \n \n );\n}\n\nconst HeaderHStack = styled(HStack)`\n gap: ${({ theme }) => theme.spacingComfortable}px;\n padding-left: ${({ theme }) => theme.spacingDefault}px;\n padding-right: ${({ theme }) => theme.spacingSmall}px;\n justify-content: space-between;\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n background: ${({ theme }) => theme.backgroundModalHeader};\n min-height: 32px;\n border-bottom: ${({ theme }) => `1px solid ${theme.backgroundDivider}`};\n border-top-right-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n border-top-left-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n`;\n\ninterface PathTitleProps {\n paths: string[];\n}\n\n/**\n * A component for rendering a path title of sorts. Taking in an array of paths,\n * will render something like Path1 > Path2 > Path3\n * The last part of the Path will be highlighted (color text-wise)\n */\nexport const PathTitle = ({ paths }: PathTitleProps) => {\n return (\n \n {paths.map((path, i) => {\n const isLast = i === paths.length - 1;\n return (\n <>\n {path}\n {!isLast && }\n \n );\n })}\n \n );\n};\n","import styled from 'styled-components';\nimport { FormControlSizes } from '../types';\nimport { getFontSize } from '../utils';\n\nexport const DropdownContentWrapper = styled.div<{ size?: FormControlSizes }>`\n position: absolute;\n box-shadow: ${({ theme }) => theme.boxShadowDropdown};\n\n background: ${({ theme }) => theme.backgroundDropdownResults};\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n overflow: hidden;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n`;\n","import { useCallback, type CSSProperties, type KeyboardEvent, type ReactNode, type RefObject } from 'react';\nimport { Z_INDEX } from '../../../styles';\nimport { Flex } from '../../Core';\nimport type { IconName } from '../../Icons/IconNames';\nimport { PopperHeader, type PopperHeaderProps } from '../../PopperHeader/PopperHeader';\nimport { Portal, useTopLevelPortalElement } from '../../Portal';\nimport type { UseDropdownPopperOutput, UseDropdownPopperProps } from '../Dropdown/useDropdownPopper';\nimport type { FormControlSizes } from '../types';\nimport { DropdownContext, dropdownContextDefaultValue } from './DropdownContext';\nimport { DropdownContentWrapper } from './styles';\nimport { DROPDOWN_ID } from './tokens';\n\nexport interface DropdownHeaderProps {\n icon?: IconName;\n title?: string;\n suffix?: ReactNode;\n onCloseClicked?: () => void;\n}\n\nexport type DropdownProps = UseDropdownPopperOutput & {\n maxHeight?: number;\n comboboxStyles?: CSSProperties;\n menuStyles?: CSSProperties;\n size?: FormControlSizes;\n style?: CSSProperties;\n id?: string;\n children: ReactNode;\n /** Whether or not to portalize the dropdown. Portalizing a DOM element places it at the root of the page,\n * meaning that it will be detached from the sibling elements and rendered above.\n * Used when there are annoying issues with overflowing / overlapping elements.\n * Setting this to true can cause positioning issues if the reference element moves around a lot or is animated on entry for example.\n */\n portalize?: boolean;\n isOpen: boolean;\n dropdownContentRef?: RefObject;\n\n onTabOut?: (event: KeyboardEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n\n /**\n * Whether or not this dropdown is a parent to other \"child\" dropdowns within it.\n * This option influences the zIndex applied to make sure that portalized child dropdowns render\n * on top of this parent dropdown.\n */\n isParentDropdown?: boolean;\n\n headerProps?: PopperHeaderProps;\n};\n\n// Expose a subset of the props for now\n// also cast the to any since we're not using it\nexport type ExposedDropdownProps = Pick &\n Pick;\n\nexport function Dropdown({\n menuStyles,\n isOpen,\n size,\n children,\n portalize = false,\n referenceElement,\n dropdownWidth,\n setPopperElement,\n popper,\n dropdownContentRef,\n onTabOut,\n onKeyDown,\n isParentDropdown,\n id,\n dropdownHeight,\n maxHeight,\n\n headerProps,\n}: DropdownProps) {\n // We expose keydown events to parents here through the hooks.\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (onTabOut && event.key === 'Tab') {\n onTabOut(event);\n }\n\n onKeyDown && onKeyDown(event);\n },\n [onTabOut, onKeyDown]\n );\n useTopLevelPortalElement(DROPDOWN_ID);\n\n const { attributes, styles } = popper;\n\n const dropdownContent = (\n
\n \n {/* We add this context here to allow components inside a dropdown to know that they are being rendered inside of a dropdown. \n Defining this as a context instead of a prop to each component allows us to just do this once. \n Components then check to see if they are within this context and can use that information to do things such as modify their z-index to render on top of the dropdown.\n */}\n \n \n {headerProps && }\n {children}\n \n \n \n
\n );\n\n return <>{portalize ? {dropdownContent} : dropdownContent} ;\n}\n","import { useMemo } from 'react';\nimport { HStack } from '../../Core';\nimport { useModalContext } from '../../Modal';\nimport { Tab, TabList, TabPanel, Tabs } from '../../Tabs';\nimport { AutocompleteResults } from '../Autocomplete/AutocompleteResults';\nimport { Dropdown } from '../Dropdown/Dropdown';\nimport { AutocompleteResultsWrapper } from './styles';\nimport type { AutocompleteDropdownProps } from './types';\n\nexport const AutocompleteDropdown = ({\n menuStyles,\n isOpen,\n size,\n portalize,\n referenceElement,\n dropdownWidth,\n dropdownHeight,\n setPopperElement,\n id,\n popper,\n onTabOut,\n onKeyDown,\n dropdownContentRef,\n childrenAboveResults,\n showGroupTabs,\n groupSorter,\n tabs,\n groupsPrefix,\n suffix,\n ...autocompleteResultsProps\n}: AutocompleteDropdownProps) => {\n const modalContext = useModalContext();\n const portalizeToUse = portalize == null ? modalContext?.portalize : portalize;\n\n const AutoCompleteResults = useMemo(\n () => (\n <>\n {childrenAboveResults}\n \n \n ),\n [autocompleteResultsProps, childrenAboveResults, isOpen]\n );\n\n return (\n \n \n {showGroupTabs ? (\n \n \n {groupsPrefix}\n \n {tabs.items.map((tab, idx) => (\n \n ))}\n \n \n {AutoCompleteResults}\n \n ) : (\n AutoCompleteResults\n )}\n {suffix ?? null}\n \n \n );\n};\n","import styled from 'styled-components';\nimport { FormControlSizes } from '../types';\nimport { getFontSize } from '../utils';\n\nexport const CheckboxBox = styled.label``;\nexport const CheckboxWrapper = styled.label<{ disabled?: boolean; checked?: boolean }>`\n ${p =>\n p.disabled &&\n `\n opacity: 0.4;\n &:hover,\n &:hover input:disabled {\n cursor: not-allowed\n }\n `}\n white-space: nowrap;\n position: relative;\n\n &:hover {\n ${CheckboxBox} {\n border-width: 2px;\n background: ${({ theme, checked }) =>\n checked ? theme.backgroundCheckboxCheckedHover : theme.backgroundCheckboxHover};\n }\n }\n`;\n\nfunction getCheckboxSize(selectedSizeMult = FormControlSizes.Default): number {\n switch (selectedSizeMult) {\n case FormControlSizes.Tiny:\n case FormControlSizes.Small:\n case FormControlSizes.Default: {\n return 16;\n }\n default: {\n return 20;\n }\n }\n}\n\nexport const CheckBox = styled.span<{\n isChecked?: boolean;\n isIndeterminate?: boolean;\n isDisabled?: boolean;\n size?: number;\n}>`\n vertical-align: text-top;\n position: relative;\n display: inline-block;\n width: ${({ size }) => getCheckboxSize(size)}px;\n height: ${({ size }) => getCheckboxSize(size)}px;\n vertical-align: middle;\n\n ${CheckboxBox} {\n position: absolute;\n background: ${({ theme, isChecked, isIndeterminate }) =>\n isChecked || isIndeterminate ? theme.backgroundCheckboxChecked : theme.backgroundCheckbox};\n border: 1px solid\n ${({ theme, isChecked, isIndeterminate }) =>\n isChecked || isIndeterminate ? theme.borderColorCheckboxChecked : theme.borderColorCheckbox};\n color: ${({ theme }) => theme.colorCheckboxCheck};\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n width: ${({ size }) => getCheckboxSize(size)}px;\n height: ${({ size }) => getCheckboxSize(size)}px;\n transition: border 0.15s ease, background 0.15s ease;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n }\n\n i {\n line-height: 1;\n }\n\n input {\n opacity: 0;\n width: 100%;\n height: 100%;\n &:focus ~ label {\n border-width: 2px;\n border-color: ${({ theme, isChecked }) =>\n isChecked ? theme.borderColorCheckboxCheckedFocus : theme.borderColorCheckboxFocus};\n }\n }\n`;\n\nexport const CheckBoxLabel = styled.label<{ isChecked?: boolean; isDisabled?: boolean; size?: FormControlSizes }>`\n display: inline-block;\n margin-left: ${({ theme, size = FormControlSizes.Default }) =>\n ((theme.spacingTiny + theme.spacingSmall) * size) / 2}px;\n color: ${({ theme }) => theme.colorTextImportant};\n font-size: ${({ size, theme }) => getFontSize(theme, size)}rem;\n transition: color 0.25s ease;\n white-space: nowrap;\n line-height: 1;\n vertical-align: middle;\n`;\n","import { useMemo, type LegacyRef } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v1 as uuid } from 'uuid';\nimport { FormControlSizes, type FormControlProps } from '../types';\n\nimport { Icon, IconName } from '../../Icons';\nimport { CheckBox, CheckBoxLabel, CheckboxBox, CheckboxWrapper } from './styles';\n\nexport { CheckBoxLabel } from './styles';\n\nexport function Checkbox({\n id,\n indeterminate,\n disabled,\n name,\n children,\n onChange,\n className,\n checked,\n wrapperRef,\n size = FormControlSizes.Default,\n inputRef,\n ...props\n}: CheckboxProps) {\n const { baseSize } = useTheme();\n const forId = useMemo(() => `${id ? id : name ?? ''}${uuid()}`, [id, name]);\n const tickSize = (size * baseSize * 0.875) / 2;\n return (\n \n \n \n \n {indeterminate ? (\n \n ) : checked ? (\n \n ) : null}\n \n \n {children && (\n \n {children}\n \n )}\n \n );\n}\n\ntype CheckboxProps = {\n indeterminate?: boolean;\n inputRef?: LegacyRef;\n} & Omit, 'prefix'>;\n","import styled from 'styled-components';\nimport { FuseResultMatchEnum } from './types';\n\nexport const ResultMatchHighlight = styled.span`\n color: ${({ theme }) => theme.colors.gray['100']};\n text-transform: none;\n`;\n\nexport const ResultMatchHighlightAll = styled.span<{ type: FuseResultMatchEnum }>`\n color: ${({ theme, type }) => theme.colors.gray[type === FuseResultMatchEnum.Label ? '100' : '090']};\n text-transform: none;\n`;\n","import { memo } from 'react';\nimport { Box } from '../Core';\nimport { ResultMatchHighlight, ResultMatchHighlightAll } from './styles';\nimport type { FuseResultMatchProps } from './types';\nimport { FuseResultMatchEnum } from './types';\n\nexport { FuseResultMatchEnum } from './types';\n\nexport const FuseResultMatch = memo(\n ({\n label,\n indices = [],\n highlightAll = false,\n type = FuseResultMatchEnum.Label,\n disabled = false,\n }: FuseResultMatchProps) => {\n let matchIndex = 0;\n const result = [''];\n for (let i = 0; i < (label ?? '').length; i++) {\n if (indices[matchIndex] && indices[matchIndex][0] === i) {\n result.push('');\n }\n result[result.length - 1] = result[result.length - 1].concat(label != null ? label[i] : '');\n if (indices[matchIndex] && indices[matchIndex][1] === i) {\n result.push('');\n matchIndex++;\n }\n }\n\n if (highlightAll && !disabled) {\n return {label};\n }\n\n return (\n \n {result.map((part, index) =>\n part !== '' ? (\n index % 2 && !disabled ? (\n {part}\n ) : (\n {part}\n )\n ) : null\n )}\n \n );\n }\n);\n","import type Fuse from 'fuse.js';\nimport type { ReactNode } from 'react';\nimport type { FuseSearchObject } from '../../Form/Autocomplete/types';\nimport { FuseResultMatch } from '../../FuseResultMatch';\nimport { FuseResultMatchEnum } from '../../FuseResultMatch/types';\nimport { Description, TextWrapper, Title, Wrapper } from './styles';\n\nexport const FuseAutocompleteResult = (\n searchResult: Fuse.FuseResult>,\n disabled: boolean,\n renderPrefix?: ((item: T) => ReactNode) | undefined\n) => {\n const labelMatch = searchResult.matches && searchResult.matches.find(match => match.key === 'label');\n const descriptionMatch = searchResult.matches && searchResult.matches.find(match => match.key === 'description');\n\n // checks if there are any matches between both the label and description\n const anyMatches =\n (labelMatch?.indices && labelMatch.indices.length > 0) ||\n (descriptionMatch?.indices && descriptionMatch.indices.length > 0);\n\n return (\n \n {renderPrefix && renderPrefix(searchResult.item.item)}\n \n \n <FuseResultMatch\n label={searchResult.item.label}\n indices={labelMatch?.indices}\n highlightAll={!anyMatches}\n type={FuseResultMatchEnum.Label}\n disabled={disabled}\n />\n \n {searchResult.item.description && (\n \n \n \n )}\n \n \n );\n};\n","import { useCallback, useMemo } from 'react';\nimport { Flex } from '../../Core';\nimport { Checkbox } from '../Checkbox';\nimport { AutocompleteDropdown } from './AutocompleteDropdown';\nimport { FuseAutocompleteResult } from './FuseAutocompleteResult';\nimport type { AutocompleteDropdownProps } from './types';\n\nexport type CheckboxFuseAutocompleteDropdownProps = Omit<\n AutocompleteDropdownProps,\n 'renderResult' | 'selectedItem'\n> & { selectedItems: T[]; addSelectedItem: (item: T) => void; removeSelectedItem: (item: T) => void };\n\n/**\n * A dropdown implementation where each item in the results list has a checkbox to its left.\n * So this is for multiselect-like components to use.\n */\nexport const CheckboxFuseAutocompleteDropdown = ({\n addSelectedItem,\n removeSelectedItem,\n selectedItems,\n ...props\n}: CheckboxFuseAutocompleteDropdownProps) => {\n // Turn the selected items into a set for fast lookup\n const selectedItemsSet = useMemo(() => {\n return new Set(selectedItems ?? []);\n }, [selectedItems]);\n\n const handleCheckedChange = useCallback(\n (item: T, newChecked: boolean) => {\n if (newChecked) {\n addSelectedItem(item);\n } else {\n removeSelectedItem(item);\n }\n },\n [addSelectedItem, removeSelectedItem]\n );\n const { isItemDisabled } = props;\n const prefix = (item: T) => (\n \n handleCheckedChange(item, e.target.checked)}\n disabled={isItemDisabled ? isItemDisabled?.(item) : false}\n />\n \n );\n\n return (\n FuseAutocompleteResult(searchResult, disabled, prefix)}\n />\n );\n};\n","import styled from 'styled-components';\n\nexport const AutocompleteGroupLabel = styled.div`\n border-top: ${({ theme }) => `1px solid ${theme.colors.gray['030']}`};\n padding: ${({ theme }) => theme.spacingDefault}px;\n padding-bottom: ${({ theme }) => theme.spacingSmall}px;\n`;\n\nexport const AutocompleteGroupItemLabel = styled.div<{ showBorder: boolean; showConnected: boolean }>`\n ${({ theme, showBorder }) => showBorder && `border-top: 1px solid ${theme.colors.gray['030']};`}\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n width: 2px;\n top: ${({ theme }) => theme.baseSize + 4}px;\n bottom: ${({ theme }) => -theme.baseSize * 0.3125}px;\n left: ${({ theme }) => theme.baseSize - 1}px;\n background: ${({ theme }) => theme.borderColorCheckbox};\n z-index: 2;\n display: ${({ showConnected }) => (showConnected === true ? 'block' : 'none')};\n }\n`;\n","import styled, { css, type DefaultTheme } from 'styled-components';\nimport { getIconButtonSize, IconButton } from '../../Button';\nimport { Box, HStack } from '../../Core';\nimport { Text } from '../../Text';\nimport { formControlCSS } from '../styles';\nimport { FormControlSizes, type FormControlProps } from '../types';\n\nexport const StyledSelection = styled(Box)`\n width: 100%;\n height: 100%;\n text-align: left;\n display: flex;\n flex-direction: column;\n`;\n\nconst EllipsisTextBase = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const EllipsisText = styled(EllipsisTextBase)`\n max-width: 100%;\n`;\n\nexport const SuffixIconButtons = styled(HStack)``;\n\n// Enums taken from Helix design states:\n// https://www.figma.com/file/bCvaVjDeIroGxYmMVGnSmz/Helix---Kyoko?node-id=2-9213&t=Um359rmwDeuR4qe3-0\ntype State =\n | 'Default'\n | 'DefaultHover'\n | 'DefaultActive'\n | 'Filled'\n | 'FilledHover'\n | 'FilledActive'\n | 'ReadOnly'\n | 'Disabled'\n | 'Invalid'\n | 'InvalidAsSelected';\n\ninterface StateColors {\n wrapperColor: string;\n textColor: string;\n borderColor: string;\n backgroundColor: string;\n}\n\nconst getStateColors = (state: State, theme: DefaultTheme): StateColors => {\n switch (state) {\n case 'Default':\n return {\n wrapperColor: theme.colorTextSubtle,\n textColor: theme.colorTextSubtle,\n borderColor: theme.borderColorSelect,\n backgroundColor: theme.backgroundSelect,\n };\n case 'DefaultHover':\n return {\n wrapperColor: theme.colorTextImportant,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelectHover,\n backgroundColor: theme.backgroundSelectHover,\n };\n case 'DefaultActive':\n return {\n wrapperColor: theme.colorTextImportant,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelectFocus,\n backgroundColor: theme.backgroundSelectFocus,\n };\n case 'Filled':\n return {\n wrapperColor: theme.colorTextDefault,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelect,\n backgroundColor: theme.backgroundSelect,\n };\n case 'FilledHover':\n return {\n wrapperColor: theme.colorTextImportant,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelectHover,\n backgroundColor: theme.backgroundSelectHover,\n };\n case 'FilledActive':\n return {\n wrapperColor: theme.colorTextImportant,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelectFocus,\n backgroundColor: theme.backgroundSelectFocus,\n };\n case 'ReadOnly':\n return {\n wrapperColor: theme.colorTextDefault,\n textColor: theme.colorTextDefault,\n borderColor: theme.borderColorSelectReadOnly,\n backgroundColor: theme.backgroundSelectReadOnly,\n };\n case 'Disabled':\n return {\n wrapperColor: theme.colorTextDefault,\n textColor: theme.colorTextDefault,\n borderColor: theme.borderColorSelectDisabled,\n backgroundColor: theme.backgroundSelectDisabled,\n };\n case 'Invalid':\n return {\n wrapperColor: theme.colorTextSubtle,\n textColor: theme.colorTextSubtle,\n borderColor: theme.borderColorSelectInvalid,\n backgroundColor: theme.backgroundSelectInvalid,\n };\n case 'InvalidAsSelected':\n return {\n wrapperColor: theme.colorTextSubtle,\n textColor: theme.colorTextImportant,\n borderColor: theme.borderColorSelectInvalid,\n backgroundColor: theme.backgroundSelectInvalid,\n };\n default: {\n // Fall-through to a reasonable default\n return {\n wrapperColor: theme.colorTextSubtle,\n textColor: theme.colorTextSubtle,\n borderColor: theme.borderColorSelect,\n backgroundColor: theme.backgroundSelect,\n };\n }\n }\n};\n\ninterface BaseSelectWrapperProps extends FormControlProps {\n isDropdownOpened: boolean;\n isValueDefined: boolean;\n centered: boolean;\n showDescription: boolean;\n}\n\nexport const BaseSelectWrapper = styled.label`\n ${formControlCSS};\n\n // Override the default height rules\n height: ${({ theme, size = FormControlSizes.Default, showDescription }) =>\n getIconButtonSize(theme, size) * (showDescription ? 1.5 : 1)}px;\n min-height: ${({ theme, size = FormControlSizes.Default, showDescription }) =>\n getIconButtonSize(theme, size) * (showDescription ? 1.5 : 1)}px;\n\n // When we're showing a description we override the default form control line-height\n ${({ showDescription }) =>\n showDescription &&\n css`\n line-height: normal;\n `}\n\n transition: color 200ms ease, border-color 200ms ease, background-color 200ms ease;\n\n ${({ disabled }) =>\n !disabled &&\n css`\n cursor: pointer;\n `}\n\n // Our select component only has a distinguishable border on active states (hover, focus),\n // so override the default one here to be same as the background.\n ${({ theme, isDropdownOpened, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n labelLevelCss(\n getState({\n focused: isDropdownOpened,\n isValueDefined,\n hovered: false,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n\n ${StyledSelection} {\n ${({ theme, isDropdownOpened, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n buttonLevelCss(\n getState({\n focused: isDropdownOpened,\n isValueDefined,\n hovered: false,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n }\n\n // The IconButtons we use in this component get their own styles form the buttonStyles function, so we\n // force it to inherit its color from us instead.\n ${IconButton} {\n color: inherit;\n }\n\n // For our own suffix icon buttons specifically, we remove the hover and focus events on their backgrounds\n ${SuffixIconButtons} {\n ${IconButton} {\n :hover,\n :focus {\n background-color: transparent;\n }\n }\n }\n\n :hover {\n ${({ theme, isDropdownOpened, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n labelLevelCss(\n getState({\n focused: isDropdownOpened,\n isValueDefined,\n hovered: true,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n\n ${StyledSelection} {\n ${({ theme, isDropdownOpened, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n buttonLevelCss(\n getState({\n focused: isDropdownOpened,\n isValueDefined,\n hovered: true,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n }\n }\n\n // For the focus states, we can replace the isDropdownOpened state with true\n :focus,\n :focus-within {\n ${({ theme, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n labelLevelCss(\n getState({\n focused: true,\n isValueDefined,\n hovered: false,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n\n ${StyledSelection} {\n ${({ theme, isValueDefined, disabled, invalid, touched, readOnly = false }) =>\n buttonLevelCss(\n getState({\n focused: true,\n isValueDefined,\n hovered: false,\n readonly: readOnly,\n disabled,\n invalid,\n touched,\n }),\n theme\n )}\n }\n }\n\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n`;\n\nconst labelLevelCss = (state: State, theme: DefaultTheme) => {\n const { wrapperColor, borderColor, backgroundColor } = getStateColors(state, theme);\n return css`\n border-color: ${borderColor};\n background-color: ${backgroundColor};\n color: ${wrapperColor};\n `;\n};\n\nconst buttonLevelCss = (state: State, theme: DefaultTheme) => {\n const { textColor } = getStateColors(state, theme);\n return css`\n color: ${textColor};\n `;\n};\n\ninterface GetStateParams {\n focused: boolean;\n isValueDefined: boolean;\n hovered: boolean;\n readonly: boolean;\n disabled?: boolean;\n invalid?: boolean;\n touched?: boolean;\n}\n\n// Helper function to resolve variables to one kind of state\nfunction getState({ focused, isValueDefined, hovered, readonly, disabled, invalid, touched }: GetStateParams): State {\n if (invalid && isValueDefined) {\n return 'InvalidAsSelected';\n }\n if (invalid && touched) {\n return 'Invalid';\n }\n\n if (disabled) {\n return 'Disabled';\n }\n\n if (readonly) {\n return 'ReadOnly';\n }\n\n if (focused) {\n return isValueDefined ? 'FilledActive' : 'DefaultActive';\n }\n\n if (hovered) {\n return isValueDefined ? 'FilledHover' : 'DefaultHover';\n }\n\n return isValueDefined ? 'Filled' : 'Default';\n}\n","import type { FocusEventHandler, MouseEvent } from 'react';\nimport { useTheme } from 'styled-components';\nimport { useDynamicCallback } from '../../../hooks';\nimport { IconButton } from '../../Button';\nimport { Box, Grid, HStack } from '../../Core';\nimport { Icon, IconName } from '../../Icons';\nimport { FormControlSizes } from '../types';\nimport { getFontSize, getOneFormControlSizeSmaller } from '../utils';\nimport { BaseSelectWrapper, EllipsisText, StyledSelection, SuffixIconButtons } from './styles';\nimport type { BaseSelectProps } from './types';\n\n/**\n * Simple component that just hooks up a dropdown to a SelectLike header\n */\nexport const BaseSelect = ({\n children,\n prefix,\n suffix,\n style,\n className,\n invalid,\n touched,\n disabled,\n wrapperRef,\n width,\n size = FormControlSizes.Default,\n onClick,\n onClearClick,\n onFocus,\n clearable,\n getLabel,\n isDropdownOpened,\n placeholder = '',\n centered = false,\n id,\n placeholderColor,\n getDescription,\n gridTemplateColumns = 'min-content 1fr min-content',\n showTitle = true,\n showChevron = true,\n ...props\n}: BaseSelectProps) => {\n const theme = useTheme();\n\n const handleOpenCloseClick = useDynamicCallback((e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n if (disabled) {\n return;\n }\n\n onClick?.(e);\n });\n\n const handleClearClick = useDynamicCallback((e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onClearClick?.(e);\n });\n\n const handleFocus: FocusEventHandler = useDynamicCallback(e => {\n if (!disabled) {\n onFocus?.(e);\n }\n });\n\n return (\n <>\n \n \n \n {prefix}\n \n \n \n {props.customButtonLayout != null ? (\n \n ) : props.value == null ? (\n {placeholder}\n ) : (\n <>\n \n {getLabel(props.value)}\n \n {getDescription != null && (\n \n {getDescription(props.value)}\n \n )}\n \n )}\n \n \n \n {suffix}\n \n {clearable && !disabled && props.value != null && (\n e.stopPropagation()}\n data-testid=\"dropdown-clear\"\n />\n )}\n {showChevron && (\n \n )}\n \n \n \n \n {children} {/* <-- dropdown is rendered here */}\n \n );\n};\n","import {\n type AgEventType,\n type CellEvent,\n type GridApi,\n isColumn as isAgColumn,\n type ValueService,\n} from 'ag-grid-community';\nimport { AGGRID_AUTOCOLUMN_ID } from '../BlotterTable/types';\n\ninterface AgGridGetCellValueParams {\n api: GridApi;\n column: CellEvent['column'] | null;\n node?: CellEvent['node'] | null;\n value: CellEvent['value'];\n}\n\n/**\n * This function provides a method to get the \"display value\" of an ag-grid cell, using the same method\n * that ag-grid uses internally.\n *\n * @param params AgGrid params object (e.g. from an event callback, etc.)\n * @returns Value as formatted for display in an ag-grid cell (e.g. using `valueFormatter`, etc.)\n */\nexport function getCellDisplayValue(params: AgGridGetCellValueParams) {\n const invokedForRowGroupColumn = params.column?.getColId() === AGGRID_AUTOCOLUMN_ID;\n // If we are invoking on behalf of the row group column, we can either be a group row or a leaf row. For group rows, there'll be a rowGroupColumn.\n // Otherwise, params.column will contain the column relevant for the invoked cell this function is invoked for.\n const column = invokedForRowGroupColumn ? params.node?.rowGroupColumn ?? params.column : params.column;\n\n if (!column) {\n return params.value;\n }\n\n if (!params.node) {\n return params.value;\n }\n\n try {\n if (!isAgColumn(column)) {\n return params.value;\n }\n\n // We're grabbing this private property because we want to be calling the formatValue function in the exact same way that AgGrid would internally\n const valueService: ValueService | undefined = params.node?.['beans']?.['valueService'];\n if (!valueService) {\n return params.value;\n }\n const formattedValue = valueService.formatValue(column, params.node, params.value);\n\n return formattedValue ?? params.value;\n } catch {\n return params.value;\n }\n}\n\n/**\n * This function provides a method to get the \"filter value\" of an ag-grid cell, using the same method\n * that ag-grid uses internally.\n *\n * @param params AgGrid params object (e.g. from an event callback, etc.)\n * @returns Value that ag-grid will use when filtering this cell (e.g. using `filterValueGetter`, etc.)\n */\nexport function getCellFilterValue(params: AgGridGetCellValueParams) {\n if (!params.column) {\n return params.value;\n }\n\n try {\n if (!isAgColumn(params.column)) {\n return params.value;\n }\n\n // We're grabbing this private property because we want to be calling the getValue function in the exact\n // same way that AgGrid would internally (setting filter to true to get the filter value)\n const valueService: ValueService | undefined = params.node?.['beans']?.['valueService'];\n if (!valueService) {\n return params.value;\n }\n\n const filterValue = valueService.getValue(params.column, params.node, true);\n return filterValue;\n } catch {\n return params.value;\n }\n}\n","import type {\n GetContextMenuItemsParams,\n GetQuickFilterTextParams,\n GridApi,\n GridOptions,\n ICellRendererFunc,\n ICellRendererParams,\n IRowNode,\n MenuItemDef,\n ProcessCellForExportParams,\n RowSelectionOptions,\n} from 'ag-grid-enterprise';\nimport { compact, first, isArray, isObject, last } from 'lodash';\nimport { logger } from '../../utils';\nimport { getCellDisplayValue } from '../AgGrid/agGridGetCellValue';\nimport type { BlotterTableContextProps } from './BlotterTableContext';\nimport { AGGRID_AUTOCOLUMN_ID } from './types';\n\n/** This list of imports must be updated as we support more locales.\n * We have a test in BlotterTable.test.tsx to ensure that we don't miss adding new supported locale imports here. */\nimport {\n AG_GRID_LOCALE_DE,\n AG_GRID_LOCALE_EN,\n AG_GRID_LOCALE_ES,\n AG_GRID_LOCALE_FR,\n AG_GRID_LOCALE_IT,\n AG_GRID_LOCALE_PL,\n} from '@ag-grid-community/locale';\n\n/** Given a key, grabs the component stored in AgGrid. This will usually be a reused CellRenderer component. */\nexport function getAgGridComponent(api: GridApi, key: string): any {\n return api.getGridOption('components')?.[key];\n}\n\n/**\n * In some cases, we define the cellRenderer property of ColDefs as a string. This is done when the cell renderer we wish to use is\n * stored for reusability reasons in AgGrid's \"component\" library. In these cases, you can grab that cell renderer's function by its key\n * using this utility.\n *\n * Pass in an API and the Column ID for the column you want the cell renderer for, and you'll get the cell renderer function returned.\n *\n * If the cell renderer is a function to begin with, then it'll just return that.\n */\nexport function getCellRendererFunc(api: GridApi, colID: string): ICellRendererFunc | undefined {\n const cellRenderer: ICellRendererFunc | string | undefined = api.getColumn(colID)?.getColDef().cellRenderer;\n if (typeof cellRenderer === 'string') {\n // Hard to get any better type checking here...\n const cellRendererParams: object | undefined = api.getColumn(colID)?.getColDef().cellRendererParams ?? {};\n const cellRendererFunc = getAgGridComponent(api, cellRenderer) as ICellRendererFunc | undefined;\n if (!cellRendererFunc) {\n return undefined;\n }\n\n // If we got the cellRendererFunc from the aggrid component \"library\", we need to also grab the cellRendererParams defined on the column\n // and apply those. We're not getting the usual help from AgGrid here where they'd usually do this themselves\n const cellRendererFuncWithParams: ICellRendererFunc = params =>\n cellRendererFunc({ ...params, ...cellRendererParams });\n\n return cellRendererFuncWithParams;\n }\n\n return cellRenderer;\n}\n\n/**\n * Given a list of nodes, which may be either group or leaf nodes, return all\n * the leaf nodes.\n *\n * @param node The nodes to operate on\n * @returns All leaf nodes under the given nodes\n */\nexport function getAllLeafNodesAfterFilter(node: IRowNode | IRowNode[]): IRowNode[] {\n if (isArray(node)) {\n return node.flatMap(childNode => getAllLeafNodesAfterFilter(childNode));\n }\n if (!node.group) {\n return [node];\n }\n if (!node.childrenAfterFilter) {\n return [];\n }\n\n return node.childrenAfterFilter.flatMap(childNode => getAllLeafNodesAfterFilter(childNode));\n}\n\n/**\n * Gets all nodes found within the provided group node by traversing the tree within recursively.\n * If the provided groupNode is not a group (groupNode.group === false), returns empty array.\n *\n * Does **not** include the groupNode itself in the returned array.\n */\nexport function getAllNodesInGroup(groupNode: IRowNode): IRowNode[] {\n if (!groupNode.group) {\n return [];\n }\n\n const nodes: IRowNode[] = [];\n performActionForChildNodesRecursively(groupNode, node => nodes.push(node));\n return nodes;\n}\n\nexport function expandAllNodesInGroup(groupNode: IRowNode): void {\n if (!groupNode.group) {\n return;\n }\n\n performActionForChildNodesRecursively(groupNode, node => node.setExpanded(true));\n}\n\n/**\n * Perform some action on behalf of the passed node and all its possible child nodes as well recursively\n */\nfunction performActionForChildNodesRecursively(node: IRowNode, action: (node: IRowNode) => void) {\n action(node);\n node.childrenAfterFilter?.forEach(node => performActionForChildNodesRecursively(node, action));\n}\n\n/**\n * Get the CSV export data for a set of row nodes.\n *\n * @param params Params object from an ag-grid callback\n * @param nodeIds A set of row node ids that should be exported\n * @returns CSV export of the selected nodes, for the currently visible columns\n */\nexport function agGridGetCSV(params: GetContextMenuItemsParams | ICellRendererParams, nodeIds: Set): string {\n return (\n params.api.getDataAsCsv({\n skipRowGroups: true,\n onlySelected: false,\n suppressQuotes: false,\n columnSeparator: ',',\n // Only include columns that are visible with header names to exclude action button / spacer columns\n columnKeys: params.api.getAllDisplayedColumns()?.filter(col => col.getColDef().headerName !== ''),\n processCellCallback: getParamsFormatted,\n shouldRowBeSkipped(innerParams) {\n if (!innerParams.node?.id) {\n return true;\n }\n return !nodeIds.has(innerParams.node.id);\n },\n }) ?? ''\n );\n}\n\nexport type ExportGridMode = 'CSV' | 'Excel';\n\n/** Expanded AgGrid Context ({@link BlotterTableContextProps}) type that supports\n * value retrieval for custom grouping levels */\nexport interface GetValueForGroupNodeContext extends BlotterTableContextProps {\n /** Custom Override for Retrieving Group Node data */\n getValueForGroupedNode: (node: IRowNode, mode: ExportGridMode) => string;\n}\n\nfunction isGetValueForGroupNodeContext(context: BlotterTableContextProps): context is GetValueForGroupNodeContext {\n return (context as GetValueForGroupNodeContext)?.getValueForGroupedNode != null;\n}\n\n/**\n * Get a formatted value for an ag-grid cell\n * @param params Params object from an ag-grid callback\n * @returns String representation of the cell value\n */\nexport function getParamsFormatted(\n params: GetContextMenuItemsParams | ProcessCellForExportParams,\n mode: ExportGridMode = 'CSV'\n): string {\n // If we're working with a cell in the grouped column, we want to iterate over all layers and print the grouping structure\n // Printing a result like: \"BTC > Future\" for example\n const node = params.node;\n const column = params.column;\n if (column && column.getColId() === AGGRID_AUTOCOLUMN_ID && node) {\n // For tree-value grids, use the callback to process how to get the value for the group node\n if (isGetValueForGroupNodeContext(params.context.current)) {\n return params.context.current.getValueForGroupedNode(node, mode);\n }\n\n const isTreeBlotter = params.api.getGridOption('treeData');\n if (isTreeBlotter) {\n const parents = getAllParentsOfNodeInclusive(node);\n return parents\n .reverse()\n .map(parentNode => {\n // If the Tree node has data on it, then there'll be a valueGetter implemented to resolve the value from data. If not, use the node.key.\n // The node.key in a tree row will be the node's element of the dataPath. This'll usually be an ID.\n // If there is no node.data, then we assume that the implementer's valueFormatter will still properly convert node.key to a display label.\n const value = parentNode.data\n ? params.api.getCellValue({ colKey: column, rowNode: parentNode })\n : parentNode.key;\n\n return (\n getCellDisplayValue({\n ...params,\n node: parentNode,\n value: value,\n }) ?? 'None'\n );\n })\n .join(' > ');\n }\n\n // Else regular row-grouped blotter\n const rowGroupColumns = params.api.getRowGroupColumns();\n return (\n rowGroupColumns\n // We need to get the correct value at each layer of grouping, and also pass the column for the layer of grouping\n .map(\n column =>\n getCellDisplayValue({\n ...params,\n value: params.api.getCellValue({ colKey: column, rowNode: node }),\n column: column,\n }) ?? 'None'\n )\n .join(' > ')\n );\n }\n\n const formattedValue = getCellDisplayValue(params);\n\n // If we got a string, return that\n if (typeof formattedValue === 'string') {\n return formattedValue;\n }\n\n // For size/price the value is an object containing value and currency.\n // {value: '100', currency: 'USD'}\n // In those cases access the numeric value.\n if (typeof formattedValue?.value === 'string') {\n return formattedValue.value;\n }\n\n // In some cases our valueGetters return arrays or objects which are then exported as [object object]. This code forces\n // them to be formatted to strings.\n if (isObject(params.value) || isArray(params.value)) {\n try {\n return JSON.stringify(params.value);\n } catch (e) {\n logger.error(e as Error);\n }\n }\n\n if (params.value == null) {\n return '';\n }\n\n return params.value.toString();\n}\n\n/**\n * Ensure that the csv cell value returned by aggrid is prefixed if the content is a formula\n */\nexport function cellCsvSafety(cellContent: string): string {\n // https://owasp.org/www-community/attacks/CSV_Injection\n let needsSafetyPrefix = ['=', '@', '+'].some(char => cellContent.startsWith(char));\n if (cellContent.startsWith('-')) {\n // if -, test if the cell content is a number\n if (cellContent.length > 1 && !Number.isNaN(Number(cellContent.slice(1)))) {\n return cellContent;\n }\n needsSafetyPrefix = true;\n }\n return needsSafetyPrefix ? `'${cellContent}` : cellContent;\n}\n\nexport const alphabeticalGroupOrder =\n /**\n * Our default group order comparator, to ensure groups are sorted alphabetically by default\n * @param params Ag grid group order params\n */\n function alphabeticalGroupOrder({ nodeA, nodeB, api }) {\n // The params passed to this group ordering function don't work out of the box with the getCellDisplayValue expected params\n // so we hook them up correctly here and attempt to do the ordering comparison on the display values\n const nodeADisplayValue =\n getCellDisplayValue({\n node: nodeA,\n column: nodeA.rowGroupColumn,\n value: nodeA.key,\n api,\n }) || '';\n\n const nodeBDisplayValue =\n getCellDisplayValue({\n node: nodeB,\n column: nodeB.rowGroupColumn,\n value: nodeB.key,\n api,\n }) || '';\n\n return nodeADisplayValue.localeCompare?.(nodeBDisplayValue);\n } satisfies GridOptions['initialGroupOrderComparator'];\n\n/**\n * Removes repeated and last \"separator\" entries in a list of string | MenuItemDef\n */\nexport function removeUnnecessarySeparators(items: (string | MenuItemDef)[]) {\n const result = items.reduce((arr, item, index) => {\n if (item === 'separator' && arr[arr.length - 1] === item) {\n return arr;\n }\n\n arr.push(item);\n return arr;\n }, [] as (string | MenuItemDef)[]);\n\n if (last(result) === 'separator') {\n result.splice(result.length - 1, 1);\n }\n\n if (first(result) === 'separator') {\n result.splice(0, 1);\n }\n\n return result;\n}\n\n/** Defines the AgGrid \"basic params properties\" we need to make this function work correctly. */\ntype IsEditingThisCellParams = Pick;\n\n/**\n * Given some set of basic AgGrid function params, returns whether or not the current node is being edited.\n */\nexport function isEditingThisCell(params: IsEditingThisCellParams): boolean {\n const cellsBeingEdited = params.api.getEditingCells();\n\n // Go through all cells that are being edited right now and see if any of these cells are us.\n return cellsBeingEdited != null\n ? cellsBeingEdited.some(\n cell => cell.column.getColId() === params.column?.getColId() && cell.rowIndex === params.node.rowIndex\n )\n : false;\n}\n\n/**\n * Given a node, will traverse through the node.parent property upwards until it hits the root element of the blotter\n * The returned array of nodes is inclusive, meaning that the given starting node itself will also be included\n * @param node The starting node\n * @returns a list of nodes, where the first node is the starting node, and then each later index is the next parent upwards.\n * If you want the list to start with the top-level parent of this node, simply do Array.reverse() on the returned list.\n */\nexport function getAllParentsOfNodeInclusive(node: IRowNode): IRowNode[] {\n const parents: IRowNode[] = [];\n let workingNode = node;\n\n // In AgGrid, the omnipresent ROOT_NODE has level=-1. Iterate while level is 0 or above.\n while (workingNode.level >= 0) {\n parents.push(workingNode);\n if (workingNode.parent == null) {\n break;\n }\n workingNode = workingNode.parent;\n }\n\n return parents;\n}\n\n/**\n * This function returns whether or not the provided node is expanded, as in is taller / greater in height, than the\n * default row height for the grid.\n */\nexport function isRowHeightExpanded(node: IRowNode, api: GridApi): boolean {\n const defaultRowHeight = api.getGridOption('rowHeight');\n if (defaultRowHeight == null || node.rowHeight == null) {\n return false;\n }\n\n return node.rowHeight > defaultRowHeight;\n}\n\n/** Default AgGrid params to do multiselection of rows without checkboxes being present */\nexport const DEFAULT_BLOTTER_SELECTION_MULTI_PARAMS: RowSelectionOptions = {\n mode: 'multiRow',\n checkboxes: false,\n headerCheckbox: false,\n enableClickSelection: true,\n};\n\n/** Default AgGrid params for single selection */\nexport const DEFAULT_BLOTTER_SELECTION_SINGLE_PARAMS: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true,\n};\n\n/** Row Selection arg for readonly or custom row selection grids */\nexport const DEFAULT_BLOTTER_SELECTION_READONLY_PARAMS: RowSelectionOptions = {\n ...DEFAULT_BLOTTER_SELECTION_SINGLE_PARAMS,\n enableClickSelection: false,\n};\n\n/** Type Guard that validates that AgGrid api is not destroyed */\nexport function isGridApiReady(api: GridApi | null | undefined): api is GridApi {\n return api != null && api.isDestroyed() === false;\n}\n\n/**\n * This function returns the AgGrid API if it is not destroyed, otherwise it returns undefined.\n *\n * @example\n * ```ts\n * safeGridApi(gridApi)?.removeEventListener('modelUpdated', handleModelUpdated);\n * ```\n *\n * @param api The AgGrid API to check. Allows you to pass undefined / null for simplicity\n * @returns The AgGrid API if it is not destroyed, otherwise undefined\n */\nexport function safeGridApi(api: GridApi | null | undefined): GridApi | undefined {\n if (!isGridApiReady(api)) {\n return undefined;\n }\n return api;\n}\n\nconst FILTER_PARSER_REGEX = /(?:\"([^\"\\n]*?)\")|(?:([^\\s]+))/;\nexport function quickFilterParser(text: string | unknown): string[] {\n // not sure on exact type in different cases, so being defensive here\n if (typeof text !== 'string') {\n return [];\n }\n\n /**\n * this regex is complicated but what this regex + mapping does is this:\n *\n * 'test test' -> ['test', 'test']\n * '\"test test\"' -> ['test test']\n * '\"phrase one\" \"phrase two\"' -> ['phrase one', 'phrase two']\n * '\"phrase one\" word word word' -> ['phrase one', 'word', 'word', 'word']\n */\n return compact(text.split(FILTER_PARSER_REGEX).map((part: string | undefined) => part?.trim()));\n}\n\n/**\n * Our own implementation of the default getQuickFilterText. This function is used to go from a node + column (as in: a cell) to some searchable string.\n *\n * See AgGrid's default implementation\n * https://github.com/ag-grid/ag-grid/blob/26149bf63cc8909b163d84fc64df5626f527a2a8/packages/ag-grid-community/src/filter/quickFilterService.ts#L197\n *\n * It uses the column's filterValueGetter, which we don't want to do. We want to be searching on the formatted value, as\n * in, what's visible to the user in the blotter. We also add in the valueGetter result as well (as long as it is of type string)\n *\n */\nexport function defaultGetQuickFilterText({ value, ...params }: GetQuickFilterTextParams): string {\n // calling api.getCellValue can be expensive so we do some quick thinking here to figure out if we need to call it or not based on some assumptions\n\n // Firstly, getQuickFilterText is invoked with the filterValue of the column. But if the column doesn't have any filterValueGetter, it'll be the valueGetter's result.\n const valueIsValueGetterReturn = params.column.getColDef().filterValueGetter == null;\n const valueGetterValue = valueIsValueGetterReturn\n ? value\n : params.api.getCellValue({ rowNode: params.node, colKey: params.column });\n\n // We also want to grab the formatted value, but we only do this if we see that the column has a valueFormatter defined. If not, we already have the value this'd return directly above\n const valueFormatterValue = params.column.getColDef().valueFormatter\n ? params.api.getCellValue({ rowNode: params.node, colKey: params.column, useFormatter: true })\n : undefined;\n\n // We're searching on _both_ the value and formatted value. This is to give easy support for cases where the user copy-pastes a complete ID\n return `${typeof valueGetterValue === 'string' ? valueGetterValue : ''} ${valueFormatterValue ?? ''}`;\n}\n\n/**\n * Given a node, returns the gridApi. Useful for cases where we need to go beyond the standard capabilities in our columns, such as comparators for example,\n * where we want to check things using the api, but have no other way to achieve it.\n *\n * This should only be used as a last resort and after questioning yourself at least 3 times. :)\n */\ninterface ExtendedRowNode extends IRowNode {\n beans?: { gridApi?: GridApi };\n}\nexport function getGridApiFromNode(node: ExtendedRowNode | undefined): GridApi | undefined {\n try {\n return node?.beans?.gridApi;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Returns the Ag Grid locale text for the given locale.\n *\n * @param locale The locale string (e.g., 'de', 'it', or 'fr-FR').\n * @returns The locale text object corresponding to the given locale.\n */\nexport function getAgGridLocaleText(locale: string) {\n switch (locale.split('-')[0]) {\n case 'de':\n return AG_GRID_LOCALE_DE;\n case 'it':\n return AG_GRID_LOCALE_IT;\n case 'pl':\n return AG_GRID_LOCALE_PL;\n case 'fr':\n return AG_GRID_LOCALE_FR;\n case 'es':\n return AG_GRID_LOCALE_ES;\n default:\n return AG_GRID_LOCALE_EN;\n }\n}\n","import styled from 'styled-components';\nimport { Button } from '../Button';\n\nexport const FormWrapper = styled.form`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const FormFooter = styled.div`\n padding: ${({ theme }) => theme.spacingMedium}px;\n display: grid;\n border-top: solid 1px ${({ theme }) => theme.borderColorDivider};\n column-gap: ${({ theme }) => theme.spacingDefault}px;\n grid-template-columns: min-content 1fr;\n\n ${Button} {\n width: 100%;\n }\n`;\n\nexport const ScrollContainer = styled.div`\n overflow-y: auto;\n overflow-y: overlay;\n flex: 1 1 0;\n`;\n\nexport const BalancesTable = styled.table`\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n width: 100%;\n text-align: right;\n border-collapse: collapse;\n margin-top: ${({ theme }) => theme.spacingComfortable}px;\n\n td {\n padding: ${({ theme }) => theme.spacingSmall}px 0;\n }\n\n td:first-child {\n text-align: left;\n color: ${({ theme }) => theme.colorTextSubtle};\n }\n`;\n\nexport const SectionHeader = styled.div`\n margin-bottom: ${({ theme }) => theme.spacingDefault}px;\n font-size: ${({ theme }) => theme.fontSizeSmall}rem;\n cursor: pointer;\n\n i {\n vertical-align: bottom;\n }\n`;\n\nexport const QuickOptionsContainer = styled.div`\n margin-top: ${({ theme }) => theme.spacingSmall}px;\n height: ${({ theme }) => theme.baseSize * 1.5}px;\n`;\n","import { useState, type PropsWithChildren, type ReactNode } from 'react';\nimport styled, { useTheme, type DefaultTheme } from 'styled-components';\n\nimport { HStack } from '../../Core';\nimport { SectionHeader } from '../../Forms/styles';\nimport { Icon, IconName } from '../../Icons';\nimport { FormSection } from '../styles';\n\nconst CollapsibleFormSectionWrapper = styled(FormSection)<{ isExpanded: boolean; theme: DefaultTheme }>`\n max-height: ${({ isExpanded }) => (isExpanded ? 400 : 50)}px;\n overflow: hidden;\n transition: max-height 0.15s ease-in-out;\n\n ${SectionHeader} {\n margin-bottom: ${\n ({ isExpanded, theme }) => (isExpanded ? theme.spacingDefault : -1) /* Prevents a visual stutter on closing */\n }px;\n }\n`;\n\ntype ManagedCollapsibleFormSectionProps = PropsWithChildren<{\n header: ReactNode;\n isExpanded: boolean;\n onToggle: (isExpanded: boolean) => void;\n}>;\n\nexport function ManagedCollapsibleFormSection({\n children,\n header,\n isExpanded,\n onToggle,\n ...rest\n}: ManagedCollapsibleFormSectionProps) {\n const theme = useTheme();\n\n return (\n \n onToggle(!isExpanded)}>\n \n {header}\n \n \n \n {isExpanded && children}\n \n );\n}\n\ntype UnmanagedCollapsibleFormSectionProps = PropsWithChildren<{\n header: ManagedCollapsibleFormSectionProps['header'];\n initiallyExpanded?: boolean;\n}>;\n\nexport function UnmanagedCollapsibleFormSection({\n children,\n header,\n initiallyExpanded = false,\n ...rest\n}: UnmanagedCollapsibleFormSectionProps) {\n const [isExpanded, setIsExpanded] = useState(initiallyExpanded);\n\n return (\n \n {children}\n \n );\n}\n","import type { Placement } from '@popperjs/core';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport { usePopper } from 'react-popper';\nimport { useTheme } from 'styled-components';\nimport { useOnClickOutside } from '../../../hooks/useOnClickOutside';\n\nexport interface UseDropdownPopperProps {\n isOpen: boolean;\n dropdownWidth?: CSSProperties['width'];\n dropdownHeight?: CSSProperties['height'];\n dropdownPlacement?: Placement;\n /** The referenceElement is the element which the dropdown is anchored to */\n referenceElement: HTMLElement | null;\n onClickOutside?: (e) => void;\n offset?: number;\n padding?: number;\n /** The dropdownContentRef will be attached to the container of the content within the dropdown */\n dropdownContentRef?: RefObject;\n}\n\nexport interface UseDropdownPopperOutput {\n setPopperElement: Dispatch>;\n popper: ReturnType;\n dropdownWidth?: CSSProperties['width'];\n dropdownHeight?: CSSProperties['height'];\n referenceElement: HTMLElement | null;\n isOpen: boolean;\n dropdownContentRef: RefObject;\n}\n\nexport const useDropdownPopper = ({\n isOpen,\n dropdownPlacement,\n dropdownWidth,\n dropdownHeight,\n referenceElement,\n onClickOutside,\n offset = 0,\n padding = 0,\n dropdownContentRef,\n}: UseDropdownPopperProps): UseDropdownPopperOutput => {\n const { spacingSmall } = useTheme();\n const _offset = offset || spacingSmall;\n const [popperElement, setPopperElement] = useState(null);\n // if we are applying a manual width, we want the dropdown to be just bottom. This will split the additional width evenly across left and right sides.\n // if we are going for auto-width, then set it to bottom-start to align dropdown with input field exactly.\n const popperPlacement = dropdownPlacement ? dropdownPlacement : dropdownWidth ? 'bottom' : 'bottom-start';\n const popper = usePopper(referenceElement, popperElement, {\n placement: popperPlacement,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, _offset],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n padding,\n },\n },\n ],\n });\n const { update } = popper;\n\n const defaultDropdownContentRef = useRef(null);\n const dropdownContentRefToUse = dropdownContentRef ?? defaultDropdownContentRef;\n\n const handleClickOutside = useCallback(\n (e: MouseEvent) => {\n onClickOutside && onClickOutside(e);\n },\n [onClickOutside]\n );\n\n useOnClickOutside(dropdownContentRefToUse, isOpen ? handleClickOutside : undefined);\n\n // We need to manually listen to resizes in the referenceElement\n // and when that resizes, we update the popper to follow along.\n useEffect(() => {\n if (referenceElement && update) {\n const observer = new ResizeObserver(() => {\n window.requestAnimationFrame(() => {\n update();\n });\n });\n observer.observe(referenceElement);\n return () => observer.disconnect();\n }\n }, [referenceElement, update]);\n\n // Similarly to above, we also listen to size changed in the content of our dropdown.\n // When the height changes, we might have to update our position. Usually this is just done on init+1 after\n // the component realizes what height its content takes up.\n useEffect(() => {\n if (dropdownContentRefToUse.current && update) {\n const observer = new ResizeObserver(() => {\n window.requestAnimationFrame(() => {\n update();\n });\n });\n observer.observe(dropdownContentRefToUse.current);\n return () => observer.disconnect();\n }\n }, [dropdownContentRefToUse, update]);\n\n // We also need to call update every time the referenceElement changes\n // https://github.com/floating-ui/floating-ui/issues/538#issuecomment-596601887\n useEffect(() => {\n update && update();\n }, [referenceElement, update]);\n\n // Whenever we open the dropdown, lets update the position as well to make sure its opened in the right place\n useEffect(() => {\n if (isOpen && update) {\n update();\n }\n }, [isOpen, update]);\n\n return {\n setPopperElement,\n popper,\n dropdownWidth,\n dropdownHeight,\n referenceElement,\n isOpen,\n dropdownContentRef: dropdownContentRefToUse,\n };\n};\n","import RawDayPicker from 'react-day-picker';\nimport styled from 'styled-components';\nimport { ThemeTypes } from '../../styles';\n\nexport const DayPicker = styled(RawDayPicker)`\n padding: ${({ theme }) => theme.spacingComfortable}px;\n font-size: ${({ theme }) => theme.fontSizeDefault}rem;\n width: 100%;\n\n .DayPicker-wrapper {\n position: relative;\n flex-direction: row;\n user-select: none;\n }\n\n .DayPicker-Months {\n display: flex;\n justify-content: space-between;\n gap: ${({ theme }) => theme.spacingLarge}px;\n flex-wrap: nowrap;\n }\n\n .DayPicker-Month {\n display: grid;\n gap: ${({ theme }) => theme.spacingTiny}px;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-flow: row;\n user-select: none;\n align-content: flex-start;\n width: 100%;\n }\n\n .DayPicker-NavBar {\n position: absolute;\n right: ${({ theme }) => theme.spacingSmall}px;\n top: ${({ theme }) => theme.spacingSmall}px;\n display: flex;\n gap: ${({ theme }) => theme.spacingTiny}px;\n }\n\n .DayPicker-NavButton {\n display: inline-block;\n position: relative;\n background-color: ${({ theme }) => theme.backgroundDefaultButton};\n\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n color: ${({ theme }) => theme.colorTextPriorityButton};\n cursor: pointer;\n\n &:focus {\n outline: none;\n filter: brightness(2);\n }\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-position: center;\n background-size: 0.5em;\n background-repeat: no-repeat;\n }\n &:hover {\n opacity: 0.8;\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n color: ${({ theme }) => theme.colorTextPriorityButtonHover};\n &::before {\n filter: brightness(1.5);\n }\n }\n }\n\n .DayPicker-NavButton--prev::before {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAKCAYAAACXDi8zAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABpSURBVHgBbY67EYAwDEMlF3y2YAVKSpeUbMCWlClZIyOk4o4mIRw5LoS40j1ZloliNmMG8c3KH0RronSswQO9sgYXHR1r8F4WoMta3KvSqT2mQkqdMaV5+dcs3n1MIljJjVkn60H1EHsBpT03FxGA7LoAAAAASUVORK5CYII=');\n }\n\n .DayPicker-NavButton--next::before {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAKCAYAAACXDi8zAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB0SURBVHgBbY4xDoAgDEU/DGqcPALXcGR09IQewTjp1tFrcARWGcCCISYNf2ja/37a4qJ7O4kMhDQQjUZPEuoeYQWSl1DlQkRTQEc8ThGPXax1qiYk1BX4fwFr+Lqd0yPf4JbTilfNTrXM8lXLLCDGdEgz6wXFrTV6B+FGhwAAAABJRU5ErkJggg==');\n }\n\n .DayPicker-NavButton--interactionDisabled {\n display: none;\n }\n\n .DayPicker-Caption {\n grid-column: 1 / 8;\n margin-bottom: ${({ theme }) => theme.spacingSmall}px;\n padding: ${({ theme }) => theme.spacingSmall}px;\n text-align: left;\n justify-self: start;\n color: ${({ theme }) => theme.colorTextAttention};\n }\n\n .DayPicker-Caption > div {\n font-weight: ${({ theme }) => theme.fontWeightMedium};\n }\n\n .DayPicker-Weekdays {\n display: contents;\n margin-top: 1em;\n }\n\n .DayPicker-WeekdaysRow {\n display: contents;\n }\n\n .DayPicker-Weekday {\n padding: ${({ theme }) => theme.spacingSmall}px;\n color: ${({ theme }) => theme.colors.gray['090']};\n text-align: center;\n font-size: ${({ theme }) => theme.fontSizeSmall}em;\n text-transform: uppercase;\n opacity: 0.5;\n font-weight: 500;\n }\n\n .DayPicker-Weekday abbr[title] {\n border-bottom: none;\n text-decoration: none;\n }\n\n .DayPicker-Body {\n display: contents;\n }\n\n .DayPicker-Week {\n display: contents;\n }\n\n .DayPicker-NavButton {\n width: ${({ theme }) => theme.fontSizeBig}rem;\n height: ${({ theme }) => theme.fontSizeBig}rem;\n }\n\n .DayPicker-Day {\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: ${({ theme }) => theme.colorTextPriorityButton};\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n line-height: 1.25rem;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n background: ${({ theme }) => theme.backgroundDefaultButton};\n border: ${({ theme }) => `solid ${theme.borderWidthButton}px ${theme.borderColorDefaultButton}`};\n width: 100%;\n }\n\n .DayPicker-WeekNumber {\n padding: ${({ theme }) => theme.spacingSmall}px;\n min-width: 1em;\n border-right: 1px solid #eaecec;\n color: #8b9898;\n vertical-align: middle;\n text-align: right;\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n cursor: pointer;\n }\n\n &.DayPicker--interactionDisabled .DayPicker-Day {\n cursor: default;\n }\n\n .DayPicker-Footer {\n padding-top: ${({ theme }) => theme.spacingSmall}px;\n }\n\n .DayPicker-TodayButton {\n border: none;\n background-color: transparent;\n background-image: none;\n box-shadow: none;\n color: #4a90e2;\n font-size: ${({ theme }) => theme.fontSizeSmall}em;\n cursor: pointer;\n }\n\n /* Default modifiers */\n\n .DayPicker-Day {\n &:focus {\n outline: none;\n filter: ${({ theme }) => (theme.type === ThemeTypes.dark ? 'brightness(150%)' : 'brightness(85%)')};\n }\n }\n\n .DayPicker-Day--today {\n color: ${({ theme }) => theme.colorTextAttention};\n background: ${({ theme }) => theme.backgroundPriorityButton};\n border: ${({ theme }) => `solid ${theme.borderWidthButton}px ${theme.borderColorPriorityButton}`};\n font-weight: ${({ theme }) => theme.fontWeightBold};\n }\n\n .DayPicker-Day--outside {\n color: ${({ theme }) => theme.colorTextDefault};\n border-color: transparent;\n\n &:empty {\n background: transparent;\n }\n cursor: default;\n }\n\n .DayPicker-Day--disabled {\n color: ${({ theme }) => theme.colorTextSubtle};\n cursor: default;\n pointer-events: none;\n opacity: 0.5;\n }\n /* Example modifiers */\n\n .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {\n position: relative;\n\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n border: ${({ theme }) => `solid ${theme.borderWidthButton}px ${theme.borderColorPriorityButtonHover}`};\n color: ${({ theme }) => theme.colorTextAttention};\n\n &.DayPicker-Day--start {\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n }\n\n &.DayPicker-Day--end {\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n }\n }\n\n .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside):hover {\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n }\n\n &:not(.DayPicker--interactionDisabled)\n .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover {\n background-color: ${({ theme }) => theme.backgroundPriorityButtonHover};\n color: ${({ theme }) => theme.colorTextPriorityButtonHover};\n }\n\n /* DayPickerInput */\n\n .DayPickerInput {\n display: inline-block;\n }\n\n .DayPickerInput-OverlayWrapper {\n position: relative;\n }\n\n .DayPickerInput-Overlay {\n position: absolute;\n left: 0;\n z-index: 1;\n\n background: white;\n }\n`;\n","import type { CSSProperties, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { DayPicker } from '../DayPicker';\nimport { InputWrapper } from '../Form/Input/styles';\nimport { INPUT_BORDER_WIDTH } from '../Form/styles';\nimport { FormControlSizes } from '../Form/types';\n\nexport const FormGroup = styled(\n ({ label, children, help, error, disabled, size = FormControlSizes.Default, style }: FormGroupProps) => {\n return (\n \n {label}\n {children}\n {error && {error}}\n {help && !error && {help}}\n \n );\n }\n)``;\ntype FormGroupProps = {\n controlId?: string;\n disabled?: boolean;\n label?: ReactNode;\n help?: ReactNode;\n error?: string;\n tooltip?: string;\n size?: FormControlSizes;\n children?: ReactNode;\n style?: CSSProperties;\n};\nconst HelpText = styled.div`\n color: ${({ theme }) => theme.colorTextSubtle};\n font-size: ${({ theme }) => theme.fontSizeFormHelp}rem;\n padding: ${({ theme }) => theme.spacingTiny}px 0;\n line-height: 1;\n`;\nconst ErrorMessage = styled.div<{ error?: boolean }>`\n color: ${({ theme }) => theme.colorTextNegative};\n font-size: ${({ theme }) => theme.fontSizeFormHelp}rem;\n padding: ${({ theme }) => theme.spacingTiny}px;\n line-height: 1;\n`;\ntype FormGroupWrapperProps = { disabled?: boolean; size?: FormControlSizes };\nconst FormGroupWrapper = styled.label`\n ${({ disabled, theme, size = FormControlSizes.Default }) => `\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n > :first-child {\n display: flex;\n flex: 1 30%;\n transition: color 200ms ease;\n font-size: ${(theme.fontSizeDefault * size) / 2}rem;\n color: ${disabled ? theme.colorTextSubtle : 'inherit'};\n }\n\n > ${InputWrapper} {\n flex: 2 75px;\n line-height: ${theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n height: ${theme.baseSize * size}px;\n font-size: ${(theme.fontSizeDefault * size) / 2}rem;\n }\n\n &:focus-within {\n &:first-child {\n color: ${theme.colorTextImportant};\n }\n }\n\n > ${ErrorMessage} {\n height: ${(theme.spacingMedium * size) / 2}px;\n font-size: ${(theme.fontSizeFormHelp * size) / 2}rem;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n position: absolute;\n left: 0;\n right: 0;\n }\n\n > ${HelpText} {\n height: ${theme.spacingMedium}px;\n font-size: ${(theme.fontSizeFormHelp * size) / 2}rem;\n position: absolute;\n left: 0;\n right: 0;\n\n color: ${disabled ? theme.colorTextMuted : ''};\n }\n`}\n`;\nexport const ShortcutsHeader = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n font-size: ${({ theme }) => theme.fontSizeSmall}em;\n color: ${({ theme }) => theme.colorTextDefault};\n margin: ${({ theme }) => `${theme.spacingSmall}px`} 0;\n &:before,\n &:after {\n content: '';\n flex-grow: 1;\n height: 1px;\n ${({ theme }) => `background: ${theme.borderColorInput};`}\n }\n &:before {\n ${({ theme }) => `margin-right: ${theme.spacingSmall}px;`}\n }\n &:after {\n ${({ theme }) => `margin-left: ${theme.spacingSmall}px;`}\n }\n`;\nexport const DateTimeWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n height: 100%;\n flex: 1;\n padding: ${({ theme }) => theme.spacingComfortable}px;\n\n ${DayPicker} {\n padding: 0;\n }\n`;\nexport const ShortcutButtons = styled.div`\n display: grid;\n grid-gap: ${({ theme }) => theme.spacingTiny}px;\n grid-template-columns: auto auto auto;\n`;\nexport const DurationWrapper = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: ${({ theme }) => theme.spacingComfortable}px;\n`;\nexport const PopoverWrapper = styled.div`\n display: flex;\n min-height: 18em;\n margin: -${({ theme }) => theme.spacingDefault}px;\n gap: ${({ theme }) => theme.spacingComfortable}px;\n ${DateTimeWrapper}, ${DurationWrapper} {\n width: 15em;\n }\n`;\n\nexport const TimePickerWrapper = styled.div`\n margin-top: ${({ theme }) => theme.spacingSmall}px;\n width: 100%;\n display: flex;\n justify-content: center;\n gap: ${({ theme }) => theme.spacingDefault}px;\n`;\nexport const InputOverlay = styled.div<{ size?: FormControlSizes }>`\n position: absolute;\n left: ${({ theme, size = FormControlSizes.Default }) => (theme.spacingDefault * size) / 2}px;\n`;\nexport const DurationDescription = styled.span<{ disabled?: boolean }>`\n ${({ theme, disabled }) => `color: ${disabled ? theme.colorTextSubtle : theme.colorTextImportant};`}\n`;\nexport const DateDescription = styled.span<{ disabled?: boolean }>`\n ${({ theme, disabled }) => `color: ${disabled ? theme.colorTextSubtle : theme.colorTextImportant};`}\n flex: 0 0 auto;\n white-space: nowrap;\n ${DurationDescription}~& {\n ${({ theme, disabled }) => `color: ${disabled ? theme.colorTextMuted : theme.colorTextSubtle};`}\n }\n`;\nexport const DateTimeDurationPickerWrapper = styled.div<{ focused: boolean }>`\n position: relative;\n\n ${({ focused }) =>\n focused\n ? `\n ${InputOverlay} {\n display: none;\n }`\n : `\n ${InputOverlay} {\n display: flex;\n }\n > ${InputWrapper} > input {\n color: transparent;\n }\n`}\n`;\n","import styled from 'styled-components';\nimport { IconButtonWrapper } from '../Button/IconButton/styles';\nimport { VStack } from '../Core';\nimport { DayPicker } from '../DayPicker';\n\nexport const DateTimePickerWrapper = styled.span`\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n`;\n\nexport const DateTimeWrapper = styled(VStack)`\n ${DayPicker} {\n padding: 0;\n }\n`;\n\nexport const DurationHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: -${({ theme }) => theme.spacingDefault}px;\n ${IconButtonWrapper} {\n margin-right: -${({ theme }) => theme.spacingDefault}px;\n }\n`;\n\nexport const DurationButtons = styled.div`\n display: grid;\n width: 90px;\n grid-gap: ${({ theme }) => theme.spacingTiny}px;\n grid-template-columns: auto auto;\n`;\n\nexport const TimePickerWrapper = styled.div`\n margin-top: ${({ theme }) => theme.spacingSmall}px;\n width: 100%;\n display: flex;\n justify-content: center;\n`;\n","import styled from 'styled-components';\n\nexport const AutocompleteWrapper = styled.div`\n position: relative;\n`;\n","import { forwardRef, type CSSProperties, type ReactNode } from 'react';\nimport styled from 'styled-components';\nimport type { BoxProps } from '../Core';\nimport { Tooltip } from '../Tooltip';\nimport { Title, Wrapper, type TagSizes, type TagVariants } from './styles';\n\nexport { TagSizes, TagVariants } from './styles';\n\nexport type TagProps = {\n variant?: TagVariants;\n title?: string;\n tooltip?: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n size?: TagSizes;\n children?: ReactNode;\n style?: CSSProperties;\n} & Omit;\n\nexport const Tag = styled(\n forwardRef(\n ({ children, variant, title = '', prefix, suffix, tooltip, size, ...props }, ref) => {\n const tagContent = (\n \n {title !== '' && {title}}\n {prefix}\n {children}\n {suffix}\n \n );\n return tooltip ? {tagContent} : tagContent;\n }\n )\n)``;\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Tag } from '../../Tag';\nimport { formControlCSS } from '../styles';\nimport type { FormControlProps, FormControlSizes } from '../types';\n\nexport const MultiSelectWrapper = styled.div`\n position: relative;\n`;\n\nexport const Selection = styled(Tag)<{ disabled: boolean; suffix?: ReactNode; formControlSize: FormControlSizes }>`\n border-radius: ${({ theme }) => theme.borderRadiusSmall}px;\n white-space: nowrap;\n position: relative;\n padding-right: ${({ suffix, theme, formControlSize }) =>\n suffix ? `${(formControlSize / 2) * theme.spacingLarge}px` : ''};\n padding-left: ${({ suffix, theme, formControlSize }) =>\n suffix ? `${(formControlSize / 2) * theme.spacingSmall}px` : ''};\n height: ${({ theme, formControlSize }) => theme.baseSize * (formControlSize - 0.5)}px;\n\n opacity: ${({ disabled }) => (disabled ? 0.6 : 1)};\n`;\n\nexport const MultiSelectInputWrapper = styled.label>`\n ${formControlCSS}\n justify-content: space-between;\n padding-top: ${({ theme }) => theme.spacingTiny}px;\n padding-bottom: ${({ theme }) => theme.spacingTiny}px;\n padding-left: ${({ theme }) => theme.spacingTiny}px;\n\n height: auto;\n max-width: 100%;\n\n i {\n line-height: 1;\n }\n\n input {\n min-width: 50px;\n padding-left: ${({ theme }) => theme.spacingDefault - theme.spacingTiny}px;\n line-height: 1.5;\n }\n`;\n","import styled from 'styled-components';\nimport { Box } from '../../Core';\n\nexport const SearchSelectWrapper = styled(Box)`\n position: relative;\n`;\n\nexport const IconWrapper = styled.div`\n width: ${({ theme }) => theme.baseSize}px;\n margin-right: ${({ theme }) => theme.spacingDefault}px;\n flex-shrink: 0;\n line-height: 1;\n`;\n","import styled from 'styled-components';\nimport { formControlCSS, inputColor } from '../styles';\nimport type { FormControlProps } from '../types';\nimport { FormControlSizes, InputStates } from '../types';\n\nexport const SelectWrapper = styled.label>`\n ${formControlCSS};\n padding-right: ${({ theme }) => theme.spacingBig}px;\n background: ${({ theme, disabled, invalid, touched, readOnly }) =>\n disabled\n ? theme.backgroundSelectDisabled\n : readOnly\n ? theme.backgroundSelectReadOnly\n : invalid && (touched == null || touched)\n ? theme.backgroundSelectInvalid\n : theme.backgroundSelect};\n\n &:after {\n pointer-events: none;\n content: ' ';\n position: absolute;\n right: ${({ size = FormControlSizes.Default }) => (size / 2) * 0.5}rem;\n top: 0;\n bottom: 0;\n width: ${({ size = FormControlSizes.Default }) => (size / 2) * 0.5}rem;\n display: block;\n ${({ disabled, theme }) =>\n `background: transparent url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 5'%3E%3Cpath fill='${encodeURIComponent(\n disabled ? theme.colorTextSubtle : theme.colorTextDefault\n )}' fillRule='nonzero' d='M1 0L0 1l4 4 4-4-1-1-3 3z'/%3E%3C/svg%3E\") no-repeat center center;`}\n }\n\n > select {\n margin-right: -${({ theme }) => theme.spacingBig}px;\n padding-right: ${({ theme }) => theme.spacingBig}px;\n }\n\n select {\n optgroup,\n option {\n background-color: ${({ theme }) => theme.backgroundSelectDropdown};\n ${({ theme, disabled, variant }) => inputColor(theme, variant, InputStates.Default, disabled)};\n }\n optgroup {\n font-weight: ${({ theme }) => theme.fontWeightBold};\n }\n }\n`;\n","import styled from 'styled-components';\nimport { formControlCSS } from '../styles';\nimport type { FormControlProps } from '../types';\n\nexport const TextAreaWrapper = styled.label>`\n ${formControlCSS}\n height: auto;\n padding: 0;\n\n textarea {\n padding: 0 ${({ theme }) => theme.spacingDefault}px;\n }\n`;\n","import type { CSSProperties } from 'react';\nimport styled, { type DefaultTheme } from 'styled-components';\nimport { parseDimension } from '../../../styles';\nimport { ButtonWrapper } from '../../Button/styles';\nimport { Box, type BoxProps } from '../../Core';\nimport { DateTimeDurationPickerWrapper } from '../../DateTimeDurationPicker/styles';\nimport { DateTimePickerWrapper } from '../../DateTimePicker/styles';\nimport { AutocompleteWrapper } from '../Autocomplete/styles';\nimport { InputWrapper } from '../Input/styles';\nimport { MultiSelectInputWrapper } from '../MultiSelect/styles';\nimport { SearchSelectWrapper } from '../SearchSelect/styles';\nimport { SelectWrapper } from '../Select/styles';\nimport { TextAreaWrapper } from '../TextArea/styles';\nimport { INPUT_BORDER_WIDTH, Label } from '../styles';\nimport { FormControlSizes } from '../types';\nimport { getFontSize } from '../utils';\n\nexport const HelpText = styled(Box)`\n color: ${({ theme }) => theme.colorTextSubtle};\n font-size: ${({ theme }) => theme.fontSizeFormHelp}rem;\n padding: ${({ theme }) => theme.spacingTiny}px 0;\n line-height: 1;\n`;\n\nexport const FormMessage = styled(Box)<{ error?: boolean; warning?: boolean }>`\n color: ${({ theme, warning, error }) =>\n // red error takes precedence, but is also the default\n error ? theme.colorTextNegative : warning ? theme.colorTextWarning : theme.colorTextNegative};\n font-size: ${({ theme }) => theme.fontSizeFormHelp}rem;\n padding-top: ${({ theme }) => theme.spacingTiny}px;\n line-height: 1;\n white-space: pre-wrap;\n`;\n\n// placeholder for styled component selector usage below\nexport const OverflowFormMessageWrapper = styled(Box)``;\n\ninterface FormGroupWrapperProps extends BoxProps {\n disabled?: boolean;\n inline?: boolean;\n size?: FormControlSizes;\n labelWidth?: CSSProperties['width'];\n}\n\n/**\n * Get the margin bottom for a form group.\n * Accounts for the help/error/warning text, and adds a bit of extra space.\n */\nexport const getFormGroupMarginBottom = (theme: DefaultTheme) => {\n return `${theme.spacingSmall + theme.spacingTiny + theme.fontSizeFormHelp * theme.baseSize}px`;\n};\n\nexport const FormGroupWrapper = styled(Box)`\n position: relative;\n text-align: ${({ textAlign }) => textAlign ?? 'left'};\n ${({ inline, alignItems }) => inline && `display: flex; align-items: ${alignItems ?? 'baseline'};`}\n ${({ theme, mb }) =>\n `margin-bottom: ${mb != null ? parseDimension(theme, mb) : getFormGroupMarginBottom(theme)};\n &:last-child {\n margin-bottom: ${mb != null ? parseDimension(theme, mb) : `${theme.spacingDefault}px`};\n }\n `};\n\n > ${Label}, > span > ${Label}, > div > ${Label} {\n display: inline-flex;\n margin-bottom: ${({ theme, inline }) => !inline && theme.spacingSmall}px;\n transition: color 200ms ease;\n font-size: ${({ theme }) => theme.fontSizeFormLabel}rem;\n align-self: flex-start;\n color: ${({ disabled, theme }) => (disabled ? theme.colorTextSubtle : 'inherit')};\n }\n\n > ${Box}:first-child {\n ${({ inline }) => inline && `flex: 0 0 auto;`}\n }\n\n > ${ButtonWrapper} {\n height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n }\n\n > ${InputWrapper},\n > ${SelectWrapper},\n > ${SearchSelectWrapper}\n > ${InputWrapper},\n > ${DateTimePickerWrapper}\n > ${InputWrapper},\n > ${AutocompleteWrapper}\n > ${InputWrapper},\n > ${DateTimeDurationPickerWrapper} {\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n min-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n\n ${({ inline }) => inline && `flex: 1 1 auto;`}\n\n > input,\n > select {\n height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n min-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n }\n }\n\n /* Apply same as above but with min-height instead as multiselect must be allowed to grow in height */\n & ${MultiSelectInputWrapper} {\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n min-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n }\n\n > ${SelectWrapper} {\n &:after {\n right: ${({ size = FormControlSizes.Default }) => (size / 2) * 0.5}rem;\n width: ${({ size = FormControlSizes.Default }) => (size / 2) * 0.5}rem;\n }\n }\n\n > ${TextAreaWrapper} {\n line-height: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size - INPUT_BORDER_WIDTH * 2}px;\n font-size: ${({ theme, size = FormControlSizes.Default }) => getFontSize(theme, size)}rem;\n flex: 1;\n\n & > textarea {\n height: 100%;\n }\n }\n\n &:focus-within {\n ${Label} {\n color: ${({ theme }) => theme.colorTextImportant};\n }\n ${HelpText} {\n color: ${({ theme }) => theme.colorTextDefault};\n }\n }\n\n > ${FormMessage}, > ${HelpText}, > ${OverflowFormMessageWrapper} ${FormMessage} {\n height: ${({ theme }) => 1.4 * theme.fontSizeFormHelp}rem;\n font-size: ${({ theme }) => theme.fontSizeFormHelp}rem;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -${({ theme }) => 1.4 * theme.fontSizeFormHelp}rem;\n }\n\n > ${HelpText} {\n color: ${({ disabled, theme }) => (disabled ? theme.colorTextMuted : '')};\n }\n`;\n\nexport const FormActions = styled(FormGroupWrapper)`\n display: flex;\n gap: ${({ theme, size = FormControlSizes.Default }) => (theme.spacingDefault * size) / 2}px;\n justify-content: flex-end;\n`;\n","import { Box, type BoxProps } from 'components/Core';\nimport { WarningSeverityIcon } from 'components/Icons/WarningSeverityIcon';\nimport { Tooltip } from 'components/Tooltip';\nimport { useOverflowHandler } from 'hooks/useOverflowHandler';\nimport { WarningSeverity } from 'types/WarningSeverity';\nimport { FormMessage, OverflowFormMessageWrapper } from './styles';\n\nexport const OverflowFormMessage: React.FC<\n BoxProps & {\n error?: boolean | undefined;\n warning?: boolean | undefined;\n }\n> = props => {\n const { isOverflowing, ref } = useOverflowHandler();\n const { error, warning } = props;\n const tooltipContent =\n error || warning ? (\n \n \n \n \n {props.children}\n \n ) : null;\n return (\n \n \n \n \n \n );\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { isTextEllipsized } from './isTextEllipsized';\n\n/**\n * This hook is used to determine if the content of a div is overflowing, based on\n * the scrollWidth and clientWidth of the div, via utilization of ResizeObserver and MutationObserver\n *\n * ```typescript\n * const { isOverflowing, ref } = useOverflowHandler();\n * const tooltipContent = Overlay Content to show if hovering over long message;\n * return (\n * \n * \n * \n * \n * \n *```\n * @param {Object} options\n * @param {boolean} options.ignoreMutations - boolean value to determine if MutationObserver creation can be skipped, reducing resource alloc (default: false). Useful for use in ag-grid where column resize would only trigger ResizeObserver\n * @returns {Object} { isOverflowing: boolean, ref: React.RefObject }\n * @returns {boolean} isOverflowing - true if the content is overflowing the space available\n * @returns {React.RefObject} ref - React Ref Object to be used on the div to check for overflow\n *\n */\nexport function useOverflowHandler({ ignoreMutations, skip }: { ignoreMutations?: boolean; skip?: boolean } = {}): {\n isOverflowing: boolean;\n ref: React.RefObject;\n} {\n const ref = useRef(null);\n const [isOverflowing, setIsOverflowing] = useState(false);\n\n useEffect(() => {\n if (skip) {\n return;\n }\n if (!ref.current) {\n throw new Error('Ref provided to useOverflowHandler must be assigned');\n }\n const checkOverflow = () => {\n const div = ref.current;\n if (!div) {\n // div may be null on cleanup\n return;\n }\n const isOverflowing = isTextEllipsized(div);\n setIsOverflowing(isOverflowing);\n };\n\n const resizeObserver = new ResizeObserver(checkOverflow);\n resizeObserver.observe(ref.current!);\n\n let mutationObserver: MutationObserver | undefined;\n if (!ignoreMutations) {\n mutationObserver = new MutationObserver(checkOverflow);\n mutationObserver.observe(ref.current!, { childList: true, subtree: true, characterData: true });\n }\n\n return () => {\n resizeObserver.disconnect();\n mutationObserver?.disconnect();\n };\n }, [ignoreMutations, skip]);\n\n return { isOverflowing, ref };\n}\n","import type { CSSProperties, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Flex, HStack, type BoxProps } from '../../Core';\nimport { Tooltip } from '../../Tooltip';\nimport { Label } from '../styles';\nimport { FormControlSizes } from '../types';\nimport { OverflowFormMessage } from './OverflowFormMessage';\nimport { FormGroupWrapper, HelpText } from './styles';\n\nexport { FormActions, FormMessage } from './styles';\n\nexport const FormGroup = styled(\n ({\n label,\n labelSuffix,\n labelWidth,\n controlId,\n children,\n help,\n error,\n warning,\n disabled,\n size = FormControlSizes.Default,\n inline = false,\n style,\n tooltip: _tooltip,\n portalizeTooltip,\n ...props\n }: FormGroupProps) => {\n const { gap = 0 } = props;\n\n const renderTooltip = _tooltip === '' ? false : !!_tooltip;\n const tooltip = renderTooltip ? _tooltip : null;\n\n return (\n \n {label && (\n \n \n \n \n {labelSuffix && (\n \n \n \n )}\n \n )}\n {children}\n {(error || warning) && (\n \n {/* Ensure error takes precedence */}\n {error ? error : warning}\n \n )}\n {help && !error && (\n \n {help}\n \n )}\n \n );\n }\n)``;\n\nexport interface FormGroupProps extends BoxProps {\n labelWidth?: CSSProperties['width'];\n controlId?: string;\n disabled?: boolean;\n label?: ReactNode;\n labelSuffix?: ReactNode;\n help?: ReactNode;\n error?: ReactNode;\n warning?: ReactNode;\n tooltip?: ReactNode;\n portalizeTooltip?: boolean;\n inline?: boolean;\n size?: FormControlSizes;\n children?: ReactNode;\n style?: CSSProperties;\n}\n","import { forwardRef, type ReactNode } from 'react';\nimport { useElementId } from '../../../hooks';\nimport { Flex } from '../../Core';\nimport { FormControlSizes, type FormControlProps } from '../types';\nimport { MultiSelectInputWrapper } from './styles';\n\nexport const MultiSelectInput = forwardRef & { items: ReactNode }>(\n (\n {\n style,\n className,\n prefix,\n suffix,\n invalid,\n touched,\n disabled,\n value,\n type,\n inline,\n width,\n autoComplete = 'off',\n autoCorrect = 'off',\n autoCapitalize = 'off',\n spellCheck = false,\n wrapperRef,\n controlStyle,\n size = FormControlSizes.Default,\n placeholder,\n items,\n ...props\n },\n ref\n ) => {\n const id = useElementId(props.id ?? 'MultiSelect');\n return (\n \n {prefix}\n \n {items}\n \n \n {suffix}\n \n );\n }\n);\n","import { useCombobox, useMultipleSelection } from 'downshift';\nimport { isNil } from 'lodash';\nimport type { RefObject } from 'react';\nimport type { UseAutocompleteProps } from '../Autocomplete/types';\nimport { useAutocomplete } from '../Autocomplete/useAutocomplete';\n\nexport type UseMultiSelectAutocompleteProps = UseAutocompleteProps & {\n selections: T[];\n onChange: (newSelections: T[]) => void;\n clearInputAfterSelection?: boolean;\n removeItemOnInputBackspace?: boolean;\n /** Highlights the text in the passed inputRef upon item selection */\n highlightInputTextAfterSelection?: boolean;\n inputRef?: RefObject;\n /**\n * A function used to get whether or not an item T is to be seen as \"locked\". Locked items, once selected, cannot be unselected.\n */\n isSelectionLocked?: (obj: T) => boolean;\n};\n\nexport const useMultiSelectAutocomplete = ({\n selections,\n items,\n onChange,\n getLabel,\n getDescription,\n isSelectionLocked,\n clearInputAfterSelection = true,\n removeItemOnInputBackspace = true,\n highlightInputTextAfterSelection = false,\n inputRef,\n ...props\n}: UseMultiSelectAutocompleteProps) => {\n const multipleSelection = useMultipleSelection({\n selectedItems: selections,\n onStateChange({ selectedItems }) {\n if (selectedItems != null) {\n onChange(selectedItems);\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { changes, type } = actionAndChanges;\n\n if (type === useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace && !removeItemOnInputBackspace) {\n return state;\n }\n\n if (isSelectionLocked != null) {\n // Whenever a change happens and we have locked items, we double-check to make sure no locked items were accidentally removed\n const changedItemsSet = new Set(changes.selectedItems);\n const invalidRemovedItems = state.selectedItems.filter(\n oldItem => !changedItemsSet.has(oldItem) && isSelectionLocked(oldItem)\n );\n\n if (invalidRemovedItems.length > 0) {\n // if any of the removed items were locked the action was invalid and will be ignored / reverted\n return state;\n }\n }\n\n return changes;\n },\n });\n const autocomplete = useAutocomplete({\n items,\n getLabel: getLabel,\n getDescription: getDescription,\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputClick:\n return {\n ...actionAndChanges.changes,\n // For backward compatibility with earlier combobox behavior,\n // keep the highlighted index and open state when the input is clicked\n highlightedIndex: state.highlightedIndex,\n isOpen: state.isOpen,\n };\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n const item = actionAndChanges.changes.selectedItem;\n if (!isNil(item)) {\n if (multipleSelection.selectedItems.includes(item)) {\n multipleSelection.removeSelectedItem(item);\n } else {\n multipleSelection.addSelectedItem(item);\n }\n }\n\n if (highlightInputTextAfterSelection && inputRef?.current) {\n inputRef.current.select();\n }\n\n return {\n ...actionAndChanges.changes,\n selectedItem: undefined, // we are a multiselect, we don't have a \"selectedItem\", always undefine it\n highlightedIndex: state.highlightedIndex, // keep the highlighted index (otherwise it resets to 0)\n inputValue: clearInputAfterSelection ? '' : state.inputValue,\n isOpen: true,\n };\n }\n case useCombobox.stateChangeTypes.MenuMouseLeave: {\n return {\n ...actionAndChanges.changes,\n highlightedIndex: state.highlightedIndex, // Do not scroll to top if mouse leaves input\n };\n }\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.InputKeyDownEscape:\n return { ...actionAndChanges.changes, isOpen: false, inputValue: '' };\n default:\n return actionAndChanges.changes;\n }\n },\n ...props,\n });\n\n return { autocompleteOutput: autocomplete, multipleSelectionOutput: multipleSelection };\n};\n","import { memo, useEffect, useMemo, useRef, type CSSProperties, type Ref } from 'react';\nimport { ICON_SIZES, Icon, IconName } from '../../Icons';\nimport { AutocompleteDropdown, FuseAutocompleteResult } from '../AutocompleteDropdown';\nimport { useDropdownPopper } from '../Dropdown/useDropdownPopper';\nimport { FormControlSizes } from '../types';\nimport { MultiSelectInput } from './MultiSelectInput';\nimport { MultiSelectWrapper } from './styles';\nimport { useMultiSelectAutocomplete } from './useMultiselectAutocomplete';\n\nimport type { ExposedAutocompleteDropdownProps } from '../AutocompleteDropdown/types';\nimport { useRenderMultiSelectSelection } from './useRenderMultiSelectSelection';\n\n/**\n * Takes a list of objects of some type T as well as initial selections.\n * The labelKey and descriptionKey fields must map to a string when used to get the field from type T.\n * descriptionKey is optional.\n * The lookup function is used to, given an object of type T, get some string representation which is used in searching.\n * The onChange emits the new selections when they change, they are also of type T.\n */\nexport type MultiSelectProps = {\n options: T[];\n selections: T[];\n disabled?: boolean;\n style?: CSSProperties;\n placeholder?: string;\n size?: FormControlSizes;\n autoOpen?: boolean;\n getLabel: (obj: T) => string;\n getDescription?: (obj: T) => string;\n isSelectionLocked?: (obj: T) => boolean;\n onChange(selections: T[]): void;\n} & ExposedAutocompleteDropdownProps;\n\n// forwardRef and generic components do not play nice together, so we replace the forwardRef\n// with our own custom ref. See here: https://stackoverflow.com/a/58473012\nconst MultiSelectInner = (props: MultiSelectProps & { myRef?: Ref }) => {\n const {\n options,\n selections,\n disabled = false,\n getLabel,\n getDescription,\n isSelectionLocked,\n onChange,\n myRef,\n size = FormControlSizes.Default,\n placeholder,\n dropdownWidth,\n portalize,\n maxHeight,\n autoOpen,\n ...rest\n } = props;\n\n const selectableOptions = useMemo(() => {\n const selectionsSet = new Set(selections);\n return options.filter(option => !selectionsSet.has(option));\n }, [options, selections]);\n\n const { autocompleteOutput, multipleSelectionOutput } = useMultiSelectAutocomplete({\n selections,\n items: selectableOptions,\n getLabel,\n getDescription,\n onChange,\n isSelectionLocked,\n });\n\n const { getSelectedItemProps, getDropdownProps, selectedItems, removeSelectedItem } = multipleSelectionOutput;\n const { getInputProps, isOpen, openMenu } = autocompleteOutput;\n\n const dropdownReferenceElement = useRef(null);\n const dropdownPopper = useDropdownPopper({\n isOpen,\n referenceElement: dropdownReferenceElement.current ?? null,\n });\n\n const renderSelection = useRenderMultiSelectSelection({\n disabled,\n getLabel,\n getSelectedItemProps,\n isSelectionLocked,\n removeSelectedItem,\n });\n\n useEffect(() => {\n if (autoOpen) {\n dropdownReferenceElement.current?.focus();\n }\n }, [autoOpen]);\n\n return (\n \n !isOpen && openMenu(),\n onKeyDown: e => {\n if (e.key === 'Escape') {\n // if this multi select control is within a drawer that closes with the escape key, we need to stop this from happening here and just close the dropdown instead\n e.stopPropagation();\n }\n },\n })\n )}\n items={selectedItems.map((selectedItem, index) => renderSelection(selectedItem, index, size))}\n suffix={}\n />\n\n \n \n );\n};\n\n// Memoized components and generics do not play nice together, see:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-656596623\nexport const MultiSelect = memo(MultiSelectInner) as typeof MultiSelectInner;\n","import type { UseMultipleSelectionGetSelectedItemPropsOptions } from 'downshift';\nimport { useCallback } from 'react';\nimport { IconButton } from '../../Button';\nimport { IconName } from '../../Icons';\nimport { TagSizes } from '../../Tag';\nimport { getLabelWrapper } from '../Autocomplete/useAutocomplete';\nimport { FormControlSizes } from '../types';\nimport { Selection } from './styles';\n\nexport function useRenderMultiSelectSelection({\n disabled = false,\n getLabel,\n getSelectedItemProps,\n isSelectionLocked,\n removeSelectedItem,\n}: {\n getSelectedItemProps: (options: UseMultipleSelectionGetSelectedItemPropsOptions) => any;\n removeSelectedItem: (item: T) => void;\n disabled?: boolean;\n getLabel?: (obj: T) => string;\n isSelectionLocked?: (obj: T) => boolean;\n}) {\n return useCallback(\n (selectedItem: T, index: number, formControlSize: FormControlSizes = FormControlSizes.Default) => {\n const isLocked = isSelectionLocked ? isSelectionLocked(selectedItem) : false;\n return (\n {\n e.stopPropagation();\n removeSelectedItem(selectedItem);\n }}\n />\n )\n }\n >\n {getLabelWrapper(getLabel, selectedItem)}\n \n );\n },\n [disabled, getLabel, getSelectedItemProps, isSelectionLocked, removeSelectedItem]\n );\n}\n","import styled from 'styled-components';\nimport { setAlpha } from '../../../styles';\nimport { Button } from '../../Button';\nimport { Flex } from '../../Core';\nimport { FormControlSizes } from '../../Form/types';\nimport { Icon } from '../../Icons';\nimport { Text } from '../../Text';\n\nexport const PropertyButton = styled(Button)`\n color: ${({ theme }) => theme.colors.gray['090']};\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n`;\n\nexport const SelectionButtonWrapper = styled.div``;\nexport const SelectionButton = styled(Button)``;\nexport const SelectionsListWrapper = styled(Flex)`\n gap: 1px;\n ${SelectionButtonWrapper} {\n ${SelectionButton} {\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n }\n\n :not(:last-child) {\n ${SelectionButton} {\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n }\n }\n`;\n\nexport const Middle = styled(Flex)`\n background: ${({ theme }) => setAlpha(0.2, theme.colors.gray['100'])};\n color: ${({ theme }) => theme.colors.gray['090']};\n margin: 0 1px;\n padding: 0 ${({ theme }) => theme.spacingDefault}px;\n font-weight: 500;\n`;\n\nexport const FilterBuilderContent = styled(Flex)`\n ${Button} {\n font-weight: 500;\n }\n\n flex-wrap: wrap;\n`;\n\nexport const SelectionRemoveIcon = styled(Icon)`\n color: ${({ theme }) => theme.colors.gray['080']};\n`;\n\nexport const DropdownLabelContainer = styled(Flex)`\n background: ${({ theme }) => theme.colors.gray['050']};\n text-transform: uppercase;\n font-weight: 500;\n line-height: 1;\n border-bottom: solid 1px ${({ theme }) => theme.backgroundDropdownResults};\n`;\nDropdownLabelContainer.defaultProps = {\n p: 'spacingSmall',\n px: 'spacingComfortable',\n gap: 'spacingDefault',\n alignItems: 'center',\n justifyContent: 'space-between',\n};\n\nexport const ActionableText = styled(Text)`\n :hover {\n cursor: pointer;\n }\n`;\n\nexport const FilterClauseWrapper = styled(Flex)`\n height: ${({ theme }) => theme.baseSize * FormControlSizes.Default}px;\n`;\n\nexport const FilterBuilderToggleBadge = styled.span<{ isOpen: boolean }>`\n transition: background 100ms;\n padding: 2px 5px;\n border-radius: 2px;\n\n ${({ theme }) => `\n background: ${theme.colors.orange.default};\n margin-left: ${theme.spacingSmall}px;\n `}\n\n ${({ isOpen, theme }) =>\n isOpen &&\n `\n color: ${theme.colorTextSubtle};\n background: transparent;\n `}\n`;\n","import { defineMessages } from 'react-intl';\nimport { Flex } from '../../../Core';\nimport { Icon } from '../../../Icons';\nimport { FormattedMessage } from '../../../Intl';\nimport { Text } from '../../../Text';\nimport { ActionableText, DropdownLabelContainer } from '../styles';\nimport type { FilterableProperty } from '../types';\n\nconst messages = defineMessages({\n clearAll: {\n defaultMessage: 'Clear all',\n id: 'Filters.FilterBuilder.RHS.clearAll',\n },\n selectAll: {\n defaultMessage: 'Select all',\n id: 'Filters.FilterBuilder.RHS.selectAll',\n },\n});\n\nexport interface DropdownResultsHeaderProps {\n property: FilterableProperty;\n showClearAll: boolean;\n showSelectAll?: boolean;\n onClearAll?: () => void;\n onSelectAll?: () => void;\n}\n\nexport const DropdownResultsHeader = ({\n property,\n showClearAll,\n onClearAll,\n showSelectAll,\n onSelectAll,\n}: DropdownResultsHeaderProps) => {\n return (\n \n \n \n {property.label}\n \n {showClearAll && (\n \n \n \n )}\n {showSelectAll && (\n \n \n \n )}\n \n );\n};\n","import type { UseMultipleSelectionReturnValue } from 'downshift';\nimport type { RefObject } from 'react';\nimport { defineMessages, useIntl } from 'react-intl';\nimport {\n CheckboxFuseAutocompleteDropdown,\n type CheckboxFuseAutocompleteDropdownProps,\n} from '../../../Form/AutocompleteDropdown';\nimport { Input } from '../../../Form/Input';\nimport type { FilterableProperty } from '../types';\nimport { DropdownResultsHeader } from './DropdownResultsHeader';\n\nconst messages = defineMessages({\n filterOptions: {\n defaultMessage: 'Filter options',\n id: 'Filters.FilterBuilder.RHS.filterOptions',\n },\n});\n\ntype FilterCheckboxDropdownProps = CheckboxFuseAutocompleteDropdownProps & {\n inputRef?: RefObject;\n property: FilterableProperty;\n onClearAll: () => void;\n onSelectAll: () => void;\n} & Pick<\n UseMultipleSelectionReturnValue,\n 'getDropdownProps' | 'addSelectedItem' | 'removeSelectedItem' | 'selectedItems'\n >;\n\nexport const FilterCheckboxDropdown = ({\n inputRef,\n property,\n onClearAll,\n onSelectAll,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n selectedItems,\n ...props\n}: FilterCheckboxDropdownProps) => {\n const { getInputProps } = props;\n const { formatMessage } = useIntl();\n const showClearAll = selectedItems.length > 0;\n const showSelectAll = !showClearAll && property.control === 'multi-select' && property.allowSelectAll;\n\n return (\n \n \n\n \n property={property}\n showClearAll={showClearAll}\n showSelectAll={showSelectAll}\n onClearAll={onClearAll}\n onSelectAll={onSelectAll}\n />\n \n }\n {...props}\n />\n );\n};\n","export const DEFAULT_FILTER_BUILDER_DROPDOWN_WIDTH = '240px';\n","import type { UseComboboxStateChange } from 'downshift';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { FilterableSelectProperty } from '../../Filters/FilterBuilder/types';\n\nfunction defaultOptionSorter(getOptionLabel: (option: T) => string): (a: T, b: T) => -1 | 1 {\n return (a: T, b: T) => (getOptionLabel(a) < getOptionLabel(b) ? -1 : 1);\n}\ntype UseMultiSelectSelectionManagerProps = {\n property: FilterableSelectProperty;\n selections: T[];\n onSelectionsChange: (newSelections: T[]) => void;\n};\n/**\n * Hook to handle common multi-select behavior to store in-process multi-select items from the dropdown, and\n * sort them to the top of the selection list when the dropdown is opened\n *\n * @template T - The data type of the selection items.\n *\n * @param {Property} params.property - The property object containing options and sorting logic.\n * @param {T[]} params.selections - The current selections.\n * @param {Function} params.onSelectionsChange - Callback function to handle selection changes.\n *\n * @returns {T[]} combinedCurrentSelections - The combined current selections including unconfirmed additions.\n * @returns {T[]} dropdownItems - The items to be displayed in the dropdown.\n * @returns {Function} isSelectionDisabled - Function to check if a selection is disabled.\n * @returns {Function} addUnconfirmedAdditions - Function to add unconfirmed additions to the selections.\n * @returns {Function} handleSelectionsChange - Function to handle changes in selections.\n * @returns {Function} handleOpenChange - Function to handle changes in the open state of the dropdown.\n */\nexport const useMultiSelectSelectionManager = ({\n property,\n selections,\n onSelectionsChange,\n}: UseMultiSelectSelectionManagerProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const { options, getOptionLabel, optionSorter: propertySorter } = property;\n\n const optionSorter = useMemo(() => {\n return propertySorter ?? defaultOptionSorter(getOptionLabel);\n }, [getOptionLabel, propertySorter]);\n\n // We remember what the latest selections were _before_ we started editing and mutating the \"selections\" prop.\n const [latestConfirmedSelections, setLatestConfirmedSelections] = useState(selections);\n\n const selectionsSet = useMemo(() => {\n return new Set(selections);\n }, [selections]);\n\n // Do sorting in separate memos for performance reasons\n const sortedLatestConfirmedSelections = useMemo(() => {\n // Note: Create new arr in order to not sort the original reference which is used elsewhere (unsorted)\n return [...latestConfirmedSelections].sort(optionSorter);\n }, [latestConfirmedSelections, optionSorter]);\n\n const sortedSelectableOptions = useMemo(() => {\n return options.sort(optionSorter);\n }, [optionSorter, options]);\n\n // We need to keep track of all additions that occur while editing internally and remember until editing is complete (dropdown closes)\n // These are seen as \"unconfirmed\" as their use is in contrast with the above \"latestConfirmedSelections\", which are set once we are done editing (dropdown closes)\n const [unconfirmedAdditions, setUnconfirmedAdditions] = useState(() => new Set());\n\n // We combine the latest confirmed selections with all additions we have observed so far in this \"round\" of editing.\n const combinedCurrentSelections = useMemo(() => {\n const combinedSet = new Set(latestConfirmedSelections);\n for (const addition of unconfirmedAdditions) {\n combinedSet.add(addition);\n }\n return [...combinedSet];\n }, [unconfirmedAdditions, latestConfirmedSelections]);\n\n const dropdownItems = useMemo(() => {\n const sortedLatestConfirmedSelectionsSet = new Set(sortedLatestConfirmedSelections);\n const selectableWithoutSelected = sortedSelectableOptions.filter(\n option => !sortedLatestConfirmedSelectionsSet.has(option)\n );\n return [...sortedLatestConfirmedSelectionsSet, ...selectableWithoutSelected];\n }, [sortedSelectableOptions, sortedLatestConfirmedSelections]);\n\n const isSelectionDisabled = useCallback(\n (selection: T) => {\n return !selectionsSet.has(selection);\n },\n [selectionsSet]\n );\n\n const addUnconfirmedAdditions = useCallback(\n (newSelections: T[]) => {\n const additions = newSelections.filter(newSelection => !selectionsSet.has(newSelection));\n if (additions.length > 0) {\n setUnconfirmedAdditions(curr => {\n for (const addition of additions) {\n curr.add(addition);\n }\n return new Set(curr);\n });\n }\n },\n [selectionsSet]\n );\n\n // Whenever selections change and we are closed (or if we close the dropdown), we update the \"latest confirmed selections set\".\n const handleOpenChange = useCallback(\n (change: UseComboboxStateChange) => {\n setIsOpen(change.isOpen ?? false);\n if (change.isOpen != null && !change.isOpen && selections) {\n setLatestConfirmedSelections(selections);\n setUnconfirmedAdditions(new Set());\n }\n },\n [selections]\n );\n\n const handleSelectionsChange = useCallback(\n (newSelections: T[]) => {\n if (isOpen) {\n addUnconfirmedAdditions(newSelections);\n } else {\n // its closed, so immediately set the latestConfirmedSelections to newSelections\n setLatestConfirmedSelections(newSelections);\n }\n onSelectionsChange(newSelections);\n },\n [addUnconfirmedAdditions, isOpen, onSelectionsChange]\n );\n\n // Whenever the selections change, and we are closed, we need to reflect the changed selections\n // in the latestConfirmedSelections state\n // The side-effect of re-running this when isOpen changes is fine\n useEffect(() => {\n if (!isOpen) {\n setLatestConfirmedSelections(selections);\n }\n }, [selections, isOpen]);\n\n return {\n combinedCurrentSelections,\n dropdownItems,\n isSelectionDisabled,\n addUnconfirmedAdditions,\n handleSelectionsChange,\n handleOpenChange,\n };\n};\n","import type React from 'react';\nimport { useCallback, useEffect, useRef, type FocusEvent, type KeyboardEvent, type MouseEvent } from 'react';\nimport styled, { useTheme } from 'styled-components';\nimport { useDynamicCallback } from '../../../hooks';\nimport { Z_INDEX } from '../../../styles';\nimport { Button, InternalButtonSpan } from '../../Button';\nimport type { FilterableSelectProperty } from '../../Filters';\nimport { FilterCheckboxDropdown } from '../../Filters/FilterBuilder/RHS/FilterCheckboxDropdown';\nimport { DEFAULT_FILTER_BUILDER_DROPDOWN_WIDTH } from '../../Filters/FilterBuilder/tokens';\nimport { OverflowItemsBox } from '../../OverflowItemsBox';\nimport { useDropdownPopper } from '../Dropdown';\nimport { useMultiSelectAutocomplete } from '../MultiSelect/useMultiselectAutocomplete';\nimport { useMultiSelectSelectionManager } from '../MultiSelect/useMultiSelectSelectionManager';\n\ntype MultiSelectCheckboxDropdownProps = {\n prefix: React.ReactNode;\n defaultLabel?: React.ReactNode;\n property: FilterableSelectProperty;\n selections: T[];\n onSelectionsChange: (newSelections: T[]) => void;\n onDropdownTabOut?: (event: KeyboardEvent) => void;\n};\n\n/** Dropdown component to support MultiSelect scenarios.\n * - This is distinct from the MultiSelect component as it doesn't involve chip selection (the box is a simple managed control button),\n * and is based on the PropertyMultiSelectList implementation used in filters */\nexport function MultiSelectCheckboxDropdown({\n prefix,\n defaultLabel = 'Select...',\n property,\n selections,\n onSelectionsChange,\n}: MultiSelectCheckboxDropdownProps) {\n const theme = useTheme();\n const { getOptionLabel } = property;\n const inputRef = useRef(null);\n const refElement = useRef(null);\n\n const { dropdownItems, handleSelectionsChange, handleOpenChange } = useMultiSelectSelectionManager({\n property,\n selections,\n onSelectionsChange,\n });\n\n const { autocompleteOutput, multipleSelectionOutput } = useMultiSelectAutocomplete({\n selections: selections,\n items: dropdownItems,\n initialSortByLabel: false,\n getLabel: getOptionLabel,\n getDescription: property.getOptionDescription,\n getGroup: property.getOptionGroup,\n groupSorter: property.groupSorter,\n onChange: handleSelectionsChange,\n onIsOpenChange: handleOpenChange,\n clearInputAfterSelection: false,\n removeItemOnInputBackspace: false,\n highlightInputTextAfterSelection: true,\n inputRef,\n matchThreshold: property.matchThreshold,\n });\n\n const { isOpen, openMenu, closeMenu } = autocompleteOutput;\n\n const dropdownPopper = useDropdownPopper({\n isOpen,\n referenceElement: refElement.current,\n dropdownWidth: property.dropdownOptions?.dropdownWidth ?? DEFAULT_FILTER_BUILDER_DROPDOWN_WIDTH,\n dropdownPlacement: 'bottom-start',\n onClickOutside: closeMenu,\n });\n\n const updatePopperPosition = dropdownPopper.popper.update;\n\n useEffect(() => {\n if (selections) {\n // every time `the clauses change, we update the popper position\n updatePopperPosition && updatePopperPosition();\n }\n }, [selections, updatePopperPosition]);\n\n const handleOpenClick = useCallback(\n (e: MouseEvent | FocusEvent) => {\n e.preventDefault();\n updatePopperPosition && updatePopperPosition();\n openMenu();\n setTimeout(() => inputRef.current?.focus(), 0);\n },\n [openMenu, updatePopperPosition]\n );\n\n const handleClearAll = useCallback(() => {\n onSelectionsChange([]);\n }, [onSelectionsChange]);\n\n const handleSelectAll = useCallback(() => {\n onSelectionsChange(property.options);\n }, [onSelectionsChange, property.options]);\n\n const getOptionsLabel = useDynamicCallback(getOptionLabel);\n\n return (\n <>\n handleOpenClick(e)}\n flex=\"auto\"\n width=\"100%\"\n isOpen={isOpen}\n >\n \n \n \n \n );\n}\n\nconst MultiSelectCheckboxDropdownButton = styled(Button)<{\n isOpen: boolean;\n}>`\n padding: ${({ theme }) => `${theme.spacingSmall}px ${theme.spacingDefault}px`};\n justify-content: flex-start;\n text-align: left;\n ${({ theme, isOpen }) => {\n return isOpen\n ? `\n border-color: ${theme.borderColorSelectHover};\n background: ${theme.backgroundSelectHover};\n color: ${theme.colorTextImportant};\n `\n : ``;\n }};\n\n > ${InternalButtonSpan} {\n display: unset;\n flex: auto;\n }\n`;\n","import type { FormControlProps } from '../../Form/types';\nimport { Input } from '../Input';\nimport { useNumberInput } from './useNumberInput';\nexport { useNumberInput } from './useNumberInput';\n\nexport const NumberInput = (props: NumberInputProps) => {\n const inputProps = useNumberInput(props);\n\n return ;\n};\n\nexport type NumberInputProps = {\n value: string;\n onChange: (value: string) => void;\n minIncrement?: string;\n defaultIncrement?: string;\n largeIncrement?: string;\n min?: string;\n max?: string;\n} & Omit, 'onChange' | 'value' | 'type' | 'step' | 'security'>; // Instead of step, use minIncrement, defaultIncrement and largeIncrement\n","import styled from 'styled-components';\nimport { FormControlSizes } from '../types';\nimport { getFontSize } from '../utils';\n\nfunction getRadioButtonSize(size = FormControlSizes.Default): number {\n switch (size) {\n case FormControlSizes.Tiny:\n case FormControlSizes.Small:\n case FormControlSizes.Default: {\n return 16;\n }\n default: {\n return 20;\n }\n }\n}\n\nexport const RadioButton = styled.span<{ checked?: boolean; disabled?: boolean; size?: FormControlSizes }>`\n vertical-align: text-top;\n position: relative;\n display: inline-block;\n width: ${({ size }) => getRadioButtonSize(size)}px;\n height: ${({ size }) => getRadioButtonSize(size)}px;\n border-radius: 999em;\n flex: 0 0 auto;\n\n div {\n background: ${({ checked, theme }) => (checked ? theme.backgroundRadiobuttonChecked : theme.backgroundRadiobutton)};\n position: absolute;\n border: 1px solid\n ${({ checked, theme }) => (checked ? theme.borderColorRadiobuttonChecked : theme.borderColorRadiobutton)};\n color: white;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n width: ${({ size }) => getRadioButtonSize(size)}px;\n height: ${({ size }) => getRadioButtonSize(size)}px;\n transition: border 0.15s ease, background 0.15s ease;\n border-radius: 999em;\n }\n\n input {\n opacity: 0;\n width: 100%;\n height: 100%;\n &:focus ~ div {\n border-width: 2px;\n border-color: ${({ theme }) => theme.borderColorRadiobuttonFocus};\n }\n }\n`;\n\nexport const RadioButtonLabel = styled.label<{ checked?: boolean; disabled?: boolean; size?: FormControlSizes }>`\n display: inline-block;\n margin-left: ${({ theme, size = FormControlSizes.Default }) => (theme.spacingDefault * size) / 2}px;\n color: ${({ theme }) => theme.colorTextImportant};\n font-size: ${({ size, theme }) => getFontSize(theme, size)}rem;\n transition: color 0.25s ease;\n white-space: normal;\n line-height: 1;\n vertical-align: middle;\n flex: 1 1 auto;\n`;\n\nexport const RadiobuttonWrapper = styled.label<{ disabled?: boolean; checked?: boolean }>`\n ${p =>\n p.disabled &&\n `\n opacity: 0.4;\n &:hover,\n &:hover input:disabled {\n cursor: not-allowed\n }\n `}\n white-space: nowrap;\n position: relative;\n display: flex;\n align-items: center;\n\n // thicker radio button border on element hover\n &:hover {\n span > div {\n border-width: 2px;\n background: ${({ theme, checked }) =>\n checked ? theme.backgroundRadiobuttonCheckedHover : theme.backgroundRadiobuttonHover};\n }\n }\n`;\n\nexport const RadioButtonBullet = styled.span<{ active?: boolean; size?: FormControlSizes }>`\n width: ${({ theme, size = FormControlSizes.Default }) => getRadioButtonSize(size) - theme.spacingSmall * size}px;\n height: ${({ theme, size = FormControlSizes.Default }) => getRadioButtonSize(size) - theme.spacingSmall * size}px;\n margin: ${({ theme, size = FormControlSizes.Default }) => (theme.spacingSmall * size) / 2}px;\n position: absolute;\n top: 0;\n left: 0;\n background: ${({ theme }) => theme.colorRadiobuttonDot};\n border-radius: 50%;\n display: inline-block;\n transition: opacity 300ms ease;\n opacity: ${({ active }) => (active ? 1 : 0)};\n`;\n","import type { InputHTMLAttributes } from 'react';\nimport { RadioButtonBullet, RadioButtonLabel, RadioButton as RadioButtonStyle, RadiobuttonWrapper } from './styles';\n\nimport { v4 as uuid } from 'uuid';\n\nexport function RadioButton({\n id,\n checked,\n disabled,\n name,\n size,\n children,\n onChange,\n ...props\n}: InputHTMLAttributes) {\n const forId = `${id ? id : name}${uuid()}`;\n return (\n \n \n \n
\n \n \n \n {children}\n \n \n );\n}\n\nRadioButton.defaultProps = {\n isDisabled: false,\n};\n","import { useCombobox } from 'downshift';\nimport { useCallback, useEffect } from 'react';\nimport { isCypressWindow } from '../../../utils/envCypress';\nimport type { UseAutocompleteOutput, UseAutocompleteProps } from '../Autocomplete/types';\nimport { getLabelWrapper, useAutocomplete } from '../Autocomplete/useAutocomplete';\nimport type { UseSearchSelectProps } from './types';\n\n/**\n * A wrapper of useAutocomplete which select-ifies the behavior.\n */\nexport function useSearchSelect(props: UseSearchSelectProps): UseAutocompleteOutput {\n const {\n getLabel,\n inputRef,\n selection,\n onChange,\n closeDropdownOnItemSelection = true,\n clearInputOnSelection = false,\n enableTabSelect = true,\n scrollSelectionIntoViewIndex,\n } = props;\n\n const { onIsOpenChange, ...restOfProps } = props;\n\n const onSelectedItemChange = useCallback['onSelectedItemChange']>>(\n ({ selectedItem, type, highlightedIndex }) => {\n const haveSelectedItem = selectedItem != null;\n const selectedItemIsDisabled = haveSelectedItem && props.isItemDisabled?.(selectedItem);\n const shouldReturn = !haveSelectedItem || selectedItemIsDisabled;\n if (shouldReturn) {\n return;\n }\n // When we press tab downshift automatically triggers onSelectItemChange, the only caveat is that highlightedIndex is -1\n // So we simply need to ignore the highlightedIndex for this specific case (not early return) and proceed on selecting the item\n if (type !== useCombobox.stateChangeTypes.ItemClick) {\n // Lets only do this when we are 100% sure the change was not caused by a click\n // https://talostrading.atlassian.net/browse/DEAL-4207 - outlines a bug where if the\n // first item in a list is disabled, and user clicks any item in list, it would not register.\n const shouldIgnoreTabSelect = !enableTabSelect && highlightedIndex === -1;\n const isTabSelectInvalid =\n enableTabSelect && highlightedIndex === -1 && type !== useCombobox.stateChangeTypes.InputBlur;\n if (shouldIgnoreTabSelect || isTabSelectInvalid) {\n return;\n }\n }\n\n onChange(selectedItem);\n if (closeDropdownOnItemSelection) {\n // Also blur the input on item selection to push the tab index forward to next form element\n inputRef.current?.blur();\n }\n },\n [closeDropdownOnItemSelection, enableTabSelect, inputRef, onChange, props]\n );\n const autocomplete = useAutocomplete({\n stateReducer: (state, action) => {\n switch (action.type) {\n case useCombobox.stateChangeTypes.InputClick:\n return {\n ...action.changes,\n // For backward compatibility with earlier combobox behavior,\n // keep the highlighted index and open state when the input is clicked\n highlightedIndex: state.highlightedIndex,\n isOpen: state.isOpen,\n };\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n case useCombobox.stateChangeTypes.ItemClick: {\n const isProgrammaticChange = action.type === useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem;\n\n return {\n ...action.changes,\n // If programmatic changes, keep state, else close if we are configured to close on item selection\n isOpen: isProgrammaticChange ? state.isOpen : closeDropdownOnItemSelection ? false : true,\n highlightedIndex: closeDropdownOnItemSelection ? action.changes.highlightedIndex : state.highlightedIndex, // if we're not closing the dropdown, leave the highlighted index as is!\n inputValue: clearInputOnSelection ? '' : action.changes.inputValue ?? state.inputValue, // if action inputvalue is undefined, go with the state's inputValue\n };\n }\n case useCombobox.stateChangeTypes.FunctionOpenMenu: {\n const nextState = {\n ...action.changes,\n inputValue: '',\n };\n if (scrollSelectionIntoViewIndex) {\n nextState.highlightedIndex = state.selectedItem\n ? scrollSelectionIntoViewIndex(props.items, state.selectedItem)\n : 0;\n }\n return nextState;\n }\n case useCombobox.stateChangeTypes.InputChange: {\n return {\n ...action.changes,\n highlightedIndex: 0, // reset the highlightedIndex every time the input value changes\n };\n }\n case useCombobox.stateChangeTypes.MenuMouseLeave: {\n return {\n ...action.changes,\n highlightedIndex: state.highlightedIndex, // Do not scroll to top if mouse leaves input\n };\n }\n case useCombobox.stateChangeTypes.FunctionSetInputValue: {\n // This action seems to be called when downshift tries to programmatically set the inputValue to be the label of the selectedItem.\n // In our searchselects, we never want to prime the input field value to be that of the selected item.\n return state;\n }\n default:\n return action.changes;\n }\n },\n selectedItem: selection ?? null, // this component is strictly controlled, we do not allow selectedItem to be undefined.\n itemToString: item => (item ? `${getLabelWrapper(getLabel, item)}` : ''),\n onSelectedItemChange: selectedItemChangeProps => {\n // HACK (setTimeout wrapper) - In Cypress only, Downshift and Immer (RTK) don't play well together on\n // immediate calls after Redux v9 update causing infinite item change calls to onSelectedItemChange\n // - Seen in TreasuryManagement.cy.tsx test: 'allows you to trade your spot positions (balances)'\n // https://github.com/downshift-js/downshift/issues/1597\n // https://github.com/downshift-js/downshift/issues/1511#issuecomment-1730429456\n if (isCypressWindow(window)) {\n setTimeout(() => onSelectedItemChange(selectedItemChangeProps), 0);\n return;\n }\n onSelectedItemChange(selectedItemChangeProps);\n },\n onIsOpenChange: changes => {\n // Whenever isopen changes, if we're changing to opened, we always clear the input field and focus it.\n if (changes.isOpen) {\n setInputValue('');\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n onIsOpenChange?.(changes);\n },\n ...restOfProps,\n });\n\n const { setInputValue } = autocomplete;\n\n useEffect(() => {\n if (props.selection == null) {\n setInputValue('');\n }\n }, [props.selection, setInputValue]);\n\n return autocomplete;\n}\n","import type { UseComboboxStateChange } from 'downshift';\nimport { isEqual } from 'lodash';\nimport { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useRef, type KeyboardEvent } from 'react';\nimport { defineMessages, useIntl } from 'react-intl';\nimport { useTheme } from 'styled-components';\nimport { useDynamicCallback } from '../../../hooks/useDynamicCallback';\nimport { EMPTY_OBJECT } from '../../../utils/empty';\nimport { AutocompleteDropdown, FuseAutocompleteResult } from '../AutocompleteDropdown';\nimport type { AutocompleteDropdownProps } from '../AutocompleteDropdown/types';\nimport { BaseSelect } from '../BaseSelect';\nimport { useDropdownPopper } from '../Dropdown/useDropdownPopper';\nimport { Input } from '../Input';\nimport { FormControlSizes } from '../types';\nimport { SearchSelectWrapper } from './styles';\nimport type { SearchSelectProps, SearchSelectRef } from './types';\nimport { useSearchSelect } from './useSearchSelect';\n\nconst messages = defineMessages({\n search: {\n defaultMessage: 'Search...',\n id: 'Form.SearchSelect.search',\n },\n});\n\nexport function getStringLabel(item: string) {\n return item;\n}\n\n/** Returns DisplayName ?? Name */\nexport function getDisplayNameOrNameLabel(item: { DisplayName?: string; Name: string }) {\n return item.DisplayName ?? item.Name;\n}\n\n/** Warning - be careful NOT to confuse this with **SymbolSelector** - this is specifically for generic dropdowns */\nconst SearchSelectInner = (props: SearchSelectProps, ref: React.ForwardedRef>) => {\n const { baseSize } = useTheme();\n const {\n id,\n options,\n selection,\n getLabel,\n getDescription,\n onChange,\n onBlur,\n isItemDisabled,\n disabled = false,\n readOnly = false,\n placeholder,\n searchPlaceholder,\n showClear = false,\n initialSortByLabel = true,\n equalityChecker = isEqual,\n matchThreshold,\n prefix,\n suffix,\n size = FormControlSizes.Default,\n invalid,\n touched,\n dropdownContentRef: incomingDropdownContentRef,\n dropdownWidth,\n dropdownSize = props.size || FormControlSizes.Default,\n dropdownPlacement = 'bottom',\n variant,\n portalize,\n autoFocus,\n getGroup,\n maxHeight,\n groupMaxHeight,\n groupSorter,\n RenderGroupHeader,\n renderResult,\n showDropdownSearch = true,\n itemSize = getDropdownItemHeight(baseSize, dropdownSize),\n initialIsOpen,\n selectorStyle,\n fuseDistance,\n showDescriptionInButton,\n gridTemplateColumns,\n additionalSearchKeys,\n showTitle,\n onIsOpenChange,\n dropdownSuffix,\n centered,\n showChevron,\n searchPrefix,\n onClearClick,\n onInputValueChange,\n onStateChange,\n sortFilterOverride,\n scrollSelectionIntoViewIndex,\n customButtonLayout,\n showGroupTabs,\n ...restOfProps\n } = props;\n\n const dropdownReferenceElement = useRef(null);\n const defaultDropdownContentRef = useRef(null);\n const dropdownContentRef = incomingDropdownContentRef ?? defaultDropdownContentRef;\n const inputRef = useRef(null);\n\n const handleOpenChange = useDynamicCallback((changes: UseComboboxStateChange) => {\n if (changes.isOpen == null) {\n return;\n }\n\n onIsOpenChange?.(Object.assign(changes, { isOpen: changes.isOpen }));\n\n if (changes.isOpen && showDropdownSearch) {\n inputRef.current?.focus();\n } else if (!changes.isOpen) {\n dropdownReferenceElement.current?.focus();\n }\n });\n\n const searchSelect = useSearchSelect({\n id,\n selection,\n items: options,\n onInputValueChange,\n onStateChange,\n inputRef,\n initialSortByLabel,\n onChange,\n getLabel,\n getDescription,\n isItemDisabled,\n matchThreshold,\n fuseDistance,\n getGroup,\n groupSorter,\n itemSize,\n onIsOpenChange: handleOpenChange,\n initialIsOpen,\n additionalSearchKeys,\n sortFilterOverride,\n scrollSelectionIntoViewIndex,\n });\n const { reset, getInputProps, isOpen, openMenu } = searchSelect;\n const { formatMessage } = useIntl();\n useImperativeHandle(\n ref,\n () => {\n return { openMenu };\n },\n [openMenu]\n );\n\n const dropdownPopper = useDropdownPopper({\n isOpen,\n dropdownWidth,\n dropdownPlacement,\n referenceElement: dropdownReferenceElement.current ?? null,\n dropdownContentRef,\n });\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n reset();\n e.preventDefault();\n\n // We allow the implementer to handle the clear click event as they wish.\n if (onClearClick) {\n onClearClick(e);\n } else {\n onChange(undefined);\n }\n },\n [reset, onChange, onClearClick]\n );\n\n // React 18 timing synchoronizes state changes, so we (sometimes) need to wait a tick for isOpen to get changed\n // - This was needed to certain auto-opening (double) dropdowns worked as expected (https://github.com/talostrading/Ava-UI/pull/6271#discussion_r1667075934)\n // - TODO: this should be rewritten to avoid the in-render ref change, but it fixes this for now\n const isOpenRef = useRef(isOpen);\n if (isOpenRef.current !== isOpen) {\n isOpenRef.current = isOpen;\n }\n const handleSelectClick = useDynamicCallback(() => {\n requestAnimationFrame(() => {\n if (!isOpenRef.current && !readOnly && !disabled) {\n openMenu();\n }\n });\n });\n\n const handleSelectKeyDown = useCallback(\n (e: KeyboardEvent) => {\n // If the user is focusing the select and starts typing alpha numeric chars, open the dropdown for them\n if (/\\b[a-zA-Z0-9]\\b/.test(e.key) && !isOpen) {\n handleSelectClick();\n } else if (e.key === 'Enter' || e.key === ' ') {\n // Prevent default here, otherwise the potential space click can cause the search input field to start with a space entered\n e.preventDefault();\n handleSelectClick();\n }\n },\n [handleSelectClick, isOpen]\n );\n\n const handleDropdownKeyDown = useDynamicCallback((e: KeyboardEvent) => {\n // We have to catch and stop the dropdown key events from propagating and hitting the SearchSelectWrapper\n // onKeyDown event handlers\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape') {\n // escape is included so any drawer parent is not closed\n e.stopPropagation();\n }\n });\n\n const handleBlur = useDynamicCallback((e: React.FocusEvent) => {\n // Check if the target focus is being shifted to is either the search select wrapper, is within the wrapper,\n // or is within the dropdown (the dropdown might be portalized so we have to explicitly check that too)\n if (\n e.relatedTarget === inputRef.current ||\n inputRef.current?.contains(e.relatedTarget) ||\n dropdownContentRef.current?.contains(e.relatedTarget)\n ) {\n return;\n }\n\n onBlur?.();\n });\n\n const initialRender = useRef(true);\n useEffect(() => {\n if (autoFocus && initialRender.current) {\n openMenu();\n initialRender.current = false;\n }\n }, [autoFocus, openMenu]);\n\n const defaultRenderResult: AutocompleteDropdownProps['renderResult'] = useCallback((item, disabled) => {\n return FuseAutocompleteResult(item, disabled);\n }, []);\n\n return (\n \n \n \n }\n />\n \n );\n};\n\n/**\n * Dropdown component (using downshiftjs) that allows for searching and selecting items from a list of options.\n * - has support for custom tab-based groups\n *\n * Warning: Be careful NOT to confuse this with **SymbolSelector**, which uses useSearchSelect internally and sounds similar - it's related but not the same */\nexport const SearchSelect = memo(forwardRef(SearchSelectInner)) as (\n props: SearchSelectProps & { ref?: React.ForwardedRef }\n) => ReturnType;\n\n/** This function calculates the search select's item size. Its kinda arbitrary so this is being exposed so the logic can be reused in other implementations */\nexport function getDropdownItemHeight(baseSize: number, dropdownSize: number) {\n return (baseSize * 2.5 * dropdownSize) / 2;\n}\n","import { forwardRef } from 'react';\nimport { useDynamicCallback } from '../../../hooks/useDynamicCallback';\nimport type { FormControlProps } from '../types';\nimport { TextAreaWrapper } from './styles';\n\nexport const TextArea = forwardRef<\n HTMLTextAreaElement,\n FormControlProps & { rows?: number; onEnter?: () => void }\n>(\n (\n {\n style,\n className,\n prefix,\n suffix,\n invalid,\n touched,\n disabled,\n value,\n type,\n inline,\n width,\n height,\n autoComplete = 'off',\n autoCorrect = 'off',\n autoCapitalize = 'off',\n spellCheck = false,\n wrapperRef,\n onEnter,\n ...props\n },\n ref\n ) => {\n // Call onEnter if provided and we're not holding shift\n const onKeyDown = useDynamicCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && onEnter != null) {\n e.preventDefault();\n onEnter();\n }\n });\n\n return (\n \n {prefix}\n \n {suffix}\n \n );\n }\n);\n","import styled, { css } from 'styled-components';\n\nimport type { ReactNode } from 'react';\nimport { Label } from '../styles';\nimport { FormControlSizes } from '../types';\nimport { getFontSize } from '../utils';\n\nexport type ToggleWrapperProps = {\n size?: FormControlSizes;\n label?: ReactNode;\n checked: boolean;\n disabled?: boolean;\n};\n\nexport const ToggleSwitchWrapper = styled.div`\n width: 24px;\n background: ${({ theme }) => theme.backgroundToggle};\n border-radius: 999em;\n padding: 0 2px;\n transition: background 150ms, opacity 200ms;\n`;\n\nexport const ToggleSwitch = styled.div`\n margin: 1px auto;\n background: ${({ theme }) => theme.backgroundToggleSwitch};\n border-radius: 100%;\n transition: transform 300ms ease, background 150ms;\n`;\n\nexport const ToggleWrapper = styled.div`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n ${ToggleSwitchWrapper} {\n width: ${({ theme, size = FormControlSizes.Default }) => theme.baseSize * size}px;\n }\n\n ${ToggleSwitch} {\n height: ${({ theme, size = FormControlSizes.Default }) => (theme.baseSize * size) / 2}px;\n width: ${({ theme, size = FormControlSizes.Default }) => (theme.baseSize * size) / 2}px;\n transform: translateX(-${({ theme, size = FormControlSizes.Default }) => (theme.baseSize * size) / 4 - 1}px);\n }\n\n ${Label} {\n white-space: nowrap;\n cursor: pointer;\n font-size: ${({ theme, size }) => getFontSize(theme, size)}rem;\n color: ${({ checked, theme }) => (checked ? theme.colorTextAttention : theme.colorTextDefault)};\n &:first-child {\n margin-right: ${({ theme }) => theme.spacingSmall}px;\n }\n transition: opacity 200ms;\n }\n\n ${({ checked, theme, size = FormControlSizes.Default }) =>\n checked &&\n `\n ${ToggleSwitch} {\n transform: translateX(${(theme.baseSize * size) / 4 - 1}px);\n background: ${theme.backgroundToggleSwitchChecked};\n }\n\n ${ToggleSwitchWrapper} {\n background: ${theme.backgroundToggleChecked};\n }\n `};\n\n ${({ disabled }) =>\n disabled\n ? css`\n ${ToggleSwitchWrapper}, ${Label} {\n opacity: 0.35;\n }\n &:hover {\n cursor: not-allowed;\n }\n `\n : css`\n &:hover {\n cursor: pointer;\n }\n `}\n`;\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Tooltip, type TooltipProps } from '../../Tooltip';\nimport { Label } from '../styles';\nimport { ToggleSwitch, ToggleSwitchWrapper, ToggleWrapper, type ToggleWrapperProps } from './styles';\n\nexport * from './styles';\n\nexport const Toggle = styled(({ label, checked, disabled, tooltip, onChange, tooltipProps, ...props }: ToggleProps) => {\n return (\n !disabled && onChange(!checked)}\n disabled={disabled}\n checked={checked}\n {...props}\n >\n {label && (\n <>\n {tooltip ? (\n \n \n \n ) : (\n \n )}\n \n )}\n \n \n \n \n );\n})``;\n\nexport interface ToggleProps extends Omit {\n /** Tooltip text/component to show */\n tooltip?: ReactNode;\n /** Extra props from {@link TooltipProps} - the other {@link tooltip} prop takes the priority for specified display, if provided */\n tooltipProps?: Omit;\n\n onChange(value: boolean): void;\n}\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { Checkbox } from '../Form';\n\nexport interface AgGridCheckboxProps extends ICellRendererParams {\n disabled?: boolean;\n}\n\nexport const AgGridCheckbox = ({ value, setValue, disabled }: AgGridCheckboxProps) => {\n return (\n
\n setValue?.(!value)} />\n
\n );\n};\n","// THIS FILE WAS GENERATED BY cryptoicons-parser.ts, DO NOT EDIT MANUALLY.\nimport type { SVGProps } from 'react';\n\nexport function CurrencyIcon$PAC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIcon0XBTC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIcon1INCH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIcon2GIVE(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconAAVE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconABT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconACT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconACTN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconADA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconADD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconADX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAEON(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconAEUR(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconAGI(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconAGRS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAION(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconALGO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAMB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAMP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAMPL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconANKR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconANT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAPE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAPEX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAPPC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconARDR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconARG(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconARK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconARN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconARNX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconARY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAST(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconATLAS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconATM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconATOM(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconAUDR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAURY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAUTO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAVAX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconAYWA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBAB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBAL(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBAND(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBAT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBAY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCBC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCH(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCIO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBCPT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBDL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBEAM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBELA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBIX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBLCN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBLK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBLOCK(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBLZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBNB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBNTY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBOOTY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBOS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBPT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBQ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBRD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBSD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBSV(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTCD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTCH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBTCP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTCZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTDX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBTG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBTT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconBTX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBURST(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconBZE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCALL(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCDN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCDT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCENZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCHAIN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCHAT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCHIPS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCHSB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCHZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCIX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCLAM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCLOAK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCMM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCMT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCND(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCNX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCNY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCOB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCOLX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCOMP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCOQUI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCRED(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCRPT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCRV(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCRW(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCTR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconCTXC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconCVC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDAI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDASH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconDAT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDATA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDBC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDCN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDCR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDEEZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDENT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDEW(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDGB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDGD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDLT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDOCK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDOGE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDOT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDRGN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconDROP(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconDTA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconDTH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconDTR(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconEBST(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconECA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEDG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEDO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEDOGE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconELA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconELEC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconELF(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconELIX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconELLA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEMB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEMC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEMC2(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconENG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconENJ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconENTRP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEON(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconEOP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEOS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEQLI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEQUA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconETC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconETH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconETHOS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconETN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconETP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEUR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEVX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEXMO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconEXP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFAIR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFCT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFIDA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconFIL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFJC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconFLDC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFLO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFLUX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconFSN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFTC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFUEL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconFUN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGAME(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGAS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGBP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGBX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGBYTE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGENERIC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGIN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconGLXT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGMR(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconGMT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconGNO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGOLD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGRC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGRIN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGRS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGRT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconGSC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGTO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGUP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGUSD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGVT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGXS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconGZR(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconHIGHT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHNS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHODL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHOT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHPB(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconHSR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconHTML(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHUC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHUSD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconHUSH(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconICN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconICP(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconICX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconIGNIS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconILK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconINK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconINS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconION(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconIOP(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconIOST(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconIOTX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconIQ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconITC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconJNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconJPY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconKCS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconKIN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconKLOWN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconKMD(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconKNC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconKRB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconKSM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLBC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLEND(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLEO(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconLINK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLKK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLOOM(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconLPT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLRC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLSK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLTC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconLUN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMAID(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMANA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMATIC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMAX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMCAP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMCO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMDA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMDS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMED(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMEETONE(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMFT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMIOTA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMITH(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMKR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMLN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMNX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMNZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMOAC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMOD(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMONA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMSR(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMTH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconMTL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMUSIC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconMZC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNANO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNAS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNAV(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNCASH(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNDZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNEBL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNEO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNEOS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNEU(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconNEXO(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconNGC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNIO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNKN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNLC2(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNLG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNMC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNMR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNPXS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconNTBC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconNULS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNXS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconNXT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOAX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOMG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOMNI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconONE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconONG(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconONT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOOT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOST(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconOX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOXT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconOXY(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconPART(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPASC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPASL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPAX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPAXG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPAY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPAYX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconPINK(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconPIRL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPIVX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPLR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOLIS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOLY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPOWR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPPC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPPP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPPT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPRE(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconPRL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPUNGO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconPURA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQASH(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQIWI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQLC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQNT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconQRL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQSP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconQTUM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRADS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRAP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRAY(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconRCN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRDD(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconRDN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconREN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconREP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconREPV2(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconREQ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRHOC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRIC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRISE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRLC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRPX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRUB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRVN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconRYO(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSAFE(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSAFEMOON(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSAI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSALT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSAN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSAND(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSBD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSBERBANK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSER(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSHIFT(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSIB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSIN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSKL(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSKY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSLR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSLS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSMART(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSNGLS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSNM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSNX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSOC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconSOL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSPACEHBIT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSPANK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSPHTX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSRN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTAK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTART(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTEEM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTORJ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTORM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTOX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTQ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTRAT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSTX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSUB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSUMO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSUSHI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconSYS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTAAS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTAU(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTBX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTEL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTEN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTERN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTGCH(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconTHETA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTIX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTKN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTKS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconTNB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTNC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTNT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTOMO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTPAY(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconTRIG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTRTL(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconTRX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconTUSD(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconTZC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconUBQ(props: SVGProps) {\n return (\n \n \n \n \n \n \n );\n}\nexport function CurrencyIconUMA(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconUNI(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconUNITY(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconUSD(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconUSDC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconUSDT(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconUTK(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVERI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVET(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVIA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVIB(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVIBE(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVIVO(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVRC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVRSC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVTC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconVTHO(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconWABI(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWAN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWAVES(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWAX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWBTC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconWGR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWICC(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconWINGS(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconWPR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconWTC(props: SVGProps) {\n return (\n \n \n \n \n \n \n );\n}\nexport function CurrencyIconX(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconXAS(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXBC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXBP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXBY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXCP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXDN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXEM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXIN(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXLM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXMCC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXMG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXMO(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconXMR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXMY(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXPA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXPM(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXPR(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXRP(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXSG(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXTZ(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXUC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXVC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconXVG(props: SVGProps) {\n return (\n \n \n \n \n \n \n );\n}\nexport function CurrencyIconXZC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconYFI(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconYOYOW(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconZCL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconZEC(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconZEL(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconZEN(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconZEST(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconZIL(props: SVGProps) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\nexport function CurrencyIconZILLA(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\nexport function CurrencyIconZRX(props: SVGProps) {\n return (\n \n \n \n \n \n );\n}\n","// THIS FILE WAS GENERATED BY cryptoicons-parser.ts, DO NOT EDIT MANUALLY.\nexport const currencyIconMap = {\n $PAC: {\n symbol: '$PAC',\n },\n '0XBTC': {\n symbol: '0XBTC',\n },\n '1INCH': {\n symbol: '1INCH',\n },\n '2GIVE': {\n symbol: '2GIVE',\n },\n AAVE: {\n symbol: 'AAVE',\n },\n ABT: {\n symbol: 'ABT',\n },\n ACT: {\n symbol: 'ACT',\n },\n ACTN: {\n symbol: 'ACTN',\n },\n ADA: {\n symbol: 'ADA',\n },\n ADD: {\n symbol: 'ADD',\n },\n ADX: {\n symbol: 'ADX',\n },\n AE: {\n symbol: 'AE',\n },\n AEON: {\n symbol: 'AEON',\n },\n AEUR: {\n symbol: 'AEUR',\n },\n AGI: {\n symbol: 'AGI',\n },\n AGRS: {\n symbol: 'AGRS',\n },\n AION: {\n symbol: 'AION',\n },\n ALGO: {\n symbol: 'ALGO',\n },\n AMB: {\n symbol: 'AMB',\n },\n AMP: {\n symbol: 'AMP',\n },\n AMPL: {\n symbol: 'AMPL',\n },\n ANKR: {\n symbol: 'ANKR',\n },\n ANT: {\n symbol: 'ANT',\n },\n APE: {\n symbol: 'APE',\n },\n APEX: {\n symbol: 'APEX',\n },\n APPC: {\n symbol: 'APPC',\n },\n ARDR: {\n symbol: 'ARDR',\n },\n ARG: {\n symbol: 'ARG',\n },\n ARK: {\n symbol: 'ARK',\n },\n ARN: {\n symbol: 'ARN',\n },\n ARNX: {\n symbol: 'ARNX',\n },\n ARY: {\n symbol: 'ARY',\n },\n AST: {\n symbol: 'AST',\n },\n ATLAS: {\n symbol: 'ATLAS',\n },\n ATM: {\n symbol: 'ATM',\n },\n ATOM: {\n symbol: 'ATOM',\n },\n AUDR: {\n symbol: 'AUDR',\n },\n AURY: {\n symbol: 'AURY',\n },\n AUTO: {\n symbol: 'AUTO',\n },\n AVAX: {\n symbol: 'AVAX',\n },\n AYWA: {\n symbol: 'AYWA',\n },\n BAB: {\n symbol: 'BAB',\n },\n BAL: {\n symbol: 'BAL',\n },\n BAND: {\n symbol: 'BAND',\n },\n BAT: {\n symbol: 'BAT',\n },\n BAY: {\n symbol: 'BAY',\n },\n BCBC: {\n symbol: 'BCBC',\n },\n BCC: {\n symbol: 'BCC',\n },\n BCD: {\n symbol: 'BCD',\n },\n BCH: {\n symbol: 'BCH',\n },\n BCIO: {\n symbol: 'BCIO',\n },\n BCN: {\n symbol: 'BCN',\n },\n BCO: {\n symbol: 'BCO',\n },\n BCPT: {\n symbol: 'BCPT',\n },\n BDL: {\n symbol: 'BDL',\n },\n BEAM: {\n symbol: 'BEAM',\n },\n BELA: {\n symbol: 'BELA',\n },\n BIX: {\n symbol: 'BIX',\n },\n BLCN: {\n symbol: 'BLCN',\n },\n BLK: {\n symbol: 'BLK',\n },\n BLOCK: {\n symbol: 'BLOCK',\n },\n BLZ: {\n symbol: 'BLZ',\n },\n BNB: {\n symbol: 'BNB',\n },\n BNT: {\n symbol: 'BNT',\n },\n BNTY: {\n symbol: 'BNTY',\n },\n BOOTY: {\n symbol: 'BOOTY',\n },\n BOS: {\n symbol: 'BOS',\n },\n BPT: {\n symbol: 'BPT',\n },\n BQ: {\n symbol: 'BQ',\n },\n BRD: {\n symbol: 'BRD',\n },\n BSD: {\n symbol: 'BSD',\n },\n BSV: {\n symbol: 'BSV',\n },\n BTC: {\n symbol: 'BTC',\n },\n BTCD: {\n symbol: 'BTCD',\n },\n BTCH: {\n symbol: 'BTCH',\n },\n BTCP: {\n symbol: 'BTCP',\n },\n BTCZ: {\n symbol: 'BTCZ',\n },\n BTDX: {\n symbol: 'BTDX',\n },\n BTG: {\n symbol: 'BTG',\n },\n BTM: {\n symbol: 'BTM',\n },\n BTS: {\n symbol: 'BTS',\n },\n BTT: {\n symbol: 'BTT',\n },\n BTX: {\n symbol: 'BTX',\n },\n BURST: {\n symbol: 'BURST',\n },\n BZE: {\n symbol: 'BZE',\n },\n CALL: {\n symbol: 'CALL',\n },\n CC: {\n symbol: 'CC',\n },\n CDN: {\n symbol: 'CDN',\n },\n CDT: {\n symbol: 'CDT',\n },\n CENZ: {\n symbol: 'CENZ',\n },\n CHAIN: {\n symbol: 'CHAIN',\n },\n CHAT: {\n symbol: 'CHAT',\n },\n CHIPS: {\n symbol: 'CHIPS',\n },\n CHSB: {\n symbol: 'CHSB',\n },\n CHZ: {\n symbol: 'CHZ',\n },\n CIX: {\n symbol: 'CIX',\n },\n CLAM: {\n symbol: 'CLAM',\n },\n CLOAK: {\n symbol: 'CLOAK',\n },\n CMM: {\n symbol: 'CMM',\n },\n CMT: {\n symbol: 'CMT',\n },\n CND: {\n symbol: 'CND',\n },\n CNX: {\n symbol: 'CNX',\n },\n CNY: {\n symbol: 'CNY',\n },\n COB: {\n symbol: 'COB',\n },\n COLX: {\n symbol: 'COLX',\n },\n COMP: {\n symbol: 'COMP',\n },\n COQUI: {\n symbol: 'COQUI',\n },\n CRED: {\n symbol: 'CRED',\n },\n CRPT: {\n symbol: 'CRPT',\n },\n CRV: {\n symbol: 'CRV',\n },\n CRW: {\n symbol: 'CRW',\n },\n CS: {\n symbol: 'CS',\n },\n CTR: {\n symbol: 'CTR',\n },\n CTXC: {\n symbol: 'CTXC',\n },\n CVC: {\n symbol: 'CVC',\n },\n D: {\n symbol: 'D',\n },\n DAI: {\n symbol: 'DAI',\n },\n DASH: {\n symbol: 'DASH',\n },\n DAT: {\n symbol: 'DAT',\n },\n DATA: {\n symbol: 'DATA',\n },\n DBC: {\n symbol: 'DBC',\n },\n DCN: {\n symbol: 'DCN',\n },\n DCR: {\n symbol: 'DCR',\n },\n DEEZ: {\n symbol: 'DEEZ',\n },\n DENT: {\n symbol: 'DENT',\n },\n DEW: {\n symbol: 'DEW',\n },\n DGB: {\n symbol: 'DGB',\n },\n DGD: {\n symbol: 'DGD',\n },\n DLT: {\n symbol: 'DLT',\n },\n DNT: {\n symbol: 'DNT',\n },\n DOCK: {\n symbol: 'DOCK',\n },\n DOGE: {\n symbol: 'DOGE',\n },\n DOT: {\n symbol: 'DOT',\n },\n DRGN: {\n symbol: 'DRGN',\n },\n DROP: {\n symbol: 'DROP',\n },\n DTA: {\n symbol: 'DTA',\n },\n DTH: {\n symbol: 'DTH',\n },\n DTR: {\n symbol: 'DTR',\n },\n EBST: {\n symbol: 'EBST',\n },\n ECA: {\n symbol: 'ECA',\n },\n EDG: {\n symbol: 'EDG',\n },\n EDO: {\n symbol: 'EDO',\n },\n EDOGE: {\n symbol: 'EDOGE',\n },\n ELA: {\n symbol: 'ELA',\n },\n ELEC: {\n symbol: 'ELEC',\n },\n ELF: {\n symbol: 'ELF',\n },\n ELIX: {\n symbol: 'ELIX',\n },\n ELLA: {\n symbol: 'ELLA',\n },\n EMB: {\n symbol: 'EMB',\n },\n EMC: {\n symbol: 'EMC',\n },\n EMC2: {\n symbol: 'EMC2',\n },\n ENG: {\n symbol: 'ENG',\n },\n ENJ: {\n symbol: 'ENJ',\n },\n ENTRP: {\n symbol: 'ENTRP',\n },\n EON: {\n symbol: 'EON',\n },\n EOP: {\n symbol: 'EOP',\n },\n EOS: {\n symbol: 'EOS',\n },\n EQLI: {\n symbol: 'EQLI',\n },\n EQUA: {\n symbol: 'EQUA',\n },\n ETC: {\n symbol: 'ETC',\n },\n ETH: {\n symbol: 'ETH',\n },\n ETHOS: {\n symbol: 'ETHOS',\n },\n ETN: {\n symbol: 'ETN',\n },\n ETP: {\n symbol: 'ETP',\n },\n EUR: {\n symbol: 'EUR',\n },\n EVX: {\n symbol: 'EVX',\n },\n EXMO: {\n symbol: 'EXMO',\n },\n EXP: {\n symbol: 'EXP',\n },\n FAIR: {\n symbol: 'FAIR',\n },\n FCT: {\n symbol: 'FCT',\n },\n FIDA: {\n symbol: 'FIDA',\n },\n FIL: {\n symbol: 'FIL',\n },\n FJC: {\n symbol: 'FJC',\n },\n FLDC: {\n symbol: 'FLDC',\n },\n FLO: {\n symbol: 'FLO',\n },\n FLUX: {\n symbol: 'FLUX',\n },\n FSN: {\n symbol: 'FSN',\n },\n FTC: {\n symbol: 'FTC',\n },\n FUEL: {\n symbol: 'FUEL',\n },\n FUN: {\n symbol: 'FUN',\n },\n GAME: {\n symbol: 'GAME',\n },\n GAS: {\n symbol: 'GAS',\n },\n GBP: {\n symbol: 'GBP',\n },\n GBX: {\n symbol: 'GBX',\n },\n GBYTE: {\n symbol: 'GBYTE',\n },\n GENERIC: {\n symbol: 'GENERIC',\n },\n GIN: {\n symbol: 'GIN',\n },\n GLXT: {\n symbol: 'GLXT',\n },\n GMR: {\n symbol: 'GMR',\n },\n GMT: {\n symbol: 'GMT',\n },\n GNO: {\n symbol: 'GNO',\n },\n GNT: {\n symbol: 'GNT',\n },\n GOLD: {\n symbol: 'GOLD',\n },\n GRC: {\n symbol: 'GRC',\n },\n GRIN: {\n symbol: 'GRIN',\n },\n GRS: {\n symbol: 'GRS',\n },\n GRT: {\n symbol: 'GRT',\n },\n GSC: {\n symbol: 'GSC',\n },\n GTO: {\n symbol: 'GTO',\n },\n GUP: {\n symbol: 'GUP',\n },\n GUSD: {\n symbol: 'GUSD',\n },\n GVT: {\n symbol: 'GVT',\n },\n GXS: {\n symbol: 'GXS',\n },\n GZR: {\n symbol: 'GZR',\n },\n HIGHT: {\n symbol: 'HIGHT',\n },\n HNS: {\n symbol: 'HNS',\n },\n HODL: {\n symbol: 'HODL',\n },\n HOT: {\n symbol: 'HOT',\n },\n HPB: {\n symbol: 'HPB',\n },\n HSR: {\n symbol: 'HSR',\n },\n HT: {\n symbol: 'HT',\n },\n HTML: {\n symbol: 'HTML',\n },\n HUC: {\n symbol: 'HUC',\n },\n HUSD: {\n symbol: 'HUSD',\n },\n HUSH: {\n symbol: 'HUSH',\n },\n ICN: {\n symbol: 'ICN',\n },\n ICP: {\n symbol: 'ICP',\n },\n ICX: {\n symbol: 'ICX',\n },\n IGNIS: {\n symbol: 'IGNIS',\n },\n ILK: {\n symbol: 'ILK',\n },\n INK: {\n symbol: 'INK',\n },\n INS: {\n symbol: 'INS',\n },\n ION: {\n symbol: 'ION',\n },\n IOP: {\n symbol: 'IOP',\n },\n IOST: {\n symbol: 'IOST',\n },\n IOTX: {\n symbol: 'IOTX',\n },\n IQ: {\n symbol: 'IQ',\n },\n ITC: {\n symbol: 'ITC',\n },\n JNT: {\n symbol: 'JNT',\n },\n JPY: {\n symbol: 'JPY',\n },\n KCS: {\n symbol: 'KCS',\n },\n KIN: {\n symbol: 'KIN',\n },\n KLOWN: {\n symbol: 'KLOWN',\n },\n KMD: {\n symbol: 'KMD',\n },\n KNC: {\n symbol: 'KNC',\n },\n KRB: {\n symbol: 'KRB',\n },\n KSM: {\n symbol: 'KSM',\n },\n LBC: {\n symbol: 'LBC',\n },\n LEND: {\n symbol: 'LEND',\n },\n LEO: {\n symbol: 'LEO',\n },\n LINK: {\n symbol: 'LINK',\n },\n LKK: {\n symbol: 'LKK',\n },\n LOOM: {\n symbol: 'LOOM',\n },\n LPT: {\n symbol: 'LPT',\n },\n LRC: {\n symbol: 'LRC',\n },\n LSK: {\n symbol: 'LSK',\n },\n LTC: {\n symbol: 'LTC',\n },\n LUN: {\n symbol: 'LUN',\n },\n MAID: {\n symbol: 'MAID',\n },\n MANA: {\n symbol: 'MANA',\n },\n MATIC: {\n symbol: 'MATIC',\n },\n MAX: {\n symbol: 'MAX',\n },\n MCAP: {\n symbol: 'MCAP',\n },\n MCO: {\n symbol: 'MCO',\n },\n MDA: {\n symbol: 'MDA',\n },\n MDS: {\n symbol: 'MDS',\n },\n MED: {\n symbol: 'MED',\n },\n MEETONE: {\n symbol: 'MEETONE',\n },\n MFT: {\n symbol: 'MFT',\n },\n MIOTA: {\n symbol: 'MIOTA',\n },\n MITH: {\n symbol: 'MITH',\n },\n MKR: {\n symbol: 'MKR',\n },\n MLN: {\n symbol: 'MLN',\n },\n MNX: {\n symbol: 'MNX',\n },\n MNZ: {\n symbol: 'MNZ',\n },\n MOAC: {\n symbol: 'MOAC',\n },\n MOD: {\n symbol: 'MOD',\n },\n MONA: {\n symbol: 'MONA',\n },\n MSR: {\n symbol: 'MSR',\n },\n MTH: {\n symbol: 'MTH',\n },\n MTL: {\n symbol: 'MTL',\n },\n MUSIC: {\n symbol: 'MUSIC',\n },\n MZC: {\n symbol: 'MZC',\n },\n NANO: {\n symbol: 'NANO',\n },\n NAS: {\n symbol: 'NAS',\n },\n NAV: {\n symbol: 'NAV',\n },\n NCASH: {\n symbol: 'NCASH',\n },\n NDZ: {\n symbol: 'NDZ',\n },\n NEBL: {\n symbol: 'NEBL',\n },\n NEO: {\n symbol: 'NEO',\n },\n NEOS: {\n symbol: 'NEOS',\n },\n NEU: {\n symbol: 'NEU',\n },\n NEXO: {\n symbol: 'NEXO',\n },\n NGC: {\n symbol: 'NGC',\n },\n NIO: {\n symbol: 'NIO',\n },\n NKN: {\n symbol: 'NKN',\n },\n NLC2: {\n symbol: 'NLC2',\n },\n NLG: {\n symbol: 'NLG',\n },\n NMC: {\n symbol: 'NMC',\n },\n NMR: {\n symbol: 'NMR',\n },\n NPXS: {\n symbol: 'NPXS',\n },\n NTBC: {\n symbol: 'NTBC',\n },\n NULS: {\n symbol: 'NULS',\n },\n NXS: {\n symbol: 'NXS',\n },\n NXT: {\n symbol: 'NXT',\n },\n OAX: {\n symbol: 'OAX',\n },\n OK: {\n symbol: 'OK',\n },\n OMG: {\n symbol: 'OMG',\n },\n OMNI: {\n symbol: 'OMNI',\n },\n ONE: {\n symbol: 'ONE',\n },\n ONG: {\n symbol: 'ONG',\n },\n ONT: {\n symbol: 'ONT',\n },\n OOT: {\n symbol: 'OOT',\n },\n OST: {\n symbol: 'OST',\n },\n OX: {\n symbol: 'OX',\n },\n OXT: {\n symbol: 'OXT',\n },\n OXY: {\n symbol: 'OXY',\n },\n PART: {\n symbol: 'PART',\n },\n PASC: {\n symbol: 'PASC',\n },\n PASL: {\n symbol: 'PASL',\n },\n PAX: {\n symbol: 'PAX',\n },\n PAXG: {\n symbol: 'PAXG',\n },\n PAY: {\n symbol: 'PAY',\n },\n PAYX: {\n symbol: 'PAYX',\n },\n PINK: {\n symbol: 'PINK',\n },\n PIRL: {\n symbol: 'PIRL',\n },\n PIVX: {\n symbol: 'PIVX',\n },\n PLR: {\n symbol: 'PLR',\n },\n POA: {\n symbol: 'POA',\n },\n POE: {\n symbol: 'POE',\n },\n POLIS: {\n symbol: 'POLIS',\n },\n POLY: {\n symbol: 'POLY',\n },\n POT: {\n symbol: 'POT',\n },\n POWR: {\n symbol: 'POWR',\n },\n PPC: {\n symbol: 'PPC',\n },\n PPP: {\n symbol: 'PPP',\n },\n PPT: {\n symbol: 'PPT',\n },\n PRE: {\n symbol: 'PRE',\n },\n PRL: {\n symbol: 'PRL',\n },\n PUNGO: {\n symbol: 'PUNGO',\n },\n PURA: {\n symbol: 'PURA',\n },\n QASH: {\n symbol: 'QASH',\n },\n QIWI: {\n symbol: 'QIWI',\n },\n QLC: {\n symbol: 'QLC',\n },\n QNT: {\n symbol: 'QNT',\n },\n QRL: {\n symbol: 'QRL',\n },\n QSP: {\n symbol: 'QSP',\n },\n QTUM: {\n symbol: 'QTUM',\n },\n R: {\n symbol: 'R',\n },\n RADS: {\n symbol: 'RADS',\n },\n RAP: {\n symbol: 'RAP',\n },\n RAY: {\n symbol: 'RAY',\n },\n RCN: {\n symbol: 'RCN',\n },\n RDD: {\n symbol: 'RDD',\n },\n RDN: {\n symbol: 'RDN',\n },\n REN: {\n symbol: 'REN',\n },\n REP: {\n symbol: 'REP',\n },\n REPV2: {\n symbol: 'REPV2',\n },\n REQ: {\n symbol: 'REQ',\n },\n RHOC: {\n symbol: 'RHOC',\n },\n RIC: {\n symbol: 'RIC',\n },\n RISE: {\n symbol: 'RISE',\n },\n RLC: {\n symbol: 'RLC',\n },\n RPX: {\n symbol: 'RPX',\n },\n RUB: {\n symbol: 'RUB',\n },\n RVN: {\n symbol: 'RVN',\n },\n RYO: {\n symbol: 'RYO',\n },\n SAFE: {\n symbol: 'SAFE',\n },\n SAFEMOON: {\n symbol: 'SAFEMOON',\n },\n SAI: {\n symbol: 'SAI',\n },\n SALT: {\n symbol: 'SALT',\n },\n SAN: {\n symbol: 'SAN',\n },\n SAND: {\n symbol: 'SAND',\n },\n SBD: {\n symbol: 'SBD',\n },\n SBERBANK: {\n symbol: 'SBERBANK',\n },\n SC: {\n symbol: 'SC',\n },\n SER: {\n symbol: 'SER',\n },\n SHIFT: {\n symbol: 'SHIFT',\n },\n SIB: {\n symbol: 'SIB',\n },\n SIN: {\n symbol: 'SIN',\n },\n SKL: {\n symbol: 'SKL',\n },\n SKY: {\n symbol: 'SKY',\n },\n SLR: {\n symbol: 'SLR',\n },\n SLS: {\n symbol: 'SLS',\n },\n SMART: {\n symbol: 'SMART',\n },\n SNGLS: {\n symbol: 'SNGLS',\n },\n SNM: {\n symbol: 'SNM',\n },\n SNT: {\n symbol: 'SNT',\n },\n SNX: {\n symbol: 'SNX',\n },\n SOC: {\n symbol: 'SOC',\n },\n SOL: {\n symbol: 'SOL',\n },\n SPACEHBIT: {\n symbol: 'SPACEHBIT',\n },\n SPANK: {\n symbol: 'SPANK',\n },\n SPHTX: {\n symbol: 'SPHTX',\n },\n SRN: {\n symbol: 'SRN',\n },\n STAK: {\n symbol: 'STAK',\n },\n START: {\n symbol: 'START',\n },\n STEEM: {\n symbol: 'STEEM',\n },\n STORJ: {\n symbol: 'STORJ',\n },\n STORM: {\n symbol: 'STORM',\n },\n STOX: {\n symbol: 'STOX',\n },\n STQ: {\n symbol: 'STQ',\n },\n STRAT: {\n symbol: 'STRAT',\n },\n STX: {\n symbol: 'STX',\n },\n SUB: {\n symbol: 'SUB',\n },\n SUMO: {\n symbol: 'SUMO',\n },\n SUSHI: {\n symbol: 'SUSHI',\n },\n SYS: {\n symbol: 'SYS',\n },\n TAAS: {\n symbol: 'TAAS',\n },\n TAU: {\n symbol: 'TAU',\n },\n TBX: {\n symbol: 'TBX',\n },\n TEL: {\n symbol: 'TEL',\n },\n TEN: {\n symbol: 'TEN',\n },\n TERN: {\n symbol: 'TERN',\n },\n TGCH: {\n symbol: 'TGCH',\n },\n THETA: {\n symbol: 'THETA',\n },\n TIX: {\n symbol: 'TIX',\n },\n TKN: {\n symbol: 'TKN',\n },\n TKS: {\n symbol: 'TKS',\n },\n TNB: {\n symbol: 'TNB',\n },\n TNC: {\n symbol: 'TNC',\n },\n TNT: {\n symbol: 'TNT',\n },\n TOMO: {\n symbol: 'TOMO',\n },\n TPAY: {\n symbol: 'TPAY',\n },\n TRIG: {\n symbol: 'TRIG',\n },\n TRTL: {\n symbol: 'TRTL',\n },\n TRX: {\n symbol: 'TRX',\n },\n TUSD: {\n symbol: 'TUSD',\n },\n TZC: {\n symbol: 'TZC',\n },\n UBQ: {\n symbol: 'UBQ',\n },\n UMA: {\n symbol: 'UMA',\n },\n UNI: {\n symbol: 'UNI',\n },\n UNITY: {\n symbol: 'UNITY',\n },\n USD: {\n symbol: 'USD',\n },\n USDC: {\n symbol: 'USDC',\n },\n USDT: {\n symbol: 'USDT',\n },\n UTK: {\n symbol: 'UTK',\n },\n VERI: {\n symbol: 'VERI',\n },\n VET: {\n symbol: 'VET',\n },\n VIA: {\n symbol: 'VIA',\n },\n VIB: {\n symbol: 'VIB',\n },\n VIBE: {\n symbol: 'VIBE',\n },\n VIVO: {\n symbol: 'VIVO',\n },\n VRC: {\n symbol: 'VRC',\n },\n VRSC: {\n symbol: 'VRSC',\n },\n VTC: {\n symbol: 'VTC',\n },\n VTHO: {\n symbol: 'VTHO',\n },\n WABI: {\n symbol: 'WABI',\n },\n WAN: {\n symbol: 'WAN',\n },\n WAVES: {\n symbol: 'WAVES',\n },\n WAX: {\n symbol: 'WAX',\n },\n WBTC: {\n symbol: 'WBTC',\n },\n WGR: {\n symbol: 'WGR',\n },\n WICC: {\n symbol: 'WICC',\n },\n WINGS: {\n symbol: 'WINGS',\n },\n WPR: {\n symbol: 'WPR',\n },\n WTC: {\n symbol: 'WTC',\n },\n X: {\n symbol: 'X',\n },\n XAS: {\n symbol: 'XAS',\n },\n XBC: {\n symbol: 'XBC',\n },\n XBP: {\n symbol: 'XBP',\n },\n XBY: {\n symbol: 'XBY',\n },\n XCP: {\n symbol: 'XCP',\n },\n XDN: {\n symbol: 'XDN',\n },\n XEM: {\n symbol: 'XEM',\n },\n XIN: {\n symbol: 'XIN',\n },\n XLM: {\n symbol: 'XLM',\n },\n XMCC: {\n symbol: 'XMCC',\n },\n XMG: {\n symbol: 'XMG',\n },\n XMO: {\n symbol: 'XMO',\n },\n XMR: {\n symbol: 'XMR',\n },\n XMY: {\n symbol: 'XMY',\n },\n XP: {\n symbol: 'XP',\n },\n XPA: {\n symbol: 'XPA',\n },\n XPM: {\n symbol: 'XPM',\n },\n XPR: {\n symbol: 'XPR',\n },\n XRP: {\n symbol: 'XRP',\n },\n XSG: {\n symbol: 'XSG',\n },\n XTZ: {\n symbol: 'XTZ',\n },\n XUC: {\n symbol: 'XUC',\n },\n XVC: {\n symbol: 'XVC',\n },\n XVG: {\n symbol: 'XVG',\n },\n XZC: {\n symbol: 'XZC',\n },\n YFI: {\n symbol: 'YFI',\n },\n YOYOW: {\n symbol: 'YOYOW',\n },\n ZCL: {\n symbol: 'ZCL',\n },\n ZEC: {\n symbol: 'ZEC',\n },\n ZEL: {\n symbol: 'ZEL',\n },\n ZEN: {\n symbol: 'ZEN',\n },\n ZEST: {\n symbol: 'ZEST',\n },\n ZIL: {\n symbol: 'ZIL',\n },\n ZILLA: {\n symbol: 'ZILLA',\n },\n ZRX: {\n symbol: 'ZRX',\n },\n};\n","import type { CSSProperties, ReactNode, SVGAttributes } from 'react';\nimport { useTheme, type DefaultTheme } from 'styled-components';\nimport { getCurrencyColor } from '../../hooks/';\nimport { parseColor, parseIconSize } from '../../styles';\nimport * as Icons from './imports';\nimport { currencyIconMap } from './map';\n\ntype CurrencyIconProps = {\n currency?: string;\n size?: number | string;\n style?: CSSProperties;\n color?: string;\n colorful?: boolean;\n theme?: DefaultTheme;\n stacked?: boolean;\n};\n\nexport function CurrencyIcon({\n currency = 'Placeholder',\n size = 16,\n style = { verticalAlign: 'middle', flex: '0 0 auto' },\n color,\n colorful,\n theme: passedTheme,\n stacked = false,\n ...props\n}: CurrencyIconProps) {\n const talosTheme = useTheme();\n const theme = passedTheme ?? talosTheme;\n const { colorCurrencyIcon, colorModeCurrencyIcon } = theme;\n colorful = colorful ?? colorModeCurrencyIcon === 'colorful';\n\n let parsedColor = color ? parseColor(theme, color) : colorCurrencyIcon;\n const parsedSize = parseIconSize(theme, size);\n\n const currencyItem: { symbol: string } | undefined = currencyIconMap[currency];\n\n const allIcons: { [key: string]: any } = Icons;\n const showRealIcon = !!(currencyItem && allIcons[`CurrencyIcon${currencyItem.symbol}`]);\n const Icon = showRealIcon ? allIcons[`CurrencyIcon${currencyItem.symbol}`] : undefined;\n\n const currencyColor = getCurrencyColor(currency);\n const circleFill = (colorful && currencyColor) || 'currentColor';\n\n if (circleFill !== 'currentColor') {\n parsedColor = '#fff'; // this hardcoding is correct\n }\n\n return (\n \n \n \n {Icon != null ? (\n \n ) : (\n \n {currency && currency !== 'Placeholder' ? currency[0] : ''}\n \n )}\n \n \n );\n}\n\ninterface CurrencyIconWrapperProps {\n children: ReactNode;\n stacked?: boolean;\n height: SVGAttributes['height'];\n style?: CSSProperties;\n fill: SVGAttributes['fill'];\n}\n\nconst CurrencyIconWrapper = ({ children, stacked = false, height, style, fill }: CurrencyIconWrapperProps) => {\n if (stacked) {\n return (\n \n \n \n {children}\n \n );\n }\n return <>{children};\n};\n","import { useTheme, type DefaultTheme } from 'styled-components';\nimport type { Currency } from '../../types';\nimport type { RequiredProperties } from '../../utils';\nimport { Flex } from '../Core';\nimport { CurrencyIcon } from '../CurrencyIcon';\nimport { Text } from '../Text';\n\ntype CurrencyRendererProps = {\n currencyString?: string;\n currency?: RequiredProperties, 'Description' | 'Symbol'>;\n showDescription?: boolean;\n showIcon?: boolean;\n theme?: DefaultTheme;\n iconSize?: number;\n colorful?: boolean;\n labelTextColor?: React.CSSProperties['color'] | keyof DefaultTheme;\n descriptionTextColor?: React.CSSProperties['color'] | keyof DefaultTheme;\n dataTestId?: string;\n};\n\nexport function CurrencyRenderer({\n currencyString,\n currency,\n showDescription,\n showIcon = true,\n theme,\n iconSize = 16,\n colorful,\n labelTextColor,\n descriptionTextColor,\n dataTestId,\n}: CurrencyRendererProps) {\n const hookTheme = useTheme();\n const themeToUse = theme ?? hookTheme;\n const { fontSizeTiny, colorTextSubtle, colorTextImportant } = themeToUse;\n\n const labelColor = labelTextColor ?? colorTextImportant;\n const descriptionColor = descriptionTextColor ?? colorTextSubtle;\n\n const symbol = currencyString ?? currency?.Symbol;\n\n return (\n \n {showIcon && symbol && (\n \n )}\n
\n {symbol}\n {showDescription && (\n \n {currency?.Description}\n \n )}\n
\n
\n );\n}\n\nconst ICON_STYLE = {\n flexShrink: 0,\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type { Currency } from '../../types/Currency';\nimport type { RequiredProperties } from '../../utils';\nimport { CurrencyRenderer } from '../CurrencyRenderer';\nimport type { AgGridCurrencyProps } from './types';\n\nexport const AG_GRID_CURRENCY_CELL_RENDERER_KEY = 'currencyColumn';\n\nexport function AgGridCurrency({\n value,\n currencies,\n showDescription,\n showIcon = true,\n context,\n colorful,\n iconSize = 16,\n}: ICellRendererParams & AgGridCurrencyProps) {\n const currency: RequiredProperties, 'Description' | 'Symbol'> | undefined = (\n currencies ?? context.current.currenciesBySymbol\n )?.get(value);\n const shouldRenderDescription = showDescription !== false && currency?.Description != null;\n\n return (\n \n );\n}\n","import styled from 'styled-components';\nimport { parseColor } from '../../styles';\nimport { Box } from '../Core';\n\nexport const Divider = styled(Box)<{ orientation?: 'horizontal' | 'vertical'; thickness?: number }>`\n ${({ theme, orientation, m, my, mt, mb, color, thickness }) =>\n orientation === 'vertical'\n ? `\n border-left: solid ${thickness ? thickness : 1}px ${color ? color : theme.borderColorDivider};\n width: ${thickness ? thickness : 1}px;\n ${\n [m, my, mt, mb].some(x => x)\n ? ''\n : `margin-top: ${theme.spacingSmall}px; margin-bottom: ${theme.spacingSmall}px`\n }`\n : `\n border-top: solid ${thickness ? thickness : 1}px ${color ? parseColor(theme, color) : theme.borderColorDivider};\n height: ${thickness ? thickness : 1}px;`}\n`;\n\nDivider.defaultProps = {\n alignSelf: 'stretch',\n};\n","import styled from 'styled-components';\nimport type { FormControlProps } from '../Form';\nimport { formControlCSS } from '../Form/styles';\n\nexport const TimePickerInputWrapper = styled.label.withConfig({\n shouldForwardProp: (prop, validator) => prop !== 'prefix' && validator(prop),\n})>`\n ${formControlCSS}\n display: flex;\n justify-content: center;\n width: 100%;\n`;\n\nexport const TimePickerInput = styled.input`\n text-align: center !important;\n`;\n\nexport const Delimiter = styled.span``;\n\nexport const PrecisionWrapper = styled.div`\n display: flex;\n max-width: 40px;\n`;\n","import { capitalize } from 'lodash';\nimport type React from 'react';\nimport {\n createRef,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type MutableRefObject,\n} from 'react';\nimport { PRECISIONS, PRECISION_TOOLKITS, TimePickerPrecision, stepPrecisionValue } from './TimePickerPrecision';\nimport { Delimiter, PrecisionWrapper, TimePickerInput, TimePickerInputWrapper } from './styles';\nexport { TimePickerPrecision } from './TimePickerPrecision';\n\nconst formatTimeText = (timeText: TimeText): TimeText => {\n Object.keys(timeText).forEach(precision => {\n const precisionToolkit = PRECISION_TOOLKITS[precision as keyof TimePickerPrecision];\n timeText[precision] = precisionToolkit.formatter(timeText[precision]);\n });\n\n // Return a new object to get the change detection to run despite no changes perhaps being detected\n return timeText;\n};\n\nconst dateToTimeTextState = (date: Date | null): TimeText => {\n const shouldFormat = date != null;\n\n let timeText = PRECISIONS.reduce((o, precision) => {\n const precisionToolkit = PRECISION_TOOLKITS[precision];\n const timeTextValue = date ? precisionToolkit.valueGetter(date).toString() : '';\n return Object.assign(o, {\n [precision]: timeTextValue,\n });\n }, {});\n\n if (shouldFormat) {\n timeText = formatTimeText(timeText);\n }\n\n return timeText;\n};\n\nconst isInputTextInteger = (text: string): boolean => {\n const reg = new RegExp('^[0-9]+$');\n return reg.test(text);\n};\n\nconst isInputTextValid = (text: string, precision: TimePickerPrecision): boolean => {\n if (text === '') {\n return true;\n }\n const timeVal = +text;\n const { min, max } = PRECISION_TOOLKITS[precision];\n const maxLength = max.toString().length;\n return isInputTextInteger(text) && timeVal >= min && timeVal <= max && text.length <= maxLength;\n};\n\nconst keyToPrecision = (key: string): TimePickerPrecision => {\n return parseInt(key);\n};\n\n/**\n * Given an input value string, determines if the input is filled completely and valid.\n * @param inputValue\n * @param precision\n * @returns\n */\nconst precisionInputCompletedAndValid = (inputValue: string, precision: TimePickerPrecision): boolean => {\n const precisionCompletedLength = PRECISION_TOOLKITS[precision].max.toString().length;\n return isInputTextValid(inputValue, precision) && inputValue.length === precisionCompletedLength;\n};\n\nexport type TimePickerProps = {\n date: Date | null;\n maxPrecision?: TimePickerPrecision;\n onChange: (date: Date) => void;\n highlightTextOnFocus?: boolean;\n moveCursorOnInputCompletion?: boolean;\n disabled?: boolean;\n};\n\ntype TimeText = {\n [key: number]: string;\n};\n\n/**\n * A controlled TimePicker component.\n */\nexport const TimePicker = memo(\n forwardRef(\n (\n {\n date,\n maxPrecision = TimePickerPrecision.SECOND,\n onChange,\n highlightTextOnFocus = true,\n moveCursorOnInputCompletion = true,\n disabled = false,\n },\n ref\n ) => {\n const [touched, setTouched] = useState(false);\n const showedPrecisions = useMemo(() => PRECISIONS.filter(p => p <= maxPrecision), [maxPrecision]);\n const [timeText, setTimeText] = useState(dateToTimeTextState(date));\n\n // populate with one Ref for each desired input field\n const inputRefs = useRef<{ [key: number]: MutableRefObject }>(\n showedPrecisions.reduce(\n (obj, precision) =>\n Object.assign(obj, {\n [precision]: createRef(),\n }),\n {}\n )\n );\n\n useEffect(() => {\n // each time date changes we update timeText to reflect this\n setTimeText(dateToTimeTextState(date));\n }, [date]);\n\n const invalid = useMemo(() => {\n return touched && Object.keys(timeText).some(key => !isInputTextValid(timeText[key], keyToPrecision(key)));\n }, [timeText, touched]);\n\n // Returns a copy of the prop date with the current timeText values applied\n const getDateFromTimeText = useCallback(() => {\n const nonNullDate: Date = date ?? Sugar.Date.create('today'); // today at 00 hours\n\n const newDate = showedPrecisions\n .map(p => PRECISION_TOOLKITS[p])\n .reduce((updatingDate, toolkit) => {\n return toolkit.dateSetter(updatingDate, +timeText[toolkit.precision]);\n }, new Date(nonNullDate));\n\n return newDate;\n }, [timeText, showedPrecisions, date]);\n\n const somethingHasChanged = useMemo(() => {\n // somethingHasChanged is only used on blur.\n // if date is null and we're blurring an input, it means it will be populated in some way.\n if (date == null) {\n return true;\n }\n\n return getDateFromTimeText().getTime() !== date.getTime();\n }, [getDateFromTimeText, date]);\n\n const updateDate = useCallback(() => {\n onChange(getDateFromTimeText());\n }, [onChange, getDateFromTimeText]);\n\n const handleInputChange = useCallback(\n (inputValue: string, precision: TimePickerPrecision) => {\n setTimeText(curr => ({ ...curr, [precision]: inputValue }));\n\n if (moveCursorOnInputCompletion && precisionInputCompletedAndValid(inputValue, precision)) {\n // step forward to next if we are not the last input field.\n if (precision !== maxPrecision) {\n const nextInputRef = inputRefs.current[precision + 1];\n // place at back of js call stack to perform after state update above\n // the alternative is to introduce substantially more complexity in the component.\n setTimeout(() => nextInputRef.current.focus(), 0);\n } else {\n // we're done with the last input, remove focus.\n setTimeout(() => inputRefs.current[precision].current.blur(), 0);\n }\n }\n },\n [moveCursorOnInputCompletion, maxPrecision]\n );\n\n // On blur we make bigger decisions: either emit onChange with new date,\n // or reset to previous correct date because something was invalid.\n const handleBlur = useCallback(\n (precision: TimePickerPrecision) => {\n if (somethingHasChanged) {\n const proposedText = timeText[precision];\n if (isInputTextValid(proposedText, precision)) {\n updateDate();\n } else {\n // Reset the text state to the latest received (correct) date values.\n setTimeText(dateToTimeTextState(date));\n }\n } else {\n // if nothing changes let's just take the opportunity to format everything now that we're moving between inputs\n // since nothing has changed, we need to ensure that change detection runs to catch formatting, so create new timeText obj.\n setTimeText(prevTimeText => Object.assign({}, formatTimeText(prevTimeText)));\n }\n },\n [timeText, updateDate, date, somethingHasChanged]\n );\n\n const handleFocus = useCallback(\n (event: React.FocusEvent) => {\n if (!touched) {\n setTouched(true);\n }\n\n if (highlightTextOnFocus) {\n event.target.select();\n }\n },\n [highlightTextOnFocus, touched]\n );\n\n const isSomeTextSelectedInInput = (input: HTMLInputElement): boolean => {\n return input.selectionStart !== input.selectionEnd;\n };\n\n const isCursorAtExtremityOfInputText = (extremity: 'left' | 'right', input: HTMLInputElement): boolean => {\n const cursorLocation = input.selectionStart;\n if (extremity === 'left') {\n return cursorLocation === 0;\n } else {\n const textLength = input.value.length;\n return cursorLocation === textLength;\n }\n };\n\n const cursorShouldJump = useCallback(\n (direction: 'left' | 'right', event: React.KeyboardEvent) => {\n const input = event.target as HTMLInputElement;\n return !isSomeTextSelectedInInput(input) && isCursorAtExtremityOfInputText(direction, input);\n },\n []\n );\n\n const incOrDecTimeTextValue = useCallback(\n (incOrDec: 'inc' | 'dec', precision: TimePickerPrecision) => {\n const timeTextStr = timeText[precision];\n if (isInputTextInteger(timeTextStr)) {\n setTimeText(timeText => ({\n ...timeText,\n [precision]: stepPrecisionValue(+timeTextStr, precision, incOrDec).toString(),\n }));\n }\n },\n [timeText]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent, precision: TimePickerPrecision) => {\n switch (event.key) {\n case 'ArrowDown':\n incOrDecTimeTextValue('dec', precision);\n event.preventDefault();\n return;\n case 'ArrowUp':\n incOrDecTimeTextValue('inc', precision);\n event.preventDefault();\n return;\n case 'Enter': {\n const proposedText = timeText[precision];\n if (isInputTextValid(proposedText, precision) && somethingHasChanged) {\n updateDate();\n }\n return;\n }\n case 'Backspace':\n if (timeText[precision] === '' && precision !== TimePickerPrecision.HOUR) {\n const prevInputRef = inputRefs.current[precision - 1];\n setTimeout(() => prevInputRef.current.focus(), 0);\n }\n return;\n case 'ArrowLeft':\n if (cursorShouldJump('left', event) && precision !== TimePickerPrecision.HOUR) {\n const prevInputRef = inputRefs.current[precision - 1];\n setTimeout(() => {\n const prevInput = prevInputRef.current;\n prevInput.focus();\n // place cursor at the end\n prevInput.setSelectionRange(prevInput.value.length, prevInput.value.length);\n }, 0);\n }\n return;\n case 'ArrowRight':\n if (cursorShouldJump('right', event) && precision !== showedPrecisions[showedPrecisions.length - 1]) {\n const nextInputRef = inputRefs.current[precision + 1];\n setTimeout(() => {\n const nextInput = nextInputRef.current;\n nextInput.focus();\n // place cursor at the end\n nextInput.setSelectionRange(0, 0);\n }, 0);\n }\n return;\n default:\n return;\n }\n },\n [cursorShouldJump, incOrDecTimeTextValue, somethingHasChanged, showedPrecisions, timeText, updateDate]\n );\n\n const renderInput = useCallback(\n (precision: TimePickerPrecision) => {\n const delimiter = PRECISION_TOOLKITS[precision].delimiter;\n\n return (\n \n {delimiter && {delimiter}}\n handleInputChange(inputChange.target.value, precision)}\n onBlur={() => handleBlur(precision)}\n onFocus={handleFocus}\n onKeyDown={event => handleKeyDown(event, precision)}\n ref={inputRefs.current[precision]}\n role=\"textbox\"\n aria-label={capitalize(TimePickerPrecision[precision] as string) + 's'}\n />\n \n );\n },\n [disabled, handleBlur, handleFocus, handleInputChange, handleKeyDown, timeText]\n );\n\n return (\n \n {showedPrecisions.map(precision => renderInput(precision))}\n \n );\n }\n )\n);\n","import { addMinutes, startOfDay } from 'date-fns';\n\n/**\n * Given a number x representing the minutes between each selection (eg: 5, 30, 120),\n * returns a list of Dates with times for each interval\n * @param x amount of minutes between each date\n * @returns a list of dates\n */\nexport function getDatesEveryXMinutes(x: number): Date[] {\n const dates: Date[] = [];\n for (let i = 0; i < 24 * 60; i += x) {\n dates.push(addMinutes(startOfDay(new Date()), i));\n }\n\n return dates;\n}\n","import { getDatesEveryXMinutes } from './utils';\n\n/**\n * Returns whether or not the given date is valid given the minutesInterval\n * @param date\n * @param minutesInterval\n * @returns a boolean where true indicates valid\n */\nexport const useTimeSelectorValidation = (date: Date | null, minutesInterval: number): boolean => {\n const datesAtInterval = getDatesEveryXMinutes(minutesInterval);\n\n if (!date) {\n return false;\n }\n\n // Does the provided date match any of the computed date's time exactly?\n return datesAtInterval.some(\n okDate =>\n okDate.getHours() === date.getHours() &&\n okDate.getMinutes() === date.getMinutes() &&\n okDate.getSeconds() === date.getSeconds() &&\n okDate.getMilliseconds() === date.getMilliseconds()\n );\n};\n","import { format } from 'date-fns';\nimport { useCallback, useMemo } from 'react';\nimport { SearchSelect } from '../Form/SearchSelect';\nimport type { SearchSelectProps } from '../Form/SearchSelect/types';\nimport { useTimeSelectorValidation } from './useTimeSelectorValidation';\nimport { getDatesEveryXMinutes } from './utils';\n\nexport type TimeSelectorProps = {\n selection?: Date;\n intervalMinutes: number;\n onChange: (date: Date) => void;\n} & Pick, 'portalize' | 'dropdownContentRef' | 'w' | 'size' | 'disabled'>;\n\nconst getLabel = (date: Date) => format(date, 'HH:mm');\n\nexport const TimeSelector = ({ intervalMinutes, selection, onChange, ...props }: TimeSelectorProps) => {\n const options = useMemo(() => {\n return getDatesEveryXMinutes(intervalMinutes);\n }, [intervalMinutes]);\n\n // Before we emit a change to our parent, let's see\n const handleChange = useCallback(\n (date?: Date) => {\n if (date == null) {\n return;\n }\n if (selection) {\n const copiedSelection = new Date(selection);\n copiedSelection.setHours(date.getHours());\n copiedSelection.setMinutes(date.getMinutes());\n copiedSelection.setSeconds(date.getSeconds());\n copiedSelection.setMilliseconds(date.getMilliseconds());\n onChange(copiedSelection);\n } else {\n onChange(date);\n }\n },\n [selection, onChange]\n );\n\n const valid = useTimeSelectorValidation(selection ?? new Date(), intervalMinutes);\n\n return (\n \n );\n};\n","import { isBefore } from 'date-fns';\nimport {\n type DateRange,\n type DateRangeOrLookback,\n type LookbackWindow,\n type SerializedDateRange,\n type SerializedDateRangeOrLookback,\n isLookbackWindow,\n} from './dateRange';\n\n// Reasonable minimum date for modern date ranges\nconst MODERN_MIN_DATE = Object.freeze(new Date('1970-01-01T00:00:00Z'));\n/**\n * Converts a serialized DateRange/LookbackWindow to a DateRange/LookbackWindow for use in controls\n * like DateRangePicker\n */\nexport function deserializeDateRangeOrLookback(\n dateRangeInput: SerializedDateRangeOrLookback | DateRangeOrLookback\n): DateRange | LookbackWindow {\n if (isLookbackWindow(dateRangeInput)) {\n return dateRangeInput;\n }\n return deserializeDateRange(dateRangeInput);\n}\n/** When DateRanges are serialized, the dates are converted to strings\n * - To convert back to DateRange, we need to convert the strings back to Date objects\n * - Converted dateRnages are allowed inputs as a convenience\n **/\nexport const deserializeDateRange = (dateRangeOrLookback: SerializedDateRange | DateRange): DateRange => {\n if (isSerializedDateRange(dateRangeOrLookback)) {\n const result = {\n from: dateRangeOrLookback.from ? new Date(dateRangeOrLookback.from) : null,\n to: dateRangeOrLookback.to ? new Date(dateRangeOrLookback.to) : null,\n };\n\n if (result.from == null && result.to == null) {\n throw new Error('Invalid date range: both from and to dates are null');\n }\n\n if (result.from && isBefore(result.from, MODERN_MIN_DATE)) {\n throw new Error(`Invalid date range: from date ${result.from} is before ${MODERN_MIN_DATE}`);\n }\n\n if (result.from && result.to) {\n if (isBefore(result.from, result.to)) {\n return result;\n } else {\n throw new Error(`Invalid date range: from date ${result.from} is after to date ${result.to}`);\n }\n }\n return result;\n }\n return dateRangeOrLookback;\n};\n\nfunction isSerializedDateRange(\n dateRangeOrLookback: SerializedDateRange | DateRange\n): dateRangeOrLookback is SerializedDateRange {\n const from = (dateRangeOrLookback as SerializedDateRange).from;\n const to = (dateRangeOrLookback as SerializedDateRange).to;\n if ((from == null || typeof from === 'string') && (to == null || typeof to === 'string')) {\n return true;\n }\n return false;\n}\n","import { addDays, startOfDay, subMinutes } from 'date-fns';\nimport { identity } from 'lodash';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DateUtils } from 'react-day-picker';\nimport { defineMessages } from 'react-intl';\nimport { useTheme } from 'styled-components';\nimport { getIntlKey, type IntlWithFormatter } from '../../contexts/IntlContext';\nimport { useConstant } from '../../hooks/useConstant';\nimport { useDynamicCallback } from '../../hooks/useDynamicCallback';\nimport { useIntl } from '../../hooks/useIntl';\nimport { useIntlContext } from '../../hooks/useIntlContext';\nimport { beginningOfDay, endOfDay, readableDay } from '../../utils/date';\nimport { isKeyIn } from '../../utils/types';\nimport { Button, ButtonVariants } from '../Button';\nimport { Box, Flex, HStack, VStack } from '../Core';\nimport { DayPicker } from '../DayPicker';\nimport { Divider } from '../Divider';\nimport { FormGroup } from '../Form/FormGroup';\nimport {\n AutocompleteResults,\n BaseSelect,\n Dropdown,\n FuseAutocompleteResult,\n Input,\n flattenAutocompleteGroupItems,\n useDropdownPopper,\n useSearchSelect,\n type AutocompleteItemsProp,\n type BaseSelectProps,\n type FormControlProps,\n type UseAutocompleteProps,\n} from '../Form/index';\nimport { FormControlSizes } from '../Form/types';\nimport { Icon, IconName } from '../Icons';\nimport { FormattedMessage } from '../Intl';\nimport { TimePicker, TimePickerPrecision, type TimePickerProps } from '../TimePicker';\nimport { TimeSelector } from '../TimeSelector';\nimport {\n dateRangeMessages,\n isDateRange,\n isLookbackWindow,\n type DateRange,\n type DateRangeOrLookback,\n type LookbackOption,\n} from './dateRange';\n\nconst messages = defineMessages({\n clear: {\n defaultMessage: 'Clear',\n id: 'DateRangePicker.clear',\n },\n selectDates: {\n defaultMessage: 'Select Dates',\n id: 'DateRangePicker.selectDates',\n },\n submit: {\n defaultMessage: 'Submit',\n id: 'DateRangePicker.submit',\n },\n sinceDate: {\n defaultMessage: 'Since {date}',\n id: 'DateRangePicker.sinceDate',\n },\n dateRange: {\n defaultMessage: '{from} to {to}',\n id: 'DateRangePicker.dateRange',\n },\n custom: {\n defaultMessage: 'Custom',\n id: 'DateRangePicker.custom',\n },\n});\n\nexport {\n DEFAULT_LOOKBACK_OPTIONS,\n LOOKBACKS,\n LookbackOption,\n isDateRange,\n isLookbackWindow,\n lookbackOptionToDate,\n type DateRange,\n type DateRangeOrLookback,\n type LookbackWindow,\n} from './dateRange';\nexport { deserializeDateRange, deserializeDateRangeOrLookback } from './deserializeDateRange';\n\nconst { addDayToRange } = DateUtils;\n\nfunction getShortcutLabel(option: ShortcutOption, intl: IntlWithFormatter) {\n if (option.value === 'Custom') {\n return intl.formatMessage(messages.custom);\n }\n const intlKey = getIntlKey(option.value);\n if (isKeyIn(intlKey, dateRangeMessages)) {\n return intl.formatMessage(dateRangeMessages[intlKey]);\n }\n return option.value;\n}\n\nexport interface ShortcutOption {\n value: LookbackOption | 'Custom';\n}\nconst CUSTOM_OPTION: ShortcutOption = { value: 'Custom' };\n\nexport type DateRangePickerProps = {\n value: DateRangeOrLookback;\n onChange: (datesOrLookback: DateRangeOrLookback) => void;\n shortcuts?: ShortcutOption[];\n // If true allows this control to set value to an empty DateRange. Otherwise the control will never call onChange with a 'null' DateRange\n clearable?: boolean;\n canSubmitCleared?: boolean;\n maxTimePickerPrecision?: TimePickerProps['maxPrecision'];\n /**\n * Pass a getLabel callback in in order to be able to define your own labels to be shown in the selector.\n * Optional, and if not provided, the component will use its default label logic.\n * If provided, you can return undefined to fallback to the default label logic in certain cases, for example if you want\n * the DateRangePicker to use its own label logic for DateRange values, but not LookbackWindow values.\n */\n getLabel?: (value: DateRangeOrLookback) => string | undefined;\n\n /**\n * What type of control you want for setting times (hours, minutes, seconds). Defaults to input.\n */\n timePickerVariant?: 'input' | 'selector';\n /** If using timePickerVariant: \"selector\", this is the intervals you can select in that selector. Defaults to 60. */\n timeSelectorIntervalMinutes?: number;\n 'data-testid'?: string;\n} & Omit, 'onChange' | 'value'> &\n Pick, 'prefix'> &\n Pick, 'getGroup'>;\n\n// This essentially disables the default sorting/filtering of the shortcut list\nconst noopShortcutFilter: AutocompleteItemsProp['sortFilterOverride'] = fullList => fullList;\n\nexport function DateRangePicker({\n value,\n onChange,\n disabled,\n invalid,\n width,\n shortcuts,\n size,\n canSubmitCleared = false,\n clearable = true,\n maxTimePickerPrecision = TimePickerPrecision.MILLISECOND,\n prefix,\n getLabel,\n getGroup,\n timePickerVariant = 'input',\n timeSelectorIntervalMinutes = 60,\n ...props\n}: DateRangePickerProps) {\n const inputRef = useRef(null);\n const fromTimeSelectorDropdownContentRef = useRef(null);\n const toTimeSelectorDropdownContentRef = useRef(null);\n const theme = useTheme();\n const intl = useIntl();\n const { locale } = useIntlContext();\n\n const [isOpen, setIsOpen] = useState(false);\n const selectRef = useRef(null);\n const [initialMonth] = useState(Sugar.Date.create('1 month ago'));\n // Internal state of selector separate from the value passed in from the parent. The value here should not be communicated to the parent if\n // the user clicks out of the control without selecting a shortcut or explicitly hitting submit.\n const [selectedDatesOrLookback, setSelectedDatesOrLookback] = useState({\n from: null,\n to: null,\n });\n\n const dropdown = useDropdownPopper({\n dropdownPlacement: 'bottom-start',\n isOpen,\n referenceElement: selectRef.current,\n dropdownWidth: 'fit-content',\n onClickOutside: () => setIsOpen(false),\n });\n\n const handleShortcutChange = useDynamicCallback((shortcutOption: ShortcutOption | undefined) => {\n if (shortcutOption && shortcutOption.value !== 'Custom') {\n setSelectedDatesOrLookback({ lookback: shortcutOption.value });\n\n // On selecting a shortcut, emit an on change and then close.\n onChange({ lookback: shortcutOption.value });\n setIsOpen(false);\n }\n });\n\n const shortcutOptions = useMemo(() => {\n if (!shortcuts) {\n return [];\n }\n\n return [CUSTOM_OPTION, ...shortcuts];\n }, [shortcuts]);\n\n const selectedShortcutOption: ShortcutOption = useMemo(() => {\n if (isLookbackWindow(selectedDatesOrLookback)) {\n // If its not a date range, then the value is set by using some shortcut. See if we can find it...\n const usedShortcutOption = flattenAutocompleteGroupItems(shortcutOptions).find(\n option => option.value === selectedDatesOrLookback.lookback\n );\n\n // If we cant find any used shortcut option, fallback to custom\n return usedShortcutOption ?? CUSTOM_OPTION;\n }\n\n return CUSTOM_OPTION;\n }, [selectedDatesOrLookback, shortcutOptions]);\n\n const getAutoCompleteLabel = useConstant((option: ShortcutOption) => getShortcutLabel(option, intl));\n\n const autocomplete = useSearchSelect({\n selectedItem: selectedShortcutOption,\n items: shortcutOptions,\n getLabel: getAutoCompleteLabel,\n inputRef,\n onChange: handleShortcutChange,\n closeDropdownOnItemSelection: false,\n clearInputOnSelection: true,\n initialSortByLabel: false,\n enableTabSelect: false,\n sortFilterOverride: noopShortcutFilter,\n getGroup,\n });\n\n const handleSelectClick = useDynamicCallback(() => {\n setIsOpen(open => !open);\n });\n\n useEffect(() => {\n // When date selector is not open, set what is shown in the input field to match the parent's specified value.\n // In this case we want to show the 'true' value from the form and not local state in the control.\n if (!isOpen) {\n setSelectedDatesOrLookback(value);\n }\n }, [value, isOpen]);\n\n const handleSelectDay = useDynamicCallback((day: Date) => {\n // A day in the calendar was clicked. In this function we decide what the output state should be.\n // Create a new dates object (note: effectively also resetting the \"lookback\" field)\n const newDates: DateRange = { from: null, to: null };\n\n // If the current (previous, pre-click) state is a date range (.from and .to exist), do some math (addDayToRange) to\n // apply the clicked date to the existing selectedDates\n if (isDateRange(selectedDatesOrLookback)) {\n const newRange = addDayToRange(day, selectedDatesOrLookback);\n\n // We clicked on some day, and that means we get new from and to dates. Depending on if we're using\n // an input or select for time selection, we need to adhere to different rules.\n // For input, you can select any time you wish. For select, there's some interval you need to follow.\n\n // Assume that starting on 00:00:00 is always fine in both cases\n newDates.from = beginningOfDay(newRange.from);\n\n if (newRange.to != null) {\n if (timePickerVariant === 'input') {\n newDates.to = endOfDay(newRange.to); // 23:59:59.999\n } else {\n const startOfNextDay = startOfDay(addDays(newRange.to, 1));\n // Subtract by one interval length\n newDates.to = subMinutes(startOfNextDay, timeSelectorIntervalMinutes); // for example 15 min interval: 23:45:00.000\n }\n }\n } else {\n // We're a lookback window, set the clicked date to be the from date\n newDates.from = beginningOfDay(day);\n }\n setSelectedDatesOrLookback(newDates);\n });\n\n const handleChangeTime = useCallback(\n (key: 'from' | 'to', time: Date) => {\n let newDate;\n if (isDateRange(selectedDatesOrLookback)) {\n newDate = new Date(selectedDatesOrLookback[key]!);\n } else {\n throw new Error('Should not be able to modify time unless a day has been selected');\n }\n newDate.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\n setSelectedDatesOrLookback(prev => ({ ...prev, [key]: newDate }));\n },\n [selectedDatesOrLookback]\n );\n\n const handleClear = useCallback(\n (closeAfterClear = false) => {\n // If we are not clearable then null local state but don't communicate any change in state to parent\n if (clearable) {\n onChange({ from: null, to: null });\n }\n setSelectedDatesOrLookback({\n from: null,\n to: null,\n });\n if (closeAfterClear) {\n setIsOpen(false);\n }\n },\n [clearable, onChange]\n );\n\n const handleSubmit = useCallback(() => {\n onChange(selectedDatesOrLookback);\n setIsOpen(false);\n }, [onChange, selectedDatesOrLookback]);\n\n const text = dateRangeOrLookbackToString(intl, locale, selectedDatesOrLookback, getLabel);\n\n const { from, to, lookback } = { from: null, to: null, lookback: undefined, ...selectedDatesOrLookback };\n const canSubmit = from != null || lookback != null || canSubmitCleared;\n\n return (\n \n handleClear(true)}\n value={text}\n getLabel={identity}\n disabled={disabled}\n invalid={invalid}\n size={size}\n wrapperRef={selectRef}\n isDropdownOpened={isOpen}\n clearable={clearable}\n suffix={\n \n \n \n }\n prefix={prefix}\n >\n \n \n \n {/**\n * `suppressRefError` is used here not because of the ref failing to be set,\n * rather, it is because of the dropdown being portalized using `useTopLevelPortalElement` which\n * leverages `useEffect` to render the content one render cycle after the component is mounted.\n * downshift then complains about ref being set incorrectly, which we suppress.\n */}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {timePickerVariant === 'input' ? (\n handleChangeTime('from', value)}\n date={from ?? null}\n maxPrecision={maxTimePickerPrecision}\n disabled={from == null}\n />\n ) : (\n handleChangeTime('from', date)}\n dropdownContentRef={fromTimeSelectorDropdownContentRef}\n size={FormControlSizes.Small}\n disabled={from == null}\n portalize\n />\n )}\n \n \n {timePickerVariant === 'input' ? (\n handleChangeTime('to', value)}\n date={to ?? null}\n maxPrecision={maxTimePickerPrecision}\n disabled={to == null}\n />\n ) : (\n handleChangeTime('to', date)}\n dropdownContentRef={toTimeSelectorDropdownContentRef}\n size={FormControlSizes.Small}\n portalize\n />\n )}\n \n \n \n \n handleClear(false)}\n disabled={!from && !to}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nfunction dateRangeOrLookbackToString(\n intl: IntlWithFormatter,\n locale: string,\n dateRangeOrLookback?: DateRangeOrLookback,\n getLabel?: (value: DateRangeOrLookback) => string | undefined\n): string {\n if (!dateRangeOrLookback) {\n return '';\n }\n\n const maybeCustomLabel = getLabel?.(dateRangeOrLookback);\n if (maybeCustomLabel != null) {\n return maybeCustomLabel;\n }\n\n if ('lookback' in dateRangeOrLookback && dateRangeOrLookback.lookback != null) {\n const intlKey = getIntlKey(dateRangeOrLookback.lookback);\n if (isKeyIn(intlKey, dateRangeMessages)) {\n return intl.formatMessage(dateRangeMessages[intlKey]);\n }\n return dateRangeOrLookback.lookback;\n }\n if (isDateRange(dateRangeOrLookback) && dateRangeOrLookback.from != null) {\n if (dateRangeOrLookback.to == null) {\n return intl.formatMessage(messages.sinceDate, { date: readableDay(dateRangeOrLookback.from) });\n }\n return intl.formatMessage(messages.dateRange, {\n from: readableDay(dateRangeOrLookback.from, false, locale),\n to: readableDay(dateRangeOrLookback.to, false, locale),\n });\n }\n return '';\n}\n","import type { IFilter, IFilterParams } from 'ag-grid-enterprise';\nimport { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\nimport { dateIsBetween } from '../../utils';\nimport { DateRangePicker, isDateRange, type DateRange } from '../DateRangePicker';\n\nexport const AgGridDateFilter = forwardRef(({ filterChangedCallback, valueGetter }: IFilterParams, ref) => {\n const [dates, setDates] = useState({\n from: null,\n to: null,\n });\n\n // expose AG Grid Filter Lifecycle callbacks\n useImperativeHandle(ref, () => {\n return {\n doesFilterPass(params) {\n // @ts-expect-error TODO looks like this should actually be `valueGetter(params.node)`, need to confirm\n const value = valueGetter(params);\n return value != null && dateIsBetween(dates.from!, Sugar.Date.create(value), dates.to!); // `isFilterActive` will ensure that these values are not null-ish\n },\n\n isFilterActive() {\n return dates.from != null && dates.to != null;\n },\n\n getModel() {\n return this.isFilterActive() ? { filterType: 'date', dateFrom: dates.from, dateTo: dates.to } : null;\n },\n\n setModel(model) {\n setDates({\n from: model?.dateFrom,\n to: model?.dateTo,\n });\n },\n } as IFilter;\n });\n\n useEffect(() => filterChangedCallback(), [filterChangedCallback, dates]);\n\n return (\n isDateRange(dates) && setDates({ from: dates.from, to: dates.to })}\n className=\"ag-custom-component-popup\"\n />\n );\n});\n","import type { ITooltipParams } from 'ag-grid-community';\nimport type { ReactNode } from 'react';\nimport styled, { css, useTheme } from 'styled-components';\n\n// Common styling used for ag-grid tooltips\n// - TODO: The !important's (from prior impl's) appear to enforce style overrides from ag-grid theme\nexport const AgTooltipSimpleStyle = css`\n background: ${({ theme }) => theme.backgroundPopover} !important;\n padding: ${({ theme }) => theme.spacingDefault}px !important;\n margin-left: ${({ theme }) => theme.spacingDefault}px !important;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px !important;\n`;\n\nconst AgTooltipSimple = styled.div`\n max-width: 20rem;\n ${AgTooltipSimpleStyle}\n`;\n\n/** Fallback Ag Grid Header component for use inside custom tooltip components to fall back to to show the colDef tooltip (if defined)\n * - the colDef tooltipComponent param defines a component that applies to the entire column INCLUDING the header, so once it's set\n * we need to handle the header ourselves, and this is a decent fallback\n * */\nexport const AgGridDefaultHeaderTooltip = ({ params }: { params: ITooltipParams }): ReactNode => {\n const theme = useTheme();\n const fallbackTooltipValue = params.colDef?.headerTooltip;\n return fallbackTooltipValue ? {fallbackTooltipValue} : null;\n};\n","import type { IHeaderParams } from 'ag-grid-community';\nimport { isNil } from 'lodash';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { Box, HStack } from '../Core';\nimport { Icon, IconName } from '../Icons';\nimport { Tooltip } from '../Tooltip';\n\nconst visibilityHiddenStyle: CSSProperties = { visibility: 'hidden' };\n\nexport const AgGridFilterPermissionActionHeader = ({\n tooltipContent,\n ...rest\n}: IHeaderParams & { tooltipContent?: ReactNode }) => {\n const disableTooltip = isNil(tooltipContent);\n\n return (\n \n Permission\n \n \n {tooltipContent}\n \n }\n usePortal\n disabled={disableTooltip}\n >\n \n \n \n \n );\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport Big from 'big.js';\nimport { InlineFormattedNumber, NumberVariants } from '../FormattedNumber';\nimport { Highlight } from '../FormattedNumber/styles';\nimport type { AgGridFormattedNumberProps } from './types';\n\nexport function AgGridFormattedNumber({\n sentiment,\n highlightNegative,\n value,\n data,\n unit,\n round,\n increment,\n}: ICellRendererParams & AgGridFormattedNumberProps) {\n if (data == null || value == null) {\n return '';\n }\n\n if (increment == null) {\n return {`${value} ${unit ?? ''}`.trim()};\n }\n\n return (\n \n );\n}\n","import type { ExpandedChangedEvent, ICellRendererParams } from 'ag-grid-community';\nimport { useCallback, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Flex } from '../Core';\nimport { Icon, IconName } from '../Icons';\nimport { Text } from '../Text';\n\nexport const AG_GRID_FULL_WIDTH_GROUP_ROW = 'AgGridFullWidthGroupRow';\n\nexport type AgGridFullWidthGroupRowParams = ICellRendererParams & {\n getLabel?: (params: ICellRendererParams) => string;\n};\n\nexport function AgGridFullWidthGroupRow({ getLabel, ...cellRendererParams }: AgGridFullWidthGroupRowParams) {\n const { node } = cellRendererParams;\n const [expanded, setExpanded] = useState(node.expanded);\n\n useEffect(() => {\n const expandListener = (event: ExpandedChangedEvent) => setExpanded(event.node.expanded);\n\n node.addEventListener('expandedChanged', expandListener);\n\n return () => {\n node.removeEventListener('expandedChanged', expandListener);\n };\n }, [node]);\n\n const onClick = useCallback(() => node.setExpanded(!node.expanded), [node]);\n const label = getLabel ? getLabel(cellRendererParams) : 'Unknown';\n\n return (\n \n \n \n {label}\n \n \n );\n}\n\nconst RowContainer = styled(Flex)`\n background-color: var(--colors-gray-030);\n transition-duration: 100ms;\n transition-property: background-color;\n :hover {\n background-color: var(--colors-gray-00);\n }\n`;\n","import type { IHeaderParams } from 'ag-grid-community';\nimport type React from 'react';\nimport { useCallback, useEffect, useState } from 'react';\nimport { useDynamicCallback } from '../../hooks';\nimport { safeGridApi } from '../BlotterTable/utils';\nimport { HStack } from '../Core';\nimport { ICON_SIZES, Icon, IconName } from '../Icons';\n\ninterface AgGridGroupToggleHeaderProps extends IHeaderParams {\n columnsInGroup: string[];\n}\n\nexport const AgGridGroupToggleHeader = ({\n progressSort,\n column,\n api,\n displayName,\n columnsInGroup = [],\n}: AgGridGroupToggleHeaderProps) => {\n const [allColumnsInGroupCollapsed, setAllColumnsInGroupCollapsed] = useState(false);\n\n const updateColumnCollapsed = useDynamicCallback(() => {\n const allColumns = api.getAllGridColumns();\n const isAllCollapsed = columnsInGroup.every(id => {\n const column = allColumns.find(c => c.getColId() === id);\n if (column) {\n return !column.isVisible();\n }\n return true;\n });\n setAllColumnsInGroupCollapsed(isAllCollapsed);\n });\n\n useEffect(() => {\n updateColumnCollapsed();\n }, [updateColumnCollapsed]);\n\n const onSortRequested: React.MouseEventHandler = useCallback(\n e => {\n progressSort(e.shiftKey);\n },\n [progressSort]\n );\n const [currentSort, setCurrentSort] = useState(() => column.getSort());\n\n const onHandleColumnVisibilityChange = useDynamicCallback(() => {\n updateColumnCollapsed();\n });\n\n const handleToggle = useDynamicCallback((ev: React.MouseEvent) => {\n ev.preventDefault();\n ev.stopPropagation();\n api.setColumnsVisible(columnsInGroup, allColumnsInGroupCollapsed);\n });\n\n useEffect(() => {\n safeGridApi(api)?.addEventListener('columnVisible', onHandleColumnVisibilityChange);\n return () => {\n safeGridApi(api)?.removeEventListener('columnVisible', onHandleColumnVisibilityChange);\n };\n }, [api, onHandleColumnVisibilityChange]);\n\n useEffect(() => {\n const columnSortChanged = () => {\n setCurrentSort(column.getSort());\n };\n safeGridApi(api)?.addEventListener('sortChanged', columnSortChanged);\n return () => {\n safeGridApi(api)?.removeEventListener('sortChanged', columnSortChanged);\n };\n }, [api, column]);\n\n return (\n \n {displayName}\n \n \n \n {currentSort && (\n \n )}\n \n );\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { useCallback, useRef, type MouseEvent, type ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Button, IconButton } from '../Button';\nimport { IconName } from '../Icons';\nimport { Popover, usePopoverState } from '../Popover';\n\nexport interface AgGridHamburgerMenuProps {\n renderItems: (props: ICellRendererParams) => ReactNode;\n csvExport?: boolean;\n}\n\nexport function AgGridHamburgerMenu({ renderItems, ...props }: ICellRendererParams & AgGridHamburgerMenuProps) {\n const popover = usePopoverState({\n trigger: 'click',\n usePortal: true,\n placement: 'bottom-end',\n closeOnClickOutside: true,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: ['top-end'],\n },\n },\n ],\n });\n\n const { onClickTarget } = popover;\n\n const itemsRef = useRef(null);\n\n const handleClickTarget = useCallback(\n (e: MouseEvent) => {\n if (itemsRef && !itemsRef.current?.contains(e.target as Node)) {\n e.stopPropagation();\n }\n onClickTarget(e.nativeEvent);\n },\n [onClickTarget]\n );\n\n return (\n \n \n \n popover.close()} ref={itemsRef}>\n {renderItems?.(props)}\n \n \n \n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ItemsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: ${({ theme }) => theme.spacingSmall}px;\n\n ${Button} {\n justify-content: flex-start;\n width: 100%;\n }\n`;\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { IconButton } from '../Button';\nimport type { AgGridIconButtonProps } from './types';\n\nexport function AgGridIconButton({\n hide,\n onClick,\n icon,\n node,\n api,\n disabled,\n color,\n title,\n data,\n dataValue,\n}: ICellRendererParams & AgGridIconButtonProps) {\n if (!data || node.rowPinned) {\n return null;\n }\n\n if (hide?.({ node, api })) {\n return null;\n }\n\n return (\n {\n if (ref != null) {\n ref.onclick = e => {\n e.stopPropagation();\n onClick?.({ node, api });\n };\n }\n }}\n color={color}\n title={title}\n data-testid=\"ag-grid-icon-button\"\n />\n );\n}\n","import type { CustomCellEditorProps } from 'ag-grid-react';\nimport { useEffect, useRef } from 'react';\nimport { Input } from '../Form/Input';\nimport type { FormControlProps } from '../Form/types';\n\nexport const AgGridInput = ({\n size,\n node,\n colDef,\n parseValue,\n value,\n onValueChange,\n initialValue,\n ...props\n}: CustomCellEditorProps & FormControlProps) => {\n const inputRef = useRef(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (inputRef?.current != null) {\n inputRef.current.focus();\n }\n });\n }, []);\n\n const isRightAligned = ((colDef.cellClass ?? '') as string | string[]).includes('ag-right-aligned-cell'); // assumes we won't ever set the cellClass as a function ...\n\n return (\n onValueChange(parseValue(e.target.value))}\n value={value ?? ''}\n size={size}\n style={{\n width: '100%',\n height: `${node.rowHeight}px`,\n background: props.context.current.theme?.backgroundBody,\n }}\n type={isRightAligned ? 'number' : 'text'}\n />\n );\n};\n","import styled, { css, keyframes } from 'styled-components';\n\nexport const fade = keyframes`\n 0%, 100% {\n opacity: 0.1;\n }\n 10% {\n opacity: 1;\n }\n 60% {\n opacity: 0.4;\n }\n`;\n\nexport const Wrapper = styled.div<{ size: number }>`\n align-self: center;\n vertical-align: middle;\n display: inline-grid;\n grid-gap: ${({ size }) => Math.max(size / 15, 2)}px;\n grid: ${({ size }) =>\n Array(2)\n .fill(undefined)\n .map(() =>\n Array(3)\n .fill(undefined)\n .map(() => `${size / 3}px`)\n .join(' ')\n )\n .join(' / ')};\n`;\n\nexport const Square = styled.div`\n opacity: 0.1;\n\n &:nth-child(2),\n &:nth-child(3),\n &:nth-child(4),\n &:nth-child(6),\n &:nth-child(7),\n &:nth-child(8) {\n background: ${({ theme }) => theme.backgroundLoader};\n animation: ${fade} 1200ms linear infinite;\n }\n &:nth-child(2) {\n animation-delay: 0;\n }\n &:nth-child(3) {\n animation-delay: 200ms;\n }\n &:nth-child(6) {\n animation-delay: 400ms;\n }\n &:nth-child(8) {\n animation-delay: 600ms;\n }\n &:nth-child(7) {\n animation-delay: 800ms;\n }\n &:nth-child(4) {\n animation-delay: 1000ms;\n }\n`;\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n`;\n\nexport const LoaderWrapper = styled.div<{ delay?: number }>`\n display: flex;\n height: 100%;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n ${({ delay }) =>\n delay &&\n css`\n opacity: 0;\n animation: ${fadeIn} 300ms ease-out forwards;\n animation-delay: ${delay}ms;\n `}\n`;\n","import { useTheme } from 'styled-components';\nimport { LoaderTalos } from '../LoaderTalos';\nimport { Spinner } from '../Spinner';\n\nexport const AgGridLoadingOverlay = () => {\n const { name } = useTheme();\n\n return name.includes('Default') ? : ;\n};\n","import styled from 'styled-components';\nimport { parseColor } from '../../styles';\n\nexport const MeterWrapper = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\n\nexport const BarWrapper = styled.div<{\n background?: string;\n roundLeftEdge: boolean;\n roundRightEdge: boolean;\n height?: number;\n}>`\n flex: 1;\n display: flex;\n gap: ${({ theme }) => theme.baseSize / 16}px;\n height: ${({ theme, height }) => height ?? theme.baseSize / 2}px;\n border-top-left-radius: ${({ theme, roundLeftEdge }) => (roundLeftEdge ? theme.baseSize / 2 / 2 : 0)}px;\n border-bottom-left-radius: ${({ theme, roundLeftEdge }) => (roundLeftEdge ? theme.baseSize / 2 / 2 : 0)}px;\n border-top-right-radius: ${({ theme, roundRightEdge }) => (roundRightEdge ? theme.baseSize / 2 / 2 : 0)}px;\n border-bottom-right-radius: ${({ theme, roundRightEdge }) => (roundRightEdge ? theme.baseSize / 2 / 2 : 0)}px;\n\n background: ${({ theme, background }) => (background ? parseColor(theme, background) : theme.backgroundProgressBar)};\n overflow: hidden;\n`;\n\nexport interface MeterBarProps {\n width: number;\n color?: string;\n align?: 'left' | 'right';\n animate?: boolean;\n appearance?: 'filled' | 'dashed';\n minWidth?: number;\n}\n\nexport const Bar = styled.div.attrs>(\n ({ width, align = 'left' }) => ({\n style: { transform: `translateX(${align === 'left' ? -(100 - width) : 100 - width}%)` },\n })\n)`\n height: 100%;\n width: ${({ width }) => `${width}%`};\n &:only-child {\n width: 100%;\n }\n &:not(:only-child) {\n transform: none !important;\n }\n min-width: ${({ theme, minWidth }) => minWidth ?? theme.baseSize / 2}px;\n background: ${({ theme, color, appearance = 'filled' }) =>\n appearance === 'filled' ? (color ? parseColor(theme, color) : theme.backgroundProgressBarMeter) : undefined};\n border: ${({ theme, color, appearance = 'filled' }) =>\n appearance === 'filled'\n ? 'none'\n : `1px dashed ${color ? parseColor(theme, color) : theme.backgroundProgressBarMeter}`};\n transition: ${({ animate }) => (animate ? `200ms ease-out,` : ``)}} background 200ms ease;\n transform-origin: center ${({ align = 'left' }) => align};\n`;\nBar.displayName = 'MeterBar';\n\nexport const Label = styled.div`\n min-width: ${({ theme }) => 3 * theme.baseSize}px;\n text-align: right;\n font-size: ${({ theme }) => theme.fontSizeTiny}rem;\n color: ${({ theme }) => theme.colorTextSubtle};\n`;\n","import Big from 'big.js';\nimport { useEffect, useState, type PropsWithChildren, type ReactNode } from 'react';\nimport { bigMin, toBigWithDefault } from '../../utils';\nimport { Bar, BarWrapper, Label, MeterWrapper } from './styles';\n\ninterface SharedProps {\n backgroundColor?: string;\n /** Whether or not to show the standard % label to the right of the bar (eg 95.00 %) */\n showLabel?: boolean;\n label?: string;\n animate?: boolean;\n showInitialAnimation?: boolean;\n /** Whether or not to round the starting edge of the bar. Defaults to true. */\n roundStartingEdge?: boolean;\n height?: number;\n className?: string;\n}\n\nfunction asPercent(value: number | string | Big) {\n const valueBig = toBigWithDefault(value, 0);\n return valueBig.gt(0) ? valueBig.times(100).toNumber() : 0;\n}\n\nexport type MeterWithChildrenProps = PropsWithChildren;\nexport type MeterWithValueProps = SharedProps & {\n value: number;\n animate?: boolean;\n appearance?: 'filled' | 'dashed';\n alignBar?: 'left' | 'right';\n color?: string;\n};\n\nexport type { MeterBarProps } from './styles';\n\nexport type MeterProps = MeterWithChildrenProps | MeterWithValueProps;\n\nexport function Meter(props: MeterWithChildrenProps): ReactNode;\nexport function Meter(props: MeterWithValueProps): ReactNode;\nexport function Meter(props: MeterProps): ReactNode {\n const {\n backgroundColor,\n showLabel = true,\n showInitialAnimation = true,\n label,\n roundStartingEdge = true,\n height,\n } = props;\n\n const value = 'value' in props ? props.value : undefined;\n const children = 'children' in props ? props.children : undefined;\n\n const [percent, setPercent] = useState(value != null && !showInitialAnimation ? asPercent(value) : 0);\n useEffect(() => {\n if (value == null) {\n return;\n }\n // Allow initial render and then set width to get animation\n if (percent === 0) {\n const timer = setTimeout(() => setPercent(asPercent(value)), 200);\n return () => clearTimeout(timer);\n } else {\n setPercent(asPercent(value));\n }\n }, [value, percent]);\n\n const alignBar = 'alignBar' in props ? props.alignBar : 'left';\n const roundLeftEdge = alignBar === 'right' || (alignBar === 'left' && roundStartingEdge);\n const roundRightEdge = alignBar === 'left' || (alignBar === 'right' && roundStartingEdge);\n\n return (\n \n \n {'value' in props ? (\n \n ) : (\n children\n )}\n \n {showLabel && }\n \n );\n}\n\nMeter.Bar = Bar;\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type { ReactNode } from 'react';\nimport { toBig } from '../../utils';\nimport type { FilledPercentColumnValue } from '../BlotterTable';\nimport { Meter, type MeterProps, type MeterWithValueProps } from '../Meter';\nimport { Tooltip } from '../Tooltip';\n\nexport type AgGridMeterProps = ICellRendererParams &\n Omit & {\n alignBar?: 'left' | 'right';\n /** @deprecated\n * Super hacky way to override the valueGetter. Has one usage in Marketplace. Remove once feasible. Do not use!\n */\n getMeterFillPercentage?: (params: ICellRendererParams) => string;\n /** @deprecated\n * A callback providing you with the MeterProps. Using this you can return a ReactNode which will be rendered in a tooltip\n *\n * Use AgGrid's own column tooltip functionality instead in the future. We do not want to couple our tooltips with the props to .\n * Using AgGrid's own tooltips lets us build them based on the entity type (node.data), eg order, which leads to less coupled code.\n */\n tooltip?: (props: { meterProps: MeterWithValueProps } & AgGridMeterProps) => ReactNode | null;\n };\n\nexport function AgGridMeter(params: AgGridMeterProps) {\n const {\n showInitialAnimation,\n alignBar = 'left',\n showLabel,\n tooltip,\n getMeterFillPercentage,\n valueFormatted,\n } = params;\n\n const value = params.value ?? undefined;\n\n if (value == null) {\n return ;\n }\n\n const label = valueFormatted ?? undefined;\n\n let meterValue: number | undefined = undefined;\n let color: string | undefined = undefined;\n\n // This component accepts different kinds of \"value\" props. One is an object ({ value: BigSource, color: string }), and other is string | number\n // It shouldn't, but that's what it does.\n if (typeof value === 'object' && 'value' in value) {\n meterValue = toBig(value.value)?.toNumber();\n color = value.color;\n } else {\n meterValue = toBig(value)?.toNumber();\n }\n\n if (getMeterFillPercentage) {\n meterValue = toBig(getMeterFillPercentage(params))?.toNumber();\n }\n\n if (meterValue == null) {\n return ;\n }\n\n const meterProps: MeterWithValueProps = {\n value: meterValue,\n label,\n showLabel,\n showInitialAnimation,\n color,\n alignBar,\n };\n\n const maybeTooltip = tooltip?.({ meterProps, ...params });\n\n if (maybeTooltip) {\n return (\n \n \n \n );\n }\n\n return ;\n}\n","import { MultiSelect } from 'components/Form/MultiSelect';\nimport styled from 'styled-components';\nimport { useDynamicCallback } from '../../hooks/useDynamicCallback';\nimport type { AgGridMultiSelectDropdownProps } from './types';\n\nexport const AgGridMultiSelectDropdown = function AgGridMultiSelectDropdown({\n multiSelectProps,\n portalize = false,\n value,\n onValueChange,\n}: AgGridMultiSelectDropdownProps) {\n const handleChange = useDynamicCallback((newValue: T[] | undefined) => {\n onValueChange(newValue);\n });\n\n return (\n \n \n \n );\n};\n\nconst MultiSelectWrapper = styled.div`\n margin-top: 3px;\n background: ${({ theme }) => theme.backgroundDropdownInput};\n`;\n","import type { ReactNode } from 'react';\nimport { defineMessages } from 'react-intl';\nimport styled, { css, keyframes } from 'styled-components';\nimport { Box } from '../Core';\nimport { FormattedMessage } from '../Intl';\n\nconst fadeIn = keyframes`\n 0% { opacity: 0 }\n 50% {opacity: 0 }\n 100% { opacity: 1 }\n`;\n\nconst messages = defineMessages({\n noRows: {\n defaultMessage: 'There are no rows to show',\n id: 'AgGrid.noRows',\n },\n});\n\nexport const EmptyStateWrapper = styled(Box)<{ animate?: boolean }>`\n display: flex;\n background: var(--ag-background-color);\n align-items: center;\n ${({ animate }) =>\n animate &&\n css`\n animation: ${fadeIn} 250ms ease-out forwards;\n `}\n`;\nEmptyStateWrapper.defaultProps = {\n w: '100%',\n h: '100%',\n p: '6rem',\n};\n\nexport const EmptyStateContent = styled(Box)<{ minHeight?: number }>`\n border: dashed 1px ${({ theme }) => theme.colors.white.mute};\n border-radius: ${({ theme }) => theme.borderRadiusHuge}px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: ${({ theme, minHeight }) => minHeight ?? theme.baseSize * 3}px;\n height: 100%;\n`;\n\nexport const EmptyState = styled(Box)`\n align-items: center;\n display: flex;\n flex-direction: column;\n\n h1,\n h2,\n i {\n color: ${({ theme }) => theme.colorTextMuted};\n font-weight: ${({ theme }) => theme.fontWeightRegular};\n margin: 0;\n\n & + * {\n margin-top: ${({ theme }) => theme.spacingLarge}px;\n }\n }\n`;\n\nexport const AgGridNoRowsOverlay = ({ renderEmpty }: { renderEmpty: () => JSX.Element }) => {\n return renderEmpty != null ? renderEmpty() : ;\n};\n\nexport const NoRowsOverlay = () => {\n return (\n \n

\n \n

\n
\n );\n};\n\nexport const BlotterTableOverlay = ({ children }: { children: ReactNode }) => {\n return (\n \n \n {children}\n \n \n );\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { get } from 'lodash';\nimport type { ReactNode } from 'react';\nimport { useCurrenciesContext } from '../../contexts';\nimport { Order } from '../../types/Order';\nimport { OrdTypeEnum, SideEnum } from '../../types/types';\nimport { getPricingReference, messages as prettyPricingMessages, prettyPricingMode } from '../../utils';\nimport type { PriceValue } from '../BlotterTable/aggFuncs/priceAggFunc';\nimport { Flex } from '../Core';\nimport { InlineFormattedNumber, NumberVariants } from '../FormattedNumber';\nimport { IconName } from '../Icons';\nimport { FormattedMessage } from '../Intl';\nimport { Text } from '../Text';\nimport { Tooltip } from '../Tooltip';\nimport type { AgGridPriceProps } from './AgGridPrice.types';\n\nfunction isPrettyPricingMessageKey(key: string): key is keyof typeof prettyPricingMessages {\n return !!prettyPricingMessages[key];\n}\n\nexport function AgGridPrice({\n value,\n data,\n showCurrency = true,\n round,\n increment,\n showFeeIcon = 'auto',\n colDef,\n sideColor,\n showReferencePrice,\n}: AgGridPriceProps & Pick, 'colDef' | 'value' | 'data'>) {\n const { currenciesBySymbol } = useCurrenciesContext();\n const currencyInfo = value?.quoteCurrency ? currenciesBySymbol.get(value.quoteCurrency) : undefined;\n const ordType = data instanceof Order ? data.OrdType : undefined;\n\n let shouldShowFeeIcon = showFeeIcon === 'always';\n if (showFeeIcon === 'auto') {\n shouldShowFeeIcon = ordType === OrdTypeEnum.LimitAllIn || colDef?.field === 'AvgPxAllIn';\n }\n\n let variant: NumberVariants | undefined;\n const side = data?.['AggressorSide' satisfies keyof Order];\n if (sideColor && side) {\n variant = side === SideEnum.Buy ? NumberVariants.Positive : NumberVariants.Negative;\n }\n\n const maybePricingMode = get(data, 'PricingMode');\n const maybePricingReference = get(data, 'PricingReference');\n\n if (!value || !value.price) {\n if (showReferencePrice) {\n // If no price returned from market (bad connection or order not yet started), we show the reference price\n const amount = getPricingReference({ PricingMode: maybePricingMode, PricingReference: maybePricingReference });\n return (\n \n );\n }\n\n return <>;\n }\n\n return (\n \n \n \n );\n}\n\n/**\n * Renders the PricingReference as a tooltip.\n */\nexport function ReferencePriceTooltip({\n entity,\n disabled = false,\n children,\n}: {\n entity: Partial>;\n disabled?: boolean;\n children: ReactNode;\n}) {\n if (!entity.PricingMode || !entity.PricingReference || disabled) {\n return <>{children};\n }\n\n const amount = getPricingReference(entity);\n if (!amount) {\n return <>{children};\n }\n\n const pricingMode = prettyPricingMode(entity.PricingMode);\n const renderedPricingMode = isPrettyPricingMessageKey(pricingMode) ? (\n \n ) : (\n pricingMode\n );\n\n return (\n \n {renderedPricingMode}:\n \n \n }\n >\n {children}\n \n );\n}\n","import styled from 'styled-components';\nimport type { ProcessStepSizes } from './types';\n\nexport const ProcessStepsWrapper = styled.div<{ size: ProcessStepSizes }>`\n display: grid;\n gap: ${({ theme, size }) => size * theme.baseSize * 4}px;\n grid-template-columns: repeat(auto-fit, minmax(${({ theme, size }) => size * theme.baseSize * 3}px, min-content));\n grid-auto-flow: column;\n`;\n\nexport const StepWrapper = styled.div<{ size: ProcessStepSizes; disabled?: boolean; showLabel?: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n position: relative;\n cursor: ${({ disabled }) => (disabled ? 'initial' : 'pointer')};\n color: ${({ theme }) => theme.colorTextImportant};\n transition: color 200ms ease;\n padding-bottom: ${({ size, theme, showLabel }) =>\n showLabel ? size * theme.fontSizeDefault * theme.baseSize + size * theme.spacingMedium : 0}px;\n\n &:hover {\n color: ${({ theme }) => theme.colorTextAttention};\n }\n`;\n\nexport const StepLabel = styled.div<{ size: ProcessStepSizes; color: string }>`\n margin-top: ${({ size, theme }) => size * theme.spacingMedium}px;\n font-size: ${({ size, theme }) => size * theme.fontSizeDefault}rem;\n color: ${({ color }) => color};\n position: absolute;\n bottom: 0;\n white-space: nowrap;\n`;\n\nexport const StepConnectionWrapper = styled.svg<{ size: ProcessStepSizes; width: number }>`\n position: absolute;\n transform: translate(-100%, ${({ theme, size }) => (size * theme.baseSize * 2.66667) / 2}px);\n top: 0;\n left: 0;\n width: ${({ width }) => width}px;\n`;\n","import { useTheme } from 'styled-components';\nimport { StepConnectionWrapper } from './styles';\nimport { ProcessStepSizes, ProcessStepState } from './types';\n\ntype StepConnectionProps = {\n hidden: boolean;\n state: ProcessStepState;\n size: ProcessStepSizes;\n};\n\nexport const StepConnection = ({ state, hidden, size }: StepConnectionProps) => {\n const { baseSize, colorStepConnectionOpen, colorStepConnectionDone } = useTheme();\n const width = size * baseSize * 4;\n const height = size !== ProcessStepSizes.icon ? size * baseSize * 0.125 : 1;\n if (hidden) {\n return null;\n }\n\n return (\n \n \n \n \n );\n};\n","import { useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuid } from 'uuid';\nimport { ProcessStepSizes, ProcessStepState } from './types';\n\ntype StepIconProps = {\n state: ProcessStepState;\n size: ProcessStepSizes;\n};\n\nconst ICON_SIZE_FACTOR = 2.66667;\nexport const StepIcon = ({ state, size }: StepIconProps) => {\n const [id] = useState(uuid());\n const { colorStepIconActive, colorStepIconOpen, baseSize } = useTheme();\n const iconSize = size * baseSize * ICON_SIZE_FACTOR;\n\n const css = `\n circle {\n transition: r 200ms ease;\n }\n path {\n transition: stroke-dashoffset 0ms ease;\n }\n path.active {\n transition: stroke-dashoffset 200ms 200ms ease;\n }\n `;\n\n const icon = () => (\n <>\n \n \n \n \n {size !== ProcessStepSizes.icon && (\n \n )}\n {size !== ProcessStepSizes.icon && (\n \n )}\n \n \n {size !== ProcessStepSizes.icon && (\n \n )}\n \n \n );\n\n return (\n \n {icon()}\n \n );\n};\n","import { useTheme } from 'styled-components';\nimport { StepConnection } from './StepConnection';\nimport { StepIcon } from './StepIcon';\nimport { ProcessStepsWrapper, StepLabel, StepWrapper } from './styles';\nimport { ProcessStepSizes, ProcessStepState, type ProcessStep } from './types';\n\nexport const ProcessSteps = ({\n steps,\n size = ProcessStepSizes.default,\n showLabels = true,\n onClickStep,\n}: ProcessStepsProps) => {\n const { colorTextImportant, colorTextSubtle } = useTheme();\n return (\n \n {steps.map((step, index) => {\n const labelColor = step.state === ProcessStepState.Active ? colorTextImportant : colorTextSubtle;\n return (\n !step.disabled && onClickStep && onClickStep(step, index)}\n >\n \n {showLabels && (\n \n {step.label}\n \n )}\n \n );\n};\n\ntype ProcessStepsProps = {\n steps: ProcessStep[];\n size?: ProcessStepSizes;\n showLabels?: boolean;\n onClickStep?: (step: ProcessStep, index: number) => void;\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { ProcessStepSizes, ProcessStepState, ProcessSteps, type ProcessStep } from '../ProcessSteps';\n\nexport type AgGridProcessStepProps = {\n steps: ProcessStep[];\n};\n\nexport function AgGridProcessStep({ value, steps }: ICellRendererParams & AgGridProcessStepProps) {\n const activeIndex = steps.findIndex(step => step.statuses?.includes(value));\n const currentSteps = steps.map((step, index) => {\n return {\n ...step,\n state:\n index === activeIndex\n ? ProcessStepState.Active\n : index < activeIndex\n ? ProcessStepState.Done\n : ProcessStepState.Open,\n };\n });\n return ;\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useTheme } from 'styled-components';\nimport { useDynamicCallback } from '../../hooks/useDynamicCallback';\nimport { EMPTY_OBJECT } from '../../utils';\nimport { IconButton } from '../Button';\nimport { Box } from '../Core';\nimport { AutocompleteDropdown, FuseAutocompleteResult } from '../Form/AutocompleteDropdown';\nimport { useDropdownPopper } from '../Form/Dropdown';\nimport { Input } from '../Form/Input';\nimport { getDropdownItemHeight, useSearchSelect } from '../Form/SearchSelect';\nimport { FormControlSizes } from '../Form/types';\nimport { IconName } from '../Icons';\nimport type { AgGridSearchSelectDropdownProps } from './types';\n\nexport const AgGridSearchSelectDropdown = function AgGridSearchSelectDropdown({\n useSearchSelectParams,\n useDropdownParams,\n maxHeight,\n showClear,\n showDropdownSearch = true,\n searchPlaceholder,\n portalize = false,\n size = FormControlSizes.Small,\n value,\n onValueChange,\n ...cellEditorParams\n}: AgGridSearchSelectDropdownProps) {\n const theme = useTheme();\n\n const handleChange = useDynamicCallback((newValue: T | undefined) => {\n onValueChange(newValue);\n cellEditorParams.api.stopEditing();\n });\n\n const dropdownRef = useRef(cellEditorParams.eGridCell);\n const inputRef = useRef(null);\n\n // hardcoded for now but can be parameterized in the future\n const dropdownSize = FormControlSizes.Small;\n\n const searchSelect = useSearchSelect({\n ...useSearchSelectParams,\n itemSize: getDropdownItemHeight(theme.baseSize, dropdownSize),\n inputRef,\n onChange: handleChange,\n });\n const { openMenu, isOpen, getInputProps, reset } = searchSelect;\n\n const dropdown = useDropdownPopper({\n ...useDropdownParams,\n isOpen,\n referenceElement: dropdownRef.current,\n // There are two cases of clicking outside: 1) you click on another editable cell in the blotter, or 2) you just click outside of the blotter\n // In case 1 -- this below will not be called as ag grid will unmount this component. For 2), we call stopEditing since we are indeed stopping editing by clicking outside.\n onClickOutside: () => {\n cellEditorParams.api.stopEditing();\n },\n });\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n reset();\n handleChange(undefined);\n e.preventDefault();\n },\n [reset, handleChange]\n );\n\n useEffect(() => {\n setTimeout(() => openMenu(), 0);\n }, [openMenu]);\n\n return (\n \n e.stopPropagation()}\n data-testid=\"dropdown-clear\"\n />\n )\n }\n />\n }\n />\n \n );\n};\n","import type { ReactNode } from 'react';\nimport type { Order } from '../../types';\nimport { Icon, IconName } from '../Icons';\n\ninterface DDHOrderIconProps {\n order: Order;\n}\n\nexport function DDHOrderIcon({ order }: DDHOrderIconProps): ReactNode | null {\n if (!order.isDDHParentOrder && !order.isDDHHedgeOrder) {\n return null;\n }\n return (\n \n );\n}\n","import styled from 'styled-components';\nimport { HStack } from '../Core';\n\nexport const Wrapper = styled(HStack)`\n vertical-align: middle;\n`;\n\nexport const Expiration = styled.span`\n color: ${({ theme }) => theme.colors.blue.lighten};\n`;\n","import type { ReactNode } from 'react';\nimport { useTheme, type DefaultTheme } from 'styled-components';\nimport type { Security } from '../../types/Security';\nimport { Box, Flex, type BoxProps } from '../Core';\nimport { CurrencyIcon } from '../CurrencyIcon';\nimport { Tooltip } from '../Tooltip';\nimport { Wrapper } from './styles';\n\nexport { Expiration } from './styles';\n\ntype SecurityProps = (\n | {\n symbol?: string;\n security: Security;\n }\n | {\n symbol: string;\n security?: Security;\n }\n) & {\n currency?: string;\n showIcon?: boolean;\n showDescription?: boolean;\n theme?: DefaultTheme;\n iconSize?: number;\n colorful?: boolean;\n securityTooltip?: ReactNode;\n suffix?: ReactNode;\n} & Omit;\n\nexport function SecurityRenderer({\n symbol,\n security,\n currency,\n showIcon,\n showDescription,\n theme,\n iconSize = 16,\n colorful,\n securityTooltip,\n suffix,\n ...props\n}: SecurityProps) {\n const hookTheme = useTheme();\n const themeToUse = theme ?? hookTheme;\n const { colorTextSubtle, colorTextImportant } = themeToUse;\n\n const displaySymbol = security?.DisplaySymbol || symbol;\n\n return (\n \n {showIcon !== false && (currency != null || security != null) && (\n \n )}\n\n \n \n \n {displaySymbol}\n {\n /* + means that additional information can be seen by hovering symbol */\n !!securityTooltip && '+'\n }\n {suffix}\n \n {showDescription && (\n \n {security?.Description}\n \n )}\n \n \n \n );\n}\n\nconst ICON_STYLE = {\n flexShrink: 0,\n};\n","import { createContext, useContext } from 'react';\nimport type { ITourContext } from './types';\n\nexport const TourContext = createContext(undefined);\n\nexport function useTourContext() {\n const context = useContext(TourContext);\n if (context == null) {\n throw new Error('useTour must be used within a TourProvider');\n }\n return context;\n}\n","import type { ITourProps } from './types';\nimport { useTour } from './useTour';\n\n/**\n * Simple convenient declarative API to start/enqueue tours.\n * Useful when tours should start/enqueue based on some when another component is being rendered.\n * @see useTour\n */\nexport function Tour({ tour, enqueue, delay }: ITourProps) {\n useTour(tour, true, { enqueue, delay });\n return null;\n}\n","import { useLayoutEffect } from 'react';\nimport { useTourContext } from './TourContext';\nimport type { ITourProps } from './types';\n\n/**\n * Hook that works similar to React Spring's `useTransition`.\n * Starts/enqueues a tour when `enable` is true.\n *\n * @param tour Name of the tour\n * @param enable Whether to start/enqueue the tour\n * @param enqueue If true, adds the tour to the queue instead of starting it immediately\n * @param delay Delay in ms before starting/enqueueing the tour\n */\nexport function useTour(\n tour: ITourProps['tour'],\n enable: boolean,\n { enqueue = true, delay = 500 }: Pick\n) {\n const { startTour, endTour, enqueueTour, dequeueTour } = useTourContext();\n\n useLayoutEffect(() => {\n if (!enable) {\n return;\n }\n\n let isMounted = true;\n const startOrEnqueue = enqueue ? enqueueTour : startTour;\n\n if (delay === 0) {\n startOrEnqueue(tour);\n } else {\n setTimeout(() => {\n if (isMounted) {\n startOrEnqueue(tour);\n }\n }, delay);\n }\n\n return () => {\n isMounted = false;\n endTour(tour);\n if (enqueue) {\n dequeueTour(tour);\n }\n };\n }, [startTour, endTour, enqueueTour, dequeueTour, enable, enqueue, tour, delay]);\n}\n","import { compact, uniq } from 'lodash';\nimport { useMemo } from 'react';\nimport { useSecuritiesContext } from '../../contexts';\nimport { useUnifiedLiquidityAvailableSymbols, type UnifiedLiquidityParameter } from '../../hooks';\nimport { ProductTypeEnum, type Security } from '../../types';\nimport { isMultileg } from '../../utils/security';\nimport { VStack } from '../Core';\nimport { Text } from '../Text';\n\ninterface UnifiedLiquidityTooltipProps {\n security: Security | undefined;\n symbols: string[] | undefined;\n availableSymbols?: string[];\n}\n\nexport const UnifiedLiquidityTooltip = ({ security, symbols, availableSymbols }: UnifiedLiquidityTooltipProps) => {\n const { securitiesBySymbol } = useSecuritiesContext();\n\n const displayStr = useMemo(\n () => getDisplayStr(security, securitiesBySymbol, symbols, availableSymbols),\n [security, symbols, availableSymbols, securitiesBySymbol]\n );\n\n if (!symbols) {\n return null;\n }\n\n return (\n \n \n Unified Liquidity\n \n \n {displayStr}\n \n \n );\n};\n\nexport const UnifiedLiquidityDescriptiveTooltip = ({\n security,\n markets,\n marketAccounts,\n unifiedLiquidityParameter,\n}: {\n security: Security;\n markets: string[];\n marketAccounts: string[];\n unifiedLiquidityParameter: UnifiedLiquidityParameter;\n}) => {\n const unifiedLiquidityAvailableSymbols = useUnifiedLiquidityAvailableSymbols({\n markets,\n marketAccounts,\n symbol: security.Symbol,\n });\n const { securitiesBySymbol } = useSecuritiesContext();\n\n const displayStr = useMemo(\n () => getDisplayStr(security, securitiesBySymbol, unifiedLiquidityAvailableSymbols),\n [security, unifiedLiquidityAvailableSymbols, securitiesBySymbol]\n );\n return (\n <>\n {unifiedLiquidityParameter.Description}\n {unifiedLiquidityAvailableSymbols.length > 0 && (\n <>\n
\n Included symbols: {displayStr}\n \n )}\n \n );\n};\n\nfunction getDisplayStr(\n security: Security | undefined,\n securitiesBySymbol,\n symbols: string[] | undefined,\n availableSymbols?: string[]\n): string {\n if (security?.ProductType === ProductTypeEnum.PerpetualSwap || isMultileg(security)) {\n return uniq(\n compact(\n (availableSymbols ?? symbols ?? []).sort().map(symbol => {\n return securitiesBySymbol.get(symbol)?.DisplaySymbol;\n })\n )\n ).join(', ');\n } else {\n return symbols?.join(', ') ?? '';\n }\n}\n","import type { GridApi, IRowNode } from 'ag-grid-community';\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type { CustomCellEditorProps } from 'ag-grid-react';\nimport type { ReactNode } from 'react';\nimport type { Currency } from '../../types/Currency';\nimport type { RequiredProperties } from '../../utils';\nimport type { SizeValue } from '../BlotterTable/aggFuncs/types';\nimport type { SizeColumnParams } from '../BlotterTable/columns/size.types';\nimport type { WarningColumnValue } from '../BlotterTable/columns/warning.types';\nimport type { ButtonProps, IconButtonProps } from '../Button';\nimport type { MultiSelectProps } from '../Form';\nimport type { UseDropdownPopperProps } from '../Form/Dropdown';\nimport type { SearchSelectProps, UseSearchSelectProps } from '../Form/SearchSelect/types';\nimport type { InlineFormattedNumberProps, NumberVariants } from '../FormattedNumber';\n\nexport const WARNING_ROW_CLASSNAME = 'ag-row-warning-severity-high';\n\nexport type AgGridWarningProps = ICellRendererParams & {\n tooltip?: ReactNode;\n tooltipWidth?: string;\n};\n\nexport type AgGridSearchSelectDropdownProps = CustomCellEditorProps & {\n useSearchSelectParams: Omit, 'onChange' | 'selection' | 'inputRef'>;\n useDropdownParams?: Omit;\n} & Pick<\n SearchSelectProps,\n 'maxHeight' | 'showClear' | 'showDropdownSearch' | 'searchPlaceholder' | 'portalize' | 'size'\n >;\n\nexport type AgGridMultiSelectDropdownProps = CustomCellEditorProps & {\n multiSelectProps: Omit, 'onChange' | 'selection' | 'inputRef' | 'selections'>;\n} & Pick, 'maxHeight' | 'showDropdownSearch' | 'searchPlaceholder' | 'portalize'>;\n\nexport type AgGridSizeProps = Pick<\n SizeColumnParams,\n 'sentiment' | 'getSentiment' | 'highlightNegative' | 'round' | 'truncate' | 'trimTrailingZeroes'\n> &\n ICellRendererParams & {\n inlineFormattedNumberAlignment?: InlineFormattedNumberProps['align'];\n tooltip?: ReactNode;\n };\n\nexport type AgGridButtonProps = Omit & {\n onClick(params: { node: IRowNode; api: GridApi }): void;\n disabled?: boolean | ((params: { node: IRowNode; api: GridApi }) => boolean);\n hide?: (data: IRowNode['data']) => boolean;\n};\n\nexport type AgGridCurrencyParams = Omit;\n\nexport type AgGridCurrencyProps = {\n value: string;\n currencies?: Map, 'Symbol' | 'Description'>>;\n showDescription?: boolean;\n showIcon?: boolean;\n colorful?: boolean;\n iconSize?: number;\n\n // If the value is to be derived\n symbolField?: string;\n securityCurrencyField?: string;\n};\n\nexport type AgGridFormattedNumberProps = {\n highlightNegative?: boolean;\n unit?: string;\n currencies?: Map;\n currencyField?: string;\n sentiment?: NumberVariants;\n showCurrency?: boolean;\n round?: boolean;\n increment?: string;\n};\n\nexport type AgGridIconButtonProps = Omit & {\n onClick?: (params: { node: IRowNode; api: GridApi }) => void;\n hide?: (params: { node: IRowNode; api: GridApi }) => boolean;\n /**\n * The data-value of the row for the icon button, useful for testing.\n */\n dataValue?: string;\n};\n\nexport enum SecurityTooltipEnum {\n UNIFIED_LIQUIDITY = 'UNIFIED_LIQUIDITY',\n}\n\nexport enum SecurityToursEnum {\n DDH_ENABLED_ORDER = 'DDH_ENABLED_ORDER',\n}\n\nexport type AgGridSecurityProps = {\n showIcon?: boolean;\n showDescription?: boolean;\n tooltip?: SecurityTooltipEnum;\n colorful?: boolean;\n showAsteriskOnEmpty?: boolean;\n suffix?: ReactNode;\n tours?: SecurityToursEnum[];\n};\n\nexport type AgGridUserProps = {\n /** Define by which property and in which map we should look for the user entry */\n valueFormatWithMap?: 'email' | 'id';\n};\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { useMemo } from 'react';\nimport { useSecuritiesContext } from '../../contexts/SecuritiesContext';\nimport { Order } from '../../types/Order';\nimport type { Security } from '../../types/Security';\nimport { LegDirectionEnum, UnifiedLiquidityEnum } from '../../types/types';\nimport { getSymbolsAcrossMarkets, isMultileg } from '../../utils';\nimport { isRowHeightExpanded } from '../BlotterTable/utils';\nimport { HStack, VStack } from '../Core';\nimport { DDHOrderIcon } from '../DDH/DDHOrderIcon';\nimport { SecurityRenderer } from '../SecurityRenderer';\nimport { Text } from '../Text';\nimport { Tour } from '../Tour';\nimport { UnifiedLiquidityTooltip } from '../UnifiedLiquidity';\nimport { type AgGridSecurityProps, SecurityTooltipEnum, SecurityToursEnum } from './types';\n\nexport function AgGridSecurity({\n value: unsanitizedValue,\n showIcon,\n showDescription,\n context,\n tooltip,\n data,\n colorful,\n node,\n api,\n suffix,\n tours,\n}: ICellRendererParams & AgGridSecurityProps) {\n const value: string | undefined = typeof unsanitizedValue === 'string' ? unsanitizedValue : undefined;\n const security: Security | undefined = value ? context.current.securitiesBySymbol?.get(value) : undefined;\n\n const securityTooltip = useMemo(() => {\n if (\n tooltip === SecurityTooltipEnum.UNIFIED_LIQUIDITY &&\n data instanceof Order &&\n data.unifiedLiquidity === UnifiedLiquidityEnum.Enabled\n ) {\n const symbols = getSymbolsAcrossMarkets(data);\n if (symbols.length > 0) {\n return ;\n }\n }\n return null;\n }, [security, tooltip, data]);\n\n const effectiveSuffix = useMemo(() => {\n if (suffix) {\n return suffix;\n }\n if (data instanceof Order && (data.isDDHParentOrder || data.isDDHHedgeOrder)) {\n return (\n <>\n {data.isDDHParentOrder && tours && tours.includes(SecurityToursEnum.DDH_ENABLED_ORDER) && (\n <>\n \n \n \n )}\n \n \n );\n }\n }, [suffix, data, tours]);\n\n const isRowExpanded = isRowHeightExpanded(node, api);\n if (value == null) {\n return null;\n }\n\n return (\n \n \n \n {isRowExpanded && security && isMultileg(security) && (\n \n \n \n \n )}\n \n \n );\n}\n\nfunction MultilegLegDirectionText({ security, legIndex }: { security: Security; legIndex: 0 | 1 }) {\n const { securitiesBySymbol } = useSecuritiesContext();\n const leg = security.MultilegDetails?.Legs?.[legIndex];\n if (!leg) {\n return <>;\n }\n\n const isDirectionSameAsParent = leg.Direction === LegDirectionEnum.Same;\n return (\n \n {isDirectionSameAsParent ? '+1' : '-1'} {securitiesBySymbol.get(leg.Symbol)?.DisplaySymbol ?? leg.Symbol}\n \n );\n}\n","import { default as Big, type BigSource } from 'big.js';\nimport { InlineFormattedNumber, NumberVariants } from '../FormattedNumber';\nimport type { AgGridSizeProps } from './types';\n\nexport function AgGridSize(props: AgGridSizeProps) {\n const {\n sentiment,\n highlightNegative,\n value,\n round,\n context,\n getSentiment,\n inlineFormattedNumberAlignment,\n truncate,\n trimTrailingZeroes,\n } = props;\n if (value == null) {\n return <>;\n }\n\n const { value: numericValue, currency, increment } = value;\n\n if (numericValue === undefined || numericValue === '') {\n return <>;\n }\n\n const currencyInfo = context.current.currenciesBySymbol?.get(currency);\n\n let workingIncrement = increment;\n // If there was no increment passed in, for now we naively grab the DefaultIncrement off the currencyInfo\n if (workingIncrement == null && currencyInfo) {\n workingIncrement = currencyInfo.DefaultIncrement;\n }\n\n const variant =\n getSentiment != null ? getSentiment(props) : tryGetVariant(numericValue, sentiment, highlightNegative);\n\n return (\n \n );\n}\n\nfunction tryGetVariant(\n numericValue: BigSource,\n sentiment: NumberVariants | undefined,\n highlightNegative: boolean | undefined\n) {\n // Always return sentiment if specified\n if (sentiment != null) {\n return sentiment;\n }\n\n // If we want to highlightNegative values, try to parse the numeric value but default to undefined if fail or not lt(0)\n if (highlightNegative) {\n try {\n return Big(numericValue || 0).lt(0) ? NumberVariants.Negative : undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n return undefined;\n}\n","import type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { Toggle } from '../Form/Toggle';\n\nexport interface AgGridToggleProps extends ICellRendererParams {\n disabled?: boolean;\n}\n\nexport const AgGridToggle = ({ value, setValue, disabled }: AgGridToggleProps) => {\n return (\n
\n setValue?.(!value)} />\n
\n );\n};\n","import type { IHeaderParams } from 'ag-grid-community';\nimport { useRef } from 'react';\nimport { HStack } from '../Core';\nimport { Icon, IconName } from '../Icons';\nimport { Text } from '../Text';\nimport { Tooltip } from '../Tooltip';\n\n/** Custom tooltip header (currently used in limited use cases)\n *\n * See {@link AgGridDefaultHeaderTooltip} for a React tooltip header that matches the default ag-grid header display\n */\nexport const AgGridTooltipHeader = (props: IHeaderParams & { tooltip: string }) => {\n const item = useRef(\n \n {props.displayName}\n \n \n \n \n );\n return item.current;\n};\n","import { useCallback, type CSSProperties } from 'react';\nimport { useMixpanel } from '../../contexts';\nimport { useIntl } from '../../hooks';\nimport { MixpanelEvent } from '../../tokens';\nimport { prettyWarningSeverity } from '../../types/WarningSeverity';\nimport { HStack } from '../Core';\nimport { WarningSeverityIcon } from '../Icons';\nimport { Tooltip } from '../Tooltip';\nimport type { AgGridWarningProps } from './types';\n\nexport function AgGridWarning({ value, tooltip, tooltipWidth }: AgGridWarningProps) {\n const intl = useIntl();\n const mixpanel = useMixpanel();\n\n const onOpen = useCallback(() => {\n mixpanel.track(MixpanelEvent.HoverWarningIcon);\n }, [mixpanel]);\n\n if (value == null) {\n return null;\n }\n\n const { severity } = value;\n\n if (tooltip) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n}\n\nconst targetStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n};\n","import type { WarningSeverity } from '../../../types/WarningSeverity';\n\nexport interface WarningColumnValue {\n severity: WarningSeverity;\n /** nodeId refers to the id of the node from which this warning was propagated. */\n nodeId: string;\n}\n\nexport const WARNING_COLID = 'warning';\n","import type { GridApi, IHeaderParams, IRowNode, ModelUpdatedEvent } from 'ag-grid-community';\nimport { isGridApiReady } from 'components/BlotterTable/utils';\nimport { throttle } from 'lodash';\nimport type React from 'react';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useIntl } from '../../hooks';\nimport { WarningSeverity } from '../../types/WarningSeverity';\nimport { WARNING_COLID } from '../BlotterTable/columns/warning.types';\nimport { safeGridApi } from '../BlotterTable/utils';\nimport { HStack } from '../Core';\nimport { ICON_SIZES, Icon, IconName } from '../Icons';\nimport { WarningSeverityIcon, prettyWarningSeverityTitle } from '../Icons/WarningSeverityIcon';\n\nexport const AgGridWarningHeader = ({ progressSort, column, api }: IHeaderParams) => {\n const intl = useIntl();\n const onSortRequested: React.MouseEventHandler = useCallback(\n e => {\n progressSort(e.shiftKey);\n },\n [progressSort]\n );\n const [currentSort, setCurrentSort] = useState(() => column.getSort());\n\n const [warningSeverity, setWarningSeverity] = useState(WarningSeverity.NONE);\n\n // Updating headers based on warningSeverity if included in column data.\n const onHandleModelUpdate = useRef(\n throttle((e: ModelUpdatedEvent<{ warningSeverity: WarningSeverity }>) => {\n // Because of the throttling here, there is evidence of this api being nulled by the time the callback runs (Blotter instance deleted).\n // We handle this by returning early if the api doesnt exist for whatever reason.\n if (!isGridApiReady(api)) {\n return;\n }\n\n let highestSeverity = WarningSeverity.NONE;\n api.forEachNodeAfterFilterAndSort(node => {\n const currWarningSeverity = tryGetWarningSeverityFromNode(api, node);\n if (currWarningSeverity && currWarningSeverity > highestSeverity) {\n highestSeverity = currWarningSeverity;\n // Since we found highest possible warning severity, we can quit early.\n if (highestSeverity === WarningSeverity.HIGH) {\n return;\n }\n }\n });\n setWarningSeverity(highestSeverity);\n }, 300)\n );\n\n useEffect(() => {\n const handleModelUpdated = (e: ModelUpdatedEvent) => onHandleModelUpdate.current && onHandleModelUpdate.current(e);\n safeGridApi(api)?.addEventListener('modelUpdated', handleModelUpdated);\n return () => {\n safeGridApi(api)?.removeEventListener('modelUpdated', handleModelUpdated);\n };\n }, [api]);\n\n useEffect(() => {\n const columnSortChanged = () => {\n setCurrentSort(column.getSort());\n };\n safeGridApi(api)?.addEventListener('sortChanged', columnSortChanged);\n return () => {\n safeGridApi(api)?.removeEventListener('sortChanged', columnSortChanged);\n };\n }, [api, column]);\n\n return (\n \n {currentSort == null && warningSeverity !== WarningSeverity.NONE && (\n \n )}\n {currentSort && (\n \n )}\n \n );\n};\n\n// This interface is to be extended by implementers of the warning column type\nexport interface WarningValue {\n severity: WarningSeverity;\n}\n\n// This function grabs a warningSeverity off of the data on the node if it exists, otherwise tries to grab a severity\n// from the value of the node + WARNING_COLID column\nexport function tryGetWarningSeverityFromNode(api: GridApi, node: IRowNode): WarningSeverity | undefined {\n if (node.data?.warningSeverity != null) {\n return node.data.warningSeverity;\n }\n\n // Try safely to see if we can get a proper .severity off the valueGetter of the column\n const maybeWarningValue: Partial | null | undefined = api.getCellValue({\n colKey: WARNING_COLID,\n rowNode: node,\n });\n if (maybeWarningValue != null && maybeWarningValue.severity != null) {\n return maybeWarningValue.severity;\n }\n\n return undefined;\n}\n","import type { ExpandedChangedEvent, ICellRendererParams } from 'ag-grid-community';\nimport { useCallback, useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { useUnderlyingPriceContext } from '../../../contexts';\nimport { Flex } from '../../Core';\nimport { CurrencyIcon } from '../../CurrencyIcon';\nimport { InlineFormattedNumber } from '../../FormattedNumber';\nimport { Icon, IconName } from '../../Icons';\nimport { Text } from '../../Text';\nimport { Tooltip } from '../../Tooltip';\n\nexport interface AgGridOptionGroupCellProps {\n formattedExpiration: string;\n}\n\nexport const AG_GRID_OPTION_GROUP_KEY = 'optionGroup';\n/**\n * Expects to be rendered full width in options chain as a group.\n */\nexport function AgGridOptionGroupCell(props: ICellRendererParams & AgGridOptionGroupCellProps) {\n const { node, value: rawExpiration, formattedExpiration } = props;\n const [expanded, setExpanded] = useState(node.expanded);\n\n useEffect(() => {\n const expandListener = (event: ExpandedChangedEvent) => setExpanded(event.node.expanded);\n\n node.addEventListener('expandedChanged', expandListener);\n\n return () => {\n node.removeEventListener('expandedChanged', expandListener);\n };\n }, [node]);\n\n const onClick = useCallback(() => node.setExpanded(!node.expanded), [node]);\n\n const { currency, underlyingAmountRecord, market } = useUnderlyingPriceContext();\n const underlyingAmount = underlyingAmountRecord?.[rawExpiration];\n\n return (\n \n {formattedExpiration}\n\n \n {underlyingAmount?.value && (\n \n {market === 'cme' ? (\n \n Underlying Index\n \n ) : (\n Underlying Index\n )}\n \n {currency && }\n \n \n \n )}\n \n \n \n );\n}\n\nconst RowContainer = styled(Flex)`\n ${({ theme }) => css`\n background-color: ${theme.colors.gray['020']};\n transition-duration: 100ms;\n transition-property: background-color;\n :hover {\n background-color: ${theme.colors.gray['030']};\n }\n `}\n`;\n","import type { ICellRendererParams } from 'ag-grid-community';\nimport Big from 'big.js';\nimport { useEffect } from 'react';\nimport type { MarketDataStatistics } from '../../../hooks';\nimport { OptionTypeEnum } from '../../../types';\nimport { EMPTY_OBJECT } from '../../../utils';\nimport { VStack } from '../../Core';\nimport { InlineFormattedNumber, NumberVariants } from '../../FormattedNumber';\n\nexport type MarkObject = Pick;\nexport type GridOptionMarkParams = { currency: string | undefined };\nexport const AG_GRID_OPTION_MARK_KEY = 'optionMark';\n\nexport function AgGridOptionMark(params: ICellRendererParams & GridOptionMarkParams) {\n const { MarkPriceIV, MarkPrice } = params.value || EMPTY_OBJECT;\n const markPriceCurrency = params.currency;\n\n useEffect(() => {\n const field: unknown = params.colDef?.field;\n if (!(typeof field === 'string')) {\n return;\n }\n const type = field.startsWith('Call.') ? OptionTypeEnum.Call : OptionTypeEnum.Put;\n params.api.refreshCells({\n columns: [`${type}.BidPrice`, `${type}.OfferPrice`],\n force: true,\n suppressFlash: true,\n rowNodes: [params.node],\n });\n }, [MarkPrice, params.api, params.node, params.colDef]);\n\n return (\n \n \n \n \n );\n}\n","import type { ICellRendererParams } from 'ag-grid-community';\nimport Big from 'big.js';\nimport { useMemo } from 'react';\nimport { useUnderlyingPriceContext } from '../../../contexts';\nimport { useCurrency } from '../../../hooks';\nimport { toBig } from '../../../utils';\nimport { Box, VStack } from '../../Core';\nimport { InlineFormattedNumber, NumberVariants } from '../../FormattedNumber';\nimport type { AgGridOptionsData } from './types';\n\nexport type GridOptionsPriceQuoteParams = {\n currency: string | undefined;\n type: 'Bid' | 'Offer' | undefined;\n quoteCurrency: string | undefined;\n underlyingQuoteCurrency: string | undefined;\n underlyingPrice: string | undefined;\n expiration: string | undefined;\n highlight?: boolean;\n markPrice?: string;\n};\n\nexport const AG_GRID_OPTION_PRICE_QUOTE_KEY = 'optionPriceQuote';\n\nexport function AgGridOptionPriceQuote(params: ICellRendererParams & GridOptionsPriceQuoteParams) {\n const {\n currency: baseCurrency,\n quoteCurrency,\n type,\n underlyingQuoteCurrency = 'USD',\n underlyingPrice,\n expiration,\n highlight = false,\n markPrice,\n } = params;\n\n // note sure if this is supposed to be baseCurrency === quoteCurrency\n const isPriceInQuote = baseCurrency && quoteCurrency && baseCurrency !== quoteCurrency;\n const variant = type === 'Bid' ? NumberVariants.Positive : type === 'Offer' ? NumberVariants.Negative : undefined;\n const price = params.getValue?.();\n const priceCurrency = isPriceInQuote ? quoteCurrency : baseCurrency;\n\n const underlyingQuoteCurrencyIncrement = useCurrency(underlyingQuoteCurrency)?.DefaultIncrement ?? '0.01';\n const priceIncrement = useCurrency(priceCurrency)?.DefaultIncrement;\n\n const { underlyingAmountRecord } = useUnderlyingPriceContext();\n\n const shouldHighlight = useMemo(() => {\n if (!highlight || !price || !markPrice) {\n return false;\n }\n return type === 'Bid' ? toBig(price)?.gt(markPrice) : toBig(price)?.lt(markPrice);\n }, [highlight, type, price, markPrice]);\n\n if (!price) {\n return null;\n }\n\n const underlying = (expiration && underlyingAmountRecord?.[expiration]?.value) || underlyingPrice;\n const underlyingAmount = underlying ? Big(price).mul(underlying) : null;\n\n return (\n \n \n\n {isPriceInQuote ? null : underlyingAmount ? (\n \n ) : (\n \n )}\n \n );\n}\n","import type { ICellRendererParams } from 'ag-grid-community';\nimport { useMixpanel, useUnderlyingPriceContext } from '../../../contexts';\nimport { MixpanelEvent } from '../../../tokens';\nimport { Box } from '../../Core';\nimport { InlineFormattedNumber } from '../../FormattedNumber';\nimport { Tooltip } from '../../Tooltip';\nimport type { AgGridOptionContext, AgGridOptionsData } from './types';\n\nexport const AG_GRID_OPTION_STRIKE_PRICE_KEY = 'optionStrike';\n\nexport function AgGridOptionStrikePrice(\n params: ICellRendererParams & {\n context: { current: AgGridOptionContext };\n }\n) {\n const { valueFormatted: formattedStrikePrice, value: strikePrice, data, context } = params;\n if (!data) {\n return null;\n }\n const { Expiration } = data;\n\n const strikePriceOfExpiration = context.current.crossStrikeByExpiry?.get(Expiration);\n const isCrossStrike = strikePriceOfExpiration === strikePrice;\n\n const strikePriceToShow = formattedStrikePrice ?? strikePrice;\n if (strikePriceToShow == null) {\n return null;\n }\n\n return isCrossStrike ? (\n \n ) : (\n <>{strikePriceToShow}\n );\n}\n\nfunction HighlightedStrikePrice({\n strikePrice,\n expiration,\n isCrossStrike,\n}: {\n strikePrice: string;\n expiration: string;\n isCrossStrike: boolean;\n}) {\n const mixpanel = useMixpanel();\n const { underlyingAmountRecord } = useUnderlyingPriceContext();\n const underlying = underlyingAmountRecord?.[expiration];\n\n return (\n mixpanel.track(MixpanelEvent.HoverUnderlyingPrice)}\n usePortal\n tooltip={}\n >\n \n {strikePrice}\n \n \n );\n}\n","import styled, { css } from 'styled-components';\nimport { Flex, Grid } from '../Core';\nimport stripe from './stripe.svg';\n\nconst stripesCss = css`\n background: ${`url(${stripe})`};\n margin: ${({ theme }) => theme.spacingSmall}px 0;\n`;\n\nexport const Content = styled(Flex)<{ color: string }>`\n ${({ theme }) => css`\n gap: ${theme.spacingSmall}px;\n padding: ${theme.spacingSmall}px;\n height: 100%;\n font-size: ${theme.fontSizeSm}rem;\n line-height: ${theme.lineHeightSm}rem;\n justify-content: center;\n align-items: center;\n `}\n`;\n\nexport const AlertBannerWrapper = styled(Grid)<{ color: string }>`\n position: absolute;\n inset: 0;\n background: ${({ color }) => color};\n background: linear-gradient(\n 90deg,\n ${({ color }) => color} 0%,\n ${({ color }) => color} max(10px, 1%),\n rgba(0, 0, 0, 0) 10%,\n rgba(0, 0, 0, 0) 90%,\n ${({ color }) => color} min(calc(100% - 10px), 99%),\n ${({ color }) => color} 100%\n );\n pointer-events: none;\n`;\n\nexport const LeftStripes = styled.div`\n ${stripesCss};\n background-position: right;\n margin-left: ${({ theme }) => theme.spacingComfortable}px 0;\n`;\n\nexport const RightStripes = styled.div`\n ${stripesCss};\n background-position: left;\n margin-right: ${({ theme }) => theme.spacingComfortable}px 0;\n`;\n","import { animated } from '@react-spring/web';\nimport styled from 'styled-components';\nimport { modeColor } from '../../styles';\nimport { Z_INDEX } from '../../styles/layout';\nimport { Box, Flex, Grid } from '../Core';\n\ntype WrapperProps = { position: 'absolute' | 'fixed' | 'relative'; width?: number; placement: 'left' | 'right' };\n\nexport const Wrapper = styled(animated.div)`\n height: 100%;\n background: ${({ theme }) => theme.backgroundDrawer};\n backdrop-filter: ${({ theme }) => theme.backdropFilterDrawer};\n z-index: ${Z_INDEX.drawer};\n ${({ width }) => width !== null && `width: ${width}px`};\n min-width: min-content;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n\n ${({ position, placement }) =>\n position === 'fixed' &&\n `\n position: fixed;\n top: 0;\n bottom: 0;\n ${placement === 'left' ? `left: 0;` : `right: 0`};\n `};\n\n ${({ position, placement, theme }) =>\n position === 'absolute' &&\n `\n position: absolute;\n top: 0;\n bottom: 0;\n box-shadow: 0 0 40px ${modeColor(theme, theme.colors.black.mute, theme.colors.black.dim)};\n ${placement === 'left' ? `left: 0;` : `right: 0`};\n `};\n\n ${({ position }) =>\n position === 'relative' &&\n `\n position: relative;\n `};\n`;\n\n/** 3-part Drawer header using CSS GRid */\nexport const DrawerHeader = styled(Grid)`\n display: grid;\n grid-template-columns: ${({ gridTemplateColumns }) => gridTemplateColumns ?? '1fr 1fr 1fr'};\n padding: ${({ p, theme }) => p ?? `0 ${theme.spacingMedium}px`};\n min-height: 3.5rem;\n border-bottom: solid 1px ${({ theme }) => theme.colors.gray['010']};\n flex: 0;\n align-items: center;\n`;\n\n/** Simple 2-part Drawer Header using Flexbox */\nexport const DrawerHeaderFlex = styled(Flex)`\n justify-content: space-between;\n padding: ${({ theme }) => theme.spacingDefault}px ${({ theme }) => theme.spacingMedium}px;\n min-height: 3.5rem;\n border-bottom: solid 1px ${({ theme }) => theme.colors.gray['010']};\n align-items: center;\n`;\n\nexport const DrawerContent = styled(Grid)``;\nDrawerContent.defaultProps = {\n overflow: 'hidden',\n flex: 1,\n p: 'spacingMedium',\n pb: '0',\n};\n\nexport const DrawerFooter = styled(Grid)`\n grid-auto-flow: column;\n grid-auto-columns: 1fr;\n border-top: solid 1px ${({ theme }) => theme.colors.gray['010']};\n`;\nDrawerFooter.defaultProps = {\n p: 'spacingMedium',\n gap: 'spacingMedium',\n};\n\nconst noForwardProps = new Set(['width']);\n\nexport const DrawerWrapper = styled(Box).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !noForwardProps.has(prop) && defaultValidatorFn(prop),\n})<{ width?: number }>`\n background: ${({ theme }) => theme.backgroundDrawer};\n transition: width 200ms ease, margin 200ms ease;\n width: ${({ width }) => (width != null ? `${width}px` : 'auto')};\n height: 100%;\n overflow: hidden;\n flex: 0 0 auto;\n\n @media print {\n display: none;\n }\n`;\n\nexport const DrawerContentWrapper = styled.div.withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !noForwardProps.has(prop) && defaultValidatorFn(prop),\n})<{ width?: number }>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: ${({ width }) => (width != null ? `${width}px` : 'auto')};\n height: 100%;\n overflow: hidden;\n`;\n","import { useTransition } from '@react-spring/web';\nimport type React from 'react';\nimport { useCallback, useMemo, useRef, useState, type CSSProperties, type PropsWithChildren } from 'react';\nimport { useOnClickOutside, useOnKeyDown } from '../../hooks';\nimport type { BoxProps } from '../Core';\nimport { DrawerContentWrapper, DrawerWrapper, Wrapper } from './styles';\n\nexport { DrawerContent, DrawerFooter, DrawerHeader } from './styles';\n\nexport type DrawerInputs = {\n initialIsOpen?: boolean;\n closeOnClickOutside?: boolean;\n closeOnEscape?: boolean;\n position?: 'absolute' | 'relative' | 'fixed';\n placement?: 'right' | 'left';\n resizeable?: boolean;\n width?: number;\n onIsOpenChange?: (isOpen: boolean) => void;\n};\n\nexport type DrawerProps = {\n isOpen: boolean;\n position: 'absolute' | 'relative' | 'fixed';\n placement?: 'right' | 'left';\n open: () => void;\n close: () => void;\n drawerRef: React.RefObject;\n contentRef: React.RefObject;\n resizeable?: boolean;\n width?: number;\n style?: CSSProperties;\n adjustForGapMargin?: CSSProperties['marginRight'];\n} & BoxProps;\n\nexport const useDrawer = ({\n initialIsOpen = false,\n closeOnClickOutside = false,\n closeOnEscape = false,\n position = 'fixed',\n placement = 'right',\n resizeable,\n width,\n onIsOpenChange,\n}: DrawerInputs): DrawerProps => {\n const [isOpen, setIsOpen] = useState(initialIsOpen);\n const contentRef = useRef(null);\n const drawerRef = useRef(null);\n\n const open = useCallback(() => {\n onIsOpenChange?.(true);\n setIsOpen(true);\n }, [onIsOpenChange]);\n\n const close = useCallback(() => {\n onIsOpenChange?.(false);\n setIsOpen(false);\n }, [onIsOpenChange]);\n\n useOnClickOutside(drawerRef, isOpen && closeOnClickOutside ? close : () => {});\n useOnKeyDown({ key: 'Escape' }, isOpen && closeOnEscape ? close : () => {});\n\n return useMemo(\n () => ({\n isOpen,\n open,\n close,\n contentRef,\n drawerRef,\n position,\n placement,\n resizeable,\n width,\n }),\n [isOpen, open, close, contentRef, drawerRef, position, placement, resizeable, width]\n );\n};\n\nexport function Drawer({\n open,\n isOpen,\n children,\n position,\n drawerRef,\n contentRef,\n width,\n style,\n placement = 'right',\n adjustForGapMargin,\n ...props\n}: PropsWithChildren) {\n const transitions = useTransition(isOpen, {\n from: { transform: placement === 'left' ? 'translateX(-100%)' : 'translateX(100%)' },\n enter: { transform: 'translateX(0%)' },\n leave: { transform: placement === 'left' ? 'translateX(-100%)' : 'translateX(100%)' },\n reverse: !isOpen,\n config: { duration: 200 },\n });\n\n const marginRight = isOpen ? undefined : adjustForGapMargin != null ? adjustForGapMargin : '-spacingTiny';\n\n if (position === 'relative') {\n return (\n \n \n {children}\n \n \n );\n }\n\n return transitions(\n (styles, item) =>\n item && (\n \n {children}\n \n )\n );\n}\n","import styled from 'styled-components';\nimport { IconButton } from '../Button';\nimport { FormControlSizes } from '../Form/types';\nimport { IconName } from '../Icons';\n\nexport const DrawerCloseButton = styled(({ onClick, ...props }: { onClick: () => void }) => {\n return (\n \n );\n})`\n position: absolute;\n top: ${({ theme }) => theme.spacingMedium}px;\n right: ${({ theme }) => theme.spacingMedium}px;\n`;\n","import { cloneDeep, entries, get, noop, toNumber, uniqueId } from 'lodash';\nimport { useCallback, useMemo, useState } from 'react';\nimport { useConstant } from '../../hooks';\nimport { bpsToPercent, percentToBps, prettyName } from '../../utils';\nimport { Button, ButtonVariants } from '../Button';\nimport { Box, VStack } from '../Core';\nimport { Divider } from '../Divider';\nimport type { EntityPageRecord } from '../EntityAdminPage';\nimport { FormGroup, Input, SearchSelect } from '../Form';\nimport { DrawerContent, DrawerFooter } from './styles';\n\nexport type InputsAndDropdownsDrawerDropdownOption = { value: string; label: string; description?: string };\n\n/**\n * The InputsAndDropdownsDrawerOption is passed as a drawerOption to InputsAndDropdownsDrawer\n * @required\n * @param field The field of the drawer option.\n * @param type divider, input, inputBPS, inputNumeric, dropdown\n * @param options An array of dropdown options if { type: 'dropdown' }\n * @optional\n * @param title The title of the drawer option.\n * @param required Whether the drawer option is required. Defaults to false.\n * @param disabledWhenEditing Whether the drawer option is disabled when editing.\n * @param placeholder The placeholder of the drawer option.\n * @param hideField Fn for \"is drawer option hidden\".\n * @param disableField Fn for \"is drawer option disabled\".\n */\nexport type InputsAndDropdownsDrawerOption =\n | ({\n field: keyof TDrawerRecord;\n title?: string;\n required?: boolean;\n disabledWhenEditing?: boolean;\n placeholder?: string;\n hideField?: (form: TDrawerRecord) => boolean;\n disableField?: (form: TDrawerRecord) => boolean;\n } & (\n | { type: 'input' | 'inputBPS' | 'inputNumeric' }\n | { type: 'dropdown'; options: InputsAndDropdownsDrawerDropdownOption[] }\n ))\n | { type: 'divider' };\n\ntype InputsAndDropdownsDrawerProps = {\n onSave: (modifiedEntity: TDrawerRecord) => Promise;\n onDelete: (selectedEntity: TRecord) => Promise;\n allowDeleteEntity?: boolean;\n selectedEntity?: TRecord;\n drawerOptions: InputsAndDropdownsDrawerOption[];\n isEditing: boolean;\n};\n\nconst isOptionDivider = (\n option: InputsAndDropdownsDrawerOption\n): option is { type: 'divider' } => option.type === 'divider';\n\nconst getOptionLabel = (\n option: InputsAndDropdownsDrawerOption\n) => {\n if (isOptionDivider(option)) {\n return null;\n }\n return `${option.title || prettyName(String(option.field))}${option.required ? '*' : ''}`;\n};\n\nconst getOptionKey = (option: InputsAndDropdownsDrawerOption) =>\n isOptionDivider(option) ? uniqueId('inputs-and-dropdowns-drawer-divider') : String(option.field);\n\nconst getFormState = (\n entity: TRecord | undefined,\n drawerOptions: InputsAndDropdownsDrawerOption[]\n) => {\n return entries(entity).reduce((acc, [field, value]) => {\n const drawerOption = drawerOptions.find(option => !isOptionDivider(option) && option.field === field);\n if (drawerOption?.type === 'inputBPS') {\n // Convert percent to BPS for form initialization\n acc[field as keyof TDrawerRecord] = (value\n ? percentToBps(value as number)\n : '') as unknown as TDrawerRecord[keyof TRecord];\n } else {\n // Initialize rest of the form with empty strings\n acc[field as keyof TDrawerRecord] = (value ?? '') as TDrawerRecord[keyof TRecord];\n }\n\n return acc;\n }, {} as TDrawerRecord);\n};\n\nconst hideDrawerOption = (\n option: InputsAndDropdownsDrawerOption,\n form: TDrawerRecord\n): boolean => (option.type !== 'divider' && option.hideField?.(form)) ?? false;\n\nexport function InputsAndDropdownsDrawer({\n selectedEntity,\n onSave,\n allowDeleteEntity,\n onDelete,\n drawerOptions,\n isEditing,\n}: InputsAndDropdownsDrawerProps) {\n const [form, setForm] = useState(getFormState(selectedEntity, drawerOptions));\n\n const handleOnFormUpdate = useConstant((field: keyof TDrawerRecord, value: string) => {\n setForm(prev => ({ ...prev, [field]: value }));\n });\n\n const handleDelete = useCallback(() => {\n if (window.confirm('Are you sure you want to delete this entity?')) {\n onDelete(selectedEntity!);\n }\n }, [onDelete, selectedEntity]);\n\n const handleOnSave = useCallback(() => {\n const formWithInputTypesConverted = drawerOptions.reduce((acc, option) => {\n if (option.type === 'inputBPS' && form[option.field]) {\n // Convert BPS to percent for saving\n acc[option.field] = bpsToPercent(form[option.field]) as TDrawerRecord[keyof TDrawerRecord];\n } else if (option.type === 'inputNumeric' && form[option.field]) {\n // Convert string to number for saving\n acc[option.field] = toNumber(form[option.field]) as TDrawerRecord[keyof TDrawerRecord];\n }\n return acc;\n }, cloneDeep(form));\n\n onSave(formWithInputTypesConverted)\n .then(entity => setForm(getFormState(entity, drawerOptions)))\n .catch(noop);\n }, [drawerOptions, form, onSave]);\n\n const someRequiredInputNotPopulated = useMemo(\n () =>\n drawerOptions.some(\n option =>\n // Divider options are ignored\n !isOptionDivider(option) &&\n option.required &&\n !form[option.field] &&\n // If the option is hidden, it is not required.\n !hideDrawerOption(option, form)\n ),\n [drawerOptions, form]\n );\n\n return (\n \n \n \n {drawerOptions\n .filter(drawerOption => !hideDrawerOption(drawerOption, form))\n .map(drawerOption => (\n \n {isOptionDivider(drawerOption) ? (\n \n ) : ['input', 'inputBPS', 'inputNumeric'].includes(drawerOption.type) ? (\n handleOnFormUpdate(drawerOption.field, e.target.value)}\n disabled={(drawerOption.disabledWhenEditing && isEditing) || drawerOption.disableField?.(form)}\n placeholder={drawerOption.placeholder}\n suffix={drawerOption.type === 'inputBPS' ? 'BPS' : undefined}\n inputType=\"text\"\n data-testid={`inputs-and-dropdowns-drawer-${String(drawerOption.field)}`}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n ) : drawerOption.type === 'dropdown' ? (\n option.value === form[drawerOption.field])}\n options={drawerOption.options}\n getLabel={option => option.label}\n getDescription={option => option.description ?? ''}\n onChange={newValue => handleOnFormUpdate(drawerOption.field, newValue?.value ?? '')}\n showClear={true}\n disabled={drawerOption.disabledWhenEditing && isEditing}\n placeholder={drawerOption.placeholder}\n data-testid={`inputs-and-dropdowns-drawer-${String(drawerOption.field)}`}\n />\n ) : null}\n \n ))}\n \n \n \n {allowDeleteEntity && isEditing && (\n \n Delete\n \n )}\n \n Save\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport { modeColor } from '../../styles';\nimport { Box } from '../Core';\nimport { Icon } from '../Icons';\nimport { NotificationSizes } from './types';\n\nexport const NotificationWrapper = styled(Box)<{ size: NotificationSizes }>`\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex: 1;\n min-width: min(20rem, 100%);\n color: ${({ theme }) => theme.colorTextImportant};\n\n ${({ theme, size }) => `\n gap: ${theme.spacingDefault}px;\n padding: ${size === NotificationSizes.Default ? theme.spacingMedium : theme.spacingDefault}px;\n background: ${modeColor(theme, theme.colors.gray.main, theme.colors.gray['040'])};\n\n font-size: ${theme.fontSizeDefault}rem;\n `}\n\n ${Icon} {\n cursor: pointer;\n &:hover {\n color: ${({ theme }) => theme.colorTextDefault};\n }\n }\n`;\n","import type { MouseEventHandler } from 'react';\nimport styled from 'styled-components';\n\nimport { Box, type BoxProps } from '../Core';\nimport { Icon, IconName } from '../Icons';\n\nimport { IndicatorDot, IndicatorDotVariants } from '../IndicatorDot';\nimport { NotificationWrapper } from './styles';\nimport { NotificationSizes, NotificationVariants } from './types';\n\nexport { NotificationSizes, NotificationVariants } from './types';\n\nexport interface NotificationProps extends BoxProps {\n dismissable?: boolean;\n variant?: NotificationVariants;\n onRemove?: MouseEventHandler;\n size?: NotificationSizes;\n}\n\nexport const Notification = styled(\n ({\n children,\n variant,\n dismissable,\n size = NotificationSizes.Default,\n onRemove = () => {},\n ...props\n }: NotificationProps) => {\n return (\n \n \n {children}\n {dismissable && (\n \n )}\n \n );\n }\n)``;\n\nconst fromNotificationVariantToIndicatorDotVariant = (\n notification: NotificationVariants = NotificationVariants.Default\n): IndicatorDotVariants => {\n switch (notification) {\n case NotificationVariants.Negative:\n return IndicatorDotVariants.Negative;\n case NotificationVariants.Positive:\n return IndicatorDotVariants.Positive;\n case NotificationVariants.Warning:\n return IndicatorDotVariants.Warning;\n case NotificationVariants.Primary:\n return IndicatorDotVariants.Primary;\n case NotificationVariants.Attention:\n return IndicatorDotVariants.Notification;\n case NotificationVariants.Default:\n default:\n return IndicatorDotVariants.Default;\n }\n};\n","import { animated } from '@react-spring/web';\nimport styled from 'styled-components';\nimport { modeColor } from '../../styles';\nimport { Notification } from '../Notification';\n\nexport const Wrapper = styled.div<{ direction: 'column' | 'row' | 'column-reverse' | 'row-reverse' }>`\n position: relative;\n display: flex;\n flex-direction: ${({ direction }) => direction};\n`;\n\nexport const ToastWrapper = styled(animated.div)`\n box-shadow: 0 5px 40px ${({ theme }) => modeColor(theme, 'hsla(0, 0%, 0%, 0.1)', theme.colors.black.dim)};\n transition: opacity 200ms ease, transform 200ms ease, maxHeight 200ms ease;\n position: relative;\n border-radius: ${({ theme }) => theme.borderRadiusDefault}px;\n overflow: hidden;\n\n margin-top: ${({ theme }) => theme.spacingSmall}px;\n\n ${Notification} {\n &:not(:first-child) {\n ${({ theme }) => `margin-top: ${theme.spacingSmall}px;`}\n }\n &:not(:last-child) {\n ${({ theme }) => `margin-bottom: ${theme.spacingSmall}px;`}\n }\n }\n\n div {\n word-break: break-word;\n }\n`;\n","import { useCallback, useEffect, useMemo, useState, type HTMLAttributes, type ReactNode } from 'react';\n\nimport { useTransition } from '@react-spring/web';\nimport { v1 as uuid } from 'uuid';\nimport { useConstant } from '../../hooks';\nimport { EMPTY_OBJECT } from '../../utils';\nimport { Notification, type NotificationVariants } from '../Notification';\nimport { ToastWrapper, Wrapper } from './styles';\n\nexport type ToastProps = {\n text: ReactNode;\n variant?: NotificationVariants;\n id?: string;\n timeout?: number;\n dismissable?: boolean;\n};\n\ntype UseToastArgs = {\n defaultProps: Partial>;\n};\n\nconst TRANSITION = {\n from: { opacity: 0, transform: 'scale(0.95)' },\n enter: { opacity: 1, transform: 'scale(1)' },\n leave: { opacity: 0, transform: 'scale(0.95)' },\n keys: item => item.id,\n};\n\nexport function useToasts(args?: UseToastArgs) {\n const timeouts: ReturnType[] = useConstant([]);\n const [toasts, setToasts] = useState([]);\n const toastDefaultProps = args?.defaultProps ?? EMPTY_OBJECT;\n\n const remove = useCallback((id: string) => {\n setToasts(prev => prev.filter(toast => toast.id !== id));\n }, []);\n\n const add = useCallback(\n (toast: ToastProps) => {\n if (toast.id == null) {\n toast.id = uuid();\n }\n const newToast = { ...toastDefaultProps, ...toast } as ToastProps & { id: string };\n setToasts(prev => [...prev, newToast]);\n if (newToast.timeout != null) {\n timeouts.push(setTimeout(() => remove(newToast.id), newToast.timeout));\n }\n },\n [remove, timeouts, toastDefaultProps]\n );\n\n useEffect(() => {\n return () => {\n for (const timeout of timeouts) {\n clearTimeout(timeout);\n }\n };\n }, [timeouts]);\n\n return useMemo(\n () => ({\n toasts,\n add,\n remove,\n }),\n [toasts, add, remove]\n );\n}\n\nexport type ToastsProps = {\n toasts: ToastProps[];\n direction?: 'column' | 'row' | 'column-reverse' | 'row-reverse';\n remove(id: string | undefined): void;\n stackingLimit?: number;\n};\n\nexport function Toasts({ toasts, remove, stackingLimit, direction = 'column' }: ToastsProps) {\n const [preventStacking, setPreventStacking] = useState(false);\n const transitions = useTransition(toasts, TRANSITION);\n return (\n \n {transitions((style, toast, t, index) => {\n const stackingStyle =\n !!stackingLimit && toasts?.length > stackingLimit && !preventStacking\n ? getStackingStyle(style, index, toasts.length, stackingLimit, direction.includes('reverse'))\n : style;\n return (\n remove(toast.id)}\n onClick={() => setPreventStacking(!preventStacking)}\n {...toast}\n />\n );\n })}\n \n );\n}\n\nexport function Toast({\n style,\n onRemove,\n onClick,\n ...toast\n}: ToastProps & { onRemove: () => void } & HTMLAttributes) {\n return (\n \n \n {toast.text}\n \n \n );\n}\n\nfunction getStackingStyle(style, index: number, length: number, stackingLimit: number, reverse: boolean) {\n return length - index === 1\n ? style\n : {\n position: 'absolute',\n transform: `scale(${1 - 0.01 * (length - index - 1)}) translateY(${\n (length - index - 1) * 3 * (reverse ? 1 : -1)\n }%)`,\n opacity: length - index > stackingLimit ? 0 : 1,\n };\n}\n","import { createContext, useCallback, useContext, useMemo } from 'react';\nimport { NotificationVariants } from '../components/Notification';\nimport { useToasts, type ToastProps } from '../components/Toast';\n\nexport const GlobalToastsContext = createContext(undefined);\nGlobalToastsContext.displayName = 'GlobalToastsContext';\n\nexport const useGlobalToasts = () => {\n const context = useContext(GlobalToastsContext);\n if (context === undefined) {\n throw new Error('Missing GlobalToastsContext.Provider further up in the tree. Did you forget to add it?');\n }\n return context;\n};\n\nexport const GlobalToastsProvider = function GlobalToastsProvider({ children }) {\n const { add: addToast, remove, toasts } = useToasts();\n\n // Dismissable by default\n const add = useCallback(\n toast =>\n addToast({\n dismissable: true,\n timeout: toast.variant === NotificationVariants.Negative ? 5000 : 3000,\n ...toast,\n }),\n [addToast]\n );\n\n const value = useMemo(\n () => ({\n add,\n remove,\n toasts,\n }),\n [add, remove, toasts]\n );\n return {children};\n};\n\nexport interface GlobalToastsProviderProps {\n add(toast: Omit & { id?: string }): void;\n remove(id: string): any;\n toasts: ToastProps[];\n}\n","import { useCallback, useState } from 'react';\nimport { useGlobalToasts } from '../../providers/GlobalToastsProvider';\nimport { Button, ButtonVariants } from '../Button';\nimport { Box, VStack } from '../Core';\nimport type { EntityPageRecord } from '../EntityAdminPage';\nimport { TextArea } from '../Form/TextArea';\nimport { NotificationVariants } from '../Notification';\nimport { DrawerContent, DrawerFooter } from './styles';\n\ntype ModifyJsonDrawerProps = {\n onSave: (modifiedEntity: TDrawerRecord) => void;\n onDelete: (selectedEntity: TRecord) => void;\n allowDeleteEntity?: boolean;\n selectedEntity?: TRecord;\n};\n\nexport function ModifyJsonDrawer({\n selectedEntity,\n allowDeleteEntity,\n onSave,\n onDelete,\n}: ModifyJsonDrawerProps) {\n const { add: addToast } = useGlobalToasts();\n\n const [modifiedEntityString, setModifiedEntityString] = useState(JSON.stringify(selectedEntity, null, 4));\n\n const handleDelete = useCallback(() => {\n if (window.confirm('Are you sure you want to delete this entity?')) {\n onDelete(selectedEntity!);\n }\n }, [onDelete, selectedEntity]);\n\n const handleOnSave = useCallback(() => {\n try {\n const modifiedEntity = JSON.parse(modifiedEntityString) as TDrawerRecord;\n onSave(modifiedEntity);\n } catch {\n addToast({\n text: 'Failed to save entity. Please check the JSON format.',\n variant: NotificationVariants.Negative,\n });\n }\n }, [addToast, modifiedEntityString, onSave]);\n\n const showDeleteButton = allowDeleteEntity && selectedEntity != null;\n\n return (\n \n \n \n