{"version":3,"file":"components-DyzkjmX2.js","sources":["../../../node_modules/@sentry/core/build/esm/debug-build.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/worldwide.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/debug-build.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/version.js","../../../node_modules/@sentry/core/build/esm/carrier.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/logger.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/stacktrace.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/is.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/browser.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/string.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/object.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/time.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/misc.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/syncpromise.js","../../../node_modules/@sentry/core/build/esm/session.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/propagationContext.js","../../../node_modules/@sentry/core/build/esm/utils/merge.js","../../../node_modules/@sentry/core/build/esm/utils/spanOnScope.js","../../../node_modules/@sentry/core/build/esm/scope.js","../../../node_modules/@sentry/core/build/esm/defaultScopes.js","../../../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","../../../node_modules/@sentry/core/build/esm/asyncContext/index.js","../../../node_modules/@sentry/core/build/esm/currentScopes.js","../../../node_modules/@sentry/core/build/esm/semanticAttributes.js","../../../node_modules/@sentry/core/build/esm/tracing/spanstatus.js","../../../node_modules/@sentry/core/build/esm/tracing/utils.js","../../../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/baggage.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/tracing.js","../../../node_modules/@sentry/core/build/esm/utils/spanUtils.js","../../../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js","../../../node_modules/@sentry/core/build/esm/constants.js","../../../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/normalize.js","../../../node_modules/@sentry/core/build/esm/eventProcessors.js","../../../node_modules/@sentry/core/build/esm/utils-hoist/debug-ids.js","../../../node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","../../../node_modules/@sentry/core/build/esm/utils/prepareEvent.js","../../../node_modules/@sentry/core/build/esm/exports.js","../../../app/javascript/common/components/Pagination.jsx","../../../app/javascript/common/components/LoadingSpinner.jsx","../../../app/javascript/common/components/withErrorBoundary/ErrorHandler.jsx","../../../app/javascript/common/components/withErrorBoundary/index.jsx","../../../app/javascript/v2/ui/Blogs/PostCard.jsx","../../../app/javascript/v2/ui/Blogs/PageNotFound.jsx","../../../app/javascript/v2/ui/Blogs/index.jsx","../../../app/javascript/v2/ui/Blogs/IndividualBlog.jsx","../../../node_modules/axios/lib/helpers/bind.js","../../../node_modules/is-buffer/index.js","../../../node_modules/axios/lib/utils.js","../../../node_modules/axios/lib/helpers/normalizeHeaderName.js","../../../node_modules/axios/lib/core/enhanceError.js","../../../node_modules/axios/lib/core/createError.js","../../../node_modules/axios/lib/core/settle.js","../../../node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/axios/lib/helpers/cookies.js","../../../node_modules/axios/lib/adapters/xhr.js","../../../node_modules/axios/lib/defaults.js","../../../node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/axios/lib/core/transformData.js","../../../node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/axios/lib/core/Axios.js","../../../node_modules/axios/lib/cancel/Cancel.js","../../../node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/axios/lib/helpers/spread.js","../../../node_modules/axios/lib/axios.js","../../../node_modules/axios/index.js","../../../node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","../../../app/javascript/channels/consumer.js","../../../app/javascript/common/utils/reactToastify.js","../../../app/javascript/modules/NotificationPanel/propTypes/notificationPropType.js","../../../app/javascript/common/constants/index.js","../../../app/javascript/modules/NotificationPanel/RunDetailNotificationMessage.jsx","../../../app/javascript/modules/NotificationPanel/OrderDetailedMessage.jsx","../../../app/javascript/modules/NotificationPanel/NotificationMessage.jsx","../../../app/javascript/common/api/base.js","../../../app/javascript/common/api/signalConfirmation.js","../../../app/javascript/common/components/ModalComponent.jsx","../../../app/javascript/common/propTypes.js","../../../app/javascript/common/components/TransactionType.jsx","../../../app/javascript/modules/OrderDetails/config.js","../../../app/javascript/common/utils/transactions.js","../../../app/javascript/modules/OrderDetails/helper.js","../../../app/javascript/modules/OrderDetails/index.jsx","../../../app/javascript/modules/NotificationPanel/OrderDetailsInModal.jsx","../../../app/javascript/modules/NotificationPanel/ViewOrdersPanel.jsx","../../../app/javascript/modules/NotificationPanel/Notification.jsx","../../../app/javascript/modules/NotificationPanel/index.jsx","../../../app/javascript/common/utils/dateFormat.js","../../../node_modules/zeequant-constants/lib/utility/preloadFiles.js","../../../node_modules/zeequant-constants/lib/utility/market.js","../../../node_modules/zeequant-constants/index.js","../../../app/javascript/v2/common/utils/zeequantConstants.js","../../../app/javascript/common/api/orders.js","../../../app/javascript/common/utils/transactionProfitHelper.js","../../../app/javascript/ui/run/RunShow/OrderStore/metrics/formula.js","../../../app/javascript/ui/run/RunShow/OrderStore/metrics/processor.js","../../../app/javascript/ui/run/RunShow/OrderStore/metrics/index.js","../../../app/javascript/ui/run/RunShow/OrderStore/helper.js","../../../app/javascript/v2/common/constants/index.js","../../../app/javascript/ui/run/RunShow/components/BackTestFilters/helper.js","../../../app/javascript/ui/Strategies/config.js","../../../app/javascript/ui/run/RunShow/OrderStore/index.jsx","../../../app/javascript/ui/run/RunShow/config.js","../../../app/javascript/ui/run/RunShow/OrderStore/analytics/common.js","../../../app/javascript/ui/run/RunShow/OrderStore/analytics/index.js","../../../app/javascript/common/components/MoneyDisplay.jsx","../../../app/javascript/common/components/SmallInfoCard.jsx","../../../app/javascript/modules/RunSummary/MetricsPanel.jsx","../../../app/javascript/modules/PLChart/lib/dataUtils.js","../../../app/javascript/modules/PLChart/lib/tipsyHandler.js","../../../node_modules/date-fns/constants.js","../../../node_modules/date-fns/constructFrom.js","../../../node_modules/date-fns/toDate.js","../../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../../node_modules/date-fns/_lib/normalizeDates.js","../../../node_modules/date-fns/startOfDay.js","../../../node_modules/date-fns/differenceInCalendarDays.js","../../../node_modules/date-fns/isSameMonth.js","../../../node_modules/date-fns/_lib/defaultOptions.js","../../../node_modules/date-fns/startOfWeek.js","../../../node_modules/date-fns/isSameWeek.js","../../../node_modules/date-fns/isSameDay.js","../../../node_modules/date-fns/startOfHour.js","../../../node_modules/date-fns/isSameHour.js","../../../node_modules/date-fns/getDate.js","../../../node_modules/date-fns/getMonth.js","../../../app/javascript/modules/PLChart/lib/ticksGenerator.js","../../../app/javascript/modules/PLChart/lib/gradientUtils.js","../../../app/javascript/modules/PLChart/lib/renderer.js","../../../app/javascript/modules/PLChart/index.jsx","../../../app/javascript/modules/RunSummary/RunSummaryChart.jsx","../../../app/javascript/modules/RunSummary/RunShowSummary.jsx","../../../app/javascript/modules/RunSummary/index.jsx","../../../node_modules/object-inspect/index.js","../../../node_modules/side-channel-list/index.js","../../../node_modules/side-channel-map/index.js","../../../node_modules/side-channel-weakmap/index.js","../../../node_modules/side-channel/index.js","../../../node_modules/qs/lib/formats.js","../../../node_modules/qs/lib/utils.js","../../../node_modules/qs/lib/stringify.js","../../../node_modules/qs/lib/parse.js","../../../node_modules/qs/lib/index.js","../../../app/javascript/common/utils/urlUtils.js","../../../app/javascript/common/api/folder.js","../../../app/javascript/common/components/ArrowAccordion.jsx","../../../app/javascript/common/components/TruncateText.jsx","../../../app/javascript/common/components/InlineEdit.jsx","../../../app/javascript/ui/FolderList/config.js","../../../app/javascript/common/configs/runStatus.js","../../../app/javascript/common/components/HoverMessage.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/DeleteRunBtn.jsx","../../../app/javascript/common/components/ErrorMesssage.jsx","../../../app/javascript/common/components/FolderSelector.jsx","../../../app/javascript/common/api/run.js","../../../app/javascript/ui/FolderList/RunList/RunListView/MoveFolderModal.jsx","../../../app/javascript/ui/FolderList/RunList/ActionBtns.jsx","../../../app/javascript/common/utils/InstrumentUtils.js","../../../app/javascript/common/components/InstrumentGroupsSentence.jsx","../../../app/javascript/common/components/RenderOrderTypeBadge.jsx","../../../app/javascript/common/components/RunListOrderType.jsx","../../../app/javascript/ui/FolderList/RunList/RunListView/RunListViewBody.jsx","../../../app/javascript/ui/FolderList/RunList/RunListView/index.jsx","../../../app/javascript/ui/FolderList/RunList/DeleteMultipleRunsModal.jsx","../../../app/javascript/ui/FolderList/RunList/MultipleSelectionActionBtns.jsx","../../../app/javascript/ui/FolderList/RunList/RunGridView/RunLGridViewBody.jsx","../../../app/javascript/ui/FolderList/RunList/RunGridView/index.jsx","../../../app/javascript/ui/FolderList/RunList/index.jsx","../../../app/javascript/ui/FolderList/FolderDeleteConfirmation.jsx","../../../app/javascript/ui/FolderList/Folder.jsx","../../../app/javascript/ui/FolderList/Filter.jsx","../../../app/javascript/ui/FolderList/FilteredRuns.jsx","../../../app/javascript/ui/FolderList/helper.js","../../../app/javascript/ui/FolderList/SearchFilter.jsx","../../../app/javascript/ui/FolderList/index.jsx","../../../app/javascript/common/api/subscribeChannel.js","../../../app/javascript/common/components/EstimatedTimeCountDown/index.jsx","../../../app/javascript/v2/common/quantConfig/outputSchema/config.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/config.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/anchoredVolumeWeightedAveragePrice.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/aroon.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/averageDirectionalIndex.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/averageTrueRange.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/awesomeOscillator.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bearishEngulfing.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bearishHammer.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bearishInvertedHammer.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bearishMarubozu.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bearishSpinningTop.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bollingerBand.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bullishEngulfing.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bullishHammer.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bullishInvertedHammer.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bullishMarubozu.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/bullishSpinningTop.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/centralPivotRange.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/commodityChannelIndex.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/currentCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/utilities/buildOutputSchemaFromJsonSchema.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/customScript.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/darkCloudCover.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/doji.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/dragonFlyDoji.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/eveningStar.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/exponentialMovingAverage.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/gapStrategy.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/graveStoneDoji.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiBearish.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiBearishIndecision.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiBullish.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiBullishIndecision.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiVeryBearish.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/heikinashiVeryBullish.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/ichimokuCloud.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/lastNCandles.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/longBuildup.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/longLeggedDoji.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/longUnwidening.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/morningStar.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/movingAverageConvergenceDivergence.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/openingRangeBreakout.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/piercingLine.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/pivotPoints.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/previousCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/rateOfChange.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/ratio.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/relativeStrengthIndex.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/signal.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/shortBuildup.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/shortCovering.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/signalCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/simpleMovingAverage.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/stochasticOscillator.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/stochasticRSI.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/superTrend.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/threeBlackCrows.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/threeWhiteSoldiers.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/todayCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/volumeWeightedAveragePrice.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/weightedMovingAverage.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/wilderSmoothingAverage.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/williamsAlligator.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/williamsR.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/yesterdayCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/basket.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/transactionStopLoss.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/parabolicSAR.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/keltnerChannel.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/qqeSignals.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/halfTrend.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/donChianChannel.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/externalSignal.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/candleAt.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/previousNthCandle.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/movingAverageForRSI.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/chandelierExit.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/trendIntensityIndex.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/smoothedMovingAverage.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/meanReversionChannel.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/fisherTransform.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/moneyFlowIndex.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/yesterdayAVWAP.js","../../../app/javascript/v2/common/quantConfig/pipeDefinitions/todayAVWAP.js","../../../app/javascript/v2/common/quantConfig/snippets.js","../../../app/javascript/v2/common/quantConfig/index.js","../../../app/javascript/modules/QuantBuilder/config/index.js","../../../app/javascript/modules/TransactionsBuilder/configs.js","../../../app/javascript/modules/QuantBuilder/config/signalConfigs.js","../../../app/javascript/common/utils/displayNames.js","../../../app/javascript/common/utils/signalConfigUtils.js","../../../app/javascript/common/components/SignalSentence.jsx","../../../app/javascript/ui/run/RunShow/components/NoOrdersMessage.jsx","../../../app/javascript/ui/run/RunShow/components/RunConfig.jsx","../../../app/javascript/ui/run/RunShow/components/RunErrorMessage.jsx","../../../app/javascript/common/auth/modalLogin.js","../../../app/javascript/common/components/WebShare.jsx","../../../app/javascript/v2/common/quantConfig/outputSchema/instrumentOutputSchema.js","../../../app/javascript/v2/common/quantConfig/outputSchema/individualStopOutputSchema.js","../../../app/javascript/v2/common/quantConfig/outputSchema/strategyStopOutputSchema.js","../../../app/javascript/v2/common/quantConfig/outputSchema/commonEntryOrExitOutputSchema.js","../../../app/javascript/v2/common/quantConfig/outputSchema/basketOutputSchema.js","../../../app/javascript/v2/common/quantConfig/outputSchema/index.js","../../../app/javascript/v2/modules/withRunForm/configs/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/queryParams.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/stopLoss.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/cases/signal.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/pipes.js","../../../app/javascript/v2/common/components/StrikeBasedSelector/config.js","../../../app/javascript/v2/common/components/StrikeBasedSelector/utility.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/cases/intent.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/cases/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/intentidinitializer.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/quantConfig/index.js","../../../app/javascript/v2/common/components/withErrorBoundary/ErrorHandler.jsx","../../../app/javascript/v2/common/components/withErrorBoundary/index.jsx","../../../app/javascript/v2/common/components/InstrumentGroupsSentence.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ConfigDisplayDetails.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigInstrumentalDetails.jsx","../../../app/javascript/v2/common/quantConfig/outputSchema/utility.js","../../../app/javascript/common/components/withHiddenSignal/index.jsx","../../../app/javascript/v2/common/components/ErrorMessage/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/DayOfWeek.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/Default.jsx","../../../app/javascript/common/stringUtils/toPositiveNumberString.js","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/Duration.jsx","../../../app/javascript/common/components/TimeSelector.jsx","../../../node_modules/jsonschema/lib/helpers.js","../../../node_modules/jsonschema/lib/attribute.js","../../../node_modules/jsonschema/lib/scan.js","../../../node_modules/jsonschema/lib/validator.js","../../../node_modules/jsonschema/lib/index.js","../../../app/javascript/common/utils/validators.js","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/Time.jsx","../../../app/javascript/common/components/DateSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/Date.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/utility.js","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsView/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/IntentsView/configs.js","../../../app/javascript/v2/modules/withRunForm/components/Intents/IntentsView/StopConfigView.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/IntentsView/QuickAdjustmentsView.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/IntentsView/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/customDisplayConfig.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigView/EditOrDeleteButton.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ExternalSignal/url.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigView/ExternalSignalView.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigView/index.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigIndicators.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigSentences.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigCases.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ConfigRunDetails.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigExpiry.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigStopValues.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewConfigOrdersProduct.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/ViewAdjustmenOptions.jsx","../../../app/javascript/v2/ui/run/RunShow/ViewRunConfigs/index.jsx","../../../app/javascript/v2/modules/withRunForm/events/orderType.js","../../../app/javascript/v2/modules/withRunForm/utils/signal.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/signal.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/config.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/moveToCost.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/reExectute.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/reEntry.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/basket.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/quickAdjustments.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/adjustment/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/stopLoss.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/cases.js","../../../app/javascript/v2/modules/withRunForm/components/InstrumentDetails/indexInstrumentsChecker.js","../../../app/javascript/v2/modules/withRunForm/hooks/useIntents/getIntentsError.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/pipes.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/trailingStopLoss.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/overallTransactionTSL.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/quantConfig/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/beforeSubmit/index.js","../../../app/javascript/v2/common/brokerConfigs/index.js","../../../app/javascript/common/brokerConfigs/config.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/default/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/onLoad/index.js","../../../app/javascript/v2/modules/withRunForm/sanitizer/index.js","../../../app/javascript/v2/common/components/ModalComponent.jsx","../../../node_modules/reselect/dist/reselect.mjs","../../../app/javascript/v2/modules/withRunForm/redux/selector.js","../../../app/javascript/v2/modules/withRunForm/redux/actions.js","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/OrderType.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/RunName.jsx","../../../node_modules/@reduxjs/toolkit/node_modules/redux/dist/redux.mjs","../../../node_modules/@reduxjs/toolkit/node_modules/redux-thunk/dist/redux-thunk.mjs","../../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs","../../../node_modules/redux-thunk/es/index.js","../../../app/javascript/v2/modules/withRunForm/redux/reducers.js","../../../app/javascript/v2/modules/withRunForm/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/ProductType/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/OrderType/OrderTypeSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/OrderType/ActionTypeSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/OrderType/ModifyOrCancelOrder.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/OrderType/EntryOrExitOrderTypes.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/OrderType/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/StopLossLimitPriceDifference/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/LimitOrderBuffer/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/MarginBenefit/Selector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/MarginBenefit/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/SlOrderBasedOnPrice/PriceSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/SlOrderBasedOnPrice/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useOrderExecutionDetails/index.js","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/PlaceStoplossOrderToBroker/PlaceStoplossOrderToBrokerFieldSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/PlaceStoplossOrderToBroker/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/SquareOffEntireTransactionIfEntryFailed/SquareOffTransactionIfEntryFailedSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/SquareOffEntireTransactionIfEntryFailed/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/OrderExecutionDetails/index.jsx","../../../app/javascript/common/api/user.js","../../../app/javascript/ui/QuotaVerification/helper.js","../../../app/javascript/ui/QuotaVerification/RunningLiveRuns.jsx","../../../app/javascript/common/api/addons.js","../../../app/javascript/common/api/coupons.js","../../../app/javascript/common/api/plans.js","../../../app/javascript/common/api/payment.js","../../../app/javascript/common/razorpay/razorpayModal.js","../../../app/javascript/common/razorpay/paymentInitialize.js","../../../app/javascript/ui/Plans/config.js","../../../app/javascript/ui/Plans/helper.js","../../../app/javascript/ui/Plans/components/common/PaymentMoneyDisplay.jsx","../../../app/javascript/ui/QuotaVerification/PurchaseSet.jsx","../../../app/javascript/ui/QuotaVerification/Header.jsx","../../../app/javascript/ui/Plans/components/common/PaymentCoupons.jsx","../../../app/javascript/common/api/credits.js","../../../app/javascript/ui/Plans/components/common/Credits.jsx","../../../app/javascript/ui/QuotaVerification/QuotaConfirmation.jsx","../../../app/javascript/ui/QuotaVerification/StrategyConfirmation.jsx","../../../app/javascript/ui/QuotaVerification/BillingCycleFilter.jsx","../../../app/javascript/ui/QuotaVerification/QuotaPurchase.jsx","../../../app/javascript/ui/applicationDomainHelper.js","../../../app/javascript/ui/QuotaVerification/index.jsx","../../../app/javascript/ui/QuotaVerification/quotaDom.js","../../../app/javascript/common/utils/iframe.js","../../../app/javascript/v2/modules/withRunForm/hooks/useRunSubmit.js","../../../app/javascript/v2/ui/run/RunShow/DeployLiveRun/Main.jsx","../../../app/javascript/v2/ui/run/RunShow/DeployLiveRun/index.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/SocialShare.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/RunName.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/ShowcasedRunTag.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StopRunbtn.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/CloneRunBtn.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StarRunBtn.jsx","../../../app/javascript/common/api/strategies.js","../../../app/javascript/common/components/SuccessFailureMessageModal.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StrategyCreateForm/configs.js","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StrategyCreateForm/StrategyFormDescription.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StrategyCreateForm/StrategyInput.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StrategyCreateForm/StrategyFormTags.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/StrategyCreateForm/index.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/EditRun.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/MultiplierTag.jsx","../../../app/javascript/common/components/ForceExitConfirmation/index.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/ForceExitBtn.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/MarketPlaceAuthorTag.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/ReStartButton.jsx","../../../app/javascript/ui/Strategies/helper.js","../../../app/javascript/ui/Strategies/components/Strategy/Multiplier.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/LiveRunMultiplier.jsx","../../../app/javascript/ui/run/RunShow/components/RunTitleAndActions/index.jsx","../../../app/javascript/v2/common/utils/tradingSymbol.js","../../../app/javascript/common/conditionalHOC.js","../../../app/javascript/v2/common/components/LinkToIO/index.jsx","../../../app/javascript/v2/common/components/LinkToIOStrategy/index.jsx","../../../app/javascript/ui/run/RunShow/components/LiveDetails/LiveTransactionDetails/LiveProfits.jsx","../../../app/javascript/common/components/TradingSymbol.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/TransactionOrderDetails.jsx","../../../app/javascript/v2/common/components/LinkToIOOptionChain/index.jsx","../../../app/javascript/ui/run/RunShow/components/LiveDetails/LiveTransactionDetails/LiveOrderDetails.jsx","../../../app/javascript/ui/run/RunShow/components/LiveDetails/LiveTransactionDetails/index.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/TransactionCollapsed.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/TransactionMoreDetails.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/TransactionExpanded.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/Transaction.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsList/index.jsx","../../../app/javascript/modules/TransactionTable/components/Header/Filters.jsx","../../../app/javascript/modules/TransactionTable/components/Header/TransactionsPerPage.jsx","../../../app/javascript/modules/TransactionTable/components/Header/orderCsvConversion.js","../../../app/javascript/modules/TransactionTable/components/Header/TransactionsDownload.jsx","../../../app/javascript/modules/TransactionTable/components/Header/IoBtns.jsx","../../../app/javascript/modules/TransactionTable/components/Header/index.jsx","../../../app/javascript/modules/TransactionTable/components/TransactionsFooter.jsx","../../../app/javascript/modules/TransactionTable/index.jsx","../../../app/javascript/ui/run/RunShow/OrderStore/analytics/tradeTypeAnalytics.js","../../../app/javascript/common/components/SingleBarChart/index.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/chart/BarChart.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/TradeTypeAnalytics.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/InstrumentGroupAnalytics.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/DayOfWeekAnalytics/EntryExitSelector.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/DayOfWeekAnalytics/index.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/YearAnalytics.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/Header.jsx","../../../app/javascript/ui/run/RunShow/OrderStore/analytics/monthAnalytics.js","../../../app/javascript/modules/TransactionsAnalytics/components/chart/HeatMap.jsx","../../../app/javascript/modules/TransactionsAnalytics/components/MonthlyAnalytics.jsx","../../../app/javascript/modules/TransactionsAnalytics/index.jsx","../../../app/javascript/ui/run/RunShow/components/TransactionDetail/index.jsx","../../../app/javascript/ui/run/RunShow/components/RunDetail/index.jsx","../../../app/javascript/ui/run/RunShow/components/propTypes.js","../../../app/javascript/common/api/job.js","../../../app/javascript/common/components/Table.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/helper.js","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/OpenTransactionsCard.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/MarketDataMonitorTable/Header.jsx","../../../app/javascript/common/components/BgBlink/index.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/MarketDataMonitorTable/InstrumentsMarketDataTable.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/MarketDataMonitorTable/IndicatorsDataTable.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/MarketDataMonitorTable/index.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/LiveProfitCard.jsx","../../../app/javascript/ui/run/RunShow/components/LiveMonitor/index.jsx","../../../app/javascript/ui/run/RunShow/components/LiveDetails/TradeSkipDates.jsx","../../../app/javascript/ui/run/RunShow/components/LiveDetails/index.jsx","../../../app/javascript/ui/run/RunShow/components/CreditDetails.jsx","../../../app/javascript/common/components/StopsValueTypeToggleBtn.jsx","../../../app/javascript/ui/run/RunShow/components/SlippageInputDetails.jsx","../../../app/javascript/ui/run/RunShow/components/BackTestFilters/WeekDaysFilter.jsx","../../../app/javascript/ui/run/RunShow/components/BackTestFilters/DaysToExpiryFilter.jsx","../../../app/javascript/ui/run/RunShow/components/BackTestFilters/LegsFilter.jsx","../../../app/javascript/ui/run/RunShow/components/RunShowDetails.jsx","../../../app/javascript/ui/run/RunShow/index.jsx","../../../app/javascript/common/api/setting.js","../../../app/javascript/common/api/webPushSubscriptions.js","../../../app/javascript/ui/Settings/Components/WebPushSubscriptionsList.jsx","../../../app/javascript/ui/Settings/Components/NotificationSettings.jsx","../../../app/javascript/common/api/subscriptions.js","../../../app/javascript/common/utils/dateUtils.js","../../../app/javascript/ui/Settings/Components/ThemeSettings.jsx","../../../app/javascript/common/api/otp.js","../../../app/javascript/ui/PhoneNumberVerification/PhoneNumberForm.jsx","../../../app/javascript/ui/PhoneNumberVerification/OtpForm.jsx","../../../app/javascript/ui/PhoneNumberVerification/index.jsx","../../../app/javascript/ui/Settings/Components/UserDetails/MobileNumberDetails.jsx","../../../app/javascript/ui/Settings/Components/AccessTokenInValidMessage.jsx","../../../app/javascript/ui/Settings/Components/UserDetails/index.jsx","../../../app/javascript/ui/Settings/Components/MyProfile.jsx","../../../app/javascript/modules/UpgradePlan/helper.js","../../../app/javascript/ui/Settings/Components/InvoiceContent/paymentInvoice.js","../../../app/javascript/ui/Settings/Components/InvoiceContent/index.jsx","../../../app/javascript/ui/Settings/Components/PurchaseSettings.jsx","../../../app/javascript/ui/Settings/index.jsx","../../../app/javascript/common/api/siteTourDemo.js","../../../app/javascript/modules/SiteTour/index.jsx","../../../app/javascript/ui/Plans/usePlans.js","../../../app/javascript/common/components/AvailableFreeTrialCard.jsx","../../../app/javascript/ui/Plans/defaultProps.js","../../../app/javascript/ui/Plans/components/common/PlanTypeSelector.jsx","../../../app/javascript/ui/Plans/components/common/PlanPurchaseTypeSelectionModal.jsx","../../../app/javascript/ui/Plans/components/common/PlanMultiplierModal.jsx","../../../app/javascript/ui/Plans/components/common/PlanButton.jsx","../../../app/javascript/ui/Plans/components/common/HoveMessagedBasedOnType.jsx","../../../app/javascript/ui/Plans/components/common/PlanContent.jsx","../../../app/javascript/ui/Plans/components/Web/PlanCard.jsx","../../../app/javascript/ui/Plans/components/common/MultiplierModal.jsx","../../../app/javascript/ui/Plans/components/Web/AddonCard.jsx","../../../app/javascript/ui/Plans/components/Web/index.jsx","../../../app/javascript/ui/Plans/components/Mobile/PlanCard.jsx","../../../app/javascript/ui/Plans/components/Mobile/AddonCard.jsx","../../../app/javascript/ui/Plans/components/Mobile/index.jsx","../../../app/javascript/ui/Plans/index.jsx","../../../app/javascript/common/utils/config.js","../../../app/javascript/common/components/InstrumentInput.jsx","../../../app/javascript/common/components/InstrumentGroupBuilder/ViewInstrumentGroup.jsx","../../../app/javascript/common/components/InstrumentGroupBuilder/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/TemplateFooter.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/config.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/CommonComponents/Select.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/CommonComponents/Input.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/CommonComponents/TemplateSentence.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/CommonComponents/LabelTags.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/SuperTrend/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/SuperTrend/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/MovingAverageClosePrice/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/MovingAverageClosePrice/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/IntradyStraddle/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/IntradyStraddle/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/RSI/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/RSI/index.jsx","../../../app/javascript/common/utils/optionExpiryCycleHelper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/IronFly/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/IronFly/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/SuperTrendAndRSI/helper.js","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/SuperTrendAndRSI/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/Templates/index.js","../../../app/javascript/ui/run/RunForm/helper.js","../../../app/javascript/ui/Home/config.js","../../../app/javascript/ui/Home/components/RecentRuns/RunsTableHeader.jsx","../../../app/javascript/common/utils/runListHelper.js","../../../app/javascript/ui/Home/components/RecentRuns/RunsTableBody.jsx","../../../app/javascript/ui/Home/components/RecentRuns/index.jsx","../../../app/javascript/common/utils/dateDifference.js","../../../app/javascript/ui/Home/components/StarredRuns/index.jsx","../../../app/javascript/ui/Home/components/ReadyMadeTemplates/index.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/config.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/StrikeBasedOnSelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/OptionsExpiryCycle/index.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/components/TopSection.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/StrikeIndex.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/components/OptionConfigForm.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/components/OptionConfigHeader.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/helper.js","../../../app/javascript/ui/Home/components/StrategyBuilder/components/StrategiesList.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/components/StrategyTimeBasedSignal.jsx","../../../app/javascript/ui/Home/components/StrategyBuilder/index.jsx","../../../app/javascript/ui/Meeting/helper.js","../../../app/javascript/ui/HelpLine/config.js","../../../app/javascript/ui/Home/components/MeetBanner/index.jsx","../../../app/javascript/ui/Home/components/AccountDetails/config.js","../../../app/javascript/common/utils/localstorage.js","../../../app/javascript/ui/Home/components/AccountDetails/ExpiringSoon.jsx","../../../app/javascript/ui/Home/components/AccountDetails/index.jsx","../../../app/javascript/common/api/redisLiveDataChannel.js","../../../app/javascript/ui/Home/components/LiveTransactions/helper.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/pairedPropTypes.js","../../../app/javascript/ui/Home/components/LiveTransactions/TableLegRow.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/CardLeg.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/PairedOrderData.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/OverallTransactionProfit.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/PairedOrderTable.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/LiveRunCard.jsx","../../../app/javascript/ui/Home/components/LiveTransactions/index.jsx","../../../app/javascript/ui/Home/components/MarkerPlaceStrategies/DashboardDeployedStrategies.jsx","../../../app/javascript/ui/Strategies/components/StrategyCard/Header.jsx","../../../app/javascript/ui/Strategies/components/StrategyCard/InstrumentAndTags.jsx","../../../app/javascript/ui/Strategies/components/StrategyCard/ProfitableValues.jsx","../../../app/javascript/ui/Strategies/components/Strategy/PaymentButton.jsx","../../../app/javascript/modules/QuantBuilder/actions.js","../../../app/javascript/modules/LimitTransactions/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ExpiryHandler/Intraday.jsx","../../../app/javascript/modules/QuantBuilder/components/ExpiryHandler/Positional.jsx","../../../app/javascript/modules/QuantBuilder/components/ExpiryHandler/index.jsx","../../../app/javascript/modules/QuantBuilder/components/RepeatOrder/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/configAdopter/builderConfigToTransactionConfig.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/configAdopter/transactionConfigToBuilderConfig.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/configAdopter/index.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AddOptionBtn.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/TradeTypeSelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/CallOrPutSelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/Quantity.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/BuyOrSellSelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/StopsInput.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/RemoveBtn.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/ValuePathSelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/StopValueHint.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/EquityQuantityOrAmount.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/AdvancedFeatures/TrailingStopLoss/TrailingStopLossInputs.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/AdvancedFeatures/TrailingStopLoss/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/AdvancedFeatures/ReEntryOrReExecute/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/AdvancedFeatures/WaitAndTrade/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/OptionStrategySelector/OptionSubStrategySelector.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/OptionStrategySelector/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/TableHeader.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/fellowWorker.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/moveToCostAdjustment.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/reEntryAdjustment.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/reExecuteAdjustment.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/index.js","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/index.jsx","../../../app/javascript/modules/TransactionsBuilder/NewTransactionBuilder/index.jsx","../../../app/javascript/modules/TransactionsBuilder/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/TransactionsBuilderWrapper.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/RemoveSignalConfig.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/ConditionOperator.jsx","../../../app/javascript/ui/run/RunForm/config.js","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/OperatorAndRightOperand/components/TimeOfDay.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/OperatorAndRightOperand/components/DayOfWeek.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/OperatorAndRightOperand/components/index.js","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/OperatorAndRightOperand/helper.js","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/OperatorAndRightOperand/index.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/LeftOperand.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/SignalConfigBuilder/index.jsx","../../../app/javascript/modules/SignalConfigsBuilder/components/AddSignalConfig.jsx","../../../app/javascript/modules/SignalConfigsBuilder/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/SignalConfigsBuilderWrapper.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/helper.js","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/config.js","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/SuggestionSignals.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/Adjustments/AdjustmentSignalConfig.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/Adjustments/ExistingLegConfigs/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/Adjustments/AdjustmentActionConfig.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/Adjustments/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/AdjustmentWrapper/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/OrderConfigBuilder/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/AddOrderConfig.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/components/RemoveOrderConfig.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderConfigsBuilder/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ChartPattern/index.jsx","../../../app/javascript/common/components/ValidationError.jsx","../../../app/javascript/modules/QuantBuilder/components/instrumentGroups/InstrumentGroupInput.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/ViewPipeConfig.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeForm/helper.js","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipesList.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeForm/Hints.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/helper.js","../../../app/javascript/common/api/quantConfig.js","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeForm/customScriptConfigForm.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeForm/index.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeSuggestionAdapter/config.js","../../../app/javascript/modules/QuantBuilder/components/Pipes/PipeSuggestionAdapter/index.jsx","../../../app/javascript/modules/QuantBuilder/components/Pipes/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ChartPattern/RollupType.jsx","../../../app/javascript/modules/QuantBuilder/components/BuySellTimeAndStopLossDiff/StopLimitPriceDifferenceInPercentage.jsx","../../../app/javascript/modules/QuantBuilder/components/BuySellTimeAndStopLossDiff/GapBetweenBuyAndSellOrdersInSeconds.jsx","../../../app/javascript/modules/QuantBuilder/components/BuySellTimeAndStopLossDiff/index.jsx","../../../app/javascript/modules/QuantBuilder/components/StopsBuilder/StopLossOrStopGainInput.jsx","../../../app/javascript/modules/QuantBuilder/components/StopsBuilder/index.jsx","../../../app/javascript/common/components/ProductType/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ProductType/index.jsx","../../../app/javascript/common/components/OrderType/OrderTypeInput.jsx","../../../app/javascript/common/components/OrderType/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ModifyOrders/ModifyOrderSelector.jsx","../../../app/javascript/modules/QuantBuilder/components/ModifyOrders/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ModifyOrders/helper.js","../../../app/javascript/modules/QuantBuilder/components/OrderType/OrderTypeConfiguration.jsx","../../../app/javascript/modules/QuantBuilder/components/OrderType/index.jsx","../../../app/javascript/modules/QuantBuilder/components/OptionsEntryBuyOrders/PlaceOptionsEntryBuyOrdersSelector.jsx","../../../app/javascript/modules/QuantBuilder/components/ProfitAndOrdersComponents/helper.js","../../../app/javascript/modules/QuantBuilder/components/OptionsEntryBuyOrders/PlaceOptionsEntryBuyOrdersFirst.jsx","../../../app/javascript/modules/QuantBuilder/components/OptionsEntryBuyOrders/index.jsx","../../../app/javascript/modules/QuantBuilder/components/SlOrderBasedOnPrice/SlOrderBasedOnPriceSelector.jsx","../../../app/javascript/modules/QuantBuilder/components/SlOrderBasedOnPrice/SlOrderBasedOnPriceWrapper.jsx","../../../app/javascript/modules/QuantBuilder/components/SlOrderBasedOnPrice/index.jsx","../../../app/javascript/modules/QuantBuilder/components/LimitOrderBufferPercentage/BufferPercentage.jsx","../../../app/javascript/modules/QuantBuilder/components/LimitOrderBufferPercentage/index.jsx","../../../app/javascript/modules/QuantBuilder/components/PlaceStoplossOrderToBroker/PlaceStoplossOrderToBrokerFieldSelector.jsx","../../../app/javascript/modules/QuantBuilder/components/PlaceStoplossOrderToBroker/PlaceStoplossOrderToBrokerField.jsx","../../../app/javascript/modules/QuantBuilder/components/PlaceStoplossOrderToBroker/index.jsx","../../../app/javascript/modules/QuantBuilder/components/SquareOffEntireTransactionIfEntryFailed/SquareOffTransactionIfEntryFailedSelector.jsx","../../../app/javascript/modules/QuantBuilder/components/SquareOffEntireTransactionIfEntryFailed/SquareOffTransactionIfEntryFailed.jsx","../../../app/javascript/modules/QuantBuilder/components/SquareOffEntireTransactionIfEntryFailed/index.jsx","../../../app/javascript/modules/QuantBuilder/components/ProfitAndOrdersComponents/index.jsx","../../../app/javascript/modules/QuantBuilder/components/AdvancedOptions/index.jsx","../../../app/javascript/modules/QuantBuilder/QuantBuilder.jsx","../../../app/javascript/ui/run/RunForm/components/AdvancedBuilder.jsx","../../../app/javascript/ui/run/RunForm/components/QuantOrderType/index.jsx","../../../app/javascript/ui/run/RunForm/components/RunNameInput.jsx","../../../app/javascript/ui/run/RunForm/components/Granularity.jsx","../../../app/javascript/ui/run/RunForm/components/RunType.jsx","../../../app/javascript/ui/Strategies/components/Strategy/freeTrialInfo.jsx","../../../app/javascript/ui/Strategies/components/Strategy/StrategyConfirmationModal.jsx","../../../app/javascript/ui/Strategies/components/Strategy/DeployStrategyButton.jsx","../../../app/javascript/common/api/strategyAccess.js","../../../app/javascript/ui/Strategies/components/Strategy/RequestTypeButton.jsx","../../../app/javascript/ui/Strategies/components/Strategy/AccessTill.jsx","../../../app/javascript/ui/Strategies/components/Strategy/StrategyFreeButton.jsx","../../../app/javascript/ui/Strategies/components/StrategyCard/Footer.jsx","../../../app/javascript/ui/Strategies/components/StrategyCard/index.jsx","../../../app/javascript/ui/Home/components/MarkerPlaceStrategies/DashboardMarketPlaceStrategies.jsx","../../../app/javascript/common/components/ReadMore.jsx","../../../app/javascript/ui/Home/components/ShowCaseRunCards/ShowCaseRunCard/index.jsx","../../../app/javascript/ui/Home/components/ShowCaseRunCards/index.jsx","../../../app/javascript/ui/Home/components/MarkerPlaceStrategies/GoToMarketPlaceBanner.jsx","../../../app/javascript/ui/Home/components/MarkerPlaceStrategies/GoToCreateStrategyBanner.jsx","../../../app/javascript/ui/Home/index.jsx","../../../app/javascript/modules/UserAuth/LocaleWiseLogin/UsLogin.jsx","../../../app/javascript/common/utils/session.js","../../../app/javascript/common/components/RenderInfoMessage.jsx","../../../app/javascript/modules/UserAuth/config.js","../../../app/javascript/v2/modules/withRunForm/utils/loginInModal.js","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/AngelOneLogin.jsx","../../../app/javascript/ui/LandingPage/config.js","../../../app/javascript/modules/UserAuth/SignIn.jsx","../../../app/javascript/modules/UserAuth/SignUp.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/config.js","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/IciciDirect.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Zerodha.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Zebull.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Flattrade.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/iifl.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/upstox.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Paytm.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/KotakNeo.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Sharekhan.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/PhilipCapital.jsx","../../../app/javascript/v2/common/components/CopyTextButton/index.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Hdfcsky.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/InvestRight.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Rupeezy.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/Fyers.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerContent/index.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/SecretKeyAuthentication.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerIdAuthentication/BrokerSimpleLogin.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerIdAuthentication/index.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/CommonComponents/UserInput.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Bigul.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Xts.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/GoodwillDealer.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Finvasia.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/iifl.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Zebull.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Bnrathi.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Tradeplus.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/SkyBroking.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/KotakNeo.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/AcAgarwal.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/PhilipCapital.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Samco.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/IndiraSecurities.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/JainamBroking.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Kasat.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/FairInvest.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/Profitmart.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/BrokerSpecficComponents/TradeSmart.jsx","../../../app/javascript/modules/UserAuth/AuthenticationModal/index.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/AlicBlueLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/PaytmLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/DhanLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/DhaniStocksLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/GoodWillLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/IciciDirectLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/NuvamaLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/bigulLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/IiflLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/FlattradeLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/FinvasiaLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/RupeezyLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/EnrichMoneyLogin.jsx","../../../app/javascript/modules/UserAuth/BrokerAccountLoginModal.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/KotakNeoLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/SharekhanLogin.jsx","../../../app/javascript/modules/UserAuth/BrokerSelectionDropDown.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/PhilipCapitalLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/samcoLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/UpstoxLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/investRightLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/hdfcSky.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/GrowwLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/FivePaisaLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/JainamLiteLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/StoxkartLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/ZerodhaLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/ZebuLogin.jsx","../../../app/javascript/modules/UserAuth/specificDomainLoginPages/FyersLogin.jsx","../../../app/javascript/modules/UserAuth/LocaleWiseLogin/IndiaLogin.jsx","../../../app/javascript/modules/UserAuth/index.jsx","../../../app/javascript/ui/LandingPage/pages/HomeSection.jsx","../../../app/javascript/ui/LandingPage/pages/AboutSection.jsx","../../../app/javascript/ui/LandingPage/pages/FeaturesSection.jsx","../../../app/javascript/ui/LandingPage/pages/Faq.jsx","../../../app/javascript/ui/LandingPage/pages/ContactSection.jsx","../../../app/javascript/ui/LandingPage/pages/Footer.jsx","../../../app/javascript/ui/LandingPage/index.jsx","../../../app/javascript/common/components/MessageToast/index.jsx","../../../app/javascript/common/utils/userMessages.js","../../../app/javascript/ui/UserMessages/UserMessageToast.jsx","../../../app/javascript/common/utils/initializeConfettiAnimationParty.js","../../../node_modules/fireworks-js/dist/index.es.js","../../../app/javascript/ui/UserMessages/FireworksBlast.jsx","../../../app/javascript/ui/UserMessages/UserMessageModal.jsx","../../../app/javascript/ui/UserMessages/ScriptLoad.jsx","../../../app/javascript/ui/UserMessages/UserMessageBanner.jsx","../../../app/javascript/ui/UserMessages/index.jsx","../../../app/javascript/ui/TermsAndConditions/Content.jsx","../../../app/javascript/ui/TermsAndConditions/strategyDomainContent.jsx","../../../app/javascript/ui/TermsAndConditions/index.jsx","../../../app/javascript/ui/Home/components/ShowCaseRun/ShowCase.jsx","../../../app/javascript/ui/Home/components/ShowCaseRun/Summary.jsx","../../../app/javascript/ui/VideoPage/Components/FilteredTitles.jsx","../../../app/javascript/ui/VideoPage/config.js","../../../app/javascript/ui/VideoPage/Components/LanguageTab.jsx","../../../app/javascript/ui/VideoPage/Components/VideosDetails.jsx","../../../app/javascript/ui/VideoPage/Components/VideoTitleOptionsAndSeachBar.jsx","../../../app/javascript/ui/VideoPage/index.jsx","../../../app/javascript/common/api/callbackRequest.js","../../../app/javascript/ui/HelpLine/HelpLineInput.jsx","../../../app/javascript/ui/HelpLine/index.jsx","../../../app/javascript/common/api/siteConfig.js","../../../app/javascript/ui/Meeting/Details.jsx","../../../app/javascript/ui/Meeting/MeetingDetails.jsx","../../../app/javascript/ui/Meeting/index.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/FilterHeader.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/SegmentFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/MarginFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/InstrumentFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/TagFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/PremiumFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/AuthorNameFilter.jsx","../../../app/javascript/ui/Strategies/components/StrategyFilters/index.jsx","../../../app/javascript/ui/Strategies/components/StrategiesFilterNavTab.jsx","../../../app/javascript/ui/Strategies/components/StrategyBanner.jsx","../../../app/javascript/ui/Strategies/components/StrategyErrorMessage.jsx","../../../app/javascript/ui/Strategies/StrategieFooter.jsx","../../../app/javascript/ui/Strategies/index.jsx","../../../app/javascript/ui/Strategies/components/StrategyRunDetails/StrategyDeployedRunDetails.jsx","../../../app/javascript/ui/Strategies/components/StrategyRunDetails/StrategyBacktestRunDetails.jsx","../../../app/javascript/ui/Strategies/components/StrategyRunDetails/StrategyLiveRunDetails.jsx","../../../app/javascript/common/components/ReactDataTable.jsx","../../../app/javascript/ui/Strategies/components/Strategy/StrategyAccessDetails.jsx","../../../app/javascript/ui/Strategies/components/Strategy/IndividualStrategyDetails.jsx","../../../app/javascript/common/api/strategyAnalytics.js","../../../app/javascript/ui/Strategies/components/StrategyAnalytics/BreadCrumb.jsx","../../../app/javascript/ui/Strategies/components/StrategyAnalytics/TableHeaderConfigs.js","../../../app/javascript/ui/Strategies/components/StrategyAnalytics/index.jsx","../../../app/javascript/ui/Strategies/components/Strategy/index.jsx","../../../app/javascript/ui/AdminV2JobsDetailsAndActions/V2Dashboard.jsx","../../../app/javascript/ui/AdminV2JobsDetailsAndActions/V2JobDetails.jsx","../../../app/javascript/ui/AdminV2JobsDetailsAndActions/V2JobActions.jsx","../../../app/javascript/ui/AdminV2JobsDetailsAndActions/index.jsx","../../../app/javascript/common/components/FlashNotice.jsx","../../../app/javascript/common/components/LoginButton.jsx","../../../app/javascript/ui/NumerousRuns/SelectRuns.jsx","../../../app/javascript/ui/NumerousRuns/OptimizeBy.jsx","../../../app/javascript/ui/NumerousRuns/index.jsx","../../../app/javascript/ui/StrategyAdminPanel/StrategyAccessDetailsAdminPanel.jsx","../../../app/javascript/ui/StrategyAdminPanel/index.jsx","../../../app/javascript/common/api/adminTicks.js","../../../app/javascript/ui/AdminTicks/LiveDataAdminPanel.jsx","../../../app/javascript/ui/AdminTicks/RocksDBDataAdminPanel.jsx","../../../app/javascript/common/components/PaginationFooter/index.jsx","../../../app/javascript/ui/AdminTicks/config.js","../../../app/javascript/ui/AdminTicks/HistoricDataAdminPanel.jsx","../../../app/javascript/common/api/campaigns.js","../../../app/javascript/ui/CampaignRegistration/index.jsx","../../../app/javascript/modules/UpgradePlan/Plan.jsx","../../../app/javascript/modules/UpgradePlan/CurrentAndUpgradePlanDetail.jsx","../../../app/javascript/modules/UpgradePlan/UpgradePaymentDetails.jsx","../../../app/javascript/modules/UpgradePlan/index.jsx","../../../app/javascript/common/components/ChartJsGraph.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/HeaderDetails/index.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/helper.js","../../../app/javascript/ui/B2B/OrderAndUserDetails/OrderDetails/index.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/UserDetails/UserStrategyDetails.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/UserDetails/TableBody.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/UserDetails/index.jsx","../../../app/javascript/ui/B2B/OrderAndUserDetails/index.jsx","../../../app/javascript/common/components/PrivateGroupMarketPlaceTab.jsx","../../../app/javascript/ui/ReferAndEarn/SocialShare.jsx","../../../app/javascript/ui/ReferAndEarn/index.jsx","../../../app/javascript/ui/MandatoryEmailId/EmailIdForm.jsx","../../../app/javascript/ui/MandatoryEmailId/index.jsx","../../../app/javascript/ui/TelegramPopUp/index.jsx","../../../app/javascript/ui/Preferences/constants.js","../../../app/javascript/ui/Preferences/index.jsx","../../../app/javascript/common/api/tip.js","../../../app/javascript/ui/Tips/Media.jsx","../../../app/javascript/ui/Tips/MultiMedia.jsx","../../../app/javascript/ui/Tips/useTipsLocalStorage.js","../../../app/javascript/ui/Tips/Video.jsx","../../../app/javascript/ui/Tips/index.jsx","../../../app/javascript/ui/Referrer/ReferralCollector.jsx","../../../app/javascript/common/api/referrer.js","../../../app/javascript/ui/Referrer/Dashboard/Filter.jsx","../../../app/javascript/ui/Referrer/Dashboard/LinkedUserList.jsx","../../../app/javascript/ui/Referrer/Dashboard/Summary.jsx","../../../app/javascript/ui/Referrer/Dashboard/index.jsx","../../../app/javascript/ui/Referrer/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/SubmitButton/index.jsx","../../../app/javascript/ui/run/RunForm/components/RunFormInstructions.jsx","../../../app/javascript/v2/modules/withRunForm/events/uiBehaviourFlags.js","../../../app/javascript/v2/modules/withRunForm/events/runType.js","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/RunType.jsx","../../../app/javascript/v2/common/components/FolderSelector/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/Folder.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/GranularitySelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/OrderExecutionVersionSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/HistoricDateRangePicker/error.js","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/HistoricDateRangePicker/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunFormHeader/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/AdvancedOptions/AdjustmentOptions/RenderExecutionType.jsx","../../../app/javascript/v2/modules/withRunForm/components/AdvancedOptions/AdjustmentOptions/RenderDelayInput.jsx","../../../app/javascript/v2/modules/withRunForm/components/AdvancedOptions/AdjustmentOptions/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/AdvancedOptions/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useCase/intentDependencies.js","../../../app/javascript/v2/modules/withRunForm/hooks/useCases/clone.js","../../../app/javascript/v2/modules/withRunForm/hooks/useCases/useCasesError.js","../../../app/javascript/v2/modules/withRunForm/hooks/useCases/index.js","../../../app/javascript/v2/modules/withRunForm/hooks/useOutputSchema.js","../../../app/javascript/v2/modules/withRunForm/hooks/useCase/helper.js","../../../app/javascript/v2/modules/withRunForm/hooks/useCase/index.js","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/useSignalsForm.js","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/ConditionalOperator/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/LeftOperand/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/Operator/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/RightOperand/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Signal/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/Main.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/SignalsForm/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Signals/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useIntents/useIntentsError.js","../../../app/javascript/v2/modules/withRunForm/hooks/useIntents/index.js","../../../app/javascript/v2/modules/withRunForm/hoc/withIntentsContext.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useIntent/index.js","../../../app/javascript/v2/modules/withRunForm/hooks/useIntent/useModifyExistingIntent.js","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/ModifyExistingLegsIntent/TargetSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/IntentTypeSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/ModifyExistingLegsIntent/index.jsx","../../../app/javascript/v2/common/components/SegmentSelector/index.jsx","../../../app/javascript/common/components/Quantity.jsx","../../../app/javascript/v2/common/components/WaitAndTrade/index.jsx","../../../app/javascript/v2/common/components/BuyOrSellSelector.jsx","../../../app/javascript/v2/common/components/StopsInput/index.jsx","../../../app/javascript/v2/common/components/ReEntryOrExecute/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useIntent/useOpenIntent.js","../../../app/javascript/v2/common/components/TrailingStopLoss/TrailingStopLossInputs.jsx","../../../app/javascript/v2/common/components/TrailingStopLoss/TrailingFields.jsx","../../../app/javascript/v2/common/components/TrailingStopLoss/AddTrailing.jsx","../../../app/javascript/v2/common/components/TrailingStopLoss/errorConfig.js","../../../app/javascript/v2/common/components/TrailingStopLoss/index.jsx","../../../app/javascript/v2/common/components/StopsInput/DelayBy.jsx","../../../app/javascript/v2/common/components/OptionTypeSelector/index.jsx","../../../app/javascript/v2/common/components/ExpirySelector/index.jsx","../../../app/javascript/v2/common/components/StrikeBasedSelector/IndicatorValuePathSelector.jsx","../../../app/javascript/v2/common/components/StrikeBasedSelector/useStrikeBased.js","../../../app/javascript/v2/common/components/StrikeBasedSelector/Selection.jsx","../../../app/javascript/v2/common/components/StrikeBasedSelector/index.jsx","../../../app/javascript/v2/common/components/InstrumentIndexSelector/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/OpenLegIntent/InstrumentBasedDetails.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useQuickAdjustments/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/OpenLegIntent/QuickAdjustments/QuickAdjustmentDelayBy.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/OpenLegIntent/QuickAdjustments/QuickAdjustmentForm.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/OpenLegIntent/QuickAdjustments/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/OpenLegIntent/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useIntent/useBasketIntent.js","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/BasketIntent/BasketSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/BasketIntent/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/Intent/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/IntentHeaders/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Intents/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Cases/Case/CaseBasedBehaviourFlags/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Cases/Case/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/Cases/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/ExpiryDetails/ExpirySelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/ExpiryDetails/MaxTransactionsPerDay.jsx","../../../app/javascript/v2/modules/withRunForm/components/ExpiryDetails/Intraday.jsx","../../../app/javascript/v2/modules/withRunForm/components/ExpiryDetails/Positional.jsx","../../../app/javascript/v2/modules/withRunForm/components/ExpiryDetails/index.jsx","../../../app/javascript/v2/modules/withRunForm/events/resetLabels.js","../../../app/javascript/v2/modules/withRunForm/events/quantityReset.js","../../../app/javascript/v2/modules/withRunForm/components/FeatureEnablements/QuantityReset/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/FeatureEnablements/index.jsx","../../../app/javascript/v2/common/components/SingleInstrumentSelector/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/InstrumentDetails/ModeSelector.jsx","../../../app/javascript/v2/modules/withRunForm/events/instrumentGroups.js","../../../app/javascript/v2/modules/withRunForm/hooks/useInstrumentDetails/index.js","../../../app/javascript/v2/modules/withRunForm/events/globalSegment.js","../../../app/javascript/v2/modules/withRunForm/components/InstrumentDetails/GlobalSegmentSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/InstrumentDetails/index.jsx","../../../app/javascript/v2/common/components/StopsValueTypeToggleBtn.jsx","../../../app/javascript/v2/modules/withRunForm/components/OverallExitCondition/StopLossOrGainInput.jsx","../../../app/javascript/v2/modules/withRunForm/components/OverallExitCondition/OverallTransactionTSL.jsx","../../../app/javascript/v2/modules/withRunForm/components/OverallExitCondition/index.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/usePipeConfigs/pipesDependencies.js","../../../app/javascript/v2/modules/withRunForm/events/pipeName.js","../../../app/javascript/v2/modules/withRunForm/hooks/usePipeConfigs/index.js","../../../app/javascript/common/api/validationSchema.js","../../../app/javascript/v2/modules/withRunForm/hooks/useValidationSchema/pipeValidators.js","../../../app/javascript/v2/modules/withRunForm/hooks/useValidationSchema/index.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/PipeSelector.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/PipeName.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/PipeChartConfig.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/NumberFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/SelectFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ValuePathsFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/SignalFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/PipeCandleInterval.jsx","../../../app/javascript/v2/modules/withRunForm/hooks/useCase/pipeIntentDependencies.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/PipeIntents.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/StopLossFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/TimeOfDayField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/VendorField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ReadOnlyField.jsx","../../../app/javascript/common/api/externalSignal.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ExternalSignal/TradingView.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ExternalSignal/ChartInk.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ExternalSignal/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/FloatFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/PipeVolumeInterval.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/utility.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/customValidation.js","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/Legacy/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/components/ScriptFormField.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/CustomScript/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/Snippet/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/PipeInput.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/PipeConfigForm/index.jsx","../../../app/javascript/v2/modules/withRunForm/components/PipeConfigs/index.jsx","../../../app/javascript/v2/modules/withRunForm/QuantBuilder.jsx","../../../app/javascript/v2/modules/withRunForm/components/RunCreditDetails/index.jsx","../../../app/javascript/v2/modules/withRunForm/Main.jsx","../../../app/javascript/v2/ui/run/RunForm/index.jsx","../../../app/javascript/v2/RunWidget/index.jsx"],"sourcesContent":["/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","/** Internal global with common properties and Sentry extensions */\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","// This is a magic string replaced by rollup\n\nconst SDK_VERSION = \"9.7.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './utils-hoist/version.js';\nimport { GLOBAL_OBJ } from './utils-hoist/worldwide.js';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(\n name,\n creator,\n obj = GLOBAL_OBJ,\n) {\n const __SENTRY__ = (obj.__SENTRY__ = obj.__SENTRY__ || {});\n const carrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n // Note: We do not want to set `carrier.version` here, as this may be called before any `init` is called, e.g. for the default scopes\n return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** A Sentry Logger instance. */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n//# sourceMappingURL=logger.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the scope itself, making it:\n //\n // Sentry.captureException()\n // scope.captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat?.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem?.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs = keyAttrs?.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs?.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","import { isString, isRegExp, isVueViewModel } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isPrimitive, isElement, isPlainObject } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * If the method on the passed object is not a function, the wrapper will not be applied.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n // explicitly casting to unknown because we don't know the type of the method initially at all\n const original = source[name] ;\n\n if (typeof original !== 'function') {\n return;\n }\n\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n try {\n source[name] = wrapped;\n } catch {\n DEBUG_BUILD && logger.log(`Failed to replace method \"${name}\" in object`, source);\n }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.getOwnPropertyNames(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n // this will catch both undefined and null\n case wat == undefined:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify };\n//# sourceMappingURL=object.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance?.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Cached result of getBrowserTimeOrigin.\n */\nlet cachedTimeOrigin;\n\n/**\n * Gets the time origin and the mode used to determine it.\n */\nfunction getBrowserTimeOrigin() {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance?.now) {\n return [undefined, 'none'];\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing?.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n return [performance.timeOrigin, 'timeOrigin'];\n } else {\n return [navigationStart, 'navigationStart'];\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n return [dateNow, 'dateNow'];\n}\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nfunction browserPerformanceTimeOrigin() {\n if (!cachedTimeOrigin) {\n cachedTimeOrigin = getBrowserTimeOrigin();\n }\n\n return cachedTimeOrigin[0];\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n const gbl = GLOBAL_OBJ ;\n return gbl.crypto || gbl.msCrypto;\n}\n\n/**\n * UUID4 generator\n * @param crypto Object that provides the crypto API.\n * @returns string Generated UUID4.\n */\nfunction uuid4(crypto = getCrypto()) {\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto?.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto?.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception?.values?.[0];\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (isAlreadyCaptured(exception)) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nfunction isAlreadyCaptured(exception) {\n try {\n return (exception ).__sentry_captured__;\n } catch {} // eslint-disable-line no-empty\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(executor) {\n this._state = States.PENDING;\n this._handlers = [];\n\n this._runExecutor(executor);\n }\n\n /** @inheritdoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** @inheritdoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** @inheritdoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** Excute the resolve/reject handlers. */\n _executeHandlers() {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n }\n\n /** Run the executor for the SyncPromise. */\n _runExecutor(executor) {\n const setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(resolve, reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n const resolve = (value) => {\n setResult(States.RESOLVED, value);\n };\n\n const reject = (reason) => {\n setResult(States.REJECTED, reason);\n };\n\n try {\n executor(resolve, reject);\n } catch (e) {\n reject(e);\n }\n }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import './utils-hoist/debug-build.js';\nimport './utils-hoist/logger.js';\nimport { dropUndefinedKeys } from './utils-hoist/object.js';\nimport { timestampInSeconds } from './utils-hoist/time.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport './utils-hoist/syncpromise.js';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see Client.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { uuid4 } from './misc.js';\n\n/**\n * Generate a random, valid trace ID.\n */\nfunction generateTraceId() {\n return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nfunction generateSpanId() {\n return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n","/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nfunction merge(initialObj, mergeObj, levels = 2) {\n // If the merge value is not an object, or we have no merge levels left,\n // we just set the value to the merge value\n if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n return mergeObj;\n }\n\n // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n if (initialObj && Object.keys(mergeObj).length === 0) {\n return initialObj;\n }\n\n // Clone object\n const output = { ...initialObj };\n\n // Merge values into output, resursively\n for (const key in mergeObj) {\n if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n output[key] = merge(output[key], mergeObj[key], levels - 1);\n }\n }\n\n return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n","import { addNonEnumerableProperty } from '../utils-hoist/object.js';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { updateSession } from './session.js';\nimport { isPlainObject } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport { generateTraceId } from './utils-hoist/propagationContext.js';\nimport { dateTimestampInSeconds } from './utils-hoist/time.js';\nimport { merge } from './utils/merge.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * A context to be used for capturing an event.\n * This can either be a Scope, or a partial ScopeContext,\n * or a callback that receives the current scope and returns a new scope to use.\n */\n\n/**\n * Holds additional event information.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n sampleRand: Math.random(),\n };\n }\n\n /**\n * Clone all data from this scope into a new scope.\n */\n clone() {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n // We need to copy the `values` array so insertions on a cloned scope\n // won't affect the original array.\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values],\n };\n }\n\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * Update the client assigned to this scope.\n * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n * as well as manually created scopes.\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * Set the ID of the last captured error event.\n * This is generally only captured on the isolation scope.\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * Get the client assigned to this scope.\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * Get the ID of the last captured error event.\n * This is generally only available on the isolation scope.\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * Add an event processor that will be called before an event is sent.\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * Set the user for this scope.\n * Set to `null` to unset the user.\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Get the user from this scope.\n */\n getUser() {\n return this._user;\n }\n\n /**\n * Set an object that will be merged into existing tags on the scope,\n * and will be sent as tags data with the event.\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set a single tag that will be sent as tags data with the event.\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set an object that will be merged into existing extra on the scope,\n * and will be sent as extra data with the event.\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set a single key:value extra entry that will be sent as extra data with the event.\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the fingerprint on the scope to send with the events.\n * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the level on the scope for future events.\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope so that the name of e.g. taken server route or\n * the page location is attached to future events.\n *\n * IMPORTANT: Calling this function does NOT change the name of the currently active\n * root span. If you want to change the name of the active root span, use\n * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n *\n * By default, the SDK updates the scope's transaction name automatically on sensible\n * occasions, such as a page navigation or when handling a new request on the server.\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets context data with the given name.\n * Data passed as context will be normalized. You can also pass `null` to unset the context.\n * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set the session for the scope.\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Get the session from the scope.\n */\n getSession() {\n return this._session;\n }\n\n /**\n * Updates the scope with provided data. Can work in three variations:\n * - plain object containing updatable attributes\n * - Scope instance that'll extract the attributes from\n * - callback function that'll receive the current scope as an argument and allow for modifications\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const scopeInstance =\n scopeToMerge instanceof Scope\n ? scopeToMerge.getScopeData()\n : isPlainObject(scopeToMerge)\n ? (captureContext )\n : undefined;\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n return this;\n }\n\n /**\n * Clears the current scope and resets its properties.\n * Note: The client will not be cleared.\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this.setPropagationContext({ traceId: generateTraceId(), sampleRand: Math.random() });\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Adds a breadcrumb to the scope.\n * By default, the last 100 breadcrumbs are kept.\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n this._breadcrumbs.push(mergedBreadcrumb);\n if (this._breadcrumbs.length > maxCrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n this._client?.recordDroppedEvent('buffer_overflow', 'log_item');\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * Get the last breadcrumb of the scope.\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * Clear all breadcrumbs from the scope.\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Add an attachment to the scope.\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * Clear all attachments from the scope.\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Get the data of this scope, which should be applied to an event during processing.\n */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry.\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n\n /**\n * Add propagation context to the scope, used for distributed tracing\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * Get propagation context from the scope, used for distributed tracing\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @returns {string} The id of the captured Sentry event.\n */\n captureException(exception, hint) {\n const eventId = hint?.event_id || uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @returns {string} The id of the captured message.\n */\n captureMessage(message, level, hint) {\n const eventId = hint?.event_id || uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a Sentry event for this scope.\n *\n * @returns {string} The id of the captured event.\n */\n captureEvent(event, hint) {\n const eventId = hint?.event_id || uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { isThenable } from '../utils-hoist/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport './utils-hoist/debug-build.js';\nimport './utils-hoist/logger.js';\nimport { dropUndefinedKeys } from './utils-hoist/object.js';\nimport './utils-hoist/time.js';\nimport './utils-hoist/syncpromise.js';\nimport { generateSpanId } from './utils-hoist/propagationContext.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nfunction getTraceContextFromScope(scope) {\n const propagationContext = scope.getPropagationContext();\n\n const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n\n const traceContext = dropUndefinedKeys({\n trace_id: traceId,\n span_id: propagationSpanId || generateSpanId(),\n parent_span_id: parentSpanId,\n });\n\n return traceContext;\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, getTraceContextFromScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Attributes that holds the sample rate that was locally applied to a span.\n * If this attribute is not defined, it means that the span inherited a sampling decision.\n *\n * NOTE: Is only defined on root spans.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { addNonEnumerableProperty } from '../utils-hoist/object.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nfunction getCapturedScopesOnSpan(span) {\n return {\n scope: (span )[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span )[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n\nexport { getCapturedScopesOnSpan, setCapturedScopesOnSpan };\n//# sourceMappingURL=utils.js.map\n","/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n return undefined;\n }\n\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nconst TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nfunction extractTraceparentData(traceparent) {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nfunction propagationContextFromHeaders(\n sentryTrace,\n baggage,\n) {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n if (!traceparentData?.traceId) {\n return {\n traceId: generateTraceId(),\n sampleRand: Math.random(),\n };\n }\n\n const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n\n // The sample_rand on the DSC needs to be generated based on traceparent + baggage.\n if (dynamicSamplingContext) {\n dynamicSamplingContext.sample_rand = sampleRand.toString();\n }\n\n const { traceId, parentSpanId, parentSampled } = traceparentData;\n\n return {\n traceId,\n parentSpanId,\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n sampleRand,\n };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nfunction generateSentryTraceHeader(\n traceId = generateTraceId(),\n spanId = generateSpanId(),\n sampled,\n) {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n\n/**\n * Given any combination of an incoming trace, generate a sample rand based on its defined semantics.\n *\n * Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n */\nfunction getSampleRandFromTraceparentAndDsc(\n traceparentData,\n dsc,\n) {\n // When there is an incoming sample rand use it.\n const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n if (parsedSampleRand !== undefined) {\n return parsedSampleRand;\n }\n\n // Otherwise, if there is an incoming sampling decision + sample rate, generate a sample rand that would lead to the same sampling decision.\n const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n if (parsedSampleRate && traceparentData?.parentSampled !== undefined) {\n return traceparentData.parentSampled\n ? // Returns a sample rand with positive sampling decision [0, sampleRate)\n Math.random() * parsedSampleRate\n : // Returns a sample rand with negative sampling decision [sampleRate, 1)\n parsedSampleRate + Math.random() * (1 - parsedSampleRate);\n } else {\n // If nothing applies, return a random sample rand.\n return Math.random();\n }\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, propagationContextFromHeaders };\n//# sourceMappingURL=tracing.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { consoleSandbox } from '../utils-hoist/logger.js';\nimport { dropUndefinedKeys, addNonEnumerableProperty } from '../utils-hoist/object.js';\nimport { generateSpanId } from '../utils-hoist/propagationContext.js';\nimport { timestampInSeconds } from '../utils-hoist/time.js';\nimport { generateSentryTraceHeader } from '../utils-hoist/tracing.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n // If the span is remote, we use a random/virtual span as span_id to the trace context,\n // and the remote span as parent_span_id\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Converts the span links array to a flattened version to be sent within an envelope.\n *\n * If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nfunction convertSpanLinksForEnvelope(links) {\n if (links && links.length > 0) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext,\n }));\n } else {\n return undefined;\n }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status, links } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n links: convertSpanLinksForEnvelope(links),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n // This should not actually happen in reality, but we need to handle it for type safety.\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {},\n };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nfunction showSpanDropWarning() {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.',\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nfunction updateSpanName(span, name) {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n });\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if span recording is currently enabled.\n *\n * Spans are recorded when at least one of `tracesSampleRate` and `tracesSampler`\n * is defined in the SDK config. This function does not make any assumption about\n * sampling decisions, it only checks if the SDK is configured to record spans.\n *\n * Important: This function only determines if span recording is enabled. Trace\n * continuation and propagation is separately controlled and not covered by this function.\n * If this function returns `false`, traces can still be propagated (which is what\n * we refer to by \"Tracing without Performance\")\n * @see https://develop.sentry.dev/sdk/telemetry/traces/tracing-without-performance/\n *\n * @param maybeOptions An SDK options object to be passed to this function.\n * If this option is not provided, the function will use the current client's options.\n */\nfunction hasSpansEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const options = maybeOptions || getClient()?.getOptions();\n return (\n !!options &&\n // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n (options.tracesSampleRate != null || !!options.tracesSampler)\n );\n}\n\n/**\n * @see JSDoc of `hasSpansEnabled`\n * @deprecated Use `hasSpansEnabled` instead, which is a more accurately named version of this function.\n * This function will be removed in the next major version of the SDK.\n */\n// TODO(v10): Remove this export\nconst hasTracingEnabled = hasSpansEnabled;\n\nexport { hasSpansEnabled, hasTracingEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils-hoist/baggage.js';\nimport { dropUndefinedKeys, addNonEnumerableProperty } from '../utils-hoist/object.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nfunction getDynamicSamplingContextFromScope(client, scope) {\n const propagationContext = scope.getPropagationContext();\n return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const rootSpan = getRootSpan(span);\n const rootSpanJson = spanToJSON(rootSpan);\n const rootSpanAttributes = rootSpanJson.data;\n const traceState = rootSpan.spanContext().traceState;\n\n // The span sample rate that was locally applied to the root span should also always be applied to the DSC, even if the DSC is frozen.\n // This is so that the downstream traces/services can use parentSampleRate in their `tracesSampler` to make consistent sampling decisions across the entire trace.\n const rootSpanSampleRate =\n traceState?.get('sentry.sample_rate') ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n function applyLocalSampleRateToDsc(dsc) {\n if (typeof rootSpanSampleRate === 'number' || typeof rootSpanSampleRate === 'string') {\n dsc.sample_rate = `${rootSpanSampleRate}`;\n }\n return dsc;\n }\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return applyLocalSampleRateToDsc(frozenDsc);\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceStateDsc = traceState?.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return applyLocalSampleRateToDsc(dscOnTraceState);\n }\n\n // Else, we generate it from the span\n const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = rootSpanJson.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasSpansEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasSpansEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n dsc.sample_rand =\n // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n traceState?.get('sentry.sample_rand') ??\n // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n }\n\n applyLocalSampleRateToDsc(dsc);\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const inner = new WeakSet();\n function memoize(obj) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n\n function unmemoize(obj) {\n inner.delete(obj);\n }\n return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isThenable } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { SyncPromise } from './utils-hoist/syncpromise.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastKeysCount;\nlet cachedFilenameDebugIds;\n\n/**\n * Returns a map of filenames to debug identifiers.\n */\nfunction getFilenameToDebugIdMap(stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n if (!debugIdMap) {\n return {};\n }\n\n const debugIdKeys = Object.keys(debugIdMap);\n\n // If the count of registered globals hasn't changed since the last call, we\n // can just return the cached result.\n if (cachedFilenameDebugIds && debugIdKeys.length === lastKeysCount) {\n return cachedFilenameDebugIds;\n }\n\n lastKeysCount = debugIdKeys.length;\n\n // Build a map of filename -> debug_id.\n cachedFilenameDebugIds = debugIdKeys.reduce((acc, stackKey) => {\n if (!parsedStackResults) {\n parsedStackResults = {};\n }\n\n const result = parsedStackResults[stackKey];\n\n if (result) {\n acc[result[0]] = result[1];\n } else {\n const parsedStack = stackParser(stackKey);\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const filename = stackFrame?.filename;\n const debugId = debugIdMap[stackKey];\n\n if (filename && debugId) {\n acc[filename] = debugId;\n parsedStackResults[stackKey] = [filename, debugId];\n break;\n }\n }\n }\n\n return acc;\n }, {});\n\n return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nfunction getDebugImagesForResources(\n stackParser,\n resource_paths,\n) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n if (!filenameDebugIdMap) {\n return [];\n }\n\n const images = [];\n for (const path of resource_paths) {\n if (path && filenameDebugIdMap[path]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[path] ,\n });\n }\n }\n\n return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n","import { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { dropUndefinedKeys } from '../utils-hoist/object.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n data[prop] = merge(data[prop], mergeVal, 1);\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (!event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=applyScopeDataToEvent.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from '../utils-hoist/debug-ids.js';\nimport { uuid4, addExceptionMechanism } from '../utils-hoist/misc.js';\nimport { normalize } from '../utils-hoist/normalize.js';\nimport { truncate } from '../utils-hoist/string.js';\nimport { dateTimestampInSeconds } from '../utils-hoist/time.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n // empty strings do not make sense for environment, release, and dist\n // so we handle them the same as if they were not provided\n event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n if (!event.release && release) {\n event.release = release;\n }\n\n if (!event.dist && dist) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception?.values?.[0];\n if (exception?.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request?.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts?.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n // event.contexts.flags (FeatureFlagContext) stores context for our feature\n // flag integrations. It has a greater nesting depth than our other typed\n // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n // to skip this in case of conflicting, user-provided context.\n if (event.contexts?.flags && normalized.contexts) {\n normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope, captureContext) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(hint) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { getCurrentScope, getClient, withIsolationScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { isThenable } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport { timestampInSeconds } from './utils-hoist/time.js';\nimport { GLOBAL_OBJ } from './utils-hoist/worldwide.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(exception, hint) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n e => {\n finishCheckIn('error');\n throw e;\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession?.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const client = getClient();\n const session = isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","import React from 'react';\nimport Paginate from 'react-paginate';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n totalPages: PropTypes.number.isRequired,\n currentPageIndex: PropTypes.number.isRequired,\n onPageChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst PAGE_RANGE = 6;\nconst MARGIN_PAGES = 1;\n\nconst Pagination = (props) => {\n const { totalPages, onPageChange, currentPageIndex } = props;\n\n return (\n \n NEXT\n chevron_right\n \n )}\n previousLabel={(\n
\n PREV\n chevron_left\n
\n )}\n onPageChange={onPageChange}\n breakClassName=\"page-item\"\n breakLinkClassName=\"page-link\"\n containerClassName=\"pagination mb-0\"\n pageClassName=\"page-item\"\n pageLinkClassName=\"page-link\"\n previousClassName=\"page-item\"\n previousLinkClassName=\"page-link\"\n nextClassName=\"page-item\"\n nextLinkClassName=\"page-link\"\n activeClassName=\"active\"\n />\n );\n};\n\nPagination.propTypes = propTypes;\nPagination.defaultProps = defaultProps;\n\nexport default Pagination;\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nconst propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.string,\n ]),\n isLoading: PropTypes.bool\n};\n\nconst defaultProps = {\n children: null,\n isLoading: false,\n};\n\nconst LoadingSpinner = (props) => {\n const { children, isLoading } = props;\n const spinnerContainerClassNames = classNames('spinner-container', { show: isLoading });\n\n return (\n
\n
\n \n
\n {children}\n
\n );\n};\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.defaultProps = defaultProps;\nexport default LoadingSpinner;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport * as Sentry from '@sentry/browser';\n\nconst propTypes = {\n children: PropTypes.node,\n errorMessage: PropTypes.string,\n isShowHeader: PropTypes.bool\n};\n\nconst defaultProps = {\n children: null,\n errorMessage: '',\n isShowHeader: true\n};\n\nclass ErrorHandler extends Component {\n constructor(props) {\n super(props);\n this.state = { errorInfo: null, error: null };\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n errorInfo,\n error\n });\n }\n\n render() {\n const { errorInfo, error } = this.state;\n const { children, errorMessage, isShowHeader } = this.props;\n\n if (errorInfo) {\n Sentry.captureException(error); // sentry capture\n\n return (\n
\n {isShowHeader &&

Something went wrong

}\n \n {errorMessage}\n \n
\n {error && error.toString()}\n
\n {errorInfo.componentStack || null}\n
\n
\n );\n }\n return children;\n }\n}\n\nErrorHandler.propTypes = propTypes;\nErrorHandler.defaultProps = defaultProps;\n\nexport default ErrorHandler;\n","import React, { Component } from 'react';\nimport ErrorHandler from './ErrorHandler';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nexport default function withErrorBoundary(WrappedComponent, errorMessage = '', isShowHeader = false) {\n return class extends Component {\n render() {\n return (\n \n \n \n );\n }\n };\n}\n\nwithErrorBoundary.propTypes = propTypes;\nwithErrorBoundary.defaultProps = defaultProps;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\nimport moment from 'moment';\n\nconst propTypes = {\n post: PropTypes.shape({\n id: PropTypes.string.isRequired,\n feature_image: PropTypes.string,\n feature_image_caption: PropTypes.string,\n title: PropTypes.string.isRequired,\n slug: PropTypes.string.isRequired,\n created_at: PropTypes.string.isRequired,\n reading_time: PropTypes.number.isRequired,\n excerpt: PropTypes.string.isRequired,\n }).isRequired,\n index: PropTypes.number,\n};\n\nconst defaultProps = {\n index: 0\n};\n\nconst PostCard = ({ post, index }) => {\n return (\n <>\n
\n {post.feature_image && (\n \n\n \n\n \n )}\n\n
\n\n \n
\n
\n

\n { post.title }\n

\n
\n
\n { post.excerpt }\n
\n
\n\n
\n
\n \n \n {' '}\n {`${post.reading_time} min read`}\n \n
\n \n \n \n
\n\n
\n\n
\n \n );\n};\n\nexport default memo(PostCard);\n\nPostCard.propTypes = propTypes;\nPostCard.defaultProps = defaultProps;\n","import React, { memo } from 'react';\n\nconst PageNotFound = () => {\n return (\n <>\n
\n
\n
\n
\n
\n \"something\n
\n

404. Page Not found.

\n
The Page you are looking for does not exist.
\n Back to Home\n
\n
\n
\n
\n \n );\n};\n\nexport default memo(PageNotFound);\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport GhostContentAPI from '@tryghost/content-api';\nimport Pagination from 'common/components/Pagination';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\n\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport PostCard from './PostCard';\nimport PageNotFound from './PageNotFound';\n\nconst ghostsApi = new GhostContentAPI({\n host: _.get(window, 'SA_CONFIGS.ghostAPIHost', 'https://www.quantman.in/blog'),\n key: _.get(window, 'SA_CONFIGS.ghostAPIKey', ''),\n version: 'v5.0'\n});\n\nconst INITIAL_PAGE_NO = 0;\nconst PER_PAGE_LIMIT = 15;\n\nconst Blogs = () => {\n const [blogState, setBlogState] = useState({\n posts: [],\n tags: {},\n });\n const { posts, tags } = blogState;\n const [tagName, setTagName] = useState('');\n const [pagination, setPagination] = useState({});\n const [isLoading, setIsLoading] = useState(false);\n const [currentPageIndex, setCurrentPageIndex] = useState(INITIAL_PAGE_NO);\n useEffect(() => {\n (async () => {\n try {\n setIsLoading(true);\n const results = await ghostsApi.posts.browse(\n {\n limit: PER_PAGE_LIMIT,\n page: Number(currentPageIndex + 1),\n filter: tagName ? `tag:${tagName}` : ''\n }\n );\n const tagsList = await ghostsApi.tags.browse();\n setBlogState({ posts: results, tags: tagsList });\n setPagination(results.meta.pagination);\n } catch (e) {\n console.log('Error while fetching posts', e);\n } finally {\n setIsLoading(false);\n }\n })();\n }, [currentPageIndex, tagName]);\n\n const renderPostCard = (post, index) => {\n const className = `post-card post ${index === 0\n ? 'post-card-large col-lg-12'\n : 'col-lg-4'} mb-25 ${post.feature_image ? '' : 'no-image'}`;\n\n return (\n
\n \n
\n );\n };\n\n const renderTagsList = (tag) => {\n return (\n \n setTagName(tag.name)}\n className=\"filter-item\"\n >\n {tag.name}\n \n \n );\n };\n\n if (!posts.length && !isLoading) return ;\n\n return (\n <>\n
\n
\n \n

{tagName || 'All Posts'}

\n\n
\n
\n \n {_.map(tags, renderTagsList)}\n
\n
\n\n
\n
\n\n
\n
\n
\n
\n {_.map(posts, renderPostCard)}\n
\n
\n
\n
\n
\n
\n\n
\n { pagination.total > PER_PAGE_LIMIT && (\n <>\n {\n setCurrentPageIndex(selectedPage);\n }}\n />\n \n {' '}\n Page\n {' '}\n {pagination.page}\n {' '}\n of\n {' '}\n {pagination.pages}\n \n \n )}\n
\n
\n \n );\n};\n\nexport default withErrorBoundary(Blogs);\n","import _ from 'lodash';\nimport React, { useState, useEffect, useMemo } from 'react';\nimport GhostContentAPI from '@tryghost/content-api';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport moment from 'moment';\nimport PageNotFound from './PageNotFound';\nimport PostCard from './PostCard';\n\nconst ghostsApi = new GhostContentAPI({\n host: _.get(window, 'SA_CONFIGS.ghostAPIHost', 'https://www.quantman.in/blog'),\n key: _.get(window, 'SA_CONFIGS.ghostAPIKey', ''),\n version: 'v5.0'\n});\n\nconst propTypes = {\n propsSlugName: PropTypes.string.isRequired\n};\n\nconst IndividualBlog = ({ propsSlugName }) => {\n const slugName = useMemo(() => propsSlugName, [propsSlugName]);\n const [blog, setBlog] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [relatedPosts, setRelatedPosts] = useState([]);\n\n useEffect(() => {\n (async () => {\n try {\n setIsLoading(true);\n const result = await ghostsApi.posts.read(\n { slug: slugName },\n { formats: ['html', 'plaintext'] }\n );\n const relatedBlogs = await ghostsApi.posts.browse({ limit: 4 });\n setBlog({ ...result, html: result.html.replace(/<\\/?o:p>/g, '') });\n setRelatedPosts(_.filter(relatedBlogs, (item) => item.id !== result.id));\n } catch (e) {\n console.log('Error while fetching post', e);\n } finally {\n setIsLoading(false);\n }\n })();\n }, [slugName]);\n\n const renderPostCard = (post) => {\n return (\n
\n \n
\n );\n };\n\n if (!blog.html && !isLoading) {\n return ;\n }\n\n return (\n
\n\n
\n\n \n
\n
\n \n \n \n
\n
\n
\n\n
\n\n
\n\n

{blog.title}

\n\n
\n
\n\n
    \n
  • \n \n \"QUANTMAN\"\n \n
  • \n
\n\n
\n

Quantman

\n
\n \n \n *\n {' '}\n {`${blog.reading_time} min read`}\n \n
\n
\n\n
\n
\n\n {blog.feature_image && (\n
\n \n
\n )}\n\n
\n\n
\n {ReactHtmlParser(blog.html || '404 Not Found')}\n
\n\n
\n
\n
\n
\n

Related Posts:

\n
\n
\n {_.map(relatedPosts, renderPostCard)}\n
\n
\n\n
\n
\n\n
\n\n
\n );\n};\n\nIndividualBlog.propTypes = propTypes;\n\nexport default IndividualBlog;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n \"use strict\";\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function() {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function() {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function() {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n };\n var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function() {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n }, allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function() {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var SubscriptionGuarantor = function() {\n function SubscriptionGuarantor(subscriptions) {\n classCallCheck(this, SubscriptionGuarantor);\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n SubscriptionGuarantor.prototype.guarantee = function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \" + subscription.identifier);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \" + subscription.identifier);\n }\n this.startGuaranteeing();\n };\n SubscriptionGuarantor.prototype.forget = function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \" + subscription.identifier);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function(s) {\n return s !== subscription;\n });\n };\n SubscriptionGuarantor.prototype.startGuaranteeing = function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n };\n SubscriptionGuarantor.prototype.stopGuaranteeing = function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n };\n SubscriptionGuarantor.prototype.retrySubscribing = function retrySubscribing() {\n var _this = this;\n this.retryTimeout = setTimeout(function() {\n if (_this.subscriptions && typeof _this.subscriptions.subscribe === \"function\") {\n _this.pendingSubscriptions.map(function(subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \" + subscription.identifier);\n _this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n };\n return SubscriptionGuarantor;\n }();\n var Subscriptions = function() {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function(subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function(s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function(s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function(subscription) {\n return _this2.subscribe(subscription);\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function(subscription) {\n return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map(function(subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.subscribe = function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n };\n Subscriptions.prototype.confirmSubscription = function confirmSubscription(identifier) {\n var _this4 = this;\n logger.log(\"Subscription confirmed \" + identifier);\n this.findAll(identifier).map(function(subscription) {\n return _this4.guarantor.forget(subscription);\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function() {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [ {\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n } ]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.SubscriptionGuarantor = SubscriptionGuarantor;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `rails generate channel` command.\n\nimport { createConsumer } from '@rails/actioncable';\n\nexport default createConsumer();\n","import { toast } from 'react-toastify';\n\nexport const TOASTIFY_TYPES = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\nexport const reactToastify = (message, type = TOASTIFY_TYPES.INFO, options = {}) => {\n // options.className: 'large-toast' => For a larger toast\n toast(message, {\n position: 'top-center',\n autoClose: 3000,\n hideProgressBar: false,\n type,\n theme: 'light',\n ...options,\n });\n};\n","import PropTypes from 'prop-types';\n\nexport default PropTypes.shape({\n id: PropTypes.number.isRequired,\n url: PropTypes.string.isRequired,\n notifiables: PropTypes.arrayOf(PropTypes.shape({\n notifiable_type: PropTypes.string.isRequired,\n notifiable_id: PropTypes.string.isRequired,\n })).isRequired,\n event: PropTypes.string.isRequired,\n details: PropTypes.shape({}),\n is_new: PropTypes.bool.isRequired,\n created_at: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired\n});\n","import _ from 'lodash';\n\nexport const BROKERS = _.get(window, 'brokerConfigs', {});\nexport const XTS_API_VENDOR = 'xtsApiVendor';\nexport const QUOTA_FOR_SECOND_WISE_BACKTEST = 4;\n\nexport const BFO_INSTRUMENTS = ['SENSEX', 'BANKEX'];\n\nexport const ORDER_TYPES = {\n paper: { value: 'paper', displayName: 'Paper Testing' },\n oneClick: { value: 'oneclick', displayName: 'Oneclick Trading' },\n automatic: { value: 'automatic', displayName: 'Auto Trading' }\n};\n\nexport const RUN_TYPES = { live: 'live', historic: 'historic' };\nexport const RUN_GRANULARITY = { second: 'second', minute: 'minute' };\n\nexport const MAX_HISTORIC_COMBINED_RESULTS = 10;\n\nexport const ORDER_CONFIRMATION_STATUSES = { NEW: 'new', IGNORED: 'ignored', CONFIRMED: 'confirmed' };\n\nexport const NOTIFICATION_EVENTS = {\n RUN: {\n NAME: 'Run', EVENTS: { ERRORED: 'errored', },\n },\n ORDER: {\n NAME: 'Order',\n EVENTS: {\n ENTRY_ORDERS_FAILED: 'entry_orders_failed',\n STOPLOSS_ORDERS_FAILED: 'stoploss_orders_failed',\n EXIT_ORDERS_FAILED: 'exit_orders_failed',\n\n ENTRY_ORDERS_CANCEL_FAILED: 'entry_orders_cancel_failed',\n STOPLOSS_ORDERS_CANCEL_FAILED: 'stoploss_orders_cancel_failed',\n\n ENTRY_ORDERS_MODIFY_FAILED: 'entry_orders_modify_failed',\n EXIT_ORDERS_MODIFY_FAILED: 'exit_orders_cancel_failed',\n }\n },\n ORDERV2: {\n NAME: 'OrderV2'\n }\n};\n\nexport const DOMAINS = {\n ANGEL_ONE: 'angelone',\n ALICE_BLUE: 'aliceblue',\n PAYTM_MONEY: 'paytmmoney',\n DEFAULT_DOMAIN: 'www',\n ICICI_DIRECT: 'icicidirect',\n GOODWILL: 'goodwill',\n BIGUL: 'bigul',\n DHAN: 'dhan',\n NUVAMA: 'nuvama',\n ENRICH_MONEY: 'enrichmoney',\n KOTAK_NEO: 'kotakneo',\n SHAREKHAN: 'sharekhan',\n RUPEEZY: 'rupeezy',\n PHILLIP_CAPITAL: 'phillipcapital',\n SAMCO: 'samco',\n UPSTOX: 'upstox',\n INVESTRIGHT: 'investright',\n HDFCSKY: 'hdfcsky',\n FIVEPAISA: '5paisa',\n GROWW: 'groww',\n ZERODHA: 'zdha',\n FLATTRADE: 'flattrade',\n FINVASIA: 'finvasia',\n FYERS: 'fyers',\n ZEBU: 'zebu',\n DHANISTOCKS: 'dhanistocks',\n IIFL: 'iifl',\n JAINAMLITE: 'jainamlite',\n STOXKART:'stoxkart',\n};\n\nexport const REMOVE_BACKTEST_CONTENT_ON_BROKER_DOMAINS = ['sharekhan'];\n\nexport const REMOVE_INSTAOPTIONS_PROMO_ON_BROKER_DOMAINS = ['bigul', 'upstox'];\n\nexport const CALLBACK_SUPPORTED_ON_BROKER_DOMAINS = [\n 'hdfcsky',\n 'paytmmoney',\n 'flattrade',\n 'paytm',\n 'sharekhan',\n 'invest_right',\n 'upstox'\n];\n\nexport const QUANT_SCHEMA_CATEGORIES = {\n COMBINED_PREMIUM: 'combinedPremium',\n FUTURE_PRICE: 'future',\n EQUITY_PRICE: 'equity',\n INDICATOR: 'indicator',\n INDIAVIX: 'indiaVix',\n INDIVIDUALSTOP: 'individualStop',\n CUSTOM_PROP: 'custom',\n STRATEGY_STOP: 'strategyStop'\n};\n\nexport const OPTION_TYPES = {\n CE: 'CE',\n PE: 'PE'\n};\n\nexport const TRANSACTION_TYPES = {\n buy: 'buy',\n sell: 'sell'\n};\n\nexport const SEGMENT_CONFIG = {\n future: 'future',\n equity: 'equity',\n option: 'option'\n};\n\nexport const PRODUCT_TYPES = {\n mis: { label: 'MIS', value: 'mis' },\n normal: { label: 'Normal', value: 'normal' },\n};\n\nexport const STOPS_VALUE_TYPES = {\n Percent: 'Percent',\n Amount: 'Amount',\n Points: 'Points',\n};\n\nexport const INTENT_TYPES = {\n OpenLeg: 'OpenLeg',\n CloseLeg: 'CloseLeg',\n UpdateStopLoss: 'UpdateStopLoss',\n ReEntry: 'ReEntry',\n};\n\nexport const WAIT_AND_TRADE_TYPES = {\n WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE: 'waitUntilPremiumToIncreaseInPercentage',\n WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE: 'waitUntilPremiumToDecreaseInPercentage',\n};\n\nexport const SEGMENT_NAMES = [\n { value: SEGMENT_CONFIG.future, displayName: 'Future & Options' },\n { value: SEGMENT_CONFIG.equity, displayName: 'Equity & Index' },\n // { value: SEGMENT_CONFIG.equityAndFuture, displayName: 'Equity & F&O' }\n];\n\nexport const SEGMENT_CATEGORY_IN_QUANT = {\n month1Price: 'month1Price',\n equity: 'equity'\n};\n\nexport const FIXED_AMOUNT = 'fixed_amount';\nexport const FREE = 'free';\nexport const REQUEST_TYPE = 'request_type';\n\nexport const PURCHASE_TYPES = [\n { value: FREE, label: 'Free Strategy' },\n // { value: FIXED_AMOUNT, label: 'Paid Strategy' }\n // { value: REQUEST_TYPE, label: 'Request / Approval' },\n];\n\nexport const highRiskHighReward = 'high_risk_high_reward';\n\nexport const RISK_CATRGORIES = [\n { value: 'low_risk_consistent_Reward', label: 'Low', imagePath: '/low-risk.png' },\n { value: 'medium_risk_medium_reward', label: 'Medium', imagePath: '/medium-risk.png' },\n { value: highRiskHighReward, label: 'High', imagePath: '/high-risk.png' }\n];\n\nexport const STRATEGY_ACCESS_STATUS = {\n REQUESTED: 'requested',\n PAID: 'paid',\n REJECTED: 'rejected'\n};\n\nexport const SEGMENT_SUPPORT_CONFIGS = (segments) => {\n let config = { isSupportEquity: false, isSupportFuture: false, isSupportOption: false };\n if (_.isEmpty(segments)) return config;\n\n if (_.includes(segments, SEGMENT_CONFIG.equity)) config = { ...config, isSupportEquity: true };\n if (_.includes(segments, SEGMENT_CONFIG.future)) config = { ...config, isSupportFuture: true };\n if (_.includes(segments, SEGMENT_CONFIG.option)) config = { ...config, isSupportOption: true };\n\n return config;\n};\n\nexport const LIVE_ICON = 'icons-live';\nexport const BACK_TEST_ICON = 'icons-history';\nexport const MARKET_PLACE_ICON = 'material-icons-marketplace';\n\nexport const MARKET_START_TIME = '09:15';\nexport const MARKET_END_TIME = '15:30';\n\nexport const slippageTypes = {\n price: 'price',\n percentage: 'percentage'\n};\n\nexport const TRADINGSYMBOL_REGEX = new RegExp(\n [\n '(?[A-Z,&-]+)',\n '(?[\\\\d]{2})',\n '(?[A-Z]{3})',\n '(?[\\\\d]{2})',\n '(?[\\\\d/.]+)?',\n '(?CE|PE|FUT)',\n ].join(''),\n);\n","import _ from 'lodash';\nimport React from 'react';\nimport { NOTIFICATION_EVENTS, RUN_TYPES } from 'common/constants';\nimport notificationPropType from './propTypes/notificationPropType';\n\nconst propTypes = {\n notification: notificationPropType.isRequired,\n};\n\nconst defaultProps = {};\n\nconst RunDetailNotificationMessage = ({ notification }) => {\n const { details, event } = notification;\n const oneIndentation = ' ';\n\n const statusEvent = () => {\n switch (event) {\n case _.includes(_.values(NOTIFICATION_EVENTS.RUN.EVENTS), event):\n return 'failed';\n default:\n return event;\n }\n };\n\n const renderMessage = () => {\n const { run_type: runType, run_name: fileName, folder_name: folderName, } = details;\n const testType = (runType === RUN_TYPES.historic)\n ? 'Backtest' : 'Live Depolyment';\n const status = statusEvent();\n const runFileName = `(${fileName})`;\n const runFolderName = `(${folderName})`;\n\n return (\n \n {testType}\n {oneIndentation}\n {status}\n ,\n \n {oneIndentation}\n {runFileName}\n \n {oneIndentation}\n in\n {oneIndentation}\n \n {runFolderName}\n \n \n );\n };\n\n return renderMessage();\n};\n\nRunDetailNotificationMessage.defaultProps = defaultProps;\nRunDetailNotificationMessage.propTypes = propTypes;\n\nexport default RunDetailNotificationMessage;\n","import _ from 'lodash';\nimport React from 'react';\nimport { NOTIFICATION_EVENTS } from 'common/constants';\nimport notificationPropType from './propTypes/notificationPropType';\n\nconst propTypes = {\n notification: notificationPropType.isRequired\n};\nconst defaultProps = {};\n\nconst { ORDER } = NOTIFICATION_EVENTS;\nconst { EVENTS } = ORDER;\nconst {\n ENTRY_ORDERS_FAILED,\n ENTRY_ORDERS_CANCEL_FAILED,\n ENTRY_ORDERS_MODIFY_FAILED,\n EXIT_ORDERS_FAILED,\n EXIT_ORDERS_MODIFY_FAILED,\n STOPLOSS_ORDERS_FAILED,\n STOPLOSS_ORDERS_CANCEL_FAILED\n} = EVENTS;\n\nconst OrderDetailedMessage = ({ notification }) => {\n const { details, event } = notification;\n const { run_name: fileName, folder_name: folderName } = details;\n const oneIndentation = ' ';\n\n const signalType = () => {\n switch (event) {\n case ENTRY_ORDERS_FAILED:\n return 'Entry Order(s)';\n case ENTRY_ORDERS_CANCEL_FAILED:\n return 'Unable to cancel entry orders(s)';\n case ENTRY_ORDERS_MODIFY_FAILED:\n return 'Unable to modify entry orders(s)';\n case EXIT_ORDERS_FAILED:\n return 'Exit Order(s)';\n case EXIT_ORDERS_MODIFY_FAILED:\n return 'Unable to modify exit orders(s)';\n case STOPLOSS_ORDERS_FAILED:\n return 'Unable to cancel stoploss orders(s)';\n case STOPLOSS_ORDERS_CANCEL_FAILED:\n return 'Unable to cancel stoploss orders(s)';\n default:\n return '';\n }\n };\n\n const renderMessage = () => {\n if (!_.includes(_.values(EVENTS), event)) return null;\n\n return (\n \n \n {signalType()}\n {oneIndentation}\n \n {oneIndentation}\n {_.includes([ENTRY_ORDERS_FAILED, EXIT_ORDERS_FAILED], event) && 'failed'}\n ,\n {oneIndentation}\n \n {`(${fileName})`}\n {oneIndentation}\n \n in\n {oneIndentation}\n \n {`(${folderName})`}\n \n \n );\n };\n\n return renderMessage();\n};\n\nOrderDetailedMessage.defaultProps = defaultProps;\nOrderDetailedMessage.propTypes = propTypes;\n\nexport default OrderDetailedMessage;\n","import React from 'react';\nimport { NOTIFICATION_EVENTS } from 'common/constants';\nimport notificationPropType from './propTypes/notificationPropType';\nimport RunDetailNotificationMessage from './RunDetailNotificationMessage';\nimport OrderDetailedMessage from './OrderDetailedMessage';\n\nconst propTypes = {\n notification: notificationPropType.isRequired,\n};\n\nconst defaultProps = {};\n\nconst NotificationMessage = ({ notification }) => {\n const { notifiables } = notification;\n const notifiableType = notifiables[0].notifiable_type;\n\n const renderMessage = () => {\n switch (notifiableType) {\n case NOTIFICATION_EVENTS.RUN.NAME:\n return ;\n case NOTIFICATION_EVENTS.ORDER.NAME:\n case NOTIFICATION_EVENTS.ORDERV2.NAME:\n return ;\n default:\n return null;\n }\n };\n\n return (\n <>\n
\n {renderMessage()}\n \n );\n};\n\nNotificationMessage.propTypes = propTypes;\nNotificationMessage.defaultProps = defaultProps;\n\nexport default NotificationMessage;\n","import _ from 'lodash';\nimport * as Sentry from '@sentry/browser';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst wrappedFetch = (...args) => fetch(...args)\n .then((response) => {\n if (response.status === 401 || response.status === 403) {\n console.log(`Reloading because of api call failure with status ${response.status}`);\n window.location.reload();\n reactToastify('Un-authorized, Please Login and continue', TOASTIFY_TYPES.ERROR);\n\n return new Promise(() => { });\n }\n\n if (response.status === 422 || response.status === 404) {\n return Promise.reject(response);\n }\n\n if (!response.ok) {\n return response.text().then((errors) => {\n throw Error(`Failed ${args[0]} \n status: ${response.status} ${response.status}. body: ${errors} -${JSON.stringify(response)}`);\n });\n }\n\n return response;\n });\n\nexport const handleApiError = async (errorResponse) => {\n if (errorResponse.status !== 422) {\n Sentry.captureException(errorResponse);\n console.log('Error occured during api call ', errorResponse);\n return;\n }\n\n const errorContent = await errorResponse.json();\n const errorMessage = `Error creating folder!. ${_.chain(errorContent)\n .get('errors')\n .map((message, key) => `${key} ${message}`)\n .value()}`;\n\n reactToastify(errorMessage, TOASTIFY_TYPES.ERROR);\n};\n\nexport default wrappedFetch;\n","import _ from 'lodash';\nimport wrappedFetch from './base';\n\nexport const fetchOrders = _.memoize(({ runId, jobId, orderConfirmationId }) => {\n return wrappedFetch(`/runs/${runId}/jobs/${jobId}/order_confirmations/${orderConfirmationId}/orders`)\n .then((response) => response.json());\n}, ({ runId, jobId, orderConfirmationId }) => `${runId}_${jobId}_${orderConfirmationId}`);\n\nexport const fetchOrdersByOrderId = _.memoize(({ jobId, orderIds }) => {\n const encodedOrderIds = _.map(orderIds, (id) => encodeURIComponent(id)).join(',');\n return wrappedFetch(\n `${window.location.origin}/runs/${jobId}/orders?run_type=live&by_order_ids=${encodedOrderIds}`\n )\n .then((response) => response.json());\n}, ({ jobId, orderIds }) => `${jobId}_${orderIds}`);\n\nexport const updateSignalConfirmation = ({\n runId,\n jobId,\n orderConfirmationId,\n verificationToken: token,\n status,\n ordersPrice\n}) => {\n const params = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ token, status, ordersPrice })\n };\n\n return wrappedFetch(\n `/runs/${runId}/jobs/${jobId}/order_confirmations/${orderConfirmationId}/update_confirmation`,\n params\n ).then((response) => response.json());\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport { Modal, Button } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n children: PropTypes.element,\n onSave: PropTypes.func,\n onClose: PropTypes.func,\n title: PropTypes.string,\n size: PropTypes.string,\n message: PropTypes.string,\n className: PropTypes.string,\n customWidth: PropTypes.string,\n shouldConfirmClose: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n okBtnTitle: PropTypes.string,\n onCancel: PropTypes.func,\n cancelBtnTitle: PropTypes.string,\n btnClassName: PropTypes.string,\n backdrop: PropTypes.string,\n onSaveid: PropTypes.string,\n modalSaveButtonProps: PropTypes.shape({}),\n isOkBtnDisabled: PropTypes.bool,\n shouldShow: PropTypes.bool\n};\nconst defaultProps = {\n children: null,\n onSave: null,\n title: '',\n okBtnTitle: 'Save',\n size: '',\n message: null,\n className: '',\n customWidth: '',\n onClose: _.noop,\n shouldConfirmClose: false,\n onCancel: null,\n cancelBtnTitle: 'Cancel',\n btnClassName: '',\n backdrop: '',\n onSaveid: '',\n modalSaveButtonProps: {},\n isOkBtnDisabled: false,\n shouldShow: true\n};\n\nexport default class ModalComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = { isClosing: false };\n }\n\n onHide = () => {\n const { onClose, shouldConfirmClose } = this.props;\n\n if (_.isFunction(shouldConfirmClose) ? () => shouldConfirmClose() : shouldConfirmClose) {\n this.setState({ isClosing: true });\n } else {\n onClose();\n }\n }\n\n onConfirmedClose = () => {\n const { onClose } = this.props;\n\n this.setState({ isClosing: false });\n onClose();\n }\n\n renderCloseConfirmation = () => (\n <>\n
\n
\n
Confirmation
\n \n info\n \n\n

Are you sure to close without saving

\n
\n
\n\n
\n \n Yes\n \n\n this.setState({ isClosing: false })}\n >\n No\n \n
\n \n );\n\n render() {\n const {\n children, title, onSave, size, className, customWidth, okBtnTitle,\n btnClassName, message, onCancel, cancelBtnTitle, backdrop, onSaveid,\n modalSaveButtonProps, isOkBtnDisabled, shouldShow\n } = this.props;\n const { isClosing } = this.state;\n\n let modalProps = {\n size: isClosing ? 'sm' : size,\n show: shouldShow,\n dialogClassName: customWidth,\n onHide: this.onHide,\n className,\n centered: true,\n 'aria-labelledby': 'contained-modal-title-vcenter',\n };\n\n if (backdrop) modalProps = { ...modalProps, backdrop };\n\n const renderModalFooter = () => {\n const isShow = message || onSave || onCancel;\n if (!isShow) return null;\n\n return (\n \n {message &&
{message}
}\n {onCancel && (\n \n )}\n {onSave && (\n \n {okBtnTitle}\n \n )}\n
\n );\n };\n\n return (\n \n {isClosing ? this.renderCloseConfirmation() : (\n <>\n \n {title}\n \n {children}\n {renderModalFooter()}\n \n )}\n \n );\n }\n}\n\nModalComponent.propTypes = propTypes;\nModalComponent.defaultProps = defaultProps;\n","import PropTypes from 'prop-types';\nimport moment from 'moment';\n\nexport const oneOfTypes = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n]);\n\nexport const addonPropTypes = PropTypes.shape({\n addon_name: PropTypes.string,\n historic_run_limit: PropTypes.number,\n live_run_limit: PropTypes.number,\n});\n\nexport const strategyAccessPropTypes = PropTypes.shape({\n status: PropTypes.string,\n activeTill: PropTypes.string,\n paidTill: PropTypes.string\n});\n\nexport const runPropTypes = PropTypes.shape({\n folder_id: PropTypes.number,\n id: PropTypes.number,\n start_date: PropTypes.string,\n end_date: PropTypes.string,\n run_type: PropTypes.string,\n order_type: PropTypes.string,\n status: PropTypes.string,\n shouldEmitOnSubmit: PropTypes.bool,\n});\n\nexport const folderPropTypes = PropTypes.shape({\n id: PropTypes.number,\n is_default: PropTypes.bool,\n live_runs_count: PropTypes.number,\n historic_runs_count: PropTypes.number,\n});\n\nexport const userPropTypes = PropTypes.shape({\n id: PropTypes.number,\n email: PropTypes.string,\n folders_count: PropTypes.number,\n runs_count: PropTypes.number,\n sign_in_count: PropTypes.number,\n created_at: PropTypes.string,\n updated_at: PropTypes.string,\n admin: PropTypes.bool\n});\n\nexport const outputSchemaPropTypes = PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n type: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n}));\n\nexport const instrumentGroupsPropTypes = PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.string),\n);\n\nexport const timeBasedSignalPropTypes = PropTypes.shape({\n entryTime: PropTypes.string,\n exitTime: PropTypes.string\n});\n\nexport const expiryHandlingPropsTypes = PropTypes.shape({\n type: PropTypes.string,\n exitTime: PropTypes.string,\n exitDaysBefore: PropTypes.number\n});\n\nexport const transactionModePropTypes = PropTypes.shape({\n transaction: PropTypes.string,\n optionStrategy: PropTypes.string,\n optionSubStrategy: PropTypes.string,\n});\n\nexport const optionConfigPropTypes = PropTypes.shape({\n strikeIndex: PropTypes.number,\n optionType: PropTypes.string,\n entryType: PropTypes.string,\n quantity: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n});\n\nexport const futureConfigPropTypes = PropTypes.shape({\n quantityExpression: PropTypes.string,\n amount: PropTypes.number,\n monthIndex: PropTypes.number,\n entryType: PropTypes.string\n});\n\nexport const transactionConfigPropTypes = PropTypes.shape({\n mode: transactionModePropTypes,\n futureConfig: futureConfigPropTypes,\n optionConfigs: PropTypes.arrayOf(optionConfigPropTypes),\n quantityExpressionDetails: PropTypes.shape({\n quantity: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n operator: PropTypes.string,\n indicator: PropTypes.string,\n }),\n});\n\nexport const transactionBuilderConfigPropTypes = PropTypes.shape({\n tradeType: PropTypes.string,\n strike: PropTypes.number,\n optionType: PropTypes.string,\n quantity: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n transactionType: PropTypes.string,\n stopGain: PropTypes.number,\n stopLoss: PropTypes.number,\n});\n\nexport const transactionBuilderConfigsPropTypes = PropTypes.arrayOf(\n transactionBuilderConfigPropTypes\n);\n\nexport const rightOperandPropTypes = PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.number, // there is an enum 0 or 1.. or else user type number..\n PropTypes.arrayOf(PropTypes.string)\n]);\n\nexport const signalConfigPropTypes = PropTypes.shape({\n conditionOperator: PropTypes.string,\n leftOperand: PropTypes.string,\n operator: PropTypes.string,\n rightOperand: rightOperandPropTypes,\n});\n\nexport const orderConfigsPropTypes = PropTypes.arrayOf(\n PropTypes.shape({\n entrySignalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n exitSignalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n transactionConfigs: PropTypes.arrayOf(transactionConfigPropTypes),\n }),\n);\n\nexport const chartConfigPropTypes = PropTypes.shape({\n type: PropTypes.string,\n boxUnitSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n boxPercentage: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n});\n\nexport const pipeConfigPropTypes = PropTypes.shape({\n type: PropTypes.string,\n name: PropTypes.string,\n config: PropTypes.shape({}),\n chartConfig: chartConfigPropTypes,\n});\n\nexport const signalPropTypes = PropTypes.shape({\n conditionOperator: PropTypes.string,\n leftOperand: PropTypes.string,\n operator: PropTypes.string,\n rightOperand: rightOperandPropTypes,\n});\n\nexport const signalsPropTypes = PropTypes.arrayOf(signalPropTypes);\n\nexport const intentPropTypes = PropTypes.shape({});\nexport const intentsPropTypes = PropTypes.arrayOf(intentPropTypes);\n\nexport const quickAdjustmentPropTypes = PropTypes.shape({\n trigger: PropTypes.string,\n action: PropTypes.string,\n targets: PropTypes.arrayOf(PropTypes.string),\n});\n\nexport const casePropTypes = PropTypes.shape({\n entry: PropTypes.shape({\n signal: signalsPropTypes.isRequired,\n intents: intentsPropTypes.isRequired,\n }).isRequired,\n exitSignal: signalsPropTypes.isRequired,\n adjustments: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n});\n\nexport const pipeConfigsPropTypes = PropTypes.arrayOf(pipeConfigPropTypes);\n\nexport const quantConfigPropTypes = PropTypes.shape({\n chartConfig: chartConfigPropTypes,\n entryOrderType: PropTypes.string,\n exitOrderType: PropTypes.string,\n expiryHandling: expiryHandlingPropsTypes,\n instrumentGroups: instrumentGroupsPropTypes,\n maxTransactionsPerDay: PropTypes.number,\n optionsExpiryCycle: PropTypes.string,\n orderConfigs: orderConfigsPropTypes,\n pipeConfigs: pipeConfigsPropTypes,\n repeatOrder: PropTypes.bool,\n timeBasedSignal: timeBasedSignalPropTypes,\n tradingType: PropTypes.string,\n trailingStopLoss: PropTypes.number,\n stopLoss: PropTypes.number,\n stopGain: PropTypes.number,\n});\n\nexport const simpleBuilderConfigPropTypes = PropTypes.shape({\n instruments: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n paramsConfig: PropTypes.shape({\n periodInterval: PropTypes.string\n }),\n entrySignals: PropTypes.shape({}),\n exitSignals: PropTypes.shape({}),\n timeBasedSignal: timeBasedSignalPropTypes,\n expiryHandling: expiryHandlingPropsTypes,\n tradingType: PropTypes.string,\n transactionConfigs: PropTypes.arrayOf(transactionConfigPropTypes),\n trailingStopLoss: PropTypes.number,\n maxTransactionsPerDay: PropTypes.number,\n});\n\n// oneOfTypes used for live and historic propTypes differ\n// TODO Better way\n\nexport const ordersPropTypes = PropTypes.arrayOf(\n PropTypes.shape({\n complete: oneOfTypes,\n case_index: oneOfTypes,\n created_at: oneOfTypes,\n id: oneOfTypes,\n instrument: oneOfTypes,\n instrument_group_index: oneOfTypes,\n is_entry: oneOfTypes,\n order_time: PropTypes.instanceOf(moment),\n transaction_type: oneOfTypes,\n price: oneOfTypes,\n quantity: oneOfTypes,\n run_id: oneOfTypes,\n transaction_id: oneOfTypes,\n updated_at: oneOfTypes,\n })\n);\n\nexport const validatorProptypes = PropTypes.arrayOf(\n PropTypes.shape({\n property: PropTypes.string,\n message: PropTypes.string\n })\n);\n\nexport const tagPropTypes = PropTypes.shape({\n name: PropTypes.string,\n});\n\nexport const templatePropTypes = PropTypes.shape({\n quantConfig: quantConfigPropTypes,\n name: PropTypes.string,\n tags: PropTypes.arrayOf(tagPropTypes)\n});\n\nexport const planPropTypes = PropTypes.shape({\n id: PropTypes.number,\n plan_name: PropTypes.string,\n price: PropTypes.number,\n historic_run_limit: PropTypes.number,\n live_run_limit: PropTypes.number,\n razorpay_plan_id: PropTypes.string,\n discount_percentage: PropTypes.number,\n cycle_duration_in_months: PropTypes.number,\n});\n\nexport const plansPropTypes = PropTypes.arrayOf(planPropTypes);\n\nexport const purchaseItem = PropTypes.shape({\n id: PropTypes.number,\n coupon_id: PropTypes.number,\n price: PropTypes.string,\n discount_percentage: PropTypes.string,\n purchasable: PropTypes.oneOfType([\n planPropTypes,\n addonPropTypes,\n strategyAccessPropTypes\n ]),\n purchaseType: PropTypes.string\n});\n\nexport const purchasePropTypes = PropTypes.shape({\n id: PropTypes.number,\n created_at: PropTypes.string,\n paid_email_sent: PropTypes.bool,\n price_without_tax: PropTypes.string,\n price_gst: PropTypes.string,\n price_total: PropTypes.string,\n purchase_items: PropTypes.arrayOf(purchaseItem),\n razorpay_order_id: PropTypes.string,\n status: PropTypes.string,\n user_id: PropTypes.number,\n user_name: PropTypes.string,\n user_gst_number: PropTypes.string,\n});\n\nconst jobSummaryPropTypes = PropTypes.shape({\n profit: PropTypes.number,\n complete_total_transactions: PropTypes.number,\n complete_total_orders: PropTypes.number,\n incomplete_amount: PropTypes.number,\n incomplete_transactions: PropTypes.number,\n incomplete_orders: PropTypes.number,\n incomplete_quantity: PropTypes.number\n});\n\nexport const runJobPropTypes = PropTypes.shape({\n id: PropTypes.number,\n status: PropTypes.string,\n start_date: PropTypes.string,\n end_date: PropTypes.string,\n run_is: PropTypes.number,\n summary: jobSummaryPropTypes\n});\n\nexport const runjobsProps = PropTypes.arrayOf(runJobPropTypes);\n\n// oneOfTypes used for live and historic propTypes differ\n// TODO Better way\n\nexport const transactionPropTypes = PropTypes.shape({\n isComplete: oneOfTypes,\n instruments: PropTypes.arrayOf(PropTypes.string),\n orders: ordersPropTypes,\n overallProfit: oneOfTypes,\n sortId: oneOfTypes,\n instrumentGroupIndex: oneOfTypes,\n transactionNumber: oneOfTypes,\n transactionTime: oneOfTypes,\n});\n\nexport const orderTransactionPropTypes = PropTypes.shape({\n entry_status: PropTypes.string,\n sl_status: PropTypes.string,\n exit_status: PropTypes.string,\n run_same: PropTypes.string,\n instruments: PropTypes.arrayOf(PropTypes.string),\n notifiable_updated_time: PropTypes.string\n});\n\nexport const orderModificationPropTypes = PropTypes.shape({\n action: PropTypes.string,\n actionTimeInSeconds: oneOfTypes\n});\n\nexport const strategyPropTypes = PropTypes.shape({\n id: PropTypes.number,\n title: PropTypes.string,\n margin_amount: PropTypes.number,\n max_drawdown: PropTypes.number,\n tags: PropTypes.arrayOf(PropTypes.string),\n risk_category: PropTypes.string,\n segment_type: PropTypes.string,\n purchase_type: PropTypes.string,\n purchase_amount: PropTypes.number,\n backtest_run_id: PropTypes.number,\n live_run_id: PropTypes.number,\n description: PropTypes.string\n});\n\nexport const pairedOrdersPropTypes = PropTypes.shape({\n tradingSymbol: PropTypes.string,\n entryType: PropTypes.string,\n actualEntryTimeISO: PropTypes.instanceOf(moment),\n entryPrice: PropTypes.number,\n exitType: PropTypes.string,\n actualExitTimeISO: PropTypes.instanceOf(moment),\n exitPrice: PropTypes.number,\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n type: PropTypes.string\n};\nconst defaultProps = {\n type: ''\n};\n\nconst TransactionType = ({ type }) => {\n const transactionTypeClassName = classNames('entry-exit-type', {\n buy: type === 'buy',\n sell: type === 'sell'\n });\n\n return (\n
{type}
\n );\n};\n\nTransactionType.propTypes = propTypes;\nTransactionType.defaultProps = defaultProps;\n\nexport default TransactionType;\n","export const STATUS_STYLE_CONFIG = {\n created: {\n statusText: 'signal received',\n statusTextClassName: 'text-warning',\n progressCirlcClassName: ['completed', 'processing', '', '']\n },\n confirmed: {\n statusText: 'signal received',\n statusTextClassName: 'text-warning',\n progressCirlcClassName: ['completed', 'completed', 'processing', ''],\n },\n placed: {\n statusTextClassName: 'text-warning',\n progressCirlcClassName: ['completed', 'completed', 'completed', 'processing'],\n },\n cancelled: {\n statusTextClassName: 'text-notice',\n progressCirlcClassName: ['completed', 'completed', 'completed', 'completed'],\n },\n executed: {\n statusTextClassName: 'text-success',\n progressCirlcClassName: ['completed', 'completed', 'completed', 'completed'],\n },\n failed: {\n statusTextClassName: 'text-danger',\n progressCirlcClassName: ['completed', 'completed', 'completed', 'error'],\n },\n 'sl-achieved': {\n statusTextClassName: 'text-notice',\n progressCirlcClassName: ['completed', 'completed', 'completed', 'completed'],\n },\n partially_executed: {\n statusText: 'partially executed',\n statusTextClassName: 'text-notice',\n progressCirlcClassName: ['completed', 'completed', 'processing', ''],\n },\n modified_to_exit: {\n statusText: 'modified to exit',\n statusTextClassName: 'text-notice',\n progressCirlcClassName: ['completed', 'completed', 'completed', ''],\n }\n};\n","import _ from 'lodash';\nimport { ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\nimport moment from 'moment';\n\nconst BUY = 'buy';\nconst DATE_TIME_FORMAT = 'DD MMM YYYY, HH:mm:ss';\nconst IST_TIME_ZONE = '+05:30';\n\nexport const getConvertedTime = (time) => {\n if (_.includes(time, IST_TIME_ZONE)) return moment(time);\n\n return moment.utc(time);\n};\n\nexport const getformattedTime = (time) => {\n if (!moment(time).isValid()) return null;\n\n return getConvertedTime(time).format(DATE_TIME_FORMAT);\n};\n\nexport const getGroupedOrderProfit = (entryType, entryPrice, exitPrice, quantity) => {\n if (!entryPrice || !exitPrice) return null;\n\n const parsedQuantity = parseFloat(quantity);\n const parsedEntryPrice = parseFloat(entryPrice);\n const parsedExitPrice = parseFloat(exitPrice);\n\n if (entryType === BUY) {\n return (parsedQuantity * parsedExitPrice) - (parsedQuantity * parsedEntryPrice);\n }\n\n return (parsedQuantity * parsedEntryPrice) - (parsedQuantity * parsedExitPrice);\n};\n\nexport const getCompletedOrders = (orders, runType, orderType) => {\n const {\n automatic: { value: automatic }, oneClick: { value: oneclick },\n paper: { value: paper },\n } = ORDER_TYPES;\n const isBacktest = runType === RUN_TYPES.historic;\n const isActualLive = !isBacktest && [automatic, oneclick].includes(orderType);\n\n const entryOrders = _.filter(orders, (order) => order.is_entry === true || order.is_entry === 'true');\n let exitOrders = _.filter(orders, (order) => (order.is_entry === false || order.is_entry === 'false') && (\n !isActualLive || isBacktest || order.status === 'executed') && (\n orderType === paper ? order.leg_type !== 'sl' : true\n ));\n\n if (_.isEmpty(exitOrders) && !isBacktest) {\n exitOrders = _.filter(orders, (order) => {\n return (!order.is_entry || order.is_entry === 'false')\n && (!order.is_stop_loss || order.is_stop_loss === 'false')\n && (!isActualLive || order.status === 'executed');\n });\n }\n\n const COMPLETED_STATUSES = ['executed', 'cancelled', 'failed', 'partially_executed'];\n\n const shouldExitOrderCompletedBasedOnStatus = () => {\n // this function is mainly for actual live\n const exitCompleteOrders = _.filter(orders, (order) => {\n return (!order.is_entry || order.is_entry === 'false')\n && (!order.is_stop_loss || order.is_stop_loss === 'false')\n && (_.includes(COMPLETED_STATUSES, order.status));\n });\n\n const isExitCompletedForActual = !_.isEmpty(exitCompleteOrders);\n const entryPrice = _.get(_.head(entryOrders), 'price', null);\n\n if ((entryPrice === null || isExitCompletedForActual)) { return true; }\n\n return false;\n };\n\n const isCompleted = _.size(entryOrders) === _.size(exitOrders);\n const shouldCalculateUnrealizedProfit = !(isCompleted || (\n isActualLive && shouldExitOrderCompletedBasedOnStatus()\n ));\n\n return {\n isCompleted,\n completedOrders: isCompleted ? [...entryOrders, ...exitOrders] : [],\n shouldCalculateUnrealizedProfit\n };\n};\n","import { getConvertedTime } from 'common/utils/transactions';\n\nexport const renderOrderStatus = (order) => {\n const { is_entry: isEntry, is_stop_loss: isStopLoss } = order;\n\n if (isEntry) return 'Entry';\n if (isStopLoss) return 'Stop Loss';\n\n return 'Exit';\n};\n\nexport const formattedDateAndTime = (time) => {\n if (!time) return 'N/A';\n\n return getConvertedTime(time).format('h:mm:ss a MMM Do, YYYY');\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport { orderTransactionPropTypes } from 'common/propTypes';\nimport PropTypes from 'prop-types';\nimport { ORDER_TYPES } from 'common/constants/index';\nimport TransactionType from 'common/components/TransactionType';\nimport { STATUS_STYLE_CONFIG } from './config';\nimport { formattedDateAndTime, renderOrderStatus } from './helper';\n\nconst propTypes = {\n orders: PropTypes.arrayOf(PropTypes.shape(orderTransactionPropTypes.isRequired)).isRequired,\n orderType: PropTypes.string\n};\nconst defaultProps = { orderType: '' };\n\nconst statusTextUpdate = (status, statusText, failureMessage) => {\n const isValidStatusToShowMessage = status === 'created' || status === 'failed';\n if ((isValidStatusToShowMessage) && failureMessage) return `${statusText}(${failureMessage})`;\n\n return statusText;\n};\n\nconst renderPriceAndTime = (price, time) => {\n const oneIndentation = ' ';\n return (\n
\n {price || '( - )'}\n {oneIndentation}\n /\n {oneIndentation}\n {oneIndentation}\n {time}\n
\n );\n};\n\nconst renderOrderRow = (order, isPaperTrade) => {\n const {\n signal_time: signalTime, signal_price: signalPrice, traded_time: tradedTime, traded_price: tradedPrice,\n status, failure_message: failureMessage, is_waiting: isWaiting, modified_order_type: modifiedOrderType,\n placed_time: placedTime\n } = order;\n const statusConfig = _.get(STATUS_STYLE_CONFIG, status);\n const statusText = _.get(statusConfig, 'statusText', status);\n const statusTextClassName = _.get(statusConfig, 'statusTextClassName', 'text-muted');\n const orderType = `${renderOrderStatus(order)} / ${_.upperFirst(modifiedOrderType || order.order_type)}`;\n\n const alteredStatusText = isWaiting && status === 'confirmed' ? 'waiting' : statusText;\n // need to show waiting status when confirmed orders waiting for options entry buy executed status\n\n return (\n \n {order.trading_symbol}\n \n \n \n {orderType}\n {order.quantity}\n \n {renderPriceAndTime(signalPrice, formattedDateAndTime(signalTime))}\n \n {!isPaperTrade && (\n <>\n \n {formattedDateAndTime(placedTime)}\n \n \n {renderPriceAndTime(tradedPrice, formattedDateAndTime(tradedTime))}\n \n \n \n {statusTextUpdate(status, alteredStatusText, failureMessage)}\n \n \n \n )}\n \n );\n};\n\nconst OrderDetails = ({ orders, orderType }) => {\n const { paper: { value: paper } } = ORDER_TYPES;\n const isPaperTrade = orderType === paper;\n\n return (\n
\n \n \n \n \n \n \n \n \n {!isPaperTrade && (\n <>\n \n \n \n \n )}\n \n \n \n {orders.length\n ? _.map(orders, (order) => renderOrderRow(order, isPaperTrade))\n : }\n \n
Trading SymbolTypeSignal / Order TypeQtySignal Price / TimePlaced TimeTraded Price / TimeStatus
No Orders...
\n
\n );\n};\n\nOrderDetails.propTypes = propTypes;\nOrderDetails.defaultProps = defaultProps;\nexport default OrderDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Modal from 'common/components/ModalComponent';\nimport { orderTransactionPropTypes } from 'common/propTypes';\nimport OrderDetails from 'modules/OrderDetails/index';\n\nconst propTypes = {\n orders: PropTypes.arrayOf(PropTypes.shape(orderTransactionPropTypes.isRequired)).isRequired,\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n orderType: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst OrderDetailsInModal = ({\n orders, onClose, title, orderType\n}) => {\n return (\n
\n {/* order-transaction-panel-modal # classname handled for orderModal */}\n \n
\n \n
\n \n
\n );\n};\n\nOrderDetailsInModal.propTypes = propTypes;\nOrderDetailsInModal.defaultProps = defaultProps;\nexport default OrderDetailsInModal;\n","import React, { useState } from 'react';\nimport { NOTIFICATION_EVENTS } from 'common/constants';\nimport { fetchOrdersByOrderId } from 'common/api/signalConfirmation';\nimport notificationPropType from './propTypes/notificationPropType';\nimport OrderDetailsInModal from './OrderDetailsInModal';\n\nconst propTypes = {\n notification: notificationPropType.isRequired\n};\n\nconst defaultProps = {};\n\nconst ViewOrdersPanel = ({ notification }) => {\n const [isModal, hasShowModal] = useState(false);\n const [orders, setOrders] = useState([]);\n\n const { notifiables } = notification;\n const notifiableType = notifiables[0].notifiable_type;\n\n if (![NOTIFICATION_EVENTS.ORDER.NAME, NOTIFICATION_EVENTS.ORDERV2.NAME].includes(notifiableType)) {\n return null;\n }\n\n const notifiableIds = notifiables.map(({ notifiable_id: notifiableId }) => notifiableId);\n\n const {\n details: {\n job_id: jobId,\n run_name: runName,\n order_type: orderType\n }\n } = notification;\n\n const fetchOrdersDetails = () => {\n fetchOrdersByOrderId({ jobId, orderIds: notifiableIds })\n .then((response) => {\n setOrders(response);\n hasShowModal(true);\n });\n };\n\n return (\n
\n fetchOrdersDetails()}\n >\n Show Details\n \n {isModal && (\n {\n hasShowModal(false);\n setOrders([]);\n }}\n />\n )}\n
\n );\n};\n\nViewOrdersPanel.defaultProps = defaultProps;\nViewOrdersPanel.propTypes = propTypes;\n\nexport default ViewOrdersPanel;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport moment from 'moment';\n\nimport {\n NOTIFICATION_EVENTS, RUN_TYPES\n} from 'common/constants';\nimport notificationPropType from './propTypes/notificationPropType';\nimport NotificationMessage from './NotificationMessage';\nimport ViewOrdersPanel from './ViewOrdersPanel';\n\nconst propTypes = {\n notification: notificationPropType.isRequired,\n onDelete: PropTypes.func.isRequired,\n onMarkAsOld: PropTypes.func.isRequired,\n signalConfirmation: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nexport default class Notification extends React.Component {\n readMessage = () => {\n const { notification, onMarkAsOld } = this.props;\n const isNew = _.get(notification, 'is_new');\n if (isNew) onMarkAsOld(notification);\n }\n\n renderMarkButton = () => {\n const { onMarkAsOld, notification } = this.props;\n if (notification.is_new) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n\n renderDeleteButton = () => {\n const { onDelete, notification } = this.props;\n\n return (\n onDelete(notification)}\n >\n delete_outline\n \n );\n }\n\n renderFooter = () => {\n const { notification } = this.props;\n const { created_at: createdAt } = notification;\n const timeFormatShow = moment(createdAt).format('LTS');\n const monthFormatShow = moment(createdAt).format('ll');\n\n return (\n
\n
\n {timeFormatShow}\n  \n -\n  \n {monthFormatShow}\n
\n
\n {this.renderMarkButton()}\n {this.renderDeleteButton()}\n
\n
\n );\n }\n\n renderMessage() {\n const { notification } = this.props;\n const linkAttrs = {};\n\n return (\n this.readMessage()}\n >\n \n \n );\n }\n\n render() {\n const { notification } = this.props;\n const { notifiable_type: notifiableType, details } = notification;\n const { run_type: runType } = details;\n const {\n RUN: {\n NAME: run\n }\n } = NOTIFICATION_EVENTS;\n const { historic, live } = RUN_TYPES;\n\n const notificationClassNames = classNames('list-group-item notification-list-item', {\n 'unread-card': notification.is_new,\n active: !notification.is_new,\n 'not-backtest': (notifiableType === run && runType === historic),\n 'not-live': (notifiableType === run && runType === live)\n });\n\n return (\n
  • \n {this.renderMessage()}\n \n {this.renderFooter()}\n
  • \n );\n }\n}\n\nNotification.propTypes = propTypes;\nNotification.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport axios from 'axios';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\n// import { Tooltip } from 'react-bootstrap';\n\nimport consumer from 'channels/consumer';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport notificationPropType from './propTypes/notificationPropType';\nimport Notification from './Notification';\n\nconst propTypes = {\n notifications: PropTypes.arrayOf(notificationPropType).isRequired,\n newCount: PropTypes.number.isRequired,\n totalCount: PropTypes.number.isRequired,\n userRoomId: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {};\n\nexport default class NotificationPanel extends React.Component {\n constructor(props) {\n super(props);\n\n const { notifications, newCount, totalCount } = this.props;\n\n this.notificationPanelRef = React.createRef();\n this.state = {\n notifications,\n newCount,\n totalCount,\n isOpened: false,\n isLoadingMore: false,\n };\n }\n\n componentDidMount() {\n const { userRoomId } = this.props;\n const subscriptionParams = { channel: 'NotificationsChannel', room: userRoomId };\n const callbacks = {\n connected: () => console.debug('NotificationsSocket connected.'),\n disconnected: () => console.debug('NotificationsSocket disconnected.'),\n received: this.onNewNotification,\n };\n this.subscribedRoom = consumer.subscriptions.create(subscriptionParams, callbacks);\n\n this.signalConfirmationUpdateRoom = consumer.subscriptions.create({\n channel: 'NotificationsChannel',\n room: `signal_confirmation_${userRoomId}`\n }, {\n connected: () => { },\n disconnected: () => { },\n received: (orderConfirmation) => {\n const { id, status } = orderConfirmation;\n this.onSignalConfirmationUpdate(id, status);\n }\n });\n\n document.addEventListener('click', this.handleDocumentClick, true);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleDocumentClick, true);\n if (this.subscribedRoom) {\n consumer.subscriptions.remove(this.subscribedRoom);\n }\n if (this.signalConfirmationUpdateRoom) {\n consumer.subscriptions.remove(this.signalConfirmationUpdateRoom);\n }\n }\n\n handleDocumentClick = (event) => {\n const { isOpened } = this.state;\n const isClickedInsideNotificationPanel = this.notificationPanelRef.current.contains(event.target);\n const isOrderDetailsModalOpen = document.getElementsByClassName('order-transaction-panel-modal').length;\n // order modal\n\n if (isOpened && !isClickedInsideNotificationPanel && !isOrderDetailsModalOpen) {\n this.setState({ isOpened: false });\n }\n }\n\n onToggleOpen = (isOpened) => {\n this.setState({ isOpened });\n }\n\n onNewNotification = (newNotification) => {\n const { totalCount, newCount, notifications } = this.state;\n this.setState({\n notifications: [newNotification].concat(notifications),\n newCount: newCount + 1,\n totalCount: totalCount + 1,\n });\n\n const eventType = newNotification.event === 'errored' ? TOASTIFY_TYPES.ERROR : TOASTIFY_TYPES.SUCCESS;\n reactToastify(newNotification.message, eventType);\n }\n\n onMarkNotificationAsOld = (notification) => {\n const { newCount, notifications } = this.state;\n // We are mutating the state. Not good. Should revisit this.\n notification.is_new = false; \n\n axios({\n url: `/notifications/${notification.id}.json`,\n method: 'PUT',\n data: { notification: { is_new: 'false' } },\n });\n // compromise mutating state. Ok for now. :|\n this.setState({ notifications, newCount: newCount - 1 });\n }\n\n onDeleteNotification = (notificationToDelete) => {\n const { notifications, totalCount, newCount } = this.state;\n const newNotifications = _.filter(notifications, (n) => (n.id !== notificationToDelete.id));\n\n axios({ url: `/notifications/${notificationToDelete.id}.json`, method: 'DELETE' });\n\n this.setState({\n notifications: newNotifications,\n totalCount: totalCount - 1,\n newCount: newCount - (notificationToDelete.is_new ? 1 : 0)\n });\n }\n\n onMarkAllAsOld = () => {\n const { notifications } = this.state;\n\n _.each(notifications, (notification) => {\n notification.is_new = false; \n });\n\n axios.post('/notifications/mark_all_as_old', { notification_id: _.first(notifications).id });\n\n this.setState({ notifications, newCount: 0 });\n }\n\n onDeleteAll = () => {\n const { notifications } = this.state;\n const firstNofitication = _.first(notifications);\n if (_.isEmpty(firstNofitication)) {\n return reactToastify('Something went Wrong, Please try again', TOASTIFY_TYPES.ERROR);\n }\n\n axios.post('/notifications/destroy_all', { notification_id: _.first(notifications).id });\n\n return this.setState({ notifications: [], totalCount: 0, newCount: 0 });\n }\n\n loadMore = () => {\n const { notifications } = this.state;\n const offsetNotificationId = _.chain(notifications).last().get('id', '');\n\n this.setState({ isLoadingMore: true });\n // Refer NotificationsController.rb for details on why we are using notificationId for offset\n axios.get('/notifications.json', { params: { offsetNotificationId } })\n .then((response) => {\n const olderNotifications = _.get(response, 'data', []);\n this.setState({ notifications: notifications.concat(olderNotifications) });\n })\n .finally(() => this.setState({ isLoadingMore: false }));\n }\n\n onSignalConfirmationUpdate = (notifiableId, status) => {\n const { notifications } = this.state;\n const signalConfirmation = _.find(notifications, ['notifiable_id', notifiableId]);\n const isNew = _.get(signalConfirmation, 'is_new');\n\n _.set(signalConfirmation, ['details', 'status'], status);\n this.setState({ notifications: [...notifications] }, () => {\n if (isNew) { this.onMarkNotificationAsOld(signalConfirmation); }\n });\n }\n\n renderLoadMore() {\n const { notifications, totalCount, isLoadingMore } = this.state;\n if (notifications.length === 0 || notifications.length >= totalCount) {\n return null;\n }\n\n return (\n
    \n {isLoadingMore\n ?
    \n : (\n \n Load More...\n \n )}\n
    \n );\n }\n\n renderNotifications = () => {\n const { notifications } = this.state;\n\n return _.map(notifications, (notification) => (\n \n ));\n }\n\n renderNotificationButton = () => {\n const { isOpened, newCount } = this.state;\n return (\n this.onToggleOpen(!isOpened)\n }\n >\n notifications_active \n {newCount !== 0 && (\n
    \n {newCount > 99 ? '99+' : newCount}\n
    \n )}\n
    \n );\n }\n\n renderNotificationPanel() {\n const { newCount, totalCount, isOpened } = this.state;\n\n const markAllAsOldBtnContent = newCount > 0\n ? (\n }\n >\n Mark all as Read\n \n ) : null;\n\n const deleteAllBtnContent = totalCount > 0\n ? (\n }\n >\n Delete all\n \n ) : null;\n\n return (\n \n\n
    \n
    \n notifications_active \n Notifications\n
    \n this.onToggleOpen(false)}\n >\n close\n \n
    \n\n
    \n
    \n {`${newCount} Unread`}\n
    \n
    \n {markAllAsOldBtnContent}\n {deleteAllBtnContent}\n
    \n
    \n\n
    \n
      \n {this.renderNotifications()}\n
    \n {this.renderLoadMore()}\n
    \n
    \n );\n }\n\n render() {\n return [\n this.renderNotificationButton(),\n this.renderNotificationPanel(),\n ];\n }\n}\n\nNotificationPanel.propTypes = propTypes;\nNotificationPanel.defaultProps = defaultProps;\n","import moment from 'moment';\n\nconst DATE_FORMAT = 'DD-MM-YYYY';\n\nconst getFormattedDate = (date) => (moment(date).format(DATE_FORMAT));\n\nexport default getFormattedDate;\n","const preloadFiles = {\n \"lib/constants/markets/in/nse/expiryConfigs/weekly/thursdayExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/weekly/thursdayExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/monthly/thursdayExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/monthly/thursdayExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/weekly/bankniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/weekly/bankniftyExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/monthly/bankniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/monthly/bankniftyExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/weekly/finniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/weekly/finniftyExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/monthly/finniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/monthly/finniftyExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/weekly/midcpniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/weekly/midcpniftyExpiry.json\"),\n \"lib/constants/markets/in/nse/expiryConfigs/monthly/midcpniftyExpiry.json\": require(\"../../lib/constants/markets/in/nse/expiryConfigs/monthly/midcpniftyExpiry.json\"),\n \"lib/constants/markets/in/bse/expiryConfigs/weekly/SensexExpiry.json\": require(\"../../lib/constants/markets/in/bse/expiryConfigs/weekly/SensexExpiry.json\"),\n \"lib/constants/markets/in/bse/expiryConfigs/monthly/SensexExpiry.json\": require(\"../../lib/constants/markets/in/bse/expiryConfigs/monthly/SensexExpiry.json\"),\n \"lib/constants/markets/in/bse/expiryConfigs/weekly/BankexExpiry.json\": require(\"../../lib/constants/markets/in/bse/expiryConfigs/weekly/BankexExpiry.json\"),\n \"lib/constants/markets/in/bse/expiryConfigs/monthly/BankexExpiry.json\": require(\"../../lib/constants/markets/in/bse/expiryConfigs/monthly/BankexExpiry.json\"),\n \"lib/constants/markets/us/nyse/expiryConfigs/weekly/fridayExpiry.json\": require(\"../../lib/constants/markets/us/nyse/expiryConfigs/weekly/fridayExpiry.json\"),\n \"lib/constants/markets/us/nyse/expiryConfigs/monthly/fridayExpiry.json\": require(\"../../lib/constants/markets/us/nyse/expiryConfigs/monthly/fridayExpiry.json\")\n};\n\nmodule.exports = { preloadFiles };","const _ = require(\"lodash\");\nconst {\n format,\n isSaturday,\n isSunday,\n subDays,\n parse,\n isValid,\n} = require(\"date-fns\");\n\nconst { preloadFiles } = require(\"./preloadFiles\");\n\nconst DATE_FORMAT = \"yyyy-MM-dd\";\n\nconst marketUtility = (market) => {\n const findMarketConfig = (symbol = \"\") => {\n return _.find(market.configs, { symbol }) || {};\n };\n\n const getExpiryDates = _.memoize(\n (args) => {\n const {\n symbol,\n expiryType = \"*\",\n filterFn = (data) => data,\n } = args || {};\n const config = findMarketConfig(symbol);\n if (_.isEmpty(config)) return [];\n\n return _.chain(config.expiry)\n .keys()\n .filter((key) => key === expiryType || expiryType === \"*\")\n .map((key) => {\n return preloadFiles?.[config.expiry[key]];\n })\n .flatten()\n .uniq()\n .sort()\n .thru(filterFn)\n .value();\n },\n ({ symbol, expiryType, filterFn, uniqueValue = \"__uniqueValue__\" }) =>\n `${symbol}-${expiryType}-${filterFn?.toString()}-${uniqueValue}`\n );\n\n const getSymbolConfig = _.memoize(\n (args) => {\n const {\n symbol,\n date = undefined,\n expiryTypes = [],\n filterFn = (data) => data,\n attributeFilterFn = (keys, date) =>\n _.findLast(keys, (d) => !date || d <= date),\n } = args || {};\n\n const config = findMarketConfig(symbol);\n if (_.isEmpty(config)) return {};\n\n const { dateBasedAttributes } = config;\n\n return {\n ...config,\n expiry: {\n weekly: getExpiryDates({ symbol, expiryType: \"weekly\", filterFn }),\n monthly: getExpiryDates({ symbol, expiryType: \"monthly\", filterFn }),\n },\n attributes: _.chain(dateBasedAttributes)\n .reduce((acc, value, key) => { \n if (!value.filter) acc[key] = value;\n if (_.some(expiryTypes, (type) => value.filter?.includes(type))) {\n acc[key] = value;\n }\n\n return acc;\n }, {})\n .keys()\n .sort()\n .thru((keys) => attributeFilterFn(keys, date))\n .thru((selectedDate) => dateBasedAttributes[selectedDate] || {})\n .value(),\n };\n },\n ({ symbol, date, filterFn, attributeFilterFn, uniqueValue = \"__uniqueValue__\", expiryTypes }) =>\n `${symbol}-${date}-${expiryTypes}-${filterFn?.toString()}-${attributeFilterFn?.toString()}-${uniqueValue}`\n );\n\n const getValidMarketDate = (args) => {\n const { date = \"\" } = args || {};\n const actualDate = parse(date, DATE_FORMAT, new Date());\n // Check for invalid date\n if (!isValid(actualDate)) {\n return \"Invalid date\";\n }\n\n let validDate = actualDate;\n\n while (true) {\n const formattedDate = format(validDate, DATE_FORMAT);\n\n if (\n market.holidayDates.includes(formattedDate) ||\n ((isSaturday(validDate) || isSunday(validDate)) &&\n !market.weekendWorkingDates.includes(formattedDate))\n ) {\n validDate = subDays(validDate, 1);\n } else {\n break;\n }\n }\n\n return format(validDate, DATE_FORMAT);\n };\n\n const getSymbols = (args) => {\n const {\n marketType = \"*\",\n isIndex = \"*\",\n filterFn = (data) => data,\n } = args || {};\n\n return _.chain(market.configs)\n .filter((config) => {\n return (\n (marketType === \"*\" || config.market === marketType) &&\n (isIndex === \"*\" || config.isIndex === isIndex)\n );\n })\n .thru(filterFn)\n .map(\"symbol\")\n .value();\n };\n\n return {\n getExpiryDates,\n getSymbolConfig,\n getValidMarketDate,\n getSymbols,\n };\n};\n\nmodule.exports = marketUtility;","const _ = require(\"lodash\");\nconst nseSymbolConfigs = require(\"./lib/constants/markets/in/nse/symbolConfigs.json\");\nconst bseSymbolConfigs = require(\"./lib/constants/markets/in/bse/symbolConfigs.json\");\nconst nyseSymbolConfigs = require(\"./lib/constants/markets/us/nyse/symbolConfigs.json\");\nconst marketUtility = require(\"./lib/utility/market\");\n\nconst IN = {\n ...require(\"./lib/constants/markets/in/configuration.json\"),\n holidayDates: require(\"./lib/constants/markets/in/holidayDates.json\"),\n weekendWorkingDates: require(\"./lib/constants/markets/in/weekendWorkingDates.json\"),\n configs: [...nseSymbolConfigs, ...bseSymbolConfigs],\n};\n\nconst US = {\n ...require(\"./lib/constants/markets/us/configuration.json\"),\n holidayDates: require(\"./lib/constants/markets/us/holidayDates.json\"),\n weekendWorkingDates: require(\"./lib/constants/markets/us/weekendWorkingDates.json\"),\n configs: nyseSymbolConfigs,\n};\n\nconst markets = {\n IN: { ...IN, utility: marketUtility(IN) },\n US: { ...US, utility: marketUtility(US) },\n};\n\n// Have to preload files for the first time\n\n// _.chain(markets)\n// .keys()\n// .map((market) => markets[market].configs)\n// .flattenDeep()\n// .reduce((acc, config) => {\n// const { expiry } = config;\n// const { weekly, monthly } = expiry;\n\n// if (weekly && !acc[weekly]) {\n// acc[weekly] = weekly;\n// }\n// if (monthly && !acc[monthly]) {\n// acc[`${monthly}`] = monthly;\n// }\n\n// return acc;\n// }, {})\n// .value();\n\nmodule.exports = { markets };\n","import _ from 'lodash';\nimport { markets } from 'zeequant-constants';\nimport moment from 'moment';\n\nexport const LocaleUtils = () => {\n const { SA_LOCALE } = window;\n\n const localeConfig = markets[_.upperCase(SA_LOCALE?.locale || 'in')] || {};\n\n const lotSize = _.memoize((symbol, expiryDate) => {\n const formattedExpiryDate = moment(expiryDate, 'DDMMMYY').format('YYYY-MM-DD');\n\n return localeConfig.utility.getSymbolConfig(\n { symbol, date: formattedExpiryDate }\n )?.attributes?.lotSize;\n });\n\n const getAllSymbols = _.memoize(() => {\n return localeConfig.utility.getSymbols({ marketType: '*', isIndex: '*' });\n });\n\n const getHolidayDates = _.memoize(() => {\n return localeConfig.holidayDates;\n });\n\n const getWeekendWorkingDates = _.memoize(() => {\n return localeConfig.weekendWorkingDates;\n });\n\n const resolveTimezone = (timezone) => {\n switch (timezone) {\n case 'IST':\n return 'Asia/Kolkata';\n case 'ET':\n return 'America/New_York';\n default:\n return timezone;\n }\n }\n\n const getTimezone = _.memoize(() => { \n return resolveTimezone(localeConfig.timeZone);\n });\n\n return {\n lotSize,\n getAllSymbols,\n getHolidayDates,\n getWeekendWorkingDates,\n getTimezone\n };\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport { ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\nimport wrappedFetch from './base';\nimport { LocaleUtils } from 'v2/common/utils/zeequantConstants';\n\nexport const formatOrdersBasedOnJobs = (ordersList, runId, orderType, runType) => {\n const {\n automatic: { value: automatic }, oneClick: { value: oneclick }\n } = ORDER_TYPES;\n\n const previousListTransactionIds = {};\n _.each(ordersList, (orders) => {\n if (_.isEmpty(orders)) return;\n\n _.each(orders, (order) => {\n if (runType === RUN_TYPES.live) {\n const isActualLive = orderType === automatic || orderType === oneclick;\n const orderTime = (\n isActualLive && _.get(order, 'is_stop_loss', false) && order.traded_time\n ) ? order.traded_time : order.signal_time;\n\n const newObj = {\n price: isActualLive ? order.traded_price : order.signal_price,\n // this order_time is used for display entry and exit time in orders table\n // if order is stop loss and it is traded then we will show traded time\n order_time: orderTime,\n };\n order = _.merge(order, newObj);\n }\n\n order.order_time = order.order_time \n ? moment(order.order_time, 'YYYY-MM-DDTHH:mm:ss').tz(LocaleUtils().getTimezone())\n : null;\n\n order.transaction_id = (\n Number(order.transaction_id)\n + _.get(previousListTransactionIds, order.instrument_group_index, 0)\n ).toString();\n\n order.transaction_and_run_id = `${order.transaction_id}-${runId}`;\n order.run_id = runId;\n });\n const groupOrdersList = _.groupBy(orders, 'instrument_group_index');\n _.each(groupOrdersList, (groupOrders, groupKey) => {\n previousListTransactionIds[groupKey] = Number(_.get(_.last(groupOrders), 'transaction_id', 0));\n });\n });\n\n return ordersList;\n};\n\nexport const getAllOrders = _.memoize(({\n runId, jobIds, runType, orderType, ordersAccessTokens\n}) => {\n return Promise.all(\n _.map(jobIds, (jobId) => {\n let queryString = `run_type=${runType}`;\n\n if (runType === 'historic') {\n queryString += `&accessToken=${ordersAccessTokens[jobId]}`;\n }\n\n return wrappedFetch(`/runs/${jobId}/orders?${queryString}`)\n .then((response) => response.json());\n })\n ).then((ordersList) => {\n return formatOrdersBasedOnJobs(ordersList, runId, orderType, runType);\n });\n}, ({ jobIds, runType }) => `${_.first(jobIds)}-${runType}`);\n\nexport const retryOrder = (jobId, orderId) => {\n return wrappedFetch(`/runs/${jobId}/orders/${encodeURIComponent(orderId)}/retry`)\n .then((response) => response.json());\n};\n","import _ from 'lodash';\nimport { RUN_TYPES, ORDER_TYPES } from 'common/constants/index';\nimport moment from 'moment';\nimport { checkOrderHasIlliquid } from 'ui/run/RunShow/OrderStore/helper';\n\nconst BUY = 'buy';\nconst {\n getConvertedTime, getCompletedOrders\n} = require('./transactions');\n\nexport const profitMapBy = (order) => {\n return (\n ((order.traded_quantity || order.quantity) * order.price * (order.transaction_type === 'buy' ? -1 : +1))\n );\n};\n\nexport const getProfit = (groupedOrders, mapBy) => {\n if (_.isEmpty(groupedOrders)) return 0;\n\n const totalProfit = _.map(groupedOrders, mapBy);\n const profit = _.reduce(totalProfit, (sum, price) => sum + price);\n return _.round(profit, 2);\n};\n\nexport const getProfitSplitups = (groupedOrders) => {\n const profitSplitups = _.chain(groupedOrders)\n .groupBy((group) => group.instrument)\n .map((ordersByInstrument, instrument) => ({\n tag: instrument,\n profit: getProfit(ordersByInstrument, profitMapBy)\n }))\n .value();\n\n return [\n { tag: 'Total Profit', profit: getProfit(groupedOrders, profitMapBy) },\n ...profitSplitups,\n ];\n};\n\nexport const getDisplayTransactions = (transactions, currentPageIndex, transactionsPerPage) => {\n if (_.isEmpty(transactions)) return [];\n\n const sortedTransactions = _.orderBy(transactions, 'sortId', 'desc');\n const totalTransactions = _.size(sortedTransactions);\n const startOfRange = transactionsPerPage * currentPageIndex;\n const endOfRange = startOfRange + transactionsPerPage < totalTransactions\n ? startOfRange + transactionsPerPage\n : totalTransactions;\n const transactionRange = _.range(startOfRange, endOfRange);\n\n return _.map(transactionRange, (idx) => sortedTransactions[idx]);\n};\n\nexport const getOrderProfit = (entryType, entryPrice, exitPrice, quantity) => {\n if (!entryPrice || !exitPrice) return null;\n // this is mainly for live data updated process eg: dashboard\n\n const parsedQuantity = parseFloat(quantity);\n const parsedEntryPrice = parseFloat(entryPrice);\n const parsedExitPrice = parseFloat(exitPrice);\n\n if (entryType === BUY) return (parsedQuantity * parsedExitPrice) - (parsedQuantity * parsedEntryPrice);\n\n return (parsedQuantity * parsedEntryPrice) - (parsedQuantity * parsedExitPrice);\n};\n\nconst getOrderProfitMax = (entryOrder, exitOrder) => {\n if (_.isEmpty(entryOrder) || _.isEmpty(exitOrder)) return 0;\n\n const entryType = _.get(entryOrder, 'transaction_type', null);\n const quantity = _.get(entryOrder, 'quantity', null);\n const entryPrice = Number(_.get(entryOrder, 'price', 0));\n const minPrice = Number(_.get(exitOrder, 'min_price', 0));\n const maxPrice = Number(_.get(exitOrder, 'max_price', 0));\n\n return entryType === 'sell' ? ((entryPrice * quantity) + (-1 * (quantity * minPrice)))\n : ((-1 * (entryPrice * quantity)) + (quantity * maxPrice));\n};\n\nconst getOrderProfitMin = (entryOrder, exitOrder) => {\n if (_.isEmpty(entryOrder) || _.isEmpty(exitOrder)) return 0;\n\n const entryType = _.get(entryOrder, 'transaction_type', null);\n const quantity = _.get(entryOrder, 'quantity', null);\n const entryPrice = Number(_.get(entryOrder, 'price', 0));\n const minPrice = Number(_.get(exitOrder, 'min_price', 0));\n const maxPrice = Number(_.get(exitOrder, 'max_price', 0));\n\n return entryType === 'sell' ? ((entryPrice * quantity) + (-1 * (quantity * maxPrice)))\n : ((-1 * (entryPrice * quantity)) + (quantity * minPrice));\n};\n\nexport const getOrderData = (\n orders, runType, orderType, ignoreInCompleteTransactionUntil = null, isMarketplaceAuthorRun = false\n) => {\n const stopLossOrder = _.find(orders, (order) => order.is_stop_loss);\n _.assign(stopLossOrder,\n runType === RUN_TYPES.live && orderType === ORDER_TYPES.paper.value ? { price: null } : {});\n\n const filteredOrdersBasedOnStopLoss = _.filter(orders, (order) => {\n if (order.is_entry) { return true; }\n if (order === stopLossOrder) { return order.status === 'executed'; }\n if (!stopLossOrder || stopLossOrder.status !== 'executed') { return true; }\n\n return false;\n });\n\n const entryOrder = _.find(filteredOrdersBasedOnStopLoss, (\n { is_entry: isEntry }\n ) => _.includes(['true', true], isEntry));\n const exitOrder = _.find(filteredOrdersBasedOnStopLoss, (\n { is_entry: isEntry }\n ) => _.includes(['false', false], isEntry));\n\n // To update sl_trailed_count and is_move_to_cost in entryOrder\n _.assign(entryOrder, {\n sl_trailed_count: _.isNil(entryOrder?.sl_trailed_count)\n ? stopLossOrder?.sl_trailed_count : entryOrder.sl_trailed_count,\n is_move_to_cost: (_.isNil(entryOrder?.is_move_to_cost) || entryOrder?.is_move_to_cost === false)\n ? stopLossOrder?.is_move_to_cost : entryOrder.is_move_to_cost,\n });\n _.assign(stopLossOrder, { sl_trailed_count: null, is_move_to_cost: false });\n\n const entryType = _.get(entryOrder, 'transaction_type', null);\n const entryPrice = Number(_.get(entryOrder, 'price', 0));\n const exitPrice = Number(_.get(exitOrder, 'price', 0));\n const quantity = _.get(entryOrder, 'quantity', null);\n const tradingSymbol = _.get(_.head(filteredOrdersBasedOnStopLoss), 'trading_symbol', '');\n const exitType = _.get(exitOrder, 'transaction_type', null);\n const entryOrderStatus = _.get(entryOrder, 'status', '');\n const exitOrderStatus = _.get(exitOrder, 'status', '');\n const isManualExitShow = isMarketplaceAuthorRun ? !exitType\n : !_.includes(['cancelled', 'failed'], entryOrderStatus) && !exitType;\n // bcoz of subscriber run\n // If owner order is failed bcoz of low fund.. subscribers run placed orders.. so have to show squareoff to\n // owner... for users\n const { isCompleted, completedOrders, shouldCalculateUnrealizedProfit } = getCompletedOrders(\n orders, runType, orderType, isMarketplaceAuthorRun\n );\n\n const entryTime = _.get(entryOrder, 'order_time', null);\n const exitTime = _.get(exitOrder, 'order_time', null);\n const isPrevOrdersIgnored = (ignoreInCompleteTransactionUntil && entryTime)\n ? moment(entryTime).isBefore(ignoreInCompleteTransactionUntil) : false;\n\n // for profit calculation only...\n\n const isOrderPresent = _.some(\n completedOrders, (\n { id: individualOrderId }\n ) => individualOrderId === _.get(stopLossOrder, 'id', undefined)\n );\n\n const profitCalcualtionOrders = !isOrderPresent ? [...completedOrders, stopLossOrder]\n : _.map(completedOrders, (order) => {\n if (stopLossOrder && order.id === stopLossOrder.id && stopLossOrder.status !== 'executed') {\n return { ...stopLossOrder, quantity: 0 };\n }\n return order;\n });\n\n const profitSplitups = getProfitSplitups(_.compact(profitCalcualtionOrders));\n const orderProfit = isCompleted ? _.get(profitSplitups, '[0].profit', 0) : 0;\n const validCaseForCompletedLeg = isPrevOrdersIgnored || isCompleted;\n\n const validateCompletedLeg = () => {\n if (_.includes(['cancelled', 'failed'], entryOrderStatus) && exitType) return true;\n if (_.includes(['cancelled', 'failed'], exitOrderStatus) && exitType) return true;\n\n return validCaseForCompletedLeg;\n };\n\n return {\n entryOrderId: _.get(entryOrder, 'id', ''),\n jobId: _.get(entryOrder, 'orderable_id', ''),\n entryType,\n exitType,\n actualEntryTimeISO: _.get(entryOrder, 'actual_order_time', null),\n actualExitTimeISO: _.get(exitOrder, 'actual_order_time', null),\n entryTime: entryTime,\n exitTime: exitTime,\n orderProfit: _.round(orderProfit, 2),\n quantity,\n entryPrice,\n exitPrice,\n hasIlliquid: checkOrderHasIlliquid(filteredOrdersBasedOnStopLoss),\n tradingSymbol,\n isManualExitShow: isManualExitShow && !isPrevOrdersIgnored,\n isCompleted: validateCompletedLeg(),\n completedOrders,\n orderProfitMax: isManualExitShow ? 0 : getOrderProfitMax(entryOrder, exitOrder),\n orderProfitMin: isManualExitShow ? 0 : getOrderProfitMin(entryOrder, exitOrder),\n shouldCalculateUnrealizedProfit: shouldCalculateUnrealizedProfit && !isPrevOrdersIgnored,\n entryOrderStatus,\n exitOrderStatus,\n orders,\n entryOrder: entryOrder || {},\n exitOrder: exitOrder || {}\n };\n};\n\nexport const getPlChartTimeStamp = (time) => {\n let timeStamp = moment(getConvertedTime(time)).format('ddd MMM DD YYYY HH:mm:ss');\n timeStamp += ' GMT+0530 (India Standard Time)';\n\n return timeStamp;\n};\n\nexport const groupByTransactionFormat = (orderItem) => {\n return `${orderItem.option_config_index}-${orderItem.adjustment_config_index}-${orderItem.trading_symbol}`;\n};\n\nconst configuredByGroupedOrders = (\n groupedOrders,\n runType,\n orderType,\n ignoreInCompleteTransactionUntil,\n isMarketplaceAuthorRun = false\n) => {\n const groupedByTradingSymbol = _.groupBy(groupedOrders, groupByTransactionFormat);\n const pairedOrders = _.map(groupedByTradingSymbol, (groupedBy) => getOrderData(\n groupedBy, runType, orderType, ignoreInCompleteTransactionUntil, isMarketplaceAuthorRun\n ));\n const filteredValidOrders = _.flattenDeep(_.map(pairedOrders, ({ isCompleted, completedOrders }) => {\n if (isCompleted) return completedOrders;\n return [];\n }));\n\n const instrumentGroupIndex = Number(_.get(groupedOrders, '[0].instrument_group_index'));\n const transactionNumber = Number(_.get(groupedOrders, '[0].transaction_id'));\n const instruments = _.chain(groupedOrders).map('instrument').uniq().value();\n const sortedValidOrders = _.sortBy(filteredValidOrders, 'order_time');\n const isShowSquareOff = _.some(pairedOrders, ({ isManualExitShow }) => isManualExitShow);\n const isComplete = !isShowSquareOff && _.some(pairedOrders, ({ isCompleted }) => isCompleted);\n const groupedOrderSorted = _.sortBy(groupedOrders, 'order_time');\n const transactionAndRunId = _.get(groupedOrders, '[0].transaction_and_run_id');\n const transactionOpenTime = _.get(groupedOrderSorted, [0, 'order_time'], '');\n const overallMaxProfit = isComplete ? _.sumBy(pairedOrders, ({ orderProfitMax }) => orderProfitMax) : 0;\n const overallMinProfit = isComplete ? _.sumBy(pairedOrders, ({ orderProfitMin }) => orderProfitMin) : 0;\n const overallProfit = _.sumBy(pairedOrders, ({ orderProfit }) => orderProfit);\n const runId = _.get(groupedOrders, '[0].run_id', '');\n\n return {\n isComplete,\n groupedOrderSorted, // with StopLoss\n groupedByTradingSymbolSize: _.size(groupedByTradingSymbol),\n pairedOrders,\n instruments,\n isShowSquareOff,\n orders: sortedValidOrders, // without stopLoss\n overallProfit,\n overallMaxProfit,\n overallMinProfit,\n instrumentGroupIndex,\n transactionNumber,\n transactionOpenTime,\n transactionCloseTime: _.get(_.last(sortedValidOrders), 'order_time'),\n isIlliquidTransaction: checkOrderHasIlliquid(sortedValidOrders),\n transactionAndRunId,\n runId\n };\n};\n\nexport const getFormattedTransactions = (\n orders, runType, orderType, ignoreInCompleteTransactionUntil, isMarketplaceAuthorRun\n) => {\n let previousCumulativeProfit = 0;\n\n const result = _.chain(orders)\n .map((order) => {\n const orderTimeMoment = moment(order.order_time);\n let modifiedOrder = { ...order, actual_order_time: order.order_time };\n // FYI, OrderTime for 2021-03-01T09:23:59.000+05:30 -> Add 1 seconds 2021-03-01T09:24:00.0000+05:30\n if (orderTimeMoment.seconds() === 59) {\n const modifiedSignalTime = orderTimeMoment.add(1, 'seconds');\n modifiedOrder = { ...modifiedOrder, order_time: modifiedSignalTime };\n // maintaining actual_order_time for order_time\n // order_time and signal_time both are same.. Backtest have order_time.. Live have signal_time\n // So Common purpose used order_time.. but somewhere showing signal_time also..\n // that also modified below\n\n return runType === RUN_TYPES.live\n ? { ...modifiedOrder, signal_time: modifiedSignalTime } : modifiedOrder;\n }\n\n return modifiedOrder;\n })\n .groupBy((orderItem) => `${orderItem.instrument_group_index}-${orderItem.transaction_and_run_id}`)\n .map((groupedOrders) => {\n return configuredByGroupedOrders(\n groupedOrders, runType, orderType, ignoreInCompleteTransactionUntil, isMarketplaceAuthorRun\n );\n })\n .sortBy((groupedOrder) => { return _.get(groupedOrder, 'transactionOpenTime'); })\n .map((groupedOrder, sortId) => {\n const { isComplete, overallProfit, transactionCloseTime } = groupedOrder;\n\n const timestamp = getPlChartTimeStamp(transactionCloseTime);\n const cumulativeProfit = isComplete ? {\n value: previousCumulativeProfit + overallProfit,\n timestamp: new Date(timestamp)\n } : {};\n\n previousCumulativeProfit = _.get(cumulativeProfit, 'value', previousCumulativeProfit);\n\n return { ...groupedOrder, sortId, cumulativeProfit };\n })\n .value();\n\n return result;\n};\n","import _ from 'lodash';\nimport moment from 'moment';\n\nconst calculateWinLossRatioForAmount = (avgProfit, avgLoss) => {\n if (avgProfit > 0 && avgLoss > 0) return avgProfit / avgLoss;\n if (avgProfit > 0) return 100;\n return 0;\n};\n\nconst calculateCumulativeProfits = (transactions) => {\n const cumulativeSum = ((sum) => {\n return ({ overallProfit, transactionOpenTime }) => {\n sum += overallProfit; \n return { profits: sum, transactionOpenTime };\n };\n })(0);\n\n return _.map(transactions, cumulativeSum);\n};\n\nexport const calculateWinTransactionsCount = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit > 0)\n .size()\n .value();\n};\n\nexport const calculateLossTransactionsCount = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit < 0)\n .size()\n .value();\n};\n\nexport const calculateTotalProfits = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit > 0)\n .map('overallProfit')\n .sum()\n .round(2)\n .value();\n};\n\nexport const calculateTotalLoss = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit < 0)\n .map(({ overallProfit }) => Math.abs(overallProfit))\n .sum()\n .round(2)\n .value();\n};\n\nexport const calculateWinningProbability = (winTransactionsCount, totalTransactionsCount) => {\n return totalTransactionsCount\n ? _.round(((winTransactionsCount / totalTransactionsCount) * 100), 2)\n : 0;\n};\n\nexport const calculateAverageProfit = (totalProfits, winTransactionsCount) => {\n return winTransactionsCount\n ? _.round((totalProfits / winTransactionsCount), 2)\n : 0;\n};\n\nexport const calculateAverageLoss = (totalLoss, lossTransactionsCount) => {\n return lossTransactionsCount\n ? _.round((totalLoss / lossTransactionsCount), 2)\n : 0;\n};\n\nexport const calculateWinLossRatio = (winTransactionsCount, lossTransactionsCount) => {\n return `${winTransactionsCount}:${lossTransactionsCount}`;\n};\n\nexport const calculateRAC = (winningProbability, avgProfit, avgLoss) => {\n const winProbability = winningProbability / 100;\n const winLossRatio = calculateWinLossRatioForAmount(avgProfit, avgLoss);\n\n if (winProbability === 0 && winLossRatio === 0) return 0;\n if (winProbability === 100 && winLossRatio === 100) return 100;\n\n const rac = winProbability - ((1 - winProbability) / winLossRatio);\n\n return (rac > 0)\n ? _.round((rac * 0.05 * 100), 2)\n : 0;\n};\n\nexport const calculateWinningStreak = (transactions) => {\n return _.chain(transactions)\n .reduce((result, transaction) => {\n if (transaction.overallProfit > 0) {\n result[result.length - 1]++; \n } else {\n result.push(0);\n }\n\n return result;\n }, [0])\n .max()\n .value();\n};\n\nexport const calculateLosingStreak = (transactions) => {\n return _.chain(transactions)\n .reduce((result, transaction) => {\n if (transaction.overallProfit < 0) {\n result[result.length - 1]++; \n } else {\n result.push(0);\n }\n\n return result;\n }, [0])\n .max()\n .value();\n};\n\nexport const calculateMaximumProfit = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit > 0)\n .map('overallProfit')\n .max()\n .round(2)\n .value() || 0;\n};\n\nexport const calculateMaximumLoss = (transactions) => {\n return _.chain(transactions)\n .filter(({ overallProfit }) => overallProfit < 0)\n .map(({ overallProfit }) => Math.abs(overallProfit))\n .max()\n .round(2)\n .value() || 0;\n};\n\nexport const calculateDrawdownMetrics = (transactionsObject) => {\n let maxDrawDown = -Infinity;\n let peak = transactionsObject[0]?.profits || 0;\n let peakIndex = 0;\n let troughIndex = 0;\n let tempPeakIndex = 0;\n\n _.each(transactionsObject, (transaction, index) => {\n if (transaction.profits > peak) {\n peak = transaction.profits;\n tempPeakIndex = index;\n }\n const drawDown = peak - transaction.profits;\n\n if (drawDown > maxDrawDown) {\n maxDrawDown = drawDown;\n peakIndex = tempPeakIndex;\n troughIndex = index;\n }\n });\n\n let maxDrawDownDays = 0;\n // if (maxDrawDown > 0) {\n // maxDrawDownDays = troughIndex - peakIndex;\n // }\n\n maxDrawDownDays = maxDrawDown > 0\n ? _.chain(transactionsObject)\n .slice(peakIndex, troughIndex + 1)\n .map((tx) => moment(tx.transactionOpenTime).format('YYYY-MM-DD'))\n .uniq()\n .size()\n .value() - 1\n : 0;\n\n return {\n maxDrawDown: maxDrawDown !== -Infinity ? _.round(maxDrawDown, 2) : 0,\n maxDrawDownDays,\n };\n};\n\nexport const calculateMaxDrawDown = (transactions) => {\n const transactionsObject = calculateCumulativeProfits(transactions);\n return calculateDrawdownMetrics(transactionsObject).maxDrawDown;\n};\n\nexport const calculateMaxDrawDownDays = (transactions) => {\n const transactionsObject = calculateCumulativeProfits(transactions);\n return calculateDrawdownMetrics(transactionsObject).maxDrawDownDays;\n};\n\nexport const optimizeFields = {\n Drawdown: calculateMaxDrawDown,\n MaxLoss: calculateMaximumLoss,\n MaxProfit: (transactions) => -calculateMaximumProfit(transactions),\n OverallProfit: calculateTotalLoss\n};\n\nexport const optimizeJobs = (transactions, field, runs) => {\n const fieldF = optimizeFields[field];\n\n const infinity = { runIds: runs, minimum: Infinity, transactions };\n\n if (!fieldF) return infinity;\n\n const runIds = new Set();\n let optimal = infinity;\n\n const doOptimize = (currentIdx) => {\n if (currentIdx >= runs.length) {\n const filtered = _.filter(transactions, (transaction) => runIds.has(transaction.runId));\n\n if (runIds.size === 0 || filtered.length === 0) return infinity;\n const minimum = fieldF(filtered);\n return { runIds: _.clone(Array.from(runIds)), minimum, transactions: filtered };\n }\n\n \n const currentRunId = Number(runs[currentIdx]);\n const without = doOptimize(currentIdx + 1);\n runIds.add(currentRunId);\n const including = doOptimize(currentIdx + 1);\n runIds.delete(currentRunId);\n\n if (including.minimum < optimal.minimum) {\n optimal = including;\n }\n\n if (without.minimum < optimal.minimum) {\n optimal = without;\n }\n\n return optimal;\n };\n\n return doOptimize(0);\n};\n","const formula = require('./formula');\n\nexport const calculateMetrics = (transactions) => {\n const totalTransactionsCount = transactions.length;\n const winTransactionsCount = formula.calculateWinTransactionsCount(transactions);\n const lossTransactionsCount = formula.calculateLossTransactionsCount(transactions);\n const totalProfits = formula.calculateTotalProfits(transactions);\n const totalLoss = formula.calculateTotalLoss(transactions);\n const winningProbability = formula.calculateWinningProbability(\n winTransactionsCount,\n totalTransactionsCount\n );\n const avgProfit = formula.calculateAverageProfit(totalProfits, winTransactionsCount);\n const avgLoss = formula.calculateAverageLoss(totalLoss, lossTransactionsCount);\n\n return {\n winningProbability,\n avgProfit,\n avgLoss,\n winLossRatio: formula.calculateWinLossRatio(winTransactionsCount, lossTransactionsCount),\n recommendedAllocatedCapital: formula.calculateRAC(winningProbability, avgProfit, avgLoss),\n winStreak: formula.calculateWinningStreak(transactions),\n lossStreak: formula.calculateLosingStreak(transactions),\n maxProfit: formula.calculateMaximumProfit(transactions),\n maxLoss: formula.calculateMaximumLoss(transactions),\n drawdown: formula.calculateMaxDrawDown(transactions),\n drawdowndays: formula.calculateMaxDrawDownDays(transactions)\n };\n};\n","import { calculateMetrics } from './processor';\n\nexport const prepareMetrics = (transactions) => {\n return calculateMetrics(transactions);\n};\n","import _ from 'lodash';\nimport { ORDER_TYPES, RUN_TYPES, slippageTypes } from 'common/constants/index';\nimport { getFormattedTransactions } from 'common/utils/transactionProfitHelper';\nimport { prepareMetrics } from './metrics/index';\n\nconst { historic } = RUN_TYPES;\n\nconst {\n paper: { value: paper },\n} = ORDER_TYPES;\n\nexport const getSortedTransactions = (transactions) => _.orderBy(transactions, 'sortId', 'desc');\n\nexport const getGroupByInstrumentIndexTransactions = (\n transactions,\n groupbyName\n) => {\n return _.groupBy(transactions, `${groupbyName}`);\n};\n\nconst getIncompleteTransactions = (transactions) => {\n return _.filter(transactions, ({ isComplete }) => !isComplete);\n};\n\nexport const checkOrderHasIlliquid = (orders) => _.some(\n orders, ({ is_liquid: isLiquid }) => _.includes([false, 'false'], isLiquid)\n);\n\nexport const getIlliquidTransactions = (transactions) => {\n return _.filter(transactions, ({ orders }) => checkOrderHasIlliquid(orders));\n};\n\nconst overallShowProfit = (transactions) => {\n const overallRunProfit = _.find(\n _.flatten(transactions.concat([])).reverse(),\n ({ cumulativeProfit }) => _.keys(cumulativeProfit).length === 2\n );\n\n return _.get(overallRunProfit, 'cumulativeProfit.value', 0);\n};\n\nconst isMatchedIgx = (igx, showBy) => igx === showBy || igx === Number(showBy);\n\nexport const getContextConfig = _.memoize(\n (\n rawOrders = [],\n runId,\n showBy = 'all',\n runType = historic,\n orderType = paper,\n ignoreInCompleteTransactionUntil,\n isMarketplaceAuthorRun = false,\n ) => {\n let orders = [];\n\n if (showBy === 'all') orders = rawOrders;\n else { orders = _.filter(rawOrders, ({ instrument_group_index: igx }) => isMatchedIgx(igx, showBy)); }\n\n const transactions = getFormattedTransactions(\n orders,\n runType,\n orderType,\n ignoreInCompleteTransactionUntil,\n isMarketplaceAuthorRun\n );\n const completedTransactions = _.filter(\n transactions,\n ({ isComplete, orders: completedOrders }) => isComplete && !_.isEmpty(completedOrders)\n );\n // Why orders checked because there is node ignoreInCompleteTransactionUntil,\n // Some orders we check based on that node.. so some has no exit.. but we considered as\n // completed transactions. Transaction Analytics is completely based on orders and completed transactions.\n\n return {\n orders,\n transactions,\n metrics: prepareMetrics(completedTransactions),\n overallProfit: overallShowProfit(transactions),\n inCompleteTransactions: getIncompleteTransactions(transactions),\n illiquidTransactions: getIlliquidTransactions(transactions),\n completedTransactions,\n };\n },\n (\n rawOrders,\n runId,\n showBy,\n runType,\n orderType,\n igI,\n isMarketPlaceAuthorRun,\n slippage,\n slippageType,\n filterConfigs\n ) => `\n ${runId}-${showBy}-${runType}-${orderType}-${slippage}-${slippageType}-${JSON.stringify(filterConfigs)}\n `\n);\n\nconst getTransactionPrice = (transactionType, price, additionalPrice) => {\n if (!price) return 0;\n if (transactionType === 'sell') {\n return Number(price) - Number(additionalPrice);\n }\n return Number(price) + Number(additionalPrice);\n};\n\nconst getProcessedSlippageOrderBasedOnPrice = (orders, slippage) => {\n return _.map(orders, (order) => {\n const {\n price,\n max_price: maxPrice,\n min_price: minPrice,\n transaction_type: transactionType,\n } = order;\n\n return {\n ...order,\n price: getTransactionPrice(transactionType, price, slippage),\n max_price: getTransactionPrice(transactionType, maxPrice, slippage),\n min_price: getTransactionPrice(transactionType, minPrice, slippage),\n };\n });\n};\n\nconst getProcessedSlippageOrderBasedOnPercentage = (orders, slippage) => {\n return _.map(orders, (order) => {\n const {\n price,\n max_price: maxPrice,\n min_price: minPrice,\n transaction_type: transactionType,\n } = order;\n\n return {\n ...order,\n price: getTransactionPrice(\n transactionType,\n price,\n price ? (price / 100) * slippage : 0\n ),\n max_price: getTransactionPrice(\n transactionType,\n maxPrice,\n maxPrice ? (maxPrice / 100) * slippage : 0\n ),\n min_price: getTransactionPrice(\n transactionType,\n minPrice,\n minPrice ? (minPrice / 100) * slippage : 0\n ),\n };\n });\n};\n\nexport const getSlippageBasedOrders = (orders, slippage, slipPageType) => {\n switch (slipPageType) {\n case slippageTypes.price:\n return getProcessedSlippageOrderBasedOnPrice(orders, slippage);\n case slippageTypes.percentage:\n return getProcessedSlippageOrderBasedOnPercentage(orders, slippage);\n default:\n return orders;\n }\n};\n","import _ from 'lodash';\nexport const BUILDER_QUANT_CONFIG_VERSION = 2.8;\nexport const SPECIAL_CHARACTER_REGEX = /[`!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>?~]/;\n\nexport const ORDER_TYPES = {\n paper: { value: 'paper', displayName: 'Paper Testing' },\n oneClick: { value: 'oneclick', displayName: 'Oneclick Trading' },\n automatic: { value: 'automatic', displayName: 'Auto Trading' }\n};\n\nexport const BFO_INSTRUMENTS = ['SENSEX', 'BANKEX'];\n\nexport const RUN_TYPES = { live: 'live', historic: 'historic' };\nexport const RUN_GRANULARITY = { second: 'second', minute: 'minute' };\nexport const OPTION_TYPES = { CE: 'CE', PE: 'PE' };\nexport const TRANSACTION_TYPES = { buy: 'buy', sell: 'sell' };\nexport const SL_TRAIL_TYPES = { Linear: 'Linear', BookAndLinear: 'BookAndLinear' };\n\nexport const SEGMENT_CONFIG = { future: 'future', equity: 'equity', option: 'option' };\n\nexport const PRODUCT_TYPES = {\n mis: { label: 'MIS', value: 'mis' },\n normal: { label: 'Normal', value: 'normal' },\n};\n\nexport const STOPS_VALUE_TYPES = { Percent: 'Percent', Amount: 'Amount', Points: 'Points' };\nexport const POSITION_VALUE_TYPES = { Lot: 'lot', Amount: 'amount' };\n\nexport const INTENT_TYPES = {\n CloseLeg: 'CloseLeg',\n ExecuteLeg: 'ExecuteLeg',\n ExitTransaction: 'ExitTransaction',\n UpdateStopLoss: 'UpdateStopLoss',\n ReEntry: 'ReEntry',\n OpenBasket: 'OpenBasket',\n OpenLeg: 'OpenLeg',\n};\n\nexport const INTENT_CATEGORIES = {\n Open: 'Open',\n Other: 'Other',\n};\n\nexport const getIntentCategory = (intentType) => {\n if (intentType === INTENT_TYPES.CloseLeg || intentType === INTENT_TYPES.UpdateStopLoss) {\n return INTENT_CATEGORIES.Other;\n }\n return INTENT_CATEGORIES.Open;\n};\n\nexport const QUICK_ADJUSTMENT_TRIGGERS = {\n ExitedInLoss: { value: 'ExitedInLoss', displayName: 'Exited in Loss', shortLabel: 'LossExit' },\n ExitedInProfit: { value: 'ExitedInProfit', displayName: 'Exited in Profit', shortLabel: 'ProfitExit' },\n};\nexport const QUICK_ADJUSTMENT_ACTIONS = {\n CloseLeg: { value: 'CloseLeg', displayName: 'Close', shortLabel: 'Close' },\n ExecuteLeg: { value: 'ExecuteLeg', displayName: 'Open', shortLabel: 'Open' },\n MoveToCost: { value: 'MoveToCost', displayName: 'Move To Cost', shortLabel: 'MTC' }\n};\n\nexport const WAIT_AND_TRADE_TYPES = {\n WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE: 'waitUntilPremiumToIncreaseInPercentage',\n WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE: 'waitUntilPremiumToDecreaseInPercentage',\n};\n\nexport const STRIKE_SELECTION_TYPES = {\n EquityBasedStrikeIndex: {\n label: 'Spot Based',\n value: 'EquityBasedStrikeIndex',\n key: 'strikeIndex',\n isPermissionToChoose: true,\n isShow: true,\n },\n FutureBasedStrikeIndex: {\n label: 'Future Based',\n value: 'FutureBasedStrikeIndex',\n key: 'strikeIndex',\n isPermissionToChoose: true,\n isShow: true,\n },\n StrikePrice: {\n label: 'Strike Price',\n value: 'StrikePrice',\n key: 'strikePrice',\n isPermissionToChoose: true,\n isShow: true,\n },\n PremiumBased: {\n label: 'Premium',\n value: 'PremiumBased',\n key: 'premium',\n isPermissionToChoose: true,\n isShow: true,\n comparsions: [\n { label: 'near', value: 'Nearest' },\n { label: 'greater', value: 'GreaterThan' },\n { label: 'lesser', value: 'LesserThan' }\n ]\n },\n IndicatorValueBasedStrikeIndex: {\n label: 'Indicator Based',\n value: 'IndicatorValueBasedStrikeIndex',\n key: 'strikeIndex',\n isPermissionToChoose: _.get(window, 'SA_FEATURE_FLAGS.shouldShowIndicatorBasedStrikeIndex', false)\n || window?.isAdmin || false,\n isShow: true,\n },\n DeltaBased: {\n label: 'Delta',\n value: 'DeltaBased',\n key: 'delta',\n isPermissionToChoose: _.get(window, 'SA_FEATURE_FLAGS.shouldShowDeltaBased', false)\n || window?.isAdmin || false,\n isShow: _.get(window, 'SA_FEATURE_FLAGS.shouldShowDeltaBased', false)\n || window?.isAdmin || false,\n comparsions: [\n { label: 'near', value: 'Nearest' },\n { label: 'greater', value: 'GreaterThan' },\n { label: 'lesser', value: 'LesserThan' }\n ]\n },\n};\n\nexport const EXPIRY_MONTHLY_DETAILS = {\n '1-monthly': {\n config: { index: 1, cycle: 'monthly' },\n label: 'Current Month',\n },\n '2-monthly': {\n config: { index: 2, cycle: 'monthly' },\n label: 'Next Month',\n },\n};\n\nexport const EXPIRY_WEEKLY_DETAILS = {\n '1-weekly': {\n config: { index: 1, cycle: 'weekly' },\n label: 'Current Week',\n },\n '2-weekly': {\n config: { index: 2, cycle: 'weekly' },\n label: 'Next Week',\n },\n};\n\nexport const CHART_PATTERNS = {\n candle: {\n label: 'Candle',\n value: 'candle',\n isDisplay: true,\n },\n heikinashi: {\n label: 'Heikin Ashi',\n value: 'heikinashi',\n isDisplay: true,\n },\n openInterest: {\n label: 'Open Interest',\n value: 'openInterestCandle',\n isDisplay: true,\n },\n volume: {\n label: 'Volume',\n value: 'volumeCandle',\n isDisplay: true,\n },\n};\n\nexport const QUANT_CONFIG_ORDER_TYPES = {\n market: { label: 'Market', value: 'market' },\n limit: { label: 'Limit', value: 'limit' },\n 'sl-l': { label: 'SL Limit', value: 'sl-l' },\n};\n\nexport const EXTERNAL_SIGNALS_VENDOR_TYPES = {\n TradingView: 'TradingView',\n ChartInk: 'ChartInk',\n};\n\nexport const INDEX_INSTRUMENTS_ONLY_WEEKLY_EXPIRY = [\n 'BFO:SENSEX'\n];\n\nexport const MONTHLY_ONLY_INDEX = [\n 'NFO:BANKNIFTY',\n 'NFO:MIDCPNIFTY',\n 'BFO:BANKEX',\n 'NFO:FINNIFTY',\n];\n\nexport const ILL_IQUID_INDEX = [\n 'NFO:MIDCPNIFTY',\n 'BFO:BANKEX',\n 'NFO:FINNIFTY',\n];\n\nexport const MAX_CASES_IN_QUANT = 10;\n\nexport const INSTAOPTIONS_MODE = {\n live: 'live',\n historical: 'historical',\n};\n\nexport const INFO_MESSAGE_TYPE = {\n BrokerLogin: 'BrokerLogin',\n BacktestPlan: 'BacktestPlan',\n};\n\nexport const TEMP_MAIL_LIST = [\n 'mailinator',\n 'tempmail',\n 'yopmail'\n];\n","import _ from 'lodash';\nimport { AVLTree } from 'avl';\n\nimport { TRADINGSYMBOL_REGEX } from 'common/constants/index';\nimport moment from 'moment';\nimport { LocaleUtils } from 'v2/common/utils/zeequantConstants';\nimport { INTENT_TYPES, SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { getSlippageBasedOrders } from '../../OrderStore/helper';\n\nconst Holidays = LocaleUtils().getHolidayDates();\nconst WeekendWorkingDays = LocaleUtils().getWeekendWorkingDates();\n\nconst weekdayFormatter = new Intl.DateTimeFormat('en-IN', { weekday: 'long' });\n\nexport const getWeekdayAbbreviation = _.memoize((orderTime) => {\n const date = new Date(orderTime);\n return weekdayFormatter.format(date);\n}, (orderTime) => new Date(orderTime).toDateString());\n\nconst calculateWeekends = (startDay, totalDays) => {\n if (startDay < 6) {\n const modDays = totalDays % 7;\n return (\n Math.floor(totalDays / 7) * 2\n + (modDays > 7 - startDay ? Math.min(modDays - (7 - startDay), 2) : 0)\n );\n }\n const modDays = totalDays % 7;\n return (\n 1 + Math.floor(totalDays / 7) * 2 + (modDays > (startDay === 6 ? 0 : 5) ? 1 : 0)\n );\n};\n\nconst createAVLTree = (dates) => {\n const tree = new AVLTree();\n dates.forEach((date) => tree.insert(moment(date, 'YYYY-MM-DD').valueOf(), true));\n return tree;\n};\n\nconst holidaysTree = createAVLTree(Holidays);\nconst weekendWorkingDaysTree = createAVLTree(WeekendWorkingDays);\n\nconst getNoOfBusinessDays = _.memoize((startDateMoment, endDateMoment) => {\n const totalDays = endDateMoment.diff(startDateMoment, 'days');\n const startDay = startDateMoment.day();\n const weekends = calculateWeekends(startDay, totalDays);\n\n const holidaysInRange = [];\n holidaysTree.range(startDateMoment.valueOf(), endDateMoment.valueOf(), (key) => holidaysInRange.push(key));\n\n const weekendWorkingDaysInRange = [];\n weekendWorkingDaysTree.range(\n startDateMoment.valueOf(),\n endDateMoment.valueOf(),\n (key) => weekendWorkingDaysInRange.push(key)\n );\n\n return totalDays - weekends - holidaysInRange.length + weekendWorkingDaysInRange.length;\n}, (startDateMoment, endDateMoment) => `${startDateMoment.valueOf()}-${endDateMoment.valueOf()}`);\n\nexport const getDaysToExpiry = _.memoize((parseSymbolData, orderTimestamp) => {\n if (_.isEmpty(parseSymbolData?.expiryDay) || _.isEmpty(parseSymbolData?.symbol)) {\n return null;\n }\n\n const startDateMoment = moment(orderTimestamp, 'YYYY-MM-DD');\n const expiryMoment = moment(parseSymbolData.expiryDay, 'YYYY-MM-DD');\n\n return getNoOfBusinessDays(startDateMoment, expiryMoment);\n}, (parseSymbolData, orderTimestamp) => \n `${parseSymbolData?.symbol}-${parseSymbolData?.expiryDay}-${orderTimestamp}`\n);\n\nexport const getInstrumentType = _.memoize((tradingSymbol, optionIndex) => {\n if (tradingSymbol.includes('FUT')) return SEGMENT_CONFIG.future;\n if (optionIndex !== null && optionIndex !== undefined && !Number.isNaN(Number(optionIndex))) {\n return SEGMENT_CONFIG.option;\n }\n return SEGMENT_CONFIG.equity;\n}, (tradingSymbol, optionIndex) => `${tradingSymbol}-${optionIndex}`);\n\nexport const getParseTradingSymbol = _.memoize((tradingSymbol) => {\n const match = TRADINGSYMBOL_REGEX.exec(tradingSymbol);\n if (match && match.groups) {\n const {\n date, month_name: month, year, symbol\n } = match.groups;\n const fullYear = year ? `20${year}` : null;\n\n let expiryDay = null;\n if (date && month && year) {\n expiryDay = moment(`${date}-${month}-${fullYear}`, 'DD-MMM-YYYY').format('YYYY-MM-DD');\n }\n\n return {\n symbol: symbol || null,\n expiryDay,\n };\n }\n console.error('Invalid_Trading_Symbol', tradingSymbol);\n return null;\n}, (tradingSymbol) => tradingSymbol);\n\nexport const getBackTestFilteredStrategies = (orders, filterConfigs) => {\n const {\n weekDays, daysToExpiry, legs, slippageConfig\n } = filterConfigs;\n const { slippage, slippageType } = slippageConfig || {};\n\n if (_.isEmpty(weekDays)\n && _.isEmpty(daysToExpiry)\n && _.isEmpty(legs)\n && _.isEmpty(slippageConfig)) { return orders; }\n\n return _.chain(orders)\n .filter(({ day }) => {\n if (_.isEmpty(weekDays)) return true;\n if (weekDays && _.includes(weekDays, day)) return true;\n\n return false;\n })\n .filter(({ days_to_expiry: DaysToExpiry }) => {\n if (_.isEmpty(daysToExpiry)) return true;\n if (daysToExpiry && _.includes(daysToExpiry, DaysToExpiry)) return true;\n return false;\n })\n .filter(({ leg }) => {\n if (_.isEmpty(legs)) return true;\n if (legs && _.includes(legs, leg)) return true;\n return false;\n })\n .thru((filteredOrders) => {\n if (_.isEmpty(slippageConfig) || slippage === 0) {\n return filteredOrders;\n }\n return getSlippageBasedOrders(filteredOrders, slippage, slippageType);\n })\n .value();\n};\n\nexport const transformCaseIntentsStructures = (cases) => {\n const intentMapObject = {};\n const intentArray = [];\n\n cases.forEach((caseConfig, caseIndex) => {\n const entryIntents = caseConfig.entry?.intents || [];\n const adjustmentIntents = caseConfig.adjustments || [];\n\n const entryMap = {};\n const entryIntentArray = [];\n entryIntents.forEach((intent, entryIndex) => {\n if (intent.type !== INTENT_TYPES.OpenBasket) {\n const {\n label = null, segment: type = null, caseIndex: caseIdx = null, adjustmentConfigIndex = null,\n optionConfigIndex = null\n } = intent?.identifier ?? {};\n entryMap[entryIndex] = {\n label,\n type,\n caseIdx,\n adjustmentConfigIndex,\n optionConfigIndex\n };\n entryIntentArray.push({\n id: label || '',\n label: `leg ${label || 'N/A'}`,\n type\n });\n }\n });\n\n const adjustmentMap = {};\n const adjustmentIntentArray = [];\n adjustmentIntents.forEach((adjustment, adjustmentIndex) => {\n const intentLabels = [];\n (adjustment.intents || []).forEach((intent) => {\n if (intent.type !== INTENT_TYPES.OpenBasket) {\n const {\n label = null, segment: type = null, caseIndex: caseIdx = null, adjustmentConfigIndex = null,\n optionConfigIndex = null\n } = intent?.identifier ?? {};\n intentLabels.push({\n label,\n type,\n caseIdx,\n adjustmentConfigIndex,\n optionConfigIndex\n });\n adjustmentIntentArray.push({\n id: label || '',\n label: `leg ${label || 'N/A'}`,\n type\n });\n }\n });\n adjustmentMap[adjustmentIndex] = intentLabels;\n });\n\n intentMapObject[caseIndex] = {\n entry: entryMap,\n adjustments: adjustmentMap\n };\n intentArray.push(...entryIntentArray, ...adjustmentIntentArray);\n });\n\n return { intentMapObject, intentArray };\n};\n\nexport const getLegLable = (\n intentMapObject, caseIndex, adjustmentIndex, optionIndex, instrumentType\n) => {\n const caseData = intentMapObject[caseIndex];\n if (!caseData) return null;\n\n const matchCriteria = {\n caseIdx: Number(caseIndex),\n adjustmentConfigIndex: adjustmentIndex === 'null' ? null : Number(adjustmentIndex),\n optionConfigIndex: optionIndex === 'null' ? null : Number(optionIndex),\n type: instrumentType\n };\n\n if (caseData.adjustments && caseData.adjustments[adjustmentIndex]) {\n const adjustmentLeg = caseData.adjustments[adjustmentIndex]\n .find((leg) => _.isMatch(leg, matchCriteria));\n if (adjustmentLeg) return adjustmentLeg.label;\n }\n\n if (caseData.entry) {\n const entryLeg = Object.values(caseData.entry).find((leg) => _.isMatch(leg, matchCriteria));\n if (entryLeg) return entryLeg.label;\n }\n\n return null;\n};\n","import _ from 'lodash';\nimport { slippageTypes } from 'common/constants/index';\n\nconst buildFilterConfig = (label, value, rangeStart, rangeEnd) => {\n return {\n label, value, rangeStart, rangeEnd\n };\n};\nexport const marginFilterConfig = [\n // buildFilterConfig('Under 5k ', 5000, 0, 5000),\n // buildFilterConfig('5k to 25k', 25000, 5000, 25000),\n buildFilterConfig('Under 25k', 25000, 0, 25000),\n buildFilterConfig('25k to 1 Lakh', 100000, 25000, 100000),\n buildFilterConfig('1 Lakh to 2 Lakh', 200000, 100000, 200000),\n buildFilterConfig('Above 2 Lakh', 10000000000000, 200000, 10000000000000)\n];\n\nexport const purchaseFilterConfig = [\n buildFilterConfig('Under 2k ', 2000, 0, 2000),\n buildFilterConfig('2k to 10k', 10000, 2000, 10000),\n buildFilterConfig('10k to 20k', 20000, 10000, 20000),\n buildFilterConfig('Above 20k', 40000, 20000, 100000)\n];\n\nexport const defaultFilterConfig = {\n segments: [],\n margins: [],\n categories: [],\n instruments: [],\n timePeriods: [],\n purchaseTypes: [],\n purchaseAmounts: [],\n tags: [],\n premiums: [],\n authorNames: []\n};\n\nexport const defaultBackTestFilterConfig = {\n weekDays: [],\n daysToExpiry: [],\n legs: [],\n slippageConfig: { slippage: 0, slippageType: slippageTypes.percentage },\n isWeekDaysFilterActive: false,\n isDaysToExpiryFilterActive: false\n};\n\nexport const tagsconfig = {\n 'options buying': (tags) => _.some(tags, (tag) => _.includes(['options buying'], _.lowerCase(tag))),\n 'options selling': (tags) => _.some(tags, (tag) => _.includes(['options selling'], _.lowerCase(tag))),\n mixed: (tags) => _.some(tags, (tag) => _.includes(['options selling', 'options buying'], _.lowerCase(tag))),\n others: (tags) => !_.some(\n tags, (tag) => _.includes(['options selling', 'options buying'], _.lowerCase(tag))\n ),\n};\n","import _ from 'lodash';\nimport { getAllOrders } from 'common/api/orders';\nimport React, {\n useState, useEffect, createContext, useMemo, useCallback\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { oneOfTypes, runPropTypes } from 'common/propTypes';\nimport { ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\nimport { getContextConfig, getSlippageBasedOrders } from './helper';\nimport {\n getWeekdayAbbreviation,\n getBackTestFilteredStrategies,\n getParseTradingSymbol,\n getDaysToExpiry,\n transformCaseIntentsStructures,\n getInstrumentType,\n getLegLable\n} from '../components/BackTestFilters/helper';\nimport { optimizeJobs } from './metrics/formula';\nimport { defaultBackTestFilterConfig } from '../../../Strategies/config';\n\nconst propTypes = {\n runIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n jobIds: PropTypes.arrayOf(PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n )).isRequired,\n runType: PropTypes.string.isRequired,\n showBy: oneOfTypes,\n children: PropTypes.element,\n orderType: PropTypes.string,\n run: runPropTypes,\n ordersAccessTokens: PropTypes.shape({}),\n optimizeBy: PropTypes.string,\n setCheckedRunIds: PropTypes.func\n};\n\nconst { paper: { value: paper } } = ORDER_TYPES;\n\nconst defaultProps = {\n showBy: 'all',\n children: null,\n orderType: paper,\n run: {},\n ordersAccessTokens: window.ordersAccessTokens,\n optimizeBy: null,\n setCheckedRunIds: null\n};\n\nexport const OrderContext = createContext(null);\n\nconst OrderStore = ({\n runIds, jobIds, runType, showBy, children, orderType, run, ordersAccessTokens, optimizeBy, setCheckedRunIds\n}) => {\n const [state, setState] = useState({\n isLoading: true,\n rawOrders: [],\n orders: [],\n contextConfig: { orders: [], transactions: [] },\n filterConfigs: defaultBackTestFilterConfig,\n });\n\n const isMarketplaceAuthorRun = _.get(run, 'is_strategy_author', false);\n const ignoreInCompleteTransactionUntil = _.get(run, 'ignore_incomplete_orders_until', null);\n const quantConfig = _.get(run, 'quant_config', {});\n const intentConfig = useMemo(() => transformCaseIntentsStructures(quantConfig?.cases || []),\n [quantConfig?.cases]);\n const { intentMapObject, intentArray } = intentConfig;\n\n const {\n filterConfigs, rawOrders, orders\n } = state;\n const {\n weekDays, daysToExpiry, legs, slippageConfig: { slippage, slippageType }\n } = filterConfigs;\n const isBacktest = runType === RUN_TYPES.historic;\n\n const onHandleSlippage = (newSlippage, newSlippageType = slippageType) => {\n setState((prevState) => ({\n ...prevState,\n filterConfigs: {\n ...prevState.filterConfigs,\n slippageConfig: { slippage: newSlippage, slippageType: newSlippageType },\n },\n }));\n };\n\n const processOrders = useCallback((transactionsorders) => {\n return _.map(transactionsorders, (order) => {\n const instrumentType = getInstrumentType(order.trading_symbol, order.option_config_index);\n return {\n ...order,\n day: getWeekdayAbbreviation(order.order_time),\n instrument_type: instrumentType,\n days_to_expiry: getDaysToExpiry(getParseTradingSymbol(order.trading_symbol), order.order_time),\n leg: getLegLable(\n intentMapObject,\n order.case_index,\n order.adjustment_config_index,\n order.option_config_index,\n instrumentType,\n ),\n };\n });\n }, []);\n\n useEffect(() => {\n Promise.all(_.map(runIds, (runId, idx) => {\n return getAllOrders({\n runId, jobIds: jobIds[idx], runType, orderType, ordersAccessTokens\n });\n })).then((result) => {\n const flattenedOrders = _.flattenDeep(result);\n setState((prevState) => ({\n ...prevState,\n rawOrders: isBacktest ? processOrders(flattenedOrders) : flattenedOrders,\n isLoading: false,\n }));\n });\n }, [runIds, isBacktest, processOrders]);\n\n const hasFilterConfigs = weekDays.length || daysToExpiry.length || legs.length\n || (!_.isEmpty(filterConfigs.slippageConfig) && Number(slippage) !== 0);\n\n useEffect(() => {\n if (!rawOrders.length) return;\n if (isBacktest) {\n setState((prevState) => ({\n ...prevState,\n orders: hasFilterConfigs ? getBackTestFilteredStrategies(rawOrders, filterConfigs) : rawOrders,\n }));\n } else {\n setState((prevState) => ({\n ...prevState,\n orders: Number(slippage) === 0 ? rawOrders\n : getSlippageBasedOrders(rawOrders, slippage, slippageType),\n }));\n }\n }, [isBacktest, rawOrders, filterConfigs, slippage, slippageType]);\n\n useEffect(() => {\n if (orders.length) {\n const originalContextConfig = getContextConfig(\n orders,\n runIds,\n showBy,\n runType,\n orderType,\n ignoreInCompleteTransactionUntil,\n isMarketplaceAuthorRun,\n slippage,\n slippageType,\n filterConfigs\n );\n\n const optimized = optimizeJobs(originalContextConfig.transactions, optimizeBy, _.cloneDeep(runIds));\n\n setState((prevState) => ({\n ...prevState,\n contextConfig: {\n ...originalContextConfig,\n transactions: optimized.transactions,\n },\n }));\n\n if (setCheckedRunIds) setCheckedRunIds(optimized.runIds);\n } else {\n setState((prevState) => ({\n ...prevState,\n contextConfig: { orders, transactions: [] },\n }));\n }\n }, [showBy, orders, optimizeBy]);\n\n return (\n setState((prevState) => ({\n ...prevState,\n filterConfigs: newConfigs,\n })),\n }}\n >\n {children}\n \n );\n};\n\nOrderStore.propTypes = propTypes;\nOrderStore.defaultProps = defaultProps;\n\nexport default OrderStore;\n","export const indicatorsTypes = { single: 'single', pair: 'pair' };\nexport const DOUBLE_COL_SPAN = 2;\nexport const NO_COL_SPAN = 1;\nexport const SUB_TITLE = 'subTitle';\nexport const INDICATORS_LENGTH = { single: 1, pair: 2 };\n\nexport const getTradeTypes = () => ({\n PE: { entry: { buy: 'putOptionLong', sell: 'putOptionShort', } },\n CE: { entry: { buy: 'callOptionLong', sell: 'callOptionShort', } },\n FUT: { entry: { buy: 'futuresLong', sell: 'futuresShort', } },\n EQUITY: { entry: { buy: 'equityLong', sell: 'equityShort', } },\n});\n\nexport const months = [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',\n 'November', 'December'\n];\n\nexport const weekDays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\nexport const CENT = 100;\n","import _ from 'lodash';\nimport { CENT } from '../../config';\n\nconst roundOff = (value) => _.round(value, 2);\n\nconst getOrdersProfits = (symbolOrders) => _.map(symbolOrders, (orders) => {\n return orders.overallProfit;\n});\n\nexport const computePLAndHM = (symbolOrders) => {\n const ordersProfits = getOrdersProfits(symbolOrders);\n const totalProfitsCount = ordersProfits.length;\n const profits = _.filter(ordersProfits, (profit) => profit > 0);\n const losses = _.filter(ordersProfits, (profit) => profit < 0);\n const hitPercent = roundOff((profits.length * CENT) / totalProfitsCount);\n const totalProfits = roundOff(_.sum(profits));\n const totalLosses = roundOff(_.sum(losses));\n const profitPercent = roundOff((totalProfits * CENT) / (Math.abs(totalLosses) + totalProfits));\n\n return {\n hit: profits.length,\n hitPercent,\n miss: losses.length,\n missPercent: roundOff(CENT - hitPercent),\n profit: totalProfits,\n profitPercent,\n loss: totalLosses,\n lossPercent: roundOff(CENT - profitPercent),\n };\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport { computePLAndHM } from './common';\n\nexport const getAnalyticsData = (transactions, analyticsGroupBy) => {\n return _.chain(transactions)\n .groupBy(analyticsGroupBy)\n .reduce((hsh, symbolOrdersList, analyticsKey) => {\n // symbolOrdersList ==> [ [, ], [, ] ]\n \n hsh[analyticsKey] = computePLAndHM(symbolOrdersList);\n\n return hsh;\n }, {})\n .value();\n};\n\nexport const getDayOfWeekData = (transactions, isEntryFlag) => {\n return getAnalyticsData(\n transactions,\n ({ transactionOpenTime, transactionCloseTime }) => {\n const time = isEntryFlag ? transactionOpenTime : transactionCloseTime;\n\n return moment(time).format('dddd');\n }\n );\n};\n\nexport const getYearWiseData = (transactions) => {\n return getAnalyticsData(\n transactions,\n ({ transactionOpenTime }) => {\n return moment(transactionOpenTime).format('YYYY');\n }\n );\n};\n\nexport const getCaseWiseData = (transactions) => {\n return getAnalyticsData(\n transactions,\n (symbolOrders) => {\n const { case_index: caseIndex } = _.find(\n symbolOrders.orders, (({ is_entry: isEntry }) => isEntry === true || isEntry === 'true')\n );\n return caseIndex;\n }\n );\n};\n\nexport const getInstrumentData = (transactions) => {\n return getAnalyticsData(\n transactions,\n ({ instruments }) => { return instruments; }\n );\n};\n\nexport const getRunProfits = (transactions) => {\n const runProfits = _.map(transactions, (transaction) => {\n const { cumulativeProfit } = transaction;\n if (!cumulativeProfit.timestamp) return null;\n\n const profit = cumulativeProfit.value;\n const timestamp = moment(cumulativeProfit.timestamp).local().toDate();\n return {\n timestamp, value: profit\n };\n });\n\n return _.without(runProfits, null);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport withErrorBoundary from './withErrorBoundary/index';\n\nconst propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n shouldColor: PropTypes.bool,\n color: PropTypes.string,\n shouldAvoidDecimals: PropTypes.bool,\n isAttachCurrency: PropTypes.bool,\n isAddPercentage: PropTypes.bool\n};\nconst defaultProps = {\n children: null,\n shouldColor: false,\n color: '',\n shouldAvoidDecimals: false,\n isAttachCurrency: true,\n isAddPercentage: false\n};\n\nconst getFormattedMoney = (money, shouldAvoidDecimals) => {\n if (!shouldAvoidDecimals) return money;\n\n return money.toString().replace(/\\D00(?=\\D*$)/, '');\n};\n\nconst Money = ({\n children, shouldColor, color, shouldAvoidDecimals, isAttachCurrency, isAddPercentage\n}) => {\n const intlFormatter = new Intl.NumberFormat('en-IN');\n\n const money = getFormattedMoney(children, shouldAvoidDecimals);\n const moneyStyle = classNames('default', {\n 'text-success': shouldColor && children > 0,\n 'text-danger d-inline-flex': (shouldColor && (color === 'red' || children <= 0)),\n });\n\n return (\n \n {children < 0 && '-'}\n {isAttachCurrency\n && currency_rupee}\n {intlFormatter.format(Math.abs(Number(money)))}\n {isAddPercentage && '%'}\n \n );\n};\n\nexport default withErrorBoundary(Money, 'Errored', false);\n\nMoney.propTypes = propTypes;\nMoney.defaultProps = defaultProps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n infoAvatar: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.string,\n ]),\n leftHeader: PropTypes.string,\n leftValue: PropTypes.element,\n rightHeader: PropTypes.string,\n rightValue: PropTypes.element,\n};\nconst defaultProps = {\n infoAvatar: '',\n leftHeader: '',\n leftValue: null,\n rightHeader: '',\n rightValue: null,\n};\n\nconst SmallInfoCard = ({\n leftHeader, leftValue, rightHeader, rightValue, infoAvatar\n}) => (\n
    \n
    \n
    \n
    \n
    \n {infoAvatar}\n
    \n\n
    \n
    {leftHeader}
    \n
    {leftValue}
    \n
    \n
    \n\n
    \n
    {rightHeader}
    \n
    {rightValue}
    \n
    \n
    \n
    \n
    \n);\n\nSmallInfoCard.defaultProps = defaultProps;\nSmallInfoCard.propTypes = propTypes;\n\nexport default SmallInfoCard;\n","import _ from 'lodash';\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Money from 'common/components/MoneyDisplay';\nimport SmallInfoCard from 'common/components/SmallInfoCard';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\n\nconst propTypes = {\n metrics: PropTypes.shape({})\n};\nconst defaultProps = {\n metrics: {}\n};\n\nconst renderMetrics = (metric) => {\n const {\n winningProbability,\n winLossRatio,\n recommendedAllocatedCapital,\n drawdown,\n avgProfit,\n avgLoss,\n winStreak,\n lossStreak,\n maxProfit,\n maxLoss,\n drawdowndays\n } = metric;\n\n const winningProbabilityStyle = classNames(\n 'main-head',\n winningProbability > 0 ? 'text-success' : 'text-danger'\n );\n const roundedWinningProbability = _.round(winningProbability, 2) || winningProbability;\n const racStyle = classNames(\n 'main-head',\n recommendedAllocatedCapital > 0 ? 'text-success' : 'text-danger'\n );\n const racElement = (\n
    \n {_.round(recommendedAllocatedCapital, 2)}\n  \n %\n
    \n );\n\n const runSummayInfoCards = [\n {\n leftHeader: 'Winning Probability',\n leftValue:
    {roundedWinningProbability}
    \n },\n {\n leftHeader: 'win loss ratio',\n leftValue:
    {winLossRatio}
    ,\n },\n {\n leftHeader: 'Risk Per Trade',\n leftValue: racElement,\n },\n {\n leftHeader: 'Max Drawdown',\n leftValue:
    {drawdown}
    ,\n rightHeader: 'Drawdown Days',\n rightValue:
    {drawdowndays}
    ,\n },\n {\n leftHeader: 'AVG Profit',\n leftValue: {avgProfit},\n rightHeader: 'Avg Loss',\n rightValue: {avgLoss},\n },\n {\n leftHeader: 'Win Streak',\n leftValue:
    {winStreak}
    ,\n rightHeader: 'Loss Streak',\n rightValue:
    {lossStreak}
    ,\n },\n {\n leftHeader: 'MAX Profit',\n leftValue: {parseFloat(maxProfit)},\n rightHeader: 'Max Loss',\n rightValue: {parseFloat(maxLoss)},\n }\n ];\n\n return (\n
    \n {_.map(runSummayInfoCards,\n (cardProps, idx) => )}\n
    \n );\n};\n\nconst MetricsPanel = (props) => {\n const {\n metrics\n } = props;\n\n return (_.keys(metrics).length !== 0) && renderMetrics(metrics);\n};\n\nexport default withErrorBoundary(MetricsPanel);\n\nMetricsPanel.defaultProps = defaultProps;\nMetricsPanel.propTypes = propTypes;\n","import _ from 'lodash';\nexport const getValue = (d, valuePath) => {\n const value = _.get(d, valuePath, 'null');\n return (value === 'null') ? null : Number(value);\n};\n\nexport const getDate = (d) => {\n return d ? d.timestamp : null;\n};\n","import { getValue, getDate } from './dataUtils';\n\nexport const getTipsyHandler = ({\n elements, xScale: argXScale, yScale, sources, margin, options\n}) => {\n const { tooltip } = elements;\n // On zoom xScale will change;\n let xScale = argXScale;\n const offset = {\n left: -10,\n top: -10\n };\n\n const hideTooltip = () => {\n tooltip\n .transition()\n .duration(200)\n .style('opacity', 0);\n };\n\n return {\n update: (newXScale) => {\n xScale = newXScale;\n },\n onMouseOver: () => {\n tooltip\n .style('opacity', 1);\n },\n onMouseMove: (event) => {\n const nearestXIndex = Math.round(xScale.invert(event.layerX - margin.left));\n const nearestSeriesItem = sources[0].series[nearestXIndex];\n const value = getValue(nearestSeriesItem, options.valuePath);\n const date = getDate(nearestSeriesItem);\n\n if (nearestXIndex && value && date) {\n const tooltipElem = tooltip.node();\n const tooltipAnchor = {\n x: (xScale(nearestXIndex) - (tooltipElem.clientWidth / 2) + offset.left),\n y: (yScale(value) - tooltipElem.clientHeight + offset.top)\n };\n const formattedValue = Intl.NumberFormat(\n 'en-IN', { style: 'currency', currency: 'INR' }\n ).format(parseFloat(value));\n const htmlContent = `\n
    \n Profit/Loss
    \n ${formattedValue}\n
    \n
    \n
    Date: ${d3.timeFormat('%e %b %Y')(date)}
    \n
    Time: ${d3.timeFormat('%I:%S %p')(date)}
    \n
    \n `;\n\n tooltip\n .style('left', `${margin.left + tooltipAnchor.x}px`)\n .style('top', `${margin.top + tooltipAnchor.y}px`);\n\n tooltip.select('div.text-capitalize').html(htmlContent);\n\n tooltip.select('div.arrow')\n .style('left', `${tooltipElem.clientWidth / 2}px`);\n }\n },\n onMouseLeave: () => {\n hideTooltip();\n },\n hideTooltip\n };\n};\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n laterDate_.getMonth() === earlierDate_.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link isSameWeek} function options.\n */\n\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week (and month and year)?\n *\n * @description\n * Are the given dates in the same week (and month and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same week (and month and year)\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same week?\n * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameWeek(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameWeek;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfHour} function options.\n */\n\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nexport function startOfHour(date, options) {\n const _date = toDate(date, options?.in);\n _date.setMinutes(0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfHour;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfHour } from \"./startOfHour.js\";\n\n/**\n * The {@link isSameHour} function options.\n */\n\n/**\n * @name isSameHour\n * @category Hour Helpers\n * @summary Are the given dates in the same hour (and same day)?\n *\n * @description\n * Are the given dates in the same hour (and same day)?\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same hour (and same day)\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 6, 30))\n * //=> true\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 5 September 06:00:00 in the same hour?\n * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 5, 6, 0))\n * //=> false\n */\nexport function isSameHour(dateLeft, dateRight, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n dateLeft,\n dateRight,\n );\n return +startOfHour(dateLeft_) === +startOfHour(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameHour;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDate} function options.\n */\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport function getDate(date, options) {\n return toDate(date, options?.in).getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDate;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getMonth} function options.\n */\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date, options) {\n return toDate(date, options?.in).getMonth();\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import _ from 'lodash';\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays';\nimport isSameMonth from 'date-fns/isSameMonth';\nimport isSameWeek from 'date-fns/isSameWeek';\nimport isSameDay from 'date-fns/isSameDay';\nimport isSameHour from 'date-fns/isSameHour';\nimport dateFnsGetDate from 'date-fns/getDate';\nimport dateFnsGetMonth from 'date-fns/getMonth';\n\nimport { getDate } from './dataUtils';\n\nconst minNumberOfTicks = 3;\nconst tickConfigs = [\n {\n name: 'multipleYears',\n daysInATick: 180,\n shouldShowTick: (prevDate, currentDate) => {\n return _.includes([0, 3, 6, 9], dateFnsGetMonth(currentDate)) && !isSameMonth(prevDate, currentDate);\n },\n tickFormat: (date, index) => {\n if (index === 0 || dateFnsGetMonth(date) === 0) {\n // First tick, show year. Or if Jan month show year\n return d3.timeFormat('%Y %b')(date);\n }\n return d3.timeFormat('%b')(date);\n }\n },\n {\n name: 'multipleMonths',\n daysInATick: 30,\n shouldShowTick: (prevDate, currentDate) => {\n return !isSameMonth(prevDate, currentDate);\n },\n tickFormat: (date, index) => {\n if (index === 0 || dateFnsGetMonth(date) === 0) {\n // First tick, show year. Or if Jan month show year\n return d3.timeFormat('%Y %b %e')(date);\n }\n return d3.timeFormat('%b %e')(date);\n }\n },\n {\n name: 'fewMonths',\n daysInATick: 15,\n shouldShowTick: (prevDate, currentDate) => {\n return !isSameMonth(prevDate, currentDate)\n || ((dateFnsGetDate(prevDate) <= 15) && (dateFnsGetDate(currentDate) > 15));\n },\n tickFormat: (date, index) => {\n // For second half of month, show just date.\n if (\n index === 0\n || (dateFnsGetMonth(date) === 0 && (dateFnsGetDate(date) <= 15))\n ) {\n // First tick, show year. Or if Jan month show year\n return d3.timeFormat('%Y %b %e')(date);\n }\n return d3.timeFormat('%b %e')(date);\n }\n },\n {\n name: 'weeks',\n daysInATick: 7,\n shouldShowTick: (prevDate, currentDate) => {\n return !isSameWeek(prevDate, currentDate);\n },\n tickFormat: (date, index) => {\n if (index === 0) {\n // First tick, show year\n return d3.timeFormat('%Y %b %e')(date);\n }\n return d3.timeFormat('%b %e')(date);\n }\n },\n {\n name: 'days',\n daysInATick: 1,\n shouldShowTick: (prevDate, currentDate) => {\n return !isSameDay(prevDate, currentDate);\n },\n tickFormat: (date) => {\n return d3.timeFormat('%b %e')(date);\n }\n },\n {\n name: 'hours',\n daysInATick: 0.01,\n shouldShowTick: (prevDate, currentDate) => {\n return !isSameHour(prevDate, currentDate);\n },\n tickFormat: (date, index) => {\n if (date.getHours() === 9) {\n return d3.timeFormat('%b %e')(date);\n } if (index === 0) {\n return d3.timeFormat('%b %e %H:00')(date);\n }\n return d3.timeFormat('%H:00')(date);\n }\n }\n];\n\nconst getTickConfig = (minDate, maxDate, min, max) => {\n if (max - min <= 10) {\n // If only 10 values, show hourly.\n return _.last(tickConfigs);\n }\n const totalDays = Math.max(differenceInCalendarDays(maxDate, minDate), 1);\n\n return _.find(tickConfigs, (tickConfig) => {\n return (totalDays / tickConfig.daysInATick) >= minNumberOfTicks;\n });\n};\n\nexport const getTicksGenerator = (xScale, sources) => {\n let [min, max] = xScale.domain();\n min = Math.max(Math.ceil(min), 0);\n max = Math.min(Math.floor(max), sources[0].series.length - 1);\n\n const minDate = getDate(sources[0].series[min]);\n const maxDate = getDate(sources[0].series[max]);\n\n const tickConfig = getTickConfig(minDate, maxDate, min, max);\n const tickValues = _.chain(min).range(max)\n .filter((dataIndex) => {\n const previousSeriesItem = sources[0].series[dataIndex - 1];\n const seriesItem = sources[0].series[dataIndex];\n if (!previousSeriesItem) { return true; }\n if (!seriesItem) { return false; }\n\n return tickConfig.shouldShowTick(\n getDate(previousSeriesItem),\n getDate(seriesItem)\n );\n })\n .value();\n const tickFormat = (d, index) => {\n const seriesItem = sources[0].series[d];\n if (!seriesItem) { return null; }\n return tickConfig.tickFormat(getDate(seriesItem), index);\n };\n\n return {\n tickValues,\n tickFormat\n };\n};\n","import _ from 'lodash';\nexport const createGradient = (svgDef, className, color, opacity) => {\n const gradient = svgDef\n .append('linearGradient')\n .attr('class', className)\n .attr('x1', '0%')\n .attr('y1', '0%')\n .attr('x2', '0%')\n .attr('y2', '100%')\n .attr('id', _.uniqueId('gradient'));\n\n gradient.append('stop')\n .attr('class', 'stop-0')\n .attr('offset', '0%')\n .attr('stop-color', color[0])\n .attr('stop-opacity', opacity[0]);\n gradient.append('stop')\n .attr('class', 'stop-1')\n .attr('offset', '100%')\n .attr('stop-color', color[1])\n .attr('stop-opacity', opacity[1]);\n gradient.append('stop')\n .attr('class', 'stop-2')\n .attr('offset', '100%')\n .attr('stop-color', color[2])\n .attr('stop-opacity', opacity[2]);\n gradient.append('stop')\n .attr('class', 'stop-3')\n .attr('offset', '100%')\n .attr('stop-color', color[3])\n .attr('stop-opacity', opacity[3]);\n\n return gradient;\n};\n","import _ from 'lodash';\nimport { getValue } from './dataUtils';\nimport { getTipsyHandler } from './tipsyHandler';\nimport { getTicksGenerator } from './ticksGenerator';\nimport { createGradient } from './gradientUtils';\n\nconst initTemplate = (chartContainer) => {\n const svg = chartContainer.select('svg');\n const svgDef = svg.append('defs');\n\n const tooltip = chartContainer.select('div.tooltip');\n tooltip\n .attr('style', 'position: absolute; opacity: 0; top: 0px; left: 0px; pointer-events:none;');\n\n const chartArea = svg\n .append('g')\n .attr('class', 'chartArea');\n\n const clipPath = svgDef\n .append('SVG:clipPath')\n .attr('id', 'clip');\n clipPath.append('SVG:rect')\n .attr('x', 0)\n .attr('y', 0);\n\n const xAxis = chartArea.append('g')\n .attr('class', 'axis axis--x');\n\n const yAxis = chartArea.append('g')\n .attr('class', 'axis axis--y');\n\n const viewPort = chartArea.append('g')\n .attr('class', 'viewPort')\n .attr('clip-path', 'url(#clip)');\n\n const fillGradient = createGradient(\n svgDef,\n 'fill-gradient',\n ['rgb(124, 244, 176)', 'rgb(124, 244, 176)', 'rgb(237, 151, 160)', 'rgb(237, 151, 160)'],\n ['0.5', '0.0', '0.0', '0.5']\n );\n const strokeGradient = createGradient(\n svgDef,\n 'stroke-gradient',\n ['rgb(16, 183, 89)', 'rgb(16, 183, 89)', 'rgb(220, 53, 69)', 'rgb(220, 53, 69)'],\n ['1', '1', '1', '1']\n );\n\n const pattern = svgDef\n .append('pattern')\n .attr('width', '1')\n .attr('patternUnits', 'userSpaceOnUse')\n .attr('id', _.uniqueId('stripes'));\n\n pattern.append('rect')\n .attr('fill', `url(#${fillGradient.attr('id')})`) // Option 1. Profit green/ Loss Red gradient fill\n // .attr('fill', 'rgba(63, 81, 181, 0.2)') // Option 2. Normal fill\n .attr('width', '4')\n .attr('transform', 'translate(0,0)');\n\n const zoomer = svg.append('rect')\n .attr('class', 'zoomer')\n .style('fill', 'none')\n .style('pointer-events', 'all');\n\n return {\n chartArea,\n clipPath,\n xAxis,\n yAxis,\n viewPort,\n fillGradient,\n strokeGradient,\n pattern,\n svg,\n tooltip,\n zoomer\n };\n};\n\nconst getTemplate = (chartContainer) => {\n const svg = chartContainer.select('svg');\n const chartArea = svg.select('g.chartArea');\n const clipPath = svg.select('def clipPath');\n const xAxis = svg.select('g.axis.axis--x');\n const yAxis = svg.select('g.axis.axis--y');\n const viewPort = svg.select('g.viewPort');\n\n const fillGradient = svg.select('defs linearGradient.fill-gradient');\n const strokeGradient = svg.select('defs linearGradient.stroke-gradient');\n const pattern = svg.select('defs pattern');\n const tooltip = chartContainer.select('div.tooltip');\n const zoomer = svg.select('rect.zoomer');\n\n return {\n chartArea,\n clipPath,\n xAxis,\n yAxis,\n viewPort,\n fillGradient,\n strokeGradient,\n pattern,\n svg,\n tooltip,\n zoomer\n };\n};\n\nconst getAreaRenderer = (xScale, yScale, options, fromZero) => {\n return d3.area()\n .defined((d) => getValue(d, options.valuePath) !== null)\n .curve(d3.curveMonotoneX)\n .x((d, i) => xScale(i))\n .y0(yScale(0))\n .y1(fromZero ? yScale(0) : (d) => yScale(getValue(d, options.valuePath)));\n};\n\nconst repositionElements = ({\n elements, yScale, margin, dimension\n}) => {\n const {\n chartArea, clipPath, fillGradient, strokeGradient, pattern, xAxis, zoomer\n } = elements;\n const yPerc = yScale.copy().range([100, 0]);\n const zeroValueYRangePercentage = yPerc(0);\n\n chartArea\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n clipPath.select('rect')\n .attr('width', dimension.width - 2)\n .attr('height', dimension.height);\n xAxis\n .attr('transform', `translate(0, ${dimension.height})`);\n zoomer.attr('width', dimension.width)\n .attr('height', dimension.height)\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n fillGradient.select('stop.stop-1')\n .attr('offset', `${zeroValueYRangePercentage.toFixed(4)}%`);\n fillGradient.select('stop.stop-2')\n .attr('offset', `${zeroValueYRangePercentage.toFixed(4)}%`);\n strokeGradient.select('stop.stop-1')\n .attr('offset', `${zeroValueYRangePercentage.toFixed(4)}%`);\n strokeGradient.select('stop.stop-2')\n .attr('offset', `${zeroValueYRangePercentage.toFixed(4)}%`);\n pattern\n .attr('height', `${dimension.height}`);\n pattern.select('rect')\n .attr('height', `${dimension.height}`);\n};\n\nconst renderAxis = ({\n elements, xScale, yScale, sources\n}) => {\n const { xAxis, yAxis } = elements;\n const ticksGenerator = getTicksGenerator(xScale, sources);\n\n const xAxisGenerator = d3.axisBottom(xScale)\n .tickValues(ticksGenerator.tickValues)\n .tickFormat(ticksGenerator.tickFormat);\n xAxis\n .call(xAxisGenerator)\n .call((elem) => {\n const newDomainLine = d3.line()([\n [xScale.range()[0], yScale.range()[1]],\n [xScale.range()[1], yScale.range()[1]]\n ]);\n elem.select('.domain').attr('d', newDomainLine);\n });\n yAxis\n .call(d3.axisLeft(yScale).tickSize(-xScale.range()[1]))\n .call((elem) => elem.select('.domain').remove())\n .selectAll('.tick line')\n .attr('stroke', 'rgba(77, 77, 77, 0.1)')\n .attr('stroke-dasharray', '0');\n};\n\nconst updateData = (elements, area, transition) => {\n let { viewPort } = elements;\n\n if (transition) {\n viewPort = viewPort.transition(transition);\n }\n viewPort.selectAll('.area')\n .selectAll('path')\n .attr('d', (d) => area(d.series));\n};\n\nconst renderData = ({\n elements, xScale, yScale, sources, options\n}) => {\n const { viewPort, strokeGradient, fillGradient } = elements;\n const area = getAreaRenderer(xScale, yScale, options);\n // const startArea = getAreaRenderer(xScale, yScale, options, true);\n\n const filledLines = viewPort.selectAll('.area').data(sources);\n filledLines.enter().append('g')\n .attr('class', 'area')\n .append('path')\n .attr('stroke', `url(#${strokeGradient.attr('id')})`)\n .attr('stroke-width', '2')\n .style('fill', `url(#${fillGradient.attr('id')})`);\n\n filledLines.select('path').datum((source) => source);\n filledLines.exit().remove();\n\n // Commenting out animation.\n // updateData(elements, startArea);\n // setTimeout(() => updateData(elements, area, 300), 100);\n updateData(elements, area);\n};\n\nconst setupZoom = ({\n elements, xScale, yScale, dimension, options, sources, tipsyHandler\n}) => {\n const { zoomer } = elements;\n const zoom = d3.zoom()\n .scaleExtent([0.95, 10]) // This control how much you can unzoom (x0.5) and zoom (x20)\n .extent([[0, 0], [dimension.width, dimension.height]]);\n\n zoom.on('zoom', (event) => {\n const newXScale = event.transform.rescaleX(xScale);\n const newArea = getAreaRenderer(newXScale, yScale, options);\n\n renderAxis({\n elements, xScale: newXScale, yScale, sources\n });\n updateData(elements, newArea);\n tipsyHandler.update(newXScale);\n\n // If required to zoom y dimension\n // const newY = event.transform.rescaleY(y);\n // yAxis.call(d3.axisLeft(newY))\n });\n\n zoomer.call(zoom);\n};\n\nexport const renderChart = (chartContainer, margin, sources, options) => {\n if (!sources || !sources[0] || !sources[0].series || !sources[0].series.length) {\n return;\n }\n const templateAlreadyInitialized = chartContainer.select('g.viewPort').size() > 0;\n const elements = templateAlreadyInitialized ? getTemplate(chartContainer) : initTemplate(chartContainer);\n const { zoomer } = elements;\n\n const chartContainerBoundingRect = chartContainer.node().getBoundingClientRect();\n const dimension = {\n width: +chartContainerBoundingRect.width - margin.left - margin.right,\n height: +chartContainerBoundingRect.height - margin.top - margin.bottom\n };\n\n const xScale = d3.scaleLinear()\n .range([0, dimension.width])\n .domain([-1, sources[0].series.length]);\n xScale.clamp(true);\n const yScale = d3.scaleLinear()\n .range([dimension.height, 0])\n .domain([\n d3.min(sources, (source) => d3.min(source.series, (d) => getValue(d, options.valuePath))) || -100,\n d3.max(sources, (source) => d3.max(source.series, (d) => getValue(d, options.valuePath))) || 100\n ]);\n\n const tipsyHandler = getTipsyHandler({\n elements, xScale, yScale, sources, margin, options\n });\n zoomer\n .on('mouseover', null).on('mouseover', tipsyHandler.onMouseOver)\n .on('mousemove', null).on('mousemove', tipsyHandler.onMouseMove)\n .on('mouseleave', null)\n .on('mouseleave', tipsyHandler.onMouseLeave);\n tipsyHandler.hideTooltip();\n\n repositionElements({\n elements, xScale, yScale, margin, dimension\n });\n renderAxis({\n elements, xScale, yScale, sources\n });\n renderData({\n elements, xScale, yScale, sources, options\n });\n setupZoom({\n elements, xScale, yScale, dimension, options, sources, tipsyHandler\n });\n window.prerenderReady = true;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { renderChart } from './lib/renderer';\n\nconst MARGIN = {\n top: 20, right: 20, bottom: 30, left: 50\n};\n\nconst propTypes = {\n chartData: PropTypes.arrayOf(PropTypes.shape({\n series: PropTypes.arrayOf(PropTypes.shape({\n timestamp: PropTypes.instanceOf(Date)\n }))\n })).isRequired,\n valuePath: PropTypes.arrayOf(PropTypes.string)\n};\nconst defaultProps = {\n valuePath: ['value']\n};\n\nclass PLChart extends React.Component {\n constructor(props) {\n super(props);\n this.chartRef = React.createRef();\n }\n\n componentDidMount() {\n this.drawChart();\n }\n\n componentDidUpdate() {\n this.drawChart();\n }\n\n drawChart() {\n const { chartData, valuePath } = this.props;\n const options = {\n valuePath\n };\n\n renderChart(\n d3.select(this.chartRef.current),\n MARGIN,\n chartData,\n options\n );\n }\n\n render() {\n return (\n
    \n \n
    \n {/* todo */}\n {/*
    */}\n
    \n
    Tooltip on top
    \n
    \n
    \n );\n }\n}\n\nPLChart.propTypes = propTypes;\nPLChart.defaultProps = defaultProps;\nexport default PLChart;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PLChart from 'modules/PLChart/index';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\nconst propTypes = {\n isLoading: PropTypes.bool.isRequired,\n profits: PropTypes.arrayOf(PropTypes.shape({})),\n};\n\nconst defaultProps = {\n profits: [],\n};\n\nconst RunSummaryChart = ({ isLoading, profits }) => {\n if (isLoading || !_.isEmpty(profits)) {\n return ;\n }\n\n return (\n
    \n \"No\n
    \n );\n};\n\nRunSummaryChart.propTypes = propTypes;\nRunSummaryChart.defaultProps = defaultProps;\n\nexport default withErrorBoundary(RunSummaryChart);\n","import _ from 'lodash';\nimport React, { useContext } from 'react';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { OrderContext } from 'ui/run/RunShow/OrderStore/index';\nimport { getRunProfits } from 'ui/run/RunShow/OrderStore/analytics/index';\nimport classNames from 'classnames';\nimport RunSummaryChart from './RunSummaryChart';\nimport MetricsPanel from './MetricsPanel';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\n\nconst RunShowSummary = () => {\n const { isLoading, metrics, transactions } = useContext(OrderContext);\n\n const runProfits = !isLoading ? getRunProfits(transactions) : [];\n \n const isEmptyRunProfits = _.isEmpty(runProfits);\n const runSummaryClassName = classNames('run-summary-inner', { 'text-center': isEmptyRunProfits });\n\n const renderMetrics = () => ;\n \n return (\n
    \n
    \n
    \n
    \n  \n Run Summary\n  \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    {renderMetrics()}
    \n
    \n
    \n );\n};\n\nRunShowSummary.propTypes = propTypes;\nRunShowSummary.defaultProps = defaultProps;\n\nexport default RunShowSummary;\n","import _ from 'lodash';\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport getFormattedDate from 'common/utils/dateFormat';\nimport { OrderContext } from 'ui/run/RunShow/OrderStore/index';\nimport { getRunProfits } from 'ui/run/RunShow/OrderStore/analytics/index';\nimport { runPropTypes } from 'common/propTypes';\nimport MetricsPanel from './MetricsPanel';\nimport RunSummaryChart from './RunSummaryChart';\nimport RunShowSummary from './RunShowSummary';\n\nconst propTypes = {\n type: PropTypes.string,\n name: PropTypes.string,\n startDate: PropTypes.string,\n endDate: PropTypes.string,\n description: PropTypes.string,\n run: runPropTypes\n};\nconst defaultProps = {\n type: '',\n name: '',\n startDate: '',\n endDate: '',\n description: '',\n run: {}\n};\n\nconst RunSummary = ({\n type, name, startDate, endDate, description\n}) => {\n // runsummary component will be used for multiple place\n // 1. context child component ? description comes ? it is profitable strategy from dashboard ?\n // or else not runshow view ? below see seperate renders\n\n const { isLoading, metrics, transactions } = useContext(OrderContext);\n\n const runProfits = !isLoading ? getRunProfits(transactions) : [];\n const isEmptyRunProfits = _.isEmpty(runProfits);\n\n const renderMetrics = () => ;\n\n const renderShowCase = () => {\n return (\n <>\n
    \n
    \n
    \n
    {name}
    \n
    \n date_range \n {getFormattedDate(startDate)}\n  \n to\n  \n {getFormattedDate(endDate)}\n
    \n

    {description}

    \n
    \n
    \n
    \n \n
    \n
    \n
    {renderMetrics()}
    \n \n );\n };\n\n const renderRunShow = () => {\n return ;\n };\n\n const renderShowPage = () => {\n switch (type) {\n case 'ShowCase': return renderShowCase();\n default: return renderRunShow();\n }\n };\n\n return (!isEmptyRunProfits || isLoading) && renderShowPage();\n};\n\nRunSummary.propTypes = propTypes;\nRunSummary.defaultProps = defaultProps;\n\nexport default RunSummary;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n __proto__: null,\n 'double': '\"',\n single: \"'\"\n};\nvar quoteREs = {\n __proto__: null,\n 'double': /([\"\\\\])/g,\n single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var style = opts.quoteStyle || defaultStyle;\n var quoteChar = quotes[style];\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n quoteRE.lastIndex = 0;\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? { __proto__: null } : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object' && typeof source !== 'function') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if (\n (options && (options.plainObjects || options.allowPrototypes))\n || !has.call(Object.prototype, source)\n ) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n commaRoundTrip: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n filter: void undefined,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n ? key.value\n : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = obj[key];\n\n if (options.skipNulls && value === null) {\n continue;\n }\n pushToArray(keys, stringify(\n value,\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false,\n throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(\n options.delimiter,\n options.throwOnLimitExceeded ? limit + 1 : limit\n );\n\n if (options.throwOnLimitExceeded && parts.length > limit) {\n throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n }\n\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key;\n var val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n val = utils.maybeMap(\n parseArrayValue(\n part.slice(pos + 1),\n options,\n isArray(obj[key]) ? obj[key].length : 0\n ),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(String(val));\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var currentArrayLength = 0;\n if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n var parentKey = chain.slice(0, -1).join('');\n currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n }\n\n var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : utils.combine([], leaf);\n } else {\n obj = options.plainObjects ? { __proto__: null } : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n }\n\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? { __proto__: null } : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? { __proto__: null } : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","import _ from 'lodash';\nimport qs from 'qs';\n\nexport const updateUrlQueryParams = (key, value, isReplaceState = false) => {\n const queryParams = new URLSearchParams(window.location.search);\n queryParams.set(key, value);\n\n // Replace current querystring with the new one.\n if (isReplaceState) {\n window.history.replaceState(null, null, `?${queryParams.toString()}`);\n } else {\n window.history.pushState(null, null, `?${queryParams.toString()}`);\n }\n};\n\nexport const getUrlParams = () => {\n const queryString = window.location.search;\n const parsedQueryString = qs.parse(queryString, { parseBooleans: true });\n const removedSpecialCharacters = _.reduce(parsedQueryString, (result, value, key) => {\n \n result[key.replace(/[^a-zA-Z0-9 ]/g, '')] = value;\n return result;\n }, {});\n\n return removedSpecialCharacters;\n};\n\nexport const toQueryString = (params) => {\n return _.map(params, (value, key) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');\n};\n","// TODO: rename\nimport wrappedFetch from './base';\n\nexport const getFolders = () => {\n return wrappedFetch('/folders.json')\n .then((response) => response.json());\n};\n\nexport const createFolder = (name) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ name }),\n };\n\n return wrappedFetch('/folders.json', config);\n};\n\nexport const updateFolder = ({ folderId, folder }) => {\n const config = {\n method: 'PUT',\n body: JSON.stringify(folder),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n return wrappedFetch(`/folders/${folderId}.json`, config);\n};\n\nexport const deleteFolder = ({ folderId }) => {\n return wrappedFetch(`/folders/${folderId}.json`, { method: 'DELETE' });\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport { Card, Accordion } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element)\n ]),\n defaultOpen: PropTypes.bool,\n headerRightSectionContent: PropTypes.element,\n title: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n PropTypes.string,\n ]),\n isInvalid: PropTypes.bool,\n onToggle: PropTypes.func,\n headerRightIconSection: PropTypes.element,\n isDisabledOnClick: PropTypes.bool\n};\n\nconst defaultProps = {\n children: null,\n defaultOpen: false,\n headerRightSectionContent: null,\n title: '',\n isDisabledOnClick: false,\n isInvalid: false,\n onToggle: _.noop,\n headerRightIconSection: null\n};\n\nexport default class ArrowAccordion extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n isOpen: props.defaultOpen,\n defaultOpenFromProps: props.defaultOpen\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state.defaultOpenFromProps === props.defaultOpen) return null;\n\n props.onToggle(props.defaultOpen);\n return {\n isOpen: props.defaultOpen,\n defaultOpenFromProps: props.defaultOpen\n };\n }\n\n onClick = (event) => {\n const { onToggle } = this.props;\n const { isOpen } = this.state;\n\n const shouldToggleForEvent = () => {\n const isClickedOnPreventedIcon = $(event.target).closest('.prevent-collapse').length > 0;\n return !isClickedOnPreventedIcon;\n };\n\n if (shouldToggleForEvent()) {\n this.setState({ isOpen: !isOpen });\n onToggle(!isOpen);\n }\n }\n\n render() {\n const { isOpen } = this.state;\n const {\n title, headerRightSectionContent, children, isInvalid, headerRightIconSection, isDisabledOnClick\n } = this.props;\n\n const headerClassNames = classNames(\n { open: isOpen }\n );\n const accordionClass = `common-component-arrow-accordion ${isInvalid ? 'border-danger' : ''}`;\n\n return (\n \n {} : this.onClick}>\n
    \n {title}\n
    \n {headerRightSectionContent}\n {headerRightIconSection}\n
    \n \n {isOpen && children}\n \n
    \n );\n }\n}\n\nArrowAccordion.propTypes = propTypes;\nArrowAccordion.defaultProps = defaultProps;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n text: PropTypes.string.isRequired,\n maxCharacter: PropTypes.number,\n};\nconst defaultProps = {\n maxCharacter: 0,\n};\n\nconst TruncateText = ({ text }) => {\n const textRef = useRef();\n const [tooltipProps, setTooltipProps] = useState({});\n\n useEffect(() => {\n const {\n offsetWidth,\n parentNode: { offsetWidth: parentWidth }\n } = textRef.current;\n\n if (offsetWidth > parentWidth) {\n setTooltipProps({\n 'data-toggle': 'tooltip',\n title: text\n });\n }\n }, []);\n\n return (\n
    \n \n {text}\n \n
    \n );\n};\n\nTruncateText.propTypes = propTypes;\nTruncateText.defaultProps = defaultProps;\n\nexport default TruncateText;\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport TruncateText from 'common/components/TruncateText';\n\nconst propTypes = {\n text: PropTypes.string,\n tooltip: PropTypes.string,\n onUpdate: PropTypes.func,\n isUpdating: PropTypes.bool,\n isShowEditIcon: PropTypes.bool\n};\nconst defaultProps = {\n text: '',\n tooltip: 'Edit...',\n onUpdate: _.noop,\n isUpdating: false,\n isShowEditIcon: true\n};\n\nclass InlineEdit extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isEditing: false,\n currentText: props.text,\n };\n }\n\n onTextInputChange = (event) => {\n event.preventDefault();\n this.setState({ currentText: event.target.value });\n }\n\n handleKeyDown = (event) => {\n if (event.key === 'Enter') {\n const { currentText } = this.state;\n const { onUpdate } = this.props;\n\n onUpdate(currentText);\n this.setState({ isEditing: false });\n }\n }\n\n onUpdateNewText = (event) => {\n event.preventDefault();\n const { currentText } = this.state;\n const { onUpdate } = this.props;\n\n onUpdate(currentText);\n this.setState({ isEditing: false });\n }\n\n onCloseInputField = (event) => {\n const { text } = this.props;\n\n event.preventDefault();\n this.setState({ currentText: text, isEditing: false });\n }\n\n onEditBtnClick = (event) => {\n event.preventDefault();\n this.setState({ isEditing: true });\n setTimeout(() => (this.inputBoxRef && this.inputBoxRef.focus()), 50);\n }\n\n renderTextInputField = () => {\n const { currentText } = this.state;\n return (\n
    \n
    \n event.preventDefault()}\n onKeyDown={this.handleKeyDown}\n ref={(ref) => { this.inputBoxRef = ref; }}\n />\n\n
    \n \n done\n \n\n \n close \n \n
    \n
    \n
    \n );\n }\n\n renderLabel = () => {\n const {\n text, isUpdating, tooltip, isShowEditIcon\n } = this.props;\n return (\n
    \n \n {isShowEditIcon && (\n \n {isUpdating\n ?
    \n : (\n \n edit\n \n )}\n \n )}\n
    \n );\n }\n\n render() {\n const { isEditing } = this.state;\n return (\n
    \n {isEditing ? this.renderTextInputField() : this.renderLabel()}\n
    \n );\n }\n}\n\nInlineEdit.propTypes = propTypes;\nInlineEdit.defaultProps = defaultProps;\nexport default InlineEdit;\n","\nexport const SORT_BY = {\n name: 'display_name',\n profit: 'summary.profit',\n createdAt: 'created_at'\n};\n\nexport const TABLE_HEADER = [\n { title: '' },\n { title: 'Name & details', sortByKey: SORT_BY.name },\n { title: 'Order Type' },\n { title: 'Instruments', },\n { title: 'Created At', sortByKey: SORT_BY.createdAt },\n { title: 'Status' }\n];\n\nexport const VIEW_TYPE = {\n list: 'list',\n grid: 'grid'\n};\n\nexport const DESKTOP_WIDTH = 1024;\n\nexport const showByOption = [\n { displayName: 'Running Strategies', value: 'running_live_runs' },\n // { displayName: 'Oneclick/Automatic', value: 'actual_live_runs' },\n // { displayName: 'Paper', value: 'paper' },\n { displayName: 'Backtest', value: 'historic' },\n { displayName: 'All', value: 'all' }\n];\n","import _ from 'lodash';\nexport const RUN_STATUS_CODES = {\n ERRORED: 'errored',\n COMPLETED: 'completed',\n REMOVED: 'removed',\n KILLED: 'killed',\n STOPPED: 'stopped',\n STARTED: 'started',\n RESTARTING: 'restarting',\n QUEUED: 'queued',\n HOPPING: 'hopping',\n STARTING: 'starting',\n NOT_QUEUED: 'not_queued',\n SERVER_STOP: 'server_stop',\n PAUSED: 'paused'\n};\n\nexport const RUN_FINISHED_STATUSES = [\n RUN_STATUS_CODES.ERRORED,\n RUN_STATUS_CODES.COMPLETED,\n RUN_STATUS_CODES.REMOVED,\n RUN_STATUS_CODES.KILLED,\n RUN_STATUS_CODES.STOPPED\n];\n\nexport const RUN_IN_PROGRESS_STATUS = [\n RUN_STATUS_CODES.RESTARTING,\n RUN_STATUS_CODES.QUEUED,\n RUN_STATUS_CODES.STARTED,\n RUN_STATUS_CODES.HOPPING,\n RUN_STATUS_CODES.STARTING,\n RUN_STATUS_CODES.PAUSED,\n RUN_STATUS_CODES.SERVER_STOP\n];\n\nexport const RUN_UNFINISHED_STATUSES = [...RUN_IN_PROGRESS_STATUS, RUN_STATUS_CODES.NOT_QUEUED];\n\nexport const runStatusColorCode = (status) => {\n switch (status) {\n case RUN_STATUS_CODES.ERRORED:\n return { statusText: _.startCase(status), statusClassName: 'bg-danger' };\n case RUN_STATUS_CODES.COMPLETED:\n return { statusText: _.startCase(status), statusClassName: 'bg-success' };\n case RUN_STATUS_CODES.REMOVED:\n return { statusText: _.startCase(status), statusClassName: 'bg-danger' };\n case RUN_STATUS_CODES.KILLED:\n return { statusText: _.startCase(status), statusClassName: 'bg-danger' };\n case RUN_STATUS_CODES.STOPPED:\n return { statusText: _.startCase(status), statusClassName: 'bg-success' };\n case RUN_STATUS_CODES.STARTED:\n return { statusText: _.startCase(status), statusClassName: 'bg-info' };\n case RUN_STATUS_CODES.RESTARTING:\n return { statusText: _.startCase(status), statusClassName: 'bg-danger' };\n case RUN_STATUS_CODES.QUEUED:\n return { statusText: _.startCase(status), statusClassName: 'bg-dark' };\n case RUN_STATUS_CODES.HOPPING:\n return { statusText: _.startCase(RUN_STATUS_CODES.STARTING), statusClassName: 'bg-dark' };\n case RUN_STATUS_CODES.STARTING:\n return { statusText: _.startCase(status), statusClassName: 'bg-dark' };\n case RUN_STATUS_CODES.NOT_QUEUED:\n return { statusText: _.startCase(status), statusClassName: 'bg-danger' };\n case RUN_STATUS_CODES.PAUSED:\n return { statusText: _.startCase(status), statusClassName: 'bg-dark' };\n case RUN_STATUS_CODES.SERVER_STOP:\n return { statusText: _.startCase(status), statusClassName: 'bg-dark' };\n default:\n return { statusText: status ? _.startCase(status) : '-', statusClassName: 'text-success' };\n }\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\n\nconst propTypes = {\n title: PropTypes.string,\n message: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node\n ]),\n children: PropTypes.element.isRequired,\n isOpen: PropTypes.bool,\n popClassName: PropTypes.string\n};\nconst defaultProps = {\n isOpen: false,\n message: null,\n popClassName: '',\n title: ''\n};\n\nconst getPopover = (title, message, popClassName) => {\n return (\n \n {_.startCase(title)}\n \n {message}\n \n \n );\n};\n\nconst HoverMessage = (props) => {\n const {\n title, message, isOpen, children, popClassName\n } = props;\n const getIsShow = isOpen ? { show: true } : {};\n\n return (\n \n {children}\n \n );\n};\n\nHoverMessage.propTypes = propTypes;\nHoverMessage.defaultProps = defaultProps;\n\nexport default HoverMessage;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { RUN_FINISHED_STATUSES } from 'common/configs/runStatus';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ModalComponent from 'common/components/ModalComponent';\n\nconst propTypes = {\n isRunBelongsToUser: PropTypes.bool.isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n status: PropTypes.string,\n isMarketPlaceAuthorRun: PropTypes.bool\n};\nconst defaultProps = { status: '', isMarketPlaceAuthorRun: false };\n\nconst DeleteRunBtn = ({\n isRunBelongsToUser, onDeleteRun, status, isMarketPlaceAuthorRun\n}) => {\n if (!isRunBelongsToUser) return null;\n\n const [isShowModal, setIsShowModal] = useState(false);\n\n const content = isMarketPlaceAuthorRun\n ? 'Strategy has dependencies' : 'Please stop the strategy and delete it';\n\n const isDisabled = !_.includes(RUN_FINISHED_STATUSES, status) || isMarketPlaceAuthorRun;\n\n const modalProps = {\n title: 'Delete Confirmation',\n size: 'sm',\n shouldShow: isShowModal,\n onClose: () => { setIsShowModal(false); },\n okBtnTitle: 'Delete Deployment',\n onSave: () => { onDeleteRun(); },\n };\n\n const renderModal = () => {\n return (\n \n
    \n \"Delete\"\n

    \n Once you delete the deployment, it cannot be reverted. Please make sure to delete the deployment\n

    \n
    \n
    \n );\n };\n\n const renderButton = () => {\n return (\n { setIsShowModal(true); }}\n >\n delete_forever\n Delete\n \n );\n };\n\n if (!isDisabled) {\n return (\n
    \n {renderButton()}\n {renderModal()}\n
    \n );\n }\n\n return {renderButton()};\n};\n\nDeleteRunBtn.propTypes = propTypes;\nDeleteRunBtn.defaultProps = defaultProps;\n\nexport default DeleteRunBtn;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n error: PropTypes.shape({\n message: PropTypes.string\n })\n};\nconst defaultProps = {\n error: null\n};\n\nconst ErrorMesssage = ({ error }) => (\n
    \n {_.get(error, 'message', null)}\n
    \n);\n\nexport default ErrorMesssage;\n\nErrorMesssage.propTypes = propTypes;\nErrorMesssage.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport classNames from 'classnames';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { Spinner } from 'react-bootstrap';\nimport { useFormContext, Controller } from 'react-hook-form';\n\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { createFolder, getFolders } from 'common/api/folder';\n\nconst propTypes = {\n selectedFolder: PropTypes.shape({ id: PropTypes.number, name: PropTypes.string }),\n onSelect: PropTypes.func.isRequired,\n isUserLoggedIn: PropTypes.bool,\n isValid: PropTypes.bool\n};\nconst defaultProps = {\n selectedFolder: null,\n isValid: true,\n isUserLoggedIn: true,\n};\n\nconst FolderSelector = (props) => {\n const {\n isUserLoggedIn, selectedFolder, isValid, onSelect\n } = props;\n const selectorId = _.uniqueId('folder-selector-');\n const [folders, setFolders] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const { errors, control } = useFormContext();\n const selectedOptions = selectedFolder ? [_.get(selectedFolder, 'name')] : [];\n const loadingClassNames = classNames('folder-selector position-relative w-100',\n { 'is-loading': isLoading });\n\n useEffect(() => {\n if (!isUserLoggedIn) return;\n\n setIsLoading(true);\n getFolders().then((fetchedFolders) => {\n setFolders(fetchedFolders);\n setIsLoading(false);\n });\n }, [isUserLoggedIn]);\n\n const onSelectFolder = (selectedFolderArray, onChange) => {\n if (_.isEmpty(selectedFolderArray)) return;\n\n const selectedArrayInitialObj = _.head(selectedFolderArray);\n const selectedFolderName = _.isObject(selectedArrayInitialObj)\n ? _.get(selectedArrayInitialObj, 'label', '') : selectedArrayInitialObj;\n\n if (!_.isObject(selectedArrayInitialObj)) { // already have folder select\n onSelect(_.find(folders, { name: selectedFolderName }));\n onChange(selectedFolderName);\n return;\n }\n\n // created new folder.. and then select\n const customOption = _.get(selectedArrayInitialObj, 'customOption', false);\n if (customOption && selectedFolderName) {\n setIsLoading(true);\n createFolder(selectedFolderName)\n .then(() => getFolders())\n .then((newlyFetchedFolders) => {\n const selectedNewlyCreatedFolder = _.find(newlyFetchedFolders, { name: selectedFolderName });\n setFolders(newlyFetchedFolders);\n setIsLoading(false);\n onSelect(selectedNewlyCreatedFolder);\n onChange(selectedFolderName);\n });\n }\n };\n\n return (\n
    \n
    \n \n
    \n (\n {\n onSelectFolder(newFolderName, onChange);\n }}\n />\n )}\n control={control}\n defaultValue={selectedOptions}\n name=\"folder-selector\"\n rules={{ required: { value: true, message: 'Please select or create a new folder' } }}\n />\n \n
    \n );\n};\n\nFolderSelector.propTypes = propTypes;\nFolderSelector.defaultProps = defaultProps;\nexport default FolderSelector;\n","import _ from 'lodash';\nimport qs from 'qs';\nimport axios from 'axios';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport wrappedFetch from './base';\n\nexport const getRuns = ({ params }) => {\n const queryParams = { ...params };\n\n return wrappedFetch(`/runs.json?${qs.stringify(queryParams)}`)\n .then((response) => response.json());\n};\n\nexport const createRun = (runParams) => {\n return axios({\n method: 'post',\n url: '/runs.json',\n data: JSON.stringify({ run: runParams }),\n headers: { 'Content-Type': 'application/json' }\n }).then((response) => {\n const { id } = response.data;\n\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n if (isMinifiedPage) {\n window.location.href = `/runs/${id}?minifiedpage=true`;\n } else {\n window.location.href = `/runs/${id}`;\n }\n });\n};\n\nexport const deleteRun = ({ runId, successCallBack }) => {\n const url = `/runs/${runId}.json`;\n const options = { method: 'DELETE', credentials: 'same-origin' };\n\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n\n return wrappedFetch(url, options).then(() => {\n if (_.isFunction(successCallBack)) {\n successCallBack();\n } else {\n try {\n if (isMinifiedPage) window.location.href =\n `/strategies/?minifiedpage=true`;\n else if (window.history.back()) window.history.back();\n else window.location.pathname = '/folders';\n } catch { window.location.pathname = '/folders'; }\n }\n }).catch((error) => {\n try {\n error.json().then((data) => {\n const errors = _.get(data, 'errors.error', []);\n const errorMessages = _.get(errors, '0', '');\n\n if (errorMessages) { reactToastify(errorMessages, TOASTIFY_TYPES.ERROR); }\n });\n } catch {\n // may be 500 or 405 error code...\n reactToastify('Something went wrong unable to delete Run', TOASTIFY_TYPES.ERROR);\n }\n });\n};\n\nexport const deleteMultipleRuns = ({ runIds, successCallBack }) => {\n const url = '/runs/delete_multiple_runs';\n const options = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ run_ids: runIds }),\n };\n\n return wrappedFetch(url, options)\n .then((response) => response.json())\n .then((res) => {\n if (_.isFunction(successCallBack)) {\n successCallBack();\n } else {\n const deletedRunIds = _.get(res, 'deleted_run_ids', []);\n let message = 'Run deleted successfully';\n let messageType = TOASTIFY_TYPES.SUCCESS;\n\n if (deletedRunIds.length === 0) {\n message = 'Unable to delete runs';\n messageType = TOASTIFY_TYPES.ERROR;\n } else if (deletedRunIds.length !== runIds.length) {\n message = 'Runs partially deleted';\n messageType = TOASTIFY_TYPES.WARNING;\n }\n\n try {\n if (message) { reactToastify(message, messageType); }\n setTimeout(() => {\n if (window.history.back()) window.history.back();\n else window.location.pathname = '/folders';\n }, 2000);\n } catch (err) { console.log('err: ', err); }\n }\n }).catch((error) => {\n try {\n error.json().then((data) => {\n const errors = _.get(data, 'errors.error', []);\n const errorMessages = _.get(errors, '0', '');\n\n if (errorMessages) { reactToastify(errorMessages, TOASTIFY_TYPES.ERROR); }\n });\n } catch {\n // may be 500 or 405 error code...\n reactToastify('Something went wrong unable to delete Run', TOASTIFY_TYPES.ERROR);\n }\n });\n};\n\nexport const updateTradeSkipDates = (params, runId) => {\n const url = `/runs/${runId}/update_trade_skip_date.json`;\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ trade_skip_dates: params })\n };\n\n return wrappedFetch(url, options);\n};\n\nexport const updateRun = ({ runId, run }) => {\n const url = `/runs/${runId}.json`;\n const options = {\n method: 'PUT',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ run })\n };\n\n return wrappedFetch(url, options);\n};\n\nexport const moveRunToAnotherFolder = (args) => {\n const uri = '/runs/move_runs_to_another_folder';\n\n const params = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ...args })\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const onReStartRun = (params, runId, callback) => {\n const url = `/runs/${runId}/restart.json`;\n\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ...params })\n };\n\n return wrappedFetch(url, options)\n .then((response) => response.json())\n .then((response) => {\n const { status, errors } = response;\n if (status) {\n if (callback) { callback(); } else setTimeout(() => { window.location.reload(); }, 1000);\n } else {\n const errorMessages = _.join(_.map(errors, '0'), ', ');\n if (errorMessages) reactToastify(errorMessages, TOASTIFY_TYPES.ERROR);\n }\n }).catch(() => {\n // when 404, Not the current run.. to catch will execute..\n reactToastify('Unauthorized to restart', TOASTIFY_TYPES.ERROR);\n });\n};\n\nexport const getLastTransaction = (runId) => {\n const url = `/runs/${runId}/get_last_transaction.json`;\n\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({})\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n\nexport const getLastTransactionForMultipleRuns = (runIds) => {\n const url = '/runs/get_last_transaction_for_multiple_runs.json';\n\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ run_ids: runIds })\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n\nexport const getRunningLiveRuns = () => {\n return wrappedFetch('/runs/get_live_running_runs')\n .then((response) => response.json());\n};\n\nexport const getNumerousRuns = (params) => {\n const url = '/runs/get_numerous_runs';\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ...params })\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n\nexport const onRunForceExit = (runId) => {\n const url = `/runs/${runId}/manual_square_off_open_positions.json`;\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: ''\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n\nexport const onLegForceExit = (jobId, orderId) => {\n // orderId is combination of order details which also contains #, so we encode it.\n const url = `/jobs/${jobId}/orders/${encodeURIComponent(orderId)}/manual_square_off_order_leg`;\n const options = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: ''\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n\nexport const onStopQuant = (runId, callBack) => {\n axios.post(`/runs/${runId}/stop.json`).finally(() => {\n if (callBack) { callBack(); } else setTimeout(() => window.location.reload(), 500);\n // Wait for the job to complete and update the status.\n });\n};\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport FolderSelector from 'common/components/FolderSelector';\nimport { moveRunToAnotherFolder } from 'common/api/run';\n\nconst propTypes = {\n onClose: PropTypes.func.isRequired,\n runIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n folderName: PropTypes.string.isRequired,\n displayName: PropTypes.string\n};\n\nconst defaultProps = { displayName: '' };\n\nconst MoveFolderModal = ({\n onClose, runIds, folderName, displayName\n}) => {\n const methods = useForm();\n const oneIndentation = ' ';\n\n const [selectedFolder, setSelectedFolder] = useState(undefined);\n const [isValid, setIsValid] = useState(true);\n\n const onSave = () => {\n if (!selectedFolder) return setIsValid(false);\n\n const { id } = selectedFolder;\n\n moveRunToAnotherFolder(\n { run_ids: runIds, folder_id: id }\n ).then((result) => {\n const { status } = result;\n if (status) window.location.href = `/folders?folder_id=${id}`;\n });\n\n return null;\n };\n\n return (\n \n onSave()}\n okBtnTitle=\"Move\"\n >\n <>\n
    \n Move\n {oneIndentation}\n arrow_right\n \n {oneIndentation}\n {folderName}\n \n {displayName && (\n <>\n arrow_right\n \n {displayName}\n \n \n )}\n to\n \n {selectedFolder ? selectedFolder.name : null}\n \n
    \n \n setSelectedFolder(newFolder)}\n />\n {!isValid &&
    *Please enter the folder name
    }\n \n \n
    \n );\n};\n\nMoveFolderModal.propTypes = propTypes;\nMoveFolderModal.defaultProps = defaultProps;\n\nexport default MoveFolderModal;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { runPropTypes } from 'common/propTypes';\nimport DeleteRunBtn from 'ui/run/RunShow/components/RunTitleAndActions/DeleteRunBtn';\nimport MoveFolderModal from './RunListView/MoveFolderModal';\n\nconst propTypes = {\n onUpdateRun: PropTypes.func.isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n run: runPropTypes.isRequired,\n folderName: PropTypes.string.isRequired\n};\nconst defaultProps = {};\nconst ActionBtns = ({\n onDeleteRun, run, onUpdateRun, folderName\n}) => {\n const {\n folder_id: folderId, id, is_starred: isStarred, display_name: displayName, status\n } = run;\n const isMarketPlaceSubscribedRun = _.get(run, 'is_strategy_subscriber', false);\n const isMarketPlaceAuthorRun = _.get(run, 'is_strategy_author', false);\n\n const favoriteIconClassNames = classNames(isStarred ? 'favorite' : 'favorite_border');\n const [isMoveFolder, setIsMoveFolder] = useState(false);\n\n return (\n
    \n onUpdateRun(run, 'is_starred', !isStarred)}\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n title=\"Add My Strategies\"\n >\n {favoriteIconClassNames}\n \n\n {!isMarketPlaceSubscribedRun && (\n \n file_copy\n \n )}\n setIsMoveFolder(true)}\n >\n drive_file_move_rtl\n \n\n onDeleteRun(run)}\n status={status}\n isMarketPlaceAuthorRun={isMarketPlaceAuthorRun}\n />\n\n {isMoveFolder && (\n setIsMoveFolder(false)}\n />\n )}\n
    \n );\n};\nActionBtns.propTypes = propTypes;\nActionBtns.defaultProps = defaultProps;\nexport default ActionBtns;\n","import _ from 'lodash';\nimport { QUOTA_FOR_SECOND_WISE_BACKTEST, RUN_TYPES } from 'common/constants/index';\nimport moment from 'moment';\n\nexport const isIndexInstrumentPresentInQuantInstrumentGroups = (quantInstrumentGroups) => {\n if (_.isEmpty(quantInstrumentGroups)) return false;\n\n const { indexInstruments } = window;\n const instruments = _.flattenDeep(quantInstrumentGroups);\n\n const difference = _.filter(instruments, (\n instrument\n ) => !_.includes(indexInstruments, instrument)); // take not matching instruments\n // eg: quant ['ICICIBANK', 'BANKNIFTY'] .. index instrument = ['BANKNIFTY'] .. result ['ICICIBANK']\n\n if (_.isEmpty(difference)) return true;\n\n return false;\n};\n\nexport const equityNotPossibleInstruments = window.indexInstruments;\n\nexport const checkInstrumentPossibleForEquity = (quantInstrumentGroups) => {\n const instruments = _.flattenDeep(quantInstrumentGroups);\n\n const difference = _.filter(instruments, (\n instrument\n ) => _.includes(equityNotPossibleInstruments, instrument));\n\n if (_.isEmpty(difference)) return true;\n\n return false;\n};\n\nexport const removeExchangeFromInstrument = (instrument) => {\n return _.replace(instrument, /NFO:|BFO:/g, '');\n};\n\nexport const getQuotaConsumption = (\n runType, startDate, endDate, granularity, instrumentGroups = [], cases = [],\n) => {\n const numberOfInstruments = _.size(_.flattenDeep(instrumentGroups));\n const numberOfCases = _.isEmpty(cases) ? 1 : _.size(cases);\n\n if (runType === RUN_TYPES.live) {\n return {\n requiredQuota: numberOfInstruments * numberOfCases,\n quotaBreakout: { numberOfInstruments, numberOfCases }\n };\n }\n\n const numberOfCreditsForGranularitySecond = granularity === 'second' ? QUOTA_FOR_SECOND_WISE_BACKTEST : 1;\n\n const years = _.max([1, Math.ceil(Number(moment(endDate).diff(moment(startDate), 'days') / 366.0))]);\n const requiredQuota = numberOfInstruments * years * numberOfCases * numberOfCreditsForGranularitySecond;\n\n return {\n requiredQuota,\n quotaBreakout: {\n numberOfInstruments, years, numberOfCases, numberOfCreditsForGranularitySecond\n }\n };\n};\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport { removeExchangeFromInstrument } from 'common/utils/InstrumentUtils';\nimport withErrorBoundary from './withErrorBoundary/index';\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes,\n};\nconst defaultProps = {\n instrumentGroups: [[]]\n};\n\nconst InstrumentGroupsSentence = ({ instrumentGroups }) => {\n if (_.isEmpty(instrumentGroups)) {\n return (\n
    (None)
    \n );\n }\n\n return _.map(instrumentGroups, (instrumentGroup, index) => {\n const sanitizeInstrumentGroup = _.map(instrumentGroup,\n (instrument) => removeExchangeFromInstrument(instrument));\n\n return (\n \n {sanitizeInstrumentGroup.join('-')}\n {index !== instrumentGroups.length - 1 && ', '}\n \n );\n });\n};\n\nInstrumentGroupsSentence.propTypes = propTypes;\nInstrumentGroupsSentence.defaultProps = defaultProps;\n\nexport default withErrorBoundary(InstrumentGroupsSentence, 'Company', false);\n","import _ from 'lodash';\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n orderType: PropTypes.string,\n isBacktest: PropTypes.bool\n};\nconst defaultProps = {\n orderType: '',\n isBacktest: false\n};\n\nconst RenderOrderTypeBadge = ({ orderType, isBacktest }) => {\n const type = _.capitalize(orderType);\n const badgeClasses = {\n Automatic: 'badge badge-dark',\n Backtest: 'badge badge-secondary',\n Historic: 'badge badge-secondary',\n Paper: 'badge badge-info',\n };\n\n const badgeClass = isBacktest\n ? 'badge badge-secondary'\n : badgeClasses[type] || 'badge badge-light';\n\n return (\n {isBacktest ? 'Backtest' : type}\n );\n};\n\nRenderOrderTypeBadge.propTypes = propTypes;\nRenderOrderTypeBadge.defaultProps = defaultProps;\n\nexport default memo(RenderOrderTypeBadge);\n","import _ from 'lodash';\nimport React from 'react';\nimport { RUN_TYPES } from 'v2/common/constants/index';\nimport { runPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport withErrorBoundary from './withErrorBoundary/index';\nimport RenderOrderTypeBadge from './RenderOrderTypeBadge';\n\nconst propTypes = {\n run: runPropTypes.isRequired\n};\nconst defaultProps = {};\n\nconst RunListOrderType = ({ run }) => {\n const {\n run_type: runType,\n order_type: orderType,\n summary\n } = run;\n\n const profit = _.get(summary, 'profit', 0);\n const isBacktest = runType === RUN_TYPES.historic;\n\n const moneyStyle = classNames('mt-1', {\n 'text-success': profit > 0,\n 'text-danger ': profit <= 0,\n });\n\n const renderRunListOrderType = (\n
    \n {}\n {isBacktest && (\n
    \n {profit}\n
    \n )}\n
    \n );\n\n return renderRunListOrderType;\n};\n\nexport default withErrorBoundary(RunListOrderType, 'Errored', false);\n\nRunListOrderType.propTypes = propTypes;\nRunListOrderType.defaultProps = defaultProps;\n","import _ from 'lodash';\n// vendor imports\nimport React, { useState } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\n// project imports\nimport { runPropTypes } from 'common/propTypes';\nimport ActionBtns from 'ui/FolderList/RunList/ActionBtns';\nimport InlineEdit from 'common/components/InlineEdit';\nimport InstrumentGroupsSentence from 'common/components/InstrumentGroupsSentence';\nimport getFormattedDate from 'common/utils/dateFormat';\nimport { runStatusColorCode } from 'common/configs/runStatus';\nimport {\n BACK_TEST_ICON, LIVE_ICON, MARKET_PLACE_ICON, RUN_TYPES\n} from 'common/constants/index';\nimport classNames from 'classnames';\nimport RunListOrderType from 'common/components/RunListOrderType';\n\nconst propTypes = {\n run: runPropTypes.isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n onUpdateRun: PropTypes.func.isRequired,\n folderName: PropTypes.string.isRequired,\n onSelectRuns: PropTypes.func.isRequired,\n isFilteredRuns: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst renderDates = (startDate, endDate) => (\n <>\n {getFormattedDate(startDate)}\n  \n -\n  \n {getFormattedDate(endDate)}\n \n);\n\nconst RunListViewBody = ({\n run, onDeleteRun, onUpdateRun, folderName, onSelectRuns, isFilteredRuns\n}) => {\n const {\n id,\n name,\n display_name: displayName,\n run_type: runType,\n created_at: createdAt,\n status,\n start_date: startDate,\n end_date: endDate,\n strategy_id: strategyId,\n is_individual_deployed_run: isIndividualDeployedRun\n } = run;\n const isBacktest = runType === RUN_TYPES.historic;\n const instrumentGroups = _.get(run, 'instrument_groups', []);\n const { statusText, statusClassName } = runStatusColorCode(status);\n const [checked, setChecked] = useState(false);\n\n const getIcon = () => {\n if (!isIndividualDeployedRun) return MARKET_PLACE_ICON;\n if (isBacktest) return BACK_TEST_ICON;\n\n return LIVE_ICON;\n };\n\n const listClassName = classNames('list-row', { 'marketplace-run': !isIndividualDeployedRun });\n\n const handleRunSelect = (runId) => {\n onSelectRuns(runId, !checked);\n setChecked(!checked);\n };\n\n return (\n \n );\n};\n\nRunListViewBody.propTypes = propTypes;\nRunListViewBody.defaultProps = defaultProps;\n\nexport default RunListViewBody;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { TABLE_HEADER, SORT_BY } from 'ui/FolderList/config';\nimport RunListViewBody from './RunListViewBody';\n\nconst propTypes = {\n runs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n onUpdateRun: PropTypes.func.isRequired,\n onSelectRuns: PropTypes.func.isRequired,\n isFilteredRuns: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {};\n\nconst RunListView = (props) => {\n const {\n onDeleteRun, onUpdateRun, runs, onSelectRuns, isFilteredRuns\n } = props;\n const [sortBy, setSortBy] = useState(SORT_BY.createdAt);\n const [sortOrder, setSortOrder] = useState('desc');\n\n const sortedRun = _.orderBy(runs, sortBy, sortOrder);\n\n const onSortOptionChange = (newSortBy) => {\n if (sortBy === newSortBy) {\n setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');\n return;\n }\n\n setSortBy(newSortBy);\n setSortOrder('asc');\n };\n\n const renderTableHeader = () => {\n const alteredHeaders = isFilteredRuns\n ? _.filter(TABLE_HEADER, (value) => !_.isEmpty(value.title))\n : TABLE_HEADER;\n\n const headers = _.map(alteredHeaders, (header, idx) => {\n const style = classNames(\n { sorting: !!header.sortByKey },\n sortBy === header.sortByKey ? sortOrder : '',\n 'list-view-cell'\n );\n\n return (\n onSortOptionChange(header.sortByKey)}\n >\n {header.title}\n
    \n );\n });\n\n return (\n
    \n {headers}\n
    Actions
    \n
    \n );\n };\n\n return (\n
    \n {!_.isEmpty(runs) && renderTableHeader()}\n {_.map(sortedRun, (run, idx) => (\n \n ))}\n
    \n );\n};\n\nRunListView.propTypes = propTypes;\nRunListView.defaultProps = defaultProps;\n\nexport default RunListView;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { deleteMultipleRuns } from 'common/api/run';\nimport ModalComponent from 'common/components/ModalComponent';\n\nconst propTypes = {\n onClose: PropTypes.func.isRequired,\n runs: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst DeleteMultipleRunsModal = ({ onClose, runs }) => {\n const [deleteableRuns, setDeletableRuns] = useState(runs);\n\n const onSave = () => {\n deleteMultipleRuns({ runIds: _.map(deleteableRuns, 'id') });\n return null;\n };\n\n const modalProps = {\n title: 'Delete Confirmation',\n size: 'md',\n shouldShow: true,\n onClose: () => { onClose(); },\n okBtnTitle: 'Delete Deployment',\n onSave: () => { onSave(); },\n };\n\n const onRemoveRun = (ignoreRun) => {\n const alteredRuns = _.filter(deleteableRuns, (run) => run.id !== ignoreRun.id);\n if (_.size(alteredRuns) === 0) { onClose(); }\n setDeletableRuns(alteredRuns);\n return null;\n };\n\n const renderRun = (run) => {\n const runName = run.name || run.id;\n const iconClassName = `icons-${run.run_type === 'historic' ? 'history' : 'live'}`;\n return (\n
    \n \n
    \n {runName}\n
    \n { onRemoveRun(run); }}>\n close\n \n
    \n );\n };\n\n const renderDeletableRuns = () => {\n return (\n
    \n Deployments to delete\n
    \n {_.map(deleteableRuns, (run) => (\n renderRun(run)\n ))}\n
    \n
    \n );\n };\n\n return (\n \n
    \n \"Delete\"\n {renderDeletableRuns()}\n

    \n Once you delete the deployment, it cannot be reverted. Please make sure to delete the deployment\n

    \n
    \n
    \n );\n};\n\nDeleteMultipleRunsModal.propTypes = propTypes;\nDeleteMultipleRunsModal.defaultProps = defaultProps;\n\nexport default DeleteMultipleRunsModal;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { MAX_HISTORIC_COMBINED_RESULTS } from 'common/constants/index';\nimport MoveFolderModal from './RunListView/MoveFolderModal';\nimport DeleteMultipleRunsModal from './DeleteMultipleRunsModal';\n\nconst propTypes = {\n runs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n folder: PropTypes.shape({}).isRequired,\n};\nconst defaultProps = {};\nconst MultipleSelectionActionBtns = ({ runs, folder }) => {\n const [isMoveFolder, setIsMoveFolder] = useState(false);\n const [isDeleteRuns, setIsDeleteRuns] = useState(false);\n\n const renderMoveFolderModal = () => {\n if (!isMoveFolder) { return null; }\n const runIds = _.map(runs, 'id');\n\n return (\n { setIsMoveFolder(false); }}\n />\n );\n };\n\n const renderDeleteModal = () => {\n if (!isDeleteRuns) { return null; }\n\n return (\n { setIsDeleteRuns(false); }}\n />\n );\n };\n\n const onCombinedResults = () => {\n const historicRunIds = _.chain(runs)\n .filter({ run_type: 'historic' })\n .map('id')\n .value();\n\n const runIdsCount = _.size(historicRunIds);\n\n if (runIdsCount > MAX_HISTORIC_COMBINED_RESULTS) {\n let message = `Please choose less than ${MAX_HISTORIC_COMBINED_RESULTS} `;\n message += 'backtests to get the combined results';\n reactToastify(message, TOASTIFY_TYPES.ERROR);\n return null;\n }\n\n if (runIdsCount === 0) {\n reactToastify('Please choose a minimum of one backtest.', TOASTIFY_TYPES.ERROR);\n return null;\n }\n\n const reDirectUrl = `/numerous_runs?runids=[${historicRunIds.join(',')}]`;\n window.location.href = reDirectUrl;\n return null;\n };\n\n return (\n
    \n {renderMoveFolderModal()}\n {renderDeleteModal()}\n \n Actions\n \n
    \n { setIsDeleteRuns(true); }}\n >\n Delete selected\n \n { setIsMoveFolder(true); }}\n >\n Move selected\n \n \n Combined Results\n \n
    \n
    \n );\n};\nMultipleSelectionActionBtns.propTypes = propTypes;\nMultipleSelectionActionBtns.defaultProps = defaultProps;\nexport default MultipleSelectionActionBtns;\n","import React, { useState } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport { runPropTypes } from 'common/propTypes';\nimport InlineEdit from 'common/components/InlineEdit';\nimport { runStatusColorCode } from 'common/configs/runStatus';\nimport {\n BACK_TEST_ICON, LIVE_ICON, MARKET_PLACE_ICON, RUN_TYPES\n} from 'common/constants/index';\nimport classNames from 'classnames';\nimport RunListOrderType from 'common/components/RunListOrderType';\nimport ActionBtns from '../ActionBtns';\n\nconst propTypes = {\n run: runPropTypes.isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n onUpdateRun: PropTypes.func.isRequired,\n onSelectRuns: PropTypes.func.isRequired,\n isFilteredRuns: PropTypes.bool.isRequired\n\n};\nconst defaultProps = {};\n\nconst RunGridViewBody = ({\n onDeleteRun, onUpdateRun, onSelectRuns, isFilteredRuns, run\n}) => {\n const {\n id,\n name,\n run_type: runType,\n display_name: displayName,\n created_at: createdAt,\n status,\n start_date: startDate,\n end_date: endDate,\n folder_name: folderName,\n strategy_id: strategyId,\n is_individual_deployed_run: isIndividualDeployedRun\n } = run;\n // const textClassName = (profit >= 0) ? 'text-success' : 'text-danger';\n const isBacktest = runType === RUN_TYPES.historic;\n const { statusText, statusClassName } = runStatusColorCode(status);\n const [checked, setChecked] = useState(false);\n\n const handleRunSelect = (runId) => {\n onSelectRuns(runId, !checked);\n setChecked(!checked);\n };\n\n const getIcon = () => {\n if (!isIndividualDeployedRun) return MARKET_PLACE_ICON;\n if (isBacktest) return BACK_TEST_ICON;\n\n return LIVE_ICON;\n };\n\n const gridClassName = classNames('run-list-details', { 'marketplace-run': !isIndividualDeployedRun });\n\n return (\n \n );\n};\n\nRunGridViewBody.propTypes = propTypes;\nRunGridViewBody.defaultProps = defaultProps;\n\nexport default RunGridViewBody;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport RunGridViewBody from './RunLGridViewBody';\n\nconst propTypes = {\n runs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n onUpdateRun: PropTypes.func.isRequired,\n onSelectRuns: PropTypes.func.isRequired,\n isFilteredRuns: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst RunGridView = ({\n runs, onDeleteRun, onUpdateRun, onSelectRuns, isFilteredRuns\n}) => {\n const renderRun = (run, idx) => {\n return (\n \n );\n };\n\n return (\n
    \n {_.map(runs, renderRun)}\n
    \n );\n};\n\nRunGridView.propTypes = propTypes;\nRunGridView.defaultProps = defaultProps;\n\nexport default RunGridView;\n","import _ from 'lodash';\nimport React from 'react';\nimport moment from 'moment';\nimport qs from 'qs';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\n// Project imports\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { runPropTypes } from 'common/propTypes';\nimport { VIEW_TYPE, DESKTOP_WIDTH } from '../config';\nimport RunListView from './RunListView';\n// import MoveFolderModal from './RunListView/MoveFolderModal';\nimport MultipleSelectionActionBtns from './MultipleSelectionActionBtns';\nimport RunGridView from './RunGridView/index';\n\nconst propTypes = {\n folder: PropTypes.shape({}),\n runs: PropTypes.arrayOf(runPropTypes).isRequired,\n onDeleteRun: PropTypes.func.isRequired,\n onUpdateRun: PropTypes.func.isRequired,\n runListClassName: PropTypes.string,\n isFilteredRuns: PropTypes.bool\n};\n\nconst defaultProps = { folder: null, runListClassName: '', isFilteredRuns: false };\n\nexport default class RunList extends React.Component {\n constructor(props) {\n super(props);\n\n moment.updateLocale(window?.I18n?.tlocale, {\n postformat: (string) => string\n });\n\n this.state = {\n isLoading: false,\n view: window.innerWidth > DESKTOP_WIDTH ? VIEW_TYPE.list : VIEW_TYPE.grid,\n selectedRunIds: []\n };\n }\n\n onSelectRuns = (selectedRunId, isSelected) => {\n const { selectedRunIds } = this.state;\n const updatedRunIds = isSelected\n ? [...selectedRunIds, selectedRunId]\n : selectedRunIds.filter((runId) => runId !== selectedRunId);\n\n this.setState({ selectedRunIds: updatedRunIds });\n }\n\n renderViewTypeSelector = () => (\n this.setState({ view: viewType })}\n >\n \n format_list_bulleted\n \n \n grid_view\n \n \n )\n\n renderBtns = () => {\n const { folder, runs } = this.props;\n const { selectedRunIds } = this.state;\n const queryParams = { folder_id: _.get(folder, 'id', null) };\n const selectedRuns = _.filter(runs, (run) => _.includes(selectedRunIds, run.id));\n\n return (\n
    \n \n insert_drive_file\n Create new strategy\n \n
    \n {(_.size(selectedRuns) > 1) && (\n \n )}\n {!_.isEmpty(runs) && this.renderViewTypeSelector()}\n
    \n
    \n );\n }\n\n renderEmptyMessage = () => {\n const { isLoading } = this.state;\n const { runs } = this.props;\n if (runs.length === 0 && !isLoading) {\n return (\n
    \n \n No strategies\n
    \n );\n }\n\n return null;\n }\n\n render() {\n const { isLoading, view } = this.state;\n const {\n runs, onDeleteRun, onUpdateRun, runListClassName, isFilteredRuns\n } = this.props;\n const ListComponent = (view === VIEW_TYPE.list) ? RunListView : RunGridView;\n\n return (\n
    \n \n <>\n {this.renderBtns()}\n \n \n {this.renderEmptyMessage()}\n \n
    \n );\n }\n}\n\nRunList.propTypes = propTypes;\nRunList.defaultProps = defaultProps;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\n\nconst propTypes = {\n onDeleteFolder: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst FolderDeleteConfirmation = ({ onDeleteFolder }) => {\n const [isShowModal, setIsShowModal] = useState(false);\n\n const modalProps = {\n title: 'Delete Confirmation',\n size: 'sm',\n shouldShow: isShowModal,\n onClose: () => setIsShowModal(false),\n okBtnTitle: 'Delete Folder',\n onSave: () => {\n onDeleteFolder();\n setIsShowModal(false);\n },\n };\n\n const renderModal = () => {\n return (\n \n
    \n \"Delete\"\n

    Once You delete the folder, it cannot be reverted back. Please make sure to delete.

    \n
    \n
    \n );\n };\n\n const renderButton = () => {\n return (\n {\n e.stopPropagation();\n setIsShowModal(true);\n }}\n >\n delete_forever \n \n );\n };\n return (\n
    \n {renderButton()}\n {renderModal()}\n
    \n );\n};\n\nFolderDeleteConfirmation.propTypes = propTypes;\nFolderDeleteConfirmation.defaultProps = defaultProps;\n\nexport default FolderDeleteConfirmation;\n","import _ from 'lodash';\n// vendor imports\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// project imports\nimport { folderPropTypes } from 'common/propTypes';\nimport ArrowAccordion from 'common/components/ArrowAccordion';\nimport InlineEdit from 'common/components/InlineEdit';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport RunList from 'ui/FolderList/RunList';\nimport { getRuns, deleteRun, updateRun } from 'common/api/run';\nimport { RUN_TYPES } from 'common/constants/index';\nimport FolderDeleteConfirmation from './FolderDeleteConfirmation';\n\nconst propTypes = {\n folder: folderPropTypes.isRequired,\n defaultOpen: PropTypes.bool,\n onDeleteFolder: PropTypes.func,\n onEditFolderName: PropTypes.func,\n isUpdatingFolderName: PropTypes.bool,\n onChangeCurrentlyOpenFolderId: PropTypes.func,\n scrollToSearch: PropTypes.bool,\n};\n\nconst defaultProps = {\n defaultOpen: false,\n isUpdatingFolderName: false,\n onDeleteFolder: _.noop,\n onEditFolderName: _.noop,\n onChangeCurrentlyOpenFolderId: _.noop,\n scrollToSearch: false,\n};\n\nconst HEADER_OFFSET = 100;\nconst SCROLLING_TIME = 500;\n\nexport default class Folder extends React.Component {\n constructor(props) {\n super(props);\n const {\n folder,\n folder: { live_runs_count: liveRunsCount, historic_runs_count: historicRunsCount }\n } = props;\n\n this.state = {\n folder,\n runs: [],\n liveRunsCount,\n historicRunsCount,\n isFetchingRuns: false,\n isLoading: false,\n isLoadingMore: false\n };\n }\n\n onDeleteRun = (toDeleteRun) => {\n const { runs, liveRunsCount, historicRunsCount } = this.state;\n const { run_type: runType, id: toDeleteRunId } = toDeleteRun;\n const newRunCount = runType === RUN_TYPES.live\n ? { liveRunsCount: liveRunsCount - 1 }\n : { historicRunsCount: historicRunsCount - 1 };\n\n this.setState({ isLoading: true });\n\n const successCallBack = () => {\n this.setState({ runs: _.filter(runs, (run) => run.id !== toDeleteRunId), ...newRunCount });\n };\n\n deleteRun({ runId: toDeleteRunId, successCallBack });\n this.setState({ isLoading: false });\n }\n\n onUpdateRun = (toUpdateRun, key, value) => {\n const { runs } = this.state;\n\n const newRuns = _.map(runs, (run) => {\n return (run.id === toUpdateRun.id) ? { ...toUpdateRun, [key]: value } : { ...run };\n });\n\n updateRun({ runId: toUpdateRun.id, run: { [key]: value } })\n .then(() => this.setState({ runs: newRuns }));\n }\n\n onEditFolderName = (folderId, updatedName) => {\n const { onEditFolderName } = this.props;\n const { folder } = this.state;\n const udpatedFolder = _.clone({ ...folder, name: updatedName });\n\n onEditFolderName(folderId, updatedName);\n this.setState({\n folder: udpatedFolder,\n });\n }\n\n loadMore = () => {\n const { runs, folder: { id } } = this.state;\n const offsetRunId = _.last(runs).id;\n\n this.setState({ isLoadingMore: true });\n getRuns({ params: { folder_id: id, offsetRunId } })\n .then((olderRuns) => {\n this.setState({ runs: runs.concat(olderRuns), isLoadingMore: false });\n });\n }\n\n renderLoadMore = () => {\n const {\n runs, isLoadingMore, liveRunsCount, historicRunsCount\n } = this.state;\n const totalCount = liveRunsCount + historicRunsCount;\n\n if (runs.length === 0 || runs.length >= totalCount) {\n return null;\n }\n\n return (\n
    \n {isLoadingMore\n ?
    \n : (\n this.loadMore()}\n >\n Load More...\n \n )}\n
    \n );\n }\n\n onAccordionToggle = (isOpen) => {\n const { onChangeCurrentlyOpenFolderId } = this.props;\n const { folder: { id } } = this.state;\n\n if (!isOpen) {\n return;\n }\n\n onChangeCurrentlyOpenFolderId(id);\n this.setState({ isFetchingRuns: true });\n getRuns({ params: { folder_id: id, offsetRunId: 0 } })\n .then((runs) => {\n this.setState({ runs, isFetchingRuns: false });\n });\n }\n\n scrollToFolder = (scrollToSelector) => {\n const container = $('html,body');\n const scrollTo = $(scrollToSelector);\n\n container.animate({\n scrollTop: scrollTo.offset().top - HEADER_OFFSET,\n scrollLeft: 0\n }, SCROLLING_TIME);\n }\n\n componentDidMount = () => {\n const { defaultOpen, scrollToSearch } = this.props;\n const { folder: { id } } = this.state;\n\n if (!defaultOpen) return;\n\n this.onAccordionToggle(defaultOpen);\n\n const scrollToSelector = scrollToSearch ? '.search-filter' : `.folder-view-${id}`;\n this.scrollToFolder(scrollToSelector);\n }\n\n renderAccordionTitle = () => {\n const { folder, isUpdatingFolderName } = this.props;\n let title;\n let iconClassNames;\n\n if (folder.is_default) {\n iconClassNames = classNames('folder');\n title = folder.name;\n } else {\n iconClassNames = classNames('source');\n title = (\n this.onEditFolderName(folder.id, updatedName)}\n isUpdating={isUpdatingFolderName}\n tooltip=\"Edit Folder name\"\n />\n );\n }\n\n return (\n
    \n {iconClassNames}\n
    \n {title}\n
    \n
    \n );\n }\n\n renderQuantDetailsAndActionButtons = () => {\n const { liveRunsCount, historicRunsCount } = this.state;\n\n return (\n
    \n
    \n Historic\n {historicRunsCount}\n
    \n\n
    \n Live\n {liveRunsCount}\n
    \n
    \n );\n }\n\n renderDeleteQuantButton() {\n const { folder, onDeleteFolder } = this.props;\n\n if (folder.is_default) { return null; }\n\n return ;\n }\n\n render() {\n const {\n folder, isFetchingRuns, runs, isLoading\n } = this.state;\n const { defaultOpen, isUpdatingFolderName } = this.props;\n\n return (\n
    \n \n \n <>\n \n {this.renderLoadMore()}\n \n \n \n
    \n );\n }\n}\n\nFolder.propTypes = propTypes;\nFolder.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport { updateUrlQueryParams } from 'common/utils/urlUtils';\nimport { showByOption } from './config';\n\nconst propTypes = {\n selectedFilter: PropTypes.string,\n onSelectFilter: PropTypes.func.isRequired\n};\n\nconst defaultProps = { selectedFilter: 'all' };\n\nconst Filter = ({ selectedFilter, onSelectFilter }) => {\n useEffect(() => {\n updateUrlQueryParams('selectedFilter', selectedFilter);\n }, [selectedFilter]);\n\n const renderFilterOptions = (values, key) => {\n const { displayName, value } = values;\n return (\n \n {displayName}\n \n );\n };\n\n return (\n onSelectFilter(value)}\n >\n {_.map(showByOption, renderFilterOptions)}\n \n );\n};\n\nFilter.defaultProps = defaultProps;\nFilter.propTypes = propTypes;\n\nexport default Filter;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { deleteRun, getRuns, updateRun } from 'common/api/run';\nimport RunList from './RunList/index';\n\nconst propTypes = {\n selectedFilter: PropTypes.string.isRequired,\n totalCount: PropTypes.number.isRequired,\n filterSearch: PropTypes.string\n};\n\nconst defaultProps = { filterSearch: '' };\n\n\n// This is mainly for inProgress runs.. because in Folder Table there is no sepeate count.. so i used this way\n// to solve the solution.. this 30 is same as run.rb model Run::PAGE_SIZE\n\nconst RUNS_COUNT_FOR_LOADMORE = 30;\n\nconst FilteredRuns = ({ selectedFilter, totalCount, filterSearch }) => {\n const [runs, setRuns] = useState([]);\n const [isLoadingMore, setIsLoadingMore] = useState(true);\n const [isShowLoadMore, setIsShowLoadMore] = useState(true);\n\n const getParams = (offsetRunId) => {\n return _.omitBy({\n offsetRunId, filter_type: selectedFilter, search: filterSearch\n }, (value) => value === '');\n };\n\n const getFilterRuns = () => {\n getRuns({ params: getParams(0) })\n .then((resultRuns) => {\n if (resultRuns.length !== RUNS_COUNT_FOR_LOADMORE) setIsShowLoadMore(false);\n setRuns(resultRuns);\n setIsLoadingMore(false);\n });\n };\n\n useEffect(() => {\n setRuns([]);\n setIsShowLoadMore(true);\n getFilterRuns();\n }, [selectedFilter, filterSearch]);\n\n const onDeleteRun = (toDeleteRun) => {\n const { id: toDeleteRunId } = toDeleteRun;\n const successCallBack = () => { setRuns(_.filter(runs, (run) => run.id !== toDeleteRunId)); };\n\n deleteRun({ runId: toDeleteRunId, successCallBack });\n };\n\n const onUpdateRun = (toUpdateRun, key, value) => {\n const newRuns = _.map(runs, (run) => {\n return (run.id === toUpdateRun.id) ? { ...toUpdateRun, [key]: value } : { ...run };\n });\n\n updateRun({ runId: toUpdateRun.id, run: { [key]: value } }).then(() => setRuns(newRuns));\n };\n\n const loadMore = () => {\n const offsetRunId = _.last(runs).id;\n\n setIsLoadingMore(true);\n getRuns({ params: getParams(offsetRunId) })\n .then((olderRuns) => {\n if (olderRuns.length !== RUNS_COUNT_FOR_LOADMORE) setIsShowLoadMore(false);\n setRuns(runs.concat(olderRuns));\n setIsLoadingMore(false);\n });\n };\n\n const renderLoadMore = () => {\n const shouldHide = runs.length >= totalCount || !runs.length || !isShowLoadMore;\n if (shouldHide) return null;\n\n return (\n
    \n {isLoadingMore\n ?
    \n : (\n \n )}\n
    \n );\n };\n\n return (\n <>\n \n {renderLoadMore()}\n \n );\n};\n\nFilteredRuns.propTypes = propTypes;\nFilteredRuns.defaultProps = defaultProps;\n\nexport default FilteredRuns;\n","import _ from 'lodash';\nimport { getUrlParams } from 'common/utils/urlUtils';\n\nexport const deepLinkFilter = () => {\n const urlParams = getUrlParams();\n const queryStringParams = _.keys(urlParams);\n\n if (_.includes(queryStringParams, ('selectedFilter'))) { return urlParams.selectedFilter || 'all'; }\n\n return 'all';\n};\n","import React, {\n useState, useRef, useEffect\n} from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = { onSearchRun: PropTypes.func.isRequired, isScrollToSearch: PropTypes.func.isRequired };\n\nconst defaultProps = {};\n\n\nconst SearchFilter = ({ onSearchRun, isScrollToSearch }) => {\n const [searchValue, setSearchValue] = useState('');\n const inputRef = useRef(null);\n\n const handelClearFilter = () => {\n setSearchValue('');\n onSearchRun('');\n isScrollToSearch(true);\n inputRef.current.focus();\n };\n\n const handelKeyDown = (event) => {\n const currentValue = event.target.value;\n if ((event.key === 'Backspace' || event.key === 'Delete')) {\n if (currentValue.length === 1) {\n isScrollToSearch(true);\n }\n }\n };\n\n useEffect(() => {\n onSearchRun('');\n }, [searchValue === '']);\n\n return (\n <>\n {\n e.preventDefault();\n onSearchRun(searchValue);\n }}\n >\n
    \n setSearchValue(event.target.value)}\n onKeyDown={handelKeyDown}\n aria-label=\"currentSearchTitle\"\n aria-describedby=\"basic-addon1\"\n />\n {searchValue && (\n \n close\n \n )}\n
    \n \n search\n \n
    \n
    \n \n \n );\n};\n\nSearchFilter.defaultProps = defaultProps;\nSearchFilter.propTypes = propTypes;\n\nexport default React.memo(SearchFilter);\n","import _ from 'lodash';\n// vendor imports\nimport React from 'react';\nimport * as Sentry from '@sentry/browser';\nimport PropTypes from 'prop-types';\n\n// project imports\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { handleApiError } from 'common/api/base';\nimport { updateUrlQueryParams } from 'common/utils/urlUtils';\nimport {\n createFolder, getFolders, deleteFolder, updateFolder\n} from 'common/api/folder';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport Folder from './Folder';\nimport Filter from './Filter';\nimport FilteredRuns from './FilteredRuns';\nimport { deepLinkFilter } from './helper';\nimport SearchFilter from './SearchFilter';\n\nconst propsTypes = { folderId: PropTypes.number };\n\nconst defaultProps = { folderId: null };\n\n\nclass FolderList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n folders: [],\n isLoading: false,\n currentlyUpdatingNameForFolderId: null,\n newFolderName: '',\n filterSearch: '',\n scrollToSearch: false,\n selectedFilter: 'all',\n currentlyOpenedFolderId: null,\n userLiveRunsCount: 0,\n userHistoricRunsCount: 0\n };\n }\n\n componentDidMount() {\n this.setState({ selectedFilter: deepLinkFilter(true) });\n this.fetchFolders();\n }\n\n fetchFolders = () => {\n const { folderId } = this.props;\n this.setState({ isLoading: true });\n\n getFolders()\n .then((folders) => {\n const historicRunsCount = [];\n const liveRunsCount = [];\n _.each(folders, (folder) => {\n historicRunsCount.push(folder.historic_runs_count);\n liveRunsCount.push(folder.live_runs_count);\n });\n\n this.setState({\n folders: _.orderBy(folders, 'id', 'desc'),\n isLoading: false,\n userLiveRunsCount: _.sum(liveRunsCount),\n userHistoricRunsCount: _.sum(historicRunsCount),\n currentlyOpenedFolderId: folderId || _.first(folders).id,\n });\n });\n }\n\n onCreateFolder = (e) => {\n const { newFolderName } = this.state;\n\n this.setState({ isLoading: true });\n createFolder(newFolderName)\n .then(() => { this.setState({ isLoading: false, newFolderName: '' }, this.fetchFolders); })\n .catch((error) => {\n this.setState({ isLoading: false });\n handleApiError(error);\n });\n\n e.preventDefault();\n return false;\n }\n\n onDeleteFolder = (folderId) => {\n const { folders } = this.state;\n\n this.setState({ isLoading: true });\n\n deleteFolder({ folderId })\n .then(() => {\n this.setState({\n isLoading: false,\n folders: _.filter(folders, (folder) => folder.id !== folderId),\n });\n })\n .catch((error) => {\n try {\n error.json().then((data) => {\n const errors = _.get(data, 'errors.error', []);\n const errorMessages = _.get(errors, '0', '');\n this.setState({ isLoading: false });\n\n if (errorMessages) { reactToastify(errorMessages, TOASTIFY_TYPES.ERROR); }\n });\n } catch {\n this.setState({ isLoading: false });\n reactToastify('Unable to delete the folder at the moment please try again', TOASTIFY_TYPES.ERROR);\n }\n });\n }\n\n onEditFolderName = (folderId, updatedName) => {\n const { folders } = this.state;\n this.setState({ currentlyUpdatingNameForFolderId: folderId });\n\n updateFolder({ folderId, folder: { name: updatedName } })\n .then(() => {\n const updatedFolders = _.map(folders, (folder) => {\n if (folder.id !== folderId) { return folder; }\n\n return { ...folder, name: updatedName };\n });\n this.setState({ currentlyUpdatingNameForFolderId: null, folders: updatedFolders });\n })\n .catch((error) => {\n Sentry.captureException(error);\n reactToastify('Unable to update folder name at the moment please try again', TOASTIFY_TYPES.ERROR);\n });\n }\n\n onSelectFolder = (newFolderId) => {\n updateUrlQueryParams('folder_id', newFolderId);\n this.setState({ currentlyOpenedFolderId: newFolderId, scrollToSearch: false });\n }\n\n renderFolders = () => {\n const {\n folders, currentlyUpdatingNameForFolderId, currentlyOpenedFolderId, scrollToSearch\n } = this.state;\n return _.map(folders, (folder) => (\n this.onDeleteFolder(folder.id)}\n defaultOpen={currentlyOpenedFolderId === folder.id}\n onChangeCurrentlyOpenFolderId={this.onSelectFolder}\n onEditFolderName={(folderId, newName) => this.onEditFolderName(folderId, newName)}\n scrollToSearch={scrollToSearch}\n />\n ));\n }\n\n getTotalCount = () => {\n const { selectedFilter, userHistoricRunsCount, userLiveRunsCount } = this.state;\n if (selectedFilter === 'all') {\n return userLiveRunsCount + userHistoricRunsCount;\n }\n if (selectedFilter === 'historic') {\n return userHistoricRunsCount;\n }\n return userLiveRunsCount;\n }\n\n renderFilterBasedComponents = () => {\n const { selectedFilter, filterSearch } = this.state;\n\n switch (true) {\n case selectedFilter === 'all' && filterSearch === '':\n return this.renderFolders();\n default:\n const totalCount = this.getTotalCount();\n\n return (\n \n );\n }\n }\n\n render() {\n const {\n isLoading, newFolderName, selectedFilter\n } = this.state;\n\n return (\n
    \n \n
    \n

    Folder List

    \n
    \n {\n this.setState({ filterSearch: value });\n })}\n isScrollToSearch={((value) => {\n this.setState({ scrollToSearch: value });\n })}\n />\n \n this.setState({ newFolderName: event.target.value })}\n />\n
    \n \n source\n Create Folder\n \n
    \n \n\n {\n this.setState({ selectedFilter: value });\n }}\n />\n
    \n
    \n
    \n {this.renderFilterBasedComponents()}\n
    \n
    \n
    \n );\n }\n}\n\nFolderList.propTypes = propsTypes;\nFolderList.defaultProps = defaultProps;\n\nexport default FolderList;\n","import consumer from 'channels/consumer';\n\nconst subscribeChannel = (args) => {\n const { roomId, channelName, onDataReceive } = args;\n\n consumer.subscriptions.create(\n { channel: 'NotificationsChannel', room: roomId },\n {\n connected: () => { console.log('connected', channelName); },\n disconnected: () => { console.log('disconnected', channelName); },\n received: (data) => {\n onDataReceive(data, channelName);\n }\n }\n );\n};\n\nexport default subscribeChannel;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { orderConfigsPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n run: {\n quant_config: {\n orderConfigs: orderConfigsPropTypes\n },\n created_at: PropTypes.string\n }.isRequired,\n reloadUrl: PropTypes.string.isRequired,\n onEtaCompletion: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst RUN_STARTUP_TIME = 3; // seconds\nconst INTERVAL = 1000;\nconst RELOADSECONDS = 360;\n\nconst getETA = (run) => {\n const { start_date: startDate, end_date: endDate } = run;\n const start = moment.utc(startDate);\n const end = moment.utc(endDate);\n const totalYears = end.diff(start, 'years') + 1;\n return totalYears * 1.5 + RUN_STARTUP_TIME;\n};\n\nconst EstimatedTimeCountDown = (props) => {\n const {\n run,\n reloadUrl,\n onEtaCompletion\n } = props;\n const { created_at: createdAt } = run;\n const estimatedTime = getETA(run);\n const completionTime = moment.utc(createdAt).add(estimatedTime, 'seconds');\n const getRemainingSeconds = () => {\n const currentTime = moment.utc();\n\n if (currentTime.isAfter(completionTime)) return 0;\n\n return completionTime.diff(currentTime, 'seconds');\n };\n\n const reloadTime = moment.utc(createdAt).add(RELOADSECONDS, 'seconds');\n const reloadRemainingSeconds = () => {\n const currentTime = moment.utc();\n return reloadTime.diff(currentTime, 'seconds');\n };\n\n const [seconds, setSeconds] = useState(getRemainingSeconds());\n const [reloadSeconds, setReloadSeconds] = useState(reloadRemainingSeconds());\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (seconds <= 0) {\n clearTimeout(timer);\n return;\n }\n setSeconds(seconds - 1);\n }, INTERVAL);\n\n const reloadTimer = setTimeout(() => {\n if (reloadSeconds <= 0) {\n onEtaCompletion();\n clearTimeout(reloadTimer);\n return;\n }\n setReloadSeconds(reloadSeconds - 1);\n }, INTERVAL);\n\n return () => {\n clearTimeout(timer);\n clearTimeout(reloadTimer);\n };\n });\n\n const renderMessage = () => {\n if (!reloadSeconds) {\n window.location.reload();\n }\n\n if (seconds) {\n return (\n
    \n Estimated time remaining\n  \n {seconds}\n  \n seconds\n
    \n );\n }\n\n return (\n
    \n Taking too long than usual...\n {' '}\n
    \n We are working on it please wait or\n  \n click here to reload\n
    \n );\n };\n\n return (\n
    \n
    \n \n
    \n {renderMessage()}\n
    \n );\n};\n\nEstimatedTimeCountDown.propTypes = propTypes;\nEstimatedTimeCountDown.defaultProps = defaultProps;\n\nexport default EstimatedTimeCountDown;\n","export const schemaShouldShowConfigTypes = {\n pipeValuePath: 'pipeValuePath',\n entryLeftOperand: 'entryLeftOperand',\n entryRightOperand: 'entryRightOperand',\n exitLeftOperand: 'exitLeftOperand',\n exitRightOperand: 'exitRightOperand',\n adjustmentLeftOperand: 'adjustmentLeftOperand',\n adjustmentRightOperand: 'adjustmentRightOperand',\n intentValuePath: 'intentValuePath',\n};\n\nexport const schemaTypes = {\n number: 'number',\n boolean: 'boolean',\n duration: 'duration',\n target: 'target',\n date: 'date',\n time: 'time',\n dayOfWeek: 'dayOfWeek',\n minute: 'minute',\n array: 'array',\n object: 'object',\n};\n","export const pipeInputSchemaTypes = {\n signal: 'signal',\n intents: 'intents',\n number: 'number',\n float: 'float',\n select: 'select',\n valuePaths: 'valuePaths',\n candleInterval: 'candleInterval',\n volumeInterval: 'volumeInterval',\n stopLoss: 'stopLoss',\n timeOfDay: 'timeOfDay',\n vendor: 'vendor',\n readOnly: 'readOnly',\n externalSignalId: 'externalSignalId',\n};\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'anchoredVolumeWeightedAveragePrice',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'anchoredVolumeWeightedAveragePrice',\n name: 'avwap',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ],\n multiplier: 1,\n price: 'typical',\n anchor: [\n {\n leftOperand: '',\n operator: '',\n rightOperand: '',\n conditionOperator: 'and'\n }\n ],\n }\n },\n inputSchema: [\n {\n name: 'price',\n label: 'Price',\n type: pipeInputSchemaTypes.select,\n options: [\n 'open',\n 'high',\n 'low',\n 'close',\n 'typical'\n ]\n },\n {\n name: 'anchor',\n label: 'Anchor',\n type: pipeInputSchemaTypes.signal,\n }\n ],\n searchTerms: [\n 'AVWAP',\n 'anchoredVolumeWeightedAveragePrice'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ type, name }) => {\n const properties = [\n 'vwap',\n 'upperBand',\n 'lowerBand'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'aroon',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'aroon',\n name: 'aroon',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'aroon oscillator',\n 'aroon'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipeConfig) => {\n const { name, type } = pipeConfig;\n const resultKeys = [\n 'aroonUp',\n 'aroonDown',\n 'aroonOscillator'\n ];\n\n return _.map(resultKeys, (resultKey) => {\n return {\n name: `${name}.${resultKey}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${resultKey}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'averageDirectionalIndex',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes'\n },\n type: 'averageDirectionalIndex',\n name: 'adx',\n config: {\n DILength: 14,\n ADXSmoothing: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'ADX',\n 'averageDirectionalIndex'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n const properties = [\n { label: 'adx+dmi', value: 'pdi' },\n { label: 'adx-dmi', value: 'mdi' },\n { label: 'adx', value: 'adx' },\n ];\n\n return _.map(properties, (property) => {\n const { label, value } = property;\n\n return {\n name: `${name}.${value}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === 'adx' ? label : `${name} ${label}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'averageTrueRange',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'averageTrueRange',\n name: 'averageTrueRange',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'ATR',\n 'averageTrueRange'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'awesomeOscillator',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'awesomeOscillator',\n name: 'awesomeOscillator',\n config: {\n candleInterval: '5 minutes',\n fastPeriod: 5,\n slowPeriod: 34,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'awesomeOscillator'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipeConfig) => {\n const { name, type } = pipeConfig;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bearishEngulfing',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bearishEngulfing',\n name: 'bearishEngulfing',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bearishEngulfing'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bearishHammer',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bearishHammer',\n name: 'bearishHammer',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bearishHammer'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bearishInvertedHammer',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bearishInvertedHammer',\n name: 'bearishInvertedHammer',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bearishInvertedHammer'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bearishMarubozu',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bearishMarubozu',\n name: 'bearishMarubozu',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bearishMarubozu'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bearishSpinningTop',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bearishSpinningTop',\n name: 'bearishSpinningTop',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bearishSpinningTop'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bollingerBand',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bollingerBand',\n name: 'BB',\n config: {\n noOfCandles: 20,\n multiplier: 2,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bollingerBand'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'upperBollingerBand',\n 'middleBollingerBand',\n 'lowerBollingerBand'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bullishEngulfing',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bullishEngulfing',\n name: 'bullishEngulfing',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bullishEngulfing'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bullishHammer',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bullishHammer',\n name: 'bullishHammer',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bullishHammer'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bullishInvertedHammer',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bullishInvertedHammer',\n name: 'bullishInvertedHammer',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bullishInvertedHammer'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bullishMarubozu',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bullishMarubozu',\n name: 'bullishMarubozu',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bullishMarubozu'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'bullishSpinningTop',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'bullishSpinningTop',\n name: 'bullishSpinningTop',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'bullishSpinningTop'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'centralPivotRange',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'centralPivotRange',\n name: 'cpr',\n config: {\n timeFrame: 'day',\n category: 'traditional',\n narrowRange: 0.2,\n moderatelyRange: 0.5,\n wideRange: 0.5,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'CPR',\n 'centralPivotRange'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {\n category: [\n 'traditional',\n 'fibonacci',\n 'woodie',\n 'classic',\n 'demarks',\n 'camarilla'\n ]\n },\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n inputSchema: [\n {\n name: 'timeFrame',\n type: pipeInputSchemaTypes.select,\n label: 'Time Frame',\n options: ['day', 'week']\n },\n {\n name: 'category',\n type: pipeInputSchemaTypes.select,\n label: 'Category',\n options: [\n 'traditional',\n 'fibonacci',\n 'woodie',\n 'classic',\n 'demarks',\n 'camarilla'\n ]\n }\n ],\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const numericProperties = [\n 'pivot',\n 'BC',\n 'TC',\n 'R1',\n 'R2',\n 'R3',\n 'R4',\n 'R5',\n 'S1',\n 'S2',\n 'S3',\n 'S4',\n 'S5'\n ];\n const booleanProperties = [\n 'isNarrow',\n 'isModerately',\n 'isWide',\n 'isInsideValue',\n 'isOutsideValue',\n 'isOverlappingHigherValue',\n 'isOverlappingLowerValue'\n ];\n const properties = [\n ...numericProperties,\n ...booleanProperties\n ];\n\n return _.map(properties, (property) => {\n const schema = {\n indicatorType: type,\n name: `${name}.${property}`,\n type: schemaTypes.number,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n\n if (_.includes(booleanProperties, property)) {\n schema.type = schemaTypes.boolean;\n }\n\n return schema;\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'commodityChannelIndex',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'commodityChannelIndex',\n name: 'commodityChannelIndex',\n config: {\n noOfCandles: 20,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'CCI',\n 'commodityChannelIndex'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'currentCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'currentCandle',\n name: 'current',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'currentCandle'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type, config } = pipe;\n const { valuePaths = [] } = config;\n const [valuePath] = valuePaths;\n const isVolume = _.includes(valuePath, '.volume');\n let properties = [\n 'close',\n 'open',\n 'high',\n 'low',\n 'openInterest',\n 'volume'\n ];\n\n if (isVolume) {\n properties = [properties[0]]; // remove OHL\n }\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../../outputSchema/config';\n\nexport const buildOutputSchemaFromJsonSchema = (jsonSchema, parentPath) => {\n const { type } = jsonSchema;\n if (type === schemaTypes.array) {\n throw new Error('Array type is not supported yet');\n } else if (type === schemaTypes.object) {\n return _.flatMap(jsonSchema.properties, (itemConfig, name) => {\n return buildOutputSchemaFromJsonSchema(itemConfig, `${parentPath}.${name}`);\n });\n } else {\n return {\n name: parentPath,\n type: jsonSchema.type,\n indicatorType: 'customScript',\n category: 'indicator',\n label: parentPath,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: parentPath\n };\n }\n};\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { buildOutputSchemaFromJsonSchema } from './utilities/buildOutputSchemaFromJsonSchema';\n\nconst configuration = {\n type: 'customScript',\n defaults: {\n type: 'customScript',\n name: 'customScript',\n category: 'customScript',\n config: {\n script: '100L',\n outputJsonSchema: { type: 'number' }\n }\n },\n searchTerms: [\n 'customScript'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, config: { outputJsonSchema } } = pipe;\n const schema = outputJsonSchema;\n return buildOutputSchemaFromJsonSchema(schema, name);\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'darkCloudCover',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'darkCloudCover',\n name: 'darkCloudCover',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'darkCloudCover'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'doji',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'doji',\n name: 'doji',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'doji'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'dragonFlyDoji',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'dragonFlyDoji',\n name: 'dragonFlyDoji',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'dragonFlyDoji'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'eveningStar',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'eveningStar',\n name: 'eveningStar',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'eveningStar'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'exponentialMovingAverage',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'exponentialMovingAverage',\n name: 'exponentialMovingAverage',\n config: {\n noOfCandles: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'EMA',\n 'exponentialMovingAverage'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'gapStrategy',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'gapStrategy',\n name: 'gapStrategy',\n config: {\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'gapStrategy'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'fullGapUp',\n 'fullGapDown',\n 'partialGapUp',\n 'partialGapDown'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'graveStoneDoji',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'graveStoneDoji',\n name: 'graveStoneDoji',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'graveStoneDoji'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiBearish',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiBearish',\n name: 'heikinashiBearish',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiBearish'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiBearishIndecision',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiBearishIndecision',\n name: 'heikinashiBearishIndecision',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiBearishIndecision'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiBullish',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiBullish',\n name: 'heikinashiBullish',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiBullish'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiBullishIndecision',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiBullishIndecision',\n name: 'heikinashiBullishIndecision',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiBullishIndecision'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiVeryBearish',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiVeryBearish',\n name: 'heikinashiVeryBearish',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiVeryBearish'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'heikinashiVeryBullish',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'heikinashiVeryBullish',\n name: 'heikinashiVeryBullish',\n config: {\n noOfCandles: 1,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'heikinashiVeryBullish'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'ichimokuCloud',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'ichimokuCloud',\n name: 'ichimokuCloud',\n config: {\n candleInterval: '5 minutes',\n conversionPeriod: 9,\n basePeriod: 26,\n spanPeriod: 52,\n displacement: 26,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'ichimokuCloud'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'conversionLine',\n 'baseLine',\n 'spanA',\n 'spanB'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'lastNCandles',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'lastNCandles',\n name: 'lastNCandles',\n config: {\n noOfCandles: 7,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'lastNCandles'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipeConfig) => {\n const { name, type } = pipeConfig;\n const properties = [\n 'highestHigh',\n 'lowestLow'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'longBuildup',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'longBuildup',\n name: 'longBuildup',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n // 'item0.month1Price.openInterest',\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'longBuildup'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ name, type }) => {\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'longLeggedDoji',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'longLeggedDoji',\n name: 'longLeggedDoji',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'longLeggedDoji'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'longUnwidening',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'longUnwidening',\n name: 'longUnwinding',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n // 'item0.month1Price.openInterest',\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'longUnwinding'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ name, type }) => {\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'morningStar',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'morningStar',\n name: 'morningStar',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'morningStar'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'movingAverageConvergenceDivergence',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'movingAverageConvergenceDivergence',\n name: 'macd',\n config: {\n fastPeriod: 12,\n slowPeriod: 26,\n signalPeriod: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'MACD',\n 'movingAverageConvergenceDivergence'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'macd',\n 'signal',\n 'histogram'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'openingRangeBreakout',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'openingRangeBreakout',\n name: 'orb',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'ORB',\n 'openingRangeBreakout'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n { property: 'open', isBoolean: false },\n { property: 'high', isBoolean: false },\n { property: 'low', isBoolean: false },\n { property: 'close', isBoolean: false },\n { property: 'isOpenEqualToHigh', isBoolean: true },\n { property: 'isOpenEqualToLow', isBoolean: true }\n ];\n\n return _.map(properties, ({ property, isBoolean }) => {\n const schema = {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n\n if (isBoolean) {\n schema.type = schemaTypes.boolean;\n schema.shouldShowConfigs = [];\n }\n\n return schema;\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'piercingLine',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'piercingLine',\n name: 'piercingLine',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'piercingLine'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'pivotPoints',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'pivotPoints',\n name: 'pivotPoints',\n config: {\n timeFrame: 'day',\n category: 'traditional',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'pivotPoints'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {\n category: [\n 'traditional',\n 'fibonacci',\n 'woodie',\n 'classic',\n 'demarks',\n 'camarilla'\n ]\n },\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n inputSchema: [\n {\n name: 'timeFrame',\n type: pipeInputSchemaTypes.select,\n label: 'Time Frame',\n options: ['day', 'week']\n },\n {\n name: 'category',\n type: pipeInputSchemaTypes.select,\n label: 'Category',\n options: [\n 'traditional',\n 'fibonacci',\n 'woodie',\n 'classic',\n 'demarks',\n 'camarilla'\n ]\n }\n ],\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'pivotPoint',\n 'r1',\n 'r2',\n 'r3',\n 'r4',\n 'r5',\n 's1',\n 's2',\n 's3',\n 's4',\n 's5'\n ];\n\n return _.map(properties, (property) => {\n return {\n indicatorType: type,\n name: `${name}.${property}`,\n type: schemaTypes.number,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'previousCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'previousCandle',\n name: 'previous',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'previousCandle'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'open',\n 'high',\n 'low',\n 'close',\n 'openInterest',\n 'volume'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'rateOfChange',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'rateOfChange',\n name: 'rateOfChange',\n config: {\n noOfCandles: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'ROC',\n 'rateOfChange'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'ratio',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'ratio',\n name: 'ratio',\n config: {\n valuePaths: [\n 'item0.equity',\n 'item1.month1Price'\n ]\n }\n },\n searchTerms: [\n 'price ration',\n 'ratio'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ type, name }) => {\n return [\n {\n name,\n label: name,\n indicatorType: type,\n type: schemaTypes.number,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'relativeStrengthIndex',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'relativeStrengthIndex',\n name: 'relativeStrengthIndex',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'RSI',\n 'relativeStrengthIndex'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'signal',\n defaults: {\n type: 'signal',\n name: 'signal',\n config: {\n signal: [\n {\n leftOperand: '',\n operator: '',\n rightOperand: '',\n conditionOperator: 'and'\n }\n ],\n }\n },\n searchTerms: [\n 'signal',\n 'condition'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n inputSchema: [\n {\n name: 'signal',\n type: pipeInputSchemaTypes.signal,\n label: 'Signal',\n }\n ],\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'shortBuildup',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'shortBuildup',\n name: 'shortBuildup',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n // 'item0.month1Price.openInterest',\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'shortBuildup'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ name, type }) => {\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'shortCovering',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'shortCovering',\n name: 'shortCovering',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n // 'item0.month1Price.openInterest',\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'shortCovering'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.future]\n },\n buildOutputSchema: ({ name, type }) => {\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'signalCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'signalCandle',\n name: 'signalCandle',\n config: {\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n resetOnDayStart: true,\n trailAnchor: false,\n signal: [\n {\n leftOperand: '',\n operator: '',\n rightOperand: '',\n conditionOperator: 'and',\n },\n ],\n },\n },\n inputSchema: [\n {\n name: 'signal',\n type: pipeInputSchemaTypes.signal,\n label: 'Signal',\n },\n {\n name: 'resetOnDayStart',\n type: pipeInputSchemaTypes.select,\n label: 'Reset On Day Start',\n isDisplay: false,\n options: [\n { label: 'True', value: true },\n { label: 'False', value: false },\n ],\n },\n {\n name: 'trailAnchor',\n type: pipeInputSchemaTypes.select,\n label: 'Trail Anchor',\n options: [\n { label: 'True', value: true },\n { label: 'False', value: false },\n ],\n },\n ],\n searchTerms: ['signalCandle'],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = ['open', 'high', 'low', 'close'];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name,\n };\n });\n },\n isEnabled: true,\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'simpleMovingAverage',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'simpleMovingAverage',\n name: 'sma',\n config: {\n noOfCandles: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'SMA',\n 'simpleMovingAverage'\n ],\n inputSchema: [\n {\n name: 'noOfCandles',\n type: pipeInputSchemaTypes.number,\n label: 'Period',\n }\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'stochasticOscillator',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'stochasticOscillator',\n name: 'stochasticOscillator',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n signalPeriod: 3,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'stochasticOscillator'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return _.map(['k', 'd'], (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'stochasticRSI',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'stochasticRSI',\n name: 'stochasticRSI',\n config: {\n rsiPeriod: 14,\n stochasticPeriod: 14,\n kPeriod: 3,\n dPeriod: 3,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'stochasticRSI'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return _.map(['k', 'd'], (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'superTrend',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'superTrend',\n name: 'superTrend',\n config: {\n noOfCandles: 10,\n candleInterval: '5 minutes',\n multiplier: 2,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'superTrend'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n indicatorType: type,\n name,\n type: schemaTypes.number,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 69,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'threeBlackCrows',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'threeBlackCrows',\n name: 'threeBlackCrows',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'threeBlackCrows'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'threeWhiteSoldiers',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'threeWhiteSoldiers',\n name: 'threeWhiteSoldiers',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'threeWhiteSoldiers'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n label: name,\n category: 'indicator',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'todayCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'todayCandle',\n name: 'today',\n config: {\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'todayCandle'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'open',\n 'previousHighestHigh',\n 'previousLowestLow'\n ];\n\n return _.map(properties, (property) => {\n return {\n indicatorType: type,\n name: `${name}.${property}`,\n type: schemaTypes.number,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'volumeWeightedAveragePrice',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'volumeWeightedAveragePrice',\n name: 'vwap',\n config: {\n valuePaths: [\n 'item0.equity'\n ],\n price: 'typical',\n },\n },\n inputSchema: [\n {\n name: 'price',\n label: 'Price',\n type: pipeInputSchemaTypes.select,\n options: [\n 'open',\n 'high',\n 'low',\n 'close',\n 'typical'\n ]\n }\n ],\n searchTerms: [\n 'VWAP',\n 'volumeWeightedAveragePrice'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'previousDayVWAP',\n 'currentDayVWAP'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'weightedMovingAverage',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'weightedMovingAverage',\n name: 'weightedMovingAverage',\n config: {\n noOfCandles: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'WMA',\n 'weightedMovingAverage'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'wilderSmoothingAverage',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'wilderSmoothingAverage',\n name: 'wilderSmoothingAverage',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'wilderSmoothingAverage'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'williamsAlligator',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'williamsAlligator',\n name: 'williamsAlligator',\n config: {\n jawLength: 13,\n teethLength: 8,\n lipsLength: 5,\n jawOffset: 8,\n teethOffset: 5,\n lipsOffset: 3,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'williamsAlligator'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipeConfig) => {\n const { name, type } = pipeConfig;\n const resultKeys = [\n 'jaw',\n 'teeth',\n 'lips'\n ];\n\n return _.map(resultKeys, (resultKey) => {\n return {\n name: `${name}.${resultKey}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${resultKey}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'williamsR',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'williamsR',\n name: 'williamsR',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n },\n },\n searchTerms: [\n 'williamsR'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'yesterdayCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0\n },\n type: 'yesterdayCandle',\n name: 'yesterday',\n config: {\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'Previous Day Candle',\n 'yesterdayCandle'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'open',\n 'high',\n 'low',\n 'close',\n 'openInterest',\n 'volume'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst isBasketEnabled = _.get(window, 'SA_FEATURE_FLAGS.isBasketEnabled', false);\n\nconst configuration = {\n type: 'basket',\n defaults: {\n type: 'basket',\n name: 'basket',\n config: {\n legs: [],\n when: [\n {\n leftOperand: '',\n operator: '',\n rightOperand: '',\n conditionOperator: 'and'\n }\n ],\n }\n },\n inputSchema: [\n {\n name: 'legs',\n type: pipeInputSchemaTypes.intents,\n label: 'Legs',\n },\n {\n name: 'when',\n type: pipeInputSchemaTypes.signal,\n label: 'When',\n }\n ],\n searchTerms: [\n 'basket',\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {}\n },\n buildOutputSchema: (pipeConfig) => {\n const { name, type } = pipeConfig;\n\n const properties = [\n 'close',\n 'open',\n 'high',\n 'low'\n ];\n\n return [\n {\n name: `${type}.${name}.combinedPremium`,\n type: schemaTypes.number,\n tagConfig: { tag: 'Combined Premium', color: '#FFA500' },\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.pipeValuePath,\n ],\n priority: 70,\n schemaName: name\n },\n {\n name: `${type}.${name}.openInterest`,\n type: schemaTypes.number,\n tagConfig: { tag: 'Open Interest', color: '#FFA500' },\n indicatorType: type,\n category: 'indicator',\n label: `${name}`,\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath,\n ],\n priority: 70,\n schemaName: name\n },\n ..._.map(properties, (property) => {\n return {\n name: `${name}.combinedPremium.${property}`,\n type: schemaTypes.number,\n tagConfig: { tag: 'Combined Premium', color: '#FFA500' },\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n ],\n priority: 70,\n schemaName: name\n };\n })\n ];\n },\n isEnabled: isBasketEnabled\n};\nexport default configuration;\n","import { STOPS_VALUE_TYPES } from 'common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'transactionStopLoss',\n defaults: {\n type: 'transactionStopLoss',\n name: 'transactionStopLoss',\n config: {\n stopLoss: {\n type: STOPS_VALUE_TYPES.Percent,\n value: 0,\n trail: {\n type: 'Linear',\n adjustValue: 0,\n trailingValue: 0\n }\n }\n }\n },\n searchTerms: [\n 'transactionStopLoss'\n ],\n configFormOptions: {\n valuePathEditable: false,\n configFieldOptions: {},\n valuePathSupportedSegments: []\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n indicatorType: type,\n name,\n type: schemaTypes.boolean,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 69,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'parabolicSAR',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'parabolicSAR',\n name: 'parabolicSAR',\n config: {\n candleInterval: '5 minutes',\n start: 0.02,\n increment: 0.02,\n max: 0.2,\n valuePaths: [\n 'item0.equity'\n ]\n },\n },\n searchTerms: [\n 'parabolicSAR'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'keltnerChannel',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'keltnerChannel',\n name: 'keltnerChannel',\n config: {\n candleInterval: '5 minutes',\n length: 20,\n multiplier: 2,\n atrLength: 10,\n valuePaths: [\n 'item0.equity'\n ]\n },\n },\n searchTerms: [\n 'keltnerChannel'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'upper',\n 'basis',\n 'lower',\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'qqeSignals',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'qqeSignals',\n name: 'qqeSignals',\n config: {\n candleInterval: '5 minutes',\n rsiLength: 14,\n smoothingFactor: 5,\n qqeFactor: 4.238,\n valuePaths: [\n 'item0.equity'\n ]\n },\n },\n searchTerms: [\n 'qqeSignals'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n { value: 'QQELong', type: schemaTypes.number },\n { value: 'QQEShort', type: schemaTypes.number },\n { value: 'isLong', type: schemaTypes.boolean },\n { value: 'isShort', type: schemaTypes.boolean },\n ];\n\n return _.map(properties, ({ value, type: schemaType }) => {\n return {\n name: `${name}.${value}`,\n type: schemaType,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${value}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true,\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'halfTrend',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'halfTrend',\n name: 'halfTrend',\n config: {\n candleInterval: '5 minutes',\n amplitude: 2,\n channelDeviation: 2,\n noOfCandles: 100,\n valuePaths: [\n 'item0.equity'\n ]\n },\n },\n searchTerms: [\n 'halfTrend'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'halfTrend',\n 'atrHigh',\n 'atrLow',\n 'arrowUp',\n 'arrowDown',\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'donChianChannel',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'donChianChannel',\n name: 'donChianChannel',\n config: {\n candleInterval: '5 minutes',\n length: 20,\n valuePaths: [\n 'item0.equity'\n ],\n lag: false\n },\n },\n searchTerms: [\n 'donChianChannel'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n inputSchema: [\n {\n name: 'lag',\n type: pipeInputSchemaTypes.select,\n label: 'Lag',\n info: 'If true, it takes previous candle. If false, it takes current candle.',\n options: [\n { label: 'True', value: true },\n { label: 'False', value: false }\n ]\n },\n ],\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'lower',\n 'upper',\n 'basis',\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\n\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'externalSignal',\n defaults: {\n type: 'externalSignal',\n name: 'externalSignal',\n config: {\n vendor: 'TradingView',\n externalSignalId: '',\n token: '',\n },\n },\n inputSchema: [\n {\n name: 'vendor',\n type: pipeInputSchemaTypes.vendor,\n label: 'Vendor',\n },\n {\n name: 'externalSignalId',\n type: pipeInputSchemaTypes.externalSignalId,\n label: 'External Signal ID',\n },\n {\n name: 'token',\n isDisplay: false,\n }\n ],\n searchTerms: [\n 'externalSignal',\n 'tradingview',\n 'chartink'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.boolean,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true,\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'candleAt',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '1 minutes',\n },\n type: 'candleAt',\n name: 'RangeBreakout',\n config: {\n // Do not change the default value of candleInterval\n candleInterval: '1 minutes',\n startTime: '09:30',\n endTime: '10:30',\n valuePaths: [\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'RangeBreakout',\n 'CandleAt'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n inputSchema: [\n {\n name: 'startTime',\n type: pipeInputSchemaTypes.timeOfDay,\n label: 'Start Time',\n },\n {\n name: 'endTime',\n type: pipeInputSchemaTypes.timeOfDay,\n label: 'End Time',\n },\n {\n name: 'candleInterval',\n isDisplay: false\n }\n ],\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'open',\n 'high',\n 'low',\n 'close',\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'previousNthCandle',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'previousNthCandle',\n name: 'previousNthCandle',\n config: {\n period: 10,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.month1Price'\n ]\n }\n },\n searchTerms: [\n 'previousNthCandle'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n 'open',\n 'high',\n 'low',\n 'close',\n 'volume',\n 'openInterest'\n ];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'movingAverageForRSI',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'movingAverageForRSI',\n name: 'movingAverageForRSI',\n config: {\n noOfCandlesForRSI: 14,\n noOfCandlesForMA: 9,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ],\n }\n },\n searchTerms: [\n 'movingAverageForRSI'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'chandelierExit',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'chandelierExit',\n name: 'chandelierExit',\n config: {\n atrPeriod: 22,\n candleInterval: '5 minutes',\n atrMultiplier: 3.0,\n useClosePrice: true,\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n inputSchema: [\n {\n name: 'useClosePrice',\n type: pipeInputSchemaTypes.select,\n label: 'Use Close Price',\n options: [\n { label: 'True', value: true },\n { label: 'False', value: false }\n ]\n },\n ],\n searchTerms: [\n 'chandelierExit'\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = [\n { name: 'buySignal', type: schemaTypes.boolean },\n { name: 'sellSignal', type: schemaTypes.boolean },\n { name: 'longStop', type: schemaTypes.number },\n { name: 'shortStop', type: schemaTypes.number },\n ];\n\n return _.map(properties, ({ name: property, type: propertyType }) => {\n return {\n name: `${name}.${property}`,\n type: propertyType,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\n\nconst configuration = {\n type: 'trendIntensityIndex',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'trendIntensityIndex',\n name: 'trendIntensityIndex',\n config: {\n majorLength: 60,\n minorLength: 30,\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity']\n }\n },\n searchTerms: [\n 'trendIntensityIndex',\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'smoothedMovingAverage',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'smoothedMovingAverage',\n name: 'smma',\n config: {\n noOfCandles: 7,\n candleInterval: '5 minutes',\n valuePaths: [\n 'item0.equity'\n ]\n }\n },\n searchTerms: [\n 'smma',\n 'smoothedMovingAverage'\n ],\n inputSchema: [\n {\n name: 'noOfCandles',\n type: pipeInputSchemaTypes.number,\n label: 'Period',\n }\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future]\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n }\n ];\n },\n isEnabled: true\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'meanReversionChannel',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'meanReversionChannel',\n name: 'mrc',\n config: {\n period: 200,\n innerMultiplier: 1,\n outerMultiplier: 2.415,\n filterType: 'superSmoother',\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n },\n },\n searchTerms: ['mrc', 'meanReversionChannel'],\n inputSchema: [\n {\n name: 'filterType',\n type: pipeInputSchemaTypes.select,\n label: 'Filter Type',\n options: [\n 'superSmoother',\n 'ehlersEma',\n 'gaussian',\n 'butterWorth',\n 'bandStop',\n 'sma',\n 'ema',\n 'rma',\n ],\n },\n ],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n const properties = [\n { value: 'mean' },\n { value: 'r1' },\n { value: 's1' },\n { value: 'r2' },\n { value: 's2' },\n ];\n\n return _.map(properties, ({ value }) => {\n return {\n name: `${name}.${value}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${value}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name\n };\n });\n },\n isEnabled: true\n};\n\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\n\nconst configuration = {\n type: 'fisherTransform',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'fisherTransform',\n name: 'ft',\n config: {\n noOfCandles: 9,\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n },\n },\n searchTerms: ['fisherTransform', 'ft'],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n const properties = ['fisher', 'trigger'];\n\n return _.map(properties, (property) => ({\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name,\n }));\n },\n isEnabled: true,\n};\nexport default configuration;\n","import { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\n\nconst configuration = {\n type: 'moneyFlowIndex',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'moneyFlowIndex',\n name: 'mfi',\n config: {\n noOfCandles: 14,\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n },\n },\n searchTerms: ['mfi', 'moneyFlowIndex'],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: (pipe) => {\n const { name, type } = pipe;\n\n return [\n {\n name,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name,\n },\n ];\n },\n isEnabled: true,\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'yesterdayAVWAP',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'yesterdayAVWAP',\n name: 'yesterdayAVWAP',\n config: {\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n multiplier: 1,\n anchorBy: 'high',\n },\n },\n inputSchema: [\n {\n name: 'anchorBy',\n label: 'Anchor By',\n type: pipeInputSchemaTypes.select,\n options: ['high', 'low'],\n },\n ],\n searchTerms: ['Yesterday AVWAP'],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: ({ type, name }) => {\n const properties = ['vwap', 'upperBand', 'lowerBand'];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name,\n };\n });\n },\n isEnabled: window?.isAdmin,\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport {\n schemaShouldShowConfigTypes,\n schemaTypes,\n} from '../outputSchema/config';\nimport { pipeInputSchemaTypes } from './config';\n\nconst configuration = {\n type: 'todayAVWAP',\n defaults: {\n chartConfig: {\n type: 'candle',\n boxUnitSize: 0,\n boxPercentage: 0,\n volumeInterval: '3 minutes',\n },\n type: 'todayAVWAP',\n name: 'todayAvwap',\n config: {\n candleInterval: '5 minutes',\n valuePaths: ['item0.equity'],\n multiplier: 1,\n anchorBy: 'high',\n startTime: '09:30',\n endTime: '10:30',\n },\n },\n inputSchema: [\n {\n name: 'startTime',\n type: pipeInputSchemaTypes.timeOfDay,\n label: 'Start Time',\n },\n {\n name: 'endTime',\n type: pipeInputSchemaTypes.timeOfDay,\n label: 'End Time',\n },\n {\n name: 'anchorBy',\n label: 'Anchor By',\n type: pipeInputSchemaTypes.select,\n options: ['high', 'low'],\n },\n ],\n searchTerms: ['Today AVWAP'],\n configFormOptions: {\n valuePathEditable: true,\n configFieldOptions: {},\n valuePathSupportedSegments: [SEGMENT_CONFIG.equity, SEGMENT_CONFIG.future],\n },\n buildOutputSchema: ({ type, name }) => {\n const properties = ['vwap', 'upperBand', 'lowerBand'];\n\n return _.map(properties, (property) => {\n return {\n name: `${name}.${property}`,\n type: schemaTypes.number,\n indicatorType: type,\n category: 'indicator',\n label: name === property ? name : `${name} ${property}`,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n schemaShouldShowConfigTypes.intentValuePath,\n ],\n priority: 70,\n schemaName: name,\n };\n });\n },\n isEnabled: window?.isAdmin,\n};\nexport default configuration;\n","import _ from 'lodash';\nimport { buildOutputSchemaFromJsonSchema } from './pipeDefinitions/utilities/buildOutputSchemaFromJsonSchema';\n\nexport const indicatorCodeSnippets = () => {\n const snippets = _.get(window, 'SA_COLLECTIONS.indicatorCodeSnippets', {});\n\n const addPrefixToLabel = (label) => `snippet - ${label}`;\n\n const buildDefaultConfig = (snippet) => {\n const configs = {};\n\n _.each(_.get(snippet, 'parameters', []), ({ name, defaultValue }) => {\n if (name !== 'chartConfig') {\n configs[name] = defaultValue;\n }\n });\n\n return configs;\n };\n\n const getChartConfig = (parameters) => {\n const chartConfig = (parameters || []).find(({ name }) => name === 'chartConfig');\n return _.isEmpty(chartConfig) ? undefined : {\n type: chartConfig.defaultValue,\n boxUnitSize: 0,\n boxPercentage: 0\n };\n };\n\n return _.map(snippets, (snippet) => {\n const modifiedParameters = _.compact(_.map(snippet.parameters, (parameter) => {\n return parameter.name === 'chartConfig' ? null : parameter;\n }));\n\n // for snippet, we have naming parameters\n\n return {\n searchTerms: [addPrefixToLabel(snippet.label), addPrefixToLabel(snippet.label_alias)],\n type: addPrefixToLabel(snippet.label),\n inputSchema: modifiedParameters,\n defaults: {\n type: addPrefixToLabel(snippet.label),\n category: 'snippet',\n name: addPrefixToLabel(snippet.label) || addPrefixToLabel(snippet.label_alias),\n config: {\n ...buildDefaultConfig(snippet),\n snippetId: snippet.id,\n script: snippet.script, // TODO: remove this after engine starts supporting snippetId,\n outputJsonSchema: snippet.output_json_schema\n },\n chartConfig: getChartConfig(snippet.parameters),\n },\n buildOutputSchema: (pipe) => {\n const { name, config: { outputJsonSchema } } = pipe;\n const schema = outputJsonSchema;\n return buildOutputSchemaFromJsonSchema(schema, name);\n },\n isEnabled: true,\n };\n });\n};\n","import _ from 'lodash';\nimport * as pipeDefinitions from './pipeDefinitions';\nimport { indicatorCodeSnippets } from './snippets';\n\nexport const PIPE_CATEGORIES = {\n snippet: 'snippet',\n customScript: 'customScript'\n};\n\nexport const CANDLE_INTERVALS = [\n { displayValue: '1 minute', value: '1 minutes' },\n { displayValue: '3 minutes', value: '3 minutes' },\n { displayValue: '5 minutes', value: '5 minutes' },\n { displayValue: '10 minutes', value: '10 minutes' },\n { displayValue: '15 minutes', value: '15 minutes' },\n { displayValue: '30 minutes', value: '30 minutes' },\n { displayValue: '45 minutes', value: '45 minutes' },\n { displayValue: '1 hour', value: '1 hours' },\n];\n\nconst DISABLED_INDICATORS = (() => {\n const { isAdmin, SA_FEATURE_FLAGS = {} } = window;\n const list = [];\n if (!SA_FEATURE_FLAGS.isCustomScriptsEnabled) {\n list.push('customScript');\n }\n if (!isAdmin) {\n list.push('indiaVIXPercentile');\n list.push('customScript');\n }\n return list;\n})();\n\nexport const removedIndicators = [\n 'augmentedDickeyFuller',\n 'indiaVIXPercentile',\n 'zScore',\n 'densityCurve',\n 'ratioStandardDeviation',\n 'renkoBearishBrick',\n 'renkoBullishBrick',\n];\n\nconst getSanitizedPipeDefinitions = () => {\n const isIndicatorCodeSnippetsEnabled = _.get(\n window, 'SA_FEATURE_FLAGS.isIndicatorCodeSnippetEnabled', false\n );\n\n if (!isIndicatorCodeSnippetsEnabled) return pipeDefinitions;\n const clonedDefinitions = _.cloneDeep({ ...pipeDefinitions });\n const snippets = indicatorCodeSnippets();\n\n snippets.forEach((snippet) => { clonedDefinitions[snippet.type] = snippet; });\n return clonedDefinitions;\n};\n\nexport const PipeDefinitionUtility = (() => {\n let definitions = getSanitizedPipeDefinitions();\n\n return {\n getPipeInputSchemaByType: (type) => {\n return _.get(definitions, [type, 'inputSchema'], []);\n },\n\n getDefinitions: () => definitions,\n setDefinitions: () => {\n definitions = getSanitizedPipeDefinitions();\n },\n getPipeConfigSearchTerms: () => {\n return _.chain(definitions)\n .reduce((acc, pipeDefinition, type) => {\n if (pipeDefinition?.isEnabled) {\n acc[type] = pipeDefinition;\n }\n return acc;\n }, {})\n .flatMap((pipeDefinition) => pipeDefinition.searchTerms.map((searchTerm) => ({\n label: _.startCase(searchTerm),\n value: pipeDefinition.type\n })))\n .filter(({ value }) => !_.includes(DISABLED_INDICATORS, value))\n .value();\n },\n getPipeConfigOptions: (pipeType) => _.get(\n definitions,\n [pipeType, 'configFormOptions', 'configFieldOptions'],\n {}\n ),\n getPipeConfigDefaults: (type) => {\n return _.cloneDeep(_.get(definitions, [type, 'defaults'], {}));\n },\n getPipeValuePathSupportedSegments: (type) => {\n return _.cloneDeep(\n _.get(definitions, [type, 'configFormOptions', 'valuePathSupportedSegments'], [])\n );\n },\n getIndicatorsWithNonEditableValuePaths: () => _.chain(definitions)\n .filter((pipe) => !pipe?.configFormOptions?.valuePathEditable)\n .map((pipe) => pipe.type)\n .value()\n };\n})();\n\n// TODO configFieldOptions\nexport const configDisplayNames = {\n noOfCandles: 'Period',\n valuePaths: 'Field'\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { getEmptyOrderConfig } from './signalConfigs';\n\nexport const TRADE_TYPES = {\n positional: 'positional',\n intraday: 'intraday'\n};\n\nexport {\n signalConditionOptions,\n defaultSignalConfigs,\n CONDITION_OPERATORS,\n getEmptySignalConfig,\n COMPARISION_TYPE_OPERATORS,\n SIGNAL_CONFIG,\n getEmptyOrderConfig,\n WEEKLY_OPTION_AVAILABLE_FROM\n} from './signalConfigs';\n\nexport const QUANT_CONFIG_FIELDS = {\n instrumentGroups: 'instrumentGroups',\n pipeConfigs: 'pipeConfigs',\n entrySignalConfigs: 'entrySignalConfigs',\n exitSignalConfigs: 'exitSignalConfigs',\n expiryConfigs: 'expiryConfigs',\n transactionConfigs: 'transactionConfigs',\n name: 'name',\n trailingStopLoss: 'trailingStopLoss',\n overallStopLoss: 'overallStopLoss',\n overallStopGain: 'overallStopGain',\n overallStopGainPrice: 'overallStopGainPrice',\n overallStopLossPrice: 'overallStopLossPrice',\n orderConfigs: 'orderConfigs',\n stopAndLimitPriceDifferenceInPercentage: 'stopAndLimitPriceDifferenceInPercentage',\n gapBetweenBuyAndSellOrdersInSeconds: 'gapBetweenBuyAndSellOrdersInSeconds',\n combinedPremiumConfigs: 'combinedPremiumConfigs',\n entryOrderModification: 'entryOrderModification',\n exitOrderModification: 'exitOrderModification'\n};\n\nexport const EXPIRY_TYPES = {\n auto: {\n key: 'auto',\n diaplayName: 'Auto Expiry',\n },\n expire: {\n key: 'expire',\n diaplayName: 'Manual Expiry',\n },\n rollover: {\n key: 'rollover',\n diaplayName: 'RollOver',\n }\n};\n\nexport const OPTIONS_EXPIRY = {\n monthly: 'monthly',\n weekly: 'weekly'\n};\n\nexport const HOURS = _.range(9, 16);\nexport const MINUTES = _.range(0, 60);\nexport const DAYS = {\n [OPTIONS_EXPIRY.monthly]: _.range(0, 30),\n [OPTIONS_EXPIRY.weekly]: _.range(0, 5),\n};\nexport const ENTRY_TIME = 'entryTime';\nexport const EXIT_TIME = 'exitTime';\n\nexport const getEmptyTimeBasedSignal = () => ({\n entryTime: '',\n exitTime: ''\n});\n\nexport const getDefaultExpiryHandling = () => ({\n type: EXPIRY_TYPES.auto.key,\n exitTime: '15:28',\n exitDaysBefore: 0\n});\n\nexport const getEmptyExpiryHandling = () => ({\n type: EXPIRY_TYPES.auto.key,\n exitTime: '',\n exitDaysBefore: 0\n});\n\nexport const getDefaultTimeBasedSignalForIntraday = () => ({\n entryTime: '09:15',\n exitTime: '15:25'\n});\n\nexport const QUANT_CONFIG_ORDER_TYPE = {\n market: 'market',\n limit: 'limit',\n 'sl-l': 'sl-l'\n};\n\nexport const PRODUCT_TYPE = {\n mis: 'mis',\n normal: 'normal'\n};\n\nexport const STRIKE_INDEX = 'strikeIndex';\n\nexport const getOrderModificationEmptyConfig = { action: '', actionTimeInSeconds: 0 };\n\nexport const isPlaceOptionsEntryBuyOrdersFirst = '';\n\nconst defaultMaxInstrumentsInGroup = 1;\nexport const emptyQuantConfig = () => ({\n chartConfig: {\n type: 'candle',\n boxUnitSize: 5,\n boxPercentage: 0,\n isContinuousRollup: false,\n },\n segment: SEGMENT_CONFIG.equity,\n entryOrderType: QUANT_CONFIG_ORDER_TYPE.market,\n exitOrderType: QUANT_CONFIG_ORDER_TYPE.market,\n expiryHandling: getEmptyExpiryHandling(),\n instrumentGroups: [],\n maxInstrumentsInGroup: defaultMaxInstrumentsInGroup,\n maxTransactionsPerDay: 1,\n optionsExpiryCycle: OPTIONS_EXPIRY.monthly,\n optionStrikeCalculationBasedOn: STRIKE_INDEX,\n orderConfigs: [].concat(getEmptyOrderConfig(defaultMaxInstrumentsInGroup)),\n overallStopGain: undefined,\n overallStopGainPrice: undefined,\n overallStopLoss: undefined,\n overallStopLossPrice: undefined,\n combinedPremiumConfigs: [],\n pipeConfigs: [],\n product: PRODUCT_TYPE.mis,\n repeatOrder: true,\n stopAfterTrade: false,\n timeBasedSignal: getDefaultTimeBasedSignalForIntraday(),\n tradingType: TRADE_TYPES.intraday,\n trailingStopLoss: undefined,\n stopAndLimitPriceDifferenceInPercentage: 0,\n gapBetweenBuyAndSellOrdersInSeconds: 0,\n isSquareOffTransactionIfEntryFailed: false,\n limitOrderBufferPercentage: 0,\n customPropConfigs: [],\n adjustmentOptions: {},\n});\n\nexport const emptyCustomPropConfig = {\n name: '', // \n outputSchema: '', // \n code: '',\n inputVals: ''\n};\n\n// For Modify Integration added\n// entryOrderModification: { action: '', actionTimeInSeconds: 0 }\n// exitOrderModification: { action: '', actionTimeInSeconds: 0 }\n// those key values is only for actual....\n// -These keyValue has validation in quant schema, when we send the keys\n\n// For Options Buy Place First\n// isPlaceOptionsEntryBuyOrdersFirst: true || false\n// same as\n// these key values is only for actual....\n// -This keyValue has validation in frontend true or false selector...\n// backtest and paper.. those key values are not come.. ProfitAndOrdersComponents.jsx\n\nexport const CHART_PATTERNS = {\n candle: 'candle',\n heikinashi: 'heikinashi',\n renko: 'renko'\n};\n\nexport const groupingOptions = [\n {\n type: 'single',\n noOfInstruments: 1\n },\n {\n type: 'pair',\n noOfInstruments: 2\n }\n];\n\nexport const START_OF_DATE = moment('01-06-2019', 'DD-MM-YYYY').toDate();\nexport const END_OF_DATE = moment().subtract(1, 'days').toDate();\n\nexport const STOPS_VALUE_TYPES = {\n PERCENT: 'percent',\n PRICE: 'price'\n};\n\nconst getEmptyOverAllStopGainConfig = () => ({\n overallStopGain: undefined,\n overallStopGainPrice: undefined\n});\n\nconst getEmptyOverAllTrailingStopLossConfig = () => ({\n trailingStopLoss: undefined,\n trailingStopLossPrice: undefined\n});\n\nconst getOverAllStopLossConfig = () => ({\n overallStopLoss: undefined,\n overallStopLossPrice: undefined\n});\n\nexport const overAllStopsConfig = {\n overallStopGain: {\n percent: {\n key: 'overallStopGain',\n config: getEmptyOverAllStopGainConfig()\n },\n price: {\n key: 'overallStopGain',\n config: getEmptyOverAllStopGainConfig()\n }\n },\n overallStopLoss: {\n percent: {\n key: 'overallStopLoss',\n config: getOverAllStopLossConfig()\n },\n price: {\n key: 'overallStopLoss',\n config: getOverAllStopLossConfig()\n }\n },\n trailingStopLoss: {\n percent: {\n key: 'trailingStopLoss',\n config: getEmptyOverAllTrailingStopLossConfig()\n },\n price: {\n key: 'trailingStopLoss',\n config: getEmptyOverAllTrailingStopLossConfig()\n }\n }\n};\n\nexport const getAlteredEmptyQuantConfig = () => {\n const currentCandle = PipeDefinitionUtility.getPipeConfigDefaults('currentCandle');\n const currentoneMinuteCandleFuturePrice = {\n ...currentCandle,\n name: 'Current 5 minute',\n };\n\n return {\n ...emptyQuantConfig(),\n pipeConfigs: [currentoneMinuteCandleFuturePrice]\n };\n};\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport { POSITION_VALUE_TYPES } from 'v2/common/constants/index';\n\nexport {\n OPTIONS_EXPIRY,\n WEEKLY_OPTION_AVAILABLE_FROM,\n STOPS_VALUE_TYPES\n} from 'modules/QuantBuilder/config';\n\nexport const STRIKE_KEYS = {\n strikeIndex: 'strikeIndex',\n premium: 'premium',\n // standardDeviation: 'standardDeviation',\n valuePath: 'valuePath',\n // indicatorValue: 'indicatorValue',\n strikePrice: 'strikePrice',\n equityPrice: 'equityPrice',\n // maximumOpenInterest: 'maximumOpenInterest'\n};\nexport const getQuantityObject = (value) => {\n return {\n value,\n type: POSITION_VALUE_TYPES.Lot,\n };\n};\n\nexport const onValidateStrikeBasedOn = (strikeBasedOn) => {\n if (_.includes([STRIKE_KEYS.indicatorValue, STRIKE_KEYS.maximumOpenInterest, STRIKE_KEYS.equityPrice],\n strikeBasedOn)) {\n return STRIKE_KEYS.strikeIndex;\n }\n\n return strikeBasedOn;\n};\n\nexport const waitAndTradeTypesAndNode = {\n WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE: 'waitUntilPremiumToIncreaseInPercentage',\n WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE: 'waitUntilPremiumToDecreaseInPercentage',\n};\nexport const getEmptyOptionConfigs = () => ({\n optionType: '',\n entryType: '',\n quantity: getQuantityObject(1),\n strikeIndex: 0,\n stopGain: undefined,\n stopLoss: undefined,\n stopGainPrice: undefined,\n stopLossPrice: undefined,\n sortId: 0,\n trailingStopLoss: {},\n reExecuteCount: 0,\n reEntryCount: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE,\n});\n\nexport const getStrikeValue = (strikeKey, defaultValue) => {\n if (strikeKey !== STRIKE_KEYS.standardDeviation) return defaultValue;\n\n return Math.abs(defaultValue) === 5 ? 1 : 2;\n};\n\nexport const getoptionStrategies = (basedOn, basedOnValue = 0) => {\n const emptyOptionConfigs = _.omit(getEmptyOptionConfigs(), STRIKE_KEYS.strikeIndex);\n return ({\n buyCall: {\n id: 'buy-call',\n name: 'buyCall',\n icon: '/options-builder-icon/bullish-buy-call.svg',\n optionConfigs: [{\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'CE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n }]\n },\n\n sellPut: {\n id: 'sell-put',\n name: 'sellPut',\n icon: '/options-builder-icon/bullish-sell-put.svg',\n optionConfigs: [{\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n }]\n },\n\n bullCallSpread: {\n id: 'bull-call-spread',\n name: 'bullCallSpread',\n icon: '/options-builder-icon/bullish-bull-call-spread.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'CE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 5),\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n bullPutSpread: {\n id: 'bull-put-spread',\n name: 'bullPutSpread',\n icon: '/options-builder-icon/bullish-bull-put-spread.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -5),\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n bearPutSpread: {\n id: 'bear-put-spread',\n name: 'bearPutSpread',\n icon: '/options-builder-icon/bearish-bear-put-spread.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'PE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -5),\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n bearCallSpread: {\n id: 'bear-call-spread',\n name: 'bearCallSpread',\n icon: '/options-builder-icon/bearish-bear-call-spread.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: basedOnValue,\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 5),\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n buyPut: {\n id: 'buy-put',\n name: 'buyPut',\n icon: '/options-builder-icon/bearish-buy-put.svg',\n optionConfigs: [{\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'PE',\n [basedOn]: 0,\n quantity: getQuantityObject(1)\n }]\n },\n\n shortStraddle: {\n id: 'straddle-tab',\n name: 'shortStraddle',\n icon: '/options-builder-icon/neutral-short-straddle.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: 0,\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: 0,\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n sellCall: {\n id: 'sell-call',\n name: 'sellCall',\n icon: '/options-builder-icon/bearish-sell-call.svg',\n optionConfigs: [{\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: 0,\n quantity: getQuantityObject(1),\n sortId: 1\n }]\n },\n\n shortStrangle: {\n id: 'strangle-tab',\n name: 'shortStrangle',\n icon: '/options-builder-icon/neutral-short-strangle.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -5),\n quantity: getQuantityObject(1),\n sortId: 0\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 5),\n quantity: getQuantityObject(1),\n sortId: 1\n }\n ]\n },\n\n ironButterfly: {\n id: 'iron-butterfly',\n name: 'ironButterfly',\n icon: '/options-builder-icon/neutral-iron-butterfly.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: 0,\n quantity: getQuantityObject(1),\n sortId: 0\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: 0,\n quantity: getQuantityObject(1),\n sortId: 1\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -5),\n quantity: getQuantityObject(1),\n sortId: 2\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 5),\n quantity: getQuantityObject(1),\n sortId: 3\n }\n ]\n },\n\n ironCondor: {\n id: 'iron-condor',\n name: 'ironCondor',\n icon: '/options-builder-icon/neutral-short-iron-condor.svg',\n optionConfigs: [\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 5),\n quantity: getQuantityObject(1)\n },\n {\n ...emptyOptionConfigs,\n entryType: 'sell',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -5),\n quantity: getQuantityObject(1),\n sortId: 1\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'CE',\n [basedOn]: getStrikeValue(basedOn, 8),\n quantity: getQuantityObject(1),\n sortId: 2\n },\n {\n ...emptyOptionConfigs,\n entryType: 'buy',\n optionType: 'PE',\n [basedOn]: getStrikeValue(basedOn, -8),\n quantity: getQuantityObject(1),\n sortId: 3\n },\n ]\n }\n });\n};\n\nexport const getOptionConfigStrategies = (basedOn) => {\n return ({\n custom: {},\n bullish: {\n buyCall: getoptionStrategies(basedOn).buyCall,\n sellPut: getoptionStrategies(basedOn).sellPut,\n bullCallSpread: getoptionStrategies(basedOn).bullCallSpread,\n bullPutSpread: getoptionStrategies(basedOn).bullPutSpread\n },\n\n bearish: {\n buyPut: getoptionStrategies(basedOn).buyPut,\n sellCall: getoptionStrategies(basedOn).sellCall,\n bearPutSpread: getoptionStrategies(basedOn).bearPutSpread,\n bearCallSpread: getoptionStrategies(basedOn).bearCallSpread\n },\n\n neutral: {\n shortStraddle: getoptionStrategies(basedOn).shortStraddle,\n shortStrangle: getoptionStrategies(basedOn).shortStrangle,\n ironButterfly: getoptionStrategies(basedOn).ironButterfly,\n ironCondor: getoptionStrategies(basedOn).ironCondor\n }\n });\n};\n\nexport const getEmptyEquityConfig = () => ({\n quantity: getQuantityObject(1),\n amount: 0,\n entryType: '',\n stopGain: undefined,\n stopLoss: undefined,\n stopGainPrice: undefined,\n stopLossPrice: undefined,\n trailingStopLoss: {},\n reExecuteCount: 0,\n reEntryCount: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE,\n});\n\nexport const getEmptyFutureConfig = () => ({\n quantityExpression: '1',\n monthIndex: 1,\n entryType: '',\n stopGain: undefined,\n stopLoss: undefined,\n stopGainPrice: undefined,\n stopLossPrice: undefined,\n trailingStopLoss: {},\n reExecuteCount: 0,\n reEntryCount: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE,\n});\n\nexport const TRAILING_PERCENTAGE = 'trailingPercentage';\nexport const ADJUST_PERCENTAGE = 'adjustPercentage';\n\nexport const getEmptyTransactionConfig = () => ({\n mode: {\n transaction: 'option',\n optionStrategy: 'custom',\n optionSubStrategy: '',\n },\n futureConfig: getEmptyFutureConfig(),\n optionConfigs: [].concat(getEmptyOptionConfigs()),\n equityConfig: getEmptyEquityConfig(),\n quantityExpressionDetails: {\n quantity: {\n value: 0,\n type: POSITION_VALUE_TYPES.Lot\n },\n operator: '',\n indicator: '',\n },\n});\n\nexport const getDefaultExistingLegConfig = {\n legType: '', action: '', optionConfigIndex: null\n};\n\nexport const getEmptyAdjustmentActionConfig = () => {\n const emptyTransactionConfig = getEmptyTransactionConfig();\n\n return ({\n ...{ ...emptyTransactionConfig, optionConfigs: [] },\n existingLegConfigs: [] // next phase\n });\n};\n\nexport const existingLegTypes = [\n { label: 'Equity', value: 'equity' },\n { label: 'Option', value: 'option' },\n { label: 'Future', value: 'future' }\n];\n\nexport const existingLegActionTypes = [\n { label: 'Close Leg', value: 'close' },\n { label: 'Move to cost', value: 'updateStopLoss' }\n];\n\nexport const TRANSACTION_TYPE_OPTIONS = { B: 'buy', S: 'sell' };\n\nexport const getStrikeIndexDisplayName = (value, optionType, valuePath) => {\n if (value === 0) {\n return valuePath || 'ATM';\n }\n\n if (value > 0) return (`${optionType === 'CE' ? 'OTM' : 'ITM'} ${Math.abs(value)}`);\n\n return (`${optionType === 'CE' ? 'ITM' : 'OTM'} ${Math.abs(value)}`);\n};\n\nexport const getEligibleIndicatorForStrike = (outputSchemas) => (\n _.filter(outputSchemas, (schema) => (\n _.includes(['pivotPoints', 'superTrend', 'todayCandle'], _.get(schema, 'indicatorType', ''))\n ))\n);\n\nexport const getValuePathOptions = (outputSchemas) => {\n const eligibleStrikeIndicators = getEligibleIndicatorForStrike(outputSchemas);\n if (_.isEmpty(eligibleStrikeIndicators)) return [];\n\n return _.map(eligibleStrikeIndicators, ({ name }) => ({\n value: name,\n displayName: name\n }));\n};\n\nexport const hasIndexInstruments = (instrumentGroups, transactionIndex) => {\n if (_.isEmpty(instrumentGroups)) return false;\n\n const { indexInstruments } = window;\n return _.every(\n _.map(instrumentGroups, (instrumentGroup) => (\n _.includes(indexInstruments, instrumentGroup[transactionIndex])\n ))\n );\n};\nconst getStrikeRange = (instrumentGroups, transactionIndex) => (\n hasIndexInstruments(instrumentGroups, transactionIndex)\n ? _.range(-30, 31)\n : _.range(-10, 11)\n);\n\nexport const getStandardDeviationName = (value) => (!value ? 'ATM' : `${value} SD`);\nexport const getMaximumOpenInterest = (value) => (!value ? 'Max Open Interest' : '2nd Max Open Interest');\n\nexport const getOptionConfigSettings = (optionType, valuePath, instrumentGroups, transactionConfigIdx) => ({\n strikeIndex: {\n title: 'Strike Index',\n options: _.map(getStrikeRange(instrumentGroups, transactionConfigIdx), (value) => ({\n value,\n displayName: getStrikeIndexDisplayName(value, optionType)\n }))\n },\n equityPrice: {\n title: 'Strike Index',\n options: _.map(getStrikeRange(instrumentGroups, transactionConfigIdx), (value) => ({\n value,\n displayName: getStrikeIndexDisplayName(value, optionType)\n }))\n },\n standardDeviation: {\n title: 'Standard Deviation',\n options: _.map(_.range(0, 4), (value) => ({\n value,\n displayName: getStandardDeviationName(value)\n }))\n },\n maximumOpenInterest: {\n title: 'Maximum Open Interest',\n options: _.map(_.range(0, 2), (value) => ({\n value,\n displayName: getMaximumOpenInterest(value)\n }))\n },\n indicatorValue: {\n title: 'Indicator Value',\n options: _.map(getStrikeRange(instrumentGroups, transactionConfigIdx), (value) => ({\n value,\n displayName: getStrikeIndexDisplayName(value, optionType, valuePath)\n }))\n },\n optionTypes: ['CE', 'PE'],\n entryTypes: TRANSACTION_TYPE_OPTIONS\n});\n\nexport const TRADE_TYPES = {\n option: 'option',\n future: 'future'\n};\n\nexport const getEmptyTransactionBuilderConfig = () => ({\n tradeType: 'optionConfigs',\n strike: 0,\n valuePath: '',\n optionType: '',\n quantity: '1',\n transactionType: '',\n stopGain: undefined,\n stopLoss: undefined,\n stopGainPrice: undefined,\n stopLossPrice: undefined,\n sortId: null,\n reEntryCount: 0,\n reExecuteCount: 0,\n trailingPercentage: undefined,\n adjustPercentage: undefined,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE,\n});\n\nexport const TRANSACTION_MODES = {\n futureConfig: 'future',\n optionConfigs: 'option',\n equityConfig: 'equity',\n futureAndOption: 'futureAndOption',\n futureAndEquity: 'futureAndEquity',\n optionAndEquity: 'optionAndEquity',\n combinedAllConfigs: 'all'\n};\n\nexport const OPTION_TYPES = ['CE', 'PE'];\nexport const TRANSACTION_TYPES = ['buy', 'sell'];\n\nconst { applicationDomain, isStrategyCreator } = window;\nconst isAllowManualSignals = _.get(applicationDomain, 'config.allow_manual_signals', false);\n\nexport const getStrikeBasedOn = () => ({\n strikeIndex: {\n value: 'strikeIndex',\n displayName: 'Future Based Strike Index',\n shouldShow: true\n },\n equityPrice: {\n value: 'equityPrice',\n displayName: 'Spot Based Strike Index',\n shouldShow: true\n },\n premium: {\n value: 'premium',\n displayName: 'Premium',\n shouldShow: true\n },\n // standardDeviation: {\n // value: 'standardDeviation',\n // displayName: 'Standard Deviation',\n // shouldShow: true\n // },\n // indicatorValue: {\n // value: 'indicatorValue',\n // displayName: 'Indicator Value',\n // shouldShow: false\n // },\n // maximumOpenInterest: {\n // value: 'maximumOpenInterest',\n // displayName: 'Maximum Open Interest',\n // shouldShow: false\n // },\n strikePrice: {\n value: 'strikePrice',\n displayName: 'Strike Price',\n shouldShow: isAllowManualSignals || isStrategyCreator\n }\n});\n\nexport const getStrikeDisplayName = (optionConfig) => {\n const {\n strikeIndex, valuePath, maximumOpenInterest, standardDeviation\n } = STRIKE_KEYS;\n const optionConfigKeys = _.keys(optionConfig);\n\n if (_.includes(optionConfigKeys, valuePath)) {\n const strike = !optionConfig[strikeIndex]\n ? ''\n : optionConfig[strikeIndex];\n\n return [_.startCase(optionConfig[valuePath]), strike];\n }\n\n return _.map(optionConfig, (value, key) => {\n if (!_.includes(_.keys(STRIKE_KEYS), key)) return '';\n if (key === strikeIndex) { return getStrikeIndexDisplayName(value, optionConfig.optionType); }\n if (key === maximumOpenInterest) return `${_.startCase(key)} ${getMaximumOpenInterest(value)}`;\n if (key === standardDeviation) return `${_.startCase(key)} ${getStandardDeviationName(value)}`;\n\n return `${_.startCase(key)} ${_.startCase(value)}`;\n });\n};\n\nconst getEmptyStopGainConfig = () => ({\n stopGain: undefined,\n stopGainPrice: undefined\n});\n\nconst getEmptyStopLossConfig = () => ({\n stopLoss: undefined,\n stopLossPrice: undefined\n});\n\nexport const stopsConfig = {\n stopGain: {\n percent: {\n key: 'stopGain',\n config: getEmptyStopGainConfig()\n },\n price: {\n key: 'stopGain',\n config: getEmptyStopGainConfig()\n }\n },\n stopLoss: {\n percent: {\n key: 'stopLoss',\n config: getEmptyStopLossConfig()\n },\n price: {\n key: 'stopLoss',\n config: getEmptyStopLossConfig()\n }\n }\n};\n\nexport const getSegmentStrikeBasedOn = (segment, filteredBasedOn) => {\n switch (segment) {\n case SEGMENT_CONFIG.equity:\n return _.filter(filteredBasedOn, ({ value }) => _.includes(\n [\n STRIKE_KEYS.premium, STRIKE_KEYS.standardDeviation, STRIKE_KEYS.equityPrice, STRIKE_KEYS.strikePrice\n ],\n value\n ));\n case SEGMENT_CONFIG.future:\n return _.filter(filteredBasedOn, ({ value }) => _.includes(\n [\n STRIKE_KEYS.premium, STRIKE_KEYS.standardDeviation, STRIKE_KEYS.strikeIndex, STRIKE_KEYS.strikePrice\n ],\n value\n ));\n default:\n return filteredBasedOn;\n }\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport { getEmptyTransactionConfig } from 'modules/TransactionsBuilder/configs';\n\nexport const WEEKLY_OPTION_AVAILABLE_FROM = moment.utc('11-03-2019', 'DD-MM-YYYY');\n\nexport const additionalLeftOperandsConfig = () => ({\n entrySignalConfigs: [\n { name: 'dayOfWeek', label: 'Day Of Week' },\n { name: 'timeOfDay', label: 'Time Of Day' },\n { name: 'daysToExpire', label: 'Days To Expire' }\n ],\n exitSignalConfigs: [\n { name: 'timeOfDay', label: 'Time Of Day' },\n { name: 'numberOfMinutesFromEntry', label: 'Number Of Minutes From Entry ' }\n ],\n stopLoss: { name: 'stopLoss', label: 'Stop Loss Percentage' },\n stopGain: { name: 'stopGain', label: 'Stop Gain Percentage' },\n});\n\nexport const adminOnlyLeftOperandsConfig = () => ({\n entrySignalConfigs: [\n { name: 'externalEntrySignal', label: 'External Entry Signal' }\n ],\n exitSignalConfigs: [\n { name: 'externalExitSignal', label: 'External Exit Signal' },\n ]\n});\n\nexport const signalConditionOptions = () => ({\n dayOfWeek: {\n rightOperandOptions: [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday'\n ],\n operatorOptions: ['contains']\n },\n timeOfDay: {\n operatorOptions: [\n 'equalTo',\n 'isAbove',\n 'isBelow',\n ]\n },\n daysToExpire: {\n rightOperandOptions: _.map(_.range(0, 31), (day) => day),\n operatorOptions: [\n 'equalTo',\n 'isBelow',\n ]\n },\n numberOfMinutesFromEntry: {\n rightOperandOptions: _.map(_.range(0, 61), (minute) => minute),\n operatorOptions: [\n 'equalTo',\n 'isAbove',\n 'isBelow',\n ]\n },\n trailingStopLoss: {\n rightOperandOptions: [],\n operatorOptions: [\n 'isAbove',\n 'isBelow',\n ]\n },\n externalEntrySignal: {\n rightOperandOptions: [1],\n operatorOptions: [\n 'equalTo',\n ]\n },\n externalExitSignal: {\n rightOperandOptions: [1],\n operatorOptions: [\n 'equalTo',\n ]\n },\n stopGain: {\n rightOperandOptions: [],\n operatorOptions: [\n 'equalOrAbove'\n ]\n },\n stopLoss: {\n rightOperandOptions: [],\n operatorOptions: [\n 'equalOrAbove'\n ]\n },\n});\n\nexport const defaultSignalConfigs = () => ({\n dayOfWeek: {\n conditionOperator: undefined,\n operator: 'equalTo',\n rightOperand: ''\n },\n timeOfDay: {\n conditionOperator: undefined,\n operator: 'equalTo',\n rightOperand: ''\n }\n});\n\nexport const CONDITION_OPERATORS = ['and', 'or'];\n\nexport const getEmptySignalConfig = () => {\n return [\n {\n conditionOperator: '',\n leftOperand: '',\n operator: '',\n rightOperand: '',\n },\n ];\n};\n\nexport const COMPARISION_TYPE_OPERATORS = [\n 'equalTo',\n 'isAbove',\n 'isBelow',\n 'crossesAbove',\n 'crossesBelow'\n];\n\nexport const SIGNAL_CONFIG = {\n ENTRY: 'entrySignalConfigs',\n EXIT: 'exitSignalConfigs',\n TRANSACTION: 'transactionConfigs',\n ADJUSTMENT_SIGNAL_CONFIGS: 'adjustmentSignalConfigs',\n ADJUSTMENT_ACTION_CONFIGS: 'adjustmentActionConfigs'\n};\n\nexport const advancedFeatureConfigs = () => ({\n isMoveToCost: false,\n isReEntry: false,\n isReExecute: false,\n isTrailingStopLoss: true,\n isWaitAndTrade: false\n});\n\nexport const getEmptyOrderConfig = (maxInstrumentsInGroup) => {\n return {\n transactionConfigs: _.times(maxInstrumentsInGroup, () => getEmptyTransactionConfig()),\n entrySignalConfigs: [],\n exitSignalConfigs: [],\n adjustmentSignalConfigs: [],\n adjustmentActionConfigs: [],\n advancedFeatureConfigs: advancedFeatureConfigs()\n };\n};\n","import _ from 'lodash';\nimport { QUANT_SCHEMA_CATEGORIES } from 'common/constants/index';\nimport { additionalLeftOperandsConfig } from 'modules/QuantBuilder/config/signalConfigs';\n\nexport const getInstrumentDisplayName = (schemaName, instrumentGroups) => {\n const [groupIdx, item, price] = _.split(schemaName, '.');\n let displayName = item;\n const priceLabel = price ? 'Price' : '';\n\n if (_.includes(schemaName, 'item')) {\n const instrumentIdx = parseInt(_.find(item, (character) => character.match(/\\d/)), 10);\n displayName = `${instrumentGroups[parseInt(groupIdx, 10)][instrumentIdx]}.${priceLabel}`;\n }\n\n return displayName;\n};\n\nexport const getLabel = (obj) => {\n if (!_.isObject(obj)) return { label: _.capitalize(obj) }; // if it is string.. not an array eg: 100\n\n const { category, label } = obj;\n const { INDICATOR, INDIVIDUALSTOP, STRATEGY_STOP } = QUANT_SCHEMA_CATEGORIES;\n\n if (category && !_.includes([INDICATOR, INDIVIDUALSTOP, STRATEGY_STOP], category)) {\n return {\n labelHtml: `${_.startCase(category)} ${label}`,\n label: `${category} ${label}`\n };\n }\n\n return { label: `${label}` };\n};\n\nexport const getGroupDisplayName = (instrumentGroup) => _.join(instrumentGroup, ' ');\n\nexport const getLabeledHashFromArray = (arrayOfObjects, isEnumPresent) => {\n if (isEnumPresent) { // for enum Label\n return _.map(arrayOfObjects, (value) => ({\n id: value.toString(),\n label: value ? 'true' : 'false'\n }));\n }\n\n return (\n _.map(_.flatten(arrayOfObjects), (obj) => { // flatten for day of week like [Monday, Tuesday]\n if (!_.isObject(obj)) return { id: obj.toString(), label: _.capitalize(obj) };\n // startCase is showing 09 30.. to show 09:30\n // it is string value not an array eg: Day of week\n\n return { id: obj.name ? obj.name : obj.toString(), ...getLabel(obj) };\n })\n );\n};\n\nexport const removeTagsFromString = (operands) => {\n return _.map(operands, (operand) => {\n return { ...operand, label: operand.label.replace(/(<([^>]+)>)/ig, '') };\n });\n};\n\nexport const getValuePathOptionsForIndicator = (outputSchema) => {\n const { isAdmin } = window;\n const isInclude = (category, name) => {\n if (_.includes([\n QUANT_SCHEMA_CATEGORIES.INDIAVIX,\n QUANT_SCHEMA_CATEGORIES.COMBINED_PREMIUM\n ], category)) {\n return true;\n } if (_.includes([QUANT_SCHEMA_CATEGORIES.FUTURE_PRICE,\n QUANT_SCHEMA_CATEGORIES.EQUITY_PRICE], category) && !_.includes(name, 'close')) {\n // removed .close from showing\n return true;\n }\n\n return false;\n };\n const instrumentOutputSchema = _.filter(outputSchema, ({ name, category }) => (\n (isAdmin || (!_.includes(name, 'INDIAVIX'))))\n && isInclude(category, name));\n\n // indivix and equity is hided for\n // testing purpose it is for admin only..\n\n return getLabeledHashFromArray(instrumentOutputSchema);\n};\n\nexport const isValueMatchingWithSchema = (outputSchema, value) => {\n return _.filter(outputSchema, (schema) => schema.name === value);\n};\n\nexport const getSelectedLabelForIndicator = (valuePaths, outputSchema) => {\n const filterLabel = _.map(valuePaths, (valuePath) => { // valuePaths is *mandatory matching with the schema\n return isValueMatchingWithSchema(outputSchema, valuePath);\n });\n\n return getLabeledHashFromArray(_.flattenDeep(filterLabel));\n};\n\nexport const getSelectedOperandLabelForSignal = (outputSchema, leftOperand, rightOperand) => {\n const addedConfigsForValidation = [\n ...outputSchema,\n ..._.flattenDeep(_.values(additionalLeftOperandsConfig()))\n ];\n // added additional why.. because there is an option like dayofweek .. timeofday.. etc\n // why union beacuse there is timeOfDay in entry and exit singal.. while added additional leftoperand..\n // both will apply .. so uniq will be removed..\n const filteredMatchingLeftOperand = _.filter(_.unionBy(addedConfigsForValidation, 'name'),\n ({ name }) => name === leftOperand);\n const selectedLeftOperand = !_.isEmpty(filteredMatchingLeftOperand)\n ? filteredMatchingLeftOperand : [leftOperand];\n\n if (_.isUndefined(rightOperand)) return getLabeledHashFromArray(selectedLeftOperand); // for leftOperand\n\n const filteredMatchingRightOperand = _.filter(addedConfigsForValidation, (\n { name }\n ) => name === rightOperand);\n\n // whether right operand is matching with schema.. directly get label\n if (!_.isEmpty(filteredMatchingRightOperand)) return getLabeledHashFromArray(filteredMatchingRightOperand);\n\n // we have to find whether the value is enum or not... so right operand is not matching with schema...\n // we have leftoperand.. so check it is matching with schema.. while matching..\n // find it has enum or not.. if its enum.. return true or false;\n if (_.isEmpty(filteredMatchingLeftOperand)) return getLabeledHashFromArray([rightOperand]);\n\n const { enum: enumArray } = _.head(filteredMatchingLeftOperand);\n // if enum is present and rightOperand should not be empty string.. because we have to check 0 or 1.\n if (enumArray && rightOperand !== '') {\n if (_.includes(enumArray, Number(rightOperand))) {\n return getLabeledHashFromArray([Number(rightOperand)], true);\n } // if user can give 0 or 1 ... above conditions is handled..\n // if user give above 1 .. below return will be handled..\n\n return getLabeledHashFromArray([rightOperand]);\n }\n\n return getLabeledHashFromArray([rightOperand]);\n};\n","import _ from 'lodash';\nimport {\n COMPARISION_TYPE_OPERATORS,\n signalConditionOptions,\n} from 'modules/QuantBuilder/config';\nimport { getLabeledHashFromArray } from 'common/utils/displayNames';\nimport {\n additionalLeftOperandsConfig, adminOnlyLeftOperandsConfig\n} from 'modules/QuantBuilder/config/signalConfigs';\n\nconst getRightOperandSuggestions = (leftOperand, outputSchema) => (\n _.find(outputSchema, (schema) => ((schema.name === leftOperand) && (!!schema.enum)))\n);\n\nconst getAddonLeftOperands = (leftOperand, isClonedQuant, signalConfigField) => {\n let additionalLeftOperands = additionalLeftOperandsConfig()[signalConfigField];\n const stopGainOrLoss = _.get(additionalLeftOperandsConfig(), leftOperand);\n const adminOnlyAdditionalOperands = adminOnlyLeftOperandsConfig()[signalConfigField];\n if (window.isAdmin || window.currentUserBroker === 'aliceblue') {\n additionalLeftOperands = [...additionalLeftOperands, ...adminOnlyAdditionalOperands];\n }\n\n if (!isClonedQuant) return additionalLeftOperands;\n if (stopGainOrLoss) additionalLeftOperands.push(stopGainOrLoss);\n return additionalLeftOperands;\n};\n\nexport const getLeftOperands = (\n leftOperand,\n signalConfigField,\n outputSchema,\n isClonedQuant,\n) => {\n const additionalLeftOperands = getAddonLeftOperands(leftOperand, isClonedQuant, signalConfigField);\n const signalVariables = [''].concat(outputSchema)\n .concat(additionalLeftOperands);\n\n return getLabeledHashFromArray(signalVariables);\n};\n\nexport const labelForEnumPattern = 'Pattern is';\nexport const getOperators = (leftOperand, outputSchema) => {\n let lo = leftOperand;\n const rightOperandSuggestion = getRightOperandSuggestions(lo, outputSchema);\n\n if (rightOperandSuggestion) {\n return [\n { value: '', label: '', }, { label: labelForEnumPattern, value: 'equalTo' }\n ];\n } // for enum.. eg: candle pattern charts\n\n if (_.includes(lo, 'individualStop')) { lo = 'stopGain'; }\n\n return (\n [''].concat(_.get(signalConditionOptions(),\n [lo, 'operatorOptions'], COMPARISION_TYPE_OPERATORS))\n );\n};\n\nexport const getRightOperands = (leftOperand, outputSchema) => {\n const rightOperandSuggestion = getRightOperandSuggestions(leftOperand, outputSchema);\n\n if (rightOperandSuggestion) return getLabeledHashFromArray(rightOperandSuggestion.enum, true);\n // for enum.. candle pattern.. enum is handled for boolean values indicators..\n\n const rightOperands = _.get(signalConditionOptions(), [leftOperand, 'rightOperandOptions'], outputSchema);\n\n return getLabeledHashFromArray(rightOperands);\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { outputSchemaPropTypes, signalConfigPropTypes } from 'common/propTypes';\nimport { getSelectedOperandLabelForSignal } from 'common/utils/displayNames';\nimport ReactHtmlParser from 'react-html-parser';\nimport { labelForEnumPattern } from 'common/utils/signalConfigUtils';\nimport withErrorBoundary from './withErrorBoundary/index';\n\nconst propTypes = {\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n outputSchema: outputSchemaPropTypes.isRequired\n};\nconst defaultProps = {\n signalConfigs: []\n};\n\nconst getCustomizedOperator = (operator, rightOperand) => {\n const isConditionMatched = (rightOperand === true\n || rightOperand === 'false' || rightOperand === 'true' || rightOperand === false\n ) && operator === 'equalTo';\n\n if (isConditionMatched) return labelForEnumPattern;\n\n return operator;\n};\n\nconst renderSignalConfig = (signalConfig, key, outputSchema) => {\n const {\n conditionOperator, leftOperand, operator, rightOperand\n } = signalConfig;\n const sentence = [];\n\n const leftOperandConfig = getSelectedOperandLabelForSignal(outputSchema, leftOperand);\n const rightOperandConfig = getSelectedOperandLabelForSignal(\n outputSchema, leftOperand, rightOperand\n );\n const leftOperandLabel = _.map(leftOperandConfig, (\n { label, labelHtml }\n ) => { return labelHtml || label; }).join(',');\n const rightOperandLabel = _.map(rightOperandConfig, ({ label, labelHtml }) => {\n return labelHtml || label;\n }).join(',');\n\n const customizedOperator = getCustomizedOperator(operator, rightOperandLabel);\n\n sentence.push(\n conditionOperator ? (\n \n {conditionOperator}\n \n ) : ''\n );\n sentence.push(\n \n {ReactHtmlParser(leftOperandLabel || '')}\n \n );\n sentence.push({_.startCase(customizedOperator || '')});\n sentence.push(\n \n {ReactHtmlParser(rightOperandLabel || '')}\n \n );\n\n return sentence;\n};\n\nconst SignalSentence = ({ signalConfigs, outputSchema = [] }) => {\n if (_.isEmpty(signalConfigs)) return ((None));\n\n const signalSentence = _.map(signalConfigs, (\n signalConfig, key\n ) => renderSignalConfig(signalConfig, key, outputSchema));\n\n return ({signalSentence});\n};\n\nSignalSentence.propTypes = propTypes;\nSignalSentence.defaultProps = defaultProps;\n\nexport default withErrorBoundary(SignalSentence, '', false);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport SignalSentence from 'common/components/SignalSentence';\nimport { runPropTypes, outputSchemaPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n run: runPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes,\n isFiltersApplied: PropTypes.bool,\n};\nconst defaultProps = {\n outputSchema: [],\n isFiltersApplied: false\n};\n\nconst NoOrdersMessage = ({ run, outputSchema, isFiltersApplied }) => {\n const { run_type: runType, status, quant_config: quantConfig } = run;\n const orderConfigs = _.get(quantConfig, 'orderConfigs', []);\n\n let title;\n let message;\n if (status === 'started') {\n title = 'Starting backtest seems to be stuck';\n message = 'Starting backtest seems to be stuck, please contact the support team';\n } else if (runType === 'live' && status !== 'completed') {\n title = 'No entry signals achieved yet.';\n message = 'No orders yet. When entry signal conditions are met, orders will be made.'\n + 'Your entry signals are :';\n } else if (runType === 'historic' && status === 'completed' && isFiltersApplied) {\n title = 'No Orders Generated with Current Filters';\n message = 'The applied filters did not result in any matching orders. '\n + 'Adjust the filters or reset them to see all available orders.';\n } else {\n title = 'No entry signals achieved.';\n message = 'No orders made. Please check the configuration. Configured entry signals are:';\n }\n\n const entrySignalConfigs = _.map(orderConfigs, (orderConfig) => {\n return _.get(orderConfig, 'entrySignalConfigs');\n });\n const entrySignalsSentences = _.map(entrySignalConfigs, (entrySignalConfig, index) => {\n return (\n \n \n \n );\n });\n\n return (\n
    \n
    \n
    \n {title}\n {/* */}\n
    \n
    \n {message}\n
    {entrySignalsSentences}
    \n
    \n
    \n
    \n );\n};\n\nNoOrdersMessage.defaultProps = defaultProps;\nNoOrdersMessage.propTypes = propTypes;\n\nexport default NoOrdersMessage;\n","import React from 'react';\n\nimport { quantConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n quantConfig: quantConfigPropTypes,\n};\n\nconst defaultProps = {\n quantConfig: null\n};\nclass RunConfig extends React.Component {\n render() {\n const { quantConfig } = this.props;\n\n return
    {JSON.stringify(quantConfig)}
    ;\n }\n}\n\nRunConfig.propTypes = propTypes;\nRunConfig.defaultProps = defaultProps;\n\nexport default RunConfig;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n status: PropTypes.string,\n errorInfo: PropTypes.shape({})\n};\nconst defaultProps = {\n status: '',\n errorInfo: {}\n};\n\nconst RunErrorMessage = ({ status, errorInfo }) => {\n if (status !== 'errored' || !_.get(errorInfo, 'message')) {\n return null;\n }\n\n return (\n
    \n {_.get(errorInfo, 'message')}\n
    \n );\n};\n\nRunErrorMessage.propTypes = propTypes;\nRunErrorMessage.defaultProps = defaultProps;\n\nexport default RunErrorMessage;\n","import { toQueryString } from 'common/utils/urlUtils';\n\nconst LOGIN_WATCH_INTERVAL = 1000;\n\nconst getWindowProperty = (window, propertyName) => {\n try {\n return window[propertyName];\n } catch (err) {\n console.log(`caught error${err}`);\n }\n\n return false;\n};\n\nconst getLoginWindow = (URL) => {\n return window.open(\n URL,\n 'newWindow',\n 'height=770,width=1220,scrollbars=yes,status=yes,modal=yes,alwaysRaised=yes'\n );\n};\n\nexport const initiateUserAuth = (values = {}) => {\n const queryParams = { origin: 'pop_up_window' };\n if (values.action) queryParams.action = values.action;\n if (values.plan) queryParams.plan = values.plan;\n const url = `/popup_login?${toQueryString(queryParams)}`;\n const loginWindow = getLoginWindow(url);\n\n return new Promise((resolve, reject) => {\n const loginWatch = setInterval(async () => {\n if (getWindowProperty(loginWindow, 'closed') || getWindowProperty(loginWindow, 'complete')) {\n clearInterval(loginWatch);\n await fetch('/clear_auth_window_session');\n\n if ((getWindowProperty(loginWindow, 'complete') && getWindowProperty(loginWindow, 'loginSuccess'))\n || getWindowProperty(loginWindow, 'allowBacktestPlanPurchase')) {\n loginWindow.close();\n resolve();\n }\n\n reject();\n }\n }, LOGIN_WATCH_INTERVAL);\n });\n};\n\nexport const initiateBrokerCallbackLogin = (selectedBrokerHref) => {\n const loginWindow = getLoginWindow(selectedBrokerHref);\n\n return new Promise((resolve, reject) => {\n const loginWatch = setInterval(async () => {\n try {\n if (getWindowProperty(loginWindow, 'closed')\n || getWindowProperty(loginWindow, 'complete')\n || getWindowProperty(loginWindow, 'isUserSignedIn')\n ) {\n clearInterval(loginWatch);\n await fetch('/clear_auth_window_session');\n\n if (getWindowProperty(loginWindow, 'isUserSignedIn')\n && getWindowProperty(loginWindow, 'currentUserId')) {\n loginWindow.close();\n resolve(loginWindow.location);\n }\n reject();\n }\n } catch (error) {\n console.error(error);\n reject(error);\n }\n }, LOGIN_WATCH_INTERVAL);\n });\n};\n","import React from 'react';\nimport { RWebShare } from 'react-web-share';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n title: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string.isRequired,\n successCallBack: PropTypes.func,\n children: PropTypes.element.isRequired\n};\nconst defaultProps = { title: '', text: '', successCallBack: () => { } };\n\nconst WebShare = ({\n title, text, url, successCallBack, children\n}) => {\n return (\n \n {children}\n \n );\n};\n\nWebShare.propTypes = propTypes;\nWebShare.defaultProps = defaultProps;\n\nexport default WebShare;\n","import _ from 'lodash';\nimport { schemaShouldShowConfigTypes, schemaTypes } from './config';\n\nconst EQUITY_TAG_COLOR = 'rgb(151 125 29)';\nconst FUTURE_TAG_COLOR = 'rgb(66 76 157 / 92%)';\n\nconst buildClosePriceLabel = (maxInstrumentsInGroup, instrumentIndex) => {\n if (maxInstrumentsInGroup === 1) return 'Last Traded Price';\n\n return `item${instrumentIndex + 1} Last Traded Price`;\n};\n\nconst buildInstrumentLabel = (maxInstrumentsInGroup, instrumentIndex) => {\n return maxInstrumentsInGroup > 1 ? `item${instrumentIndex + 1}` : '';\n};\n\n// const buildPriceLabel = (maxInstrumentsInGroup, instrumentIndex) => {\n// if (maxInstrumentsInGroup === 1) return 'Price';\n\n// return `item${instrumentIndex + 1} Price`;\n// };\n\nconst buildDefaultLabel = (maxInstrumentsInGroup, instrumentIndex, labelName) => {\n if (maxInstrumentsInGroup === 1) return `${_.startCase(labelName)}`;\n\n return `item${instrumentIndex + 1} ${_.startCase(labelName)}`;\n};\n\nexport const buidInstrumentOutputSchema = (maxInstrumentsInGroup) => {\n const schemas = _.flatMap(_.times(maxInstrumentsInGroup), (instrumentIndex) => {\n const equitySchema = _.flatMap(['equity'], (key) => {\n return [\n {\n name: `item${instrumentIndex}.${key}`,\n type: schemaTypes.object,\n // label: 'Equity',\n label: `${buildInstrumentLabel(maxInstrumentsInGroup, instrumentIndex)}`,\n category: `${key}`,\n tagConfig: { tag: 'Equity', color: EQUITY_TAG_COLOR },\n shouldShowConfigs: [schemaShouldShowConfigTypes.pipeValuePath],\n priority: 100,\n schemaName: key\n },\n {\n name: `item${instrumentIndex}.${key}.close`,\n type: schemaTypes.number,\n label: `${buildClosePriceLabel(maxInstrumentsInGroup, instrumentIndex)}`,\n category: `${key}`,\n tagConfig: { tag: 'Equity', color: EQUITY_TAG_COLOR },\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n ],\n priority: 100,\n schemaName: key\n },\n {\n name: `item${instrumentIndex}.${key}.volume`,\n type: schemaTypes.number,\n label: `${buildDefaultLabel(maxInstrumentsInGroup, instrumentIndex, 'Volume')}`,\n category: `${key}`,\n tagConfig: { tag: 'Equity', color: EQUITY_TAG_COLOR },\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath\n ],\n priority: 100,\n schemaName: key\n }\n ];\n });\n\n const monthPriceSchema = _.flatMap(['month1Price'], (key) => {\n return [\n {\n name: `item${instrumentIndex}.${key}`,\n type: schemaTypes.number,\n category: 'future',\n tagConfig: { tag: 'Future', color: FUTURE_TAG_COLOR },\n label: `${buildInstrumentLabel(maxInstrumentsInGroup, instrumentIndex)}`,\n // label: 'Future',\n shouldShowConfigs: [schemaShouldShowConfigTypes.pipeValuePath],\n priority: 100,\n schemaName: key\n },\n {\n name: `item${instrumentIndex}.${key}.close`,\n type: schemaTypes.number,\n category: 'future',\n tagConfig: { tag: 'Future', color: FUTURE_TAG_COLOR },\n label: `${buildClosePriceLabel(maxInstrumentsInGroup, instrumentIndex)}`,\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath,\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.entryRightOperand,\n schemaShouldShowConfigTypes.exitRightOperand,\n ],\n priority: 100,\n schemaName: key\n },\n {\n name: `item${instrumentIndex}.${key}.volume`,\n type: schemaTypes.number,\n category: 'future',\n tagConfig: { tag: 'Future', color: FUTURE_TAG_COLOR },\n label: `${buildDefaultLabel(maxInstrumentsInGroup, instrumentIndex, 'Volume')}`,\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath\n ],\n priority: 100,\n schemaName: key\n },\n {\n name: `item${instrumentIndex}.${key}.openInterest`,\n type: schemaTypes.number,\n category: 'future',\n tagConfig: { tag: 'Future', color: FUTURE_TAG_COLOR },\n label: `${buildDefaultLabel(maxInstrumentsInGroup, instrumentIndex, 'Open Interest')}`,\n shouldShowConfigs: [\n // schemaShouldShowConfigTypes.pipeValuePath\n ],\n priority: 100,\n schemaName: key\n }\n ];\n });\n\n return [...monthPriceSchema, ...equitySchema];\n });\n\n schemas.push({\n name: 'INDIAVIX',\n type: schemaTypes.object,\n label: 'INDIAVIX',\n category: 'indiaVix',\n shouldShowConfigs: [schemaShouldShowConfigTypes.pipeValuePath],\n priority: 100,\n schemaName: 'INDIAVIX'\n });\n\n return schemas;\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from './config';\n\nconst INDIVIDUAL_STOP_TAG_COLOR = '#7987a1';\nconst isAdmin = window?.isAdmin;\nconst isDisplay = _.get(window, 'SA_FEATURE_FLAGS.shouldShowNewSignalProperties', false) || isAdmin;\nconst BASKET_TAG_COLOR = '#7988b2';\n\nconst schemasToDisplayNameMap = {\n lossPercentage: {\n displayName: 'Loss %',\n isDisplay: true,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n gainPercentage: {\n displayName: 'Profit %',\n isDisplay: true,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n entryTime: {\n displayName: 'Entry Time',\n isDisplay,\n type: schemaTypes.time,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n entryTimeFromNow: {\n displayName: 'Duration After entry',\n isDisplay,\n type: schemaTypes.duration,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n entryPrice: {\n displayName: 'Entry Price',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n exitTime: {\n displayName: 'Exit Time',\n isDisplay,\n type: schemaTypes.time,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n exitTimeFromNow: {\n displayName: 'Duration After exit',\n isDisplay,\n type: schemaTypes.duration,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n exitPrice: {\n displayName: 'Exit Price',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n lastTradedPrice: {\n displayName: 'Last Traded Price',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n hasEntered: {\n displayName: 'Already Entered',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n hasExited: {\n displayName: 'Already Exited',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n hasExitedInProfit: {\n displayName: 'Already Exited In Profit',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n hasExitedInLoss: {\n displayName: 'Already Exited In Loss',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n hasMovedToCost: {\n displayName: 'Already Moved To Cost',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n stopLossTrailCount: {\n displayName: 'Number Of StopLoss Trails',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n lossAmount: {\n displayName: 'Loss Amount',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n gainAmount: {\n displayName: 'Profit Amount',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n lossPoints: {\n displayName: 'Loss Points',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n gainPoints: {\n displayName: 'Profit Points',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ]\n },\n strikePrice: {\n displayName: 'Strike Price',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n }\n};\n\nconst getIndividualStopSchema = (label, extraArgs = {}) => {\n return _.chain(schemasToDisplayNameMap)\n .pickBy(({ isDisplay: isShow }) => isShow)\n .map(({ displayName, type, shouldShowConfigs }, schema) => {\n return {\n type,\n schemaName: schema,\n category: 'individualStop',\n name: `individualStop.${label}.${schema}`,\n label: `${displayName}`,\n tagConfig: { tag: `Leg ${label}`, color: INDIVIDUAL_STOP_TAG_COLOR },\n shouldShowConfigs,\n priority: 110,\n infoLink: `/faq/signalProperties/#${displayName}`,\n ...extraArgs\n };\n })\n .value();\n};\n\nconst getBaseIntentSchema = (intents, caseIndex) => {\n return _.chain(intents)\n .filter((intent) => intent?.type === INTENT_TYPES.OpenLeg)\n .map((intent) => {\n const { identifier: { label } } = intent;\n return getIndividualStopSchema(\n label,\n { caseIndex }\n );\n })\n .value();\n};\n\nconst getAdjustmentIntentSchema = (adjustments, caseIndex) => {\n return _.map(adjustments, (adjustment, adjustmentIndex) => {\n const { intents: adjustmentIntents } = adjustment;\n return _.chain(adjustmentIntents)\n .filter((intent) => intent?.type === INTENT_TYPES.OpenLeg)\n .map((intent) => {\n const { identifier: { label } } = intent;\n return getIndividualStopSchema(\n label,\n { caseIndex, adjustmentIndex }\n );\n })\n .value();\n });\n};\n\nconst getBasketIntentsInPipeConfigs = (pipeConfigs, bName) => {\n return _.chain(pipeConfigs)\n .filter(({ type, name }) => type === 'basket' && name === bName)\n .map(({ config: { legs } }) => legs)\n .compact()\n .flatten()\n .value();\n};\n\nconst getBasketIntentSchema = (intents, pipeConfigs, extraArgs) => {\n return _.chain(intents)\n .filter((intent) => intent?.type === INTENT_TYPES.OpenBasket)\n .map((intent) => {\n const { identifier: { label: basketLabel }, name: bName } = intent;\n const basketIntents = getBasketIntentsInPipeConfigs(pipeConfigs, bName);\n\n return _.chain(basketIntents)\n .filter((intnt) => intnt?.type === INTENT_TYPES.OpenLeg)\n .map((intnt) => {\n const { identifier: { label } } = intnt;\n return getIndividualStopSchema(\n `${basketLabel}(${label})`,\n {\n tagConfig: { tag: `Basket ${basketLabel} (Leg ${label})`, color: BASKET_TAG_COLOR },\n ...extraArgs\n }\n );\n })\n .value();\n })\n .flatten()\n .value();\n};\n\nexport const buildIndividualStopOutputSchema = (cases, pipeConfigs) => {\n if (_.isEmpty(cases)) return [];\n\n return _.chain(cases)\n .map((caseConfig, caseIndex) => {\n const { entry: { intents: baseIntents }, adjustments } = caseConfig;\n const adjustmentBasketIntentSchema = _.chain(adjustments)\n .map((adjustment, adjustmentIndex) => {\n return getBasketIntentSchema(adjustment?.intents, pipeConfigs, {\n caseIndex,\n adjustmentIndex\n });\n })\n .flatten()\n .value();\n\n return [\n ...getBaseIntentSchema(baseIntents, caseIndex),\n ...getAdjustmentIntentSchema(adjustments, caseIndex),\n ...getBasketIntentSchema(baseIntents, pipeConfigs, {\n caseIndex,\n }),\n ...adjustmentBasketIntentSchema,\n ];\n })\n .flattenDeep()\n .value();\n};\n","import _ from 'lodash';\nimport { schemaShouldShowConfigTypes, schemaTypes } from './config';\n\nconst schemaToLabelMap = {\n stopLoss: {\n isDisplay: true,\n displayName: 'Current Transaction Loss %',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ],\n },\n stopGain: {\n isDisplay: true,\n displayName: 'Current Transaction Profit %',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ],\n },\n stopLossAmount: {\n isDisplay: true,\n displayName: 'Current Transaction Loss Amount',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ],\n },\n stopGainAmount: {\n isDisplay: true,\n displayName: 'Current Transaction Profit Amount',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand\n ],\n },\n lastTransactionLossPercent: {\n isDisplay: window?.isAdmin,\n displayName: 'Last Transaction Loss %',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n ],\n },\n lastTransactionGainPercent: {\n isDisplay: window?.isAdmin,\n displayName: 'Last Transaction Profit %',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n ],\n },\n lastTransactionLossAmount: {\n isDisplay: window?.isAdmin,\n displayName: 'Last Transaction Loss Amount',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n ],\n },\n lastTransactionGainAmount: {\n isDisplay: window?.isAdmin,\n displayName: 'Last Transaction Profit Amount',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n ],\n },\n lastTransactionDuration: {\n isDisplay: window?.isAdmin,\n displayName: 'Last Transaction Duration',\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.entryLeftOperand\n ],\n }\n};\n\nexport const buildStrategyStopOutputSchema = () => {\n return _.chain(schemaToLabelMap)\n .pickBy(({ isDisplay }) => isDisplay)\n .map((config, name) => {\n return {\n type: schemaTypes.number,\n category: 'strategyStop',\n name,\n label: config?.displayName,\n shouldShowConfigs: config?.shouldShowConfigs,\n priority: 200,\n schemaName: name\n };\n })\n .value();\n};\n","import _ from 'lodash';\nimport { schemaShouldShowConfigTypes, schemaTypes } from './config';\n\nconst commonEntryOrExitOutputSchema = [\n {\n name: 'timeOfDay',\n label: 'Time Of Day',\n type: schemaTypes.time,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n ],\n },\n {\n name: 'dayOfWeek',\n label: 'Day Of Week',\n type: schemaTypes.dayOfWeek,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n ],\n },\n {\n name: 'date',\n label: 'Date',\n type: schemaTypes.date,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n ],\n },\n {\n name: 'daysToExpire',\n label: 'Days To Expire',\n type: schemaTypes.target,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.entryLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.exitLeftOperand,\n ],\n },\n {\n name: 'numberOfMinutesFromEntry',\n label: 'Number Of Minutes From Entry',\n type: schemaTypes.minute,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.exitLeftOperand,\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n ],\n }\n];\n\nexport const buildCommonEntryOrExitOutputSchema = () => {\n return _.chain(commonEntryOrExitOutputSchema)\n .map(({\n label, name, type, shouldShowConfigs\n }) => {\n return {\n type,\n schemaName: name,\n category: 'exitSignalLeftOperand',\n shouldShowConfigs,\n name,\n label,\n caseIndex: undefined,\n priority: 80,\n };\n })\n .value();\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { schemaShouldShowConfigTypes, schemaTypes } from './config';\n\nconst isDisplay = window?.isAdmin;\n\nconst schemasToDisplayNameMap = {\n exitTime: {\n displayName: 'Exit Time',\n isDisplay,\n type: schemaTypes.time,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n exitTimeFromNow: {\n displayName: 'Duration After exit',\n isDisplay,\n type: schemaTypes.duration,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n hasExited: {\n displayName: 'Already Exited',\n isDisplay,\n type: schemaTypes.boolean,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n lossAmount: {\n displayName: 'Loss Amount',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n gainAmount: {\n displayName: 'Profit Amount',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n lossPoints: {\n displayName: 'Loss Points',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n },\n gainPoints: {\n displayName: 'Profit Points',\n isDisplay,\n type: schemaTypes.number,\n shouldShowConfigs: [\n schemaShouldShowConfigTypes.adjustmentLeftOperand,\n schemaShouldShowConfigTypes.adjustmentRightOperand,\n schemaShouldShowConfigTypes.intentValuePath\n ]\n }\n};\n\nconst getConfigs = (basketIntent, extraArgs = {}) => {\n return _.map(schemasToDisplayNameMap, (schemaConfig, schemaName) => {\n const {\n displayName, isDisplay: isShow, type, shouldShowConfigs\n } = schemaConfig;\n if (!isShow) return null;\n const { label } = basketIntent.identifier;\n\n return {\n name: `basket_${basketIntent.identifier.label}_${schemaName}`,\n type,\n tagConfig: { tag: `Basket ${label}`, color: '#FFA500' },\n category: 'basket',\n label: displayName,\n shouldShowConfigs,\n priority: 111,\n schemaName,\n ...extraArgs,\n };\n });\n};\n\nexport const buildBasketOutputSchema = (cases) => {\n if (_.isEmpty(cases)) return null;\n\n return _.chain(cases)\n .map((caseConfig, caseIndex) => {\n const { entry: { intents: baseIntents }, adjustments } = caseConfig;\n\n return [\n _.chain(baseIntents)\n .filter(({ type }) => type === INTENT_TYPES.OpenBasket)\n .map((basketIntent) => {\n return getConfigs(basketIntent, { caseIndex });\n })\n .value(),\n _.chain(adjustments)\n .map((adjustment, adjustmentIndex) => {\n const basketIntents = _.filter(\n adjustment?.intents ?? [], ({ type }) => type === INTENT_TYPES.OpenBasket\n );\n return _.map(basketIntents, (basketIntent) => {\n return getConfigs(basketIntent, { caseIndex, adjustmentIndex });\n });\n })\n .value()\n ];\n })\n .compact()\n .flattenDeep()\n .value();\n};\n","import _ from 'lodash';\nimport { PipeDefinitionUtility } from '../index';\nimport { buidInstrumentOutputSchema } from './instrumentOutputSchema';\nimport { buildIndividualStopOutputSchema } from './individualStopOutputSchema';\nimport { buildStrategyStopOutputSchema } from './strategyStopOutputSchema';\nimport { buildCommonEntryOrExitOutputSchema } from './commonEntryOrExitOutputSchema';\nimport { buildBasketOutputSchema } from './basketOutputSchema';\n\nconst getOutputSchemaForPipe = (pipe, pipeIndex) => {\n const { type } = pipe;\n const pipeDefinition = PipeDefinitionUtility.getDefinitions()[type];\n if (pipeDefinition) {\n return _.chain(pipeDefinition.buildOutputSchema(pipe))\n .map((schema) => ({ ...schema, pipeIndex }))\n .value();\n }\n return [];\n};\n\nexport const getOutputSchema = (quantConfig) => {\n if (_.isEmpty(quantConfig)) { return []; }\n\n const {\n pipeConfigs = [],\n cases = [],\n maxInstrumentsInGroup,\n } = quantConfig;\n return _.flatten([\n _.flatMap(pipeConfigs, getOutputSchemaForPipe),\n buidInstrumentOutputSchema(maxInstrumentsInGroup),\n buildIndividualStopOutputSchema(cases, pipeConfigs),\n buildBasketOutputSchema(cases),\n buildCommonEntryOrExitOutputSchema(),\n buildStrategyStopOutputSchema()\n ]).map((schema) => ({ ...schema }));\n};\n","import {\n INTENT_TYPES,\n SEGMENT_CONFIG,\n STRIKE_SELECTION_TYPES,\n BUILDER_QUANT_CONFIG_VERSION,\n STOPS_VALUE_TYPES,\n OPTION_TYPES,\n SL_TRAIL_TYPES\n} from 'v2/common/constants/index';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\n\nexport const getEmptySignals = [\n {\n conditionOperator: '',\n leftOperand: '',\n operator: '',\n rightOperand: '',\n },\n];\n\nexport const signalTypes = {\n entrySignal: 'entrySignal',\n exitSignal: 'exitSignal',\n adjustSignal: 'adjustSignal',\n};\n\nexport const CONDITION_OPERATORS = ['and', 'or'];\n\nexport const defaultIntentInstrumentExpiry = {\n index: 1,\n cycle: 'weekly'\n};\n\nexport const IntentLabelConfig = (() => {\n const config = { default: 0 };\n\n return {\n get config() {\n return config;\n },\n setConfigNameAndValue(name, value) {\n config[name] = value;\n },\n reverse(name, value) {\n const label = config[name];\n if (name === 'default' && Number(value) === Number(label) && Number(label) !== 0) {\n config[name] = Number(label) - 1;\n return;\n }\n\n if (value === label) {\n const newLabel = String.fromCharCode(label.charCodeAt(0) - 1);\n config[name] = newLabel;\n }\n }\n };\n})();\n\nexport const getDefaultIdentifier = (name = 'default') => {\n let newLabel = '';\n if (name === 'default') {\n const label = IntentLabelConfig.config[name] || 0;\n newLabel = Number(label) + 1;\n } else {\n const label = IntentLabelConfig.config[name];\n newLabel = !label ? String.fromCharCode('A'.charCodeAt(0)) : String.fromCharCode(label.charCodeAt(0) + 1);\n }\n IntentLabelConfig.setConfigNameAndValue(name, newLabel);\n\n return { label: `${newLabel}`, iteration: 0 };\n};\n\nexport const getDefaultTarget = () => ({\n label: '',\n iteration: 0,\n});\n\nexport const defaultStopGain = { type: STOPS_VALUE_TYPES.Percent, value: 0 };\n\nexport const defaultLinearTrail = {\n type: SL_TRAIL_TYPES.Linear,\n trailingValue: 0,\n adjustValue: 0\n};\n\nexport const defaultStopLoss = {\n type: STOPS_VALUE_TYPES.Percent, value: 0, trail: defaultLinearTrail\n};\n\nexport const getDefaultQuickAdjustments = () => ({\n signal: '',\n action: '',\n targets: [],\n});\n\nexport const getDefaultIntent = () => ({\n type: INTENT_TYPES.OpenLeg,\n instrument: {\n type: SEGMENT_CONFIG.option,\n instrumentIndex: 0,\n expiry: defaultIntentInstrumentExpiry,\n strike: {\n type: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n strikeIndex: 0,\n multiplier: 0,\n },\n optionType: OPTION_TYPES.CE,\n },\n target: getDefaultTarget(),\n side: 'buy',\n quantity: 1,\n stopGain: defaultStopGain,\n stopLoss: defaultStopLoss,\n waitUntilPremiumToIncreaseInPercentage: 0,\n waitUntilPremiumToDecreaseInPercentage: 0,\n waitAndTradeType: 'waitUntilPremiumToIncreaseInPercentage',\n reEntryCount: 0,\n reExecuteCount: 0,\n uiConfigs: { quickAdjustments: [] }\n});\n\nexport const getDefaultModifyOrderIntent = () => ({\n type: INTENT_TYPES.CloseLeg,\n target: getDefaultTarget(),\n identifier: getDefaultIdentifier()\n});\n\nexport const getDefaultBasketIntent = () => ({\n type: INTENT_TYPES.OpenBasket,\n name: '',\n // identifier: getDefaultIdentifier(),\n multiplier: 1,\n});\n// when the intent is of type OpenBasket,\n// the identifier have to call seperately and attach to the intent\n\nexport const defaultUiBehaviourFlags = {\n isReEntry: false,\n isReExecute: false,\n isTrailingStopLoss: false,\n isWaitAndTrade: false,\n};\n\nexport const getDefaultTimeBasedSignal = {\n entryTime: '09:15',\n exitTime: '15:25'\n};\n\nexport const getDefaultExpiryHandling = {\n exitDaysBefore: 0,\n exitTime: '15:28'\n};\n\nexport const getDefaultAdjustment = () => ({\n signal: [],\n intents: []\n});\n\nexport const getDefaultCase = () => ({\n entry: {\n signal: [],\n intents: [{\n ...getDefaultIntent(),\n identifier: getDefaultIdentifier()\n }]\n },\n adjustments: [],\n exitSignal: [],\n uiConfigs: { isMoveToCost: false }\n});\n\nexport const getQuantModes = {\n simple: { label: 'Simple', value: 'simple' },\n advanced: { label: 'Advanced', value: 'advanced' }\n};\n\nexport const getDefaultQuantConfigUiConfigs = () => ({\n mode: getQuantModes.simple.value,\n segment: SEGMENT_CONFIG.equity\n});\n\nexport const emptyQuantConfig = () => ({\n version: BUILDER_QUANT_CONFIG_VERSION,\n maxInstrumentsInGroup: 1,\n instrumentGroups: [],\n tradingType: 'intraday',\n pipeConfigs: [PipeDefinitionUtility.getPipeConfigDefaults('currentCandle')],\n cases: [getDefaultCase()],\n uiBehaviourFlags: defaultUiBehaviourFlags,\n adjustmentOptions: { executionType: 'nextMinute' },\n uiConfigs: getDefaultQuantConfigUiConfigs(),\n bounds: {\n maxTransactionsPerDay: 1,\n timeBasedSignal: getDefaultTimeBasedSignal,\n expiryHandling: {}\n },\n entryOrderType: 'market',\n entryOrderModification: {},\n exitOrderType: 'market',\n exitOrderModification: {},\n isPlaceStoplossOrderToBroker: true,\n isPlaceOptionsEntryBuyOrdersFirst: true,\n});\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { STOPS_VALUE_TYPES, STRIKE_SELECTION_TYPES } from 'v2/common/constants/index';\nimport {\n getDefaultCase, getDefaultIntent, emptyQuantConfig, getDefaultIdentifier\n} from 'v2/modules/withRunForm/configs/index';\n\nexport const getOptionBuilderQuantConfig = (parsedQueryString) => {\n const strategyBuilderConfig = JSON.parse(\n decodeURIComponent(parsedQueryString.strategyBuilderConfig)\n );\n\n const strikeKeys = {\n equityPrice: {\n key: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.key,\n newType: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n optionBuilderKey: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.key,\n },\n strikeIndex: {\n key: STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex.key,\n newType: STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex.value,\n optionBuilderKey: STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex.key,\n },\n premium: {\n key: STRIKE_SELECTION_TYPES.PremiumBased.key,\n newType: STRIKE_SELECTION_TYPES.PremiumBased.value,\n optionBuilderKey: STRIKE_SELECTION_TYPES.PremiumBased.key,\n },\n strikePrice: {\n key: STRIKE_SELECTION_TYPES.StrikePrice.key,\n newType: STRIKE_SELECTION_TYPES.StrikePrice.value,\n optionBuilderKey: STRIKE_SELECTION_TYPES.StrikePrice.key,\n },\n };\n\n const {\n optionConfigs, timeBasedSignal, optionStrikeCalculationBasedOn,\n optionsExpiryCycle,\n instrumentGroups,\n } = strategyBuilderConfig;\n const defaultQuantConfig = emptyQuantConfig();\n const { newType } = strikeKeys[optionStrikeCalculationBasedOn];\n\n const oldStrikePair = _.reduce(strikeKeys, (result, value) => {\n const newResult = result;\n newResult[value.newType] = value.optionBuilderKey;\n return newResult;\n }, {});\n\n const intents = _.map(optionConfigs, (optionConfig) => {\n const defaultIntent = {\n ...getDefaultIntent(),\n identifier: getDefaultIdentifier(),\n };\n const { stopLoss, stopGain } = defaultIntent;\n const stopLossName = optionConfig?.stopLossPrice ? STOPS_VALUE_TYPES.Amount : STOPS_VALUE_TYPES.Percent;\n const stopGainName = optionConfig?.stopGainPrice ? STOPS_VALUE_TYPES.Amount : STOPS_VALUE_TYPES.Percent;\n\n const newStrike = {\n type: newType,\n [strikeKeys[optionStrikeCalculationBasedOn].key]: optionConfig[oldStrikePair[newType]] || 0,\n };\n\n if (newType === STRIKE_SELECTION_TYPES.PremiumBased.value) {\n newStrike.comparison = STRIKE_SELECTION_TYPES.PremiumBased.comparsions[0]?.value;\n }\n return {\n ...defaultIntent,\n quantity: optionConfig.quantity,\n side: optionConfig.entryType,\n instrument: {\n ...defaultIntent.instrument,\n optionType: optionConfig.optionType,\n expiry: {\n ...defaultIntent.instrument.expiry,\n cycle: optionsExpiryCycle,\n },\n strike: newStrike,\n },\n stopLoss: {\n ...stopLoss,\n type: stopLossName,\n value: optionConfig.stopLoss || optionConfig.stopLossPrice || 0,\n },\n stopGain: {\n ...stopGain,\n type: stopGainName,\n value: optionConfig.stopGain || optionConfig.stopGainPrice || 0,\n },\n };\n });\n const defaultCase = getDefaultCase();\n return {\n ...defaultQuantConfig,\n instrumentGroups,\n cases: [{\n ...defaultCase,\n entry: {\n ...defaultCase.entry,\n intents,\n }\n }],\n bounds: {\n ...defaultQuantConfig.bounds,\n timeBasedSignal,\n }\n };\n};\n\nexport const getQueryParamsBasedSanitizedQuantConfig = () => {\n const queryString = window.location.search;\n const parsedQueryString = qs.parse(queryString, { parseBooleans: true });\n const queryStringParams = _.keys(parsedQueryString);\n\n if (_.includes(queryStringParams, 'strategyBuilderConfig')) {\n return getOptionBuilderQuantConfig(parsedQueryString);\n }\n\n return null;\n};\n","import { SL_TRAIL_TYPES } from 'v2/common/constants/index';\n\nexport const getSanitizedStopLoss = (stopLoss) => {\n let trail = {};\n\n if (stopLoss?.trail?.type !== SL_TRAIL_TYPES.BookAndLinear) {\n trail = {\n type: SL_TRAIL_TYPES.Linear,\n trailingValue: stopLoss?.trail?.trailingValue || 0,\n adjustValue: stopLoss?.trail?.adjustValue || 0\n };\n }\n\n if (stopLoss?.trail?.type === SL_TRAIL_TYPES.BookAndLinear) {\n trail = {\n type: SL_TRAIL_TYPES.BookAndLinear,\n trailingValue: stopLoss?.trail?.trailingValue || 0,\n adjustValue: stopLoss?.trail?.adjustValue || 0,\n bookProfitOn: stopLoss?.trail?.bookProfitOn || 0,\n bookProfit: stopLoss?.trail?.bookProfit || 0\n };\n }\n\n return {\n ...stopLoss,\n trail\n };\n};\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\n\nconst isSegmentMatched = (segment, intent) => {\n return intent?.identifier?.segment === segment;\n};\n\nconst isOptionConfigIndexMatched = (optionConfigIndex, intent) => {\n return intent?.identifier?.optionConfigIndex === optionConfigIndex;\n};\n\nconst isAdjustmentConfigIndexMatched = (adjustmentConfigIndex, intent) => {\n return intent?.identifier?.adjustmentConfigIndex === adjustmentConfigIndex;\n};\n\nexport const getFormattedOperand = (operand, intents) => {\n const [type, , segmentWithIndex, field] = operand.split('.');\n const [segment, index1, index2] = segmentWithIndex.split('_');\n\n let optionConfigIndex;\n let adjustmentConfigIndex;\n\n if (_.includes([SEGMENT_CONFIG.future, SEGMENT_CONFIG.equity], segment)) {\n adjustmentConfigIndex = index1;\n optionConfigIndex = index2; // for this segment it will not be used\n } else {\n optionConfigIndex = index1;\n adjustmentConfigIndex = index2;\n }\n\n const baseIntent = _.find(intents, (intent) => {\n if (\n isSegmentMatched(segment, intent)\n && isOptionConfigIndexMatched(\n optionConfigIndex === undefined ? null : Number(optionConfigIndex),\n intent\n )\n && isAdjustmentConfigIndexMatched(\n adjustmentConfigIndex === undefined\n ? null\n : Number(adjustmentConfigIndex),\n intent\n )\n ) {\n return intent;\n }\n\n return null;\n });\n\n if (!baseIntent) return operand;\n\n const {\n identifier: { label },\n } = baseIntent;\n\n return `${type}.${label}.${field}`;\n};\n\nexport const getSanitizedAdjustmentSignals = (signal, intents) => {\n return _.map(signal, (signalConfig) => {\n const { leftOperand, rightOperand } = signalConfig;\n const isIndividualStopIncludesLeftOperand = leftOperand.includes('individualStop.');\n const isIndividualStopIncludesRightOperand = rightOperand?.includes('individualStop.');\n\n let newLeftOperand = leftOperand;\n let newRightOperand = rightOperand;\n if (isIndividualStopIncludesLeftOperand) {\n newLeftOperand = getFormattedOperand(leftOperand, intents);\n }\n\n if (isIndividualStopIncludesRightOperand) {\n newRightOperand = getFormattedOperand(rightOperand, intents);\n }\n\n return {\n ...signalConfig,\n leftOperand: newLeftOperand,\n rightOperand: newRightOperand,\n };\n });\n};\n","import _ from 'lodash';\nimport { PIPE_CATEGORIES } from 'v2/common/quantConfig/index';\nimport { getSanitizedStopLoss } from './stopLoss';\nimport { getSanitizedAdjustmentSignals } from './cases/signal';\n\nconst getSanitizedIntent = (intent) => {\n const { identifier } = intent;\n return {\n ...intent,\n identifier: _.pick(identifier, ['label', 'iteration']),\n };\n};\n\nexport const getSanitizedPipeConfigs = (pipeConfigs, cases) => {\n const allIntents = _.chain(cases)\n .map(({ entry: { intents: baseIntents }, adjustments }) => {\n return _.chain(adjustments).map('intents').concat(baseIntents).value();\n })\n .flattenDeep()\n .value();\n\n // customScript type to actual customScript snippet label\n return _.chain(pipeConfigs)\n .filter((pipeConfig) => !pipeConfig.uiConfigs?.isAutoPipe)\n .map((pipeConfig) => {\n let newPipeConfig = pipeConfig;\n if (\n newPipeConfig.type === 'customScript'\n && newPipeConfig.category === PIPE_CATEGORIES.snippet\n ) {\n const { snippetId } = newPipeConfig.config;\n const snippet = _.find(window.SA_COLLECTIONS.indicatorCodeSnippets, {\n id: snippetId,\n });\n\n if (_.isEmpty(snippet)) {\n return newPipeConfig;\n }\n\n return {\n ...newPipeConfig,\n type: `snippet - ${snippet.label || snippet.label_alias}`,\n };\n }\n\n if (newPipeConfig.type === 'transactionStopLoss') {\n return {\n ...newPipeConfig,\n config: {\n stopLoss: getSanitizedStopLoss(newPipeConfig.config?.stopLoss),\n },\n };\n }\n\n if (!_.isEmpty(newPipeConfig?.config?.legs)) {\n const newLegs = _.map(newPipeConfig?.config?.legs, getSanitizedIntent);\n newPipeConfig = {\n ...newPipeConfig,\n config: { ...newPipeConfig?.config, legs: newLegs },\n };\n }\n\n if (!_.isEmpty(newPipeConfig?.config?.when)) {\n const signals = newPipeConfig?.config?.when;\n\n newPipeConfig = {\n ...newPipeConfig,\n config: {\n ...newPipeConfig.config,\n when: getSanitizedAdjustmentSignals(signals, allIntents),\n },\n };\n }\n\n if (!_.isEmpty(newPipeConfig?.config?.signal)) {\n const signals = newPipeConfig?.config?.signal;\n\n newPipeConfig = {\n ...newPipeConfig,\n config: {\n ...newPipeConfig.config,\n signal: getSanitizedAdjustmentSignals(signals, allIntents),\n },\n };\n }\n\n return newPipeConfig;\n })\n .value();\n};\n","import _ from 'lodash';\nimport { STRIKE_SELECTION_TYPES } from 'v2/common/constants/index';\n\nexport const isStrikeIndexBased = (type) => {\n return _.includes(\n [\n STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex.value,\n STRIKE_SELECTION_TYPES.IndicatorValueBasedStrikeIndex.value,\n ], type\n );\n};\n\nexport const getStrikeIndexDisplayName = (value, optionType) => {\n if (value === 0) {\n return 'ATM';\n }\n\n if (value > 0) return (`${optionType === 'CE' ? 'OTM' : 'ITM'} ${Math.abs(value)}`);\n\n return (`${optionType === 'CE' ? 'ITM' : 'OTM'} ${Math.abs(value)}`);\n};\n\nconst getStrikeRange = (isIndexBased) => (\n isIndexBased\n ? _.range(-30, 31)\n : _.range(-10, 11)\n);\n\nexport const getStrikeIndexBasedOptions = (type, isIndexInstrumentBased, optionType) => {\n switch (type) {\n case STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex.value:\n case STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value:\n case STRIKE_SELECTION_TYPES.IndicatorValueBasedStrikeIndex.value:\n return _.map(getStrikeRange(isIndexInstrumentBased), (strike) => ({\n value: strike,\n label: getStrikeIndexDisplayName(strike, optionType),\n }));\n\n default:\n return [];\n }\n};\n","import _ from 'lodash';\nimport { STRIKE_SELECTION_TYPES } from 'v2/common/constants/index';\nimport { isStrikeIndexBased } from './config';\n\nexport const StrikeUtility = (() => {\n return {\n getStrikeConfigBasedOnType: (newType, comparison) => {\n const isNewIndicatorBased = newType === STRIKE_SELECTION_TYPES.IndicatorValueBasedStrikeIndex.value;\n const newObj = {\n type: newType,\n [STRIKE_SELECTION_TYPES[newType].key]: 0,\n };\n if (isNewIndicatorBased) {\n newObj.valuePath = '';\n }\n if (comparison) {\n newObj.comparison = comparison;\n }\n return newObj;\n },\n getStrikeLabel: (strike) => {\n const { type, comparison = '' } = strike;\n const strikeObj = STRIKE_SELECTION_TYPES[type];\n if (comparison) {\n const comparisonLabel = _.find(strikeObj.comparsions, { value: comparison })?.label || '';\n return `${strikeObj.label} ${comparisonLabel}`;\n }\n\n return strikeObj.label;\n },\n getStrikeObj: (strike) => {\n const {\n type, valuePath = '', comparison = '', multiplier = 0\n } = strike;\n const strikeObj = STRIKE_SELECTION_TYPES[type];\n const isIndexBased = isStrikeIndexBased(type);\n const valueType = strikeObj.key;\n const value = _.get(strike, valueType, 0);\n const isIndicatorBased = type === STRIKE_SELECTION_TYPES.IndicatorValueBasedStrikeIndex.value;\n return {\n isIndicatorBased,\n isIndexBased,\n value,\n valuePath,\n comparison,\n multiplier,\n type,\n valueType,\n };\n },\n getStrikeSelections: () => {\n return _.chain(STRIKE_SELECTION_TYPES)\n .filter(({ isShow }) => isShow)\n .map((obj) => {\n if (_.isEmpty(obj.comparsions)) {\n return { label: obj.label, value: `${obj.value}-` };\n }\n\n return obj.comparsions.map((comp) => {\n return {\n label: `${obj.label} ${comp.label}`,\n value: `${obj.value}-${comp.value}`,\n };\n });\n })\n .flatten()\n .value();\n },\n isPermissionToChoose: (type) => {\n return _.get(\n _.find(STRIKE_SELECTION_TYPES, ({ value: val }) => val === type),\n 'isPermissionToChoose',\n false\n );\n },\n isDeltaBased: (type) => {\n return type === STRIKE_SELECTION_TYPES.DeltaBased.value;\n },\n isPremiumBased: (type) => {\n return type === STRIKE_SELECTION_TYPES.PremiumBased.value;\n },\n getStrikeAlteredObj: (strike) => {\n const { type, comparison = '' } = strike;\n const isPremiumOrDeltaBased = StrikeUtility.isPremiumBased(type) || StrikeUtility.isDeltaBased(type);\n if (isPremiumOrDeltaBased && !comparison) {\n return {\n ...strike,\n comparison: STRIKE_SELECTION_TYPES.PremiumBased.comparsions[0].value,\n };\n }\n return strike;\n },\n };\n})();\n","import _ from 'lodash';\nimport {\n INTENT_TYPES,\n SEGMENT_CONFIG,\n STRIKE_SELECTION_TYPES,\n} from 'v2/common/constants/index';\nimport {\n defaultStopGain,\n defaultStopLoss,\n getDefaultTarget,\n} from 'v2/modules/withRunForm/configs/index';\nimport { StrikeUtility } from 'v2/common/components/StrikeBasedSelector/utility';\nimport { getFormattedOperand } from './signal';\nimport { getSanitizedStopLoss } from '../stopLoss';\n\nconst shouldShowIndicatorBasedStrikeIndex = _.get(\n window,\n 'SA_FEATURE_FLAGS.shouldShowIndicatorBasedStrikeIndex',\n false\n)\n || window?.isAdmin\n || false;\n\nconst shouldShowDeltaBased = _.get(window, 'SA_FEATURE_FLAGS.shouldShowDeltaBased', false)\n || window?.isAdmin\n || false;\n\nconst shouldShowIntentMultiplier = _.get(window, 'SA_FEATURE_FLAGS.shouldShowIntentMultiplier', false)\n || window?.isAdmin\n || false;\n\nexport const getSanitizedIntents = (intents, allIntents = []) => {\n return _.chain(intents)\n .filter((intent) => !_.get(intent, 'uiConfigs.isBasketIntent', false))\n .map((intent) => {\n const newIntent = _.cloneDeep(intent);\n const identifier = _.pick(newIntent?.identifier, ['label', 'iteration']);\n const targetConfig = _.get(newIntent, 'target', getDefaultTarget());\n const target = _.pick(targetConfig, ['label', 'iteration']);\n if (intent?.type !== INTENT_TYPES.OpenLeg) {\n return { ...newIntent, target, identifier };\n }\n\n const strike = _.get(newIntent, 'instrument.strike', {\n type: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n strikeIndex: 0,\n multiplier: 0,\n });\n\n newIntent.instrument.strike = StrikeUtility.getStrikeAlteredObj(strike);\n const isStopLossPesent = newIntent?.stopLoss?.value;\n const isStopGainPresent = newIntent?.stopGain?.value;\n\n const isOption = newIntent?.instrument?.type === SEGMENT_CONFIG.option;\n\n const { IndicatorValueBasedStrikeIndex } = STRIKE_SELECTION_TYPES;\n const isDeltaBased = newIntent?.instrument?.strike?.type\n === STRIKE_SELECTION_TYPES.DeltaBased.value;\n\n if (isOption && isDeltaBased && !shouldShowDeltaBased) {\n newIntent.instrument.strike = {\n type: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n strikeIndex: 0,\n multiplier: 0,\n };\n }\n\n const isIndicatorBased = newIntent?.instrument?.strike?.type\n === IndicatorValueBasedStrikeIndex.value;\n if (\n isOption\n && isIndicatorBased\n && !shouldShowIndicatorBasedStrikeIndex\n ) {\n newIntent.instrument.strike = {\n type: STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex.value,\n strikeIndex: 0,\n multiplier: 0,\n };\n }\n if (\n !shouldShowIntentMultiplier\n && newIntent?.instrument?.strike?.multiplier\n ) {\n newIntent.instrument.strike.multiplier = 0;\n }\n const strikeType = newIntent?.instrument?.strike?.type;\n\n if (isOption && strikeType === IndicatorValueBasedStrikeIndex.value) {\n const valuePath = newIntent?.instrument?.strike?.valuePath;\n if (valuePath?.includes('individualStop.')) {\n newIntent.instrument.strike.valuePath = getFormattedOperand(\n valuePath,\n allIntents\n );\n }\n }\n\n return {\n ...newIntent,\n target,\n identifier,\n stopLoss: isStopLossPesent\n ? getSanitizedStopLoss(intent?.stopLoss)\n : defaultStopLoss,\n stopGain: isStopGainPresent ? intent?.stopGain : defaultStopGain,\n };\n })\n .value();\n};\n","import _ from 'lodash';\nimport { getDefaultCase } from 'v2/modules/withRunForm/configs/index';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { getSanitizedIntents } from './intent';\nimport { getSanitizedAdjustmentSignals } from './signal';\n\n// userPermissions\nconst isMultipleCasesEnabled = _.get(window, 'SA_FEATURE_FLAGS.isMultipleCasesEnabled', false)\n || window?.isAdmin\n || false;\n\nconst getSanitizedAdjustments = (adjustments, baseIntents) => {\n return _.chain(adjustments)\n .filter(\n (adjustment) => !_.get(adjustment, 'uiConfigs.isAutoAdjustment', false)\n )\n .thru((newAdjustments) => {\n return _.chain(newAdjustments)\n .map('intents')\n .concat(baseIntents)\n .flatten()\n .filter((intent) => _.includes(\n [INTENT_TYPES.OpenLeg, INTENT_TYPES.OpenBasket],\n intent?.type\n ))\n .thru((intents) => {\n return _.map(newAdjustments, (adjustmentConfig) => {\n return {\n ...adjustmentConfig,\n signal: getSanitizedAdjustmentSignals(\n adjustmentConfig?.signal,\n intents\n ),\n intents: getSanitizedIntents(adjustmentConfig?.intents, intents),\n };\n });\n })\n .value();\n })\n .value();\n};\n\nexport const getSanitizedCases = (cases) => {\n const newCases = _.chain(cases)\n .thru((caseConfigs) => {\n return isMultipleCasesEnabled\n ? caseConfigs\n : [_.get(caseConfigs, '0', getDefaultCase())];\n })\n .map((caseConfig) => {\n const {\n entry,\n entry: { intents: baseIntents },\n adjustments,\n } = caseConfig;\n\n return {\n ...caseConfig,\n entry: { ...entry, intents: getSanitizedIntents(baseIntents) },\n adjustments: getSanitizedAdjustments(adjustments, baseIntents),\n };\n })\n .value();\n\n return newCases;\n};\n","import _ from 'lodash';\nimport { IntentLabelConfig } from 'v2/modules/withRunForm/configs/index';\n\nexport const intentIdIntializer = (cases, pipeConfigs) => {\n const legIds = [];\n const loopIntents = (intents) => {\n _.each(intents, (intent) => {\n legIds.push(intent?.identifier?.label);\n });\n };\n _.each(cases, (caseConfig) => {\n const { entry: { intents }, adjustments } = caseConfig;\n loopIntents(intents);\n _.each(adjustments, ({ intents: adjustmentIntents }) => {\n loopIntents(adjustmentIntents);\n });\n });\n\n _.each(pipeConfigs, (pipeConfig) => {\n const intents = _.get(pipeConfig, 'config.legs', []);\n _.each(intents, (intent) => {\n IntentLabelConfig.setConfigNameAndValue(pipeConfig?.name, intent?.identifier?.label);\n });\n });\n\n const maxLegId = _.chain(legIds)\n .map((legId) => Number(legId))\n .max()\n .value();\n if (!maxLegId) return;\n\n IntentLabelConfig.setConfigNameAndValue('default', maxLegId);\n};\n","import _ from 'lodash';\nimport {\n emptyQuantConfig, getDefaultQuantConfigUiConfigs, getQuantModes,\n} from 'v2/modules/withRunForm/configs/index';\nimport { getQueryParamsBasedSanitizedQuantConfig } from './queryParams';\nimport { getSanitizedPipeConfigs } from './pipes';\nimport { getSanitizedCases } from './cases/index';\nimport { intentIdIntializer } from './intentidinitializer';\n\nconst getDefaultMode = (instrumentGroups) => {\n if (_.isEmpty(instrumentGroups)) return getQuantModes.simple.value;\n if (\n _.size(instrumentGroups) === 1 && _.size(_.head(instrumentGroups)) === 1\n ) return getQuantModes.simple.value;\n\n return getQuantModes.advanced.value;\n};\n\nconst getSanitizedUiConfigs = (quantConfig) => {\n const uiConfigs = _.get(quantConfig, 'uiConfigs', {});\n const instrumentGroups = _.get(quantConfig, 'instrumentGroups', []);\n const newUiConfigs = { ...getDefaultQuantConfigUiConfigs(), ...uiConfigs };\n\n return {\n ...newUiConfigs,\n mode: _.get(newUiConfigs, 'mode', getDefaultMode(instrumentGroups))\n };\n};\n\nexport const getSanitizedQuantConfig = (quantConfig) => {\n const queryParamsQuantConfig = getQueryParamsBasedSanitizedQuantConfig();\n if (!_.isEmpty(queryParamsQuantConfig)) return queryParamsQuantConfig;\n if (_.isEmpty(quantConfig)) return emptyQuantConfig();\n\n const { cases, pipeConfigs, adjustmentOptions } = quantConfig;\n\n let executionType = _.get(adjustmentOptions, 'executionType', 'nextMinute');\n const isPermissionToSelectExecutionType = _.get(\n window, 'SA_FEATURE_FLAGS.shouldShowAdjustmentExectionType', false\n )\n || window?.isAdmin;\n const isNotValidExecutionType = !isPermissionToSelectExecutionType && executionType !== 'nextMinute';\n if (isNotValidExecutionType) {\n executionType = 'nextMinute';\n }\n\n const newCases = getSanitizedCases(cases);\n const newPipeConfigs = getSanitizedPipeConfigs(pipeConfigs, cases);\n\n intentIdIntializer(newCases, newPipeConfigs);\n\n return {\n ...quantConfig,\n adjustmentOptions: { executionType },\n cases: newCases,\n uiConfigs: getSanitizedUiConfigs(quantConfig),\n pipeConfigs: newPipeConfigs\n };\n};\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport * as Sentry from '@sentry/browser';\n\nconst propTypes = {\n children: PropTypes.node,\n errorMessage: PropTypes.string,\n isShowHeader: PropTypes.bool\n};\n\nconst defaultProps = {\n children: null,\n errorMessage: '',\n isShowHeader: true\n};\n\nclass ErrorHandler extends Component {\n constructor(props) {\n super(props);\n this.state = { errorInfo: null, error: null };\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n errorInfo,\n error\n });\n }\n\n render() {\n const { errorInfo, error } = this.state;\n const { children, errorMessage, isShowHeader } = this.props;\n\n if (errorInfo) {\n Sentry.captureException(error); // sentry capture\n\n return (\n
    \n {isShowHeader &&

    Something went wrong

    }\n \n {errorMessage}\n \n
    \n {error && error.toString()}\n
    \n {errorInfo.componentStack || null}\n
    \n
    \n );\n }\n return children;\n }\n}\n\nErrorHandler.propTypes = propTypes;\nErrorHandler.defaultProps = defaultProps;\n\nexport default ErrorHandler;\n","import React, { Component } from 'react';\nimport ErrorHandler from './ErrorHandler';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nexport default function withErrorBoundary(WrappedComponent, errorMessage = '', isShowHeader = false) {\n return class WithErrorBoundary extends Component {\n render() {\n return (\n \n \n \n );\n }\n };\n}\n\nwithErrorBoundary.propTypes = propTypes;\nwithErrorBoundary.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport withErrorBoundary from './withErrorBoundary/index';\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes,\n};\nconst defaultProps = {\n instrumentGroups: [[]]\n};\n\nconst InstrumentGroupsSentence = ({ instrumentGroups }) => {\n if (_.isEmpty(instrumentGroups)) {\n return (\n
    (None)
    \n );\n }\n\n return _.map(instrumentGroups, (instrumentGroup, index) => {\n const sanitizeInstrumentGroup = _.map(instrumentGroup,\n (instrument) => _.replace(instrument, 'NFO:', ''));\n\n return (\n \n {sanitizeInstrumentGroup.join('-')}\n {index !== instrumentGroups.length - 1 && ', '}\n \n );\n });\n};\n\nInstrumentGroupsSentence.propTypes = propTypes;\nInstrumentGroupsSentence.defaultProps = defaultProps;\n\nexport default withErrorBoundary(InstrumentGroupsSentence, 'Company', false);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n title: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.object,\n PropTypes.number,\n PropTypes.string\n ]),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.number,\n PropTypes.string\n ])\n};\n\nconst defaultProps = {\n value: null,\n children: null\n};\n\nconst ConfigDisplayDetails = ({ title, value, children }) => {\n const isNullValue = (\n (_.isUndefined(value) || value === null)\n && (_.isUndefined(children) || children === null)\n );\n if (isNullValue) return null;\n\n return (\n
    \n \n
    {children || value}
    \n
    \n );\n};\n\nConfigDisplayDetails.propTypes = propTypes;\nConfigDisplayDetails.defaultProps = defaultProps;\n\nexport default ConfigDisplayDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport InstrumentGroupsSentence from 'v2/common/components/InstrumentGroupsSentence';\nimport ConfigDisplayDetails from './ConfigDisplayDetails';\n\nconst propTypes = {\n groupType: PropTypes.string.isRequired,\n instrumentGroups: PropTypes.arrayOf(PropTypes.array).isRequired,\n};\n\nconst defaultProps = {};\n\nconst ViewConfigInstrumentalDetails = ({\n groupType, instrumentGroups,\n}) => {\n return (\n
    \n
    \n
    Instrument Details
    \n
    \n
    \n
    \n \n }\n />\n
    \n
    \n
    \n );\n};\n\nViewConfigInstrumentalDetails.propTypes = propTypes;\nViewConfigInstrumentalDetails.defaultProps = defaultProps;\n\nexport default ViewConfigInstrumentalDetails;\n","import _ from 'lodash';\nimport { SPECIAL_CHARACTER_REGEX } from 'v2/common/constants/index';\n\nconst OutputSchemaUtility = (() => {\n return {\n filterByTypes: (outputSchema, types) => _.filter(outputSchema, (schema) => {\n return _.some(schema.shouldShowConfigs || [], (type) => _.includes(types, type));\n }),\n filterByOnlyEnabled: (outputSchema) => _.filter(outputSchema, (schema) => {\n return !_.isEmpty(schema.shouldShowConfigs);\n }),\n findByName: (outputSchema, findName) => _.find(\n outputSchema, ({ name }) => name?.toString() === findName?.toString()\n ) || {},\n filterByCaseIndex: (outputSchema, caseIndex) => _.filter(outputSchema, (schema) => {\n if (schema?.caseIndex === undefined) return true;\n\n return schema?.caseIndex === caseIndex;\n }),\n filterSchemaPriorToPipeIndex: (outputSchema, pipeIndex) => _.filter(outputSchema, (schema) => {\n if (schema?.pipeIndex === undefined) return true;\n if (pipeIndex === undefined) return true;\n\n return schema?.pipeIndex < pipeIndex;\n }),\n filterSchemaPriorToAdjustmentIndex: (\n outputSchema, adjustmentIndex\n ) => _.filter(outputSchema, (schema) => {\n if (schema?.adjustmentIndex === undefined) return true;\n\n return schema?.adjustmentIndex < adjustmentIndex;\n }),\n filterSchemaUpToAdjustmentIndex: (\n outputSchema, adjustmentIndex\n ) => _.filter(outputSchema, (schema) => {\n if (schema?.adjustmentIndex === undefined) return true;\n\n return schema?.adjustmentIndex <= adjustmentIndex;\n }),\n filterByCategory: (outputSchema, category) => _.filter(outputSchema, (schema) => {\n return schema?.category === category;\n }),\n };\n})();\n\nconst TypeheadSchemaUtility = (() => {\n const getBadge = (tag, style) => {\n const badge = tag ? `${tag}` : '';\n return badge;\n };\n\n const getLabelString = (label) => {\n const labelString = label?.toString() || '';\n return SPECIAL_CHARACTER_REGEX.test(labelString) ? labelString : _.startCase(labelString);\n };\n\n return {\n getOption: (schema) => {\n const tag = schema?.tagConfig?.tag || '';\n const backgroundColor = schema?.tagConfig?.color || '';\n const style = backgroundColor ? `style=\"background-color: ${backgroundColor}\"` : '';\n const badge = getBadge(tag, style);\n const labelString = getLabelString(schema?.label);\n\n return {\n id: schema.name?.toString(),\n label: `${badge} ${labelString}`,\n searchLabel: `${tag} ${labelString}`,\n };\n },\n getSelectedOption: (outputSchema, value) => {\n if (!value) {\n return [];\n }\n if (_.isArray(value)) {\n return _.chain(value)\n .map((val) => TypeheadSchemaUtility.getSelectedOption(outputSchema, val))\n .flattenDeep()\n .value();\n }\n\n const schema = OutputSchemaUtility.findByName(outputSchema, value);\n if (!_.isEmpty(schema)) {\n return [TypeheadSchemaUtility.getOption(schema)];\n }\n\n return [{\n id: (value || '')?.toString(),\n label: (value || '')?.toString(),\n searchLabel: (value || '')?.toString(),\n }];\n },\n getOptionFilteredBySearchText: (option, filterProps) => {\n // both arguments are from react-bootstrap-typeahead component\n try {\n const regex = new RegExp(filterProps?.text?.replace(/\\s/g, ''), 'i');\n return regex.test(option?.searchLabel?.replace(/\\s/g, ''));\n } catch {\n return true;\n }\n }\n };\n})();\n\nexport {\n OutputSchemaUtility,\n TypeheadSchemaUtility,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n isHiddenSignal: PropTypes.bool,\n};\nconst defaultProps = {\n isHiddenSignal: false,\n};\n\nconst withHiddenSignal = (WrappedComponent, isHiddenSignal) => {\n return (props) => {\n if (isHiddenSignal) {\n return (\n
    \n Signal is Hidden\n
    \n );\n }\n return ;\n };\n};\n\nwithHiddenSignal.propTypes = propTypes;\nwithHiddenSignal.defaultProps = defaultProps;\n\nexport default withHiddenSignal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n message: PropTypes.string,\n children: PropTypes.node,\n isPremiumError: PropTypes.bool,\n};\nconst defaultProps = {\n message: '',\n children: null,\n isPremiumError: false,\n};\n\nconst ErrorMesssage = ({ message, children, isPremiumError }) => {\n return (\n <>\n {children}\n {message\n && (\n \n

    {message}

    \n {isPremiumError && (\n \"\"\n )}\n
    \n )}\n \n );\n};\n\nexport default ErrorMesssage;\n\nErrorMesssage.propTypes = propTypes;\nErrorMesssage.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { memo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport classNames from 'classnames';\nimport { rightOperandPropTypes } from 'common/propTypes';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n rightOperand: rightOperandPropTypes.isRequired,\n onChangeRightOperand: PropTypes.func.isRequired,\n selected: PropTypes.arrayOf(PropTypes.shape({})),\n options: PropTypes.arrayOf(PropTypes.shape({})),\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n};\nconst defaultProps = {\n selected: [],\n options: [],\n};\n\nconst DayOfWeek = ({\n rightOperand, onChangeRightOperand, selected, options, control, errors\n}) => {\n const validator = {\n validate: (result) => {\n if (_.isEmpty(result)) return 'Please select a day';\n return null;\n },\n };\n const [daySelectorName] = useState(_.uniqueId('daySelector-'));\n const daySelectorInputStyle = classNames(errors[daySelectorName] ? 'is-invalid' : '');\n\n const onDayChange = (newRightOperand, onChange) => {\n const selectedDays = _.map(newRightOperand, 'id');\n\n onChangeRightOperand(selectedDays);\n onChange(selectedDays);\n };\n\n return (\n <>\n
    \n \n (\n onDayChange(newRightOperand, onChange)}\n />\n )}\n control={control}\n defaultValue={rightOperand}\n name={daySelectorName}\n rules={validator}\n />\n \n
    \n \n );\n};\n\nexport default memo(DayOfWeek);\n\nDayOfWeek.propTypes = propTypes;\nDayOfWeek.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { Controller } from 'react-hook-form';\nimport { outputSchemaPropTypes, rightOperandPropTypes } from 'common/propTypes';\nimport { OutputSchemaUtility, TypeheadSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport { Typeahead, Menu, MenuItem } from 'react-bootstrap-typeahead';\nimport ReactHtmlParser from 'react-html-parser';\n\nconst propTypes = {\n rightOperand: rightOperandPropTypes.isRequired,\n onChangeRightOperand: PropTypes.func.isRequired,\n selected: PropTypes.arrayOf(PropTypes.shape({})),\n options: PropTypes.arrayOf(PropTypes.shape({})),\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n isAllowNew: PropTypes.bool.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n};\n\nconst defaultProps = {\n selected: [],\n options: [],\n};\n\nconst Default = ({\n onChangeRightOperand,\n selected,\n options,\n control,\n errors,\n isAllowNew,\n outputSchema,\n rightOperand\n}) => {\n const uniqueId = useMemo(() => _.uniqueId('right-operand-'), []);\n const errorMessage = useMemo(() => _.get(errors, `${uniqueId}.message`, ''), [errors, uniqueId]);\n const selectedRightOperandSchema = useMemo(() => {\n return OutputSchemaUtility.findByName(outputSchema, rightOperand);\n }, [outputSchema, rightOperand]);\n\n const validator = {\n validate: (value) => {\n if (_.isArray(value) && _.isEmpty(value[0]?.searchLabel)) return 'Please select a Right operand';\n\n return null;\n }\n };\n\n const onChangeOrOnBlur = (result, onChange) => {\n if (_.isEmpty(result)) return;\n const { id, customOption, searchLabel } = result[0];\n\n onChange(result);\n if (customOption) {\n const newLabel = Number(searchLabel);\n if (Number.isNaN(newLabel)) {\n onChangeRightOperand('');\n return;\n }\n onChangeRightOperand(searchLabel);\n } else {\n onChangeRightOperand(id);\n }\n };\n\n const onBlur = (event, onChange) => {\n const result = event.target.value;\n const newLabel = Number(result);\n if (!Number.isNaN(newLabel) && isAllowNew) {\n onChangeOrOnBlur(\n [{ customOption: true, searchLabel: result, id: _.uniqueId('new-id-') }],\n onChange\n );\n }\n };\n\n const isNumber = useCallback((label) => {\n return !_.isNaN(Number(label));\n }, []);\n\n const getPriority = useCallback((result) => {\n return isNumber(result.searchLabel) ? 1 : 2;\n }, [isNumber]);\n\n return (\n \n (\n {\n const priorityResult = _.chain(results)\n .filter((result) => (\n !result.customOption\n || (result.customOption && isNumber(result.searchLabel))\n ))\n .map((result) => {\n return {\n ...result,\n priority: getPriority(result),\n };\n })\n .sortBy('priority')\n .value();\n\n return (\n \n {priorityResult.map((result, index) => (\n \n {ReactHtmlParser(result.customOption ? result.searchLabel : result.label)}\n \n ))}\n \n );\n }}\n renderMenuItemChildren={(option) => ReactHtmlParser(option.label)}\n filterBy={(\n option, filterProps\n ) => TypeheadSchemaUtility.getOptionFilteredBySearchText(option, filterProps)}\n selected={selected}\n clearButton={!_.isEmpty(selected)}\n onBlur={(event) => onBlur(event, onChange)}\n onChange={(result) => onChangeOrOnBlur(result, onChange)}\n />\n )}\n control={control}\n defaultValue={selected}\n name={uniqueId}\n rules={validator}\n />\n {selectedRightOperandSchema?.infoLink && (\n window.open(selectedRightOperandSchema?.infoLink, '_blank')}\n >\n info\n \n )}\n \n );\n};\n\nDefault.propTypes = propTypes;\nDefault.defaultProps = defaultProps;\n\nexport default Default;\n","export const toPositiveNumberString = (value) => {\n if (Number(value) < 0 || value === '') return '0';\n\n let targetValue = value;\n if (targetValue.substring(0, 1) === '0') {\n targetValue = targetValue.substring(1);\n return targetValue;\n }\n\n return value;\n};\n\nexport const onRegexOnlyNumberAndFloat = (value, isString) => {\n if (!value) return undefined;\n\n const regxValue = value.replace(/[^0-9.]/g, '').replace(/(\\..*?)\\..*/g, '$1');\n return isString ? regxValue : parseFloat(value);\n};\n\nexport const onRegexOnlyNumber = (value) => {\n return Number(value.replace(/[^0-9]/g, '').replace(/(\\..*?)\\..*/g, '$1'));\n};\n","import React, { memo, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form, Row, Col } from 'react-bootstrap';\nimport { Controller } from 'react-hook-form';\nimport _ from 'lodash';\n\nimport { rightOperandPropTypes } from 'common/propTypes';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { onRegexOnlyNumber } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n onChangeRightOperand: PropTypes.func.isRequired,\n rightOperand: rightOperandPropTypes.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n};\n\nconst defaultProps = {};\n\nconst UNITS = ['hours', 'minutes', 'seconds'];\n\nconst Duration = ({\n onChangeRightOperand, rightOperand, control, errors\n}) => {\n const [uniqueId] = useState(_.uniqueId('Duration-'));\n const value = _.parseInt(rightOperand) || 0;\n const unit = _.trim(_.replace(rightOperand, value, '')) || 'minutes';\n\n const rulesValidator = useMemo(() => {\n return {\n validate: () => {\n if (Number(value) === 0) {\n return 'Please enter a valid value';\n }\n\n return null;\n },\n };\n }, [value]);\n\n const onDurationChange = (newValue, onChange) => {\n const newDuration = `${newValue}${unit}`;\n onChangeRightOperand(newDuration);\n onChange(newDuration);\n };\n\n const onUnitChange = (newUnit, onChange) => {\n const newDuration = `${value}${newUnit}`;\n onChangeRightOperand(newDuration);\n onChange(newDuration);\n };\n\n const renderOptions = (option) => (\n \n );\n\n return (\n <>\n \n \n (\n {\n onDurationChange(onRegexOnlyNumber(event.target.value), onChange);\n }}\n />\n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n \n (\n {\n onUnitChange(event.target.value, onChange);\n }}\n >\n {_.map(UNITS, renderOptions)}\n \n )}\n control={control}\n defaultValue={unit}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n \n \n \n );\n};\n\nDuration.propTypes = propTypes;\nDuration.defaultProps = defaultProps;\n\nexport default memo(Duration);\n","import React from 'react';\nimport TimePicker from 'react-time-picker';\nimport PropTypes from 'prop-types';\n\nconst TIME_PICKER_FORMAT = 'HH:mm';\n\nconst propTypes = {\n onTimeChange: PropTypes.func.isRequired,\n selectedTime: PropTypes.string,\n style: PropTypes.string,\n format: PropTypes.string\n};\nconst defaultProps = {\n selectedTime: '',\n style: '',\n format: TIME_PICKER_FORMAT\n};\n\nconst TimeSelector = ({\n onTimeChange, selectedTime, style, format\n}) => {\n const maxDetail = TIME_PICKER_FORMAT === format ? 'minute' : 'second';\n // for 10:00:11 including seconds and 10:00 minutes (default)\n\n return (\n \n );\n};\n\nexport default TimeSelector;\nTimeSelector.propTypes = propTypes;\nTimeSelector.defaultProps = defaultProps;\n","'use strict';\n\nvar ValidationError = exports.ValidationError = function ValidationError (message, instance, schema, path, name, argument) {\n if(Array.isArray(path)){\n this.path = path;\n this.property = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else if(path !== undefined){\n this.property = path;\n }\n if (message) {\n this.message = message;\n }\n if (schema) {\n var id = schema.$id || schema.id;\n this.schema = id || schema;\n }\n if (instance !== undefined) {\n this.instance = instance;\n }\n this.name = name;\n this.argument = argument;\n this.stack = this.toString();\n};\n\nValidationError.prototype.toString = function toString() {\n return this.property + ' ' + this.message;\n};\n\nvar ValidatorResult = exports.ValidatorResult = function ValidatorResult(instance, schema, options, ctx) {\n this.instance = instance;\n this.schema = schema;\n this.options = options;\n this.path = ctx.path;\n this.propertyPath = ctx.propertyPath;\n this.errors = [];\n this.throwError = options && options.throwError;\n this.throwFirst = options && options.throwFirst;\n this.throwAll = options && options.throwAll;\n this.disableFormat = options && options.disableFormat === true;\n};\n\nValidatorResult.prototype.addError = function addError(detail) {\n var err;\n if (typeof detail == 'string') {\n err = new ValidationError(detail, this.instance, this.schema, this.path);\n } else {\n if (!detail) throw new Error('Missing error detail');\n if (!detail.message) throw new Error('Missing error message');\n if (!detail.name) throw new Error('Missing validator type');\n err = new ValidationError(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);\n }\n\n this.errors.push(err);\n if (this.throwFirst) {\n throw new ValidatorResultError(this);\n }else if(this.throwError){\n throw err;\n }\n return err;\n};\n\nValidatorResult.prototype.importErrors = function importErrors(res) {\n if (typeof res == 'string' || (res && res.validatorType)) {\n this.addError(res);\n } else if (res && res.errors) {\n this.errors = this.errors.concat(res.errors);\n }\n};\n\nfunction stringizer (v,i){\n return i+': '+v.toString()+'\\n';\n}\nValidatorResult.prototype.toString = function toString(res) {\n return this.errors.map(stringizer).join('');\n};\n\nObject.defineProperty(ValidatorResult.prototype, \"valid\", { get: function() {\n return !this.errors.length;\n} });\n\nmodule.exports.ValidatorResultError = ValidatorResultError;\nfunction ValidatorResultError(result) {\n if(typeof Error.captureStackTrace === 'function'){\n Error.captureStackTrace(this, ValidatorResultError);\n }\n this.instance = result.instance;\n this.schema = result.schema;\n this.options = result.options;\n this.errors = result.errors;\n}\nValidatorResultError.prototype = new Error();\nValidatorResultError.prototype.constructor = ValidatorResultError;\nValidatorResultError.prototype.name = \"Validation Error\";\n\n/**\n * Describes a problem with a Schema which prevents validation of an instance\n * @name SchemaError\n * @constructor\n */\nvar SchemaError = exports.SchemaError = function SchemaError (msg, schema) {\n this.message = msg;\n this.schema = schema;\n Error.call(this, msg);\n if(typeof Error.captureStackTrace === 'function'){\n Error.captureStackTrace(this, SchemaError);\n }\n};\nSchemaError.prototype = Object.create(Error.prototype,\n {\n constructor: {value: SchemaError, enumerable: false},\n name: {value: 'SchemaError', enumerable: false},\n });\n\nvar SchemaContext = exports.SchemaContext = function SchemaContext (schema, options, path, base, schemas) {\n this.schema = schema;\n this.options = options;\n if(Array.isArray(path)){\n this.path = path;\n this.propertyPath = path.reduce(function(sum, item){\n return sum + makeSuffix(item);\n }, 'instance');\n }else{\n this.propertyPath = path;\n }\n this.base = base;\n this.schemas = schemas;\n};\n\nSchemaContext.prototype.resolve = function resolve (target) {\n return (() => resolveUrl(this.base,target))();\n};\n\nSchemaContext.prototype.makeChild = function makeChild(schema, propertyName){\n var path = (propertyName===undefined) ? this.path : this.path.concat([propertyName]);\n var id = schema.$id || schema.id;\n let base = (() => resolveUrl(this.base,id||''))();\n var ctx = new SchemaContext(schema, this.options, path, base, Object.create(this.schemas));\n if(id && !ctx.schemas[base]){\n ctx.schemas[base] = schema;\n }\n return ctx;\n};\n\nvar FORMAT_REGEXPS = exports.FORMAT_REGEXPS = {\n // 7.3.1. Dates, Times, and Duration\n 'date-time': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\\.\\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,\n 'date': /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,\n 'time': /^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,\n 'duration': /P(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S)|\\d+(D|M(\\d+D)?|Y(\\d+M(\\d+D)?)?)(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S))?|\\d+W)/i,\n\n // 7.3.2. Email Addresses\n // TODO: fix the email production\n 'email': /^(?:[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+\\.)*[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!\\.)){0,61}[a-zA-Z0-9]?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\\[(?:(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\]))$/,\n 'idn-email': /^(\"(?:[!#-\\[\\]-\\u{10FFFF}]|\\\\[\\t -\\u{10FFFF}])*\"|[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*)@([!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*|\\[[!-Z\\^-\\u{10FFFF}]*\\])$/u,\n\n // 7.3.3. Hostnames\n\n // 7.3.4. IP Addresses\n 'ip-address': /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,\n // FIXME whitespace is invalid\n 'ipv6': /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/,\n\n // 7.3.5. Resource Identifiers\n // TODO: A more accurate regular expression for \"uri\" goes:\n // [A-Za-z][+\\-.0-9A-Za-z]*:((/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?)?#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])|/?%[0-9A-Fa-f]{2}|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*(#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?)?\n 'uri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'uri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/,\n 'iri': /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n 'iri-reference': /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~-\\u{10FFFF}]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~-\\u{10FFFF}])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/u,\n 'uuid': /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n\n // 7.3.6. uri-template\n 'uri-template': /(%[0-9a-f]{2}|[!#$&(-;=?@\\[\\]_a-z~]|\\{[!#&+,./;=?@|]?(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?(,(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?)*\\})*/iu,\n\n // 7.3.7. JSON Pointers\n 'json-pointer': /^(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*$/iu,\n 'relative-json-pointer': /^\\d+(#|(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*)$/iu,\n\n // hostname regex from: http://stackoverflow.com/a/1420225/5628\n 'hostname': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n 'host-name': /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n\n 'utc-millisec': function (input) {\n return (typeof input === 'string') && parseFloat(input) === parseInt(input, 10) && !isNaN(input);\n },\n\n // 7.3.8. regex\n 'regex': function (input) {\n var result = true;\n try {\n new RegExp(input);\n } catch (e) {\n result = false;\n }\n return result;\n },\n\n // Other definitions\n // \"style\" was removed from JSON Schema in draft-4 and is deprecated\n 'style': /[\\r\\n\\t ]*[^\\r\\n\\t ][^:]*:[\\r\\n\\t ]*[^\\r\\n\\t ;]*[\\r\\n\\t ]*;?/,\n // \"color\" was removed from JSON Schema in draft-4 and is deprecated\n 'color': /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/,\n 'phone': /^\\+(?:[0-9] ?){6,14}[0-9]$/,\n 'alpha': /^[a-zA-Z]+$/,\n 'alphanumeric': /^[a-zA-Z0-9]+$/,\n};\n\nFORMAT_REGEXPS.regexp = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.pattern = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.ipv4 = FORMAT_REGEXPS['ip-address'];\n\nexports.isFormat = function isFormat (input, format, validator) {\n if (typeof input === 'string' && FORMAT_REGEXPS[format] !== undefined) {\n if (FORMAT_REGEXPS[format] instanceof RegExp) {\n return FORMAT_REGEXPS[format].test(input);\n }\n if (typeof FORMAT_REGEXPS[format] === 'function') {\n return FORMAT_REGEXPS[format](input);\n }\n } else if (validator && validator.customFormats &&\n typeof validator.customFormats[format] === 'function') {\n return validator.customFormats[format](input);\n }\n return true;\n};\n\nvar makeSuffix = exports.makeSuffix = function makeSuffix (key) {\n key = key.toString();\n // This function could be capable of outputting valid a ECMAScript string, but the\n // resulting code for testing which form to use would be tens of thousands of characters long\n // That means this will use the name form for some illegal forms\n if (!key.match(/[.\\s\\[\\]]/) && !key.match(/^[\\d]/)) {\n return '.' + key;\n }\n if (key.match(/^\\d+$/)) {\n return '[' + key + ']';\n }\n return '[' + JSON.stringify(key) + ']';\n};\n\nexports.deepCompareStrict = function deepCompareStrict (a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every(function (v, i) {\n return deepCompareStrict(a[i], b[i]);\n });\n }\n if (typeof a === 'object') {\n if (!a || !b) {\n return a === b;\n }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(function (v) {\n return deepCompareStrict(a[v], b[v]);\n });\n }\n return a === b;\n};\n\nfunction deepMerger (target, dst, e, i) {\n if (typeof e === 'object') {\n dst[i] = deepMerge(target[i], e);\n } else {\n if (target.indexOf(e) === -1) {\n dst.push(e);\n }\n }\n}\n\nfunction copyist (src, dst, key) {\n dst[key] = src[key];\n}\n\nfunction copyistWithDeepMerge (target, src, dst, key) {\n if (typeof src[key] !== 'object' || !src[key]) {\n dst[key] = src[key];\n }\n else {\n if (!target[key]) {\n dst[key] = src[key];\n } else {\n dst[key] = deepMerge(target[key], src[key]);\n }\n }\n}\n\nfunction deepMerge (target, src) {\n var array = Array.isArray(src);\n var dst = array && [] || {};\n\n if (array) {\n target = target || [];\n dst = dst.concat(target);\n src.forEach(deepMerger.bind(null, target, dst));\n } else {\n if (target && typeof target === 'object') {\n Object.keys(target).forEach(copyist.bind(null, target, dst));\n }\n Object.keys(src).forEach(copyistWithDeepMerge.bind(null, target, src, dst));\n }\n\n return dst;\n}\n\nmodule.exports.deepMerge = deepMerge;\n\n/**\n * Validates instance against the provided schema\n * Implements URI+JSON Pointer encoding, e.g. \"%7e\"=\"~0\"=>\"~\", \"~1\"=\"%2f\"=>\"/\"\n * @param o\n * @param s The path to walk o along\n * @return any\n */\nexports.objectGetPath = function objectGetPath(o, s) {\n var parts = s.split('/').slice(1);\n var k;\n while (typeof (k=parts.shift()) == 'string') {\n var n = decodeURIComponent(k.replace(/~0/,'~').replace(/~1/g,'/'));\n if (!(n in o)) return;\n o = o[n];\n }\n return o;\n};\n\nfunction pathEncoder (v) {\n return '/'+encodeURIComponent(v).replace(/~/g,'%7E');\n}\n/**\n * Accept an Array of property names and return a JSON Pointer URI fragment\n * @param Array a\n * @return {String}\n */\nexports.encodePath = function encodePointer(a){\n // ~ must be encoded explicitly because hacks\n // the slash is encoded by encodeURIComponent\n return a.map(pathEncoder).join('');\n};\n\n\n/**\n * Calculate the number of decimal places a number uses\n * We need this to get correct results out of multipleOf and divisibleBy\n * when either figure is has decimal places, due to IEEE-754 float issues.\n * @param number\n * @returns {number}\n */\nexports.getDecimalPlaces = function getDecimalPlaces(number) {\n\n var decimalPlaces = 0;\n if (isNaN(number)) return decimalPlaces;\n\n if (typeof number !== 'number') {\n number = Number(number);\n }\n\n var parts = number.toString().split('e');\n if (parts.length === 2) {\n if (parts[1][0] !== '-') {\n return decimalPlaces;\n } else {\n decimalPlaces = Number(parts[1].slice(1));\n }\n }\n\n var decimalParts = parts[0].split('.');\n if (decimalParts.length === 2) {\n decimalPlaces += decimalParts[1].length;\n }\n\n return decimalPlaces;\n};\n\nexports.isSchema = function isSchema(val){\n return (typeof val === 'object' && val) || (typeof val === 'boolean');\n};\n\n/**\n * Resolve target URL from a base and relative URL.\n * Similar to Node's URL Lib's legacy resolve function.\n * Code from example in deprecation note in said library.\n * @param string\n * @param string\n * @returns {string}\n */\nvar resolveUrl = exports.resolveUrl = function resolveUrl(from, to) {\n const resolvedUrl = new URL(to, new URL(from, 'resolve://'));\n if (resolvedUrl.protocol === 'resolve:') {\n const { pathname, search, hash } = resolvedUrl;\n return pathname + search + hash;\n }\n return resolvedUrl.toString();\n}\n","'use strict';\n\nvar helpers = require('./helpers');\n\n/** @type ValidatorResult */\nvar ValidatorResult = helpers.ValidatorResult;\n/** @type SchemaError */\nvar SchemaError = helpers.SchemaError;\n\nvar attribute = {};\n\nattribute.ignoreProperties = {\n // informative properties\n 'id': true,\n 'default': true,\n 'description': true,\n 'title': true,\n // arguments to other properties\n 'additionalItems': true,\n 'then': true,\n 'else': true,\n // special-handled properties\n '$schema': true,\n '$ref': true,\n 'extends': true,\n};\n\n/**\n * @name validators\n */\nvar validators = attribute.validators = {};\n\n/**\n * Validates whether the instance if of a certain type\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.type = function validateType (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var types = Array.isArray(schema.type) ? schema.type : [schema.type];\n if (!types.some(this.testType.bind(this, instance, schema, options, ctx))) {\n var list = types.map(function (v) {\n if(!v) return;\n var id = v.$id || v.id;\n return id ? ('<' + id + '>') : (v+'');\n });\n result.addError({\n name: 'type',\n argument: list,\n message: \"is not of a type(s) \" + list,\n });\n }\n return result;\n};\n\nfunction testSchemaNoThrow(instance, options, ctx, callback, schema){\n var throwError = options.throwError;\n var throwAll = options.throwAll;\n options.throwError = false;\n options.throwAll = false;\n var res = this.validateSchema(instance, schema, options, ctx);\n options.throwError = throwError;\n options.throwAll = throwAll;\n\n if (!res.valid && callback instanceof Function) {\n callback(res);\n }\n return res.valid;\n}\n\n/**\n * Validates whether the instance matches some of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {ValidatorResult|null}\n */\nvalidators.anyOf = function validateAnyOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n if (!Array.isArray(schema.anyOf)){\n throw new SchemaError(\"anyOf must be an array\");\n }\n if (!schema.anyOf.some(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res){inner.importErrors(res);}\n ))) {\n var list = schema.anyOf.map(function (v, i) {\n var id = v.$id || v.id;\n if(id) return '<' + id + '>';\n return(v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'anyOf',\n argument: list,\n message: \"is not any of \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance matches every given schema\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.allOf = function validateAllOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.allOf)){\n throw new SchemaError(\"allOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var self = this;\n schema.allOf.forEach(function(v, i){\n var valid = self.validateSchema(instance, v, options, ctx);\n if(!valid.valid){\n var id = v.$id || v.id;\n var msg = id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n result.addError({\n name: 'allOf',\n argument: { id: msg, length: valid.errors.length, valid: valid },\n message: 'does not match allOf schema ' + msg + ' with ' + valid.errors.length + ' error[s]:',\n });\n result.importErrors(valid);\n }\n });\n return result;\n};\n\n/**\n * Validates whether the instance matches exactly one of the given schemas\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.oneOf = function validateOneOf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema.oneOf)){\n throw new SchemaError(\"oneOf must be an array\");\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n var inner = new ValidatorResult(instance, schema, options, ctx);\n var count = schema.oneOf.filter(\n testSchemaNoThrow.bind(\n this, instance, options, ctx, function(res) {inner.importErrors(res);}\n ) ).length;\n var list = schema.oneOf.map(function (v, i) {\n var id = v.$id || v.id;\n return id || (v.title && JSON.stringify(v.title)) || (v['$ref'] && ('<' + v['$ref'] + '>')) || '[subschema '+i+']';\n });\n if (count!==1) {\n if (options.nestedErrors) {\n result.importErrors(inner);\n }\n result.addError({\n name: 'oneOf',\n argument: list,\n message: \"is not exactly one from \" + list.join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates \"then\" or \"else\" depending on the result of validating \"if\"\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null}\n */\nvalidators.if = function validateIf (instance, schema, options, ctx) {\n // Ignore undefined instances\n if (instance === undefined) return null;\n if (!helpers.isSchema(schema.if)) throw new Error('Expected \"if\" keyword to be a schema');\n var ifValid = testSchemaNoThrow.call(this, instance, options, ctx, null, schema.if);\n var result = new ValidatorResult(instance, schema, options, ctx);\n var res;\n if(ifValid){\n if (schema.then === undefined) return;\n if (!helpers.isSchema(schema.then)) throw new Error('Expected \"then\" keyword to be a schema');\n res = this.validateSchema(instance, schema.then, options, ctx.makeChild(schema.then));\n result.importErrors(res);\n }else{\n if (schema.else === undefined) return;\n if (!helpers.isSchema(schema.else)) throw new Error('Expected \"else\" keyword to be a schema');\n res = this.validateSchema(instance, schema.else, options, ctx.makeChild(schema.else));\n result.importErrors(res);\n }\n return result;\n};\n\nfunction getEnumerableProperty(object, key){\n // Determine if `key` shows up in `for(var key in object)`\n // First test Object.hasOwnProperty.call as an optimization: that guarantees it does\n if(Object.hasOwnProperty.call(object, key)) return object[key];\n // Test `key in object` as an optimization; false means it won't\n if(!(key in object)) return;\n while( (object = Object.getPrototypeOf(object)) ){\n if(Object.propertyIsEnumerable.call(object, key)) return object[key];\n }\n}\n\n/**\n * Validates propertyNames\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.propertyNames = function validatePropertyNames (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var subschema = schema.propertyNames!==undefined ? schema.propertyNames : {};\n if(!helpers.isSchema(subschema)) throw new SchemaError('Expected \"propertyNames\" to be a schema (object or boolean)');\n\n for (var property in instance) {\n if(getEnumerableProperty(instance, property) !== undefined){\n var res = this.validateSchema(property, subschema, options, ctx.makeChild(subschema));\n result.importErrors(res);\n }\n }\n\n return result;\n};\n\n/**\n * Validates properties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.properties = function validateProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var properties = schema.properties || {};\n for (var property in properties) {\n var subschema = properties[property];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"properties\"');\n }\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n var prop = getEnumerableProperty(instance, property);\n var res = this.validateSchema(prop, subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n return result;\n};\n\n/**\n * Test a specific property within in instance against the additionalProperties schema attribute\n * This ignores properties with definitions in the properties schema attribute, but no other attributes.\n * If too many more types of property-existence tests pop up they may need their own class of tests (like `type` has)\n * @private\n * @return {boolean}\n */\nfunction testAdditionalProperty (instance, schema, options, ctx, property, result) {\n if(!this.types.object(instance)) return;\n if (schema.properties && schema.properties[property] !== undefined) {\n return;\n }\n if (schema.additionalProperties === false) {\n result.addError({\n name: 'additionalProperties',\n argument: property,\n message: \"is not allowed to have the additional property \" + JSON.stringify(property),\n });\n } else {\n var additionalProperties = schema.additionalProperties || {};\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, additionalProperties, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], additionalProperties, options, ctx.makeChild(additionalProperties, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n}\n\n/**\n * Validates patternProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.patternProperties = function validatePatternProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var patternProperties = schema.patternProperties || {};\n\n for (var property in instance) {\n var test = true;\n for (var pattern in patternProperties) {\n var subschema = patternProperties[pattern];\n if(subschema===undefined){\n continue;\n }else if(subschema===null){\n throw new SchemaError('Unexpected null, expected schema in \"patternProperties\"');\n }\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!regexp.test(property)) {\n continue;\n }\n test = false;\n\n if (typeof options.preValidateProperty == 'function') {\n options.preValidateProperty(instance, property, subschema, options, ctx);\n }\n\n var res = this.validateSchema(instance[property], subschema, options, ctx.makeChild(subschema, property));\n if(res.instance !== result.instance[property]) result.instance[property] = res.instance;\n result.importErrors(res);\n }\n if (test) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n }\n\n return result;\n};\n\n/**\n * Validates additionalProperties\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.additionalProperties = function validateAdditionalProperties (instance, schema, options, ctx) {\n if(!this.types.object(instance)) return;\n // if patternProperties is defined then we'll test when that one is called instead\n if (schema.patternProperties) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in instance) {\n testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minProperties = function validateMinProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length >= schema.minProperties)) {\n result.addError({\n name: 'minProperties',\n argument: schema.minProperties,\n message: \"does not meet minimum property length of \" + schema.minProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxProperties = function validateMaxProperties (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var keys = Object.keys(instance);\n if (!(keys.length <= schema.maxProperties)) {\n result.addError({\n name: 'maxProperties',\n argument: schema.maxProperties,\n message: \"does not meet maximum property length of \" + schema.maxProperties,\n });\n }\n return result;\n};\n\n/**\n * Validates items when instance is an array\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.items = function validateItems (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.items===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n instance.every(function (value, i) {\n if(Array.isArray(schema.items)){\n var items = schema.items[i]===undefined ? schema.additionalItems : schema.items[i];\n }else{\n var items = schema.items;\n }\n if (items === undefined) {\n return true;\n }\n if (items === false) {\n result.addError({\n name: 'items',\n message: \"additionalItems not permitted\",\n });\n return false;\n }\n var res = self.validateSchema(value, items, options, ctx.makeChild(items, i));\n if(res.instance !== result.instance[i]) result.instance[i] = res.instance;\n result.importErrors(res);\n return true;\n });\n return result;\n};\n\n/**\n * Validates the \"contains\" keyword\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {String|null|ValidatorResult}\n */\nvalidators.contains = function validateContains (instance, schema, options, ctx) {\n var self = this;\n if (!this.types.array(instance)) return;\n if (schema.contains===undefined) return;\n if (!helpers.isSchema(schema.contains)) throw new Error('Expected \"contains\" keyword to be a schema');\n var result = new ValidatorResult(instance, schema, options, ctx);\n var count = instance.some(function (value, i) {\n var res = self.validateSchema(value, schema.contains, options, ctx.makeChild(schema.contains, i));\n return res.errors.length===0;\n });\n if(count===false){\n result.addError({\n name: 'contains',\n argument: schema.contains,\n message: \"must contain an item matching given schema\",\n });\n }\n return result;\n};\n\n/**\n * Validates minimum and exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minimum = function validateMinimum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMinimum && schema.exclusiveMinimum === true) {\n if(!(instance > schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than \" + schema.minimum,\n });\n }\n } else {\n if(!(instance >= schema.minimum)){\n result.addError({\n name: 'minimum',\n argument: schema.minimum,\n message: \"must be greater than or equal to \" + schema.minimum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates maximum and exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maximum = function validateMaximum (instance, schema, options, ctx) {\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (schema.exclusiveMaximum && schema.exclusiveMaximum === true) {\n if(!(instance < schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than \" + schema.maximum,\n });\n }\n } else {\n if(!(instance <= schema.maximum)){\n result.addError({\n name: 'maximum',\n argument: schema.maximum,\n message: \"must be less than or equal to \" + schema.maximum,\n });\n }\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMinimum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMinimum = function validateExclusiveMinimum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMinimum, which is handled by the \"minimum\" keyword.\n if(typeof schema.exclusiveMinimum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance > schema.exclusiveMinimum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMinimum',\n argument: schema.exclusiveMinimum,\n message: \"must be strictly greater than \" + schema.exclusiveMinimum,\n });\n }\n return result;\n};\n\n/**\n * Validates the number form of exclusiveMaximum when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.exclusiveMaximum = function validateExclusiveMaximum (instance, schema, options, ctx) {\n // Support the boolean form of exclusiveMaximum, which is handled by the \"maximum\" keyword.\n if(typeof schema.exclusiveMaximum === 'boolean') return;\n if (!this.types.number(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var valid = instance < schema.exclusiveMaximum;\n if (!valid) {\n result.addError({\n name: 'exclusiveMaximum',\n argument: schema.exclusiveMaximum,\n message: \"must be strictly less than \" + schema.exclusiveMaximum,\n });\n }\n return result;\n};\n\n/**\n * Perform validation for multipleOf and divisibleBy, which are essentially the same.\n * @param instance\n * @param schema\n * @param validationType\n * @param errorMessage\n * @returns {String|null}\n */\nvar validateMultipleOfOrDivisbleBy = function validateMultipleOfOrDivisbleBy (instance, schema, options, ctx, validationType, errorMessage) {\n if (!this.types.number(instance)) return;\n\n var validationArgument = schema[validationType];\n if (validationArgument == 0) {\n throw new SchemaError(validationType + \" cannot be zero\");\n }\n\n var result = new ValidatorResult(instance, schema, options, ctx);\n\n var instanceDecimals = helpers.getDecimalPlaces(instance);\n var divisorDecimals = helpers.getDecimalPlaces(validationArgument);\n\n var maxDecimals = Math.max(instanceDecimals , divisorDecimals);\n var multiplier = Math.pow(10, maxDecimals);\n\n if (Math.round(instance * multiplier) % Math.round(validationArgument * multiplier) !== 0) {\n result.addError({\n name: validationType,\n argument: validationArgument,\n message: errorMessage + JSON.stringify(validationArgument),\n });\n }\n\n return result;\n};\n\n/**\n * Validates divisibleBy when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.multipleOf = function validateMultipleOf (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"multipleOf\", \"is not a multiple of (divisible by) \");\n};\n\n/**\n * Validates multipleOf when the type of the instance value is a number.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.divisibleBy = function validateDivisibleBy (instance, schema, options, ctx) {\n return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"divisibleBy\", \"is not divisible by (multiple of) \");\n};\n\n/**\n * Validates whether the instance value is present.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.required = function validateRequired (instance, schema, options, ctx) {\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (instance === undefined && schema.required === true) {\n // A boolean form is implemented for reverse-compatibility with schemas written against older drafts\n result.addError({\n name: 'required',\n message: \"is required\",\n });\n } else if (this.types.object(instance) && Array.isArray(schema.required)) {\n schema.required.forEach(function(n){\n if(getEnumerableProperty(instance, n)===undefined){\n result.addError({\n name: 'required',\n argument: n,\n message: \"requires property \" + JSON.stringify(n),\n });\n }\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value matches the regular expression, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.pattern = function validatePattern (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var pattern = schema.pattern;\n try {\n var regexp = new RegExp(pattern, 'u');\n } catch(_e) {\n // In the event the stricter handling causes an error, fall back on the forgiving handling\n // DEPRECATED\n regexp = new RegExp(pattern);\n }\n if (!instance.match(regexp)) {\n result.addError({\n name: 'pattern',\n argument: schema.pattern,\n message: \"does not match pattern \" + JSON.stringify(schema.pattern.toString()),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is of a certain defined format or a custom\n * format.\n * The following formats are supported for string types:\n * - date-time\n * - date\n * - time\n * - ip-address\n * - ipv6\n * - uri\n * - color\n * - host-name\n * - alpha\n * - alpha-numeric\n * - utc-millisec\n * @param instance\n * @param schema\n * @param [options]\n * @param [ctx]\n * @return {String|null}\n */\nvalidators.format = function validateFormat (instance, schema, options, ctx) {\n if (instance===undefined) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!result.disableFormat && !helpers.isFormat(instance, schema.format, this)) {\n result.addError({\n name: 'format',\n argument: schema.format,\n message: \"does not conform to the \" + JSON.stringify(schema.format) + \" format\",\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at least of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minLength = function validateMinLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length >= schema.minLength)) {\n result.addError({\n name: 'minLength',\n argument: schema.minLength,\n message: \"does not meet minimum length of \" + schema.minLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is at most of a certain length, when the instance value is a string.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxLength = function validateMaxLength (instance, schema, options, ctx) {\n if (!this.types.string(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n // TODO if this was already computed in \"minLength\", use that value instead of re-computing\n var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n var length = instance.length - (hsp ? hsp.length : 0);\n if (!(length <= schema.maxLength)) {\n result.addError({\n name: 'maxLength',\n argument: schema.maxLength,\n message: \"does not meet maximum length of \" + schema.maxLength,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains at least a minimum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.minItems = function validateMinItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length >= schema.minItems)) {\n result.addError({\n name: 'minItems',\n argument: schema.minItems,\n message: \"does not meet minimum length of \" + schema.minItems,\n });\n }\n return result;\n};\n\n/**\n * Validates whether instance contains no more than a maximum number of items, when the instance is an Array.\n * @param instance\n * @param schema\n * @return {String|null}\n */\nvalidators.maxItems = function validateMaxItems (instance, schema, options, ctx) {\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!(instance.length <= schema.maxItems)) {\n result.addError({\n name: 'maxItems',\n argument: schema.maxItems,\n message: \"does not meet maximum length of \" + schema.maxItems,\n });\n }\n return result;\n};\n\n/**\n * Deep compares arrays for duplicates\n * @param v\n * @param i\n * @param a\n * @private\n * @return {boolean}\n */\nfunction testArrays (v, i, a) {\n var j, len = a.length;\n for (j = i + 1, len; j < len; j++) {\n if (helpers.deepCompareStrict(v, a[j])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Validates whether there are no duplicates, when the instance is an Array.\n * @param instance\n * @return {String|null}\n */\nvalidators.uniqueItems = function validateUniqueItems (instance, schema, options, ctx) {\n if (schema.uniqueItems!==true) return;\n if (!this.types.array(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!instance.every(testArrays)) {\n result.addError({\n name: 'uniqueItems',\n message: \"contains duplicate item\",\n });\n }\n return result;\n};\n\n/**\n * Validate for the presence of dependency properties, if the instance is an object.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.dependencies = function validateDependencies (instance, schema, options, ctx) {\n if (!this.types.object(instance)) return;\n var result = new ValidatorResult(instance, schema, options, ctx);\n for (var property in schema.dependencies) {\n if (instance[property] === undefined) {\n continue;\n }\n var dep = schema.dependencies[property];\n var childContext = ctx.makeChild(dep, property);\n if (typeof dep == 'string') {\n dep = [dep];\n }\n if (Array.isArray(dep)) {\n dep.forEach(function (prop) {\n if (instance[prop] === undefined) {\n result.addError({\n // FIXME there's two different \"dependencies\" errors here with slightly different outputs\n // Can we make these the same? Or should we create different error types?\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"property \" + prop + \" not found, required by \" + childContext.propertyPath,\n });\n }\n });\n } else {\n var res = this.validateSchema(instance, dep, options, childContext);\n if(result.instance !== res.instance) result.instance = res.instance;\n if (res && res.errors.length) {\n result.addError({\n name: 'dependencies',\n argument: childContext.propertyPath,\n message: \"does not meet dependency required by \" + childContext.propertyPath,\n });\n result.importErrors(res);\n }\n }\n }\n return result;\n};\n\n/**\n * Validates whether the instance value is one of the enumerated values.\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['enum'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n if (!Array.isArray(schema['enum'])) {\n throw new SchemaError(\"enum expects an array\", schema);\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!schema['enum'].some(helpers.deepCompareStrict.bind(null, instance))) {\n result.addError({\n name: 'enum',\n argument: schema['enum'],\n message: \"is not one of enum values: \" + schema['enum'].map(String).join(','),\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance exactly matches a given value\n *\n * @param instance\n * @param schema\n * @return {ValidatorResult|null}\n */\nvalidators['const'] = function validateEnum (instance, schema, options, ctx) {\n if (instance === undefined) {\n return null;\n }\n var result = new ValidatorResult(instance, schema, options, ctx);\n if (!helpers.deepCompareStrict(schema['const'], instance)) {\n result.addError({\n name: 'const',\n argument: schema['const'],\n message: \"does not exactly match expected constant: \" + schema['const'],\n });\n }\n return result;\n};\n\n/**\n * Validates whether the instance if of a prohibited type.\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @return {null|ValidatorResult}\n */\nvalidators.not = validators.disallow = function validateNot (instance, schema, options, ctx) {\n var self = this;\n if(instance===undefined) return null;\n var result = new ValidatorResult(instance, schema, options, ctx);\n var notTypes = schema.not || schema.disallow;\n if(!notTypes) return null;\n if(!Array.isArray(notTypes)) notTypes=[notTypes];\n notTypes.forEach(function (type) {\n if (self.testType(instance, schema, options, ctx, type)) {\n var id = type && (type.$id || type.id);\n var schemaId = id || type;\n result.addError({\n name: 'not',\n argument: schemaId,\n message: \"is of prohibited type \" + schemaId,\n });\n }\n });\n return result;\n};\n\nmodule.exports = attribute;\n","\"use strict\";\n\nvar helpers = require('./helpers');\n\nmodule.exports.SchemaScanResult = SchemaScanResult;\nfunction SchemaScanResult(found, ref){\n this.id = found;\n this.ref = ref;\n}\n\n/**\n * Adds a schema with a certain urn to the Validator instance.\n * @param string uri\n * @param object schema\n * @return {Object}\n */\nmodule.exports.scan = function scan(base, schema){\n function scanSchema(baseuri, schema){\n if(!schema || typeof schema!='object') return;\n // Mark all referenced schemas so we can tell later which schemas are referred to, but never defined\n if(schema.$ref){\n let resolvedUri = helpers.resolveUrl(baseuri,schema.$ref);\n ref[resolvedUri] = ref[resolvedUri] ? ref[resolvedUri]+1 : 0;\n return;\n }\n var id = schema.$id || schema.id;\n let resolvedBase = helpers.resolveUrl(baseuri,id);\n var ourBase = id ? resolvedBase : baseuri;\n if (ourBase) {\n // If there's no fragment, append an empty one\n if(ourBase.indexOf('#')<0) ourBase += '#';\n if(found[ourBase]){\n if(!helpers.deepCompareStrict(found[ourBase], schema)){\n throw new Error('Schema <'+ourBase+'> already exists with different definition');\n }\n return found[ourBase];\n }\n found[ourBase] = schema;\n // strip trailing fragment\n if(ourBase[ourBase.length-1]=='#'){\n found[ourBase.substring(0, ourBase.length-1)] = schema;\n }\n }\n scanArray(ourBase+'/items', (Array.isArray(schema.items)?schema.items:[schema.items]));\n scanArray(ourBase+'/extends', (Array.isArray(schema.extends)?schema.extends:[schema.extends]));\n scanSchema(ourBase+'/additionalItems', schema.additionalItems);\n scanObject(ourBase+'/properties', schema.properties);\n scanSchema(ourBase+'/additionalProperties', schema.additionalProperties);\n scanObject(ourBase+'/definitions', schema.definitions);\n scanObject(ourBase+'/patternProperties', schema.patternProperties);\n scanObject(ourBase+'/dependencies', schema.dependencies);\n scanArray(ourBase+'/disallow', schema.disallow);\n scanArray(ourBase+'/allOf', schema.allOf);\n scanArray(ourBase+'/anyOf', schema.anyOf);\n scanArray(ourBase+'/oneOf', schema.oneOf);\n scanSchema(ourBase+'/not', schema.not);\n }\n function scanArray(baseuri, schemas){\n if(!Array.isArray(schemas)) return;\n for(var i=0; i\", schema);\n }\n var subschema = helpers.objectGetPath(ctx.schemas[document], fragment.substr(1));\n if(subschema===undefined){\n throw new SchemaError(\"no such schema \" + fragment + \" located in <\" + document + \">\", schema);\n }\n return {subschema: subschema, switchSchema: switchSchema};\n};\n\n/**\n * Tests whether the instance if of a certain type.\n * @private\n * @param instance\n * @param schema\n * @param options\n * @param ctx\n * @param type\n * @return {boolean}\n */\nValidator.prototype.testType = function validateType (instance, schema, options, ctx, type) {\n if(type===undefined){\n return;\n }else if(type===null){\n throw new SchemaError('Unexpected null in \"type\" keyword');\n }\n if (typeof this.types[type] == 'function') {\n return this.types[type].call(this, instance);\n }\n if (type && typeof type == 'object') {\n var res = this.validateSchema(instance, type, options, ctx);\n return res === undefined || !(res && res.errors.length);\n }\n // Undefined or properties not on the list are acceptable, same as not being defined\n return true;\n};\n\nvar types = Validator.prototype.types = {};\ntypes.string = function testString (instance) {\n return typeof instance == 'string';\n};\ntypes.number = function testNumber (instance) {\n // isFinite returns false for NaN, Infinity, and -Infinity\n return typeof instance == 'number' && isFinite(instance);\n};\ntypes.integer = function testInteger (instance) {\n return (typeof instance == 'number') && instance % 1 === 0;\n};\ntypes.boolean = function testBoolean (instance) {\n return typeof instance == 'boolean';\n};\ntypes.array = function testArray (instance) {\n return Array.isArray(instance);\n};\ntypes['null'] = function testNull (instance) {\n return instance === null;\n};\ntypes.date = function testDate (instance) {\n return instance instanceof Date;\n};\ntypes.any = function testAny (instance) {\n return true;\n};\ntypes.object = function testObject (instance) {\n // TODO: fix this - see #15\n return instance && (typeof instance === 'object') && !(Array.isArray(instance)) && !(instance instanceof Date);\n};\n\nmodule.exports = Validator;\n","'use strict';\n\nvar Validator = module.exports.Validator = require('./validator');\n\nmodule.exports.ValidatorResult = require('./helpers').ValidatorResult;\nmodule.exports.ValidatorResultError = require('./helpers').ValidatorResultError;\nmodule.exports.ValidationError = require('./helpers').ValidationError;\nmodule.exports.SchemaError = require('./helpers').SchemaError;\nmodule.exports.SchemaScanResult = require('./scan').SchemaScanResult;\nmodule.exports.scan = require('./scan').scan;\n\nmodule.exports.validate = function (instance, schema, options) {\n var v = new Validator();\n return v.validate(instance, schema, options);\n};\n","import _ from 'lodash';\nimport { validate } from 'jsonschema';\nimport moment from 'moment';\nimport { signalConditionOptions } from 'modules/QuantBuilder/config/signalConfigs';\n\nconst getPatternRegex = () => ({\n number: /[-+]?([0-9]*\\.[0-9]+|[0-9]+)/,\n string: /\\w/,\n integer: /^[-+]?\\d*$/\n});\n\nexport const getValidationError = (errors, configName) => {\n return _.filter(errors, ({ property }) => _.includes(property, configName));\n};\n\nexport const getMandatoryFieldsValidation = (quantConfig, validationSchemas) => {\n const { instrumentGroups, pipeConfigs, orderConfigs } = quantConfig;\n\n if (_.isEmpty(instrumentGroups)) {\n return [{\n property: 'instance.instrumentGroups',\n message: 'atleast one InstrumentGroup should be added'\n }];\n }\n\n if (!_.isEmpty(orderConfigs)) {\n const { errors } = validate(orderConfigs, validationSchemas.orderConfigSchema);\n return _.map(errors, ({ message, property }) => ({ message, property }));\n }\n\n if (!_.isEmpty(pipeConfigs)) {\n const { errors } = validate(pipeConfigs, validationSchemas.pipesSchema);\n return _.map(errors, ({ message, property }) => ({ message, property }));\n }\n\n return [];\n};\n\nconst getConfigValidator = (config) => {\n const { properties, required } = config;\n const configValidators = {};\n\n _.each(properties, (property, key) => {\n const { type } = property;\n\n if (key === 'valuePaths') {\n const { minItems, maxItems, items } = property;\n configValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'Value is required',\n },\n pattern: {\n value: getPatternRegex()[items.type],\n message: `value should be a ${items.type}`\n },\n minLength: {\n value: minItems,\n message: `should have atleast ${minItems} items`\n },\n maxLength: {\n value: maxItems,\n message: `should have at most ${maxItems} items`\n }\n };\n\n return;\n }\n\n configValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[type],\n message: `value must be a ${type}`\n }\n };\n });\n\n return configValidators;\n};\n\nconst getPipeFormValidators = (pipesSchema) => {\n const pipesValidators = {};\n _.each(pipesSchema, (pipeSchema, pipeType) => {\n const { properties, required } = pipeSchema;\n const { type, config } = properties;\n\n pipesValidators[pipeType] = {\n name: {\n required: {\n value: _.includes(required, 'name'),\n message: 'Name is required'\n },\n pattern: {\n value: /^[^\\\\.]+$/,\n message: 'Character \".\" (dot) not allowed in name.'\n }\n },\n type: {\n required: {\n value: _.includes(required, 'type'),\n message: 'indicator is required'\n },\n pattern: {\n value: getPatternRegex()[type],\n message: 'Alphabetical characters only'\n }\n },\n config: getConfigValidator(config)\n };\n });\n\n return pipesValidators;\n};\n\nconst getEquityConfigValidators = (equityConfigSchema) => {\n const { properties, required } = equityConfigSchema;\n const equityConfigValidators = {};\n\n _.each(properties, (property, key) => {\n equityConfigValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[property.type],\n message: `value must be a ${property.type}`\n },\n validate: (value) => {\n if (!property.enum) return null;\n\n return _.includes(property.enum, value)\n ? null\n : `value should be one among ${property.enum}`;\n }\n };\n });\n\n return equityConfigValidators;\n};\n\nconst getFutureConfigValidators = (futureConfigSchema) => {\n const { properties, required } = futureConfigSchema;\n const futureConfigValidators = {};\n\n _.each(properties, (property, key) => {\n futureConfigValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[property.type],\n message: `value must be a ${property.type}`\n },\n validate: (value) => {\n if (!property.enum) return null;\n\n return _.includes(property.enum, value)\n ? null\n : `value should be one among ${property.enum}`;\n }\n };\n });\n\n return futureConfigValidators;\n};\n\nconst getOptionConfigValidators = (optionConfigSchemas) => {\n const { properties, required } = optionConfigSchemas.items;\n const optionConfigValidators = {};\n _.each(properties, (property, key) => {\n optionConfigValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[property.type],\n message: `value must be a ${property.type}`\n },\n validate: (value) => {\n if (!property.enum) return null;\n\n const parsedValue = _.isNaN(parseInt(value, 10))\n ? value\n : parseInt(value, 10);\n\n return (_.includes(property.enum, parsedValue)\n ? null\n : `value should be one among ${property.enum}`\n );\n }\n };\n });\n\n return optionConfigValidators;\n};\n\nconst getTransactionsValidators = (transanconfigsSchema) => {\n return ({\n optionConfigsValidators: getOptionConfigValidators(transanconfigsSchema.optionConfigs),\n futureConfigValidators: getFutureConfigValidators(transanconfigsSchema.futureConfig),\n equityConfigValidators: getEquityConfigValidators(transanconfigsSchema.equityConfig)\n });\n};\n\nconst getSignalValidator = (signalSchema) => {\n const { properties, required } = signalSchema;\n const signalConfigValidator = {};\n\n _.each(properties, (property, key) => {\n signalConfigValidator[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[property.type],\n message: `value must be a ${property.type}`\n },\n validate: (value) => {\n // Here instead of the actual value, we get the dropdown list item option object\n // with id and label, if so, then we make sure if it is required and is not empty.\n if (_.includes(required, key) && value && value.length === 1 && _.isEmpty(value[0].id)) {\n return 'value is required';\n }\n\n if (!property.enum) return null;\n\n return (_.includes(property.enum, value)\n ? null\n : `value should be one among ${property.enum}`\n );\n },\n minLength: {\n value: property.minLength,\n message: `should have atleast ${property.minLength} items`\n },\n };\n });\n\n return signalConfigValidator;\n};\n\nconst getOrderConfigsValidators = (orderConfigSchema) => {\n const {\n entrySignalConfigs, exitSignalConfigs, transactionConfigs\n } = _.get(orderConfigSchema, ['items', 'properties']);\n\n return {\n entrySignalConfigs: getSignalValidator(entrySignalConfigs.items),\n exitSignalConfigs: getSignalValidator(exitSignalConfigs.items),\n transactionConfigsValidator: getTransactionsValidators(\n _.get(transactionConfigs, ['items', 'properties'])\n )\n };\n};\n\nexport const getQuantConfigValidators = ({ pipesSchema, orderConfigSchema }) => {\n return {\n pipesValidators: getPipeFormValidators(pipesSchema),\n orderConfigsValidators: getOrderConfigsValidators(orderConfigSchema)\n };\n};\n\nconst NO_OF_CANDLES = 'noOfCandles';\nexport const getConfigAndPeriodValidator = (validator, configKey, candleInterval) => {\n if (configKey !== NO_OF_CANDLES) return validator;\n\n const maxPeriodAllowed = {\n '1 minutes': 7500,\n '3 minutes': 2500,\n '5 minutes': 1500,\n '15 minutes': 500,\n '30 minutes': 260,\n '1 hours': 140,\n };\n\n return {\n ...validator,\n validate: (value) => (value > maxPeriodAllowed[candleInterval]\n ? `Max period allowed for ${candleInterval} candle intervel is ${maxPeriodAllowed[candleInterval]}`\n : null\n )\n };\n};\n\nexport const serverErrorsToObject = (serverErrors) => {\n const errorObj = {};\n\n _.map(serverErrors, ({ property, message }) => {\n const propertyPath = _.trimStart(property, 'instance.');\n return _.set(errorObj, propertyPath, message);\n });\n\n return errorObj;\n};\n\nexport const toReadableErrorMessage = (errorMessage) => {\n const errors = _.split(errorMessage, ':');\n\n if (errors.length > 1) return errors[1];\n\n return errorMessage;\n};\n\nexport const getDayOfWeekValidation = () => {\n const { dayOfWeek: { rightOperandOptions: weekDays } } = signalConditionOptions();\n\n return ({\n required: {\n value: true,\n message: 'please select a weekday'\n },\n validate: (days) => {\n const hasInvalidDay = _.some(\n _.map(days, (day) => !_.includes(weekDays, day))\n );\n\n return hasInvalidDay ? 'should be a weekday' : null;\n }\n });\n};\n\nconst MARKET_START_TIME = moment.utc('9:15', 'h:mm k');\nconst MARKET_END_TIME = moment.utc('15:28', 'h:mm k');\nexport const getTimeValidators = (args) => {\n const minTime = moment(_.get(args, 'minTime', MARKET_START_TIME), 'h:mm k');\n const isRequired = _.get(args, 'isRequired', false);\n\n return ({\n validate: (newTime) => {\n if (!isRequired && !newTime) return null;\n\n const format = newTime.split(':').length === 3 ? 'h:mm:ss k' : 'h:mm k';\n // handle for seconds and minutes\n\n if (moment(newTime, format).isBetween(minTime, MARKET_END_TIME)) return null;\n\n return `please select a time between\n ${moment(minTime, 'h:m: k').add(1, 'minutes').format('HH:mm')} to 15:28`;\n }\n });\n};\n\nexport const getTimeValidatorsV2 = () => {\n return ({\n validate: (newTime) => {\n if (!newTime) return 'Please select a time';\n const parsedTime = moment.utc(newTime, 'HH:mm');\n const isMarketTime = parsedTime.isBetween(MARKET_START_TIME, MARKET_END_TIME, null, '[]');\n return isMarketTime ? null : 'Please select a time between 9:15 to 15:28';\n }\n });\n};\n","import _ from 'lodash';\nimport React, { memo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\n\nimport TimeSelector from 'common/components/TimeSelector';\nimport { rightOperandPropTypes } from 'common/propTypes';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { getTimeValidatorsV2 } from 'common/utils/validators';\n\nconst propTypes = {\n rightOperand: rightOperandPropTypes.isRequired,\n onChangeRightOperand: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n};\n\nconst defaultProps = { };\nconst Time = (props) => {\n const {\n onChangeRightOperand,\n rightOperand,\n control, errors\n } = props;\n const [timePickerName] = useState(_.uniqueId('timePicker-'));\n\n const onTimeChange = (newTime, onChange) => {\n onChangeRightOperand(newTime);\n onChange(newTime);\n };\n\n return (\n <>\n (\n onTimeChange(newTime, onChange)}\n selectedTime={rightOperand}\n format=\"HH:mm:ss\"\n />\n )}\n control={control}\n defaultValue={rightOperand}\n name={timePickerName}\n rules={getTimeValidatorsV2()}\n />\n \n \n );\n};\n\nexport default memo(Time);\n\nTime.propTypes = propTypes;\nTime.defaultProps = defaultProps;\n","import React from 'react';\nimport DatePicker from 'react-datepicker';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nconst propTypes = {\n minDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),\n maxDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),\n selectedDate: PropTypes.instanceOf(Date).isRequired,\n onChangeDate: PropTypes.func.isRequired,\n dateFormat: PropTypes.string,\n showTimeSelect: PropTypes.bool\n};\nconst defaultProps = {\n dateFormat: 'dd/MM/yyyy', showTimeSelect: false, minDate: '', maxDate: ''\n};\n\nconst DateSelector = (props) => {\n const {\n selectedDate, onChangeDate, minDate, maxDate, dateFormat, showTimeSelect\n } = props;\n\n const customizedProps = !(minDate && maxDate) ? {} : {\n minDate: moment(minDate).toDate(),\n maxDate: moment(maxDate).toDate()\n };\n\n return (\n \n );\n};\n\nDateSelector.propTypes = propTypes;\nDateSelector.defaultProps = defaultProps;\n\nexport default DateSelector;\n","import _ from 'lodash';\nimport React, { memo, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\n\nimport moment from 'moment';\nimport { rightOperandPropTypes } from 'common/propTypes';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport DateSelector from 'common/components/DateSelector';\n\nconst propTypes = {\n rightOperand: rightOperandPropTypes.isRequired,\n onChangeRightOperand: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n};\n\nconst defaultProps = {};\nconst Date = (props) => {\n const {\n onChangeRightOperand,\n rightOperand,\n control, errors\n } = props;\n const [DatePickerName] = useState(_.uniqueId('datePicker-'));\n\n const onDateChange = (newDate, onChange) => {\n onChangeRightOperand(moment(newDate).format('YYYY-MM-DD'));\n onChange(moment(newDate).format('YYYY-MM-DD'));\n };\n\n useEffect(() => {\n if (rightOperand) {\n onChangeRightOperand(moment(rightOperand).format('YYYY-MM-DD'));\n } else {\n onChangeRightOperand(moment().format('YYYY-MM-DD'));\n }\n \n }, []);\n\n const validatorConfig = {\n validate: (value) => {\n if (!value) return '*Date required';\n return null;\n }\n };\n\n return (\n <>\n (\n {\n onDateChange(newRightOperand, onChange);\n }}\n />\n )}\n control={control}\n defaultValue={rightOperand}\n name={DatePickerName}\n rules={() => validatorConfig}\n />\n \n \n );\n};\n\nexport default memo(Date);\n\nDate.propTypes = propTypes;\nDate.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport { schemaTypes } from 'v2/common/quantConfig/outputSchema/config';\nimport DayOfWeek from './SignalsForm/Signal/RightOperand/DayOfWeek';\nimport Default from './SignalsForm/Signal/RightOperand/Default';\nimport Duration from './SignalsForm/Signal/RightOperand/Duration';\nimport Time from './SignalsForm/Signal/RightOperand/Time';\nimport Date from './SignalsForm/Signal/RightOperand/Date';\n\nconst config = {\n [schemaTypes.dayOfWeek]: {\n operator: [\n { name: 'contains', label: 'Contains' }\n ],\n rightOperandOptions: [\n { name: 'monday', label: 'Monday' },\n { name: 'tuesday', label: 'Tuesday' },\n { name: 'wednesday', label: 'Wednesday' },\n { name: 'thursday', label: 'Thursday' },\n { name: 'friday', label: 'Friday' },\n { name: 'saturday', label: 'Saturday' },\n ],\n rightOperandComponent: DayOfWeek,\n options: [],\n isAllowNew: false\n },\n [schemaTypes.target]: {\n operator: [\n { name: 'equalTo', label: 'Equal to' },\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' }\n ],\n rightOperandOptions: _.map(_.range(0, 31), (day) => ({\n name: day, label: day\n })),\n rightOperandComponent: Default,\n isAllowNew: false\n },\n [schemaTypes.minute]: {\n operator: [\n { name: 'equalTo', label: 'Equal to' },\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' }\n ],\n rightOperandOptions: _.map(_.range(0, 61), (minute) => ({\n name: minute, label: minute\n })),\n rightOperandComponent: Default,\n isAllowNew: false\n },\n [schemaTypes.boolean]: {\n operator: [\n { name: 'equalTo', label: 'Is' },\n ],\n rightOperandOptions: [\n { name: 1, label: 'true' },\n { name: 0, label: 'false' }\n ],\n rightOperandComponent: Default,\n isAllowNew: false\n },\n [schemaTypes.number]: {\n operator: [\n { name: 'equalTo', label: 'Equal to' },\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' },\n { name: 'crossesAbove', label: 'Crosses above' },\n { name: 'crossesBelow', label: 'Crosses below' },\n { name: 'equalOrAbove', label: 'Equal or above' },\n { name: 'equalOrBelow', label: 'Equal or below' }\n ],\n rightOperandComponent: Default,\n isAllowNew: true\n },\n [schemaTypes.duration]: {\n operator: [\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' }\n ],\n rightOperandComponent: Duration,\n isAllowNew: false\n },\n [schemaTypes.time]: {\n operator: [\n { name: 'equalTo', label: 'Equal to' },\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' }\n ],\n rightOperandComponent: Time,\n isAllowNew: false\n },\n [schemaTypes.date]: {\n operator: [\n { name: 'equalTo', label: 'Equal to' },\n { name: 'isAbove', label: 'Is above' },\n { name: 'isBelow', label: 'Is below' }\n ],\n rightOperandComponent: Date,\n isAllowNew: false\n },\n};\nexport const OperandUtility = (() => {\n return {\n getOperators: (type = '') => {\n return config[type]?.operator || [];\n },\n\n getRightOperandConfigs: (type) => {\n return {\n component: config[type]?.rightOperandComponent || Default,\n options: config[type]?.rightOperandOptions || [],\n isAllowNew: config[type]?.isAllowNew || false\n };\n },\n };\n})();\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { outputSchemaPropTypes, signalsPropTypes } from 'common/propTypes';\nimport _ from 'lodash';\nimport ReactHtmlParser from 'react-html-parser';\nimport {\n OutputSchemaUtility,\n TypeheadSchemaUtility,\n} from 'v2/common/quantConfig/outputSchema/utility';\nimport { schemaTypes } from 'v2/common/quantConfig/outputSchema/config';\nimport withHiddenSignal from 'common/components/withHiddenSignal/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { signalTypes } from 'v2/modules/withRunForm/configs/index';\nimport { OperandUtility } from '../utility';\n\nlet defaultParentClassName = 'border position-relative rounder p-2 d-flex ';\ndefaultParentClassName += 'align-items-center justify-content-between mb-2';\n\nconst propTypes = {\n signals: signalsPropTypes.isRequired,\n onEdit: PropTypes.func,\n outputSchema: outputSchemaPropTypes.isRequired,\n isViewOnly: PropTypes.bool,\n label: PropTypes.string,\n parentClassName: PropTypes.string,\n signalType: PropTypes.string,\n hiddenSignal: PropTypes.bool.isRequired,\n};\nconst defaultProps = {\n isViewOnly: false,\n onEdit: () => {},\n label: '',\n signalType: '',\n parentClassName: defaultParentClassName,\n};\n\nconst SignalsView = ({\n signals,\n onEdit,\n outputSchema,\n isViewOnly,\n parentClassName,\n label,\n signalType,\n hiddenSignal\n}) => {\n const namePairLabel = _.reduce(\n outputSchema,\n (acc, schema) => {\n acc[schema.name] = TypeheadSchemaUtility.getOption(schema)?.label || schema.label;\n return acc;\n },\n {}\n );\n\n const getModifiedRightOperand = (rightOperand) => {\n const isArray = _.isArray(rightOperand);\n if (isArray) {\n return _.chain(rightOperand)\n .map((operand) => _.startCase(operand))\n .join(', ')\n .value();\n }\n return rightOperand;\n };\n\n const signalContent = useMemo(() => ({\n [signalTypes.entrySignal]:\n 'Entry conditions help you decide when to enter a trade. For example: Current close is above Super trend',\n [signalTypes.exitSignal]:\n 'Exit conditions help you decide when to exit a trade. For example: Current close is below Super trend'\n }), []);\n\n const renderSignal = (signal, idx) => {\n const {\n leftOperand, conditionOperator, rightOperand, operator\n } = signal;\n const leftOperandType = OutputSchemaUtility.findByName(\n outputSchema,\n leftOperand\n )?.type;\n const { label: operatorLabel } = _.find(\n OperandUtility.getOperators(leftOperandType),\n ({ name }) => name === operator\n ) || {};\n const isBoolean = leftOperandType === schemaTypes.boolean;\n const { name } = OutputSchemaUtility.findByName(outputSchema, rightOperand);\n\n let rightOperandLabel = name || rightOperand;\n if (isBoolean) {\n if (Number(rightOperand) === 0) rightOperandLabel = 'False';\n else if (Number(rightOperand) === 1) rightOperandLabel = 'True';\n }\n\n return (\n
    \n {idx !== 0 && (\n \n {_.upperCase(conditionOperator)}\n \n )}\n \n {ReactHtmlParser(\n _.get(namePairLabel, leftOperand, _.startCase(leftOperand))\n )}\n \n \n {_.startCase(operatorLabel || operator)}\n \n \n {ReactHtmlParser(\n _.get(\n namePairLabel,\n rightOperandLabel,\n getModifiedRightOperand(rightOperandLabel)\n )\n )}\n \n
    \n );\n };\n\n const SignalsViewContent = (() => {\n return (\n
    \n {_.isEmpty(signals) ? (\n \n Is Empty\n \n ) : (\n _.map(signals, renderSignal)\n )}\n
    \n );\n });\n\n const SignalsViewContentWithHidden = withHiddenSignal(SignalsViewContent, hiddenSignal);\n\n const renderSignalsViewEditButton = useMemo(() => {\n return (\n {\n if (!hiddenSignal) onEdit();\n }}\n >\n \n Edit\n \n );\n }, [hiddenSignal, onEdit]);\n\n return (\n
    \n
    \n {label && (\n \n {label}\n \n )}\n {signalContent[signalType]\n && (\n \n \n info\n \n \n )}\n \n
    \n {!isViewOnly && (\n hiddenSignal ? (\n \n {renderSignalsViewEditButton}\n \n ) : (\n renderSignalsViewEditButton\n )\n )}\n
    \n );\n};\n\nSignalsView.propTypes = propTypes;\nSignalsView.defaultProps = defaultProps;\n\nexport default SignalsView;\n","import _ from 'lodash';\nimport { getStrikeIndexDisplayName } from 'v2/common/components/StrikeBasedSelector/config';\nimport { StrikeUtility } from 'v2/common/components/StrikeBasedSelector/utility';\n\nexport const getStrikeStatement = (strike, optionType, outputSchema) => {\n const {\n isIndicatorBased, isIndexBased, multiplier, valueType\n } = StrikeUtility.getStrikeObj(strike);\n\n const strikeLabel = StrikeUtility.getStrikeLabel(strike);\n\n const multiplierLabel = multiplier ? `Multiplier ${multiplier}` : '';\n\n if (isIndicatorBased) {\n const { valuePath } = strike;\n const schema = outputSchema.find(({ name }) => name === valuePath);\n\n const indicatorLabel = _.isEmpty(schema)\n ? valuePath || ''\n : `${schema?.tagConfig?.tag || ''} ${schema?.label}`;\n\n return (\n `${strikeLabel} ${indicatorLabel} `\n + `${getStrikeIndexDisplayName(\n strike[valueType] || 0,\n optionType\n )} ${multiplierLabel}`\n );\n }\n\n if (isIndexBased) {\n return (\n `${strikeLabel} `\n + `${getStrikeIndexDisplayName(\n strike[valueType] || 0,\n optionType\n )} ${multiplierLabel}`\n );\n }\n\n return `${strikeLabel} ${strike[valueType] || ''} ${multiplierLabel}`;\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { STOPS_VALUE_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n config: PropTypes.shape({}).isRequired,\n type: PropTypes.string.isRequired,\n};\n\nconst renderType = (config) => {\n const origin = _.get(config, 'origin.type', 'self');\n const isSelf = origin === 'self';\n if (config.type === STOPS_VALUE_TYPES.Percent) return isSelf ? '%' : '% Spot';\n if (config.type === STOPS_VALUE_TYPES.Amount) return isSelf ? '₹' : '₹ Spot';\n return isSelf ? 'Pts' : 'Pts Spot';\n};\n\nconst renderTrailingStopLossConfig = (trail, config) => {\n if ((_.isUndefined(trail?.trailingValue) || !trail?.trailingValue)\n || (_.isUndefined(trail?.adjustValue || !trail?.adjustValue)\n )) return null;\n\n return ` and TSL X(${trail.trailingValue}${renderType(config)}), `\n + `Y(${trail.adjustValue}${renderType(config)})`;\n};\n\nconst renderBookProfitConfig = (trail, config) => {\n if ((_.isUndefined(trail?.bookProfitOn) || !trail?.bookProfit)\n || (_.isUndefined(trail?.bookProfit || !trail?.bookProfitOn)\n )) return null;\n\n return ` and TSL P1(${trail.bookProfitOn}${renderType(config)}), `\n + `P2(${trail.bookProfit}${renderType(config)})`;\n};\n\nexport const renderTrail = (trail, config) => {\n return (\n <>\n {renderBookProfitConfig(trail, config)}\n {renderTrailingStopLossConfig(trail, config)}\n \n );\n};\n\nconst renderDelayBy = (delayBy) => {\n if (!_.isNumber(delayBy)) {\n return null;\n }\n const delayBySecs = delayBy / 1000;\n return (\n \n (spike protection delay\n {' '}\n {delayBySecs}\n {' '}\n secs)\n \n );\n};\n\nconst StopConfigView = ({ config, type }) => {\n const renderStopConfig = () => {\n if (_.isUndefined(config?.value) || !config?.value) return null;\n // only check undefined but why i check 0 ? it means\n // getSanitizedQuantConfig will return 0 if value is undefined ? it will give\n // formatted quantConfig replace the option_0_1 with leg_1 and option_0_2 with leg_2\n // once leg based changes are done, we can remove this check\n\n return (\n \n \n with\n {' '}\n {type}\n {' '}\n {config.value}\n {renderType(config)}\n {renderDelayBy(config?.delayBy)}\n \n {renderTrail(config?.trail, config)}\n \n );\n };\n\n return renderStopConfig();\n};\n\nStopConfigView.propTypes = propTypes;\n\nexport default StopConfigView;\n","import _ from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { quickAdjustmentPropTypes } from 'common/propTypes';\nimport { QUICK_ADJUSTMENT_ACTIONS, QUICK_ADJUSTMENT_TRIGGERS } from 'v2/common/constants/index';\n\nconst propTypes = {\n quickAdjustments: PropTypes.arrayOf(quickAdjustmentPropTypes),\n};\n\nconst defaultProps = {\n quickAdjustments: [],\n};\n\nconst renderQuickAdjustmentView = (quickAdjustment) => {\n const {\n trigger, action, targets, delayBy\n } = quickAdjustment;\n const triggerItem = _.find(QUICK_ADJUSTMENT_TRIGGERS, { value: trigger });\n const actionItem = _.find(QUICK_ADJUSTMENT_ACTIONS, { value: action });\n const delayByItem = _.isNumber(delayBy) ? `after ${delayBy} secs` : '';\n\n return `[On ${triggerItem.shortLabel}, ${actionItem.shortLabel} Leg: ${targets.join('|')} ${delayByItem}]`;\n};\n\nconst QuickAdjustmentsView = ({ quickAdjustments }) => {\n return quickAdjustments.map(renderQuickAdjustmentView).join('');\n};\n\nQuickAdjustmentsView.propTypes = propTypes;\nQuickAdjustmentsView.defaultProps = defaultProps;\n\nexport default QuickAdjustmentsView;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n EXPIRY_MONTHLY_DETAILS, EXPIRY_WEEKLY_DETAILS, INTENT_TYPES, SEGMENT_CONFIG,\n WAIT_AND_TRADE_TYPES, POSITION_VALUE_TYPES\n} from 'v2/common/constants/index';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport { getStrikeStatement } from './configs';\nimport StopConfigView from './StopConfigView';\nimport QuickAdjustmentsView from './QuickAdjustmentsView';\n\nconst propTypes = {\n intents: PropTypes.arrayOf(PropTypes.shape({})),\n outputSchema: outputSchemaPropTypes.isRequired\n};\n\nconst defaultProps = {\n intents: []\n};\n\nconst IntentsView = ({ intents, outputSchema }) => {\n const renderWaitAndTrade = (config) => {\n const waitAndTradeType = _.get(config, 'waitAndTradeType', '');\n const waitUntilPremiumToIncreaseInPercentage = _.get(\n config, 'waitUntilPremiumToIncreaseInPercentage', 0\n );\n const waitUntilPremiumToDecreaseInPercentage = _.get(\n config, 'waitUntilPremiumToDecreaseInPercentage', 0\n );\n if (!waitUntilPremiumToIncreaseInPercentage && !waitUntilPremiumToDecreaseInPercentage) return null;\n\n if (waitAndTradeType === WAIT_AND_TRADE_TYPES.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE) {\n return ` and WaitandTrade Decrease - ${waitUntilPremiumToDecreaseInPercentage}%`;\n }\n\n return ` and WaitandTrade Increase - ${waitUntilPremiumToIncreaseInPercentage}%`;\n };\n\n const renderStopConfig = (config, type = 'StopLoss') => {\n return (\n \n );\n };\n\n const renderReExecute = (reExecuteCount) => {\n if (_.isUndefined(reExecuteCount) || !reExecuteCount) return null;\n\n return ` and Re-Execute ${reExecuteCount}`;\n };\n\n const renderReEntry = (reEntryCount) => {\n if (_.isUndefined(reEntryCount) || !reEntryCount) return null;\n\n return ` and Re-Entry ${reEntryCount}`;\n };\n\n const renderQuantity = (quantity, type) => {\n let label = 'lot';\n if (type === SEGMENT_CONFIG.equity) {\n label = quantity?.type === POSITION_VALUE_TYPES.Amount ? 'amount' : 'quantity';\n }\n return (\n <>\n {quantity?.value ?? quantity ?? 1}\n  \n {label}\n \n );\n };\n\n const renderOptionIntent = (intent) => {\n const {\n identifier: { label },\n isIdle,\n side,\n instrument: {\n type, expiry: { index, cycle }, optionType, strike\n },\n stopLoss,\n quantity,\n stopGain,\n reEntryCount,\n reExecuteCount,\n uiConfigs: { quickAdjustments = [] } = {}\n } = intent;\n const expiry = _.get({ ...EXPIRY_MONTHLY_DETAILS, ...EXPIRY_WEEKLY_DETAILS }, `${index}-${cycle}`, {});\n\n return (\n \n \n Leg\n {label}\n \n {isIdle ? ' (Idle)' : ''}\n  \n {_.startCase(side)}\n  \n {expiry?.label || ''}\n  \n {_.startCase(type)}\n  \n {_.startCase(optionType)}\n  \n {renderQuantity(quantity, type)}\n  \n {getStrikeStatement(strike, optionType, outputSchema)}\n {renderStopConfig(stopLoss)}\n {renderStopConfig(stopGain, 'StopGain')}\n {renderWaitAndTrade(intent)}\n {renderReExecute(reExecuteCount)}\n {renderReEntry(reEntryCount)}\n \n \n );\n };\n\n const renderFutureOrEquityIntent = (intent) => {\n const {\n identifier: { label },\n instrument: { type },\n isIdle,\n stopLoss,\n side,\n stopGain,\n quantity,\n reEntryCount,\n reExecuteCount,\n uiConfigs: { quickAdjustments = [] } = {}\n } = intent;\n\n return (\n \n \n Leg\n {label}\n \n {isIdle ? ' (Idle)' : ''}\n  \n {_.startCase(type)}\n  \n {_.startCase(side)}\n  \n {renderQuantity(quantity, type)}\n  \n {renderStopConfig(stopLoss)}\n {renderStopConfig(stopGain, 'StopGain')}\n {renderWaitAndTrade(intent)}\n {renderReExecute(reExecuteCount)}\n {renderReEntry(reEntryCount)}\n\n \n \n );\n };\n\n const renderBasketIntent = (intent, idx) => {\n const {\n identifier: { label },\n } = intent;\n\n return (\n
    \n \n \n Basket\n {' '}\n {' '}\n {label}\n \n  \n {_.startCase(intent?.name)}\n  \n {intent?.multiplier || ''}\n {' '}\n Multiplier\n \n
    \n );\n };\n\n const renderModifyOrderIntent = (intent, idx) => {\n const { type, target: { label: targetLabel } } = intent;\n\n return (\n
    \n \n {type}\n {' '}\n Leg\n {' '}\n {targetLabel}\n \n
    \n );\n };\n\n const renderIntent = (intent, idx) => {\n const { type, instrument } = intent;\n\n if (type === INTENT_TYPES.OpenBasket) {\n return renderBasketIntent(intent, idx);\n }\n\n if (type === INTENT_TYPES.OpenLeg) {\n return (\n
    \n {instrument?.type === SEGMENT_CONFIG.option\n ? renderOptionIntent(intent)\n : renderFutureOrEquityIntent(intent)}\n
    \n );\n }\n\n return renderModifyOrderIntent(intent, idx);\n };\n\n return (\n <>\n {_.isEmpty(intents) && No Intents}\n {_.map(intents, renderIntent)}\n \n );\n};\n\nIntentsView.propTypes = propTypes;\nIntentsView.defaultProps = defaultProps;\n\nexport default IntentsView;\n","import _ from 'lodash';\nexport const customDisplayConfig = (pipeConfig) => {\n return {\n volumeInterval: _.get(pipeConfig, 'chartConfig.type') === 'volumeCandle'\n };\n};\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n onDeletePipeConfig: PropTypes.func,\n onEditPipeConfig: PropTypes.func,\n isDependent: PropTypes.bool,\n isHiddenSignal: PropTypes.bool,\n};\nconst defaultProps = {\n onDeletePipeConfig: () => {},\n onEditPipeConfig: () => {},\n isDependent: false,\n isHiddenSignal: false\n};\n\nconst EditOrDeleteButton = ({\n onDeletePipeConfig, onEditPipeConfig, isDependent, isHiddenSignal\n}) => {\n const renderPipeConfigEditButton = useMemo(() => {\n return (\n {\n if (!isHiddenSignal) onEditPipeConfig();\n }}\n >\n \n Edit\n \n );\n }, [isHiddenSignal, onEditPipeConfig]);\n return (\n
    \n \n {\n if (isDependent) {\n return reactToastify('Cannot delete dependent indicator', TOASTIFY_TYPES.ERROR);\n }\n return onDeletePipeConfig();\n }}\n >\n \n Delete\n \n \n {isHiddenSignal ? (\n \n {renderPipeConfigEditButton}\n \n ) : (\n renderPipeConfigEditButton\n )}\n
    \n );\n};\n\nEditOrDeleteButton.propTypes = propTypes;\nEditOrDeleteButton.defaultProps = defaultProps;\n\nexport default EditOrDeleteButton;\n","export const getExternalSignalUrl = (token) => {\n return `${window.location.origin}/external_signal/${token}`;\n};\n","import React from 'react';\n\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport { getExternalSignalUrl } from '../PipeConfigForm/components/ExternalSignal/url';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ExternalSignalView = ({ pipeConfig }) => {\n const { config: { token } } = pipeConfig;\n const url = getExternalSignalUrl(token);\n\n return (\n <>\n {url}\n \n );\n};\n\nExternalSignalView.propTypes = propTypes;\nExternalSignalView.defaultProps = defaultProps;\n\nexport default ExternalSignalView;\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\n\nimport { outputSchemaPropTypes, pipeConfigPropTypes } from 'common/propTypes';\nimport { TypeheadSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport { pipeInputSchemaTypes } from 'v2/common/quantConfig/pipeDefinitions/config';\nimport { SPECIAL_CHARACTER_REGEX } from 'v2/common/constants/index';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport SignalsView from 'v2/modules/withRunForm/components/Signals/SignalsView/index';\nimport IntentsView from 'v2/modules/withRunForm/components/Intents/IntentsView/index';\nimport StopConfigView from 'v2/modules/withRunForm/components/Intents/IntentsView/StopConfigView';\nimport { customDisplayConfig } from '../PipeConfigForm/customDisplayConfig';\nimport EditOrDeleteButton from './EditOrDeleteButton';\nimport ExternalSignalView from './ExternalSignalView';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n onDeletePipeConfig: PropTypes.func,\n onEditPipeConfig: PropTypes.func,\n isDependent: PropTypes.bool,\n isViewOnly: PropTypes.bool,\n isHiddenSignal: PropTypes.bool.isRequired,\n};\nconst defaultProps = {\n isViewOnly: false,\n onDeletePipeConfig: () => {},\n onEditPipeConfig: () => {},\n isDependent: false\n};\n\nconst CUSTOM_LABELS = {\n valuePaths: 'Fields',\n};\n\nconst PipeConfigView = ({\n pipeConfig, outputSchema, onDeletePipeConfig, onEditPipeConfig, isDependent, isViewOnly, isHiddenSignal\n}) => {\n const namePairLabel = _.reduce(outputSchema, (acc, schema) => {\n acc[schema.name] = TypeheadSchemaUtility.getOption(schema)?.label || schema.label;\n return acc;\n }, {});\n\n const {\n type, name, config, chartConfig\n } = pipeConfig;\n const inputSchema = useMemo(\n () => PipeDefinitionUtility.getPipeInputSchemaByType(type),\n [type]\n );\n\n const alteredChartConfig = _.chain(chartConfig)\n .omit(['boxUnitSize', 'boxPercentage', 'isContinuousRollup'])\n .reduce((acc, value, key) => {\n if (key === 'type') acc.chartType = value;\n else acc[key] = value;\n\n return acc;\n }, {})\n .value();\n\n const renderLabelAndValue = (label, value, fieldType) => {\n if (!value && !_.isBoolean(value)) return null;\n\n let renderValue = '';\n if (_.includes([pipeInputSchemaTypes.signal], fieldType)) {\n renderValue = (\n \n );\n } else if (_.includes([pipeInputSchemaTypes.intents], fieldType)) {\n renderValue = ;\n } else if (_.includes([pipeInputSchemaTypes.externalSignalId], fieldType)) {\n renderValue = ;\n } else if (_.includes([pipeInputSchemaTypes.stopLoss], fieldType)) {\n renderValue = ;\n } else if (_.isObject(value)) {\n renderValue = JSON.stringify(value);\n } else if (_.isBoolean(value)) {\n renderValue = _.startCase(`${value}`);\n } else {\n renderValue = ReactHtmlParser(value);\n }\n\n return (\n
    \n \n {_.startCase(_.get(CUSTOM_LABELS, label, label))}\n { ' :'}\n \n \n {renderValue}\n \n
    \n );\n };\n\n const getDefaultLabel = (value) => {\n if (value\n && !_.isObject(value)\n && Number.isNaN(Number(value))\n && !(SPECIAL_CHARACTER_REGEX.test(value))\n ) {\n return _.startCase(value);\n }\n\n return value;\n };\n\n const renderConfig = (value, key) => {\n const label = (key === 'valuePaths')\n ? _.map(value, (val) => _.get(namePairLabel, val, val ? _.startCase(val) : val)).join(', ')\n : _.get(namePairLabel, value, getDefaultLabel(value));\n const inputSchemaConfig = _.find(inputSchema, { name: key }) || {};\n const fieldType = _.get(inputSchemaConfig, 'type', key);\n const isDisplay = _.get(\n inputSchemaConfig,\n 'isDisplay',\n _.get(customDisplayConfig(pipeConfig), key, true)\n );\n\n if (!isDisplay) return null;\n\n return renderLabelAndValue(key, label, fieldType);\n };\n\n return (\n
    \n
    \n {_.startCase(type)}\n {renderLabelAndValue('name', _.startCase(name))}\n {Object.entries(_.omit(config, ['script', 'snippetId', 'outputJsonSchema', 'token']))\n .map(([key, value]) => renderConfig(value, key))}\n {Object.entries(alteredChartConfig).map(([key, value]) => renderConfig(value, key))}\n
    \n {!isViewOnly && (\n \n )}\n
    \n );\n};\n\nPipeConfigView.propTypes = propTypes;\nPipeConfigView.defaultProps = defaultProps;\n\nexport default PipeConfigView;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport PipeConfigView from 'v2/modules/withRunForm/components/PipeConfigs/PipeConfigView/index';\n\nconst propTypes = {\n pipeConfigs: PropTypes.arrayOf(PropTypes.object).isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n isHiddenSignal: PropTypes.bool.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ViewConfigIndicators = ({ pipeConfigs, outputSchema, isHiddenSignal }) => {\n const renderIndicators = (pipeConfig, key) => {\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n\n return (\n
    \n
    \n
    Indicators
    \n
    \n
    \n {_.map(pipeConfigs, renderIndicators)}\n
    \n
    \n );\n};\n\nViewConfigIndicators.propTypes = propTypes;\nViewConfigIndicators.defaultProps = defaultProps;\n\nexport default ViewConfigIndicators;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport SignalsView from 'v2/modules/withRunForm/components/Signals/SignalsView/index';\nimport IntentsView from 'v2/modules/withRunForm/components/Intents/IntentsView/index';\n\nconst propTypes = {\n isSignal: PropTypes.bool.isRequired,\n config: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n title: PropTypes.string.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n hiddenSignal: PropTypes.bool,\n};\n\nconst defaultProps = {\n hiddenSignal: false,\n};\n\nconst ViewConfigSentences = ({\n isSignal,\n config,\n title,\n outputSchema,\n hiddenSignal\n}) => {\n const divClassName = classNames('row align-items-center', {\n signal: isSignal,\n transaction: !isSignal\n });\n\n return (\n
    \n
    \n \n
    \n\n
    \n {isSignal\n ? (\n \n )\n : }\n
    \n
    \n\n );\n};\n\nViewConfigSentences.defaultProps = defaultProps;\nViewConfigSentences.propTypes = propTypes;\n\nexport default ViewConfigSentences;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport ViewConfigSentences from './ViewConfigSentences';\n\nconst propTypes = {\n cases: PropTypes.arrayOf(PropTypes.object).isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n isHiddenSignal: PropTypes.bool.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ViewConfigCases = ({\n cases, outputSchema, isHiddenSignal\n}) => {\n const renderCase = (caseConfig, index) => {\n const { entry: { signal }, exitSignal, adjustments } = caseConfig;\n const entryIntents = _.get(caseConfig, 'entry.intents', []);\n const isMoveToCost = _.get(caseConfig, 'uiConfigs.isMoveToCost', false);\n\n return (\n
    \n \n Case\n {' '}\n {index + 1}\n \n \n \n \n
    \n
    \n
    \n
    \n {isMoveToCost && (\n
    \n star\n Move to Cost Enabled\n
    \n )}\n
    \n
    \n
    \n {_.map(adjustments, (adjustment, idx) => {\n return (\n
    \n \n Adjustment\n {' '}\n {idx + 1}\n \n \n \n
    \n );\n })}\n
    \n );\n };\n\n return (\n
    \n
    \n
    Conditions
    \n
    \n\n
    \n {_.map(cases, renderCase)}\n
    \n
    \n );\n};\n\nViewConfigCases.propTypes = propTypes;\nViewConfigCases.defaultProps = defaultProps;\n\nexport default ViewConfigCases;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { RUN_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n runType: PropTypes.string.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n runName: PropTypes.string.isRequired,\n folderName: PropTypes.string.isRequired,\n orderType: PropTypes.string.isRequired,\n granularity: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ConfigRunDetails = ({\n runType, startDate, endDate, runName, folderName, orderType, granularity\n}) => {\n const isLive = runType === RUN_TYPES.live;\n\n const runDetails = [\n { title: 'Quant Run Type', value: _.startCase(runType), isShow: true },\n { title: 'Quant Order Type', value: _.startCase(orderType), isShow: isLive },\n { title: 'Start Date', value: startDate, isShow: !isLive },\n { title: 'End Date', value: endDate, isShow: !isLive },\n { title: 'Quant Run Name', value: runName, isShow: true },\n { title: 'Quant Folder Name', value: _.startCase(folderName), isShow: true },\n {\n title: 'Candle Type',\n value: _.startCase(granularity),\n isShow: !isLive\n },\n ];\n const renderDetails = (detail, key) => {\n if (!detail.isShow) return null;\n\n return (\n
    \n \n
    {_.get(detail, 'value', '')}
    \n
    \n );\n };\n\n return (\n
    \n
    \n
    \n {_.map(runDetails, renderDetails)}\n
    \n
    \n
    \n );\n};\n\nConfigRunDetails.defaultProps = defaultProps;\nConfigRunDetails.propTypes = propTypes;\n\nexport default ConfigRunDetails;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ConfigDisplayDetails from './ConfigDisplayDetails';\n\nconst propTypes = {\n tradingType: PropTypes.string.isRequired,\n timeBasedSignal: PropTypes.shape({\n entryTime: PropTypes.string,\n exitTime: PropTypes.string\n }),\n expiryHandling: PropTypes.shape({\n exitDaysBefore: PropTypes.number,\n exitTime: PropTypes.string\n }),\n maxTransactionsPerDay: PropTypes.number.isRequired\n};\n\nconst defaultProps = { timeBasedSignal: {}, expiryHandling: {} };\n\nconst ViewConfigExpiry = ({\n tradingType, timeBasedSignal, expiryHandling, maxTransactionsPerDay\n}) => {\n const renderExpiry = () => {\n if (tradingType === 'intraday') {\n const { entryTime, exitTime } = timeBasedSignal;\n const tradeDuration = (\n <>\n {entryTime}\n   - \n {exitTime}\n \n );\n\n return (\n
    \n \n \n \n
    \n );\n }\n const { exitDaysBefore, exitTime } = expiryHandling;\n\n return (\n
    \n \n \n \n \n
    \n );\n };\n\n return (\n
    \n
    \n
    Expiry
    \n
    \n
    \n {renderExpiry()}\n
    \n
    \n );\n};\n\nViewConfigExpiry.propTypes = propTypes;\nViewConfigExpiry.defaultProps = defaultProps;\n\nexport default ViewConfigExpiry;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\nimport { renderTrail } from 'v2/modules/withRunForm/components/Intents/IntentsView/StopConfigView';\nimport ConfigDisplayDetails from './ConfigDisplayDetails';\n\nconst propTypes = {\n stopLoss: PropTypes.shape({\n type: PropTypes.oneOf(Object.values(STOPS_VALUE_TYPES)),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n uiConfigs: PropTypes.shape({\n trail: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n }),\n stopGain: PropTypes.shape({\n type: PropTypes.oneOf(Object.values(STOPS_VALUE_TYPES)),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n dayStopGain: PropTypes.shape({\n type: PropTypes.oneOf(Object.values(STOPS_VALUE_TYPES)),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n dayStopLoss: PropTypes.shape({\n type: PropTypes.oneOf(Object.values(STOPS_VALUE_TYPES)),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n};\n\nconst defaultProps = {\n stopLoss: {},\n stopGain: {},\n dayStopGain: {},\n dayStopLoss: {},\n};\n\nconst stopValidation = (type, value) => {\n if (_.isUndefined(type) || _.isUndefined(value)) return undefined;\n if (type === STOPS_VALUE_TYPES.Percent) return `${value}%`;\n if (type === STOPS_VALUE_TYPES.Amount) return `${value}₹`;\n if (type === STOPS_VALUE_TYPES.Points) return `${value}Pts`;\n\n return undefined;\n};\n\nconst ViewConfigStopValues = ({\n stopLoss: propsStopLoss,\n stopGain: propsStopGain,\n dayStopGain: propsDayStopGain,\n dayStopLoss: propsDayStopLoss,\n}) => {\n const stopGain = stopValidation(propsStopGain?.type, propsStopGain?.value);\n const stopLoss = stopValidation(propsStopLoss?.type, propsStopLoss?.value);\n const dayStopGain = stopValidation(propsDayStopGain?.type, propsDayStopGain?.value);\n const dayStopLoss = stopValidation(propsDayStopLoss?.type, propsDayStopLoss?.value);\n\n if (_.isUndefined(stopGain)\n && _.isUndefined(stopLoss)\n && _.isUndefined(dayStopGain)\n && _.isUndefined(dayStopLoss)\n ) return null;\n\n return (\n
    \n
    \n
    Profit / Order
    \n
    \n
    \n
    \n \n \n <>\n {stopLoss}\n  \n {renderTrail(propsStopLoss?.uiConfigs?.trail, propsStopLoss)}\n \n \n \n \n
    \n
    \n
    \n );\n};\n\nViewConfigStopValues.propTypes = propTypes;\nViewConfigStopValues.defaultProps = defaultProps;\n\nexport default ViewConfigStopValues;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { orderModificationPropTypes } from 'common/propTypes';\nimport ConfigDisplayDetails from './ConfigDisplayDetails';\n\nconst propTypes = {\n entryOrderType: PropTypes.string.isRequired,\n exitOrderType: PropTypes.string.isRequired,\n product: PropTypes.string.isRequired,\n entryOrderModification: orderModificationPropTypes,\n exitOrderModification: orderModificationPropTypes,\n isPlaceOptionsEntryBuyOrdersFirst: PropTypes.bool,\n slOrderPlaceBasedOnPrice: PropTypes.string,\n limitOrderBufferPercentage: PropTypes.number,\n isPlaceStoplossOrderToBroker: PropTypes.bool,\n isSquareOffTransactionIfEntryFailed: PropTypes.bool\n};\n\nconst defaultProps = {\n entryOrderModification: {},\n exitOrderModification: {},\n isPlaceOptionsEntryBuyOrdersFirst: null,\n slOrderPlaceBasedOnPrice: null,\n limitOrderBufferPercentage: null,\n isPlaceStoplossOrderToBroker: null,\n isSquareOffTransactionIfEntryFailed: null\n};\n\nconst ViewConfigOrdersProduct = ({\n entryOrderType, exitOrderType, product, entryOrderModification,\n exitOrderModification, isPlaceOptionsEntryBuyOrdersFirst, slOrderPlaceBasedOnPrice,\n limitOrderBufferPercentage, isPlaceStoplossOrderToBroker, isSquareOffTransactionIfEntryFailed\n}) => {\n const renderIsPlaceOptionsEntryBuyOrdersFirst = () => {\n if (isPlaceOptionsEntryBuyOrdersFirst === null) return null;\n\n return (\n \n );\n };\n\n const renderIsSquareOffTransactionIfEntryFailed = () => {\n if (isSquareOffTransactionIfEntryFailed === null) return null;\n\n return (\n \n );\n };\n\n const getStructuredString = (modification) => {\n const { action, actionTimeInSeconds } = modification;\n let shotString = `, if order not executed in ${actionTimeInSeconds} seconds `;\n shotString += `(${_.startCase(action)})`;\n\n return shotString;\n };\n\n let entryShowString = _.startCase(entryOrderType);\n let exitShowString = _.startCase(exitOrderType);\n if (!_.isEmpty(entryOrderModification)) {\n entryShowString += getStructuredString(entryOrderModification);\n }\n if (!_.isEmpty(exitOrderModification)) {\n exitShowString += getStructuredString(exitOrderModification);\n }\n\n return (\n
    \n
    \n
    Orders / Product
    \n
    \n
    \n
    \n \n \n \n {renderIsPlaceOptionsEntryBuyOrdersFirst()}\n {slOrderPlaceBasedOnPrice\n && (\n \n )}\n {(limitOrderBufferPercentage !== null && limitOrderBufferPercentage !== 0) && (\n \n )}\n {(isPlaceStoplossOrderToBroker !== null) && (\n \n )}\n {renderIsSquareOffTransactionIfEntryFailed()}\n
    \n
    \n
    \n );\n};\n\nViewConfigOrdersProduct.defaultProps = defaultProps;\nViewConfigOrdersProduct.propTypes = propTypes;\n\nexport default ViewConfigOrdersProduct;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ConfigDisplayDetails from './ConfigDisplayDetails';\n\nconst propTypes = {\n adjustmentOptions: PropTypes.shape({\n executionType: PropTypes.string,\n }).isRequired,\n};\n\nconst defaultProps = { };\n\nconst ViewAdjustmentAdvancedOptions = ({ adjustmentOptions }) => {\n const { executionType = '' } = adjustmentOptions;\n const isShow = _.get(window, 'SA_FEATURE_FLAGS.shouldShowAdjustmentExectionType', false)\n || window?.isAdmin;\n\n if (!isShow) return null;\n\n if (!executionType) return null;\n\n return (\n
    \n
    \n
    Advanced Options
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nViewAdjustmentAdvancedOptions.propTypes = propTypes;\nViewAdjustmentAdvancedOptions.defaultProps = defaultProps;\n\nexport default ViewAdjustmentAdvancedOptions;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { runPropTypes } from 'common/propTypes';\nimport Modal from 'common/components/ModalComponent';\nimport { ORDER_TYPES, RUN_TYPES } from 'v2/common/constants/index';\nimport { getOutputSchema } from 'v2/common/quantConfig/outputSchema/index';\nimport { getSanitizedQuantConfig } from 'v2/modules/withRunForm/sanitizer/onLoad/quantConfig/index';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport ViewConfigInstrumentalDetails from './ViewConfigInstrumentalDetails';\nimport ViewConfigIndicators from './ViewConfigIndicators';\nimport ViewConfigCases from './ViewConfigCases';\nimport ConfigRunDetails from './ConfigRunDetails';\nimport ViewConfigExpiry from './ViewConfigExpiry';\nimport ViewConfigStopValues from './ViewConfigStopValues';\nimport ViewConfigOrdersProduct from './ViewConfigOrdersProduct';\nimport ViewAdjustmentAdvancedOptions from './ViewAdjustmenOptions';\n\nconst propTypes = { run: runPropTypes.isRequired, };\nconst defaultProps = { };\n\nconst ViewRunConfigs = ({ run }) => {\n const [shouldShowModal, setShowModal] = useState(false);\n const title = 'View Strategy Details';\n const quantConfig = _.get(run, 'quant_config', {});\n const isHiddenSignal = _.get(run, 'isHiddenSignal', false);\n\n if (_.isEmpty(quantConfig)) return null; // for hided quant_config\n\n const outputSchema = getOutputSchema(quantConfig);\n\n const {\n run_type: runType, start_date: startDate, end_date: endDate, folder_name:\n folderName, order_type: orderType, display_name: runName, id, granularity\n } = run;\n const sanitizedQuantConfig = getSanitizedQuantConfig(quantConfig);\n const {\n instrumentGroups,\n maxInstrumentsInGroup = _.head(instrumentGroups).length,\n pipeConfigs, cases,\n bounds: {\n maxTransactionsPerDay,\n timeBasedSignal,\n expiryHandling,\n stopLoss,\n stopGain,\n dayStopLoss,\n dayStopGain\n },\n adjustmentOptions,\n tradingType,\n entryOrderType, exitOrderType, product, entryOrderModification, exitOrderModification,\n isPlaceOptionsEntryBuyOrdersFirst, isPlaceStoplossOrderToBroker, isSquareOffTransactionIfEntryFailed\n } = sanitizedQuantConfig;\n\n const slOrderPlaceBasedOnPrice = _.get(quantConfig, 'slOrderPlaceBasedOnPrice', null);\n const limitOrderBufferPercentage = _.get(quantConfig, 'limitOrderBufferPercentage', null);\n\n const groupType = maxInstrumentsInGroup === 1 ? 'Single' : 'Pair';\n const isLive = runType === RUN_TYPES.live;\n const { paper: { value: paper } } = ORDER_TYPES;\n const isActualOrder = orderType !== paper && isLive;\n\n return (\n <>\n setShowModal(true)}\n type=\"button\"\n data-track-category=\"View Run Configs\"\n data-track-action=\"RunConfigs Display\"\n data-track-label=\"Show Page\"\n >\n {title}\n \n {shouldShowModal\n && (\n setShowModal(false)} title={title} size=\"xl\">\n
    \n \n\n
    \n \n
    \n {!(_.isEmpty(pipeConfigs)) && (\n \n )}\n \n \n \n \n {isActualOrder && (\n \n )}\n\n
    \n
    \n )}\n \n );\n};\n\nViewRunConfigs.propTypes = propTypes;\nViewRunConfigs.defaultProps = defaultProps;\n\nexport default withErrorBoundary(ViewRunConfigs);\n","import _ from 'lodash';\nimport { ORDER_TYPES, PRODUCT_TYPES, RUN_TYPES } from 'v2/common/constants/index';\n\nexport const onChangeOrderType = ({\n orderType,\n quantConfig,\n runType\n}) => {\n const omitKeysForNotActual = [\n 'entryOrderType', 'exitOrderType', 'product', 'entryOrderModification', 'exitOrderModification',\n 'isPlaceOptionsEntryBuyOrdersFirst',\n 'isPlaceStoplossOrderToBroker', 'isSquareOffTransactionIfEntryFailed',\n 'stopAndLimitPriceDifferenceInPercentage'\n ];\n const isLive = runType === RUN_TYPES.live;\n const isActual = orderType !== ORDER_TYPES.paper.value && isLive;\n\n let sanitizedQuantConfig = _.cloneDeep(quantConfig);\n if (!isActual) {\n sanitizedQuantConfig = _.omit(sanitizedQuantConfig, omitKeysForNotActual);\n }\n if (isActual) {\n const {\n product, entryOrderType, entryOrderModification,\n exitOrderType, exitOrderModification, limitOrderBufferPercentage,\n slOrderPlaceBasedOnPrice, isPlaceOptionsEntryBuyOrdersFirst,\n stopAndLimitPriceDifferenceInPercentage, isPlaceStoplossOrderToBroker,\n isSquareOffTransactionIfEntryFailed,\n } = quantConfig;\n\n if (!product) sanitizedQuantConfig.product = PRODUCT_TYPES.mis.value;\n if (!entryOrderType) sanitizedQuantConfig.entryOrderType = 'market';\n if (_.isEmpty(entryOrderModification)) sanitizedQuantConfig.entryOrderModification = {};\n if (!exitOrderType) sanitizedQuantConfig.exitOrderType = 'market';\n if (isPlaceOptionsEntryBuyOrdersFirst === undefined) {\n sanitizedQuantConfig.isPlaceOptionsEntryBuyOrdersFirst = true;\n }\n if (isPlaceStoplossOrderToBroker === undefined) {\n sanitizedQuantConfig.isPlaceStoplossOrderToBroker = true;\n }\n if (!stopAndLimitPriceDifferenceInPercentage) {\n sanitizedQuantConfig.stopAndLimitPriceDifferenceInPercentage = 0;\n }\n if (_.isEmpty(exitOrderModification)) sanitizedQuantConfig.exitOrderModification = {};\n if (!limitOrderBufferPercentage) sanitizedQuantConfig.limitOrderBufferPercentage = 0;\n if (isSquareOffTransactionIfEntryFailed === undefined) {\n sanitizedQuantConfig.isSquareOffTransactionIfEntryFailed = false;\n }\n if (!slOrderPlaceBasedOnPrice) sanitizedQuantConfig.slOrderPlaceBasedOnPrice = 'traded_price';\n }\n\n return { orderType, quantConfig: sanitizedQuantConfig, runType };\n};\n","import _ from 'lodash';\nexport const extractIdsFromLabel = (string) => {\n const config = {\n basketId: null,\n intentId: null,\n };\n try {\n const pattern = /(\\d+)(?:\\(([A-Za-z])\\))?/;\n const match = string.match(pattern);\n\n if (match) {\n const basketId = match[1] ? match[2] : null; // Set basketId to null if there are no parentheses\n const intentId = match[1] ? match[1] : match[2]; // Use basketId as intentId if intentId is not present\n\n return {\n basketId,\n intentId,\n };\n }\n return config;\n } catch {\n return config;\n }\n};\n\nexport const extractIndividualSchemaField = (string) => {\n const [position, label, field] = _.split(string, '.');\n const { basketId, intentId } = extractIdsFromLabel(label);\n\n return {\n position,\n field,\n intentId,\n label,\n basketId,\n };\n};\n","import _ from 'lodash';\nimport { extractIndividualSchemaField } from 'v2/modules/withRunForm/utils/signal';\n\nexport const getFormattedOperand = (operand, intents) => {\n const {\n position,\n field,\n label,\n } = extractIndividualSchemaField(operand);\n\n const findIntent = _.find(intents, (intent) => `${intent.identifier.label}` === `${label}`);\n const {\n identifier: {\n optionConfigIndex, instrumentIndex, segment, adjustmentConfigIndex\n }\n } = findIntent;\n\n let newSegment = segment;\n if (optionConfigIndex !== null) newSegment += `_${optionConfigIndex}`;\n if (adjustmentConfigIndex !== null) newSegment += `_${adjustmentConfigIndex}`;\n\n // TODO: Use `buildLegProperty` from ./config.js\n return `${position}.${instrumentIndex}.${newSegment}.${field}`;\n};\n\nexport const getSanitizedAdjustmentSignals = (signal, intents) => {\n const newSignal = _.map(signal, (signalConfig) => {\n const { leftOperand, rightOperand } = signalConfig;\n const isIndividualStopIncludesLeftOperand = leftOperand.includes('individualStop.');\n const isIndividualStopIncludesRightOperand = rightOperand?.includes('individualStop.');\n\n let newLeftOperand = leftOperand;\n let newRightOperand = rightOperand;\n\n if (isIndividualStopIncludesLeftOperand) {\n newLeftOperand = getFormattedOperand(leftOperand, intents);\n }\n\n if (isIndividualStopIncludesRightOperand) {\n newRightOperand = getFormattedOperand(rightOperand, intents);\n }\n\n return {\n ...signalConfig,\n leftOperand: newLeftOperand,\n rightOperand: newRightOperand\n };\n });\n\n return newSignal;\n};\n","import { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\n\nexport const getTypeBasedValue = (type) => {\n switch (type) {\n case STOPS_VALUE_TYPES.Amount:\n return 'lossAmount';\n case STOPS_VALUE_TYPES.Points:\n return 'lossPoints';\n default:\n return 'lossPercentage';\n }\n};\n\nexport const buildLegProperty = (identifier, property) => {\n const {\n instrumentIndex,\n segment,\n adjustmentConfigIndex,\n optionConfigIndex\n } = identifier;\n\n let locator = segment;\n\n if (optionConfigIndex !== null) locator += `_${optionConfigIndex}`;\n if (adjustmentConfigIndex !== null) locator += `_${adjustmentConfigIndex}`;\n\n return `ordersExtra.${instrumentIndex}.${locator}.${property}`;\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { getDefaultIdentifier } from 'v2/modules/withRunForm/configs/index';\nimport { getTypeBasedValue } from './config';\n\nexport const moveToCostBasedAdjustmentAdder = (\n intent, lastAdjustmentConfigIndex, moveToCostOptionIndexes\n) => {\n const {\n identifier, stopLoss, instrument: { instrumentIndex }\n } = intent;\n const currentAdjustmentConfigIndex = lastAdjustmentConfigIndex;\n\n return _.map(moveToCostOptionIndexes, (moveToCostOptionIndex) => {\n const {\n segment, adjustmentConfigIndex, optionConfigIndex, label\n } = identifier;\n\n let newLeftOperand = '';\n let newSegment = segment;\n if (optionConfigIndex !== null) newSegment += `_${optionConfigIndex}`;\n if (adjustmentConfigIndex !== null) newSegment += `_${adjustmentConfigIndex}`;\n\n // TODO: Use `buildLegProperty` from ./config.js\n newLeftOperand += `individualStop.${instrumentIndex}.${newSegment}.${getTypeBasedValue(stopLoss?.type)}`;\n\n const newIndentifer = {\n ...getDefaultIdentifier(),\n type: 'Legacy',\n segment,\n caseIndex: identifier.caseIndex,\n adjustmentConfigIndex: currentAdjustmentConfigIndex,\n instrumentIndex,\n optionConfigIndex: moveToCostOptionIndex,\n };\n\n const newTarget = {\n type: 'Legacy',\n label: `${label}`,\n iteration: 0,\n segment,\n caseIndex: identifier.caseIndex,\n adjustmentConfigIndex: null,\n instrumentIndex,\n optionConfigIndex: moveToCostOptionIndex,\n };\n\n const result = {\n uiConfigs: {\n isAutoAdjustment: true,\n adjustmentMode: 'moveToCost'\n },\n signal: [{\n conditionOperator: '',\n leftOperand: newLeftOperand,\n operator: 'equalOrAbove',\n rightOperand: stopLoss?.value,\n }],\n intents: [{\n type: INTENT_TYPES.UpdateStopLoss,\n target: newTarget,\n identifier: newIndentifer,\n }]\n };\n return result;\n });\n};\n","import _ from 'lodash';\nimport { getDefaultIdentifier } from 'v2/modules/withRunForm/configs/index';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\n\nexport const reExecuteBasedAdjutmentAdder = (intent, lastAdjustmentConfigIndex) => {\n const {\n reExecuteCount, identifier, instrument: { instrumentIndex }\n } = intent;\n let previousIdentifier = identifier;\n let currentAdjustmentConfigIndex = lastAdjustmentConfigIndex;\n\n return _.map(_.range(reExecuteCount), () => {\n let newLeftOperand = '';\n const { segment, adjustmentConfigIndex, optionConfigIndex } = previousIdentifier;\n const isOption = segment === SEGMENT_CONFIG.option;\n\n let newSegment = segment;\n if (optionConfigIndex !== null) newSegment += `_${optionConfigIndex}`;\n if (adjustmentConfigIndex !== null) newSegment += `_${adjustmentConfigIndex}`;\n\n // TODO: Use `buildLegProperty` from ./config.js\n newLeftOperand += `individualStop.${instrumentIndex}.${newSegment}.hasExitedInLoss`;\n\n const newIndentifer = {\n ...getDefaultIdentifier(),\n segment,\n type: 'Legacy',\n caseIndex: identifier.caseIndex,\n adjustmentConfigIndex: currentAdjustmentConfigIndex,\n instrumentIndex,\n optionConfigIndex: isOption ? 0 : null,\n };\n\n const result = {\n uiConfigs: {\n isAutoAdjustment: true,\n adjustmentMode: 'reExecute'\n },\n signal: [\n {\n conditionOperator: '',\n leftOperand: newLeftOperand,\n operator: 'equalTo',\n rightOperand: '1',\n },\n {\n conditionOperator: 'and',\n leftOperand: _.replace(newLeftOperand, 'hasExitedInLoss', 'slUpdated'),\n operator: 'equalTo',\n rightOperand: '0',\n }\n ],\n intents: [{\n ...intent,\n type: 'OpenLeg',\n identifier: newIndentifer,\n target: previousIdentifier,\n waitUntilPremiumToIncreaseInPercentage: 0,\n waitUntilPremiumToDecreaseInPercentage: 0,\n waitAndTradeType: 'waitUntilPremiumToIncreaseInPercentage',\n reEntryCount: 0,\n reExecuteCount: 0,\n }]\n };\n previousIdentifier = newIndentifer;\n currentAdjustmentConfigIndex += 1;\n return result;\n });\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES, SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { getDefaultIdentifier } from 'v2/modules/withRunForm/configs/index';\n\nexport const reEntryBasedAdjustmentAdder = (intent, lastAdjustmentConfigIndex) => {\n const { reEntryCount, identifier, instrument: { instrumentIndex } } = intent;\n let currentAdjustmentConfigIndex = lastAdjustmentConfigIndex;\n\n let previousIdentifier = identifier;\n\n return _.map(_.range(reEntryCount), () => {\n const { segment, adjustmentConfigIndex, optionConfigIndex } = previousIdentifier;\n const isOption = segment === SEGMENT_CONFIG.option;\n\n let newLeftOperand = '';\n let newSegment = segment;\n if (optionConfigIndex !== null) newSegment += `_${optionConfigIndex}`;\n if (adjustmentConfigIndex !== null) newSegment += `_${adjustmentConfigIndex}`;\n\n // TODO: Use `buildLegProperty` from ./config.js\n newLeftOperand += `ordersExtra.${instrumentIndex}.${newSegment}.isPriceCrossedEntryPriceAfterStopLoss`;\n\n const newIndentifer = {\n ...getDefaultIdentifier(),\n segment,\n type: 'Legacy',\n caseIndex: identifier.caseIndex,\n adjustmentConfigIndex: currentAdjustmentConfigIndex,\n instrumentIndex,\n optionConfigIndex: isOption ? 0 : null,\n };\n\n const result = {\n uiConfigs: {\n isAutoAdjustment: true,\n adjustmentMode: 'reEntry'\n },\n signal: [\n {\n conditionOperator: '',\n leftOperand: newLeftOperand,\n operator: 'equalTo',\n rightOperand: '1',\n },\n {\n conditionOperator: 'and',\n leftOperand: _.replace(newLeftOperand, 'isPriceCrossedEntryPriceAfterStopLoss', 'slUpdated'),\n operator: 'equalTo',\n rightOperand: '0',\n }\n ],\n intents: [{\n type: INTENT_TYPES.ReEntry,\n target: identifier,\n identifier: newIndentifer,\n }]\n };\n previousIdentifier = newIndentifer;\n currentAdjustmentConfigIndex += 1;\n return result;\n });\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES, POSITION_VALUE_TYPES } from 'v2/common/constants/index';\n\nexport const getBasketOpenLegIntentsBasedOnIntents = (intents, pipeConfigs) => {\n const [basketIntents, remainingIntents] = _.partition(\n intents, ({ type }) => type === INTENT_TYPES.OpenBasket\n );\n\n const basketBasedOpenLegIntents = _.flatMap(basketIntents,\n ({ name: bName, multiplier, identifier: { label: basketLabel } }) => {\n const {\n config: { legs = [], when = {} } = {}\n } = _.find(pipeConfigs, ({ name }) => name === bName) || {};\n\n return legs.map((intent) => {\n const { identifier: { label } } = intent;\n const instrumentConfig = _.get(intent, 'instrument', {});\n\n return {\n ..._.omit(intent, ['instrument']),\n instrument: { type: 'capture', subSelection: instrumentConfig, when },\n identifier: { label: `${basketLabel}(${label})` },\n quantity: {\n type: intent?.quantity?.type ?? POSITION_VALUE_TYPES.Lot,\n value: Number(intent.quantity?.value ?? intent.quantity) * Number(multiplier),\n },\n uiConfigs: { isBasketIntent: true, name: bName }\n };\n });\n });\n\n return [...basketIntents, ...remainingIntents, ...basketBasedOpenLegIntents];\n};\n","import _ from 'lodash';\nimport {\n INTENT_TYPES,\n QUICK_ADJUSTMENT_ACTIONS,\n QUICK_ADJUSTMENT_TRIGGERS,\n} from 'v2/common/constants/index';\nimport { buildLegProperty } from './config';\n\nconst intentTypeFor = (action) => {\n if (action === QUICK_ADJUSTMENT_ACTIONS.CloseLeg.value) {\n return INTENT_TYPES.CloseLeg;\n }\n\n if (action === QUICK_ADJUSTMENT_ACTIONS.ExecuteLeg.value) {\n return INTENT_TYPES.ExecuteLeg;\n }\n\n return INTENT_TYPES.UpdateStopLoss;\n};\n\nconst intentsFor = (action, targets, labelToReferenceMap) => {\n return _.map(targets, (target) => {\n return {\n type: intentTypeFor(action),\n target: labelToReferenceMap[target],\n };\n });\n};\n\nconst signalFor = (label, trigger, delayBy, labelToReferenceMap) => {\n const reference = labelToReferenceMap[label];\n const property = trigger === QUICK_ADJUSTMENT_TRIGGERS.ExitedInLoss.value\n ? 'hasExitedInLoss'\n : 'hasExitedInProfit';\n const signal = [\n {\n conditionOperator: '',\n leftOperand: buildLegProperty(reference, property),\n operator: 'equalTo',\n rightOperand: '1',\n },\n ];\n\n if (_.isNumber(delayBy)) {\n signal.push({\n conditionOperator: 'and',\n leftOperand: buildLegProperty(reference, 'exitTimeFromNow'),\n operator: 'equalOrAbove',\n rightOperand: `${delayBy || 0}seconds`,\n });\n }\n return signal;\n};\n\nconst adjustmentsForQuickAdjustments = (\n label,\n quickAdjustments,\n labelToReferenceMap\n) => {\n return _.chain(quickAdjustments)\n .groupBy((qa) => `${qa.trigger}-${qa.delayBy}`)\n .map((simillarQuickAdjustments) => {\n const { trigger, delayBy } = simillarQuickAdjustments[0] || {};\n return {\n uiConfigs: {\n isAutoAdjustment: true,\n adjustmentMode: 'quickAdjustment',\n },\n signal: signalFor(label, trigger, delayBy, labelToReferenceMap),\n intents: _.flatMap(simillarQuickAdjustments, ({ action, targets }) => {\n return intentsFor(action, targets, labelToReferenceMap);\n }),\n };\n })\n .value();\n};\n\nexport const getSyntheticAdjustments = (allIntents) => {\n const labelToReferenceMap = _.reduce(\n allIntents,\n (hsh, intent) => {\n if (intent?.type === INTENT_TYPES.OpenLeg && intent?.identifier?.label) {\n hsh[intent?.identifier?.label] = intent?.identifier;\n }\n return hsh;\n },\n {}\n );\n\n return _.flatMap(allIntents, (intent) => {\n const quickAdjustments = intent?.uiConfigs?.quickAdjustments || [];\n const label = intent?.identifier?.label;\n if (quickAdjustments.length <= 0 || _.isUndefined(label)) {\n return [];\n }\n return adjustmentsForQuickAdjustments(\n label,\n quickAdjustments,\n labelToReferenceMap\n );\n });\n};\n","import _ from 'lodash';\nimport {\n INTENT_TYPES,\n SEGMENT_CONFIG,\n STRIKE_SELECTION_TYPES,\n} from 'v2/common/constants/index';\nimport { getFormattedOperand, getSanitizedAdjustmentSignals } from './signal';\nimport { moveToCostBasedAdjustmentAdder } from './moveToCost';\nimport { reExecuteBasedAdjutmentAdder } from './reExectute';\nimport { reEntryBasedAdjustmentAdder } from './reEntry';\nimport { getBasketOpenLegIntentsBasedOnIntents } from '../basket';\nimport * as quickAdjustments from './quickAdjustments';\n\nconst getAdjustmentNewTarget = (intent, intents) => {\n const {\n target: { label },\n } = intent;\n if (!label) return intent.target;\n\n const findIntent = _.find(\n intents,\n (bIntent) => bIntent.identifier.label === label\n );\n return findIntent.identifier;\n};\n\nconst getPositionReferenceForAdjustmentIntent = (\n intent,\n intentIndex,\n caseIndex,\n adjustmentConfigIndex,\n intents\n) => {\n const newIntent = _.cloneDeep(intent);\n const { identifier, type } = newIntent;\n\n if (!_.includes([INTENT_TYPES.OpenLeg, INTENT_TYPES.OpenBasket], type)) {\n return { ...newIntent, target: getAdjustmentNewTarget(newIntent, intents) };\n }\n\n const instrumentConfig = _.get(newIntent, 'instrument.subSelection')\n || _.get(newIntent, 'instrument', {});\n const segment = instrumentConfig?.type;\n const isOption = segment === SEGMENT_CONFIG.option;\n const strikeType = newIntent?.instrument?.strike?.type;\n const { IndicatorValueBasedStrikeIndex } = STRIKE_SELECTION_TYPES;\n\n if (isOption && strikeType === IndicatorValueBasedStrikeIndex.value) {\n const valuePath = newIntent?.instrument?.strike?.valuePath;\n if (valuePath?.includes('individualStop.')) {\n newIntent.instrument.strike.valuePath = getFormattedOperand(\n valuePath,\n intents\n );\n }\n }\n\n return {\n ...newIntent,\n identifier: {\n ...identifier,\n label: `${identifier?.label}`,\n type: 'Legacy',\n segment,\n caseIndex,\n adjustmentConfigIndex,\n instrumentIndex: instrumentConfig?.instrumentIndex,\n optionConfigIndex: isOption ? intentIndex : null,\n },\n };\n};\n\nconst isReEntryEligible = (isReEntry, intent) => {\n return isReEntry && intent?.reEntryCount;\n};\n\nconst isReExecuteEligible = (isReExecute, intent) => {\n return isReExecute && intent?.reExecuteCount;\n};\n\nconst isMoveToCostEligible = (isMoveToCost, intent) => {\n return (\n isMoveToCost\n && intent?.identifier.segment === SEGMENT_CONFIG.option\n && intent?.stopLoss?.value\n );\n};\n\nconst getMoveToCostOptionIndexes = (intents, optionType) => {\n return _.chain(intents)\n .map((intent) => {\n if (optionType === 'CE' && intent.instrument.optionType === 'PE') {\n return intent.identifier.optionConfigIndex;\n }\n if (optionType === 'PE' && intent.instrument.optionType === 'CE') {\n return intent.identifier.optionConfigIndex;\n }\n return undefined;\n })\n .filter((val) => val !== undefined)\n .value();\n};\n\nconst getIntentsBasedAutoAdjustments = (\n adjustments,\n intents,\n caseIndex,\n isMoveToCost,\n isReEntry,\n isReExecute\n) => {\n let lastAdjustmentIndex = adjustments.length;\n\n const newAutoAdjustments = _.chain(intents)\n .map((intent) => {\n let reEntryAutoAdjustments = [];\n let reExecuteAutoAdjustments = [];\n let moveToCostAutoAdjustments = [];\n\n if (isReEntryEligible(isReEntry, intent)) {\n reEntryAutoAdjustments = reEntryBasedAdjustmentAdder(\n intent,\n lastAdjustmentIndex,\n caseIndex\n );\n lastAdjustmentIndex += Number(intent?.reEntryCount) || 0;\n }\n if (isReExecuteEligible(isReExecute, intent)) {\n reExecuteAutoAdjustments = reExecuteBasedAdjutmentAdder(\n intent,\n lastAdjustmentIndex\n );\n lastAdjustmentIndex += Number(intent?.reExecuteCount) || 0;\n }\n if (isMoveToCostEligible(isMoveToCost, intent)) {\n const {\n instrument: { optionType },\n } = intent;\n\n const moveToCostOptionIndexes = getMoveToCostOptionIndexes(\n intents,\n optionType\n );\n moveToCostAutoAdjustments = moveToCostBasedAdjustmentAdder(\n intent,\n lastAdjustmentIndex,\n moveToCostOptionIndexes\n );\n lastAdjustmentIndex += _.isEmpty(moveToCostAutoAdjustments) ? 0 : 1;\n }\n\n return [\n ...reEntryAutoAdjustments,\n ...reExecuteAutoAdjustments,\n ...moveToCostAutoAdjustments,\n ];\n })\n .flattenDeep()\n .value();\n\n return [...adjustments, ...newAutoAdjustments];\n};\n\nexport const getBeforeSubmitSanitizedAdjustments = (\n adjustments,\n baseIntents,\n caseIndex,\n isMoveToCost,\n isReEntry,\n isReExecute,\n pipeConfigs\n) => {\n const openLegIntents = _.filter(\n baseIntents,\n ({ type }) => type === INTENT_TYPES.OpenLeg\n );\n\n return _(adjustments)\n .map((adjustmentConfig, adjustmentConfigIndex) => {\n const basketLegAddedIntents = getBasketOpenLegIntentsBasedOnIntents(\n adjustmentConfig?.intents || [],\n pipeConfigs\n );\n\n const newIntents = _.chain(basketLegAddedIntents)\n .partition(({ type }) => type === INTENT_TYPES.OpenLeg)\n .flatMap()\n .map((intent, intentIndex) => {\n const newIntent = getPositionReferenceForAdjustmentIntent(\n intent,\n intentIndex,\n caseIndex,\n adjustmentConfigIndex,\n openLegIntents\n );\n if (newIntent.type === INTENT_TYPES.OpenLeg) openLegIntents.push(newIntent);\n return newIntent;\n })\n .value();\n\n return {\n ...adjustmentConfig,\n signal: getSanitizedAdjustmentSignals(\n adjustmentConfig?.signal,\n openLegIntents\n ),\n intents: newIntents,\n };\n })\n .thru((adjustmentConfigs) => {\n const adjustmentIntents = _.chain(adjustmentConfigs)\n .map('intents')\n .flatten()\n .reject({ type: INTENT_TYPES.OpenBasket })\n .value();\n\n return _.chain(adjustmentConfigs)\n .thru((oldAdjustmentConfigs) => {\n return getIntentsBasedAutoAdjustments(\n oldAdjustmentConfigs,\n _.chain(baseIntents)\n .reject({ type: INTENT_TYPES.OpenBasket })\n .value(),\n caseIndex,\n isMoveToCost,\n isReEntry,\n isReExecute\n );\n })\n .thru((newAdjustmentConfigs) => {\n return getIntentsBasedAutoAdjustments(\n newAdjustmentConfigs,\n adjustmentIntents,\n caseIndex,\n false,\n isReEntry,\n isReExecute\n );\n })\n .value();\n })\n .thru((adjustmentConfigs) => {\n const adjustmentIntents = _.chain(adjustmentConfigs)\n .flatMap(({ intents: i }) => i || [])\n .filter(({ uiConfigs }) => !uiConfigs?.isAutoAdjustment)\n .value();\n const allIntents = _.chain(baseIntents)\n .concat(adjustmentIntents)\n .filter(({ type }) => type === INTENT_TYPES.OpenLeg)\n .value();\n return adjustmentConfigs.concat(quickAdjustments.getSyntheticAdjustments(allIntents));\n })\n .value();\n};\n","import _ from 'lodash';\nexport const getSanitizedStopLoss = (stopLoss) => {\n const trail = stopLoss?.trail || {};\n\n const isOmitTrailingStopLoss = !trail.trailingValue;\n const isOmitAdjustStopLoss = !trail.adjustValue;\n const isOmitBookProfitOn = !trail.bookProfitOn;\n const isOmitBookProfit = !trail.bookProfit;\n\n const isOmitTrail = isOmitTrailingStopLoss && isOmitAdjustStopLoss\n && isOmitBookProfitOn && isOmitBookProfit;\n\n const sanitizedTrail = _.omit(trail, [\n isOmitTrailingStopLoss ? 'trailingValue' : null,\n isOmitAdjustStopLoss ? 'adjustValue' : null,\n isOmitBookProfitOn ? 'bookProfitOn' : null,\n isOmitBookProfit ? 'bookProfit' : null,\n ]);\n\n return {\n ...stopLoss,\n trail: isOmitTrail ? undefined : sanitizedTrail,\n };\n};\n","import _ from 'lodash';\nimport { INTENT_TYPES, SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { getBeforeSubmitSanitizedAdjustments } from './adjustment/index';\nimport { getBasketOpenLegIntentsBasedOnIntents } from './basket';\nimport { getSanitizedStopLoss } from './stopLoss';\n\nconst getPositionReferenceForBaseIntent = (intent, intentIndex, caseIndex) => {\n const { identifier } = intent;\n const instrumentConfig = _.get(intent, 'instrument.subSelection') || _.get(intent, 'instrument', {});\n const segment = instrumentConfig?.type;\n const isOption = segment === SEGMENT_CONFIG.option;\n\n return {\n ...intent,\n identifier: {\n ...identifier,\n label: `${identifier?.label}`,\n type: 'Legacy',\n segment: instrumentConfig?.type,\n caseIndex,\n adjustmentConfigIndex: null,\n instrumentIndex: instrumentConfig?.instrumentIndex,\n optionConfigIndex: isOption ? intentIndex : null\n },\n };\n};\n\nconst getSanitizedIntents = (intents) => {\n return _.map(intents, (intent) => {\n const isTargetEmpty = !(intent?.target?.label);\n const isOmitStopLoss = !(intent?.stopLoss?.value);\n const isOmitStopGain = !(intent?.stopGain?.value);\n const newIntent = { ...intent, stopLoss: getSanitizedStopLoss(intent?.stopLoss) };\n\n return _.omit(newIntent, [\n isTargetEmpty ? 'target' : null,\n isOmitStopLoss ? 'stopLoss' : null,\n isOmitStopGain ? 'stopGain' : null\n ]);\n });\n};\n\nexport const getSanitizedCases = (cases, { isReEntry, isReExecute }, pipeConfigs) => _.chain(cases)\n .map((caseConfig, caseIndex) => {\n const {\n entry,\n entry: { intents },\n uiConfigs: { isMoveToCost },\n adjustments,\n } = caseConfig;\n\n const newBaseIntents = _(intents)\n .thru((newIntents) => getBasketOpenLegIntentsBasedOnIntents(newIntents, pipeConfigs))\n .map((intent, intentIndex) => getPositionReferenceForBaseIntent(intent, intentIndex, caseIndex))\n .value();\n\n const newAdjustments = getBeforeSubmitSanitizedAdjustments(\n adjustments,\n _.reject(newBaseIntents, { type: INTENT_TYPES.OpenBasket }),\n caseIndex,\n isMoveToCost,\n isReEntry,\n isReExecute,\n pipeConfigs\n );\n\n return {\n ...caseConfig,\n adjustments: _.map(newAdjustments, (adjustmentConfig) => ({\n ...adjustmentConfig,\n intents: getSanitizedIntents(adjustmentConfig.intents),\n })),\n entry: { ...entry, intents: getSanitizedIntents(newBaseIntents) },\n };\n })\n .value();\n","import _ from 'lodash';\nimport {\n INDEX_INSTRUMENTS_ONLY_WEEKLY_EXPIRY,\n MONTHLY_ONLY_INDEX, ILL_IQUID_INDEX\n} from 'v2/common/constants/index';\n\nexport const isIndexInstrumentPresentInInstrumentGroup = (instrumentGroups, instrumentIndex = 0) => {\n const { indexInstruments } = window;\n\n return _.some(instrumentGroups, (instrumentGroup) => {\n return _.includes(indexInstruments, _.get(instrumentGroup, instrumentIndex, ''));\n });\n};\n\nexport const isIndexInstrumentWithWeeklyExpiryOnly = (instrumentGroups, instrumentIndex = 0) => {\n const isIndexInstrument = isIndexInstrumentPresentInInstrumentGroup(instrumentGroups, instrumentIndex);\n return isIndexInstrument && _.some(instrumentGroups, (instrumentGroup) => {\n return _.includes(INDEX_INSTRUMENTS_ONLY_WEEKLY_EXPIRY, _.get(instrumentGroup, instrumentIndex, ''));\n });\n};\n\nexport const isWeeklySupportedIndexInstrument = (instrumentGroups, instrumentIndex = 0) => {\n const isIndexInstrument = isIndexInstrumentPresentInInstrumentGroup(instrumentGroups, instrumentIndex);\n return isIndexInstrument && _.some(instrumentGroups, (instrumentGroup) => {\n return !_.includes(MONTHLY_ONLY_INDEX, _.get(instrumentGroup, instrumentIndex, ''));\n });\n};\nexport const isIlliquidInstrument = (instrumentGroups, instrumentIndex = 0) => {\n return _.some(instrumentGroups, (instrumentGroup) => {\n return _.includes(ILL_IQUID_INDEX, _.get(instrumentGroup, instrumentIndex, ''));\n });\n};\n","import { INTENT_TYPES, SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport _ from 'lodash';\nimport {\n isIndexInstrumentWithWeeklyExpiryOnly,\n isWeeklySupportedIndexInstrument\n} from '../../components/InstrumentDetails/indexInstrumentsChecker';\n\nconst isEnabledCalenderSpread = _.get(\n window, 'SA_FEATURE_FLAGS.shouldShowCalenderSpread', false\n) || window?.isAdmin || false;\n\nexport const getIntentsError = (intents, instrumentGroups) => {\n const openLegAndIntents = _.filter(intents, (intent) => _.includes([INTENT_TYPES.OpenLeg], intent.type));\n const optionIntents = _.filter(\n openLegAndIntents,\n (intent) => intent?.instrument?.type === SEGMENT_CONFIG.option\n );\n const optionIntentsWithExpiryDetails = _.chain(optionIntents)\n .filter((intent) => !_.isEmpty(_.get(intent, 'instrument.expiry', {})))\n .value();\n\n const setCalenderSpreadErrors = () => {\n return _.reduce(optionIntentsWithExpiryDetails, (acc, intent) => {\n return {\n ...acc,\n [`${intent.identifier.label}`]: {\n isErrorInExpiry: true,\n errorMessage: 'Please purchase a premium plan to use calender spread',\n isPremiumError: true\n }\n };\n }, {});\n };\n\n const setExpiryErrors = () => {\n const errorConfigs = {};\n if (_.isEmpty(_.flattenDeep(instrumentGroups))) {\n return errorConfigs;\n }\n _.chain(optionIntentsWithExpiryDetails)\n .forEach((intent) => {\n const { instrument: { instrumentIndex, expiry: { cycle } } } = intent;\n const isIndexInstrumentWithWeeklyExpiry = isIndexInstrumentWithWeeklyExpiryOnly(\n instrumentGroups, instrumentIndex\n );\n if (isIndexInstrumentWithWeeklyExpiry && cycle === 'monthly') {\n errorConfigs[`${intent.identifier.label}`] = {\n isErrorInExpiry: true,\n errorMessage: 'Selected Instrument has weekly expiry only',\n isPremiumError: false\n };\n }\n\n if (\n (\n !isWeeklySupportedIndexInstrument(instrumentGroups, instrumentIndex)\n ) && cycle === 'weekly'\n ) {\n errorConfigs[`${intent.identifier.label}`] = {\n isErrorInExpiry: true,\n errorMessage: 'Selected Instrument has monthly expiry only',\n isPremiumError: false\n };\n }\n })\n .value();\n\n return errorConfigs;\n };\n\n const isSame = _.chain(optionIntentsWithExpiryDetails)\n .map('instrument.expiry')\n .uniqWith(_.isEqual)\n .value().length === 1;\n\n const instrumentBasedExpiryErrors = setExpiryErrors();\n const hasToValidateForCalenderSpread = optionIntentsWithExpiryDetails.length > 1\n && !isSame && !isEnabledCalenderSpread;\n\n if (hasToValidateForCalenderSpread) {\n let expiryError = 'All option expires should be same or else ';\n expiryError += 'please purchase a premium plan to use multiple expiry';\n\n const errorConfigs = setCalenderSpreadErrors();\n return {\n errorMessage: expiryError,\n errorConfigs\n };\n }\n if (!_.isEmpty(instrumentBasedExpiryErrors)) {\n let expiryError = 'Please resolve the errors in the expiry ';\n expiryError += '(Some instrument have weekly or monthly expiry only)';\n\n return {\n errorMessage: expiryError,\n errorConfigs: instrumentBasedExpiryErrors\n };\n }\n\n return { errorMessage: '', errorConfigs: {} };\n};\n","import _ from 'lodash';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { RUN_TYPES } from 'v2/common/constants/index';\nimport { PIPE_CATEGORIES } from 'v2/common/quantConfig/index';\nimport { getIntentsError } from 'v2/modules/withRunForm/hooks/useIntents/getIntentsError';\nimport { getSanitizedStopLoss } from './stopLoss';\nimport { getSanitizedAdjustmentSignals } from './adjustment/signal';\n\nconst defaultIdentifierExtraConfig = {\n type: 'Legacy',\n segment: 'option',\n caseIndex: -1,\n adjustmentConfigIndex: null,\n instrumentIndex: -1,\n optionConfigIndex: -1,\n};\n\nconst getSanitizedIntent = (intent) => {\n return {\n ...intent,\n identifier: {\n ...defaultIdentifierExtraConfig,\n ...intent.identifier,\n label: `${intent.identifier?.label}`,\n },\n };\n};\n\nconst throwIntentsError = (intents, instrumentGroups, pipeName) => {\n const { errorMessage } = getIntentsError(intents, instrumentGroups);\n\n if (errorMessage) {\n reactToastify(\n `Indicator Error (${pipeName}): ${errorMessage}`,\n TOASTIFY_TYPES.ERROR\n );\n throw new Error(errorMessage);\n }\n};\n\nconst getSanitizedSignals = (signals, intents) => {\n return getSanitizedAdjustmentSignals(signals, intents);\n};\n\nexport const getSanitizedPipes = (\n pipeConfigs,\n instrumentGroups,\n runType,\n sanitizedCases\n) => {\n const allIntents = _.chain(sanitizedCases)\n .map(({ entry: { intents: baseIntents }, adjustments }) => {\n return _.chain(adjustments).map('intents').concat(baseIntents).value();\n })\n .flattenDeep()\n .value();\n\n // Engine requires customSnippet type as customScript\n const isExternalSignalPresent = _.some(\n pipeConfigs,\n ({ type }) => type === 'externalSignal'\n );\n\n if (isExternalSignalPresent && runType === RUN_TYPES.historic) {\n reactToastify(\n 'External Signal Indicator is not supported for historic run',\n TOASTIFY_TYPES.ERROR\n );\n throw new Error(\n 'External Signal Indicator is not supported for historic run'\n );\n }\n\n return _.map(pipeConfigs, (pipeConfig) => {\n let newPipeConfig = pipeConfig;\n if (newPipeConfig?.category === PIPE_CATEGORIES.snippet) {\n return { ...pipeConfig, type: 'customScript' };\n }\n\n if (newPipeConfig?.type === 'transactionStopLoss') {\n return {\n ...newPipeConfig,\n config: {\n stopLoss: getSanitizedStopLoss(newPipeConfig?.config?.stopLoss),\n },\n };\n }\n if (!_.isEmpty(newPipeConfig?.config?.legs)) {\n const intents = newPipeConfig?.config?.legs || [];\n const newIntents = _.map(intents, getSanitizedIntent);\n throwIntentsError(newIntents, instrumentGroups, newPipeConfig?.name);\n\n newPipeConfig = {\n ...newPipeConfig,\n config: { ...newPipeConfig.config, legs: newIntents },\n };\n }\n\n if (!_.isEmpty(newPipeConfig?.config?.when)) {\n const signals = newPipeConfig?.config?.when;\n\n newPipeConfig = {\n ...newPipeConfig,\n config: {\n ...newPipeConfig.config,\n when: getSanitizedSignals(signals, allIntents),\n },\n };\n }\n\n if (!_.isEmpty(newPipeConfig?.config?.signal)) {\n const signals = newPipeConfig?.config?.signal;\n\n newPipeConfig = {\n ...newPipeConfig,\n config: {\n ...newPipeConfig.config,\n signal: getSanitizedSignals(signals, allIntents),\n },\n };\n }\n\n return newPipeConfig;\n });\n};\n","import _ from 'lodash';\nexport const validateTrailingStopLoss = (cases) => {\n return _.chain(cases)\n .map((caseConfig) => {\n const {\n entry: { intents: entryIntents },\n adjustments,\n } = caseConfig;\n\n return _.concat(entryIntents, _.chain(adjustments).map('intents').flatten().value());\n })\n .flattenDeep()\n .some(({ stopLoss }) => {\n const { trailingValue, adjustValue } = stopLoss?.trail || {};\n return _.isNumber(trailingValue) && _.isNumber(adjustValue) && trailingValue < adjustValue;\n })\n .thru((hasError) => (hasError\n ? { name: 'TrailingStopLoss', error: 'X should be Greater than or Equal to Y in the TrailingStopLoss' }\n : null))\n .value();\n};\n","import _ from 'lodash';\nimport {\n INTENT_TYPES, SL_TRAIL_TYPES, STOPS_VALUE_TYPES\n} from 'v2/common/constants/index';\nimport { defaultLinearTrail } from 'v2/modules/withRunForm/configs/index';\n\nconst AUTO_TRANSACTION_TSL_PIPE_NAME = 'AUTO_TRANSACTION_TSL_PIPE_NAME';\n\nconst autoTransactionTSLPipeConfig = (slType, slValue, trail) => ({\n type: 'transactionStopLoss',\n name: AUTO_TRANSACTION_TSL_PIPE_NAME,\n uiConfigs: { isAutoPipe: true },\n config: {\n stopLoss: {\n type: slType,\n value: slValue,\n trail\n }\n }\n});\n\nconst autoTSLAdjustment = () => ({\n uiConfigs: {\n isAutoAdjustment: true,\n adjustmentMode: 'transactionTSL',\n },\n signal: [{\n conditionOperator: '',\n leftOperand: AUTO_TRANSACTION_TSL_PIPE_NAME,\n operator: 'equalTo',\n rightOperand: '1',\n }],\n intents: [{ type: INTENT_TYPES.ExitTransaction }]\n});\n\nexport const addOverallTransactionTSL = (quantConfig) => {\n const {\n value: slValue,\n type: slType,\n uiConfigs = {}\n } = quantConfig?.bounds?.stopLoss || {};\n const isValidSlType = _.values(STOPS_VALUE_TYPES).includes(slType);\n if (!slValue || !isValidSlType) {\n return quantConfig;\n }\n\n const { trail = {} } = uiConfigs;\n const isValidTrail = _.values(SL_TRAIL_TYPES).includes(trail.type);\n if (_.isEmpty(trail) || _.isEqual(defaultLinearTrail) || !isValidTrail) {\n return quantConfig;\n }\n\n const newQuantConfig = {\n ...quantConfig,\n pipeConfigs: [\n ...quantConfig.pipeConfigs,\n autoTransactionTSLPipeConfig(slType, slValue, trail)\n ],\n cases: _.map(quantConfig.cases, (kase) => ({\n ...kase,\n adjustments: [...kase.adjustments, autoTSLAdjustment()]\n }))\n };\n\n return newQuantConfig;\n};\n","import _ from 'lodash';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { onChangeOrderType } from 'v2/modules/withRunForm/events/orderType';\nimport { getSanitizedCases } from './cases';\nimport { getSanitizedPipes } from './pipes';\nimport { validateTrailingStopLoss } from './trailingStopLoss';\nimport { addOverallTransactionTSL } from './overallTransactionTSL';\n\nconst getSanitizedBounds = (bounds) => {\n const isOmitOverallStopLoss = !bounds?.stopLoss?.value;\n const isOmitOverallStopGain = !bounds?.stopGain?.value;\n const isOmitOverallDayStopLoss = !bounds?.dayStopLoss?.value;\n const isOmitOverallDayStopGain = !bounds?.dayStopGain?.value;\n\n return _.omit(bounds, [\n isOmitOverallStopLoss ? 'stopLoss' : null,\n isOmitOverallDayStopLoss ? 'dayStopLoss' : null,\n isOmitOverallDayStopGain ? 'dayStopGain' : null,\n isOmitOverallStopGain ? 'stopGain' : null,\n ]);\n};\n\nconst getIntentMoreSanitized = (intent, pipeConfigs) => {\n const isBasketIntent = _.get(intent, 'uiConfigs.isBasketIntent', false);\n\n if (!isBasketIntent) {\n return intent;\n }\n\n const { name } = intent?.uiConfigs || {};\n const pipeConfig = _.find(pipeConfigs, { name });\n\n if (!pipeConfig) {\n return intent;\n }\n // When this ?\n // we already altered the pipeConfig, so we can just use it\n\n return {\n ...intent,\n instrument: {\n ...intent.instrument,\n when: pipeConfig?.config?.when,\n },\n };\n};\n\nconst getCaseMoreSanitized = (kase, pipeConfigs) => {\n const {\n entry: { intents },\n adjustments,\n } = kase;\n\n return {\n ...kase,\n entry: {\n ...kase.entry,\n intents: _.map(intents, (intent) => getIntentMoreSanitized(intent, pipeConfigs)),\n },\n adjustments: _.map(adjustments, (adjustmentConfig) => ({\n ...adjustmentConfig,\n intents: _.map(adjustmentConfig.intents, (intent) => getIntentMoreSanitized(intent, pipeConfigs)),\n })),\n };\n};\n\nconst validateCases = (sanitizedCases) => {\n const trailingStopLossError = validateTrailingStopLoss(sanitizedCases);\n if (trailingStopLossError) {\n const { name, error } = trailingStopLossError;\n reactToastify(\n `(${name}): ${error}`,\n TOASTIFY_TYPES.ERROR\n );\n throw new Error(error);\n }\n};\n\nexport const getSanitizedQuantConfig = (quantConfig, runType, orderType) => {\n const {\n cases, uiBehaviourFlags, bounds, pipeConfigs, instrumentGroups\n } = quantConfig;\n\n const sanitizedCases = getSanitizedCases(\n cases,\n uiBehaviourFlags,\n pipeConfigs\n );\n\n validateCases(sanitizedCases);\n\n const sanitizedPipes = getSanitizedPipes(\n pipeConfigs,\n instrumentGroups,\n runType,\n sanitizedCases\n );\n\n let newQuantConfig = {\n ...quantConfig,\n cases: _.map(sanitizedCases, (kase) => getCaseMoreSanitized(kase, sanitizedPipes)),\n bounds: getSanitizedBounds(bounds),\n pipeConfigs: sanitizedPipes,\n };\n\n newQuantConfig = addOverallTransactionTSL(newQuantConfig);\n\n return onChangeOrderType({ orderType, quantConfig: newQuantConfig, runType })\n .quantConfig;\n};\n","import _ from 'lodash';\nimport { RUN_GRANULARITY } from 'v2/common/constants/index';\nimport { getSanitizedQuantConfig } from './quantConfig/index';\n\nexport const beforeSubmitSanitizer = (runConfig) => {\n const {\n quant_config: quantConfig,\n run_type: runType,\n order_type: orderType,\n granularity,\n } = runConfig;\n\n const isSecondBySecondEnabledForUser = _.get(\n window,\n 'SA_FEATURE_FLAGS.isRunGranularitySecondEnabled',\n false\n ) || window?.isAdmin;\n\n return {\n ...runConfig,\n granularity: isSecondBySecondEnabledForUser\n ? granularity\n : RUN_GRANULARITY.minute,\n quant_config: JSON.stringify(\n getSanitizedQuantConfig(quantConfig, runType, orderType)\n ),\n };\n};\n","import _ from 'lodash';\nexport const getBrokersDetails = () => {\n return _.reduce(_.get(window, 'brokerConfigs', {}), (result, value) => {\n \n result[value.id] = value.name;\n return result;\n }, {});\n};\n\nexport const availableBrokers = getBrokersDetails();\n\nexport const automaticSupportedBrokers = _.chain(_.get(window, 'brokerConfigs', {}))\n .filter((broker) => broker.automatic)\n .map((broker) => { return broker.id; })\n .value();\n\nexport const oneClickSupportedBrokers = _.chain(_.get(window, 'brokerConfigs', {}))\n .filter((broker) => broker.oneclick)\n .map((broker) => { return broker.id; })\n .value();\n","import _ from 'lodash';\nimport { BROKERS } from 'common/constants/index';\n\nexport const getBrokersDetails = () => {\n return _.reduce(BROKERS, (result, value) => {\n \n result[value.id] = value.name;\n return result;\n }, {});\n};\n\nexport const availableBrokers = getBrokersDetails();\n\nexport const automaticSupportedBrokers = _.chain(BROKERS)\n .filter((broker) => broker.automatic)\n .map((broker) => { return broker.id; })\n .value();\n\nexport const oneClickSupportedBrokers = _.chain(BROKERS)\n .filter((broker) => broker.oneclick)\n .map((broker) => { return broker.id; })\n .value();\n","import _ from 'lodash';\nimport { ORDER_TYPES } from 'v2/common/constants/index';\nimport moment from 'moment';\nimport { automaticSupportedBrokers } from 'v2/common/brokerConfigs/index';\nimport { oneClickSupportedBrokers } from 'common/brokerConfigs/config';\n\nexport const getDefaultOrderType = (newOrderType, currentUser) => {\n const planActiveTill = _.get(currentUser, 'plan_active_till', null);\n const broker = _.get(currentUser, 'broker', '');\n\n const { paper: { value: paper } } = ORDER_TYPES;\n\n const { isInInitialOfferPeriod, isAdmin } = window;\n if (!broker) return paper; // normal mail users... mandatory paper\n\n if (isAdmin || isInInitialOfferPeriod) return newOrderType;\n\n if (((_.includes(automaticSupportedBrokers, broker))\n || _.includes(oneClickSupportedBrokers, broker))\n && (planActiveTill && moment().isBefore(planActiveTill))\n ) {\n return newOrderType;\n }\n\n return paper;\n};\n","import { getSanitizedQuantConfig } from './quantConfig/index';\nimport { getDefaultOrderType } from './default/index';\n\nconst onLoadSanitizer = (runConfig) => {\n const { quantConfig, currentUser, orderType } = runConfig;\n\n return {\n ...runConfig,\n quantConfig: getSanitizedQuantConfig(quantConfig),\n orderType: getDefaultOrderType(orderType, currentUser)\n };\n};\n\nexport default onLoadSanitizer;\n","import _ from 'lodash';\nimport { beforeSubmitSanitizer } from './beforeSubmit/index';\nimport onLoadSanitizer from './onLoad/index';\n\nexport const RunConfigSanitizer = {\n beforeSubmit: (runConfig) => {\n const permittedKeys = [\n 'folder_id', 'quant_config', 'run_type', 'order_type', 'start_date',\n 'end_date', 'is_starred', 'name', 'is_public', 'broker', 'is_webhook_enabled', 'strategy_id',\n 'multiplier', 'trade_skip_start_date', 'trade_skip_end_date', 'is_strategy_subscriber', 'granularity',\n 'engine_version', 'hidden_by_user_id'\n ];\n\n return _.pick(beforeSubmitSanitizer(runConfig), permittedKeys);\n },\n\n onLoad: (runConfig) => onLoadSanitizer(runConfig),\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport { Modal, Button } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\n\nconst propTypes = {\n children: PropTypes.element,\n onSave: PropTypes.func,\n onClose: PropTypes.func,\n title: PropTypes.string,\n size: PropTypes.string,\n message: PropTypes.string,\n className: PropTypes.string,\n shouldConfirmClose: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n okBtnTitle: PropTypes.string,\n onCancel: PropTypes.func,\n cancelBtnTitle: PropTypes.string,\n btnClassName: PropTypes.string,\n backdrop: PropTypes.string,\n onSaveid: PropTypes.string,\n modalSaveButtonProps: PropTypes.shape({}),\n isOkBtnDisabled: PropTypes.bool,\n shouldShow: PropTypes.bool\n};\nconst defaultProps = {\n children: null,\n onSave: null,\n title: '',\n okBtnTitle: 'Save',\n size: '',\n message: null,\n className: '',\n onClose: _.noop,\n shouldConfirmClose: false,\n onCancel: null,\n cancelBtnTitle: 'Cancel',\n btnClassName: '',\n backdrop: '',\n onSaveid: '',\n modalSaveButtonProps: {},\n isOkBtnDisabled: false,\n shouldShow: true\n};\n\nexport default class ModalComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = { isClosing: false };\n }\n\n onHide = () => {\n const { onClose, shouldConfirmClose } = this.props;\n\n if (_.isFunction(shouldConfirmClose) ? shouldConfirmClose() : shouldConfirmClose) {\n this.setState({ isClosing: true });\n } else {\n onClose();\n }\n }\n\n onConfirmedClose = () => {\n const { onClose } = this.props;\n\n this.setState({ isClosing: false });\n onClose();\n }\n\n renderCloseConfirmation = () => (\n <>\n
    \n
    \n
    \n
    Confirmation
    \n \n info\n \n

    Are you sure to close without saving

    \n
    \n
    \n\n
    \n \n Yes\n \n\n this.setState({ isClosing: false })}\n >\n No\n \n
    \n \n );\n\n render() {\n const {\n children, title, onSave, size, className, okBtnTitle,\n btnClassName, message, onCancel, cancelBtnTitle, backdrop, onSaveid,\n modalSaveButtonProps, isOkBtnDisabled, shouldShow\n } = this.props;\n const { isClosing } = this.state;\n\n let modalProps = {\n size: isClosing ? 'sm' : size,\n show: shouldShow,\n onHide: this.onHide,\n className: `${className} ${isClosing ? 'confirmation-modal' : ''}`,\n centered: true,\n 'aria-labelledby': 'contained-modal-title-vcenter',\n };\n\n if (backdrop) modalProps = { ...modalProps, backdrop };\n\n const renderModalFooter = () => {\n const isShow = message || onSave || onCancel;\n if (!isShow) return null;\n\n return (\n \n {message &&
    {message}
    }\n {onCancel && (\n \n )}\n {onSave && (\n \n {okBtnTitle}\n \n )}\n
    \n );\n };\n\n return (\n \n {isClosing ? this.renderCloseConfirmation() : (\n <>\n \n {ReactHtmlParser(title)}\n \n {children}\n {renderModalFooter()}\n \n )}\n \n );\n }\n}\n\nModalComponent.propTypes = propTypes;\nModalComponent.defaultProps = defaultProps;\n","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject)\n isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue)\n return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const lastResultValue = lastResult?.deref?.() ?? lastResult;\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? new Ref(result) : result;\n }\n }\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = [],\n devModeChecks = {}\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (process.env.NODE_ENV !== \"production\") {\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun)\n firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\nexport {\n createSelector,\n createSelectorCreator,\n createStructuredSelector,\n lruMemoize,\n referenceEqualityCheck,\n setGlobalDevModeChecks,\n autotrackMemoize as unstable_autotrackMemoize,\n weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","import _ from 'lodash';\nimport { createSelector } from 'reselect';\n\nexport const getSelectorBasedStoreValue = createSelector(\n [(state) => state, (state, selectedState) => selectedState],\n (state, selectedState) => {\n return _.get(state, selectedState);\n }\n);\n","export const SET_PARTIAL_QUANT_CONFIG = 'SET_PARTIAL_QUANT_CONFIG';\nexport const setPartialQuantConfig = (partialQuantConfig) => ({\n type: SET_PARTIAL_QUANT_CONFIG,\n partialQuantConfig,\n});\n\nexport const SET_INSTRUMENT_GROUPS = 'SET_INSTRUMENT_GROUPS';\nexport const setInstrumentGroups = (instrumentGroups) => ({\n type: SET_INSTRUMENT_GROUPS,\n instrumentGroups,\n});\n\nexport const SET_RUN_FORM_ROOT_VALUE = 'SET_ROOT_VALUE';\nexport const setRootValue = (runFormConfig) => ({\n type: SET_RUN_FORM_ROOT_VALUE,\n runFormConfig,\n});\n\nexport const SET_PIPE_CONFIGS = 'SET_PIPE_CONFIGS';\nexport const setPipeConfigs = (pipeConfigs) => ({\n type: SET_PIPE_CONFIGS,\n pipeConfigs,\n});\n\nexport const SET_ADJUSTMENT_OPTIONS = 'SET_ADJUSTMENT_OPTIONS';\nexport const setAdjustmentOptions = (adjustmentOptions) => ({\n type: SET_ADJUSTMENT_OPTIONS,\n adjustmentOptions,\n});\n\nexport const SET_BOUNDS = 'SET_BOUNDS';\nexport const setBounds = (bounds) => ({\n type: SET_BOUNDS,\n bounds,\n});\n\nexport const SET_PARTIAL_BOUNDS = 'SET_PARTIAL_BOUNDS';\nexport const setPartialBounds = (partialBounds) => ({\n type: SET_PARTIAL_BOUNDS,\n partialBounds,\n});\n\nexport const SET_CASES = 'SET_CASES';\nexport const setCases = (cases) => ({\n type: SET_CASES,\n cases,\n});\n\nexport const SET_CASES_INDEX_BASED = 'SET_CASES_INDEX_BASED';\nexport const setCasesIndexBased = (caseConfig, idx) => ({\n type: SET_CASES_INDEX_BASED,\n caseConfig,\n idx,\n});\n\nexport const SET_UI_BEHAVIOUR_FLAGS = 'SET_UI_BEHAVIOUR_FLAGS';\nexport const setUiBehaviourFlags = (uiBehaviourFlags) => ({\n type: SET_UI_BEHAVIOUR_FLAGS,\n uiBehaviourFlags,\n});\n","import _ from 'lodash';\nimport React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { setRootValue } from 'v2/modules/withRunForm/redux/actions';\nimport { ORDER_TYPES } from 'v2/common/constants/index';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { onChangeOrderType } from '../../events/orderType';\n\nconst OrderType = () => {\n const dispatch = useDispatch();\n const orderType = useSelector((state) => getSelectorBasedStoreValue(state, 'orderType'));\n const runType = useSelector((state) => getSelectorBasedStoreValue(state, 'runType'));\n const quantConfig = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig'));\n const onUpdateOrderType = (value) => dispatch(\n setRootValue(\n onChangeOrderType({\n quantConfig,\n orderType: value,\n runType,\n })\n )\n );\n\n const renderSelectOption = (orderTypeArg) => {\n if (orderTypeArg.value === ORDER_TYPES.oneClick.value) return null;\n return (\n onUpdateOrderType(orderTypeArg.value)}\n >\n {orderTypeArg.displayName}\n \n );\n };\n return (\n
    \n \n \n {_.map(Object.values(ORDER_TYPES), (orderTypeArg) => renderSelectOption(orderTypeArg))}\n \n
    \n );\n};\n\nexport default OrderType;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { setRootValue } from 'v2/modules/withRunForm/redux/actions';\n\nconst RunName = () => {\n const dispatch = useDispatch();\n const runName = useSelector((state) => getSelectorBasedStoreValue(state, 'runName'));\n const onUpdateRunName = (value) => dispatch(setRootValue({ runName: value }));\n\n return (\n
    \n \n
    \n onUpdateRunName(event.target.value)}\n />\n
    \n
    \n );\n};\n\nexport default RunName;\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","// src/index.ts\nexport * from \"redux\";\nimport { produce, current as current3, freeze, original as original2, isDraft as isDraft5 } from \"immer\";\nimport { createSelector, createSelectorCreator as createSelectorCreator2, lruMemoize, weakMapMemoize as weakMapMemoize2 } from \"reselect\";\n\n// src/createDraftSafeSelector.ts\nimport { current, isDraft } from \"immer\";\nimport { createSelectorCreator, weakMapMemoize } from \"reselect\";\nvar createDraftSafeSelectorCreator = (...args) => {\n const createSelector2 = createSelectorCreator(...args);\n const createDraftSafeSelector2 = Object.assign((...args2) => {\n const selector = createSelector2(...args2);\n const wrappedSelector = (value, ...rest) => selector(isDraft(value) ? current(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector;\n }, {\n withTypes: () => createDraftSafeSelector2\n });\n return createDraftSafeSelector2;\n};\nvar createDraftSafeSelector = /* @__PURE__ */ createDraftSafeSelectorCreator(weakMapMemoize);\n\n// src/configureStore.ts\nimport { applyMiddleware, createStore, compose as compose2, combineReducers, isPlainObject as isPlainObject2 } from \"redux\";\n\n// src/devtoolsExtension.ts\nimport { compose } from \"redux\";\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function() {\n if (arguments.length === 0) return void 0;\n if (typeof arguments[0] === \"object\") return compose;\n return compose.apply(null, arguments);\n};\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function() {\n return function(noop3) {\n return noop3;\n };\n};\n\n// src/getDefaultMiddleware.ts\nimport { thunk as thunkMiddleware, withExtraArgument } from \"redux-thunk\";\n\n// src/createAction.ts\nimport { isAction } from \"redux\";\n\n// src/tsHelpers.ts\nvar hasMatchFunction = (v) => {\n return v && typeof v.match === \"function\";\n};\n\n// src/createAction.ts\nfunction createAction(type, prepareAction) {\n function actionCreator(...args) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"prepareAction did not return an object\");\n }\n return {\n type,\n payload: prepared.payload,\n ...\"meta\" in prepared && {\n meta: prepared.meta\n },\n ...\"error\" in prepared && {\n error: prepared.error\n }\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action) => isAction(action) && action.type === type;\n return actionCreator;\n}\nfunction isActionCreator(action) {\n return typeof action === \"function\" && \"type\" in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action);\n}\nfunction isFSA(action) {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key) {\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\n}\n\n// src/actionCreatorInvariantMiddleware.ts\nfunction getMessage(type) {\n const splitType = type ? `${type}`.split(\"/\") : [];\n const actionName = splitType[splitType.length - 1] || \"actionCreator\";\n return `Detected an action creator with type \"${type || \"unknown\"}\" being dispatched. \nMake sure you're calling the action creator before dispatching, i.e. \\`dispatch(${actionName}())\\` instead of \\`dispatch(${actionName})\\`. This is necessary even if the action has no payload.`;\n}\nfunction createActionCreatorInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n }\n const {\n isActionCreator: isActionCreator2 = isActionCreator\n } = options;\n return () => (next) => (action) => {\n if (isActionCreator2(action)) {\n console.warn(getMessage(action.type));\n }\n return next(action);\n };\n}\n\n// src/utils.ts\nimport { produce as createNextState, isDraftable } from \"immer\";\nfunction getTimeMeasureUtils(maxDelay, fnName) {\n let elapsed = 0;\n return {\n measureTime(fn) {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nvar Tuple = class _Tuple extends Array {\n constructor(...items) {\n super(...items);\n Object.setPrototypeOf(this, _Tuple.prototype);\n }\n static get [Symbol.species]() {\n return _Tuple;\n }\n concat(...arr) {\n return super.concat.apply(this, arr);\n }\n prepend(...arr) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new _Tuple(...arr[0].concat(this));\n }\n return new _Tuple(...arr.concat(this));\n }\n};\nfunction freezeDraftable(val) {\n return isDraftable(val) ? createNextState(val, () => {\n }) : val;\n}\nfunction getOrInsertComputed(map, key, compute) {\n if (map.has(key)) return map.get(key);\n return map.set(key, compute(key)).get(key);\n}\n\n// src/immutableStateInvariantMiddleware.ts\nfunction isImmutableDefault(value) {\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\n}\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\n const trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\n return {\n detectMutations() {\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\n }\n };\n}\nfunction trackProperties(isImmutable, ignorePaths = [], obj, path = \"\", checkedObjects = /* @__PURE__ */ new Set()) {\n const tracked = {\n value: obj\n };\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\n checkedObjects.add(obj);\n tracked.children = {};\n for (const key in obj) {\n const childPath = path ? path + \".\" + key : key;\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\n continue;\n }\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\n }\n }\n return tracked;\n}\nfunction detectMutations(isImmutable, ignoredPaths = [], trackedProperty, obj, sameParentRef = false, path = \"\") {\n const prevObj = trackedProperty ? trackedProperty.value : void 0;\n const sameRef = prevObj === obj;\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return {\n wasMutated: true,\n path\n };\n }\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return {\n wasMutated: false\n };\n }\n const keysToDetect = {};\n for (let key in trackedProperty.children) {\n keysToDetect[key] = true;\n }\n for (let key in obj) {\n keysToDetect[key] = true;\n }\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (let key in keysToDetect) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n const result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\n if (result.wasMutated) {\n return result;\n }\n }\n return {\n wasMutated: false\n };\n}\nfunction createImmutableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n let stringify2 = function(obj, serializer, indent, decycler) {\n return JSON.stringify(obj, getSerialize2(serializer, decycler), indent);\n }, getSerialize2 = function(serializer, decycler) {\n let stack = [], keys = [];\n if (!decycler) decycler = function(_, value) {\n if (stack[0] === value) return \"[Circular ~]\";\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n };\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) value = decycler.call(this, key, value);\n } else stack.push(value);\n return serializer == null ? value : serializer.call(this, key, value);\n };\n };\n var stringify = stringify2, getSerialize = getSerialize2;\n let {\n isImmutable = isImmutableDefault,\n ignoredPaths,\n warnAfter = 32\n } = options;\n const track = trackForMutations.bind(null, isImmutable, ignoredPaths);\n return ({\n getState\n }) => {\n let state = getState();\n let tracker = track(state);\n let result;\n return (next) => (action) => {\n const measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(19) : `A state mutation was detected between dispatches, in the path '${result.path || \"\"}'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n const dispatchedAction = next(action);\n measureUtils.measureTime(() => {\n state = getState();\n result = tracker.detectMutations();\n tracker = track(state);\n if (result.wasMutated) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(20) : `A state mutation was detected inside a dispatch, in the path: ${result.path || \"\"}. Take a look at the reducer(s) handling the action ${stringify2(action)}. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n return dispatchedAction;\n };\n };\n }\n}\n\n// src/serializableStateInvariantMiddleware.ts\nimport { isAction as isAction2, isPlainObject } from \"redux\";\nfunction isPlain(val) {\n const type = typeof val;\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\n}\nfunction findNonSerializableValue(value, path = \"\", isSerializable = isPlain, getEntries, ignoredPaths = [], cache) {\n let foundNestedSerializable;\n if (!isSerializable(value)) {\n return {\n keyPath: path || \"\",\n value\n };\n }\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (cache?.has(value)) return false;\n const entries = getEntries != null ? getEntries(value) : Object.entries(value);\n const hasIgnoredPaths = ignoredPaths.length > 0;\n for (const [key, nestedValue] of entries) {\n const nestedPath = path ? path + \".\" + key : key;\n if (hasIgnoredPaths) {\n const hasMatches = ignoredPaths.some((ignored) => {\n if (ignored instanceof RegExp) {\n return ignored.test(nestedPath);\n }\n return nestedPath === ignored;\n });\n if (hasMatches) {\n continue;\n }\n }\n if (!isSerializable(nestedValue)) {\n return {\n keyPath: nestedPath,\n value: nestedValue\n };\n }\n if (typeof nestedValue === \"object\") {\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\n if (foundNestedSerializable) {\n return foundNestedSerializable;\n }\n }\n }\n if (cache && isNestedFrozen(value)) cache.add(value);\n return false;\n}\nfunction isNestedFrozen(value) {\n if (!Object.isFrozen(value)) return false;\n for (const nestedValue of Object.values(value)) {\n if (typeof nestedValue !== \"object\" || nestedValue === null) continue;\n if (!isNestedFrozen(nestedValue)) return false;\n }\n return true;\n}\nfunction createSerializableStateInvariantMiddleware(options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return () => (next) => (action) => next(action);\n } else {\n const {\n isSerializable = isPlain,\n getEntries,\n ignoredActions = [],\n ignoredActionPaths = [\"meta.arg\", \"meta.baseQueryMeta\"],\n ignoredPaths = [],\n warnAfter = 32,\n ignoreState = false,\n ignoreActions = false,\n disableCache = false\n } = options;\n const cache = !disableCache && WeakSet ? /* @__PURE__ */ new WeakSet() : void 0;\n return (storeAPI) => (next) => (action) => {\n if (!isAction2(action)) {\n return next(action);\n }\n const result = next(action);\n const measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\n measureUtils.measureTime(() => {\n const foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\n if (foundActionNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundActionNonSerializableValue;\n console.error(`A non-serializable value was detected in an action, in the path: \\`${keyPath}\\`. Value:`, value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\n }\n });\n }\n if (!ignoreState) {\n measureUtils.measureTime(() => {\n const state = storeAPI.getState();\n const foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\n if (foundStateNonSerializableValue) {\n const {\n keyPath,\n value\n } = foundStateNonSerializableValue;\n console.error(`A non-serializable value was detected in the state, in the path: \\`${keyPath}\\`. Value:`, value, `\nTake a look at the reducer(s) handling this action type: ${action.type}.\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`);\n }\n });\n measureUtils.warnIfExceeded();\n }\n return result;\n };\n }\n}\n\n// src/getDefaultMiddleware.ts\nfunction isBoolean(x) {\n return typeof x === \"boolean\";\n}\nvar buildGetDefaultMiddleware = () => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (immutableCheck) {\n let immutableOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n }\n if (serializableCheck) {\n let serializableOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray;\n};\n\n// src/autoBatchEnhancer.ts\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\nvar prepareAutoBatched = () => (payload) => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nvar createQueueWithTimer = (timeout) => {\n return (notify) => {\n setTimeout(notify, timeout);\n };\n};\nvar autoBatchEnhancer = (options = {\n type: \"raf\"\n}) => (next) => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = /* @__PURE__ */ new Set();\n const queueCallback = options.type === \"tick\" ? queueMicrotask : options.type === \"raf\" ? (\n // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10)\n ) : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach((l) => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener2) {\n const wrappedListener = () => notifying && listener2();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener2);\n return () => {\n unsubscribe();\n listeners.delete(listener2);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action) {\n try {\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n return store.dispatch(action);\n } finally {\n notifying = true;\n }\n }\n });\n};\n\n// src/getDefaultEnhancers.ts\nvar buildGetDefaultEnhancers = (middlewareEnhancer) => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === \"object\" ? autoBatch : void 0));\n }\n return enhancerArray;\n};\n\n// src/configureStore.ts\nfunction configureStore(options) {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = void 0,\n middleware,\n devTools = true,\n preloadedState = void 0,\n enhancers = void 0\n } = options || {};\n let rootReducer;\n if (typeof reducer === \"function\") {\n rootReducer = reducer;\n } else if (isPlainObject2(reducer)) {\n rootReducer = combineReducers(reducer);\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers\");\n }\n if (process.env.NODE_ENV !== \"production\" && middleware && typeof middleware !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"`middleware` field must be a callback\");\n }\n let finalMiddleware;\n if (typeof middleware === \"function\") {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"when using a middleware builder function, an array of middleware must be returned\");\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (process.env.NODE_ENV !== \"production\" && finalMiddleware.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"each middleware provided to configureStore must be a function\");\n }\n let finalCompose = compose2;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: process.env.NODE_ENV !== \"production\",\n ...typeof devTools === \"object\" && devTools\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if (process.env.NODE_ENV !== \"production\" && enhancers && typeof enhancers !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"`enhancers` field must be a callback\");\n }\n let storeEnhancers = typeof enhancers === \"function\" ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"`enhancers` callback must return an array\");\n }\n if (process.env.NODE_ENV !== \"production\" && storeEnhancers.some((item) => typeof item !== \"function\")) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"each enhancer provided to configureStore must be a function\");\n }\n if (process.env.NODE_ENV !== \"production\" && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error(\"middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`\");\n }\n const composedEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState, composedEnhancer);\n}\n\n// src/createReducer.ts\nimport { produce as createNextState2, isDraft as isDraft2, isDraftable as isDraftable2 } from \"immer\";\n\n// src/mapBuilders.ts\nfunction executeReducerBuilderCallback(builderCallback) {\n const actionsMap = {};\n const actionMatchers = [];\n let defaultCaseReducer;\n const builder = {\n addCase(typeOrActionCreator, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(26) : \"`builder.addCase` should only be called before calling `builder.addMatcher`\");\n }\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(27) : \"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(28) : \"`builder.addCase` cannot be called with an empty action type\");\n }\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(29) : `\\`builder.addCase\\` cannot be called with two reducers for the same action type '${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addMatcher(matcher, reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(30) : \"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer) {\n if (process.env.NODE_ENV !== \"production\") {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(31) : \"`builder.addDefaultCase` can only be called once\");\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}\n\n// src/createReducer.ts\nfunction isStateFunction(x) {\n return typeof x === \"function\";\n}\nfunction createReducer(initialState, mapOrBuilderCallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof mapOrBuilderCallback === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n let getInitialState;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action) {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer: reducer2\n }) => reducer2)];\n if (caseReducers.filter((cr) => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer) => {\n if (caseReducer) {\n if (isDraft2(previousState)) {\n const draft = previousState;\n const result = caseReducer(draft, action);\n if (result === void 0) {\n return previousState;\n }\n return result;\n } else if (!isDraftable2(previousState)) {\n const result = caseReducer(previousState, action);\n if (result === void 0) {\n if (previousState === null) {\n return previousState;\n }\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\n }\n return result;\n } else {\n return createNextState2(previousState, (draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer;\n}\n\n// src/matchers.ts\nvar matches = (matcher, action) => {\n if (hasMatchFunction(matcher)) {\n return matcher.match(action);\n } else {\n return matcher(action);\n }\n};\nfunction isAnyOf(...matchers) {\n return (action) => {\n return matchers.some((matcher) => matches(matcher, action));\n };\n}\nfunction isAllOf(...matchers) {\n return (action) => {\n return matchers.every((matcher) => matches(matcher, action));\n };\n}\nfunction hasExpectedRequestMetadata(action, validStatus) {\n if (!action || !action.meta) return false;\n const hasValidRequestId = typeof action.meta.requestId === \"string\";\n const hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\n return hasValidRequestId && hasValidRequestStatus;\n}\nfunction isAsyncThunkArray(a) {\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\n}\nfunction isPending(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isPending()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.pending));\n}\nfunction isRejected(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejected()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.rejected));\n}\nfunction isRejectedWithValue(...asyncThunks) {\n const hasFlag = (action) => {\n return action && action.meta && action.meta.rejectedWithValue;\n };\n if (asyncThunks.length === 0) {\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isRejectedWithValue()(asyncThunks[0]);\n }\n return isAllOf(isRejected(...asyncThunks), hasFlag);\n}\nfunction isFulfilled(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"fulfilled\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isFulfilled()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.map((asyncThunk) => asyncThunk.fulfilled));\n}\nfunction isAsyncThunkAction(...asyncThunks) {\n if (asyncThunks.length === 0) {\n return (action) => hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]);\n }\n if (!isAsyncThunkArray(asyncThunks)) {\n return isAsyncThunkAction()(asyncThunks[0]);\n }\n return isAnyOf(...asyncThunks.flatMap((asyncThunk) => [asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled]));\n}\n\n// src/nanoid.ts\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\nvar nanoid = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\n\n// src/createAsyncThunk.ts\nvar commonProperties = [\"name\", \"message\", \"stack\", \"code\"];\nvar RejectWithValue = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar FulfillWithMeta = class {\n constructor(payload, meta) {\n this.payload = payload;\n this.meta = meta;\n }\n /*\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\n does not exist at runtime\n */\n _type;\n};\nvar miniSerializeError = (value) => {\n if (typeof value === \"object\" && value !== null) {\n const simpleError = {};\n for (const property of commonProperties) {\n if (typeof value[property] === \"string\") {\n simpleError[property] = value[property];\n }\n }\n return simpleError;\n }\n return {\n message: String(value)\n };\n};\nvar createAsyncThunk = /* @__PURE__ */ (() => {\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\n const fulfilled = createAction(typePrefix + \"/fulfilled\", (payload, requestId, arg, meta) => ({\n payload,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"fulfilled\"\n }\n }));\n const pending = createAction(typePrefix + \"/pending\", (requestId, arg, meta) => ({\n payload: void 0,\n meta: {\n ...meta || {},\n arg,\n requestId,\n requestStatus: \"pending\"\n }\n }));\n const rejected = createAction(typePrefix + \"/rejected\", (error, requestId, arg, payload, meta) => ({\n payload,\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\n meta: {\n ...meta || {},\n arg,\n requestId,\n rejectedWithValue: !!payload,\n requestStatus: \"rejected\",\n aborted: error?.name === \"AbortError\",\n condition: error?.name === \"ConditionError\"\n }\n }));\n function actionCreator(arg) {\n return (dispatch, getState, extra) => {\n const requestId = options?.idGenerator ? options.idGenerator(arg) : nanoid();\n const abortController = new AbortController();\n let abortHandler;\n let abortReason;\n function abort(reason) {\n abortReason = reason;\n abortController.abort();\n }\n const promise = async function() {\n let finalAction;\n try {\n let conditionResult = options?.condition?.(arg, {\n getState,\n extra\n });\n if (isThenable(conditionResult)) {\n conditionResult = await conditionResult;\n }\n if (conditionResult === false || abortController.signal.aborted) {\n throw {\n name: \"ConditionError\",\n message: \"Aborted due to condition callback returning false.\"\n };\n }\n const abortedPromise = new Promise((_, reject) => {\n abortHandler = () => {\n reject({\n name: \"AbortError\",\n message: abortReason || \"Aborted\"\n });\n };\n abortController.signal.addEventListener(\"abort\", abortHandler);\n });\n dispatch(pending(requestId, arg, options?.getPendingMeta?.({\n requestId,\n arg\n }, {\n getState,\n extra\n })));\n finalAction = await Promise.race([abortedPromise, Promise.resolve(payloadCreator(arg, {\n dispatch,\n getState,\n extra,\n requestId,\n signal: abortController.signal,\n abort,\n rejectWithValue: (value, meta) => {\n return new RejectWithValue(value, meta);\n },\n fulfillWithValue: (value, meta) => {\n return new FulfillWithMeta(value, meta);\n }\n })).then((result) => {\n if (result instanceof RejectWithValue) {\n throw result;\n }\n if (result instanceof FulfillWithMeta) {\n return fulfilled(result.payload, requestId, arg, result.meta);\n }\n return fulfilled(result, requestId, arg);\n })]);\n } catch (err) {\n finalAction = err instanceof RejectWithValue ? rejected(null, requestId, arg, err.payload, err.meta) : rejected(err, requestId, arg);\n } finally {\n if (abortHandler) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n }\n const skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\n if (!skipDispatch) {\n dispatch(finalAction);\n }\n return finalAction;\n }();\n return Object.assign(promise, {\n abort,\n requestId,\n arg,\n unwrap() {\n return promise.then(unwrapResult);\n }\n });\n };\n }\n return Object.assign(actionCreator, {\n pending,\n rejected,\n fulfilled,\n settled: isAnyOf(rejected, fulfilled),\n typePrefix\n });\n }\n createAsyncThunk2.withTypes = () => createAsyncThunk2;\n return createAsyncThunk2;\n})();\nfunction unwrapResult(action) {\n if (action.meta && action.meta.rejectedWithValue) {\n throw action.payload;\n }\n if (action.error) {\n throw action.error;\n }\n return action.payload;\n}\nfunction isThenable(value) {\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\n}\n\n// src/createSlice.ts\nvar asyncThunkSymbol = /* @__PURE__ */ Symbol.for(\"rtk-slice-createasyncthunk\");\nvar asyncThunkCreator = {\n [asyncThunkSymbol]: createAsyncThunk\n};\nvar ReducerType = /* @__PURE__ */ ((ReducerType2) => {\n ReducerType2[\"reducer\"] = \"reducer\";\n ReducerType2[\"reducerWithPrepare\"] = \"reducerWithPrepare\";\n ReducerType2[\"asyncThunk\"] = \"asyncThunk\";\n return ReducerType2;\n})(ReducerType || {});\nfunction getType(slice, actionKey) {\n return `${slice}/${actionKey}`;\n}\nfunction buildCreateSlice({\n creators\n} = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice2(options) {\n const {\n name,\n reducerPath = name\n } = options;\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"`name` is a required option for createSlice\");\n }\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n if (options.initialState === void 0) {\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\n }\n }\n const reducers = (typeof options.reducers === \"function\" ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods = {\n addCase(typeOrActionCreator, reducer2) {\n const type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"`context.addCase` cannot be called with an empty action type\");\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"`context.addCase` cannot be called with two reducers for the same action type: \" + type);\n }\n context.sliceCaseReducersByType[type] = reducer2;\n return contextMethods;\n },\n addMatcher(matcher, reducer2) {\n context.sliceMatchers.push({\n matcher,\n reducer: reducer2\n });\n return contextMethods;\n },\n exposeAction(name2, actionCreator) {\n context.actionCreators[name2] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name2, reducer2) {\n context.sliceCaseReducersByName[name2] = reducer2;\n return contextMethods;\n }\n };\n reducerNames.forEach((reducerName) => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === \"function\"\n };\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\n });\n function buildReducer() {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.extraReducers === \"object\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = void 0] = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, (builder) => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key]);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state) => state;\n const injectedSelectorCache = /* @__PURE__ */ new Map();\n let _reducer;\n function reducer(state, action) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps(reducerPath2, injected = false) {\n function selectSlice(state) {\n let sliceState = state[reducerPath2];\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"selectSlice returned undefined for an uninjected slice reducer\");\n }\n }\n return sliceState;\n }\n function getSelectors(selectState = selectSelf) {\n const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => /* @__PURE__ */ new WeakMap());\n return getOrInsertComputed(selectorCache, selectState, () => {\n const map = {};\n for (const [name2, selector] of Object.entries(options.selectors ?? {})) {\n map[name2] = wrapSelector(selector, selectState, getInitialState, injected);\n }\n return map;\n });\n }\n return {\n reducerPath: reducerPath2,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice = {\n name,\n reducer,\n actions: context.actionCreators,\n caseReducers: context.sliceCaseReducersByName,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n };\n }\n };\n return slice;\n };\n}\nfunction wrapSelector(selector, selectState, getInitialState, injected) {\n function wrapper(rootState, ...args) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === \"undefined\") {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== \"production\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"selectState returned undefined for an uninjected slice reducer\");\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper;\n}\nvar createSlice = /* @__PURE__ */ buildCreateSlice();\nfunction buildReducerCreators() {\n function asyncThunk(payloadCreator, config) {\n return {\n _reducerDefinitionType: \"asyncThunk\" /* asyncThunk */,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: \"reducer\" /* reducer */\n });\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: \"reducerWithPrepare\" /* reducerWithPrepare */,\n prepare,\n reducer\n };\n },\n asyncThunk\n };\n}\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}, maybeReducerWithPrepare, context) {\n let caseReducer;\n let prepareCallback;\n if (\"reducer\" in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : \"Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.\");\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"asyncThunk\" /* asyncThunk */;\n}\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition) {\n return reducerDefinition._reducerDefinitionType === \"reducerWithPrepare\" /* reducerWithPrepare */;\n}\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}, reducerDefinition, context, cAT) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(18) : \"Cannot use `create.asyncThunk` in the built-in `createSlice`. Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.\");\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {\n}\n\n// src/entities/entity_state.ts\nfunction getInitialEntityState() {\n return {\n ids: [],\n entities: {}\n };\n}\nfunction createInitialStateFactory(stateAdapter) {\n function getInitialState(additionalState = {}, entities) {\n const state = Object.assign(getInitialEntityState(), additionalState);\n return entities ? stateAdapter.setAll(state, entities) : state;\n }\n return {\n getInitialState\n };\n}\n\n// src/entities/state_selectors.ts\nfunction createSelectorsFactory() {\n function getSelectors(selectState, options = {}) {\n const {\n createSelector: createSelector2 = createDraftSafeSelector\n } = options;\n const selectIds = (state) => state.ids;\n const selectEntities = (state) => state.entities;\n const selectAll = createSelector2(selectIds, selectEntities, (ids, entities) => ids.map((id) => entities[id]));\n const selectId = (_, id) => id;\n const selectById = (entities, id) => entities[id];\n const selectTotal = createSelector2(selectIds, (ids) => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal,\n selectById: createSelector2(selectEntities, selectId, selectById)\n };\n }\n const selectGlobalizedEntities = createSelector2(selectState, selectEntities);\n return {\n selectIds: createSelector2(selectState, selectIds),\n selectEntities: selectGlobalizedEntities,\n selectAll: createSelector2(selectState, selectAll),\n selectTotal: createSelector2(selectState, selectTotal),\n selectById: createSelector2(selectGlobalizedEntities, selectId, selectById)\n };\n }\n return {\n getSelectors\n };\n}\n\n// src/entities/state_adapter.ts\nimport { produce as createNextState3, isDraft as isDraft3 } from \"immer\";\nvar isDraftTyped = isDraft3;\nfunction createSingleArgumentStateOperator(mutator) {\n const operator = createStateOperator((_, state) => mutator(state));\n return function operation(state) {\n return operator(state, void 0);\n };\n}\nfunction createStateOperator(mutator) {\n return function operation(state, arg) {\n function isPayloadActionArgument(arg2) {\n return isFSA(arg2);\n }\n const runMutator = (draft) => {\n if (isPayloadActionArgument(arg)) {\n mutator(arg.payload, draft);\n } else {\n mutator(arg, draft);\n }\n };\n if (isDraftTyped(state)) {\n runMutator(state);\n return state;\n }\n return createNextState3(state, runMutator);\n };\n}\n\n// src/entities/utils.ts\nimport { current as current2, isDraft as isDraft4 } from \"immer\";\nfunction selectIdValue(entity, selectId) {\n const key = selectId(entity);\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\n }\n return key;\n}\nfunction ensureEntitiesArray(entities) {\n if (!Array.isArray(entities)) {\n entities = Object.values(entities);\n }\n return entities;\n}\nfunction getCurrent(value) {\n return isDraft4(value) ? current2(value) : value;\n}\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingIdsArray = getCurrent(state.ids);\n const existingIds = new Set(existingIdsArray);\n const added = [];\n const updated = [];\n for (const entity of newEntities) {\n const id = selectIdValue(entity, selectId);\n if (existingIds.has(id)) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n added.push(entity);\n }\n }\n return [added, updated, existingIdsArray];\n}\n\n// src/entities/unsorted_state_adapter.ts\nfunction createUnsortedStateAdapter(selectId) {\n function addOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n }\n function addManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n addOneMutably(entity, state);\n }\n }\n function setOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (!(key in state.entities)) {\n state.ids.push(key);\n }\n ;\n state.entities[key] = entity;\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n for (const entity of newEntities) {\n setOneMutably(entity, state);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.ids = [];\n state.entities = {};\n addManyMutably(newEntities, state);\n }\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keys, state) {\n let didMutate = false;\n keys.forEach((key) => {\n if (key in state.entities) {\n delete state.entities[key];\n didMutate = true;\n }\n });\n if (didMutate) {\n state.ids = state.ids.filter((id) => id in state.entities);\n }\n }\n function removeAllMutably(state) {\n Object.assign(state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys, update, state) {\n const original3 = state.entities[update.id];\n if (original3 === void 0) {\n return false;\n }\n const updated = Object.assign({}, original3, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n ;\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n const newKeys = {};\n const updatesPerEntity = {};\n updates.forEach((update) => {\n if (update.id in state.entities) {\n updatesPerEntity[update.id] = {\n id: update.id,\n // Spreads ignore falsy values, so this works even if there isn't\n // an existing update already at this key\n changes: {\n ...updatesPerEntity[update.id]?.changes,\n ...update.changes\n }\n };\n }\n });\n updates = Object.values(updatesPerEntity);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter((update) => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = Object.values(state.entities).map((e) => selectIdValue(e, selectId));\n }\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated] = splitAddedUpdatedEntities(newEntities, selectId, state);\n updateManyMutably(updated, state);\n addManyMutably(added, state);\n }\n return {\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably)\n };\n}\n\n// src/entities/sorted_state_adapter.ts\nfunction findInsertIndex(sortedItems, item, comparisonFunction) {\n let lowIndex = 0;\n let highIndex = sortedItems.length;\n while (lowIndex < highIndex) {\n let middleIndex = lowIndex + highIndex >>> 1;\n const currentItem = sortedItems[middleIndex];\n const res = comparisonFunction(item, currentItem);\n if (res >= 0) {\n lowIndex = middleIndex + 1;\n } else {\n highIndex = middleIndex;\n }\n }\n return lowIndex;\n}\nfunction insert(sortedItems, item, comparisonFunction) {\n const insertAtIndex = findInsertIndex(sortedItems, item, comparisonFunction);\n sortedItems.splice(insertAtIndex, 0, item);\n return sortedItems;\n}\nfunction createSortedStateAdapter(selectId, comparer) {\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newEntities, state, existingIds) {\n newEntities = ensureEntitiesArray(newEntities);\n const existingKeys = new Set(existingIds ?? getCurrent(state.ids));\n const models = newEntities.filter((model) => !existingKeys.has(selectIdValue(model, selectId)));\n if (models.length !== 0) {\n mergeFunction(state, models);\n }\n }\n function setOneMutably(entity, state) {\n return setManyMutably([entity], state);\n }\n function setManyMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n if (newEntities.length !== 0) {\n for (const item of newEntities) {\n delete state.entities[selectId(item)];\n }\n mergeFunction(state, newEntities);\n }\n }\n function setAllMutably(newEntities, state) {\n newEntities = ensureEntitiesArray(newEntities);\n state.entities = {};\n state.ids = [];\n addManyMutably(newEntities, state, []);\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n let appliedUpdates = false;\n let replacedIds = false;\n for (let update of updates) {\n const entity = state.entities[update.id];\n if (!entity) {\n continue;\n }\n appliedUpdates = true;\n Object.assign(entity, update.changes);\n const newId = selectId(entity);\n if (update.id !== newId) {\n replacedIds = true;\n delete state.entities[update.id];\n const oldIndex = state.ids.indexOf(update.id);\n state.ids[oldIndex] = newId;\n state.entities[newId] = entity;\n }\n }\n if (appliedUpdates) {\n mergeFunction(state, [], appliedUpdates, replacedIds);\n }\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(newEntities, state) {\n const [added, updated, existingIdsArray] = splitAddedUpdatedEntities(newEntities, selectId, state);\n if (updated.length) {\n updateManyMutably(updated, state);\n }\n if (added.length) {\n addManyMutably(added, state, existingIdsArray);\n }\n }\n function areArraysEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] === b[i]) {\n continue;\n }\n return false;\n }\n return true;\n }\n const mergeFunction = (state, addedItems, appliedUpdates, replacedIds) => {\n const currentEntities = getCurrent(state.entities);\n const currentIds = getCurrent(state.ids);\n const stateEntities = state.entities;\n let ids = currentIds;\n if (replacedIds) {\n ids = new Set(currentIds);\n }\n let sortedEntities = [];\n for (const id of ids) {\n const entity = currentEntities[id];\n if (entity) {\n sortedEntities.push(entity);\n }\n }\n const wasPreviouslyEmpty = sortedEntities.length === 0;\n for (const item of addedItems) {\n stateEntities[selectId(item)] = item;\n if (!wasPreviouslyEmpty) {\n insert(sortedEntities, item, comparer);\n }\n }\n if (wasPreviouslyEmpty) {\n sortedEntities = addedItems.slice().sort(comparer);\n } else if (appliedUpdates) {\n sortedEntities.sort(comparer);\n }\n const newSortedIds = sortedEntities.map(selectId);\n if (!areArraysEqual(currentIds, newSortedIds)) {\n state.ids = newSortedIds;\n }\n };\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n setAll: createStateOperator(setAllMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably)\n };\n}\n\n// src/entities/create_adapter.ts\nfunction createEntityAdapter(options = {}) {\n const {\n selectId,\n sortComparer\n } = {\n sortComparer: false,\n selectId: (instance) => instance.id,\n ...options\n };\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n const stateFactory = createInitialStateFactory(stateAdapter);\n const selectorsFactory = createSelectorsFactory();\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}\n\n// src/listenerMiddleware/index.ts\nimport { isAction as isAction3 } from \"redux\";\n\n// src/listenerMiddleware/exceptions.ts\nvar task = \"task\";\nvar listener = \"listener\";\nvar completed = \"completed\";\nvar cancelled = \"cancelled\";\nvar taskCancelled = `task-${cancelled}`;\nvar taskCompleted = `task-${completed}`;\nvar listenerCancelled = `${listener}-${cancelled}`;\nvar listenerCompleted = `${listener}-${completed}`;\nvar TaskAbortError = class {\n constructor(code) {\n this.code = code;\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n name = \"TaskAbortError\";\n message;\n};\n\n// src/listenerMiddleware/utils.ts\nvar assertFunction = (func, expected) => {\n if (typeof func !== \"function\") {\n throw new TypeError(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nvar noop2 = () => {\n};\nvar catchRejection = (promise, onError = noop2) => {\n promise.catch(onError);\n return promise;\n};\nvar addAbortSignalListener = (abortSignal, callback) => {\n abortSignal.addEventListener(\"abort\", callback, {\n once: true\n });\n return () => abortSignal.removeEventListener(\"abort\", callback);\n};\nvar abortControllerWithReason = (abortController, reason) => {\n const signal = abortController.signal;\n if (signal.aborted) {\n return;\n }\n if (!(\"reason\" in signal)) {\n Object.defineProperty(signal, \"reason\", {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n ;\n abortController.abort(reason);\n};\n\n// src/listenerMiddleware/task.ts\nvar validateActive = (signal) => {\n if (signal.aborted) {\n const {\n reason\n } = signal;\n throw new TaskAbortError(reason);\n }\n};\nfunction raceWithSignal(signal, promise) {\n let cleanup = noop2;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n cleanup = noop2;\n });\n}\nvar runTask = async (task2, cleanUp) => {\n try {\n await Promise.resolve();\n const value = await task2();\n return {\n status: \"ok\",\n value\n };\n } catch (error) {\n return {\n status: error instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\n error\n };\n } finally {\n cleanUp?.();\n }\n};\nvar createPause = (signal) => {\n return (promise) => {\n return catchRejection(raceWithSignal(signal, promise).then((output) => {\n validateActive(signal);\n return output;\n }));\n };\n};\nvar createDelay = (signal) => {\n const pause = createPause(signal);\n return (timeoutMs) => {\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)));\n };\n};\n\n// src/listenerMiddleware/index.ts\nvar {\n assign\n} = Object;\nvar INTERNAL_NIL_TOKEN = {};\nvar alm = \"listenerMiddleware\";\nvar createFork = (parentAbortSignal, parentBlockingPromises) => {\n const linkControllers = (controller) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n return (taskExecutor, opts) => {\n assertFunction(taskExecutor, \"taskExecutor\");\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async () => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result2 = await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n });\n validateActive(childAbortController.signal);\n return result2;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop2));\n }\n return {\n result: createPause(parentAbortSignal)(result),\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n };\n };\n};\nvar createTakePattern = (startListening, signal) => {\n const take = async (predicate, timeout) => {\n validateActive(signal);\n let unsubscribe = () => {\n };\n const tuplePromise = new Promise((resolve, reject) => {\n let stopListening = startListening({\n predicate,\n effect: (action, listenerApi) => {\n listenerApi.unsubscribe();\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise((resolve) => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n unsubscribe();\n }\n };\n return (predicate, timeout) => catchRejection(take(predicate, timeout));\n};\nvar getListenerEntryPropsFrom = (options) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(21) : \"Creating or removing a listener requires one of the known fields for matching an action\");\n }\n assertFunction(effect, \"options.listener\");\n return {\n predicate,\n type,\n effect\n };\n};\nvar createListenerEntry = /* @__PURE__ */ assign((options) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const entry = {\n id: nanoid(),\n effect,\n type,\n predicate,\n pending: /* @__PURE__ */ new Set(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(22) : \"Unsubscribe not initialized\");\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n});\nvar findListenerEntry = (listenerMap, options) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n return Array.from(listenerMap.values()).find((entry) => {\n const matchPredicateOrType = typeof type === \"string\" ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n};\nvar cancelActiveListeners = (entry) => {\n entry.pending.forEach((controller) => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\nvar createClearListenerMiddleware = (listenerMap) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\n };\n};\nvar safelyNotifyError = (errorHandler, errorToNotify, errorInfo) => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\nvar addListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/add`), {\n withTypes: () => addListener\n});\nvar clearAllListeners = /* @__PURE__ */ createAction(`${alm}/removeAll`);\nvar removeListener = /* @__PURE__ */ assign(/* @__PURE__ */ createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n});\nvar defaultErrorHandler = (...args) => {\n console.error(`${alm}/error`, ...args);\n};\nvar createListenerMiddleware = (middlewareOptions = {}) => {\n const listenerMap = /* @__PURE__ */ new Map();\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, \"onError\");\n const insertEntry = (entry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = (options) => {\n const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options);\n return insertEntry(entry);\n };\n assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options) => {\n const entry = findListenerEntry(listenerMap, options);\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry, action, api, getOriginalState) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening, internalTaskController.signal);\n const autoJoinPromises = [];\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(\n action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate, timeout) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })\n ));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: \"effect\"\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted);\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n const middleware = (api) => (next) => (action) => {\n if (!isAction3(action)) {\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n let originalState = api.getState();\n const getOriginalState = () => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState;\n };\n let result;\n try {\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: \"predicate\"\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n };\n};\n\n// src/dynamicMiddleware/index.ts\nimport { compose as compose3 } from \"redux\";\nvar createMiddlewareEntry = (middleware) => ({\n middleware,\n applied: /* @__PURE__ */ new Map()\n});\nvar matchInstance = (instanceId) => (action) => action?.meta?.instanceId === instanceId;\nvar createDynamicMiddleware = () => {\n const instanceId = nanoid();\n const middlewareMap = /* @__PURE__ */ new Map();\n const withMiddleware = Object.assign(createAction(\"dynamicMiddleware/add\", (...middlewares) => ({\n payload: middlewares,\n meta: {\n instanceId\n }\n })), {\n withTypes: () => withMiddleware\n });\n const addMiddleware = Object.assign(function addMiddleware2(...middlewares) {\n middlewares.forEach((middleware2) => {\n getOrInsertComputed(middlewareMap, middleware2, createMiddlewareEntry);\n });\n }, {\n withTypes: () => addMiddleware\n });\n const getFinalMiddleware = (api) => {\n const appliedMiddleware = Array.from(middlewareMap.values()).map((entry) => getOrInsertComputed(entry.applied, api, entry.middleware));\n return compose3(...appliedMiddleware);\n };\n const isWithMiddleware = isAllOf(withMiddleware, matchInstance(instanceId));\n const middleware = (api) => (next) => (action) => {\n if (isWithMiddleware(action)) {\n addMiddleware(...action.payload);\n return api.dispatch;\n }\n return getFinalMiddleware(api)(next)(action);\n };\n return {\n middleware,\n addMiddleware,\n withMiddleware,\n instanceId\n };\n};\n\n// src/combineSlices.ts\nimport { combineReducers as combineReducers2 } from \"redux\";\nvar isSliceLike = (maybeSliceLike) => \"reducerPath\" in maybeSliceLike && typeof maybeSliceLike.reducerPath === \"string\";\nvar getReducers = (slices) => slices.flatMap((sliceOrMap) => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer]] : Object.entries(sliceOrMap));\nvar ORIGINAL_STATE = Symbol.for(\"rtk-state-proxy-original\");\nvar isStateProxy = (value) => !!value && !!value[ORIGINAL_STATE];\nvar stateProxyMap = /* @__PURE__ */ new WeakMap();\nvar createStateProxy = (state, reducerMap) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === \"undefined\") {\n const reducer = reducerMap[prop.toString()];\n if (reducer) {\n const reducerResult = reducer(void 0, {\n type: nanoid()\n });\n if (typeof reducerResult === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n return reducerResult;\n }\n }\n return result;\n }\n}));\nvar original = (state) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(25) : \"original must be used on state Proxy\");\n }\n return state[ORIGINAL_STATE];\n};\nvar noopReducer = (state = {}) => state;\nfunction combineSlices(...slices) {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? combineReducers2(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state, action) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const inject = (slice, config = {}) => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector(selectorFn, selectState) {\n return function selector2(state, ...args) {\n return selectorFn(createStateProxy(selectState ? selectState(state, ...args) : state, reducerMap), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n });\n}\n\n// src/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\nexport {\n ReducerType,\n SHOULD_AUTOBATCH,\n TaskAbortError,\n Tuple,\n addListener,\n asyncThunkCreator,\n autoBatchEnhancer,\n buildCreateSlice,\n clearAllListeners,\n combineSlices,\n configureStore,\n createAction,\n createActionCreatorInvariantMiddleware,\n createAsyncThunk,\n createDraftSafeSelector,\n createDraftSafeSelectorCreator,\n createDynamicMiddleware,\n createEntityAdapter,\n createImmutableStateInvariantMiddleware,\n createListenerMiddleware,\n produce as createNextState,\n createReducer,\n createSelector,\n createSelectorCreator2 as createSelectorCreator,\n createSerializableStateInvariantMiddleware,\n createSlice,\n current3 as current,\n findNonSerializableValue,\n formatProdErrorMessage,\n freeze,\n isActionCreator,\n isAllOf,\n isAnyOf,\n isAsyncThunkAction,\n isDraft5 as isDraft,\n isFSA as isFluxStandardAction,\n isFulfilled,\n isImmutableDefault,\n isPending,\n isPlain,\n isRejected,\n isRejectedWithValue,\n lruMemoize,\n miniSerializeError,\n nanoid,\n original2 as original,\n prepareAutoBatched,\n removeListener,\n unwrapResult,\n weakMapMemoize2 as weakMapMemoize\n};\n//# sourceMappingURL=redux-toolkit.modern.mjs.map","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import {\n SET_INSTRUMENT_GROUPS,\n SET_PIPE_CONFIGS,\n SET_PARTIAL_QUANT_CONFIG,\n SET_RUN_FORM_ROOT_VALUE,\n SET_ADJUSTMENT_OPTIONS,\n SET_BOUNDS,\n SET_PARTIAL_BOUNDS,\n SET_CASES,\n SET_CASES_INDEX_BASED,\n SET_UI_BEHAVIOUR_FLAGS\n} from './actions';\n\nexport default function (state = { quantConfig: {} }, action) {\n switch (action?.type) {\n case SET_PARTIAL_QUANT_CONFIG:\n return { ...state, quantConfig: { ...state.quantConfig, ...action.partialQuantConfig } };\n case SET_INSTRUMENT_GROUPS:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, instrumentGroups: action.instrumentGroups }\n };\n case SET_RUN_FORM_ROOT_VALUE:\n return { ...state, ...action.runFormConfig };\n case SET_PIPE_CONFIGS:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, pipeConfigs: action.pipeConfigs }\n };\n case SET_ADJUSTMENT_OPTIONS:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, adjustmentOptions: action.adjustmentOptions }\n };\n case SET_BOUNDS:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, bounds: action.bounds }\n };\n case SET_PARTIAL_BOUNDS:\n return {\n ...state,\n quantConfig: {\n ...state.quantConfig,\n bounds: { ...state.quantConfig.bounds, ...action.partialBounds }\n }\n };\n case SET_CASES_INDEX_BASED:\n return {\n ...state,\n quantConfig: {\n ...state.quantConfig,\n cases: state.quantConfig.cases.map((caseConfig, idx) => (\n idx === action.idx ? action.caseConfig : caseConfig))\n },\n };\n case SET_CASES:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, cases: action.cases }\n };\n case SET_UI_BEHAVIOUR_FLAGS:\n return {\n ...state,\n quantConfig: { ...state.quantConfig, uiBehaviourFlags: action.uiBehaviourFlags }\n };\n default:\n return state;\n }\n}\n","import _ from 'lodash';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { configureStore } from '@reduxjs/toolkit';\nimport thunk from 'redux-thunk';\nimport reducers from './redux/reducers';\n\nconst withRunForm = (UIComponent) => {\n return function runFormProvider(props) {\n const filteredProps = _.reduce(props, (result, value, key) => {\n const newResult = result;\n if (!_.isFunction(value)) newResult[key] = value;\n return newResult;\n }, {});\n\n const store = configureStore({\n reducer: reducers,\n middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(thunk),\n preloadedState: { ...filteredProps },\n });\n\n return (\n \n \n \n );\n };\n};\n\nexport default withRunForm;\n","import _ from 'lodash';\nimport React from 'react';\nimport { PRODUCT_TYPES } from 'v2/common/constants/index';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n product: PropTypes.string.isRequired,\n onChangeProduct: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ProductType = ({ product, onChangeProduct }) => {\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onChangeProduct(e.target.value)}\n />\n \n
    \n );\n };\n\n return (\n <>\n
    \n
    \n
    {_.map(PRODUCT_TYPES, renderRadioBtn)}
    \n
    \n \n );\n};\n\nProductType.propTypes = propTypes;\nProductType.defaultProps = defaultProps;\n\nexport default ProductType;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { QUANT_CONFIG_ORDER_TYPES } from 'v2/common/constants/index';\n\nconst propTypes = {\n selectedOrderType: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nconst OrderTypeSelector = ({ selectedOrderType, onChange }) => {\n const renderOptions = (orderType) => {\n const { isStopLossLimitOrderEnabled } = window;\n if (orderType.value === 'sl-l' && !isStopLossLimitOrderEnabled) return null;\n\n return ;\n };\n\n return (\n onChange(event.target.value)}\n value={selectedOrderType}\n >\n {_.map(QUANT_CONFIG_ORDER_TYPES, renderOptions)}\n \n );\n};\n\nOrderTypeSelector.propTypes = propTypes;\n\nexport default OrderTypeSelector;\n","import _ from 'lodash';\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\n\nconst propTypes = {\n action: PropTypes.string,\n isHideCancel: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nconst defaultProps = { action: '' };\n\nconst ACTIONS = {\n update: { label: 'Modify to market', value: 'update' },\n cancel: { label: 'Cancel', value: 'cancel' }\n};\n\nconst ActionTypeSelector = ({ action: propsAction, isHideCancel, onChange }) => {\n const modifyOrderActionTypeBtnName = useMemo(() => _.uniqueId('modifyOrderActionType-'), []);\n const { errors, register, clearErrors } = useFormContext();\n const validatorConfig = {\n validate: (value) => {\n return (!value ? 'value required' : null);\n }\n };\n\n const validatorProps = { ref: register(validatorConfig) };\n\n const actionTypeStyle = classNames(\n 'modify-order-selector',\n 'align-items-center',\n 'gap-5',\n 'd-flex',\n 'selector-radio-btn'\n );\n\n useEffect(() => {\n return () => clearErrors(modifyOrderActionTypeBtnName);\n }, [clearErrors, modifyOrderActionTypeBtnName]);\n\n const inputClassName = classNames('form-check-input', {\n 'is-invalid': !!errors[modifyOrderActionTypeBtnName]\n });\n\n const renderRadioBtn = (optionType) => {\n if (isHideCancel && optionType.value === 'cancel') return null;\n\n return (\n
    \n onChange(e.target.value)}\n />\n \n
    \n );\n };\n\n return (\n
    \n {_.map(ACTIONS, renderRadioBtn)}\n
    \n );\n};\n\nActionTypeSelector.propTypes = propTypes;\nActionTypeSelector.defaultProps = defaultProps;\n\nexport default ActionTypeSelector;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumber } from 'common/stringUtils/toPositiveNumberString';\nimport { QUANT_CONFIG_ORDER_TYPES } from 'v2/common/constants/index';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\nimport ActionTypeSelector from './ActionTypeSelector';\n\nconst propTypes = {\n actionTimeInSeconds: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n action: PropTypes.string,\n orderType: PropTypes.string.isRequired,\n onUpdate: PropTypes.func.isRequired,\n isExitOrder: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {\n actionTimeInSeconds: '',\n action: ''\n};\n\nconst ModifyOrCancelOrder = ({\n action: propsAction, actionTimeInSeconds: propsActionTimeInSeconds, isExitOrder, orderType, onUpdate\n}) => {\n const [action, setAction] = useState(propsAction);\n const [actionTimeInSeconds, setActionTimeInSeconds] = useState(propsActionTimeInSeconds);\n const { errors, register, clearErrors } = useFormContext();\n const validatorConfig = {\n validate: (value) => {\n return (!value ? 'value required' : null);\n }\n };\n\n const [modifySecondsName] = useState(_.uniqueId('modifySecondsName-'));\n const validatorProps = { ref: register(validatorConfig) };\n\n useEffect(() => {\n return () => {\n clearErrors(modifySecondsName);\n };\n }, [clearErrors, modifySecondsName]);\n\n if (orderType === QUANT_CONFIG_ORDER_TYPES.market.value) {\n return null;\n }\n\n const onChangeActionTimeInSeconds = () => {\n if (!_.isEmpty(action)) { onUpdate({ action, actionTimeInSeconds }); }\n };\n\n const onChangeAction = (value) => {\n setAction(value);\n if (_.isNumber(actionTimeInSeconds) && actionTimeInSeconds > 0) {\n onUpdate({ action: value, actionTimeInSeconds });\n }\n };\n\n const secondsClassNames = classNames(\n 'form-control seconds-input', {\n 'border border-danger': !!errors[modifySecondsName]\n }\n );\n\n const renderSeconds = (\n onChangeActionTimeInSeconds()}\n onChange={(event) => setActionTimeInSeconds(onRegexOnlyNumber(event.target.value))}\n />\n );\n\n return (\n
    \n
    \n
    \n \n
    \n {renderSeconds}\n
    \n \n \n
    \n
    \n
    \n );\n};\n\nModifyOrCancelOrder.propTypes = propTypes;\nModifyOrCancelOrder.defaultProps = defaultProps;\n\nexport default ModifyOrCancelOrder;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport OrderTypeSelector from './OrderTypeSelector';\nimport ModifyOrCancelOrder from './ModifyOrCancelOrder';\n\nconst propTypes = {\n orderType: PropTypes.string.isRequired,\n orderModification: PropTypes.shape({}).isRequired,\n onHandleTypeAndModification: PropTypes.func.isRequired,\n isExitOrder: PropTypes.bool,\n};\n\nconst defaultProps = { isExitOrder: false };\n\nconst EntryOrExitOrderTypes = ({\n orderType, orderModification, onHandleTypeAndModification, isExitOrder\n}) => {\n const action = _.get(orderModification, 'action', '');\n const actionTimeInSeconds = _.get(orderModification, 'actionTimeInSeconds', '');\n\n const onChangeOrderType = ((value) => {\n onHandleTypeAndModification({ orderType: value, orderModification: {} });\n });\n\n const onChangeOrderModification = (orderModificationValue) => {\n onHandleTypeAndModification({ orderType, orderModification: orderModificationValue });\n };\n\n return (\n
    \n
    \n
    \n {_.startCase(isExitOrder ? 'Exit Order' : 'Entry Order')}\n
    \n \n
    \n \n
    \n );\n};\n\nEntryOrExitOrderTypes.propTypes = propTypes;\nEntryOrExitOrderTypes.defaultProps = defaultProps;\n\nexport default EntryOrExitOrderTypes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport EntryOrExitOrderTypes from './EntryOrExitOrderTypes';\n\nconst propTypes = {\n entryOrderType: PropTypes.string.isRequired,\n entryOrderModification: PropTypes.shape({}).isRequired,\n exitOrderType: PropTypes.string.isRequired,\n exitOrderModification: PropTypes.shape({}).isRequired,\n onChangeOrderTypeConfigs: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst OrderType = ({\n entryOrderType,\n entryOrderModification,\n exitOrderType,\n exitOrderModification,\n onChangeOrderTypeConfigs\n}) => {\n const onHandleEntryTypeAndModification = ({ orderType, orderModification }) => {\n onChangeOrderTypeConfigs({ entryOrderType: orderType, entryOrderModification: orderModification });\n };\n\n const onHandleExitTypeAndModification = ({ orderType, orderModification }) => {\n onChangeOrderTypeConfigs({ exitOrderType: orderType, exitOrderModification: orderModification });\n };\n\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\nOrderType.propTypes = propTypes;\nOrderType.defaultProps = defaultProps;\n\nexport default OrderType;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n stopAndLimitPriceDifferenceInPercentage: PropTypes.oneOfType(\n [PropTypes.string, PropTypes.number]\n ).isRequired,\n onChangeStopAndLimitPriceDifferenceInPercentage: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst StopLimitPriceDifference = ({\n stopAndLimitPriceDifferenceInPercentage,\n onChangeStopAndLimitPriceDifferenceInPercentage\n}) => {\n const [stopLossLimitPrice, setStopLossLimitPrice] = useState(\n stopAndLimitPriceDifferenceInPercentage || 0\n );\n\n useEffect(() => {\n setStopLossLimitPrice(stopAndLimitPriceDifferenceInPercentage);\n }, [stopAndLimitPriceDifferenceInPercentage]);\n\n const onUpdateState = () => {\n onChangeStopAndLimitPriceDifferenceInPercentage(stopLossLimitPrice);\n };\n\n return (\n <>\n
    \n
    \n \n
    \n
    \n
    \n setStopLossLimitPrice(onRegexOnlyNumberAndFloat(event.target.value) || '')}\n onBlur={onUpdateState}\n />\n
    \n %\n
    \n
    \n
    \n
    \n \n );\n};\n\nStopLimitPriceDifference.propTypes = propTypes;\nStopLimitPriceDifference.defaultProps = defaultProps;\n\nexport default StopLimitPriceDifference;\n","import React, { useEffect, useState } from 'react';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n limitOrderBufferPercentage: PropTypes.oneOfType(\n [PropTypes.string, PropTypes.number]\n ).isRequired,\n onChangeLimitOrderBufferPercentage: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst StopLimitPriceDifference = ({\n limitOrderBufferPercentage,\n onChangeLimitOrderBufferPercentage\n}) => {\n const [bufferPercentage, setBufferPercentage] = useState(\n limitOrderBufferPercentage || 0\n );\n\n useEffect(() => {\n setBufferPercentage(limitOrderBufferPercentage);\n }, [limitOrderBufferPercentage]);\n\n const onUpdateState = () => onChangeLimitOrderBufferPercentage(bufferPercentage);\n\n return (\n <>\n
    \n
    \n \n
    \n
    \n
    \n setBufferPercentage(onRegexOnlyNumberAndFloat(event.target.value) || '')\n }\n onBlur={onUpdateState}\n />\n
    \n %\n
    \n
    \n
    \n
    \n \n );\n};\n\nStopLimitPriceDifference.propTypes = propTypes;\nStopLimitPriceDifference.defaultProps = defaultProps;\n\nexport default StopLimitPriceDifference;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n optionType: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nconst OPTION_TYPES = [\n { label: 'Place orders sequenced for Margin Benefit', value: true },\n { label: 'No', value: false }\n];\n\nconst Selector = ({ onChange, optionType: propsOptionType }) => {\n return (\n {\n onChange(JSON.parse(event.target.value));\n }}\n >\n {_.map(OPTION_TYPES, (optionType) => {\n return (\n \n {_.startCase(optionType.label)}\n \n );\n })}\n \n );\n};\n\nSelector.propTypes = propTypes;\nexport default Selector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Selector from './Selector';\n\nconst propTypes = {\n isPlaceOptionsEntryBuyOrdersFirst: PropTypes.bool.isRequired,\n onChangeIsPlaceOptionsEntryBuyOrdersFirst: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst MarginBenefit = ({ isPlaceOptionsEntryBuyOrdersFirst, onChangeIsPlaceOptionsEntryBuyOrdersFirst }) => {\n const onChange = (booleanValue) => {\n onChangeIsPlaceOptionsEntryBuyOrdersFirst(booleanValue);\n };\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n );\n};\n\nMarginBenefit.propTypes = propTypes;\nMarginBenefit.defaultProps = defaultProps;\n\nexport default MarginBenefit;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n optionType: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nconst OPTION_TYPES = [\n { label: 'Traded Price', value: 'traded_price' },\n { label: 'Signal Price', value: 'signal_price' }\n];\n\nconst PriceSelector = ({ onChange, optionType: propsOptionType }) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionSlOrderBasedOnPrice-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nPriceSelector.propTypes = propTypes;\nexport default PriceSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport PriceSelector from './PriceSelector';\n\nconst propTypes = {\n slOrderPlaceBasedOnPrice: PropTypes.string.isRequired,\n onChangeSlOrderPlaceBasedOnPrice: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst SlOrderBasedOnPrice = ({ slOrderPlaceBasedOnPrice, onChangeSlOrderPlaceBasedOnPrice }) => {\n const label = 'SL and TP Order Based On Price';\n\n const onChange = (newSlOrderPlaceBasedOnPrice) => {\n onChangeSlOrderPlaceBasedOnPrice(newSlOrderPlaceBasedOnPrice);\n };\n\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n );\n};\n\nSlOrderBasedOnPrice.propTypes = propTypes;\nSlOrderBasedOnPrice.defaultProps = defaultProps;\n\nexport default SlOrderBasedOnPrice;\n","import { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ORDER_TYPES, RUN_TYPES } from 'v2/common/constants/index';\nimport { setPartialQuantConfig } from '../../redux/actions';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\n\nconst PRODUCT_TYPES = {\n mis: { label: 'MIS', value: 'mis' },\n normal: { label: 'Normal', value: 'normal' },\n};\n\nconst useOrderExecutionDetails = () => {\n const quantRunType = useSelector((state) => getSelectorBasedStoreValue(state, 'runType'));\n const quantOrderType = useSelector((state) => getSelectorBasedStoreValue(state, 'orderType'));\n const entryOrderType = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.entryOrderType')\n ) || 'market';\n const entryOrderModification = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.entryOrderModification')\n ) || {};\n\n const exitOrderType = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.exitOrderType')\n ) || 'market';\n const exitOrderModification = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.exitOrderModification')\n ) || {};\n\n const dispatch = useDispatch();\n\n const onChangeOrderExecutionConfigs = useCallback((partialConfigs) => {\n dispatch(setPartialQuantConfig(partialConfigs));\n }, [dispatch]);\n\n return {\n product: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.product')\n ) || PRODUCT_TYPES.mis.value,\n onChangeProduct: useCallback(\n (newProduct) => onChangeOrderExecutionConfigs({ product: newProduct }), [onChangeOrderExecutionConfigs]\n ),\n isShowOrderExectionDetails: useMemo(\n () => quantRunType !== RUN_TYPES.historic && quantOrderType !== ORDER_TYPES.paper.value,\n [quantRunType, quantOrderType]\n ),\n isPlaceStoplossOrderToBroker: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.isPlaceStoplossOrderToBroker')\n ) || false,\n onChangeIsPlaceStoplossOrderToBroker: useCallback(\n (isPlaceStoplossOrderToBroker) => onChangeOrderExecutionConfigs({ isPlaceStoplossOrderToBroker }),\n [onChangeOrderExecutionConfigs]\n ),\n isSquareOffTransactionIfEntryFailed: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.isSquareOffTransactionIfEntryFailed')\n ) || false,\n onChangeIsSquareOffTransactionIfEntryFailed: useCallback(\n (isSquareOffTransactionIfEntryFailed) => onChangeOrderExecutionConfigs(\n { isSquareOffTransactionIfEntryFailed }\n ), [onChangeOrderExecutionConfigs]\n ),\n entryOrderType,\n entryOrderModification,\n onChangeOrderTypeConfigs: useCallback(\n (partialConfigs) => onChangeOrderExecutionConfigs(partialConfigs), [onChangeOrderExecutionConfigs]\n ),\n exitOrderType,\n exitOrderModification,\n stopAndLimitPriceDifferenceInPercentage: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.stopAndLimitPriceDifferenceInPercentage')\n ) || 0,\n limitOrderBufferPercentage: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.limitOrderBufferPercentage')\n ) || '',\n onChangeLimitOrderBufferPercentage: useCallback(\n (newLimitOrderBufferPercentage) => onChangeOrderExecutionConfigs(\n { limitOrderBufferPercentage: newLimitOrderBufferPercentage }\n ), [onChangeOrderExecutionConfigs]\n ),\n onChangeStopAndLimitPriceDifferenceInPercentage: useCallback(\n (stopLossLimitPrice) => onChangeOrderExecutionConfigs(\n { stopAndLimitPriceDifferenceInPercentage: stopLossLimitPrice }\n ), [onChangeOrderExecutionConfigs]\n ),\n isShowBufferPercentage: useMemo(\n () => entryOrderType !== 'market' || exitOrderType !== 'market',\n [entryOrderType, exitOrderType]\n ),\n isPlaceOptionsEntryBuyOrdersFirst: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.isPlaceOptionsEntryBuyOrdersFirst')\n ) || false,\n\n onChangeIsPlaceOptionsEntryBuyOrdersFirst: useCallback(\n (isPlaceOptionsEntryBuyOrdersFirst) => onChangeOrderExecutionConfigs(\n { isPlaceOptionsEntryBuyOrdersFirst }\n ), [onChangeOrderExecutionConfigs]\n ),\n slOrderPlaceBasedOnPrice: useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.slOrderPlaceBasedOnPrice')\n ) || 'traded_price',\n onChangeSlOrderPlaceBasedOnPrice: useCallback(\n (slOrderPlaceBasedOnPrice) => onChangeOrderExecutionConfigs(\n { slOrderPlaceBasedOnPrice }\n ), [onChangeOrderExecutionConfigs]\n ),\n };\n};\n\nexport default useOrderExecutionDetails;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\nimport { oneOfTypes } from 'common/propTypes';\n\nconst OPTION_TYPES = [\n { label: 'Yes', value: true },\n { label: 'No', value: false }\n];\n\nconst propTypes = {\n optionType: oneOfTypes,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {\n optionType: ''\n};\n\nconst PlaceOptionsEntryBuyOrdersSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionPlaceOptionsEntryBuyOrdersSelector-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nPlaceOptionsEntryBuyOrdersSelector.propTypes = propTypes;\nPlaceOptionsEntryBuyOrdersSelector.defaultProps = defaultProps;\n\nexport default PlaceOptionsEntryBuyOrdersSelector;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { oneOfTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\nimport HtmlParser from 'react-html-parser';\nimport { useSelector } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport PlaceStoplossOrderToBrokerFieldSelector from './PlaceStoplossOrderToBrokerFieldSelector';\n\nconst propTypes = {\n isPlaceStoplossOrderToBroker: oneOfTypes,\n onChange: PropTypes.func.isRequired,\n};\nconst defaultProps = { isPlaceStoplossOrderToBroker: '' };\n\nconst isIndividualStoplossAvailable = (cases = [], pipeConfigs = []) => {\n const checkIntents = (intents) => _.some(intents, (intent) => intent?.stopLoss?.value);\n\n const isStopLossPresentInCase = _.some(cases, (caseConfig) => {\n const { entry: { intents }, adjustments } = caseConfig;\n\n return (\n checkIntents(intents)\n || _.some(adjustments, (adjustment) => checkIntents(adjustment.intents))\n );\n });\n\n const isStopLossPresentInPipeConfig = _.some(pipeConfigs, (pipeConfig) => {\n const { config } = pipeConfig;\n return checkIntents(config?.legs);\n });\n\n return isStopLossPresentInCase || isStopLossPresentInPipeConfig;\n};\n\nconst PlaceStoplossOrderToBroker = ({\n isPlaceStoplossOrderToBroker, onChange\n}) => {\n const cases = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.cases'));\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n const isAvailable = isIndividualStoplossAvailable(cases, pipeConfigs);\n if (!isAvailable) { return null; }\n\n const oneIndentation = ' ';\n let content = 'If yes,
    QuantMan will place individual ';\n content += 'leg stoploss(SL-Limit) order to broker and as well as we also track the stoploss order.';\n content += '

    If No,
    ';\n content += 'QuantMan will track your stoploss and close position if stoploss acheived. ';\n content += 'No SL-Limit order to broker';\n\n return (\n
    \n \n
    \n onChange(value)}\n />\n
    \n
    \n );\n};\n\nPlaceStoplossOrderToBroker.propTypes = propTypes;\nPlaceStoplossOrderToBroker.defaultProps = defaultProps;\n\nexport default PlaceStoplossOrderToBroker;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\nimport { oneOfTypes } from 'common/propTypes';\n\nconst OPTION_TYPES = [\n { label: 'Yes', value: true },\n { label: 'No', value: false }\n];\n\nconst propTypes = {\n optionType: oneOfTypes.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst SquareOffTransactionIfEntryFailedSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionSquareOffTransactionIfEntryFailedSelector-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nSquareOffTransactionIfEntryFailedSelector.propTypes = propTypes;\nSquareOffTransactionIfEntryFailedSelector.defaultProps = defaultProps;\n\nexport default SquareOffTransactionIfEntryFailedSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SquareOffTransactionIfEntryFailedSelector from './SquareOffTransactionIfEntryFailedSelector';\n\nconst propTypes = {\n isSquareOffTransactionIfEntryFailed: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst SquareOffEntireTransactionIfEntryFailed = ({\n isSquareOffTransactionIfEntryFailed, onChange\n}) => {\n return (\n
    \n
    \n \n
    \n
    \n onChange(value)}\n />\n
    \n
    \n );\n};\n\nSquareOffEntireTransactionIfEntryFailed.propTypes = propTypes;\nSquareOffEntireTransactionIfEntryFailed.defaultProps = defaultProps;\n\nexport default SquareOffEntireTransactionIfEntryFailed;\n","import React from 'react';\nimport ProductType from './ProductType/index';\nimport OrderType from './OrderType/index';\nimport StopLimitPriceDifference from './StopLossLimitPriceDifference/index';\nimport LimitOrderBuffer from './LimitOrderBuffer/index';\nimport MarginBenefit from './MarginBenefit/index';\nimport SlOrderBasedOnPrice from './SlOrderBasedOnPrice/index';\nimport useOrderExecutionDetails from '../../hooks/useOrderExecutionDetails/index';\nimport PlaceStoplossOrderToBroker from './PlaceStoplossOrderToBroker/index';\nimport SquareOffEntireTransactionIfEntryFailed from './SquareOffEntireTransactionIfEntryFailed/index';\n\nconst OrderExecutionDetails = () => {\n const {\n product,\n onChangeProduct,\n isShowOrderExectionDetails,\n entryOrderType,\n entryOrderModification,\n exitOrderType,\n exitOrderModification,\n onChangeOrderTypeConfigs,\n isShowBufferPercentage,\n stopAndLimitPriceDifferenceInPercentage,\n onChangeStopAndLimitPriceDifferenceInPercentage,\n limitOrderBufferPercentage,\n onChangeLimitOrderBufferPercentage,\n isPlaceOptionsEntryBuyOrdersFirst,\n onChangeIsPlaceOptionsEntryBuyOrdersFirst,\n slOrderPlaceBasedOnPrice,\n onChangeSlOrderPlaceBasedOnPrice,\n isPlaceStoplossOrderToBroker,\n onChangeIsPlaceStoplossOrderToBroker,\n isSquareOffTransactionIfEntryFailed,\n onChangeIsSquareOffTransactionIfEntryFailed\n } = useOrderExecutionDetails();\n\n if (!isShowOrderExectionDetails) {\n return null;\n }\n\n return (\n\n
    \n
    Order execution Details
    \n \n \n \n {isShowBufferPercentage\n && (\n \n )}\n \n \n \n \n
    \n );\n};\n\nexport default OrderExecutionDetails;\n","import qs from 'qs';\nimport wrappedFetch from './base';\n\nconst params = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n};\n\nexport const signOut = () => {\n return wrappedFetch('/users/sign_out')\n .then(() => { window.location.href = '/'; });\n};\n\nexport const updateUser = (args) => {\n const queryParams = qs.stringify({ current_user: { ...args } });\n const uri = `/user/update/update_user_detail?${queryParams}`;\n\n return wrappedFetch(uri, params)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const validateBrokerUser = (args) => {\n const queryParams = qs.stringify({ ...args });\n const uri = `/user/validate_broker_client?${queryParams}`;\n\n return wrappedFetch(uri, params)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const sendOtpToBrokerUser = (userCredentials, isResendOtp, broker) => {\n const uri = `/${broker}/user_authenticator/send_otp`;\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ user_credentials: userCredentials, is_resend_otp: isResendOtp }),\n };\n\n return wrappedFetch(uri, config)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const validateOtpToBrokerUser = (userCredentials, broker) => {\n const uri = `/${broker}/user_authenticator/validate_otp`;\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ user_credentials: userCredentials }),\n };\n\n return wrappedFetch(uri, config)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const getCurrentUserDetail = () => {\n return wrappedFetch('/user/get_current_user_detail').then((response) => response.json());\n};\n\nexport const getExpiringSoonItems = () => {\n return wrappedFetch('/purchases/expiring_soon.json')\n .then((response) => response.json());\n};\n\nexport const checkIsValidBrokerAccessToken = () => {\n return wrappedFetch('user/is_valid_broker_access_token').then((response) => response.json());\n};\n\nexport const updateEmailId = (emailId) => {\n const uri = '/user/update_email_id';\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ email_id: emailId }),\n };\n\n return wrappedFetch(uri, config)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const updateReferralCode = (referralCode) => {\n const uri = '/update_referral_code';\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ referral_code: referralCode }),\n };\n\n return wrappedFetch(uri, config)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n\nexport const updateMandatoryPreferences = (preferences) => {\n const uri = '/user/update_mandatory_preferences';\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify(preferences),\n };\n\n return wrappedFetch(uri, config)\n .then((response) => response.json())\n .then((result) => {\n return result;\n });\n};\n","import _ from 'lodash';\nimport { RUN_TYPES } from 'common/constants/index';\nimport { getQuotaConsumption } from 'common/utils/InstrumentUtils';\nimport moment from 'moment';\n\nexport const getUserAccountDetails = (\n currentUser, runParams, instrumentGroups = []\n) => {\n const {\n addon_consumed_historic_runs: addonConsumedHistoricRuns,\n addon_consumed_live_runs: addonConsumedLiveRuns,\n addon_max_historic_runs: addonMaxHistoricRuns,\n addon_max_live_runs: addonMaxLiveRuns,\n quota_consumed_historic_runs: quotaConsumedHistoricRuns,\n quota_consumed_live_runs: quotaConsumedLiveRuns,\n quota_max_historic_runs: quotaMaxHistoriRuns,\n quota_max_live_runs: quotaMaxLiveRuns,\n plan_active_till: planActiveTill,\n free_trial_till: freeTrialTill\n } = currentUser;\n\n const startDate = _.get(runParams, 'start_date', '');\n const endDate = _.get(runParams, 'end_date', '');\n const runType = _.get(runParams, 'run_type', '');\n const quantConfig = _.get(runParams, 'quant_config', {});\n const granularity = _.get(runParams, 'granularity', '');\n\n const { requiredQuota } = getQuotaConsumption(\n runType, startDate, endDate, granularity, instrumentGroups || [], _.get(quantConfig, 'cases', [])\n );\n\n const availableHistoricRuns = _.add(addonMaxHistoricRuns, quotaMaxHistoriRuns)\n - _.add(addonConsumedHistoricRuns, quotaConsumedHistoricRuns);\n\n const availableLiveRuns = _.add(addonMaxLiveRuns, quotaMaxLiveRuns)\n - _.add(addonConsumedLiveRuns, quotaConsumedLiveRuns);\n\n const isPaidActiveUser = (planActiveTill && moment().format('YYYY-MM-DD') <= planActiveTill);\n const backtestCredits = (runType === RUN_TYPES.historic && (startDate && endDate))\n ? requiredQuota : 0;\n\n const isBacktestEligibleToRun = runType === RUN_TYPES.historic\n && ((startDate && endDate) && (!availableHistoricRuns\n ? false : backtestCredits <= availableHistoricRuns));\n\n const isShowAddon = runType === RUN_TYPES.historic && ((startDate && endDate) && !isBacktestEligibleToRun);\n const isLiveEligible = (isPaidActiveUser\n || (freeTrialTill && moment().format('YYYY-MM-DD') <= freeTrialTill));\n const isShowLiveRun = runType === RUN_TYPES.live && !availableLiveRuns && isLiveEligible;\n\n return {\n isShowPlan: !isLiveEligible && !isShowAddon && !isShowLiveRun && !isBacktestEligibleToRun,\n isShowAddon,\n isShowLiveRun: isShowLiveRun || false,\n backtestCredits\n };\n};\n\nexport const modalConditionBasedRender = (isShowPlan, isShowAddon, isShowLiveRun, strategy) => {\n return {\n isStrategyInitialPayment: !_.isEmpty(strategy) && !isShowPlan,\n isCallBackFuncCall: !isShowPlan && !isShowAddon && !isShowLiveRun,\n isRenderRunningLiveRuns: isShowLiveRun && _.isEmpty(strategy),\n };\n};\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { getRunningLiveRuns, onStopQuant } from 'common/api/run';\nimport moment from 'moment';\nimport { RUN_TYPES } from 'common/constants/index';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport InlineEdit from 'common/components/InlineEdit';\nimport ModalComponent from 'common/components/ModalComponent';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n callbackFunc: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst RunningLiveRuns = ({ callbackFunc }) => {\n const [runningLiveRuns, setRunningLiveRuns] = useState([]);\n const [isShowModal, setIsShowModal] = useState(true);\n const [isEnableDeploy, setIsEnableDeploy] = useState(true);\n const oneIndentation = ' ';\n const [sizeOfLiveRuns, setSizeOfLiveRuns] = useState(0);\n const [reducedSizeOfLiveRuns, setReducedSizeOfLiveRuns] = useState(0);\n\n useEffect(() => {\n getRunningLiveRuns().then((result) => {\n setRunningLiveRuns(result.running_live_runs);\n setSizeOfLiveRuns(_.size(result.running_live_runs));\n setReducedSizeOfLiveRuns(_.size(result.running_live_runs));\n });\n }, []);\n\n const onStopRun = (runId) => {\n onStopQuant(runId, () => {\n setTimeout(() => {\n setRunningLiveRuns(_.filter(runningLiveRuns, ({ id }) => runId !== id));\n setReducedSizeOfLiveRuns(_.size(runningLiveRuns) - 1);\n setIsEnableDeploy(false);\n }, 500);\n });\n };\n\n const renderLiveRuns = (run) => {\n const {\n id,\n name,\n display_name: displayName,\n run_type: runType,\n created_at: createdAt,\n start_date: startDate,\n end_date: endDate,\n summary\n } = run;\n const profit = _.get(summary, 'profit', 0);\n const isBacktest = runType === RUN_TYPES.historic;\n\n return (\n \n
    \n \n\n
    \n
    \n
    \n \n {isBacktest ? `${startDate} - ${endDate}`\n : `Created At - ${moment(createdAt).format('YYYY-MM-DD hh:mm:ss A')}`}\n \n
    \n
    \n\n
    \n
    \n Profit & Loss\n
    \n {profit}\n
    \n
    \n
    \n \n
    \n onStopRun(id)}\n key=\"stop-btn\"\n data-track-category=\"Quant Stop\"\n data-track-action=\"stop run\"\n data-track-label=\"Quant Stop\"\n type=\"button\"\n >\n \n stop_circle\n \n Stop Run\n \n
    \n
    \n
    \n );\n };\n\n return (\n <>\n {isShowModal && (\n {\n callbackFunc();\n setIsShowModal(false);\n }}\n onClose={() => setIsShowModal(!isShowModal)}\n size=\"lg\"\n isOkBtnDisabled={isEnableDeploy}\n okBtnTitle=\"Deploy a Live\"\n >\n
    \n
    \n
    \n

    \n Live Deployments max quota/credits used\n {oneIndentation}\n {sizeOfLiveRuns ? (`${sizeOfLiveRuns}/${reducedSizeOfLiveRuns}`) : ''}\n

    \n

    Please stop any of the following live deployments to continue

    \n
    \n
    \n\n
    \n {_.isEmpty(runningLiveRuns) ? (\n
    No Running Live Deployments
    \n ) : _.map(runningLiveRuns, renderLiveRuns)}\n
    \n
    \n \n )}\n \n );\n};\n\nRunningLiveRuns.propTypes = propTypes;\nRunningLiveRuns.defaultProps = defaultProps;\n\nexport default RunningLiveRuns;\n","import wrappedFetch from './base';\n\nconst fetchAddons = () => {\n return wrappedFetch('/addons.json')\n .then((response) => response.json());\n};\n\nexport default fetchAddons;\n","import qs from 'qs';\nimport wrappedFetch from './base';\n\nexport const fetchCoupon = (args) => {\n const queryParams = qs.stringify({ ...args });\n const uri = `/coupons/available?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n\nexport const fetchPreApplyCoupon = () => {\n const uri = '/coupons/preapply_coupon';\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n","import wrappedFetch from './base';\n\nconst fetchPlans = () => {\n return wrappedFetch('/plans.json')\n .then((response) => response.json());\n};\n\nexport default fetchPlans;\n","import wrappedFetch from './base';\n\nexport const getPurchases = () => {\n return wrappedFetch('/purchases')\n .then((response) => response.json());\n};\n\nexport const onCreatePayment = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/payment/init_payment', config).then((response) => response.json());\n};\n\nexport const onVerifyPayment = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/payment/payment_verification', config).then((response) => response.json());\n};\n\nexport const onCreateSubscription = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/subscription/init_subscription', config).then((response) => response.json());\n};\n\nexport const onVerifySubscription = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/subscription/verify_subscription', config).then((response) => response.json());\n};\n\nexport const onClaimFreeTrial = () => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({}),\n };\n\n return wrappedFetch('/payment/claim_free_trial', config).then((response) => response.json());\n};\n","import _ from 'lodash';\nimport { onVerifyPayment, onVerifySubscription } from 'common/api/payment';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { updateUrlQueryParams } from 'common/utils/urlUtils';\n\nconst PAID_STATUS = 'paid';\nconst SET_TIMEOUT_SECONDS = 2000;\n\nconst STATUS = {\n INITIATED: 'initiated',\n SUCCESS: 'success',\n};\n\nexport const initializeRazorpay = () => {\n return new Promise((resolve) => {\n const script = document.createElement('script');\n script.src = 'https://checkout.razorpay.com/v1/checkout.js';\n script.onload = () => { resolve(true); };\n script.onerror = () => { resolve(false); };\n\n document.body.appendChild(script);\n });\n};\n\nexport const razorpayModal = (args) => {\n initializeRazorpay().then(() => {\n const isSubscription = _.get(args, 'isSubscription', false);\n const onVerifyPurchase = (responseArgs) => {\n return (isSubscription ? onVerifySubscription(responseArgs) : onVerifyPayment(responseArgs));\n };\n\n updateUrlQueryParams('status', STATUS.INITIATED);\n\n const {\n razorpayKeyId, description, razorpayPurchaseId, resyncTypes, razorpayNotes\n } = args;\n const immediateCallBackFunc = _.get(args, 'immediateCallBackFunc', () => { });\n\n const options = {\n key: razorpayKeyId,\n [isSubscription ? 'subscription_id' : 'order_id']: razorpayPurchaseId,\n // for subscription it will be subscription Id\n name: 'Quantman.in',\n description: description || '',\n notes: razorpayNotes,\n handler: (response) => {\n Promise.all(\n _.map(resyncTypes, (resyncType) => {\n onVerifyPurchase({ ...response, type: resyncType }).then((result) => {\n const { status, message, purchase_status: purchaseStatus } = result;\n let toastMessage = '';\n let toastFormat = TOASTIFY_TYPES.SUCCESS;\n\n if (status && purchaseStatus === PAID_STATUS) {\n toastMessage = message;\n } else if (status && purchaseStatus !== PAID_STATUS) {\n toastMessage = `${message}, but not updated, please deploy a strategy after few minutes`;\n } else {\n toastMessage = message;\n toastFormat = TOASTIFY_TYPES.ERROR;\n }\n\n if (toastMessage) reactToastify(toastMessage, toastFormat);\n }).catch(() => { });\n })\n ).then(() => {\n setTimeout(() => {\n immediateCallBackFunc();\n updateUrlQueryParams('status', STATUS.SUCCESS);\n }, SET_TIMEOUT_SECONDS);\n }).catch(() => { });\n }\n };\n\n const propay = new Razorpay(options);\n propay.open();\n });\n};\n","import _ from 'lodash';\nimport { onCreatePayment, onCreateSubscription } from 'common/api/payment';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { razorpayModal } from './razorpayModal';\n\nexport const paymentInitialize = (args, immediateCallBackFunc = () => {}, isSubscription = false) => {\n const isUserSignedIn = _.get(window, 'isUserSignedIn', false);\n const isEmailUser = _.get(window, 'isEmailUser', false);\n\n const onCreatePurchase = () => (isSubscription ? onCreateSubscription(args) : onCreatePayment(args));\n\n const processPurchase = () => {\n onCreatePurchase()\n .then((result) => {\n const { status } = result;\n if (!status) {\n return reactToastify('Something went wrong, Please try again', TOASTIFY_TYPES.ERROR);\n }\n const razorpayOrderId = _.get(result, 'razorpay_order_id', '');\n const razorpaySubscriptionId = _.get(result, 'razorpay_subscription_id', '');\n const resyncTypes = _.get(result, 'resync_types', '');\n const { RAZORPAY_KEY_ID } = window;\n\n const razorpayModalArgs = {\n razorpayPurchaseId: razorpayOrderId || razorpaySubscriptionId,\n razorpayKeyId: RAZORPAY_KEY_ID,\n description: _.toString([resyncTypes]),\n isSubscription,\n resyncTypes,\n razorpayNotes: args,\n immediateCallBackFunc\n };\n\n if (razorpayOrderId === 'credit_payment') {\n reactToastify('Hurray! Purchase completed', TOASTIFY_TYPES.SUCCESS);\n setTimeout(() => immediateCallBackFunc(), 2000);\n return null;\n }\n\n return razorpayModal(razorpayModalArgs);\n })\n .catch(() => {\n reactToastify('Something went wrong, Please try again', TOASTIFY_TYPES.ERROR);\n });\n };\n\n if (!isUserSignedIn || isEmailUser) {\n initiateUserAuth({ action: 'plan_purchase', plan: args.addon_name })\n .then(() => processPurchase())\n .catch(() => {\n reactToastify('Unauthorized, Please login and Continue', TOASTIFY_TYPES.ERROR);\n });\n } else {\n processPurchase();\n }\n};\n","export const cyclicPlansPeriods = {\n monthly: {\n period: 1,\n label: 'Monthly',\n value: 'monthly'\n },\n quarterly: {\n period: 3,\n label: 'Quarterly',\n value: 'quarterly'\n },\n yearly: {\n period: 12,\n label: 'Annually',\n value: 'yearly'\n }\n};\n","import _ from 'lodash';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport { BROKERS } from 'common/constants/index';\nimport qs from 'qs';\nimport { cyclicPlansPeriods } from './config';\n\nexport const getContent = (brokers) => {\n let content = '';\n const hiddenBrokers = [BROKERS.broker_stub.id, BROKERS.goodwill_dealer.id, BROKERS.enrich_money.id];\n const filteredBrokers = _.filter(\n brokers, (broker) => !hiddenBrokers.includes(broker) && !broker.includes('xts')\n );\n\n _.each(filteredBrokers, (broker, idx) => {\n content += `${availableBrokers[broker]}`;\n if (idx !== filteredBrokers.length - 1) content += ', ';\n });\n\n return content;\n};\n\nexport const applyCredits = (price, credits) => {\n return credits < price ? price - credits : 0;\n};\n\nexport const getPreFillCouponCode = () => {\n const queryString = window.location.search;\n const parsedQueryString = qs.parse(queryString, { parseBooleans: true });\n\n return _.get(parsedQueryString, 'referralCode', '');\n};\n\nexport const cyclicFilter = (planCycleType, plan) => {\n switch (planCycleType) {\n case cyclicPlansPeriods[planCycleType].value:\n return plan.cycle_duration_in_months === cyclicPlansPeriods[planCycleType].period;\n default:\n return plan.cycle_duration_in_months === cyclicPlansPeriods[planCycleType].yearly;\n }\n};\n\nconst getPercentageValue = (price, percantage) => {\n return (Number(percantage) / 100) * Number(price);\n};\n\nexport const initCurrentNetPrice = (results = []) => {\n return _.map(results, (result) => { return { ...result, currentNetPrice: result.price }; });\n};\n\nconst priceCalculations = (isBothIdsEmpty, price, discountPercentage, currentHash, currentIds) => {\n if (isBothIdsEmpty) {\n return _.isUndefined(discountPercentage) ? price\n : _.round(price - getPercentageValue(price, discountPercentage), 2);\n }\n\n const { id } = currentHash;\n if ((_.size(currentIds) === 0) || _.includes(currentIds, id)) {\n return _.isUndefined(discountPercentage) ? price\n : _.round(price - getPercentageValue(price, discountPercentage), 2);\n }\n\n return price;\n};\n\nconst getAddonsAndPlanGroups = (addons, planGroups, discountPercentage, addonIds, planIds) => {\n const isBothIdsEmpty = _.isEmpty(addonIds) && _.isEmpty(planIds);\n const alteredAddons = _.map(addons, (addon) => {\n const { price } = addon;\n return {\n ...addon,\n currentNetPrice: priceCalculations(\n isBothIdsEmpty, price, discountPercentage, addon, addonIds\n )\n };\n });\n\n const alteredPlanGroups = _.reduce(planGroups, (result, arrayValue, key) => {\n \n result[key] = _.map(arrayValue, (value) => {\n const { price } = value;\n return {\n ...value,\n currentNetPrice: priceCalculations(\n isBothIdsEmpty, price, discountPercentage, value, planIds\n )\n };\n });\n return result;\n }, {});\n\n return { alteredAddons, alteredPlanGroups };\n};\n\nexport const getCouponConfig = (config, addons, planGroups) => {\n if (!_.keys(config).length) {\n return {\n alteredCouponCode: '',\n alteredIsApplied: false,\n ...getAddonsAndPlanGroups(addons, planGroups)\n };\n }\n\n const {\n discount_percentage: discountPercentage, code, addon_ids: addonIds, plan_ids: planIds\n } = config;\n\n return {\n alteredCouponCode: code,\n alteredIsApplied: true,\n ...getAddonsAndPlanGroups(\n addons, planGroups, discountPercentage, addonIds, planIds\n ),\n discountPercentage\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Money from 'common/components/MoneyDisplay';\n\nconst propTypes = {\n currentNetPrice: PropTypes.number,\n price: PropTypes.number,\n strikePrice: PropTypes.number,\n shouldAvoidDecimals: PropTypes.bool,\n cycleDurationInMonths: PropTypes.number,\n shouldHideBillCycle: PropTypes.bool\n};\n\nconst defaultProps = {\n currentNetPrice: 0,\n price: 0,\n strikePrice: 0,\n shouldAvoidDecimals: true,\n cycleDurationInMonths: 1,\n shouldHideBillCycle: false\n};\n\nconst PaymentMoneyDisplay = ({\n currentNetPrice,\n price,\n strikePrice,\n shouldAvoidDecimals,\n cycleDurationInMonths,\n shouldHideBillCycle\n}) => {\n const oneIndentation = ' ';\n\n const cycleMonth = !shouldHideBillCycle ? cycleDurationInMonths : 1;\n\n const renderStrikedPrice = () => {\n if (!strikePrice) return null;\n\n return (\n \n {Math.ceil(strikePrice / cycleMonth)}\n \n );\n };\n const isPriceAndCurrentNetPriceSame = price === currentNetPrice;\n\n return (\n
    \n {isPriceAndCurrentNetPriceSame && renderStrikedPrice(price)}\n {!isPriceAndCurrentNetPriceSame && renderStrikedPrice(currentNetPrice)}\n {oneIndentation}\n \n \n {Math.ceil(currentNetPrice / cycleMonth)}\n \n {!shouldHideBillCycle\n && / Month}\n \n
    \n );\n};\n\nPaymentMoneyDisplay.propTypes = propTypes;\nPaymentMoneyDisplay.defaultProps = defaultProps;\n\nexport default PaymentMoneyDisplay;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport PaymentMoneyDisplay from 'ui/Plans/components/common/PaymentMoneyDisplay';\n\nconst propTypes = {\n purchaseList: PropTypes.arrayOf(PropTypes.shape({})),\n isShowPlan: PropTypes.bool,\n selectedPurchase: PropTypes.shape({}),\n handleSelectedPurchase: PropTypes.func.isRequired\n};\n\nconst defaultProps = { purchaseList: [], selectedPurchase: {}, isShowPlan: false };\n\nconst PurchaseSet = ({\n purchaseList, isShowPlan, handleSelectedPurchase, selectedPurchase\n}) => {\n const selectedId = _.get(selectedPurchase, 'id', '');\n\n if (_.isEmpty(purchaseList)) return null;\n\n useEffect(() => {\n handleSelectedPurchase(_.head(_.orderBy(purchaseList, 'price', 'desc')));\n }, []);\n\n const renderPurchaseList = (list) => {\n const {\n id, price, addon_name: addonName, plan_name: planName, currentNetPrice,\n historic_run_limit: historicLimit, live_run_limit: liveLimit, strike_price: strikePrice,\n cycle_duration_in_months: cycleDurationInMonths\n } = list;\n\n const name = isShowPlan ? planName : addonName;\n const historicLimitStatement = `${historicLimit}`;\n\n const renderAddon = () => {\n return (\n
    \n );\n};\n\nRunDetail.propTypes = propTypes;\n\nexport default RunDetail;\n","import {\n quantConfigPropTypes, runjobsProps, runPropTypes, userPropTypes\n} from 'common/propTypes';\nimport PropTypes from 'prop-types';\n\nexport const runShowDetailsPropTypes = PropTypes.shape({\n status: PropTypes.string.isRequired,\n runType: PropTypes.string.isRequired,\n shouldRenderLoadingSpinner: PropTypes.bool.isRequired,\n jobIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n instrumentGroups: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n pipeConfigs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n errorInfo: PropTypes.shape({}),\n currentUserId: PropTypes.number,\n quantConfig: quantConfigPropTypes.isRequired,\n run: runPropTypes.isRequired,\n runJobs: runjobsProps.isRequired,\n currentUser: userPropTypes,\n strategyDetails: PropTypes.shape({}).isRequired\n});\n","import wrappedFetch from './base';\n\nexport const fetchV2JobDetails = (jobId) => {\n return wrappedFetch(`/jobs/${jobId}/get_v2_job_details`)\n .then((response) => response.json());\n};\n\nexport const fetchV2DashboadJobsDetails = () => {\n return wrappedFetch('v2_engine/dashboard_job_details')\n .then((response) => response.json());\n};\n\nexport const V2JobsAction = (jobIds, action) => {\n const uri = 'v2_engine/jobs_action';\n\n const params = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ job_ids: jobIds, action_type: action }),\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n","import React from 'react';\nimport { useTable } from 'react-table';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\nconst defaultProps = {};\n\nconst Table = ({ columns, data }) => {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow\n } = useTable({ columns, data });\n\n return (\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n ))}\n \n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n\n return (\n \n {row.cells.map((cell) => {\n return (\n \n );\n })}\n \n );\n })}\n \n
    \n {column.render('Header')}\n
    \n {cell.render('Cell')}\n
    \n );\n};\n\nexport default Table;\n\nTable.propTypes = propTypes;\nTable.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport { SEGMENT_CATEGORY_IN_QUANT } from 'common/constants/index';\nimport { TRANSACTION_MODES } from 'modules/TransactionsBuilder/configs';\nimport { INDICATORS_LENGTH, indicatorsTypes } from 'ui/run/RunShow/config';\n\nexport const getOpenOrdersData = (openOrdersData, latestOrders) => {\n const openOrderTransactionId = _.get(openOrdersData, [0, 'transactionId'], null);\n const latestOrderTransactionId = _.get(latestOrders, [0, 'transactionId'], null);\n const isNewTransaction = openOrderTransactionId !== latestOrderTransactionId;\n\n return _.map(latestOrders, (order, orderIndex) => {\n const {\n tradeSymbol, transactionId, quantity, isLiquid, price, timestamp, transactionType, isEntryOrder\n } = order;\n const orderDetails = {\n isLiquid, price, timestamp, transactionType\n };\n\n return {\n tradeSymbol,\n transactionId,\n quantity,\n entry: (isNewTransaction && isEntryOrder) ? orderDetails\n : _.get(openOrdersData, [orderIndex, 'entry'], {}),\n exit: !isEntryOrder ? orderDetails : {},\n };\n });\n};\n\nconst getRespectiveInstruments = (value, instrumentRepresentName, instrumentGroup) => {\n const indicatorValuesOfInstrument = {};\n\n _.each(instrumentGroup, (instrument, idx) => {\n indicatorValuesOfInstrument[instrument] = (\n instrumentRepresentName === `item${idx}`\n || instrumentRepresentName === 'basket'\n || instrumentRepresentName === 'INDIAVIX'\n ) ? value : '';\n });\n\n return indicatorValuesOfInstrument;\n};\n\nconst getSubIndicatorsData = (indicator, tockGroup, instrumentGroup, indicatorsType) => {\n const { name, config: { valuePaths } } = indicator;\n const indicatorValues = _.get(tockGroup, [indicator.name], 0);\n const isPairIndicators = indicatorsType === indicatorsTypes.pair;\n const [instrumentRepresentName] = _.split(_.head(valuePaths), '.');\n\n const getSubIndicatorData = (value, key) => {\n return isPairIndicators\n ? { [key]: value }\n : getRespectiveInstruments(value, instrumentRepresentName, instrumentGroup);\n };\n\n if (_.isObject(indicatorValues)) {\n return _.map(indicatorValues, (value, key) => ({\n subTitle: key,\n ...getSubIndicatorData(value, key)\n }));\n }\n\n return [].concat(getSubIndicatorData(indicatorValues, name));\n};\n\nexport const getFormattedIndicatorsData = (args) => {\n const {\n pipeConfigs, tockGroup, instrumentGroup, indicatorsType\n } = args;\n const indicators = _.filter(pipeConfigs, ({ config: { valuePaths } }) => (\n (valuePaths || []).length === INDICATORS_LENGTH[indicatorsType]\n ));\n\n return _.map(indicators, (indicator) => ({\n title: indicator.name,\n indicatorData: getSubIndicatorsData(indicator, tockGroup, instrumentGroup, indicatorsType)\n }));\n};\n\nexport const getLiveMonitorData = (quantConfig) => {\n const data = [\n { label: 'Future Price', value: 'close', segment: 'month1Price' },\n { label: 'Future Open Interest', value: 'openInterest', segment: 'month1Price' },\n { label: 'Future Volume', value: 'volume', segment: 'month1Price' },\n { label: 'Equity Price', value: 'close', segment: 'equity' },\n { label: 'Equity Volume', value: 'volume', segment: 'equity' }\n ];\n\n const {\n futureAndEquity, futureAndOption, futureConfig, equityConfig, optionAndEquity, combinedAllConfigs\n } = TRANSACTION_MODES;\n const { orderConfigs, pipeConfigs } = quantConfig;\n\n const isFuturePresentInOrderConfigs = _.some(orderConfigs, ({ transactionConfigs }) => {\n const isFutureMode = _.some(transactionConfigs, ({ mode }) => {\n const { transaction } = mode;\n if (_.includes(\n [futureAndEquity, futureAndOption, futureConfig, combinedAllConfigs], transaction\n )) return true;\n\n return false;\n });\n return isFutureMode;\n });\n\n const isEquityPresentInOrderConfigs = _.some(orderConfigs, ({ transactionConfigs }) => {\n const isEquityMode = _.some(transactionConfigs, ({ mode }) => {\n const { transaction } = mode;\n if (_.includes(\n [futureAndEquity, equityConfig, optionAndEquity, combinedAllConfigs], transaction\n )) return true;\n\n return false;\n });\n return isEquityMode;\n });\n\n const isFuturePresentInPipeConfigs = _.some(pipeConfigs, (pipeConfig) => {\n const { config } = pipeConfig;\n const valuePaths = _.get(config, 'valuePaths', []);\n const isMonth1Present = _.some(valuePaths, (valuePath) => _.includes(\n valuePath, SEGMENT_CATEGORY_IN_QUANT.month1Price\n ));\n return isMonth1Present;\n });\n\n const isEquityPresentInPipeConfigs = _.some(pipeConfigs, (pipeConfig) => {\n const { config } = pipeConfig;\n const valuePaths = _.get(config, 'valuePaths', []);\n const isEquityPresent = _.some(valuePaths, (valuePath) => _.includes(\n valuePath, SEGMENT_CATEGORY_IN_QUANT.equity\n ));\n\n return isEquityPresent;\n });\n\n const isFutureShow = isFuturePresentInOrderConfigs || isFuturePresentInPipeConfigs;\n const isEquityShow = isEquityPresentInOrderConfigs || isEquityPresentInPipeConfigs;\n\n return _.chain(data).filter(({ segment }) => {\n if ((segment === SEGMENT_CATEGORY_IN_QUANT.equity && isEquityShow)\n || (segment === SEGMENT_CATEGORY_IN_QUANT.month1Price && isFutureShow)\n ) return true;\n\n return false;\n }).value();\n};\n\nexport const formatV2QuantMonitorData = (tockGroup) => {\n return _.map(tockGroup, (tock) => {\n const { lastTick, output } = tock;\n return {\n ...output,\n timestamp: `${lastTick}Z`,\n profitDetail: {\n profitPrice: _.get(output, 'profitPrice', 0),\n profitPercentage: _.round(_.get(output, 'profitPercent', 0), 2)\n }\n };\n });\n};\n","import _ from 'lodash';\n// Vendor imports\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\n// Project imports\nimport Table from 'common/components/Table';\nimport Money from 'common/components/MoneyDisplay';\nimport moment from 'moment';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { getOpenOrdersData } from './helper';\n\nconst propTypes = {\n onOrderReceived: PropTypes.func.isRequired,\n liveOrdersData: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\nconst defaultProps = {};\n\nconst renderOrderDetails = (orderDetails) => {\n if (_.isEmpty(orderDetails)) return null;\n\n const {\n isLiquid, transactionType, price, timestamp\n } = orderDetails;\n\n const [date, time] = _.split(timestamp, 'T');\n const [timeZone] = _.split(time, 'Z');\n\n return (\n
    \n {!isLiquid && star}\n  \n {transactionType}\n {price}\n  \n {moment(`${date} ${timeZone}`).fromNow()}\n
    \n );\n};\n\nconst columns = [\n { Header: 'Trade Symbol', accessor: 'tradeSymbol' },\n { Header: 'Qty', accessor: 'quantity' },\n { Header: 'Entry', accessor: ({ entry }) => renderOrderDetails(entry), },\n { Header: 'Exit', accessor: ({ exit }) => renderOrderDetails(exit) }\n];\n\nconst OpenTransactionsCard = ({ liveOrdersData, onOrderReceived }) => {\n const [openOrdersData, setOpenOrdersData] = useState([]);\n const hasIlliquidOrder = _.some(liveOrdersData, ['isLiquid', false]);\n\n useEffect(() => {\n setOpenOrdersData(getOpenOrdersData(openOrdersData, liveOrdersData));\n onOrderReceived();\n }, [liveOrdersData]);\n\n if (_.isEmpty(openOrdersData)) return null;\n\n return (\n
    \n {hasIlliquidOrder && (\n
    \n star\n Illiquid\n
    \n )}\n\n
    \n \n \n \n );\n};\n\nexport default withErrorBoundary(OpenTransactionsCard, '', false);\nOpenTransactionsCard.propTypes = propTypes;\nOpenTransactionsCard.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { removeExchangeFromInstrument } from 'common/utils/InstrumentUtils';\nimport moment from 'moment';\n\nconst propTypes = {\n instrumentGroup: PropTypes.arrayOf(PropTypes.string).isRequired,\n timestamp: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst Header = ({ instrumentGroup, timestamp }) => {\n const oneIndentation = ' ';\n\n const renderTime = () => {\n if (!timestamp) return <>;\n\n return (\n \n );\n };\n\n return (\n \n \n {renderTime()}\n \n ))}\n \n \n );\n};\n\nHeader.defaultProps = defaultProps;\nHeader.propTypes = propTypes;\n\nexport default Header;\n","import _ from 'lodash';\nimport React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.number,\n PropTypes.string\n ]).isRequired\n};\nconst defaultProps = {};\n\nconst TIMEOUT = 500;\n\nconst BgBlink = ({ children }) => {\n const currentValue = _.get(children, ['props', 'children'], children);\n const previousValue = useRef(currentValue);\n\n const [blinkStyle, setBlinkStyle] = useState('blink');\n\n useEffect(() => {\n setBlinkStyle(\n classNames('blink', {\n green: previousValue.current < currentValue,\n red: previousValue.current > currentValue,\n })\n );\n\n setTimeout(() => { setBlinkStyle('blink'); }, TIMEOUT);\n\n previousValue.current = currentValue;\n\n return (() => { });\n }, [currentValue]);\n\n return (\n
    {children}
    \n );\n};\n\nBgBlink.propTypes = propTypes;\nBgBlink.defaultProps = defaultProps;\n\nexport default BgBlink;\n","import _ from 'lodash';\nimport React from 'react';\nimport BgBlink from 'common/components/BgBlink';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n tockGroup: PropTypes.shape({}).isRequired,\n instrumentGroup: PropTypes.arrayOf(PropTypes.string).isRequired,\n headerData: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n quantConfig: {}\n};\n\nconst getTdProps = (currentDataColKey) => {\n if (currentDataColKey === 'title') {\n return {\n colSpan: 2,\n key: currentDataColKey,\n };\n }\n\n return {\n className: 'text-right',\n key: currentDataColKey,\n };\n};\n\nconst getInstrumentsMarketData = (tockGroup, instrumentGroup, headerData) => {\n const marketData = {};\n\n return _.map(headerData, (data) => {\n const { label, value, segment } = data;\n\n _.each(instrumentGroup, (instrument, idx) => {\n marketData[instrument] = _.get(tockGroup, [`item${idx}`, segment, value], 0);\n });\n\n return ({\n title: label,\n ...marketData\n });\n });\n};\n\nconst InstrumentsMarketDataTable = ({ tockGroup, instrumentGroup, headerData }) => {\n const instrumentsMarketData = getInstrumentsMarketData(tockGroup, instrumentGroup, headerData);\n\n return _.map(instrumentsMarketData, (data, idx) => (\n \n {_.map(data, (value, key) => (\n \n ))}\n \n ));\n};\n\nInstrumentsMarketDataTable.defaultProps = defaultProps;\nInstrumentsMarketDataTable.propTypes = propTypes;\n\nexport default InstrumentsMarketDataTable;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { pipeConfigsPropTypes } from 'common/propTypes';\nimport BgBlink from 'common/components/BgBlink';\nimport {\n indicatorsTypes, DOUBLE_COL_SPAN, NO_COL_SPAN, SUB_TITLE\n} from 'ui/run/RunShow/config';\nimport { getFormattedIndicatorsData } from '../helper';\n\nconst propTypes = {\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n tockGroup: PropTypes.shape({}).isRequired,\n instrumentGroup: PropTypes.arrayOf(PropTypes.string).isRequired,\n indicatorsType: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst getIndicatorDataTdProps = (subIndicatorKey, indicatorsType) => {\n if (indicatorsType === indicatorsTypes.pair) {\n return {\n className: subIndicatorKey === SUB_TITLE ? 'text-right' : 'text-center',\n colSpan: subIndicatorKey === SUB_TITLE ? NO_COL_SPAN : DOUBLE_COL_SPAN\n };\n }\n\n return { className: 'text-right' };\n};\n\nconst IndicatorsDataTable = (props) => {\n const { indicatorsType } = props;\n const indicatorsData = getFormattedIndicatorsData(props);\n\n if (_.isEmpty(indicatorsData)) return null;\n\n return _.map(indicatorsData, (data) => {\n const { title, indicatorData } = data;\n const titleRowSpan = indicatorData.length;\n const titleColSpan = indicatorData.length === 1 ? DOUBLE_COL_SPAN : NO_COL_SPAN;\n\n return _.map(indicatorData, (subIndicatorsData, idx) => (\n \n {!idx && }\n {_.map(subIndicatorsData, (subIndicatorData, key) => (\n \n ))}\n \n ));\n });\n};\n\nIndicatorsDataTable.propTypes = propTypes;\nIndicatorsDataTable.defaultProps = defaultProps;\n\nexport default IndicatorsDataTable;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { pipeConfigsPropTypes } from 'common/propTypes';\nimport { indicatorsTypes } from 'ui/run/RunShow/config';\nimport Header from './Header';\nimport InstrumentsMarketDataTable from './InstrumentsMarketDataTable';\nimport IndicatorsDataTable from './IndicatorsDataTable';\n\nconst propTypes = {\n tockGroup: PropTypes.shape({}).isRequired,\n instrumentGroup: PropTypes.arrayOf(PropTypes.string).isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n headerData: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n headerData: []\n};\n\nconst MarketDataMonitorTable = (props) => {\n const {\n instrumentGroup, tockGroup, pipeConfigs, headerData\n } = props;\n const timestamp = _.get(tockGroup, 'timestamp', '');\n\n const renderIndicatorsData = (indicatorType, key) => (\n \n );\n\n return (\n
    \n
    \n
    \n Updated at:\n {oneIndentation}\n {moment(timestamp).utc().format('YYYY-MM-DD hh:mm:ss A')}\n
    \n
    \n {_.map(instrumentGroup, (instrument, idx) => (\n \n
    {removeExchangeFromInstrument(instrument)}
    \n
    \n {value}\n
    {title}\n \n {_.isNumber(subIndicatorData) ? _.round(subIndicatorData, 2) : subIndicatorData}\n \n
    \n
    \n
    \n \n {_.map(indicatorsTypes, renderIndicatorsData)}\n \n
    \n
    \n );\n};\n\nMarketDataMonitorTable.propTypes = propTypes;\nMarketDataMonitorTable.defaultProps = defaultProps;\n\nexport default MarketDataMonitorTable;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport Money from 'common/components/MoneyDisplay';\nimport InstrumentGroupsSentence from 'common/components/InstrumentGroupsSentence';\n\nconst propTypes = {\n instrumentGroup: PropTypes.arrayOf(PropTypes.string).isRequired,\n tockGroup: PropTypes.shape({}).isRequired,\n multiplier: PropTypes.number,\n};\nconst defaultProps = { multiplier: 1 };\n\nconst LiveProfitCard = ({ instrumentGroup, tockGroup, multiplier }) => {\n const groupProfit = _.get(tockGroup, ['profitDetail', 'profitPrice']);\n const groupProfitPercent = _.get(tockGroup, ['profitDetail', 'profitPercentage']);\n const groupProfitClassName = classNames(\n 'font-weight-bold',\n groupProfit < 0 ? 'text-danger' : 'text-success'\n );\n const profitLossLabel = groupProfit < 0 ? 'Loss' : 'Profit';\n\n return (\n
    \n
    \n
    \n

    {profitLossLabel}

    \n
    \n {groupProfit ? (\n \n {/* {Math.abs(groupProfit)} */}\n {multiplier > 1 ? Math.abs(groupProfit) * multiplier : Math.abs(groupProfit)}\n \n ) : ---}\n  \n {groupProfitPercent ? (\n \n (\n {Math.abs(_.round(groupProfitPercent, 2)) || groupProfitPercent}\n %)\n \n ) : (--)}\n
    \n
    \n
    \n );\n};\n\nLiveProfitCard.propTypes = propTypes;\nLiveProfitCard.defaultProps = defaultProps;\n\nexport default LiveProfitCard;\n","import _ from 'lodash';\nimport React, { useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n runPropTypes, instrumentGroupsPropTypes, pipeConfigsPropTypes\n} from 'common/propTypes';\nimport subscribeChannel from 'common/api/subscribeChannel';\nimport Modal from 'common/components/ModalComponent';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport { fetchV2JobDetails } from 'common/api/job';\nimport moment from 'moment-timezone';\nimport OpenTransactionsCard from './OpenTransactionsCard';\nimport MarketDataMonitorTable from './MarketDataMonitorTable';\nimport LiveProfitCard from './LiveProfitCard';\nimport { OrderContext } from '../../OrderStore/index';\nimport { formatV2QuantMonitorData } from './helper';\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n onOrderReceived: PropTypes.func.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n run: runPropTypes.isRequired,\n jobIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n};\nconst defaultProps = {};\n\n// Set the time zone to IST\nmoment.tz.setDefault('Asia/Kolkata');\n\nconst LIVE_MONITOR_REFRESH_INTERVAL = 3 * 1000; // 3 seconds\nconst MARKET_START_TIME = moment('09:15:00', 'HH:mm:ss');\nconst MARKET_END_TIME = moment('15:30:00', 'HH:mm:ss');\n\nconst LiveMonitor = (props) => {\n const {\n instrumentGroups, run, onOrderReceived, pipeConfigs, jobIds\n } = props;\n const { showBy } = useContext(OrderContext);\n const jobId = _.head(jobIds);\n const {\n run_type: runType, status, quant_config: quantConfig, strategy_id: strategyId,\n is_strategy_subscriber: isMarketPlaceSubscribedRun, status: runStatus, multiplier\n } = run;\n const oneIndentation = ' ';\n const slOrderPlaceBasedOnPrice = _.get(run, 'quant_config.slOrderPlaceBasedOnPrice', null);\n\n if (runType !== 'live' || status === 'killed') { return null; }\n const isMarketHrs = () => moment().isBetween(MARKET_START_TIME, MARKET_END_TIME);\n\n const renderMarketPlaceContent = () => {\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n\n return (\n
    \n Information :\n {oneIndentation}\n Deployment Monitor showing updates for each second has been removed for Sample deployments.\n Your deployment is currently\n {oneIndentation}\n {status}\n . Go to this\n {oneIndentation}\n \n Sample strategy\n \n
    \n );\n };\n\n const [tockGroups, setTockGroups] = useState([]);\n const [liveOrdersData, setLiveOrdersData] = useState([]);\n const [isShowModal, setIsShowModal] = useState(false);\n const [reloadCount, setReloadCount] = useState(3);\n\n const LiveOrdersChannelProps = {\n roomId: `${jobId}_orders`,\n channelName: 'Live Orders',\n onDataReceive: setLiveOrdersData\n };\n\n const fetchV2JobMonitorDetailsPeriodically = () => {\n if (runStatus !== 'started') { return null; }\n if (!isMarketHrs()) { return null; }\n let interval = null;\n\n const fetchAndSetData = () => {\n if (!isMarketHrs()) {\n clearInterval(interval);\n return null;\n }\n\n fetchV2JobDetails(jobId)\n .then((jobDetails) => {\n const { groups } = jobDetails;\n setTockGroups(formatV2QuantMonitorData(groups));\n })\n .catch((error) => {\n console.error('Error fetching job details:', error);\n });\n\n return null;\n };\n\n fetchAndSetData();\n interval = setInterval(fetchAndSetData, LIVE_MONITOR_REFRESH_INTERVAL);\n return () => clearInterval(interval);\n };\n\n useEffect(() => {\n if (liveOrdersData.length) setIsShowModal(true); // TODO as socket\n }, [liveOrdersData]);\n\n useEffect(() => {\n fetchV2JobMonitorDetailsPeriodically();\n\n subscribeChannel(LiveOrdersChannelProps);\n }, []);\n\n const getOrderDataBasedOnShowBy = (idx) => {\n const data = _.get(liveOrdersData, [idx], []);\n\n return _.flatten([data]);\n };\n\n const renderLiveMonitor = (instrumentGroup, idx) => {\n const currentTockGroup = showBy === 'all' ? _.get(tockGroups, [idx], {})\n : _.get(tockGroups, [Number(showBy)], {});\n\n const currentLiveOrderData = showBy === 'all'\n ? getOrderDataBasedOnShowBy(idx) : getOrderDataBasedOnShowBy(Number(showBy));\n // context in orderStore show particular instrument\n\n const renderMarketPlaceTable = () => {\n return (\n \n );\n };\n\n if (_.isEmpty(quantConfig)) return null;\n\n return (\n
    \n
    \n {(slOrderPlaceBasedOnPrice !== 'signal_price')\n && (\n \n ) }\n \n {renderMarketPlaceTable()}\n
    \n
    \n );\n };\n\n const formatInstrumentGroups = () => {\n if (!showBy || showBy === 'all') return instrumentGroups;\n\n return _.filter(instrumentGroups, (instrument, idx) => idx === showBy || idx === Number(showBy));\n };\n\n useEffect(() => {\n if (!reloadCount) { window.location.reload(); }\n if (isShowModal) setTimeout(() => { setReloadCount(reloadCount - 1); }, 1000);\n }, [isShowModal, reloadCount]);\n\n const renderReloadModal = () => {\n return (\n { setIsShowModal(false); }}>\n
    \n

    New Order Received

    \n \"user-alert\"\n

    New Order Received for the strategy. Please wait a moment, the page will be reloaded.

    \n

    {reloadCount || ''}

    \n window.location.reload()}\n className=\"btn btn-outline-primary btn-pill\"\n >\n Reload\n \n
    \n
    \n );\n };\n\n return (\n <>\n {isMarketPlaceSubscribedRun && renderMarketPlaceContent()}\n {renderReloadModal()}\n
    \n
    {_.map(formatInstrumentGroups(), renderLiveMonitor)}
    \n
    \n \n );\n};\n\nLiveMonitor.defaultProps = defaultProps;\nLiveMonitor.propTypes = propTypes;\n\nexport default LiveMonitor;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { runPropTypes, userPropTypes } from 'common/propTypes';\nimport DateSelector from 'common/components/DateSelector';\nimport moment from 'moment';\nimport { RUN_UNFINISHED_STATUSES } from 'common/configs/runStatus';\nimport ReactHtmlParser from 'react-html-parser';\nimport { updateTradeSkipDates } from 'common/api/run';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = {\n run: runPropTypes.isRequired,\n currentUser: userPropTypes\n};\n\nconst defaultProps = { currentUser: null };\n\nconst TradeSkipDates = ({ run, currentUser }) => {\n const [isShowPicker, setIsShowPicker] = useState(false);\n const toDateFormat = (newDate) => moment(newDate).toDate();\n\n const { trade_skip_start_date: tradeSkipStartDate, trade_skip_end_date: tradeSkipEndDate } = run;\n const [startDate, setStartDate] = useState(tradeSkipStartDate);\n const [endDate, setEndDate] = useState(tradeSkipEndDate);\n const startCalenderDate = new Date();\n const endCalenderDate = new Date();\n endCalenderDate.setDate(endCalenderDate.getDate() + 30);\n const format = 'YYYY-MM-DD HH:mm';\n const {\n quant_config: quantConfig, user_id: userId, status, id: runId, strategy_id: strategyId\n } = run;\n const currentUserId = _.get(currentUser, 'id', null);\n const isEmptyQuantConfig = _.isEmpty(quantConfig);\n\n if (currentUserId !== userId\n || !_.includes(RUN_UNFINISHED_STATUSES, status)\n ) {\n return null;\n }\n\n let contentString = '';\n\n const { publishInMarketPlace } = window.userPermissions;\n const isEnabled = _.get(publishInMarketPlace, 'isEnabled', false);\n\n if (isEmptyQuantConfig) {\n if (startDate || endDate) {\n contentString += 'Due to some reason, Strategy owner has skiped the order between';\n contentString += ` ${startDate ? moment(startDate).format(format) : '-'} to `;\n contentString += `${endDate ? moment(endDate).format(format) : '-'} `;\n }\n contentString += '';\n } else if (isEnabled) {\n contentString += 'Do you want to skip the trade ? Please choose the date range';\n contentString += ` ${startDate ? moment(startDate).format(format) : '-'} to `;\n contentString += `${endDate ? moment(endDate).format(format) : '-'} `;\n }\n\n const onUpdateRun = (params) => {\n updateTradeSkipDates(params, runId).then(() => {\n const growlStatus = strategyId ? 'Dependency runs also applied skip dates successfully' : '';\n reactToastify(`Trade Skip Dates Updates Successfully, ${growlStatus}`);\n }).catch(() => { reactToastify('Something went wrong', TOASTIFY_TYPES.ERROR); });\n setIsShowPicker(false);\n };\n\n if (!contentString) return null;\n const isShowClearDate = startDate || endDate;\n\n return (\n
    \n \n {ReactHtmlParser(contentString)}\n \n {!isEmptyQuantConfig && (\n <>\n {isShowClearDate && (\n {\n setStartDate(null);\n setEndDate(null);\n onUpdateRun({ trade_skip_start_date: null, trade_skip_end_date: null });\n }}\n >\n Clear Date\n \n )}\n\n {\n setIsShowPicker(!isShowPicker);\n if (!startDate) setStartDate(moment().format(format));\n if (!endDate) setEndDate(moment().format(format));\n }}\n >\n Change trade skip range\n \n \n )}\n {isShowPicker\n && (\n
    \n
    \n \n {\n setStartDate(value ? moment(value).format(format) : null);\n }}\n minDate={startCalenderDate}\n maxDate={endCalenderDate}\n dateFormat=\"yyyy-MM-dd HH:mm\"\n showTimeSelect\n />\n
    \n
    \n \n {\n setEndDate(value ? moment(value).format(format) : null);\n }}\n minDate={startCalenderDate}\n maxDate={endCalenderDate}\n dateFormat=\"yyyy-MM-dd HH:mm\"\n showTimeSelect\n />\n
    \n onUpdateRun({ trade_skip_start_date: startDate, trade_skip_end_date: endDate })}\n >\n Update Range\n \n
    \n )}\n
    \n );\n};\n\nTradeSkipDates.propTypes = propTypes;\nTradeSkipDates.defaultProps = defaultProps;\n\nexport default TradeSkipDates;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n instrumentGroupsPropTypes, pipeConfigsPropTypes, runPropTypes, userPropTypes\n} from 'common/propTypes';\nimport LiveMonitor from '../LiveMonitor/index';\nimport { OrderContext } from '../../OrderStore/index';\nimport TradeSkipDates from './TradeSkipDates';\nimport TransactionDetail from '../TransactionDetail/index';\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n run: runPropTypes.isRequired,\n jobIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n currentUser: userPropTypes\n};\n\nconst defaultProps = { currentUser: null };\n\nconst LiveDetails = ({\n instrumentGroups, pipeConfigs, run, jobIds, currentUser\n}) => {\n const { isLoading } = useContext(OrderContext);\n\n return (\n
    \n \n { }}\n instrumentGroups={instrumentGroups}\n pipeConfigs={pipeConfigs}\n />\n {!isLoading &&
    }\n
    \n );\n};\n\nexport default LiveDetails;\n\nLiveDetails.propTypes = propTypes;\nLiveDetails.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getQuotaConsumption } from 'common/utils/InstrumentUtils';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n runType: PropTypes.string.isRequired,\n granularity: PropTypes.string.isRequired,\n startDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),\n endDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),\n instrumentGroups: PropTypes.arrayOf(PropTypes.array),\n cases: PropTypes.arrayOf(PropTypes.object),\n isConsumed: PropTypes.bool\n};\n\nconst defaultProps = {\n startDate: '',\n endDate: '',\n instrumentGroups: [],\n isConsumed: false,\n cases: []\n};\n\nconst CreditDetails = ({\n startDate, endDate, runType, instrumentGroups, isConsumed, cases, granularity\n}) => {\n const oneIndentation = ' ';\n const { requiredQuota, quotaBreakout } = getQuotaConsumption(\n runType, startDate, endDate, granularity, instrumentGroups, cases\n );\n\n if (!requiredQuota) return null;\n\n const {\n numberOfInstruments, years, numberOfCases, numberOfCreditsForGranularitySecond\n } = quotaBreakout;\n\n const breakOutcontent = ''\n + `${numberOfInstruments} instrument(s)`\n + `${!_.isUndefined(years) ? ` x ${years} year(s)` : ''}`\n + ` x ${numberOfCases} case(s) `\n + `${numberOfCreditsForGranularitySecond > 1\n ? `
    x ${numberOfCreditsForGranularitySecond} (For Second-wise backtest) ` : ''}`;\n\n return (\n \n
    \n
    \n help_outline\n \n {isConsumed ? 'Consumed' : 'Required'}\n {oneIndentation}\n Credits:\n {oneIndentation}\n {requiredQuota}\n \n
    \n
    \n
    \n );\n};\n\nCreditDetails.propTypes = propTypes;\nCreditDetails.defaultProps = defaultProps;\n\nexport default CreditDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nimport { STOPS_VALUE_TYPES } from 'modules/QuantBuilder/config';\n\nconst propTypes = {\n valueType: PropTypes.string.isRequired,\n onValueTypeChange: PropTypes.func.isRequired,\n isShowPrice: PropTypes.bool\n};\nconst defaultProps = { isShowPrice: true };\n\nconst ValueTypeToggleBtn = ({ valueType, onValueTypeChange, isShowPrice }) => {\n const { PERCENT, PRICE } = STOPS_VALUE_TYPES;\n\n return (\n \n \n %\n \n\n {isShowPrice && (\n \n \n \n )}\n \n );\n};\n\nValueTypeToggleBtn.propTypes = propTypes;\nValueTypeToggleBtn.defaultProps = defaultProps;\n\nexport default ValueTypeToggleBtn;\n","import ValueTypeToggleBtn from 'common/components/StopsValueTypeToggleBtn';\nimport { slippageTypes } from 'common/constants/index';\nimport { STOPS_VALUE_TYPES } from 'modules/QuantBuilder/config/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { OrderContext } from '../OrderStore/index';\n\nconst SlippageInputDetails = () => {\n const { slippage, onHandleSlippage, slippageType } = useContext(OrderContext);\n const [currentSlippage, setCurrentSlippage] = useState(slippage);\n const [currentSlippageType, setCurrentSlippageType] = useState(slippageType);\n\n useEffect(() => { setCurrentSlippage(slippage); }, [slippage]);\n useEffect(() => { setCurrentSlippageType(slippageType); }, [slippageType]);\n\n const { PERCENT, PRICE } = STOPS_VALUE_TYPES;\n\n return (\n
    \n Slippage\n \n \n info\n \n \n
    \n {\n if (newType === PRICE) return setCurrentSlippageType(slippageTypes.price);\n\n return setCurrentSlippageType(slippageTypes.percentage);\n }}\n />\n { setCurrentSlippage(event.target.value); }}\n />\n
    \n onHandleSlippage(currentSlippage, currentSlippageType)}\n >\n Go\n \n
    \n );\n};\n\nSlippageInputDetails.propTypes = {};\n\nexport default SlippageInputDetails;\n","import _ from 'lodash';\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { OrderContext } from '../../OrderStore/index';\n\nconst WeekDaysFilter = () => {\n const days = [\n { value: 'Monday', label: 'M' },\n { value: 'Tuesday', label: 'T' },\n { value: 'Wednesday', label: 'W' },\n { value: 'Thursday', label: 'Th' },\n { value: 'Friday', label: 'F' },\n { value: 'Saturday', label: 'Sa' },\n ];\n\n const { filterConfigs, setFilterConfigs } = useContext(OrderContext);\n const { weekDays, isWeekDaysFilterActive, isDaysToExpiryFilterActive } = filterConfigs;\n\n if (isDaysToExpiryFilterActive) return null;\n\n const toggleWeekDay = useCallback(\n (day) => {\n setFilterConfigs({\n ...filterConfigs,\n weekDays: _.includes(weekDays, day)\n ? _.filter(weekDays, (weekDay) => weekDay !== day)\n : [...weekDays, day],\n });\n },\n [filterConfigs, weekDays, setFilterConfigs]\n );\n\n const openFilter = useCallback(() => {\n setFilterConfigs({\n ...filterConfigs,\n isDaysToExpiryFilterActive: false,\n isWeekDaysFilterActive: true,\n daysToExpiry: [],\n weekDays: [],\n });\n }, [filterConfigs, setFilterConfigs]);\n\n const closeFilter = useCallback(() => {\n setFilterConfigs({\n ...filterConfigs,\n isDaysToExpiryFilterActive: false,\n isWeekDaysFilterActive: false,\n weekDays: [],\n });\n }, [filterConfigs, setFilterConfigs]);\n\n const renderedOptions = useMemo(() => {\n return (\n
    \n {\n days.map((day, idx) => (\n \n toggleWeekDay(day.value)}\n className=\"hidden\"\n />\n {day.label}\n \n ))\n }\n \n close\n \n
    \n );\n }, [days, weekDays, toggleWeekDay]);\n\n return (\n
    \n \n \n WeekDays\n \n \n\n {isWeekDaysFilterActive &&
    {renderedOptions}
    }\n
    \n );\n};\n\nexport default WeekDaysFilter;\n","import React, {\n useContext, useCallback, useMemo, useState\n} from 'react';\nimport {\n Dropdown, Tooltip, OverlayTrigger, Button\n} from 'react-bootstrap';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { OrderContext } from '../../OrderStore/index';\n\nconst DaysToExpiryFilter = () => {\n const dteOptions = Array(30 + 1).fill(0).map((_, i) => i);\n const { filterConfigs, setFilterConfigs } = useContext(OrderContext);\n const { daysToExpiry, isWeekDaysFilterActive, isDaysToExpiryFilterActive } = filterConfigs;\n const [isToggleOpen, setIsToggleOpen] = useState(true);\n\n const handleSelectAll = useCallback(() => {\n const updatedDays = daysToExpiry.length === dteOptions.length ? [] : dteOptions;\n setFilterConfigs({\n ...filterConfigs,\n daysToExpiry: updatedDays,\n });\n }, [daysToExpiry, filterConfigs, setFilterConfigs]);\n\n const handleOptionChange = useCallback(\n (value) => {\n const updatedDays = daysToExpiry.includes(value)\n ? daysToExpiry.filter((day) => day !== value)\n : [...daysToExpiry, value];\n setFilterConfigs({\n ...filterConfigs,\n daysToExpiry: updatedDays,\n });\n },\n [daysToExpiry, filterConfigs, setFilterConfigs]\n );\n\n const renderTooltip = (props) => (\n \n {daysToExpiry.length ? daysToExpiry.join(', ') : 'None Selected'}\n \n );\n\n const openFilter = useCallback(() => {\n setFilterConfigs({\n ...filterConfigs,\n isDaysToExpiryFilterActive: true,\n isWeekDaysFilterActive: false,\n weekDays: [],\n daysToExpiry: [],\n });\n setIsToggleOpen(true);\n }, [filterConfigs, setFilterConfigs, dteOptions]);\n\n const closeFilter = useCallback(() => {\n setFilterConfigs({\n ...filterConfigs,\n isDaysToExpiryFilterActive: false,\n isWeekDaysFilterActive: false,\n daysToExpiry: [],\n });\n setIsToggleOpen(false);\n }, [filterConfigs, setFilterConfigs]);\n\n const renderedOptions = useMemo(() => {\n const isChecked = daysToExpiry.length === dteOptions.length;\n return (\n <>\n setIsToggleOpen(!isToggleOpen)}\n className=\"w-full dte-filter-dropdown\"\n >\n \n \n Select DTE\n \n \n \n
    \n \n
    \n {dteOptions.map((value) => (\n
    \n \n
    \n ))}\n
    \n \n \n close\n \n \n );\n }, [dteOptions, daysToExpiry, handleOptionChange, handleSelectAll]);\n\n if (isWeekDaysFilterActive) return null;\n\n return (\n
    \n \n \n DTE\n \n \n\n {isDaysToExpiryFilterActive && renderedOptions}\n
    \n );\n};\n\nexport default DaysToExpiryFilter;\n","import React, { useContext } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { OrderContext } from '../../OrderStore/index';\n\nconst LegsFilter = () => {\n const { filterConfigs, setFilterConfigs, intentArray } = useContext(OrderContext);\n\n const handleLegsUpdate = (selectedLegs) => {\n setFilterConfigs({\n ...filterConfigs,\n legs: selectedLegs.map((selection) => selection.id),\n });\n };\n\n return (\n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default LegsFilter;\n","import _ from 'lodash';\nimport RunSummary from 'modules/RunSummary/index';\nimport React, { useContext } from 'react';\nimport { RUN_TYPES } from 'common/constants/index';\nimport { RUN_STATUS_CODES } from 'common/configs/runStatus';\nimport NoOrdersMessage from './NoOrdersMessage';\nimport RunConfig from './RunConfig';\nimport RunErrorMessage from './RunErrorMessage';\nimport RunTitleAndActions from './RunTitleAndActions/index';\nimport TransactionDetail from './TransactionDetail/index';\nimport RunDetail from './RunDetail/index';\nimport { OrderContext } from '../OrderStore/index';\nimport { runShowDetailsPropTypes } from './propTypes';\nimport LiveDetails from './LiveDetails/index';\nimport CreditDetails from './CreditDetails';\nimport SlippageInputDetails from './SlippageInputDetails';\nimport WeekDaysFilter from './BackTestFilters/WeekDaysFilter';\nimport DaysToExpiryFilter from './BackTestFilters/DaysToExpiryFilter';\nimport LegsFilter from './BackTestFilters/LegsFilter';\n\nconst propTypes = runShowDetailsPropTypes.isRequired;\n\nconst defaultProps = { instrumentGroups: [], outputSchema: [] };\n\nconst RunShowDetails = ({\n run, shouldRenderLoadingSpinner, jobIds, instrumentGroups, shouldShowFilter, renderFilterOptions,\n currentUserDefaultFolderId, outputSchema, strategyDetails, currentUser,\n run: {\n run_type: runType, status, error_info: errorInfo = {}, quant_config: quantConfig,\n is_public: isPublic, is_quarantine: isQuarantine, granularity\n } // props includes runshow and show.html.erb (run show) file\n}) => {\n const { COMPLETED, STARTED } = RUN_STATUS_CODES;\n const { orders, isLoading, filterConfigs: { weekDays, daysToExpiry, legs } } = useContext(OrderContext);\n\n const pipeConfigs = _.get(quantConfig, 'pipeConfigs', []);\n const tradingType = _.get(quantConfig, 'tradingType', '');\n const isBacktest = runType === RUN_TYPES.historic;\n\n const renderQuarantineMessage = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n Highly skewed results(win/loss ratio) have been found this run.\n {oneIndentation}\n Backtesting is based on minute by minute data and\n {oneIndentation}\n some people create backtests in such way that it creates a lot profit.\n {oneIndentation}\n To prevent misusing/misguiding/selling these artificially-engineered backtests,\n {oneIndentation}\n this run has been quarantined.\n {oneIndentation}\n This backtest cannot be viewed by others, even though it is marked as public.\n {oneIndentation}\n For any further queries, contact support.\n
    \n );\n };\n\n const renderNoOrderMessage = () => {\n switch (status) {\n case STARTED: return !shouldRenderLoadingSpinner;\n case COMPLETED: return !isLoading && !orders.length; // backtest call waiting\n default: return false;\n }\n };\n\n const renderRunConfig = () => (\n
    \n
    \n
    \n
    \n
    \n );\n\n const renderBacktestShowPage = () => {\n if (renderNoOrderMessage()) {\n return (\n \n );\n }\n\n return (\n
    \n \n \n
    \n );\n };\n\n const renderLiveRunShowPage = () => (\n \n );\n\n return (\n
    \n {(runType === 'historic' && isPublic && isQuarantine) && renderQuarantineMessage()}\n \n \n \n
    \n \n \n {shouldShowFilter && (\n
    \n \n {renderFilterOptions()}\n
    \n )}\n {/* filter for runshowPage, this will come from renderProps(runshow) */}\n
    \n {isBacktest\n && (\n <>\n
    \n
    \n
    Fliter by
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n )}\n {isBacktest && renderBacktestShowPage()}\n {!isBacktest && renderLiveRunShowPage()}\n {renderRunConfig()}\n
    \n );\n};\n\nRunShowDetails.propTypes = propTypes;\nRunShowDetails.defaultProps = defaultProps;\n\nexport default RunShowDetails;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n runPropTypes, runjobsProps, instrumentGroupsPropTypes, userPropTypes\n} from 'common/propTypes';\nimport subscribeChannel from 'common/api/subscribeChannel';\nimport { RUN_TYPES } from 'common/constants';\nimport EstimatedTimeCountDown from 'common/components/EstimatedTimeCountDown';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { RUN_STATUS_CODES } from 'common/configs/runStatus';\nimport { removeExchangeFromInstrument } from 'common/utils/InstrumentUtils';\nimport OrderStore from './OrderStore/index';\nimport RunShowDetails from './components/RunShowDetails';\n\nconst propTypes = {\n run: runPropTypes.isRequired,\n runJobs: runjobsProps.isRequired,\n currentUserDefaultFolderId: PropTypes.number,\n instrumentGroups: instrumentGroupsPropTypes,\n strategyDetails: PropTypes.shape({}),\n currentUser: userPropTypes\n};\nconst defaultProps = {\n currentUserDefaultFolderId: null,\n instrumentGroups: [],\n strategyDetails: {},\n currentUser: ''\n};\n\nconst getShowByOptions = (instrumentGroups) => { // options for multiple instruments\n const initialObj = { displayName: 'All', value: 'all' };\n const showArray = _.map(instrumentGroups, (value, key) => {\n const sanitizeInstrumentGroup = _.map(instrumentGroups[key],\n (instrument) => removeExchangeFromInstrument(instrument));\n\n return ({\n displayName: _.join(sanitizeInstrumentGroup, '-') || 'All',\n value: `${key}`\n });\n });\n\n return [...showArray, initialObj];\n};\n\nconst RunShow = (props) => {\n const {\n run, runJobs, currentUserDefaultFolderId,\n instrumentGroups, strategyDetails, currentUser,\n run: {\n id, run_type: runType, status, order_type: orderType\n }\n } = props;\n const { ERRORED, COMPLETED } = RUN_STATUS_CODES;\n const { historic } = RUN_TYPES;\n\n const [showByOptions] = useState(getShowByOptions(instrumentGroups));\n const [showBy, setShowBy] = useState('all');\n const reloadUrl = `/runs/${id}`;\n\n const [shouldRenderLoadingSpinner, setShouldRenderLoadingSpinner] = useState(\n (runType === historic) && !_.includes([ERRORED, COMPLETED], status)\n );\n const jobIds = _.map(runJobs, 'id').sort();\n const shouldShowFilter = runType === historic;\n // showByOptions.length > 2;\n\n const runShowDetailsProps = { // props for runshowDetailsPage\n ...props,\n shouldRenderLoadingSpinner,\n jobIds,\n instrumentGroups,\n shouldShowFilter,\n currentUserDefaultFolderId,\n strategyDetails,\n currentUser\n };\n\n const onStatusChange = ({ status: newStatus }) => {\n if (newStatus === COMPLETED || newStatus === ERRORED) {\n window.location.reload();\n }\n };\n\n const initializeStatusUpdateListner = () => {\n subscribeChannel({\n roomId: `${id}-progress`,\n channelName: 'Run Show',\n onDataReceive: onStatusChange\n });\n };\n\n useEffect(() => {\n if (shouldRenderLoadingSpinner) initializeStatusUpdateListner();\n }, []);\n\n if (shouldRenderLoadingSpinner) { // wait for run to status update ? untill it showing loading timing\n return (\n setShouldRenderLoadingSpinner(false)}\n />\n );\n }\n\n const renderFilterOptions = () => {\n const options = _.map(showByOptions, ({ displayName, value }) => (\n \n {displayName}\n \n ));\n\n return (\n setShowBy(value)}\n >\n {options}\n \n );\n };\n\n return (\n \n renderFilterOptions()} />\n \n );\n};\n\nRunShow.propTypes = propTypes;\nRunShow.defaultProps = defaultProps;\n\nexport default RunShow;\n","import wrappedFetch from './base';\n\nexport const validateBroker = (broker) => {\n return wrappedFetch(`/${broker}/validate`)\n .then((response) => response.json());\n};\n\nexport const getSetting = () => {\n return wrappedFetch('/user/setting.json')\n .then((response) => response.json());\n};\n\nexport const updateSetting = (updatedSetting) => {\n const config = {\n method: 'PUT',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ setting: updatedSetting }),\n };\n\n return wrappedFetch('/user/setting.json', config);\n};\n\nexport const getWebPushSubscriptions = () => {\n return wrappedFetch('/web_push_subscribers.json')\n .then((response) => response.json());\n};\n\nexport const destroyWebPushSubscription = (webPushSubscriberId) => {\n const config = {\n method: 'DELETE',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n };\n\n return wrappedFetch(`/web_push_subscribers/${webPushSubscriberId}.json`, config);\n};\n","import wrappedFetch from './base';\n\nexport const getWebPushSubscriptions = () => {\n return wrappedFetch('/web_push_subscribers.json')\n .then((response) => response.json());\n};\n\nexport const deleteWebPushSubscription = (webPushSubscriberId) => {\n const config = {\n method: 'DELETE',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n };\n\n return wrappedFetch(`/web_push_subscribers/${webPushSubscriberId}.json`, config);\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport React, { Component } from 'react';\n\nimport {\n getWebPushSubscriptions,\n deleteWebPushSubscription\n} from 'common/api/webPushSubscriptions';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nclass WebPushSubscriptionsList extends Component {\n constructor(props) {\n super(props);\n\n this.state = { subscriptions: [] };\n }\n\n componentDidMount() {\n getWebPushSubscriptions()\n .then((subscriptions) => this.setState({ subscriptions }));\n }\n\n onDeleteSubscription = (subscriptionIdToDelete) => {\n const { subscriptions } = this.state;\n\n deleteWebPushSubscription(subscriptionIdToDelete);\n\n this.setState({\n subscriptions: _.filter(subscriptions, (subscription) => subscription.id !== subscriptionIdToDelete)\n });\n }\n\n renderSubscriptions = () => {\n const { subscriptions } = this.state;\n if (_.isEmpty(subscriptions)) {\n return (\n \n No Subscriptions...\n \n );\n }\n return _.map(subscriptions, this.renderSubscription);\n }\n\n renderSubscription = (subscription) => {\n return (\n \n {_.get(subscription, 'user_agent.browser')}\n {_.get(subscription, 'user_agent.device')}\n {_.get(subscription, 'user_agent.platform')}\n {moment(subscription.created_at).fromNow()}\n \n this.onDeleteSubscription(subscription.id)}\n >\n delete_outline\n \n \n \n );\n }\n\n render() {\n return (\n <>\n

    Browser Notification Subscriptions

    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {this.renderSubscriptions()}\n \n
    BrowserDeviceOSCreated AtActions
    \n
    \n
    \n \n );\n }\n}\n\nWebPushSubscriptionsList.propTypes = propTypes;\nWebPushSubscriptionsList.defaultProps = defaultProps;\nexport default WebPushSubscriptionsList;\n","import _ from 'lodash';\nimport React, { Component } from 'react';\n\nimport {\n getSetting,\n updateSetting,\n} from 'common/api/setting';\nimport WebPushSubscriptionsList from './WebPushSubscriptionsList';\n\nconst NOTIFICATION_TYPES = [\n { labelFn: () => 'Order', value: 'order_placed' },\n { labelFn: () => 'Backtest Run Failed', value: 'historic_run_failed' },\n { labelFn: () => 'Live Run Failed', value: 'live_run_failed' },\n { labelFn: () => 'Login Reminder', value: 'login_reminder' }\n];\n\nconst propTypes = {};\nconst defaultProps = {};\n\n\nclass NotificationSettings extends Component {\n constructor(props) {\n super(props);\n\n this.state = { setting: [] };\n }\n\n componentDidMount() {\n getSetting()\n .then((setting) => this.setState({ setting }));\n }\n\n onSettingToggle = (settingKey) => {\n const { setting } = this.state;\n\n updateSetting({ [settingKey]: !setting[settingKey] });\n\n this.setState({\n setting: {\n ...setting,\n [settingKey]: !setting[settingKey]\n }\n });\n }\n\n renderSettingCheckbox = (settingKey) => {\n const { setting } = this.state;\n\n const isSettingsKeyNotAllowed = _.includes(\n ['login_reminder_application_notification', 'login_reminder_browser_notification'],\n settingKey\n );\n\n if (isSettingsKeyNotAllowed) return null;\n\n return (\n
    \n\n this.onSettingToggle(settingKey)}\n />\n\n
    \n );\n }\n\n renderNotificationTypeSetting = (notificationType, isBrokerUser) => {\n if (!isBrokerUser && notificationType.value === 'login_reminder') return null;\n return (\n \n {notificationType.labelFn()}\n {this.renderSettingCheckbox(`${notificationType.value}_application_notification`)}\n {this.renderSettingCheckbox(`${notificationType.value}_browser_notification`)}\n {this.renderSettingCheckbox(`${notificationType.value}_call_notification`)}\n \n );\n }\n\n render() {\n const { currentUserBroker } = window;\n const isBrokerUser = !_.isEmpty(currentUserBroker);\n return (\n <>\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n {NOTIFICATION_TYPES.map((type) => this.renderNotificationTypeSetting(type, isBrokerUser))}\n \n
    Type\n Application Notification\n \n Browser Notification\n \n Call Notification\n
    \n
    \n
    \n \n \n );\n }\n}\n\nNotificationSettings.propTypes = propTypes;\nNotificationSettings.defaultProps = defaultProps;\nexport default NotificationSettings;\n","import wrappedFetch from './base';\n\nconst fetchUserSubscriptions = () => {\n return wrappedFetch('/subscriptions.json')\n .then((response) => response.json());\n};\n\nexport const cancelSubscription = (subscriptionId) => {\n const config = { method: 'PUT' };\n return wrappedFetch(`/subscriptions/${subscriptionId}/cancel_subscription.json`, config);\n};\n\nexport default fetchUserSubscriptions;\n","import _ from 'lodash';\nimport moment from 'moment';\n\nexport const renderDateInPrettyFormat = (dateStr) => {\n const dateMmt = moment(dateStr);\n if (!dateMmt.isValid() || _.isEmpty(dateStr)) return 'N/A';\n\n return dateMmt.format('dddd, MMMM Do YYYY');\n};\n\nexport const getActualPlanEnddate = (dateStr) => {\n return moment(dateStr);\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { getSetting, updateSetting } from 'common/api/setting';\n\nconst THEMES = [\n {\n labelFn: () => {\n return (\n
    \n \"light\n Light\n
    \n );\n },\n value: 'light'\n },\n {\n labelFn: () => {\n return (\n
    \n \"dark\n Dark\n
    \n );\n },\n value: 'dark'\n },\n];\nconst THEME_SETTING_KEY = 'default_theme';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nclass ThemeSettings extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { setting: {} };\n }\n\n componentDidMount() {\n getSetting()\n .then((setting) => this.setState({ setting }));\n }\n\n onSelectTheme = (theme) => {\n const { setting } = this.state;\n const updatedSetting = { ...setting, [THEME_SETTING_KEY]: theme.value };\n\n this.setState({ setting: updatedSetting });\n updateSetting({ [THEME_SETTING_KEY]: theme.value })\n .then(() => window.location.reload());\n }\n\n renderThemeSelector = (theme) => {\n const { setting } = this.state;\n const { [THEME_SETTING_KEY]: defaultTheme } = setting;\n\n const selectorClassNames = classNames(\n 'btn',\n (defaultTheme === theme.value) ? 'btn-primary' : 'btn-light'\n );\n\n return (\n this.onSelectTheme(theme)}\n >\n {theme.labelFn()}\n
    \n );\n }\n\n render() {\n return (\n <>\n
    \n {THEMES.map(this.renderThemeSelector)}\n
    \n \n );\n }\n}\n\nThemeSettings.propTypes = propTypes;\nThemeSettings.defaultProps = defaultProps;\nexport default ThemeSettings;\n","import axios from 'axios';\n\nconst sendOtp = (phoneNumber) => {\n return axios({\n method: 'post',\n url: '/send_otp',\n data: JSON.stringify({ phone_number: phoneNumber }),\n headers: { 'Content-Type': 'application/json' }\n });\n};\n\nexport default sendOtp;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst propTypes = {\n phoneNumber: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n onPhoneNumberSubmit: PropTypes.func.isRequired,\n onPhoneNumberChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst phoneNumberValidator = {\n required: 'please enter phone number',\n pattern: {\n value: /^\\d{10}$/,\n message: 'enter a 10 digit phone number without country code ex: 9868547851'\n }\n};\n\nconst PhoneNumberForm = (props) => {\n const { phoneNumber, onPhoneNumberSubmit, onPhoneNumberChange } = props;\n const { register, errors, handleSubmit } = useForm();\n\n return (\n
    \n
    \n \"smartphone\"\n

    Enter Your Phone Number

    \n
    we will send you the 6 digit verification code
    \n
    \n
    \n
    \n
    \n \n phone_android\n \n onPhoneNumberChange(event.target.value)}\n ref={register(phoneNumberValidator)}\n placeholder=\"e.g.9999999999\"\n />\n
    \n \n
    \n \n Generate otp\n \n \n
    \n );\n};\n\nPhoneNumberForm.defaultProps = defaultProps;\nPhoneNumberForm.propTypes = propTypes;\n\nexport default PhoneNumberForm;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n phoneNumber: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n onEditPhoneNumber: PropTypes.func.isRequired,\n onResendOtp: PropTypes.func.isRequired,\n routePath: PropTypes.string.isRequired\n};\nconst defaultProps = {};\nconst OTP_LENGTH = 6;\nconst RESEND_LABELS = {\n resend: 'resend',\n sending: 'sending',\n};\n\nconst OtpForm = (props) => {\n const {\n phoneNumber, onResendOtp, onEditPhoneNumber, routePath\n } = props;\n const [otp, setOtp] = useState('');\n const [resendLabel, setResendLabel] = useState(RESEND_LABELS.resend);\n const [isResendingOtp, setIsResendingOtp] = useState(false);\n\n const onOtpChange = (event) => {\n const { target: { value } } = event;\n if (value.length > OTP_LENGTH) return;\n\n setOtp(value);\n };\n\n const onClickResendOtp = () => {\n setIsResendingOtp(true);\n setResendLabel(RESEND_LABELS.sending);\n\n setTimeout(() => {\n setIsResendingOtp(false);\n setResendLabel(RESEND_LABELS.resend);\n }, 2000);\n\n onResendOtp();\n };\n\n return (\n
    \n
    \n \"smartphone\"\n

    OTP Verification

    \n
    \n Enter the OTP sent to\n {phoneNumber}\n \n
    \n
    \n
    \n \n \n \n\n
    \n
    \n Didn‘t receive OTP?\n \n {_.startCase(resendLabel)}\n \n
    \n {isResendingOtp &&
    }\n
    \n\n \n Verify & Continue\n \n \n
    \n );\n};\n\nOtpForm.defaultProps = defaultProps;\nOtpForm.propTypes = propTypes;\n\nexport default OtpForm;\n","import React, { useState } from 'react';\nimport Modal from 'common/components/ModalComponent';\nimport PropTypes from 'prop-types';\n\nimport sendOtp from 'common/api/otp';\nimport { signOut } from 'common/api/user';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport PhoneNumberForm from './PhoneNumberForm';\nimport OtpForm from './OtpForm';\n\nconst propTypes = {\n isSessionActive: PropTypes.bool.isRequired,\n onCloseModalPresent: PropTypes.bool,\n onCloseModal: PropTypes.func,\n routePath: PropTypes.string.isRequired\n};\nconst defaultProps = {\n onCloseModalPresent: false,\n onCloseModal: () => { }\n};\n\nconst PhoneNumberVerification = ({\n isSessionActive, onCloseModalPresent, onCloseModal, routePath\n}) => {\n const [phoneNumber, setPhoneNumber] = useState('');\n const [isSendingOtp, setIsSendingOtp] = useState(isSessionActive);\n\n const onPhoneNumberSubmit = () => {\n sendOtp(phoneNumber)\n .then((res) => {\n if (!res.data.status) { reactToastify(res.data.message, TOASTIFY_TYPES.ERROR); } else {\n setIsSendingOtp(true);\n reactToastify(res.data.message, TOASTIFY_TYPES.SUCCESS);\n }\n });\n };\n\n const onResendOtp = () => {\n if (!phoneNumber) {\n setIsSendingOtp(false);\n return;\n }\n onPhoneNumberSubmit();\n };\n\n return (\n \n {!isSendingOtp\n ? (\n \n )\n : (\n setIsSendingOtp(false)}\n routePath={routePath}\n />\n )}\n \n );\n};\n\nPhoneNumberVerification.propTypes = propTypes;\nPhoneNumberVerification.defaultProps = defaultProps;\n\nexport default PhoneNumberVerification;\n","import React, { useState } from 'react';\nimport { userPropTypes } from 'common/propTypes';\nimport PhoneNumberVerification from 'ui/PhoneNumberVerification/index';\n\nconst propTypes = {\n currentUserDetails: userPropTypes.isRequired\n};\n\nconst defaultProps = {};\n\nconst MobileNumberDetails = ({ currentUserDetails }) => {\n const { phone_number: phoneNumber } = currentUserDetails;\n const [isUpdateMobileNumber, setIsUpdateMobileNumber] = useState(false);\n\n return (\n
    \n \n
    \n \n
    \n { setIsUpdateMobileNumber(true); }}\n type=\"button\"\n >\n Verify with otp\n \n
    \n
    \n\n {/* hided for future upload image\n
    \n
    \n \"\"\n
    \n
    \n

    \n Recommended Dimensions:\n
    \n 120x120 Max fil size: 5MB\n

    \n
    \n
    \n \n
    \n
    \n
    for future photo upload... */}\n\n {isUpdateMobileNumber && (\n {\n setIsUpdateMobileNumber(false);\n }}\n routePath=\"settings_path\"\n />\n )}\n
    \n );\n};\n\nMobileNumberDetails.propTypes = propTypes;\nMobileNumberDetails.defaultProps = defaultProps;\n\nexport default MobileNumberDetails;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { checkIsValidBrokerAccessToken, signOut } from 'common/api/user';\nimport Modal from 'common/components/ModalComponent';\nimport { userPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n accessTokenCallBack: PropTypes.func,\n currentUser: userPropTypes,\n isValidAccessToken: PropTypes.bool\n};\n\nconst defaultProps = {\n accessTokenCallBack: () => { },\n currentUser: null,\n isValidAccessToken: true\n};\n\nconst VALIDITY_CALL_RANGE = 60;\n\nconst AccessTokenInValidMessage = ({\n accessTokenCallBack, currentUser, isValidAccessToken: propsIsValidToken\n}) => {\n const { isUserSignedIn, currentUserBroker } = window;\n if (!isUserSignedIn || !currentUserBroker || !currentUser) return null;\n const oneIndentation = ' ';\n\n const [isValidAccessToken, setIsValidAccessToken] = useState(propsIsValidToken);\n\n useEffect(() => {\n setIsValidAccessToken(propsIsValidToken);\n }, [propsIsValidToken]);\n\n const brokerAccessTokenCall = () => {\n checkIsValidBrokerAccessToken().then(({ status }) => {\n setIsValidAccessToken(status);\n });\n };\n\n useEffect(() => {\n const { broker_access_token_checked_at: brokerAccessTokenCheckedAt } = currentUser;\n if (brokerAccessTokenCheckedAt) {\n const updatedTime = new Date();\n updatedTime.setTime(new Date(brokerAccessTokenCheckedAt).getTime() + (VALIDITY_CALL_RANGE * 60 * 1000));\n if (new Date() > updatedTime) {\n brokerAccessTokenCall();\n }\n } else {\n brokerAccessTokenCall();\n }\n }, [currentUser]);\n\n if (isValidAccessToken) return null;\n\n return (\n {\n setIsValidAccessToken(true);\n accessTokenCallBack();\n }}\n >\n
    \n

    \n Your broker access token is expired\n

    \n \"user-alert\"\n

    \n When you log in into QuantMan using your broker, we will get an access token\n to place or modify orders for you.\n {oneIndentation}\n That access token has expired.\n {oneIndentation}\n We will not be able to place or modify orders. Please login again\n using your broker to get order execution working properly.\n

    \n signOut()}\n className=\"btn btn-outline-primary btn-pill my-3\"\n >\n logout\n Logout\n \n
    \n \n );\n};\n\nAccessTokenInValidMessage.propTypes = propTypes;\nAccessTokenInValidMessage.defaultProps = defaultProps;\n\nexport default AccessTokenInValidMessage;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { userPropTypes } from 'common/propTypes';\nimport moment from 'moment';\nimport { checkIsValidBrokerAccessToken, updateUser } from 'common/api/user';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport MobileNumberDetails from './MobileNumberDetails';\nimport AccessTokenInValidMessage from '../AccessTokenInValidMessage';\n\nconst propTypes = {\n currentUser: userPropTypes.isRequired\n};\n\nconst defaultProps = {};\n\nconst UserDetails = ({ currentUser }) => {\n const [currentUserDetails, setCurrentUserDetails] = useState(currentUser);\n const [isLoading, setIsLoading] = useState(false);\n const [isValidAccessToken, setIsValidAccessToken] = useState(true);\n\n const { publishInMarketPlace } = window.userPermissions;\n const isEnabled = _.get(publishInMarketPlace, 'isEnabled', false);\n\n const {\n email, id, folders_count: foldersCount, runs_count: runsCount, created_at: createdAt, admin,\n gst_number: gstNumber, name, broker, broker_client_id: brokerClientId,\n broker_client_name: brokerClientName, broker_client_email: brokerClientEmail,\n broker_user_id: brokerUserId, facebook_link: facebookLink, twitter_link: twitterLink,\n instagram_link: instagramLink, telegram_link: telegramLink, account_name: accountName,\n account_number: accountNumber, ifsc_code: ifscCode, youtube_link: youtubeLink,\n broker_access_token_checked_at: brokerAccessTokenUpdatedAt\n } = currentUserDetails;\n\n const getUpdateDetails = [\n { key: 'name', value: name, label: 'Name' },\n { key: 'email', value: email, label: 'Email' },\n { key: 'gst_number', value: gstNumber, label: 'GST Number' }\n ];\n\n const userInfoDetails = [\n { label: 'User id', value: id },\n { label: 'Total folders', value: foldersCount },\n { label: 'Runs Count', value: runsCount },\n { label: 'Created at', value: moment(createdAt).fromNow() },\n { label: 'Admin', value: admin ? 'Yes' : 'No' },\n { label: 'Broker', value: availableBrokers[broker] || broker },\n { label: 'Broker User id', value: brokerUserId },\n { label: 'Broker Client Id', value: brokerClientId },\n { label: 'Broker Client Name', value: brokerClientName },\n { label: 'Broker Client Email', value: brokerClientEmail },\n {\n label: 'Token last checked',\n value: brokerAccessTokenUpdatedAt ? moment(brokerAccessTokenUpdatedAt).fromNow() : ''\n },\n { label: 'Broker Access Token', value: '' }\n ];\n\n const socialLinkDetails = [\n { label: 'Facebook', value: facebookLink, key: 'facebook_link' },\n { label: 'Twitter', value: twitterLink, key: 'twitter_link' },\n { label: 'Instagram', value: instagramLink, key: 'instagram_link' },\n { label: 'Telegram', value: telegramLink, key: 'telegram_link' },\n { label: 'Youtube', value: youtubeLink, key: 'youtube_link' }\n ];\n\n const accountInfoDetails = [\n { label: 'Account Name', value: accountName, key: 'account_name' },\n { label: 'Account Number', value: accountNumber, key: 'account_number' },\n { label: 'IFSC Code', value: ifscCode, key: 'ifsc_code' }\n ];\n\n const updateUserDetails = () => {\n setIsLoading(true);\n let updateDetails = { gst_number: gstNumber, name };\n\n if (isEnabled) { // for strategy creator only\n updateDetails = {\n ...updateDetails,\n facebook_link: facebookLink,\n twitter_link: twitterLink,\n instagram_link: instagramLink,\n telegram_link: telegramLink,\n youtube_link: youtubeLink,\n account_name: accountName,\n account_number: accountNumber,\n ifsc_code: ifscCode\n };\n }\n\n updateUser({ ...updateDetails }).then(() => {\n setIsLoading(false);\n reactToastify('Details Updated Successfully');\n if (isEnabled) window.location.reload(); // because of disbled the account the details\n });\n };\n\n const renderAccessTokenButton = (label, idx) => {\n return (\n
    \n
    {label}
    \n
    \n {\n checkIsValidBrokerAccessToken().then(({\n status, broker_access_token_checked_at: checkedAt\n }) => {\n setCurrentUserDetails({ ...currentUserDetails, broker_access_token_checked_at: checkedAt });\n if (status) reactToastify('Valid Access Token', TOASTIFY_TYPES.SUCCESS);\n setIsValidAccessToken(status);\n });\n }}\n >\n Validate\n \n
    \n
    \n );\n };\n\n const renderUserInfoDetails = (info, idx) => {\n const { label, value } = info;\n\n if (label === 'Admin' && !admin) return null;\n if (label === 'Broker Access Token') {\n if (!broker) return null;\n return renderAccessTokenButton(label, idx);\n }\n if (!value) return null;\n\n return (\n
    \n
    {label}
    \n
    {value}
    \n
    \n );\n };\n\n const isDisabled = (detail) => {\n const { key } = detail;\n if (key === 'email') return true;\n if ((key === 'account_name') || (key === 'account_number') || (key === 'ifsc_code')) {\n return !!currentUser[detail.key];\n }\n\n return false;\n };\n\n const renderInputForm = (detail, key) => {\n return (\n
    \n \n
    \n setCurrentUserDetails({\n ...currentUserDetails,\n [detail.key]: event.target.value\n })}\n />\n
    \n
    \n );\n };\n\n const buttonName = isLoading ? (\n ) : ' Update ';\n\n return (\n <>\n
    \n
    \n
    Basic Infomation
    \n
    \n
    \n
    \n
    \n {_.map(getUpdateDetails, renderInputForm)}\n \n
    \n
    \n {isEnabled && (\n <>\n
    Social Links
    \n
    \n
    \n {_.map(socialLinkDetails, renderInputForm)}\n
    \n
    \n
    Bank Account Details
    \n\n
    \n
    \n {_.map(accountInfoDetails, renderInputForm)}\n
    \n
    \n \n )}\n
    \n
    \n updateUserDetails()}\n >\n {buttonName}\n \n
    \n
    \n\n
    \n
    \n
    Account Information
    \n
    \n
    \n
    \n {_.map(userInfoDetails, renderUserInfoDetails)}\n
    \n
    \n
    \n setIsValidAccessToken(true)}\n />\n \n );\n};\n\nUserDetails.propTypes = propTypes;\nUserDetails.defaultProps = defaultProps;\n\nexport default UserDetails;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { userPropTypes, planPropTypes } from 'common/propTypes';\nimport { cancelSubscription } from 'common/api/subscriptions';\n// import { updateUser } from 'common/api/userUpdate';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { renderDateInPrettyFormat, getActualPlanEnddate } from 'common/utils/dateUtils';\nimport ThemeSettings from './ThemeSettings';\nimport UserDetails from './UserDetails/index';\n\nconst propTypes = {\n activeSubscriptionId: PropTypes.number,\n currentUser: userPropTypes.isRequired,\n plan: planPropTypes\n};\nconst defaultProps = {\n plan: null,\n activeSubscriptionId: null\n};\n\nclass MyProfile extends React.Component {\n cancelActiveSubscription = () => {\n const { activeSubscriptionId } = this.props;\n cancelSubscription(activeSubscriptionId)\n .then(() => window.location.reload())\n .catch(() => {\n reactToastify('No active subscriptions or something went wrong', TOASTIFY_TYPES.ERROR);\n });\n }\n\n renderCancelSubscriptionBtn() {\n const { activeSubscriptionId } = this.props;\n if (!activeSubscriptionId) {\n return null;\n }\n\n return (\n \n Cancel Recurring Payment Subscription\n
    \n );\n }\n\n renderPlanDetails = (detail, idx) => {\n const { label, value } = detail;\n return (\n
    \n
    {label}
    \n
    {value}
    \n
    \n );\n };\n\n render() {\n const {\n activeSubscriptionId, currentUser, plan\n } = this.props;\n\n const planDetails = [\n { label: 'Plan', value: _.get(plan, 'plan_name', 'N/A') },\n {\n label: 'Active Till',\n value: renderDateInPrettyFormat(\n getActualPlanEnddate(currentUser.plan_active_till)\n )\n },\n {\n label: 'Recurring Payment',\n value: (\n <>\n {activeSubscriptionId > 0 ? 'Yes' : 'No'}\n {this.renderCancelSubscriptionBtn()}\n )\n },\n {\n label: 'Plan Backtest Credits',\n value: `Used: ${currentUser.quota_consumed_historic_runs} \n | Max: ${currentUser.quota_max_historic_runs}`\n },\n {\n label: 'Plan Live Deployments',\n value: `Used: ${currentUser.quota_consumed_live_runs} \n | Max: ${currentUser.quota_max_live_runs}`\n },\n {\n label: 'Addon Backtest Credits',\n value: `Used: ${currentUser.addon_consumed_historic_runs} \n | Max: ${currentUser.addon_max_historic_runs}`\n },\n {\n label: 'Quota',\n value: (\n <>\n
    \n {renderDateInPrettyFormat(currentUser.quota_cycle_start_date)}\n
    \n
     to 
    \n
    \n {renderDateInPrettyFormat(\n getActualPlanEnddate(currentUser.quota_cycle_end_date)\n )}\n
    \n \n )\n }\n ];\n\n return (\n <>\n \n
    \n
    \n
    Plan/Quota/Addon
    \n
    \n
    \n
    \n {_.map(planDetails, this.renderPlanDetails)}\n
    \n
    \n
    \n

    Theme Settings

    \n \n \n );\n }\n}\n\nMyProfile.propTypes = propTypes;\nMyProfile.defaultProps = defaultProps;\nexport default MyProfile;\n","import { cyclicPlansPeriods } from 'ui/Plans/config';\n\nexport const planCycleLabel = (planCycle) => {\n const { monthly: { period: monthlyPeriod }, quarterly: { period: quarterPeriod } } = cyclicPlansPeriods;\n\n switch (planCycle) {\n case monthlyPeriod: return 'Month';\n case quarterPeriod: return 'Quarter';\n default: return 'Annual';\n }\n};\n","import { reactToastify } from 'common/utils/reactToastify';\n\nexport const generatePaymentInvoice = (purchase) => {\n const element = document.getElementById(`purchase-${purchase.id}`);\n const filename = `quantman-${purchase.id}.pdf`;\n const opt = {\n margin: 0.2,\n filename,\n image: { type: 'jpeg', quality: 1.98 },\n html2canvas: { scale: 2 },\n jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }\n };\n\n // New Promise-based usage:\n html2pdf().set(opt).from(element).save();\n reactToastify(`${filename} downloaded`);\n\n // Old monolithic-style usage: html2pdf(element, opt);\n};\n\nexport const number2words = (num) => {\n const ones = ['', 'one ', 'two ', 'three ', 'four ', 'five ', 'six ', 'seven ', 'eight ', 'nine ', 'ten ',\n 'eleven ', 'twelve ', 'thirteen ', 'fourteen ', 'fifteen ', 'sixteen ', 'seventeen ',\n 'eighteen ', 'nineteen '];\n const tens = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];\n\n if ((num.toString()).length > 9) return 'overflow';\n const n = (`000000000${num}`).substr(-9).match(/^(\\d{2})(\\d{2})(\\d{2})(\\d{1})(\\d{2})$/);\n if (!n) return null; let str = '';\n str += (n[1] !== '00' && n[1] !== '0')\n ? `${ones[Number(n[1])] || `${tens[n[1][0]]} ${ones[n[1][1]]}`}crore ` : '';\n str += (n[2] !== '00' && n[2] !== '0')\n ? `${ones[Number(n[2])] || `${tens[n[2][0]]} ${ones[n[2][1]]}`}lakh ` : '';\n str += (n[3] !== '00' && n[3] !== '0')\n ? `${ones[Number(n[3])] || `${tens[n[3][0]]} ${ones[n[3][1]]}`}thousand ` : '';\n str += (n[4] !== '00' && n[4] !== '0')\n ? `${ones[Number(n[4])] || `${tens[n[4][0]]} ${ones[n[4][1]]}`}hundred ` : '';\n str += (n[5] !== '00' && n[5] !== '0') ? `${((str !== '') ? 'and ' : '')\n + (ones[Number(n[5])] || `${tens[n[5][0]]} ${ones[n[5][1]]}`)}only ` : '';\n\n return str;\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { purchasePropTypes } from 'common/propTypes';\nimport { planCycleLabel } from 'modules/UpgradePlan/helper';\nimport { getConvertedTime } from 'common/utils/transactions';\nimport Money from 'common/components/MoneyDisplay';\nimport { number2words } from './paymentInvoice';\n\nconst propTypes = {\n purchase: purchasePropTypes.isRequired,\n gstPercentage: PropTypes.number.isRequired,\n quantManGstNumber: PropTypes.string\n};\nconst defaultProps = {\n quantManGstNumber: null\n};\nconst oneIndentation = ' ';\n\nconst renderPurchaseItem = (purchaseItem) => {\n const purchasable = _.get(purchaseItem, 'purchasable', {});\n let name;\n switch (purchaseItem.purchasable_type) {\n case 'Plan':\n name = (\n `${purchasable.plan_name}-`\n + `${planCycleLabel(purchasable.cycle_duration_in_months)}`\n );\n break;\n case 'Addon':\n name = purchasable.addon_name;\n break;\n default:\n name = `Strategy-${purchasable.strategy_id}`;\n break;\n }\n\n const discount = (\n purchaseItem.discount_percentage\n ? ((parseFloat(purchaseItem.price) / 100) * parseFloat(purchaseItem.discount_percentage))\n : 0\n );\n return (\n \n \n {purchaseItem.purchasable_type}\n \n {name}\n \n {purchaseItem.price}\n \n \n {discount}\n \n \n {parseFloat(purchaseItem.price) - discount}\n \n \n );\n};\n\nconst InvoiceContent = ({ purchase, gstPercentage, quantManGstNumber }) => {\n const termsAndConditonsHeading = 'Terms & Conditions';\n const creditsUsed = _.get(purchase, 'credit_transaction.amount', 0);\n\n return (\n
    \n
    \n
    \n
    \n
    \n \"Quantman\"\n
    \n
    \n

    Invoice

    \n {purchase.id}\n
    \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n Invoiced To:\n
    \n {purchase.user_name && (\n <>\n {_.capitalize(purchase.user_name)}\n
    \n \n )}\n GSTIN:\n {oneIndentation}\n {purchase.user_gst_number || '-'}\n
    \n
    \n
    \n Invoice From\n
    \n Simply Algo Fintech Private Limited\n
    \n GSTIN:\n {oneIndentation}\n {quantManGstNumber}\n
    \n
    \n Invoice Date\n
    \n {getConvertedTime(purchase.created_at).format('DD MMM YYYY, HH:mm:ss')}\n
    \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n {_.map(purchase.purchase_items, renderPurchaseItem)}\n \n \n {(creditsUsed !== 0)\n && (\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n\n \n \n \n \n
    TypeDetailsActual PriceDiscountDiscounted Price
    \n Credits Used:\n \n {Math.trunc(parseFloat(creditsUsed))}\n
    \n Tax (GST\n {gstPercentage}\n %):\n \n {Math.trunc(parseFloat(purchase.price_gst))}\n
    \n Grand Total (Incl.Tax):\n \n \n {Math.trunc(parseFloat(purchase.price_total))}\n \n
    \n Total Amount in Words :\n {oneIndentation}\n \n {_.capitalize(number2words(Math.trunc(parseFloat(purchase.price_total))))}\n \n
    \n
    \n\n
    \n
    {termsAndConditonsHeading}
    \n
      \n
    1. All plans are non-refundable
    2. \n
    3. \n Cancellation does not lead to a refund.\n It only ensures that you will not be charged a renewal fee in future\n
    4. \n
    5. \n Your access remains active till the end of the\n current billing period even if you cancel membership midway\n
    6. \n
    \n
    \n\n

    \n NOTE :\n {oneIndentation}\n This is computer generated receipt and does not require physical signature.\n

    \n
    \n\n
    \n
    \n 9/28 Ramalakshmi nagar, Lakshmipuram, Peelamedu, Coimbatore-641004\n
    \n Email:\n {oneIndentation}\n support@quantman.in\n
    \n
    \n
    \n
    \n );\n};\n\nInvoiceContent.propTypes = propTypes;\nInvoiceContent.defaultProps = defaultProps;\n\nexport default InvoiceContent;\n","import React, { useState } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\n\nimport Money from 'common/components/MoneyDisplay';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { getPurchases } from 'common/api/payment';\nimport { planCycleLabel } from 'modules/UpgradePlan/helper';\n\nimport Pagination from 'common/components/Pagination';\nimport InvoiceContent from './InvoiceContent';\nimport { generatePaymentInvoice } from './InvoiceContent/paymentInvoice';\n\nconst propTypes = {\n gstPercentage: PropTypes.number.isRequired,\n quantManGstNumber: PropTypes.string\n};\n\nconst defaultProps = {\n quantManGstNumber: null\n};\n\nconst MAX_RECORDS_IN_PAGE = 10;\n\nconst oneIndentation = ' ';\nconst renderDatetime = (datetimeStr) => {\n if (!datetimeStr) { return '-'; }\n return moment(datetimeStr).format('YYYY-MM-DD');\n};\n\nconst PurchaseSettings = ({ gstPercentage, quantManGstNumber }) => {\n const [isLoading, setIsLoading] = useState(null);\n const [purchases, setPurchases] = useState([]);\n const [showablePurchases, setShowablePurchases] = useState([]);\n\n if (isLoading === null) {\n getPurchases()\n .then((retrievedPurchases) => {\n setPurchases(retrievedPurchases);\n setShowablePurchases(retrievedPurchases.slice(0, MAX_RECORDS_IN_PAGE));\n })\n .finally(() => setIsLoading(false));\n }\n\n if (_.isEmpty(showablePurchases)) {\n return (\n
    \n \"No\n
    \n );\n }\n\n const renderPurchaseItem = (purchaseItem) => {\n let content = null;\n if (purchaseItem.purchasable_type === 'Plan') {\n const planCycleDurationInMonths = _.get(purchaseItem, 'purchasable.cycle_duration_in_months');\n content = (\n <>\n {_.get(purchaseItem, 'purchasable.plan_name')}\n {oneIndentation}\n {planCycleLabel(planCycleDurationInMonths)}\n \n );\n } else if (purchaseItem.purchasable_type === 'Addon') {\n content = (\n <>\n {_.get(purchaseItem, 'purchasable.addon_name')}\n (Addon)\n \n );\n } else {\n content = `(${purchaseItem.purchasable_type})`;\n }\n return (\n <>\n {content}\n \n
    \n {purchaseItem?.purchasable?.live_run_limit || 0}\n {purchaseItem?.purchasable?.historic_run_limit || 0}\n
    \n \n {purchaseItem.end_date ? renderDatetime(purchaseItem.end_date) : 'NA'}\n \n );\n };\n\n const renderRow = (purchase, purchaseItem) => {\n const rowspan = purchase.purchase_items.length || 1;\n return (\n <>\n {purchase.id}\n {renderPurchaseItem(purchaseItem)}\n {purchase.price_total}\n {purchase.status}\n {renderDatetime(purchase.created_at)}\n \n generatePaymentInvoice(purchase)}\n >\n receipt\n \n \n \n
    \n \n
    \n \n \n );\n };\n\n const renderTableBody = (purchase) => {\n return _.map(purchase.purchase_items, (purchaseItem, index) => {\n const key = `${purchase.id}-${index}`;\n const content = (index === 0)\n ? renderRow(purchase, purchaseItem)\n : renderPurchaseItem(purchaseItem);\n\n return (\n \n {content}\n \n );\n });\n };\n\n const renderTableHeader = () => (\n \n \n Purchase Id\n Items\n \n
    Credits
    \n
    \n Live\n Historic\n
    \n \n Valid Till\n Amount\n Status\n Paid at\n Invoice\n \n \n );\n\n return (\n
    \n
    \n
    \n \n \n {renderTableHeader()}\n \n {_.map(showablePurchases, renderTableBody)}\n \n
    \n
    \n
    \n
    \n
    \n {\n const start = selectedPage * MAX_RECORDS_IN_PAGE;\n const end = start + MAX_RECORDS_IN_PAGE;\n setShowablePurchases(purchases.slice(start, end));\n }}\n currentPageIndex={0}\n />\n
    \n
    \n );\n};\n\nPurchaseSettings.propTypes = propTypes;\nPurchaseSettings.defaultProps = defaultProps;\n\nexport default PurchaseSettings;\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { userPropTypes, planPropTypes } from 'common/propTypes';\nimport { updateUrlQueryParams } from 'common/utils/urlUtils';\nimport NotificationSettings from './Components/NotificationSettings';\nimport MyProfile from './Components/MyProfile';\nimport PurchaseSettings from './Components/PurchaseSettings';\n\nconst SETTING_TYPES = [\n { labelFn: () => 'My Profile', value: 'profile' },\n { labelFn: () => 'Notification Settings', value: 'notification' },\n { labelFn: () => 'Payment Details', value: 'payment' }\n];\n\nconst SETTING_COMPONENTS = {\n profile: MyProfile,\n notification: NotificationSettings,\n payment: PurchaseSettings\n};\n\nconst propTypes = {\n activeSubscriptionId: PropTypes.number,\n currentUser: userPropTypes.isRequired,\n plan: planPropTypes,\n tab: PropTypes.oneOf(_.map(SETTING_TYPES, 'value')),\n gstPercentage: PropTypes.number,\n quantManGstNumber: PropTypes.string,\n};\nconst defaultProps = {\n activeSubscriptionId: null,\n tab: SETTING_TYPES[1].value,\n plan: null,\n gstPercentage: 18,\n quantManGstNumber: ''\n};\n\nclass Settings extends Component {\n constructor(props) {\n super(props);\n const { tab } = props;\n\n const selectedSettingType = _.find(SETTING_TYPES, { value: tab }) || SETTING_TYPES[1];\n this.state = { selectedSettingType };\n }\n\n onChangeUserSettingType = (settingType) => {\n updateUrlQueryParams('tab', settingType.value);\n this.setState({ selectedSettingType: settingType });\n }\n\n renderSettingTypeTabItem = (settingType) => {\n const { selectedSettingType } = this.state;\n const tabItemClassNames = classNames(\n 'custom-toggle-sm',\n 'btn',\n 'btn-primary',\n { active: (settingType.value === selectedSettingType.value) }\n );\n\n return (\n this.onChangeUserSettingType(settingType)}\n >\n {settingType.labelFn()}\n \n );\n }\n\n render() {\n const { selectedSettingType } = this.state;\n const {\n activeSubscriptionId,\n currentUser, plan, gstPercentage, quantManGstNumber\n } = this.props;\n const CurrentSettingComponent = SETTING_COMPONENTS[selectedSettingType.value];\n\n return (\n <>\n
    \n
    \n {_.map(SETTING_TYPES, this.renderSettingTypeTabItem)}\n
    \n
    \n\n \n\n \n );\n }\n}\n\nSettings.propTypes = propTypes;\nSettings.defaultProps = defaultProps;\n\nexport default Settings;\n","import wrappedFetch from './base';\n\nexport const createUsersDemos = (demoId) => {\n const config = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ demo_id: demoId })\n };\n\n return wrappedFetch('/users_demos/create', config)\n .then((response) => response.json());\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Joyride from 'react-joyride';\nimport ReactHtmlParser from 'react-html-parser';\n\nimport { createUsersDemos } from 'common/api/siteTourDemo';\n\nconst propTypes = {\n id: PropTypes.number,\n steps: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.string,\n content: PropTypes.string\n }))\n};\nconst defaultProps = {\n steps: [],\n id: null,\n};\n\nclass SiteTour extends React.Component {\n constructor(props) {\n super(props);\n this.state = { run: false };\n }\n\n componentDidMount() {\n setTimeout(() => {\n this.setState({ run: true });\n }, 500);\n }\n\n handleCallback = (data) => {\n if (data.type === 'tour:end') {\n const { id } = this.props;\n createUsersDemos(id);\n }\n }\n\n render() {\n const { steps } = this.props;\n const { run } = this.state;\n const parsedSteps = _.map(steps, (step) => {\n return {\n ...step,\n content: ReactHtmlParser(step.content)\n };\n });\n\n return (\n
    \n \n
    \n );\n }\n}\n\nSiteTour.propTypes = propTypes;\nSiteTour.defaultProps = defaultProps;\n\nexport default SiteTour;\n","import _ from 'lodash';\nimport {\n useEffect, useRef, useState, useMemo\n} from 'react';\nimport { isStrategyDomainUser } from 'ui/applicationDomainHelper';\nimport fetchAddons from 'common/api/addons';\nimport fetchPlans from 'common/api/plans';\nimport { fetchCoupon, fetchPreApplyCoupon } from 'common/api/coupons';\nimport {\n cyclicFilter, getCouponConfig, getPreFillCouponCode, initCurrentNetPrice\n} from './helper';\n\nconst usePlans = ({ activePlan, activeSubscription }) => {\n const isStrategyDomain = isStrategyDomainUser();\n const defaultPlanType = isStrategyDomain ? 'monthly' : 'yearly';\n // state\n const [planCycleType, setPlanCycleType] = useState(defaultPlanType);\n const [addons, setaddons] = useState();\n const [couponCode, setCouponCode] = useState(getPreFillCouponCode());\n const [isApplied, setIsApplied] = useState(false);\n const [planGroups, setPlanGroups] = useState();\n const [appliedCouponConfig, setAppliedCouponConfig] = useState({});\n const [creditBalance, setCreditBalance] = useState(_.get(window, 'creditBalance', 0));\n const [isCreditApplied, setIsCreditApplied] = useState(true);\n const [message, setMessage] = useState('');\n // Refs\n const isPreFill = useRef(true);\n\n const activePlanId = _.get(activePlan, 'id', '');\n const activePlanName = _.get(activePlan, 'plan_name', '');\n const currentCyclicPeriodPlans = useMemo(() => {\n return _.flatMap(planGroups, (planGroup) => {\n return _.filter(planGroup, (plan) => cyclicFilter(planCycleType, plan));\n });\n }, [planGroups, planCycleType]);\n const currentCyclicPeriodAddons = useMemo(() => {\n return _.chain(addons)\n .filter((addon) => (addon.live_run_limit === 0) || cyclicFilter(planCycleType, addon))\n .sortBy('live_run_limit')\n .reverse()\n .value();\n }, [addons, planCycleType]);\n const plansGroupedByCyclicMonths = _.groupBy(_.flatMap(planGroups), 'cycle_duration_in_months');\n const shouldShowAddons = !isStrategyDomain;\n const isSubscriptionActive = !_.isEmpty(activeSubscription);\n const planPageNotice = _.get(window, 'applicationDomain.config.plan_page_notice', '');\n const isCouponsAllowedOnStrategyDomain = _.get(\n window, 'applicationDomain.config.allow_coupons', false\n );\n const shouldShowCoupon = !isStrategyDomainUser() || isCouponsAllowedOnStrategyDomain;\n\n useEffect(() => {\n fetchPlans()\n .then((results) => {\n setPlanGroups(_.groupBy(initCurrentNetPrice(results), 'plan_name'));\n }); // Plans\n\n fetchAddons().then((results) => { setaddons(initCurrentNetPrice(results)); }); // Addons\n\n (!couponCode ? fetchPreApplyCoupon() : fetchCoupon({ code: couponCode }))\n .then((result) => {\n const { status, coupon } = result;\n if (couponCode) setMessage('Invalid coupon');\n if (status) {\n setMessage(`${coupon.discount_percentage}% discount applied`);\n setAppliedCouponConfig(coupon);\n }\n });\n }, []);\n\n const onUpdateCouponPricesInPayments = (config) => {\n const {\n alteredCouponCode, alteredIsApplied, alteredAddons, alteredPlanGroups\n } = getCouponConfig(config, addons, planGroups);\n setCouponCode(alteredCouponCode);\n setIsApplied(alteredIsApplied);\n setaddons(alteredAddons);\n setAppliedCouponConfig(config);\n setPlanGroups(alteredPlanGroups);\n };\n\n useEffect(() => {\n const isPreFillEnable = addons && planGroups && isPreFill.current && _.keys(appliedCouponConfig).length;\n // for preFill\n if (isPreFillEnable) {\n isPreFill.current = false;\n onUpdateCouponPricesInPayments(appliedCouponConfig);\n }\n }, [appliedCouponConfig, addons, planGroups]);\n\n const onCouponUpdate = () => {\n if (!isApplied) {\n fetchCoupon({ code: couponCode, preapplied: false })\n .then((result) => {\n const { status, coupon } = result;\n if (status) {\n setMessage(`${coupon.discount_percentage}% discount applied`);\n setAppliedCouponConfig(coupon);\n return onUpdateCouponPricesInPayments(coupon);\n }\n return setMessage('Invalid Coupon');\n });\n }\n\n setMessage('');\n onUpdateCouponPricesInPayments({});\n return null;\n };\n\n return {\n planCycleType,\n setPlanCycleType,\n planGroups,\n activePlanId,\n activePlanName,\n addons,\n currentCyclicPeriodAddons,\n couponCode,\n setCouponCode,\n isApplied,\n appliedCouponConfig,\n creditBalance,\n setCreditBalance,\n isCreditApplied,\n setIsCreditApplied,\n message,\n currentCyclicPeriodPlans,\n plansGroupedByCyclicMonths,\n shouldShowAddons,\n isSubscriptionActive,\n planPageNotice,\n shouldShowCoupon,\n onCouponUpdate\n };\n};\n\nexport default usePlans;\n","import _ from 'lodash';\nimport React from 'react';\nimport { onClaimFreeTrial } from 'common/api/payment';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst AvailableFreeTrialCard = () => {\n const { availableFreeTrial, userReferredBy } = window;\n if (_.isEmpty(availableFreeTrial)) return null;\n if (userReferredBy !== 'angelone') return null;\n // Should revamp this component again.\n // Last minute changed custom content inside component for broker specific.\n // Need to make this component generic.\n\n const { live_quota: liveQuota, historic_quota: historicQuota, trial_days: trialDays } = availableFreeTrial;\n const oneIndentation = ' ';\n\n const onClickClaimFreeTrialBtn = () => {\n onClaimFreeTrial().then((res) => {\n if (res.success) {\n reactToastify('Free trial claimed, Happy Trading', TOASTIFY_TYPES.SUCCESS);\n window.location.reload();\n } else {\n reactToastify('Something went wrong! Please contact support', TOASTIFY_TYPES.ERROR);\n }\n }).catch(() => {\n reactToastify('Something went wrong! Please contact support', TOASTIFY_TYPES.ERROR);\n });\n\n return null;\n };\n\n return (\n
    \n
    \n \n Rs. 1534 worth\n {liveQuota && (\n <>\n {oneIndentation}\n {liveQuota}\n {oneIndentation}\n live runs\n \n )}\n {historicQuota && (\n <>\n {oneIndentation}\n {historicQuota}\n {oneIndentation}\n backtest\n \n )}\n {oneIndentation}\n free for\n {oneIndentation}\n {trialDays}\n {oneIndentation}\n days.\n \n {oneIndentation}\n If you want please click here\n onClickClaimFreeTrialBtn()}\n >\n Claim Free Trial\n \n
    \n
    \n );\n};\n\nAvailableFreeTrialCard.propTypes = propTypes;\nAvailableFreeTrialCard.defaultProps = defaultProps;\n\nexport default AvailableFreeTrialCard;\n","import PropTypes from 'prop-types';\n\nexport const webAndMobileRootPropTypes = {\n planCycleType: PropTypes.string,\n setPlanCycleType: PropTypes.func,\n activePlanId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n activePlanName: PropTypes.string,\n addons: PropTypes.array,\n couponCode: PropTypes.string,\n setCouponCode: PropTypes.func,\n isApplied: PropTypes.bool,\n appliedCouponConfig: PropTypes.object,\n creditBalance: PropTypes.number,\n setCreditBalance: PropTypes.func,\n isCreditApplied: PropTypes.bool,\n setIsCreditApplied: PropTypes.func,\n message: PropTypes.string,\n currentCyclicPeriodPlans: PropTypes.array,\n plansGroupedByCyclicMonths: PropTypes.object,\n shouldShowAddons: PropTypes.bool,\n isSubscriptionActive: PropTypes.bool,\n shouldShowCoupon: PropTypes.bool,\n onCouponUpdate: PropTypes.func\n};\n\nexport const webAndMobileDefaultProps = {\n planCycleType: 'monthly',\n setPlanCycleType: () => {},\n activePlanId: null,\n activePlanName: '',\n addons: [],\n couponCode: '',\n setCouponCode: () => {},\n isApplied: false,\n appliedCouponConfig: {},\n creditBalance: 0,\n setCreditBalance: () => {},\n isCreditApplied: false,\n setIsCreditApplied: () => {},\n message: '',\n currentCyclicPeriodPlans: [],\n plansGroupedByCyclicMonths: {},\n shouldShowAddons: false,\n isSubscriptionActive: false,\n shouldShowCoupon: false,\n onCouponUpdate: () => {}\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { cyclicPlansPeriods } from 'ui/Plans/config';\nimport classNames from 'classnames';\n\nconst propTypes = {\n planCycleType: PropTypes.string.isRequired,\n onHandlePlanType: PropTypes.func.isRequired,\n cyclicPeriods: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})]),\n plansGroupedByCyclicMonths: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})]).isRequired\n};\n\nconst defaultProps = {\n cyclicPeriods: cyclicPlansPeriods\n};\n\nconst PlanTypeSelector = ({\n planCycleType, onHandlePlanType, cyclicPeriods, plansGroupedByCyclicMonths\n}) => {\n const renderPlanCycleType = (planConfig, key) => {\n if (_.size(plansGroupedByCyclicMonths[planConfig.period]) < 1) { return null; }\n\n const liClassName = classNames('nav-link btn btn-outline-primary btn-pill', {\n 'btn-lightness btn btn-outline-primary btn-lightness-primary': true,\n active: planCycleType === planConfig.value\n });\n\n return (\n
  • \n onHandlePlanType(planConfig.value)}\n href=\"#tab\"\n >\n {planConfig.label}\n \n
  • \n );\n };\n\n if (_.isEmpty(cyclicPeriods) || _.size(cyclicPeriods) === 1) return null;\n\n return (\n
    \n
      \n {_.map(cyclicPeriods, renderPlanCycleType)}\n
    \n
    \n );\n};\n\nPlanTypeSelector.propTypes = propTypes;\nPlanTypeSelector.defaultProps = defaultProps;\n\nexport default PlanTypeSelector;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n purchaseType: PropTypes.string.isRequired,\n onChangePurchaseType: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst PAYMENT_DESCRIPTION = 'Pay one time for the selected plan. Once the paid for duration is complete, '\n + 'you need to manually pay again to continue using the service.';\nconst SUBSCRIPTION_DESCRIPTION = 'In recurring payments, it automatically charges you payment every '\n + 'selected period(1month/ 1year). You do not need to manually pay every time.'\n + 'In case, you want to stop the subscription, you can cancel recurring payments anytime you want. '\n + 'Once you cancel a recurring payment, you can continue using the service for the paid duration, '\n + 'but when the paid period is over, you need to manually make payments to continue using the service.';\n\nconst purchaseTypes = [\n {\n type: 'subscription',\n label: 'Automatic Recurring Subscription',\n content: SUBSCRIPTION_DESCRIPTION,\n },\n {\n type: 'payment',\n label: 'One Time Payment',\n content: PAYMENT_DESCRIPTION,\n }\n];\n\nconst PlanPurchaseTypeSelectionModal = ({\n purchaseType, onChangePurchaseType\n}) => {\n const renderPurchaseType = (purchaseData, key) => {\n return (\n \n
    \n
    \n \n
    \n\n
    \n {purchaseData.content}\n
    \n
    \n
    \n );\n };\n\n return _.map(purchaseTypes, renderPurchaseType);\n};\n\nPlanPurchaseTypeSelectionModal.defaultProps = defaultProps;\nPlanPurchaseTypeSelectionModal.propTypes = propTypes;\n\nexport default PlanPurchaseTypeSelectionModal;\n","import _ from 'lodash';\nimport React, { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport Multiplier from 'ui/Strategies/components/Strategy/Multiplier';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { cyclicPlansPeriods } from 'ui/Plans/config';\n\nconst propTypes = {\n onChangeSelectedPlan: PropTypes.func.isRequired,\n planName: PropTypes.string,\n onShowPurchaseTypeModal: PropTypes.func.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n isPremium: PropTypes.bool.isRequired,\n plansGroupedByCyclicMonths: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})])\n};\n\nconst defaultProps = {\n planName: '',\n plansGroupedByCyclicMonths: {}\n};\n\nconst PlanMultiplierModal = ({\n onChangeSelectedPlan,\n planName,\n onShowPurchaseTypeModal,\n onCloseModal,\n isPremium,\n plansGroupedByCyclicMonths\n}) => {\n const [multiplier, setMultiplier] = useState(1);\n const { yearly: { period: yearlyPeriod } } = cyclicPlansPeriods;\n const getYearlyOnlyPlans = _.omitBy(\n _.mapValues(\n _.pickBy(plansGroupedByCyclicMonths, (plans, key) => parseInt(key, 10) % yearlyPeriod === 0),\n (plans) => _.head(_.filter(plans, { is_premium: isPremium })) || null\n ),\n _.isNull\n );\n\n const selectedPlan = getYearlyOnlyPlans[multiplier * yearlyPeriod];\n\n const renderPlanDetails = () => {\n const {\n currentNetPrice,\n historic_run_limit: historicRunLimit,\n live_run_limit: liveRunLimit,\n cycle_duration_in_months: cycleMonth\n } = selectedPlan;\n return (\n <>\n {liveRunLimit > 0 && (\n
    \n Validity:\n {' '}\n \n {cycleMonth}\n {' '}\n month\n \n
    \n )}\n {historicRunLimit > 0 && (\n
    \n Backtest credits:\n {' '}\n {historicRunLimit}\n
    \n )}\n {liveRunLimit > 0 && (\n
    \n Live Deployment credits:\n {' '}\n {liveRunLimit}\n
    \n )}\n
    \n Total\n {' '}\n {multiplier}\n {' '}\n Year\n {' '}\n {planName}\n {' '}\n Plan Cost:\n \n {currentNetPrice}\n \n
    \n \n );\n };\n\n const MULTIPLIER_LIMIT = Object.keys(getYearlyOnlyPlans)?.length || 1;\n\n const isInValidMultiplier = useMemo(() => multiplier > MULTIPLIER_LIMIT, [multiplier]);\n\n return (\n {\n onChangeSelectedPlan(selectedPlan);\n onShowPurchaseTypeModal();\n }}\n onClose={onCloseModal}\n size=\"md\"\n okBtnTitle={`Purchase ${planName} Plan`}\n isOkBtnDisabled={isInValidMultiplier || !selectedPlan}\n btnClassName=\"btn-sm\"\n >\n
    \n \n );\n};\n\nStopLimitPriceDifferenceInPercentage.propTypes = propTypes;\nStopLimitPriceDifferenceInPercentage.defaultProps = defaultProps;\n\nexport default withErrorBoundary(StopLimitPriceDifferenceInPercentage);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { toPositiveNumberString } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n gapBetweenBuyAndSellOrdersInSeconds: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n labelClassName: PropTypes.string.isRequired,\n buttonClassName: PropTypes.string.isRequired,\n errors: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n errors: []\n};\n\nconst GapBetweenBuyAndSellOrdersInSeconds = ({\n gapBetweenBuyAndSellOrdersInSeconds,\n onChange, labelClassName,\n buttonClassName,\n errors\n}) => {\n const gapBetweenBuyAndSell = gapBetweenBuyAndSellOrdersInSeconds.toString();\n\n const hasError = _.find(errors, (error) => error.property\n === 'instance.gapBetweenBuyAndSellOrdersInSeconds');\n return (\n
    \n
    \n \n
    \n
    \n
    \n onChange(toPositiveNumberString((event.target.value).toString()))}\n />\n
    \n {hasError ? (\n
    \n Give the seconds 0 to 10\n
    \n ) : null}\n
    \n
    \n );\n};\n\nGapBetweenBuyAndSellOrdersInSeconds.propTypes = propTypes;\nGapBetweenBuyAndSellOrdersInSeconds.defaultProps = defaultProps;\n\nexport default GapBetweenBuyAndSellOrdersInSeconds;\n","import _ from 'lodash';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {\n setStopAndLimitPriceDifference,\n setGapBetweenBuyAndSellOrders\n} from 'modules/QuantBuilder/actions';\nimport { validatorProptypes } from 'common/propTypes';\nimport { getValidationError } from 'common/utils/validators';\nimport { QUANT_CONFIG_FIELDS } from 'modules/QuantBuilder/config/index';\nimport StopLimitPriceDifferenceInPercentage from './StopLimitPriceDifferenceInPercentage';\nimport GapBetweenBuyAndSellOrdersInSeconds from './GapBetweenBuyAndSellOrdersInSeconds';\n\nconst propTypes = {\n dispatchWaitingTimeBetweenBuyAndSellOrdersInSeconds: PropTypes.func.isRequired,\n dispatchStopAndLimitPriceDifferenceInPercentage: PropTypes.func.isRequired,\n stopAndLimitPriceDifferenceInPercentage: PropTypes.number.isRequired,\n gapBetweenBuyAndSellOrdersInSeconds: PropTypes.number.isRequired,\n validatorErrors: validatorProptypes.isRequired\n};\nconst defaultProps = {};\n\nconst getBuySellDiffAndStopLossDiffErrors = (validatorErrors) => {\n const {\n stopAndLimitPriceDifferenceInPercentage, gapBetweenBuyAndSellOrdersInSeconds\n } = QUANT_CONFIG_FIELDS;\n\n return []\n .concat(getValidationError(validatorErrors, stopAndLimitPriceDifferenceInPercentage))\n .concat(getValidationError(validatorErrors, gapBetweenBuyAndSellOrdersInSeconds));\n};\n\nconst BuySellTimeAndStopLossDiff = (props) => {\n const {\n dispatchWaitingTimeBetweenBuyAndSellOrdersInSeconds,\n dispatchStopAndLimitPriceDifferenceInPercentage,\n stopAndLimitPriceDifferenceInPercentage, gapBetweenBuyAndSellOrdersInSeconds,\n validatorErrors\n } = props;\n\n const errors = getBuySellDiffAndStopLossDiffErrors(validatorErrors);\n\n return (\n
    \n \n \n
    \n );\n};\n\nBuySellTimeAndStopLossDiff.propTypes = propTypes;\nBuySellTimeAndStopLossDiff.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n stopAndLimitPriceDifferenceInPercentage:\n _.get(state, 'quantConfig.stopAndLimitPriceDifferenceInPercentage', ''),\n gapBetweenBuyAndSellOrdersInSeconds:\n _.get(state, 'quantConfig.gapBetweenBuyAndSellOrdersInSeconds', ''),\n validatorErrors: _.get(state, 'validatorErrors')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchStopAndLimitPriceDifferenceInPercentage:\n (newDifference) => dispatch(setStopAndLimitPriceDifference(newDifference)),\n dispatchWaitingTimeBetweenBuyAndSellOrdersInSeconds:\n (newWaitingTimeBetween) => dispatch(\n setGapBetweenBuyAndSellOrders(newWaitingTimeBetween)\n ),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BuySellTimeAndStopLossDiff);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport { setQuantConfig } from 'modules/QuantBuilder/actions';\nimport { quantConfigPropTypes } from 'common/propTypes';\nimport {\n QUANT_CONFIG_FIELDS, overAllStopsConfig, STOPS_VALUE_TYPES\n} from 'modules/QuantBuilder/config';\nimport HoverMessage from 'common/components/HoverMessage';\nimport StopsValueTypeToggleBtn from 'common/components/StopsValueTypeToggleBtn';\nimport {\n onRegexOnlyNumberAndFloat\n} from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n dispatchQuantConfig: PropTypes.func.isRequired,\n quantConfig: quantConfigPropTypes.isRequired,\n type: PropTypes.string.isRequired,\n};\nconst defaultProps = {};\n\nconst { trailingStopLoss, overallStopLoss, overallStopGain } = QUANT_CONFIG_FIELDS;\nconst DISPLAY_NAME = {\n [trailingStopLoss]: 'Trailing Stop Loss',\n [overallStopLoss]: 'Stop Loss',\n [overallStopGain]: 'Take Profit'\n};\n\nconst StopLossOrStopGainInput = ({ dispatchQuantConfig, quantConfig, type }) => {\n const isCurrentValueInPrice = quantConfig[`${type}Price`] !== undefined;\n const { PERCENT, PRICE } = STOPS_VALUE_TYPES;\n const [valueType, setValueType] = useState(isCurrentValueInPrice ? PRICE : PERCENT);\n const newStopsType = valueType === PERCENT ? type : `${type}Price`;\n const currentConfigValue = _.get(quantConfig, [newStopsType], undefined);\n const emptyStopsValue = _.get(overAllStopsConfig, [type, valueType, 'config'], {});\n\n const onChange = (event, isString) => {\n dispatchQuantConfig({\n ...emptyStopsValue,\n [newStopsType]: onRegexOnlyNumberAndFloat(event.target.value, isString)\n });\n };\n\n const onStopsValueTypeChange = () => {\n setValueType(valueType === PERCENT ? PRICE : PERCENT);\n dispatchQuantConfig({ ...emptyStopsValue });\n };\n\n const isInputDisabled = type === trailingStopLoss && window.isDisabledTrailingStopLoss;\n\n const inputBox = (\n { onChange(event, false); }}\n value={currentConfigValue === undefined ? '' : currentConfigValue.toString()}\n disabled={isInputDisabled}\n onChange={(event) => onChange(event, true)}\n />\n );\n\n return (\n
    \n
    \n
    \n {DISPLAY_NAME[type]}\n
    \n\n {type !== trailingStopLoss && (\n \n )}\n\n {isInputDisabled ? (\n \n {inputBox}\n \n ) : inputBox}\n\n
    \n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n quantConfig: _.get(state, 'quantConfig'),\n});\nconst dispatchStateToProps = (dispatch) => ({\n dispatchQuantConfig: (newConfig) => dispatch(setQuantConfig(newConfig))\n});\n\nStopLossOrStopGainInput.propTypes = propTypes;\nStopLossOrStopGainInput.defaultProps = defaultProps;\nexport default connect(mapStateToProps, dispatchStateToProps)(StopLossOrStopGainInput);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { QUANT_CONFIG_FIELDS } from 'modules/QuantBuilder/config';\nimport StopLossOrStopGainInput from './StopLossOrStopGainInput';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst OverallStopsInput = () => {\n const { overallStopLoss, overallStopGain } = QUANT_CONFIG_FIELDS;\n\n return (\n
    \n
    \n {/*
    \n Before => Overall Stops\n \n
    */}\n
    \n \n \n {/* */}\n
    \n\n
    \n
    \n );\n};\n\nOverallStopsInput.propTypes = propTypes;\nOverallStopsInput.defaultProps = defaultProps;\n\nconst mapStateToProps = () => ({\n});\n\nexport default connect(mapStateToProps)(OverallStopsInput);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport { PRODUCT_TYPE, TRADE_TYPES } from 'modules/QuantBuilder/config';\nimport ErrorMesssage from '../ErrorMesssage';\n\nconst propTypes = {\n product: PropTypes.string.isRequired,\n onChangeProduct: PropTypes.func.isRequired,\n tradingType: PropTypes.string\n};\nconst defaultProps = {\n tradingType: ''\n};\n\nconst ProductType = ({ product, onChangeProduct, tradingType }) => {\n const { positional } = TRADE_TYPES;\n const [optionTypeBtnName] = useState(_.uniqueId('optionTypeBtnName-'));\n const optionTypeInputId = _.uniqueId('optionType');\n const { errors, register } = useFormContext();\n\n const validatorConfig = {\n validate: (value) => {\n if (!value) return '*value required';\n if (value === PRODUCT_TYPE.mis && tradingType === positional) return '*mis is for Intraday';\n\n return null;\n }\n };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'product-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'ml-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType, key) => {\n return (\n
    \n onChangeProduct(optionType)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(PRODUCT_TYPE, renderRadioBtn);\n\n const renderErrorMessage = () => {\n if (!errors[optionTypeBtnName]) return null;\n\n const { message } = errors[optionTypeBtnName];\n return ;\n };\n\n return (\n
    \n {optionTypeRadioBtns}\n {renderErrorMessage()}\n
    \n );\n};\n\nProductType.propTypes = propTypes;\nProductType.defaultProps = defaultProps;\n\nexport default ProductType;\n","import _ from 'lodash';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setProductType } from 'modules/QuantBuilder/actions';\nimport ProductTypeSelector from 'common/components/ProductType';\n\nconst propTypes = {\n product: PropTypes.string.isRequired,\n dispatchSetProductType: PropTypes.func.isRequired,\n tradingType: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst ProductType = (props) => {\n const { product, dispatchSetProductType, tradingType } = props;\n\n return (\n
    \n
    \n \n
    \n
    \n dispatchSetProductType(newProduct)}\n />\n
    \n
    \n );\n};\n\nProductType.propTypes = propTypes;\nProductType.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n product: _.get(state, 'quantConfig.product'),\n tradingType: _.get(state, 'quantConfig.tradingType')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetProductType: (newProductType) => dispatch(setProductType(newProductType)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductType);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { QUANT_CONFIG_ORDER_TYPES } from 'v2/common/constants/index';\n\nconst propTypes = {\n title: PropTypes.string.isRequired,\n orderType: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst renderOptions = (key, value) => {\n const { isStopLossLimitOrderEnabled } = window;\n if (key === 'sl-l' && !isStopLossLimitOrderEnabled) return null;\n\n return ;\n};\n\nconst OrderTypeInput = ({ title, orderType, onChange }) => (\n
    \n
    \n
    {title}
    \n
    \n onChange(event.target.value)}\n >\n {_.map(QUANT_CONFIG_ORDER_TYPES, renderOptions)}\n \n
    \n);\n\nOrderTypeInput.propTypes = propTypes;\nOrderTypeInput.defaultProps = defaultProps;\n\nexport default OrderTypeInput;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport HoverMessage from 'common/components/HoverMessage';\nimport OrderTypeInput from './OrderTypeInput';\n\nconst propTypes = {\n orderType: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst OrderType = ({\n orderType, onChange, title, type\n}) => {\n const [shouldShowWarningMessage, setShouldShowWarningMessage] = useState(false);\n const renderOrderType = () => {\n const renderOrderTypeInput = () => (\n {\n if (type === 'exit') {\n setShouldShowWarningMessage(true);\n setTimeout(() => {\n setShouldShowWarningMessage(false);\n }, 5000);\n }\n onChange(newOrderType);\n }}\n />\n );\n\n if (type === 'exit' && orderType === 'limit') {\n return (\n \n {renderOrderTypeInput()}\n \n );\n }\n\n return renderOrderTypeInput();\n };\n\n return (\n
    \n {renderOrderType()}\n
    \n );\n};\n\nOrderType.propTypes = propTypes;\nOrderType.defaultProps = defaultProps;\n\nexport default OrderType;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\n\nconst OPTION_TYPES = [\n { label: 'modify to market', value: 'update' },\n { label: 'cancel', value: 'cancel' }\n];\n\nconst propTypes = {\n optionType: PropTypes.string.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired,\n isHideCancel: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst ModifyOrderSelector = ({\n optionType: propsOptionType, onOptionTypeChange, isHideCancel\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionTypeBtnName-'));\n const optionTypeInputId = _.uniqueId('optionType');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'modify-order-selector',\n 'align-items-center',\n 'gap-5',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n if (isHideCancel && optionType.value === 'cancel') return null;\n\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nModifyOrderSelector.propTypes = propTypes;\nModifyOrderSelector.defaultProps = defaultProps;\n\nexport default ModifyOrderSelector;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ModifyOrderSelector from './ModifyOrderSelector';\n\nconst propTypes = {\n action: PropTypes.string.isRequired,\n actionTimeInSeconds: PropTypes.string.isRequired,\n isHideCancel: PropTypes.bool.isRequired,\n onHandleChange: PropTypes.func.isRequired,\n orderConfig: PropTypes.shape({}).isRequired,\n actionError: PropTypes.shape({}).isRequired,\n actionsInSecondsError: PropTypes.shape({}).isRequired\n};\n\nconst defaultProps = {};\n\nconst ModifyOrders = ({\n action, actionTimeInSeconds, isHideCancel, onHandleChange, orderConfig,\n actionError, actionsInSecondsError\n}) => {\n const actionErrorMessage = _.get(actionError, 'message', null);\n const actionInSecondsMessage = _.get(actionsInSecondsError, 'message', null);\n\n const renderSelector = (\n onHandleChange({ ...orderConfig, action: value })}\n />\n );\n\n const renderSeconds = (\n onHandleChange({\n ...orderConfig,\n actionTimeInSeconds: Number((event.target.value))\n })}\n />\n );\n return (\n
    \n
    \n
    \n \n
    \n {renderSeconds}\n
    \n \n
    \n {actionInSecondsMessage && (\n
    \n {actionInSecondsMessage}\n
    \n )}\n
    \n
    \n {renderSelector}\n {actionErrorMessage && (\n
    \n {actionErrorMessage}\n
    \n )}\n
    \n
    \n );\n};\n\nModifyOrders.propTypes = propTypes;\nModifyOrders.defaultProps = defaultProps;\n\nexport default ModifyOrders;\n","import _ from 'lodash';\nexport const handleErrors = (errors, orderType, action) => {\n const error = _.find(errors, (\n { property }\n ) => property === `instance.${orderType}.${action}`);\n\n return error || {};\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { orderModificationPropTypes } from 'common/propTypes';\nimport OrderTypeSelector from 'common/components/OrderType';\nimport ModifyOrders from '../ModifyOrders/index';\nimport { handleErrors } from '../ModifyOrders/helper';\n\nconst propTypes = {\n entryOrderModification: orderModificationPropTypes.isRequired,\n exitOrderModification: orderModificationPropTypes.isRequired,\n onChangeEntryOrderType: PropTypes.func.isRequired,\n onChangeExitOrderType: PropTypes.func.isRequired,\n isShowEntryOrderType: PropTypes.bool.isRequired,\n isShowExitOrderType: PropTypes.bool.isRequired,\n onChangeEntryOrderModification: PropTypes.func.isRequired,\n onChangeExitOrderMofication: PropTypes.func.isRequired,\n entryOrderType: PropTypes.string.isRequired,\n exitOrderType: PropTypes.string.isRequired,\n errors: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\nconst defaultProps = {};\n\nconst OrderTypeConfiguration = ({\n entryOrderModification, exitOrderModification, onChangeEntryOrderType, onChangeExitOrderType,\n isShowExitOrderType, isShowEntryOrderType, onChangeEntryOrderModification,\n onChangeExitOrderMofication, entryOrderType, exitOrderType, errors\n}) => {\n const renderEntryModification = () => {\n if (!isShowEntryOrderType) return null;\n\n const { action: entryAction, actionTimeInSeconds: entryActionTimeInSeconds } = entryOrderModification;\n const entryActionError = handleErrors(errors, 'entryOrderModification', 'action');\n const entryActionInSecondsError = handleErrors(errors, 'entryOrderModification', 'actionTimeInSeconds');\n return (\n \n );\n };\n\n const renderExitModification = () => {\n if (!isShowExitOrderType) return null;\n\n const { action: exitAction, actionTimeInSeconds: exitActionTimeInSeconds } = exitOrderModification;\n const exitActionError = handleErrors(errors, 'exitOrderModification', 'action');\n const exitActionInSecondsError = handleErrors(errors, 'exitOrderModification', 'actionTimeInSeconds');\n return (\n \n );\n };\n\n return (\n <>\n
    \n
    \n \n
    \n
    \n
    \n \n {renderEntryModification()}\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n \n {renderExitModification()}\n
    \n
    \n
    \n \n );\n};\n\nOrderTypeConfiguration.propTypes = propTypes;\nOrderTypeConfiguration.defaultProps = defaultProps;\n\nexport default OrderTypeConfiguration;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {\n setEntryOrderModification, setEntryOrderType, setExitOrderModification, setExitOrderType\n} from 'modules/QuantBuilder/actions';\nimport { orderModificationPropTypes, validatorProptypes } from 'common/propTypes';\nimport { getOrderModificationEmptyConfig, QUANT_CONFIG_FIELDS } from 'modules/QuantBuilder/config/index';\nimport { getValidationError } from 'common/utils/validators';\nimport OrderTypeConfiguration from './OrderTypeConfiguration';\n\nconst propTypes = {\n entryOrderType: PropTypes.string.isRequired,\n exitOrderType: PropTypes.string.isRequired,\n dispatchSetEntryOrderType: PropTypes.func.isRequired,\n dispatchSetExitOrderType: PropTypes.func.isRequired,\n validatorErrors: validatorProptypes.isRequired,\n entryOrderModification: orderModificationPropTypes.isRequired,\n exitOrderModification: orderModificationPropTypes.isRequired,\n dispatchEntryOrderModification: PropTypes.func.isRequired,\n dispatchExitOrderModification: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst getErrors = (validatorErrors) => {\n const { entryOrderModification, exitOrderModification } = QUANT_CONFIG_FIELDS;\n\n return []\n .concat(getValidationError(validatorErrors, entryOrderModification))\n .concat(getValidationError(validatorErrors, exitOrderModification));\n};\n\nconst OrderType = (props) => {\n const {\n entryOrderType, exitOrderType, dispatchSetEntryOrderType, dispatchSetExitOrderType,\n entryOrderModification, exitOrderModification,\n dispatchEntryOrderModification, dispatchExitOrderModification, validatorErrors,\n } = props;\n const errors = getErrors(validatorErrors);\n\n useEffect(() => { // newly implemented, old runs don't have those config so i attached to quantConfig.\n if (!_.keys(entryOrderModification).length && entryOrderType !== 'market') {\n dispatchEntryOrderModification(getOrderModificationEmptyConfig);\n }\n if (!_.keys(exitOrderModification).length && exitOrderType !== 'market') {\n dispatchExitOrderModification(getOrderModificationEmptyConfig);\n }\n }, [entryOrderType, exitOrderType]);\n\n return (\n <>\n \n \n );\n};\n\nOrderType.propTypes = propTypes;\nOrderType.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n entryOrderType: _.get(state, 'quantConfig.entryOrderType'),\n exitOrderType: _.get(state, 'quantConfig.exitOrderType'),\n validatorErrors: _.get(state, 'validatorErrors'),\n entryOrderModification: _.get(state, 'quantConfig.entryOrderModification', {}),\n exitOrderModification: _.get(state, 'quantConfig.exitOrderModification', {}),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetEntryOrderType: (newEntryOrderType) => dispatch(setEntryOrderType(newEntryOrderType)),\n dispatchSetExitOrderType: (newExitOrderType) => dispatch(setExitOrderType(newExitOrderType)),\n dispatchEntryOrderModification:\n (newEntryOrderModification) => dispatch(setEntryOrderModification(newEntryOrderModification)),\n dispatchExitOrderModification:\n (newExitOrderModification) => dispatch(setExitOrderModification(newExitOrderModification)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OrderType);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\nimport { oneOfTypes } from 'common/propTypes';\n\nconst OPTION_TYPES = [\n { label: 'Yes', value: true },\n { label: 'No', value: false }\n];\n\nconst propTypes = {\n optionType: oneOfTypes.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst PlaceOptionsEntryBuyOrdersSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionPlaceOptionsEntryBuyOrdersSelector-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nPlaceOptionsEntryBuyOrdersSelector.propTypes = propTypes;\nPlaceOptionsEntryBuyOrdersSelector.defaultProps = defaultProps;\n\nexport default PlaceOptionsEntryBuyOrdersSelector;\n","import _ from 'lodash';\nconst BUY = 'buy';\nconst SELL = 'sell';\n\nconst isEntryBuyOptionsOrdersFirst = (configs) => {\n return _.some(configs, (config) => {\n const optionConfigs = _.get(config, 'optionConfigs', []);\n const futureConfig = _.get(config, 'futureConfig', {});\n const equityConfig = _.get(config, 'equityConfig', {});\n\n const optionBuys = _.filter(optionConfigs, (optionConfig) => {\n const { entryType } = optionConfig;\n return entryType === BUY;\n });\n const optionSells = _.filter(optionConfigs, (optionConfig) => {\n const { entryType } = optionConfig;\n return entryType === SELL;\n });\n\n const onlyOptionsTrue = _.some(optionBuys, ({ optionType }) => {\n return _.some(optionSells, ({ optionType: optionTypeSell }) => optionTypeSell === optionType);\n });\n\n if (onlyOptionsTrue) return true;\n // Have atleast one Buy in options in optionConfig.. and must have to atleast one sell.. if there is\n // 3 optionConfig is BUY.. no sell .. return false.. 3 BUY and 1 SELL return true.\n\n if (equityConfig) { // if option has BUY.. future must be true\n const { entryType } = equityConfig;\n if (entryType && !_.isEmpty(optionBuys)) return true;\n }\n if (futureConfig) { // if option has BUY.. equity must be true\n const { entryType } = futureConfig;\n if (entryType && !_.isEmpty(optionBuys)) return true;\n }\n\n return false;\n });\n};\n\nconst filteredTransactionConfigs = (transactionConfigs) => {\n return (\n _.map(transactionConfigs, (transactionConfig) => {\n const equityConfig = _.get(transactionConfig, 'equityConfig', '');\n const futureConfig = _.get(transactionConfig, 'futureConfig', '');\n const optionConfigs = _.get(transactionConfig, 'optionConfigs', []);\n\n return {\n equityConfig: !_.isEmpty(equityConfig.entryType) ? equityConfig : null,\n futureConfig: !_.isEmpty(futureConfig.entryType) ? futureConfig : null,\n optionConfigs,\n };\n })\n );\n};\n\nexport const isShowEntryBuyOptionsOrdersFirst = (orderConfigs = []) => {\n return _.some(orderConfigs, (orderConfig) => {\n const transactionConfigs = _.get(orderConfig, 'transactionConfigs', []);\n const adjustmentActionConfigs = _.get(orderConfig, 'adjustmentActionConfigs', []);\n const isShowBasedOnAdjustment = _.some(adjustmentActionConfigs, (adjustmentActionConfig) => {\n return isEntryBuyOptionsOrdersFirst(adjustmentActionConfig);\n });\n\n const isCloseBasedShow = _.some(adjustmentActionConfigs, (adjustmentActionConfig) => {\n return _.some(adjustmentActionConfig, (config) => {\n const { mode: { transaction }, existingLegConfigs } = config;\n const isClosePresent = _.find(existingLegConfigs, ({ action }) => action === 'close');\n return isClosePresent && transaction;\n });\n });\n\n return isEntryBuyOptionsOrdersFirst(transactionConfigs) || isShowBasedOnAdjustment || isCloseBasedShow;\n });\n};\n\nexport const isTransactionHaveMoreThanOneLeg = (orderConfigs = []) => {\n return _.some(orderConfigs, (orderConfig) => {\n const transactionConfigs = _.get(orderConfig, 'transactionConfigs', []);\n\n return (\n _.some(filteredTransactionConfigs(transactionConfigs), (filteredconfigs) => {\n const { optionConfigs, equityConfig, futureConfig } = filteredconfigs;\n const legsCount = (_.size(optionConfigs) + _.size(equityConfig) + _.size(futureConfig));\n return legsCount > 1;\n })\n );\n });\n};\n\nexport const isIndividualStoplossAvailable = (orderConfigs = []) => {\n return _.some(orderConfigs, (orderConfig) => {\n const transactionConfigs = _.get(orderConfig, 'transactionConfigs', []);\n\n return (\n _.some(filteredTransactionConfigs(transactionConfigs), (filteredconfigs) => {\n const { optionConfigs, equityConfig, futureConfig } = filteredconfigs;\n const configs = [...optionConfigs, equityConfig, futureConfig];\n return _.some(configs, (config) => config && (config.stopLoss || config.stopLossPrice));\n })\n );\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { oneOfTypes, orderConfigsPropTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\nimport PlaceOptionsEntryBuyOrdersSelector from './PlaceOptionsEntryBuyOrdersSelector';\nimport { isShowEntryBuyOptionsOrdersFirst } from '../ProfitAndOrdersComponents/helper';\n\nconst propTypes = {\n isPlaceOptionsEntryBuyOrderFirst: oneOfTypes,\n handleChange: PropTypes.func.isRequired,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = { isPlaceOptionsEntryBuyOrderFirst: '', orderConfigs: [] };\n\nconst PlaceOptionsEntryBuyOrdersFirst = ({\n isPlaceOptionsEntryBuyOrderFirst, handleChange, orderConfigs\n}) => {\n const oneIndentation = ' ';\n const isApplicableForMarginBenefit = isShowEntryBuyOptionsOrdersFirst(orderConfigs);\n const content = isApplicableForMarginBenefit ? 'Margin Benefit will be applicable for your transaction'\n : 'Margin Benefit will not be applicable for your transaction';\n\n return (\n
    \n \n
    \n {\n handleChange(value);\n }}\n />\n
    \n
    \n );\n};\n\nPlaceOptionsEntryBuyOrdersFirst.propTypes = propTypes;\nPlaceOptionsEntryBuyOrdersFirst.defaultProps = defaultProps;\n\nexport default PlaceOptionsEntryBuyOrdersFirst;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setIsPlaceOptionsEntryBuyOrdersFirst } from 'modules/QuantBuilder/actions';\nimport { oneOfTypes, orderConfigsPropTypes } from 'common/propTypes';\nimport PlaceOptionsEntryBuyOrdersFirst from './PlaceOptionsEntryBuyOrdersFirst';\n\nconst propTypes = {\n dispatchIsPlaceOptionsEntryBuyOrdersFirst: PropTypes.func.isRequired,\n isPlaceOptionsEntryBuyOrdersFirst: oneOfTypes,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = {\n isPlaceOptionsEntryBuyOrdersFirst: null,\n orderConfigs: []\n};\n\nconst OptionsEntryBuyOrders = ({\n dispatchIsPlaceOptionsEntryBuyOrdersFirst, isPlaceOptionsEntryBuyOrdersFirst, orderConfigs\n}) => {\n useEffect(() => { // newly implemented, old runs don't have those config so i attached to quantConfig.\n if (isPlaceOptionsEntryBuyOrdersFirst === null) {\n dispatchIsPlaceOptionsEntryBuyOrdersFirst(true);\n }\n }, []);\n\n if (isPlaceOptionsEntryBuyOrdersFirst === null) return null;\n\n return (\n \n );\n};\n\nOptionsEntryBuyOrders.propTypes = propTypes;\nOptionsEntryBuyOrders.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n isPlaceOptionsEntryBuyOrdersFirst:\n _.get(state, 'quantConfig.isPlaceOptionsEntryBuyOrdersFirst', null),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs', [])\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchIsPlaceOptionsEntryBuyOrdersFirst:\n (newValue) => dispatch(setIsPlaceOptionsEntryBuyOrdersFirst(newValue))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OptionsEntryBuyOrders);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\n\nconst OPTION_TYPES = [\n { label: 'Traded Price', value: 'traded_price' },\n { label: 'Signal Price', value: 'signal_price' }\n];\n\nconst propTypes = {\n optionType: PropTypes.string.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst SlOrderBasedOnPriceSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionSlOrderBasedOnPrice-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nSlOrderBasedOnPriceSelector.propTypes = propTypes;\nSlOrderBasedOnPriceSelector.defaultProps = defaultProps;\n\nexport default SlOrderBasedOnPriceSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMessage from 'common/components/HoverMessage';\nimport SlOrderBasedOnPriceSelector from './SlOrderBasedOnPriceSelector';\n\nconst propTypes = {\n slOrderPlaceBasedOnPrice: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n};\nconst defaultProps = { };\n\nconst SlOrderBasedOnPriceWrapper = ({\n slOrderPlaceBasedOnPrice, handleChange,\n}) => {\n const oneIndentation = ' ';\n const label = 'Stop Loss orders place based on entry\\'s';\n const content = 'Stop Loss order will be placed based on entry\\'s signal price or traded price';\n\n return (\n
    \n \n
    \n { handleChange(value); }}\n />\n
    \n
    \n );\n};\n\nSlOrderBasedOnPriceWrapper.propTypes = propTypes;\nSlOrderBasedOnPriceWrapper.defaultProps = defaultProps;\n\nexport default SlOrderBasedOnPriceWrapper;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setSlOrderPlaceBasedOnPrice } from 'modules/QuantBuilder/actions';\nimport SlOrderBasedOnPriceWrapper from './SlOrderBasedOnPriceWrapper';\n\nconst propTypes = {\n dispatchSlOrderPlaceBasedOnPrice: PropTypes.func.isRequired,\n slOrderPlaceBasedOnPrice: PropTypes.string,\n};\nconst defaultProps = {\n slOrderPlaceBasedOnPrice: null,\n};\n\nconst SlOrderBasedOnPrice = ({\n dispatchSlOrderPlaceBasedOnPrice, slOrderPlaceBasedOnPrice\n}) => {\n useEffect(() => { // newly implemented, old runs don't have those config so i attached to quantConfig.\n if (slOrderPlaceBasedOnPrice === null) {\n setTimeout(() => {\n dispatchSlOrderPlaceBasedOnPrice('traded_price');\n }, 100);\n }\n }, []);\n\n if (slOrderPlaceBasedOnPrice === null) return null;\n\n return (\n \n );\n};\n\nSlOrderBasedOnPrice.propTypes = propTypes;\nSlOrderBasedOnPrice.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n slOrderPlaceBasedOnPrice:\n _.get(state, 'quantConfig.slOrderPlaceBasedOnPrice', null),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSlOrderPlaceBasedOnPrice:\n (newValue) => dispatch(setSlOrderPlaceBasedOnPrice(newValue))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SlOrderBasedOnPrice);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport HoverMessage from 'common/components/HoverMessage';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\nconst propTypes = {\n bufferPercentage: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n labelClassName: PropTypes.string.isRequired,\n buttonClassName: PropTypes.string.isRequired,\n};\nconst defaultProps = {};\n\nconst BufferPercentage = ({\n bufferPercentage,\n onChange, labelClassName,\n buttonClassName,\n}) => {\n const [percentage, setPercentage] = useState(bufferPercentage);\n\n useEffect(() => {\n setPercentage(bufferPercentage);\n }, [bufferPercentage]);\n\n const oneIndentation = ' ';\n\n const content = (\n
    \n Assume, Signal price is Rs 100 and Buffer is 5%.\n
    \n
    \n If\n {oneIndentation}\n buy\n {oneIndentation}\n order, we place limit order with Rs. 105\n
    \n If\n {oneIndentation}\n sell\n {oneIndentation}\n order, we place limit order with Rs. 95\n
    \n );\n\n return (\n <>\n
    \n \n
    \n
    \n
    \n \n \n { }}\n />\n %\n \n
    \n onChange(event.target.value === ''\n ? 0 : onRegexOnlyNumberAndFloat(event.target.value, false))}\n value={(percentage === undefined || percentage === null) ? '' : percentage.toString()}\n onChange={(event) => setPercentage(onRegexOnlyNumberAndFloat(event.target.value, true))}\n />\n
    \n
    \n
    \n

    {`${planName} Yearly Plan Multiplier`}

    \n

    Number of Years:

    \n \n { !isInValidMultiplier && selectedPlan && renderPlanDetails()}\n {isInValidMultiplier && (\n \n )}\n
    \n \n );\n};\n\nPlanMultiplierModal.propTypes = propTypes;\nPlanMultiplierModal.defaultProps = defaultProps;\n\nexport default PlanMultiplierModal;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { planPropTypes } from 'common/propTypes';\nimport { DOMAINS } from 'common/constants/index';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport ModalComponent from 'common/components/ModalComponent';\nimport { paymentInitialize } from 'common/razorpay/paymentInitialize';\nimport classNames from 'classnames';\nimport { cyclicPlansPeriods } from 'ui/Plans/config';\nimport PlanPurchaseTypeSelectionModal from './PlanPurchaseTypeSelectionModal';\nimport PaymentCoupons from './PaymentCoupons';\nimport PlanMultiplierModal from './PlanMultiplierModal';\n\nconst propTypes = {\n plan: planPropTypes.isRequired,\n activePlanId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n couponConfig: PropTypes.shape({ code: PropTypes.string }),\n activePlanName: PropTypes.string,\n isSubscriptionActive: PropTypes.bool.isRequired,\n isCreditApplied: PropTypes.bool,\n couponCode: PropTypes.string.isRequired,\n onChangeCouponCode: PropTypes.func.isRequired,\n isApplied: PropTypes.bool.isRequired,\n onCouponUpdate: PropTypes.func.isRequired,\n message: PropTypes.string.isRequired,\n btnClassName: PropTypes.string,\n isHideIcon: PropTypes.bool,\n plansGroupedByCyclicMonths: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})])\n};\nconst defaultProps = {\n activePlanId: null,\n couponConfig: {},\n activePlanName: '',\n isCreditApplied: false,\n btnClassName: '',\n isHideIcon: false,\n plansGroupedByCyclicMonths: {}\n};\n\nconst PlanButton = ({\n plan, activePlanId, couponConfig, activePlanName, isSubscriptionActive, isCreditApplied,\n couponCode, onChangeCouponCode, isApplied, onCouponUpdate, message, btnClassName, isHideIcon,\n plansGroupedByCyclicMonths\n}) => {\n const [selectedPlan, setSelectedPlan] = useState(plan);\n const {\n id, currentNetPrice, price, plan_name: planName, is_premium: isPremium,\n cycle_duration_in_months: cycleMonth,\n } = selectedPlan;\n const { hasPaymentEnabled, currentDomain } = window;\n const coupenCode = _.get(couponConfig, 'code', '');\n const isCouponAvailable = !_.isEmpty(couponConfig);\n const [isUserSignedIn, setIsUserSignedIn] = useState(window.isUserSignedIn);\n const [modalConfigs, setModalConfigs] = useState({\n isShowPurchaseTypeModal: false,\n isShowConfirmationModal: false,\n isShowMultiplierModal: false\n });\n const [purchaseType, setPurchaseType] = useState('subscription');\n const paramCouponCode = currentNetPrice === price ? '' : coupenCode;\n const isEmailUser = _.get(window, 'isEmailUser', false);\n const { yearly: { period: yearlyPeriod } } = cyclicPlansPeriods;\n const isYearlyPlan = (cycleMonth % yearlyPeriod) === 0 || false;\n\n useEffect(() => {\n if (isCouponAvailable && purchaseType !== 'payment') {\n setPurchaseType('payment');\n } else {\n setPurchaseType('subscription');\n }\n }, [couponConfig]);\n\n useEffect(() => { setSelectedPlan(plan); }, [plan]);\n\n const { isShowPurchaseTypeModal, isShowMultiplierModal } = modalConfigs;\n\n const createPayment = () => {\n setModalConfigs({ isShowPurchaseTypeModal: false, isShowMultiplierModal: false });\n setSelectedPlan(plan);\n const args = {\n plan_id: id,\n purchase_type: purchaseType,\n coupon_code: paramCouponCode,\n credits_applied: isCreditApplied,\n plan_name: planName\n };\n paymentInitialize(args, () => {\n setTimeout(() => { window.location.reload(); }, 1.5 * 1000);\n }, purchaseType === 'subscription');\n };\n\n const onSubmit = () => {\n if (isUserSignedIn && !isEmailUser) return createPayment();\n\n if (!isUserSignedIn) {\n initiateUserAuth({ action: 'plan_purchase' }).then(() => {\n setIsUserSignedIn(true);\n window.location.reload();\n }).catch(() => {\n reactToastify('Unauthorized, Please login and Continue', TOASTIFY_TYPES.ERROR);\n });\n }\n\n return createPayment();\n };\n\n const onHandlePaymentButton = () => {\n if ((isCouponAvailable || isCreditApplied) && currentDomain !== DOMAINS.DEFAULT_DOMAIN) {\n onSubmit();\n return;\n }\n if (isYearlyPlan) {\n setModalConfigs({ ...modalConfigs, isShowMultiplierModal: true });\n return;\n }\n setModalConfigs({ ...modalConfigs, isShowPurchaseTypeModal: true });\n };\n\n const renderPurchaseTypeComponent = () => {\n return (\n <>\n
    \n
    \n
    \n

    Billing Type

    \n
    \n \n
    \n\n
    \n \n
    \n \n );\n };\n\n const isDisabled = !hasPaymentEnabled\n || (activePlanName && activePlanName !== planName) || isSubscriptionActive;\n\n const buttonClassName = btnClassName ? classNames(btnClassName, { disabled: isDisabled })\n : classNames({ 'premium-btn': isPremium, 'basic-btn': !isPremium, disabled: isDisabled });\n\n return (\n <>\n {/* check herre */}\n \n
    \n \n \n \n
    \n { onHandlePaymentButton(plan); }}\n >\n {activePlanId ? 'Extend Now' : 'Order Now'}\n {isHideIcon ? '' : }\n \n
    \n {isShowPurchaseTypeModal && (\n { onSubmit(); }}\n onClose={() => { setModalConfigs({ ...modalConfigs, isShowPurchaseTypeModal: false }); }}\n title=\"\"\n okBtnTitle=\"Order Now\"\n btnClassName=\"mr-auto\"\n size=\"lg\"\n >\n {renderPurchaseTypeComponent()}\n \n )}\n {isShowMultiplierModal && (\n setModalConfigs({ ...modalConfigs, isShowPurchaseTypeModal: true })}\n onCloseModal={() => {\n setModalConfigs({ ...modalConfigs, isShowMultiplierModal: false });\n setSelectedPlan(plan);\n }}\n isPremium={isPremium}\n plansGroupedByCyclicMonths={plansGroupedByCyclicMonths}\n />\n )}\n \n );\n};\n\nPlanButton.propTypes = propTypes;\nPlanButton.defaultProps = defaultProps;\n\nexport default PlanButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DOMAINS } from 'common/constants/index';\nimport { automaticSupportedBrokers, oneClickSupportedBrokers } from 'common/brokerConfigs/config';\nimport { getContent } from 'ui/Plans/helper';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n type: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst HoveMessagedBasedOnType = ({ type }) => {\n const { currentDomain } = window;\n\n const renderNotes = (notesHtml) => {\n return (\n \n info\n \n );\n };\n\n const isDefaultDomain = currentDomain === DOMAINS.DEFAULT_DOMAIN;\n switch (type) {\n case 'backTestCredits':\n const backtestNotes = (1 credit = 1 year 1 instrument backtest);\n\n return renderNotes(backtestNotes);\n case 'liveDeploymentCredits':\n const liveNotes = (\n \n Maximum live deployments at any time.\n (Only currently running live deployments are count. Stopped live deployments are not\n considered.)\n \n );\n\n return renderNotes(liveNotes);\n case 'oneClickBrokerOrderIntegration':\n const oneClickNotes = isDefaultDomain && (\n \n (\n {getContent(oneClickSupportedBrokers)}\n )\n \n );\n\n return renderNotes(oneClickNotes);\n case 'automaticOrderWithBrokers':\n const automaticNotes = isDefaultDomain && (\n \n (\n {getContent(automaticSupportedBrokers)}\n )\n \n );\n\n return renderNotes(automaticNotes);\n\n case 'quantmanMentorShip':\n const quantmanMentorShip = (\n \n Quantman will issue you a certificate upon completion of your mentorship.\n \n );\n return renderNotes(quantmanMentorShip);\n default:\n return <>;\n }\n};\n\nHoveMessagedBasedOnType.propTypes = propTypes;\nHoveMessagedBasedOnType.defaultProps = defaultProps;\n\nexport default withErrorBoundary(HoveMessagedBasedOnType);\n","import _ from 'lodash';\nimport React from 'react';\nimport { isStrategyDomainUser } from 'ui/applicationDomainHelper';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport HoveMessagedBasedOnType from './HoveMessagedBasedOnType';\n\nconst propTypes = {\n isPremium: PropTypes.bool,\n liveRunLimit: PropTypes.number,\n historicRunLimit: PropTypes.number,\n parentClassName: PropTypes.string\n};\n\nconst defaultProps = {\n isPremium: false,\n liveRunLimit: 0,\n historicRunLimit: 0,\n parentClassName: ''\n};\n\nconst PlanContent = ({\n isPremium, liveRunLimit, historicRunLimit, parentClassName\n}) => {\n const oneIndentation = ' ';\n\n const contentList = [\n {\n id: 'calendarSpread',\n content: (\n <>Calendar Spread\n ),\n isChecked: isPremium\n },\n {\n id: 'strikeMultiplierAndAddCases',\n content: (\n <>\n Strike Multiplier and Add cases\n \n ),\n isChecked: isPremium\n },\n {\n id: 'customAdjustment',\n content: (\n <>\n Adjustment Features\n \n ),\n isChecked: isPremium\n },\n {\n id: 'marketPlacePremiumStrategyDeploy',\n content: (\n <>\n Exclusive Premium\n {oneIndentation}\n sample strategies\n \n ),\n isChecked: isPremium\n },\n {\n id: 'backTestCredits',\n content: (\n
    \n {historicRunLimit}\n {oneIndentation}\n Backtest Credits\n \n
    \n ),\n isChecked: true\n },\n {\n id: 'liveDeploymentCredits',\n content: (\n
    \n {liveRunLimit}\n Live Deployment Credits\n \n
    \n ),\n isChecked: true\n },\n ];\n\n const renderContent = ({ content, id, isChecked }) => {\n const className = classNames('fa-solid', {\n 'fa-square-check': isChecked,\n 'fa-square': !isChecked\n });\n\n const renderSpan = isChecked ? {content} : {content};\n\n return (\n \n
  • \n
    \n
    {renderSpan}
    \n
  • \n
    \n );\n };\n\n const ulClassName = parentClassName || classNames({\n 'premium-plan-list': isPremium,\n 'plan-list': !isPremium\n });\n\n return (\n
      \n {_.map(isStrategyDomainUser() ? _.takeRight(contentList, 2) : contentList, renderContent)}\n
    \n );\n};\n\nPlanContent.propTypes = propTypes;\nPlanContent.defaultProps = defaultProps;\n\nexport default PlanContent;\n","import _ from 'lodash';\nimport React from 'react';\nimport { planPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { applyCredits } from 'ui/Plans/helper';\nimport PaymentMoneyDisplay from '../common/PaymentMoneyDisplay';\nimport PlanButton from '../common/PlanButton';\nimport PlanContent from '../common/PlanContent';\n\nconst propTypes = {\n plan: planPropTypes.isRequired,\n activePlanId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n couponConfig: PropTypes.shape({ code: PropTypes.string }),\n activePlanName: PropTypes.string.isRequired,\n isSubscriptionActive: PropTypes.bool.isRequired,\n credits: PropTypes.number,\n couponCode: PropTypes.string.isRequired,\n onChangeCouponCode: PropTypes.func.isRequired,\n isApplied: PropTypes.bool.isRequired,\n onCouponUpdate: PropTypes.func.isRequired,\n message: PropTypes.string.isRequired,\n planCycleType: PropTypes.string.isRequired,\n isCreditApplied: PropTypes.bool.isRequired,\n plansGroupedByCyclicMonths: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})])\n};\n\nconst defaultProps = {\n couponConfig: {},\n activePlanId: null,\n credits: 0,\n plansGroupedByCyclicMonths: {}\n};\n\nconst PlanCard = ({\n plan, couponConfig, activePlanId, activePlanName,\n isSubscriptionActive, credits, isCreditApplied,\n couponCode, onChangeCouponCode, isApplied, onCouponUpdate, message, planCycleType,\n plansGroupedByCyclicMonths\n}) => {\n const {\n plan_name: planName, price: actualPrice, currentNetPrice, strike_price: strikePrice,\n historic_run_limit: historicRunLimit, live_run_limit: liveRunLimit, is_premium: isPremium,\n cycle_duration_in_months: duration, id: planId\n } = plan;\n const accordionId = `plan${planId}`;\n\n const planCardClassName = classNames('basic-box', {\n 'premium-box': isPremium,\n 'basic-box': !isPremium\n });\n\n const renderPlanButton = (\n \n );\n\n return (\n
    \n
    \n
    \n
    \n

    {_.startCase(planName)}

    \n
    \n \n
    \n {isPremium && \"Premium-icon\"}\n
    \n

    \n (Billed\n {' '}\n {_.startCase(planCycleType)}\n )\n

    \n

    Excluding GST

    \n
    \n
    \n
    \n {renderPlanButton}\n
    \n
    \n
    \n\n
    \n
    \n

    What's included

    \n
    \n\n \n
    \n\n
    \n
    \n
    \n \n What's included\n \n
    \n\n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n {renderPlanButton}\n
    \n
    \n );\n};\n\nPlanCard.propTypes = propTypes;\nPlanCard.defaultProps = defaultProps;\n\nexport default PlanCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport Multiplier from 'ui/Strategies/components/Strategy/Multiplier';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst MULTIPLIER_LIMIT = 10;\n\nconst propTypes = {\n price: PropTypes.number.isRequired,\n cycleMonth: PropTypes.number.isRequired,\n historicLimit: PropTypes.number.isRequired,\n liveLimit: PropTypes.number.isRequired,\n multiplier: PropTypes.number.isRequired,\n onChangeMultiplier: PropTypes.func.isRequired,\n onCreatePayment: PropTypes.func.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n};\n\nconst MultiplierModal = ({\n multiplier,\n onChangeMultiplier,\n onCreatePayment,\n onCloseModal,\n price,\n historicLimit,\n liveLimit,\n cycleMonth,\n}) => {\n const isInValidMultiplier = multiplier > MULTIPLIER_LIMIT;\n const isLiveCreditsAvailable = liveLimit > 0;\n const creditsConsumptionGuide = `1 credit = 1 Instrument x 1 Case ${historicLimit > 0 ? 'x 1 Year' : ''}`;\n\n return (\n \n
    \n
    \n

    Confirmation

    \n

    Number of AddOns

    \n \n\n {liveLimit > 0 && (\n
    \n Validity:\n {' '}\n \n {cycleMonth}\n {' '}\n month\n \n
    \n )}\n {historicLimit > 0 && (\n
    \n Backtest credits:\n {' '}\n {`${historicLimit * multiplier} (${historicLimit} * ${multiplier})`}\n
    \n )}\n {isLiveCreditsAvailable && (\n
    \n Live credits:\n {' '}\n {`${liveLimit * multiplier} (${liveLimit} * ${multiplier})`}\n
    \n )}\n \n (\n {creditsConsumptionGuide}\n )\n \n
    \n Total Addon Cost:\n \n {price * multiplier}\n {' '}\n (\n {price}\n {' '}\n *\n {multiplier}\n )\n \n
    \n {isInValidMultiplier && (\n \n )}\n {isLiveCreditsAvailable && (\n
    \n Note:\n {' '}\n To consume your addon credits, you need an active plan.\n
    \n )}\n
    \n \n );\n};\n\nMultiplierModal.propTypes = propTypes;\nexport default MultiplierModal;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { planPropTypes } from 'common/propTypes';\nimport { applyCredits } from 'ui/Plans/helper';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { paymentInitialize } from 'common/razorpay/paymentInitialize';\nimport PaymentMoneyDisplay from '../common/PaymentMoneyDisplay';\nimport MultiplierModal from '../common/MultiplierModal';\n\nconst propTypes = {\n addon: planPropTypes.isRequired,\n purchaseType: PropTypes.string,\n couponConfig: PropTypes.shape({\n code: PropTypes.string\n }),\n credits: PropTypes.number.isRequired\n};\n\nconst defaultProps = {\n purchaseType: 'addon',\n couponConfig: {}\n};\n\nconst AddonCard = ({\n addon, purchaseType, couponConfig, credits\n}) => {\n const {\n id, price, addon_name: addonName, currentNetPrice, strike_price: strikePrice, live_run_limit: liveRunLimit\n } = addon;\n const [isUserSignedIn, setIsUserSignedIn] = useState(window.isUserSignedIn);\n const isPlanActive = _.get(window, 'SA_USER_FLAGS.isPlanActive', false);\n\n const { code: coupenCode } = couponConfig;\n\n const {\n historic_run_limit: historicLimit,\n live_run_limit: liveLimit,\n cycle_duration_in_months: cycleMonth\n } = addon;\n const historicLimitStatement = `${historicLimit} Backtest credits`;\n const liveLimitStatement = `${liveLimit} live credits`;\n const { hasPaymentEnabled } = window;\n const paramCouponCode = currentNetPrice === price ? '' : coupenCode;\n const isPositiveCreditBalance = _.isNumber(credits) && credits > 0;\n\n const [multiplier, setMultiplier] = useState(1);\n const [onShowMultiplierModal, setOnShowMultiplierModal] = useState(false);\n\n const onCreatePayment = () => {\n const args = {\n addon_id: id,\n purchase_type: purchaseType,\n coupon_code: paramCouponCode,\n credits_applied: isPositiveCreditBalance,\n multiplier,\n addon_name: addonName\n };\n paymentInitialize(args, () => {\n setTimeout(() => { window.location.reload(); }, 1.5 * 1000);\n });\n };\n\n const onSubmit = () => {\n const isLiveAddon = liveRunLimit > 0;\n\n if (!isUserSignedIn) {\n return initiateUserAuth({ action: 'plan_purchase' })\n .then(() => {\n setIsUserSignedIn(true);\n window.location.reload();\n })\n .catch(() => {\n reactToastify('Unauthorized, Please login and Continue', TOASTIFY_TYPES.ERROR);\n });\n }\n\n if (isLiveAddon && !isPlanActive) {\n reactToastify('To purchase live addon, you need an active plan', TOASTIFY_TYPES.ERROR);\n return null;\n }\n\n return setOnShowMultiplierModal(true);\n };\n\n const renderLimit = (limit, statement) => {\n if (!Number(limit)) return null;\n\n return <>{statement};\n };\n\n return (\n
    \n
    {addonName}
    \n \n

    Excluding GST

    \n
    \n {renderLimit(historicLimit, historicLimitStatement)}\n {renderLimit(liveLimit, liveLimitStatement)}\n
    \n \n \n Add Now\n \n \n \n {onShowMultiplierModal && (\n setOnShowMultiplierModal(false)}\n />\n )}\n
    \n );\n};\n\nAddonCard.propTypes = propTypes;\nAddonCard.defaultProps = defaultProps;\n\nexport default AddonCard;\n","import _ from 'lodash';\nimport React from 'react';\nimport AvailableFreeTrialCard from 'common/components/AvailableFreeTrialCard';\nimport { webAndMobileDefaultProps, webAndMobileRootPropTypes } from 'ui/Plans/defaultProps';\nimport PlanTypeSelector from '../common/PlanTypeSelector';\nimport PlanCard from './PlanCard';\nimport AddonCard from './AddonCard';\nimport Credits from '../common/Credits';\nimport PaymentCoupons from '../common/PaymentCoupons';\n\nconst propTypes = webAndMobileRootPropTypes;\nconst defaultProps = webAndMobileDefaultProps;\n\nconst Web = ({\n planCycleType,\n setPlanCycleType,\n activePlanId,\n activePlanName,\n addons,\n couponCode,\n setCouponCode,\n isApplied,\n appliedCouponConfig,\n creditBalance,\n setCreditBalance,\n isCreditApplied,\n freePlanDetails,\n setIsCreditApplied,\n message,\n freeTrailDays,\n currentCyclicPeriodPlans,\n currentCyclicPeriodAddons,\n plansGroupedByCyclicMonths,\n shouldShowAddons,\n isSubscriptionActive,\n planPageNotice,\n shouldShowCoupon,\n onCouponUpdate\n}) => {\n const oneIndentation = ' ';\n\n const renderAddon = (addon, idx) => (\n \n );\n\n const renderAddons = () => {\n if (!shouldShowAddons) return null;\n if (_.isEmpty(addons)) return null;\n\n return (\n
    \n
    \n
    \n
    \n

    AddOn Credits

    \n
    \n
    \n {_.map(currentCyclicPeriodAddons, renderAddon)}\n
    \n
    \n );\n };\n\n const renderPlan = (plan, key) => {\n return (\n
    \n \n
    \n );\n };\n\n const renderFreePlanDetails = () => {\n if (isUserSignedIn) return null;\n\n const { historic_run_limit: historicRunLimit, live_run_limit: liveRunLimit } = freePlanDetails;\n const freeTrailInDays = _.get(freeTrailDays, 'default', 0);\n\n return (\n
    \n
    \n
    \n
    \n
    \n

    \n

    Choose your plan. still not sure?

    \n

    \n

    {freeTrailInDays !== 0 && `Try our ${freeTrailInDays}-day free trial.`}

    \n \n {historicRunLimit}\n {oneIndentation}\n Backtest,\n {oneIndentation}\n {liveRunLimit}\n {oneIndentation}\n Live, F&O and Equity\n \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n\n const renderPlanTypeSelector = () => {\n return (\n
    \n
    \n \n
    \n
    \n );\n };\n\n const renderPlanPageHeaders = () => {\n let headerClass = 'col-md-12 m-auto d-flex align-item-center gap-15 ';\n headerClass += 'flex-wrap flex-lg-nowrap justify-content-center';\n\n return (\n <>\n {renderPlanTypeSelector()}\n {shouldShowCoupon && (\n
    \n {\n setCreditBalance(newCreditBalance);\n setIsCreditApplied(isCreditUsed);\n }\n }\n />\n \n
    \n )}\n\n {isSubscriptionActive\n && (\n
    \n Want to upgrade or extend plan?\n {oneIndentation}\n Please cancel your recurring subscription and continue with one-time payment.\n
    \n )}\n \n );\n };\n\n const applicationDomainNotice = () => {\n if (!planPageNotice) { return null; }\n\n return (\n
    {planPageNotice}
    \n );\n };\n\n return (\n <>\n
    \n \n

    \n Plans for every level of ambition\n

    \n\n {applicationDomainNotice()}\n {renderPlanPageHeaders()}\n\n
    \n
    \n
    \n {_.map(_.orderBy(currentCyclicPeriodPlans, 'price', 'asc'), renderPlan)}\n {renderAddons()}\n
    \n {renderFreePlanDetails()}\n
    \n \n );\n};\n\nWeb.propTypes = propTypes;\nWeb.defaultProps = defaultProps;\n\nexport default Web;\n","import _ from 'lodash';\nimport React from 'react';\nimport { planPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { applyCredits } from 'ui/Plans/helper';\nimport PaymentMoneyDisplay from '../common/PaymentMoneyDisplay';\nimport PlanButton from '../common/PlanButton';\n\nconst propTypes = {\n plan: planPropTypes.isRequired,\n activePlanId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n couponConfig: PropTypes.shape({ code: PropTypes.string }),\n activePlanName: PropTypes.string.isRequired,\n isSubscriptionActive: PropTypes.bool.isRequired,\n credits: PropTypes.number,\n couponCode: PropTypes.string.isRequired,\n onChangeCouponCode: PropTypes.func.isRequired,\n isApplied: PropTypes.bool.isRequired,\n onCouponUpdate: PropTypes.func.isRequired,\n message: PropTypes.string.isRequired,\n planCycleType: PropTypes.string.isRequired,\n setSelectedPlanId: PropTypes.func.isRequired,\n isCreditApplied: PropTypes.bool.isRequired,\n isActive: PropTypes.bool.isRequired,\n plansGroupedByCyclicMonths: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({})])\n};\n\nconst defaultProps = {\n couponConfig: {},\n activePlanId: null,\n credits: 0,\n plansGroupedByCyclicMonths: {}\n};\n\nconst PlanCard = ({\n plan, couponConfig, activePlanId, activePlanName,\n isSubscriptionActive, credits, isCreditApplied, isActive, setSelectedPlanId,\n couponCode, onChangeCouponCode, isApplied, onCouponUpdate, message, planCycleType,\n plansGroupedByCyclicMonths\n}) => {\n const {\n plan_name: planName, price: actualPrice, currentNetPrice, strike_price: strikePrice,\n cycle_duration_in_months: duration, id: planId\n } = plan;\n\n const planCardClassName = classNames('plan-card-mobile', {\n active: isActive,\n });\n\n const renderPlanButton = (\n \n );\n\n return (\n
    setSelectedPlanId(planId)}>\n

    {_.startCase(planName)}

    \n
    \n \n
    \n
    \n

    \n (Billed\n {' '}\n {_.startCase(planCycleType)}\n )\n

    \n

    Excluding GST

    \n
    \n
    \n {renderPlanButton}\n
    \n setSelectedPlanId(planId)} />\n
    \n
    \n
    \n
    \n );\n};\n\nPlanCard.propTypes = propTypes;\nPlanCard.defaultProps = defaultProps;\n\nexport default PlanCard;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { planPropTypes } from 'common/propTypes';\nimport { applyCredits } from 'ui/Plans/helper';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { paymentInitialize } from 'common/razorpay/paymentInitialize';\nimport PaymentMoneyDisplay from '../common/PaymentMoneyDisplay';\nimport MultiplierModal from '../common/MultiplierModal';\n\nconst propTypes = {\n addon: planPropTypes.isRequired,\n purchaseType: PropTypes.string,\n couponConfig: PropTypes.shape({\n code: PropTypes.string\n }),\n credits: PropTypes.number.isRequired\n};\n\nconst defaultProps = {\n purchaseType: 'addon',\n couponConfig: {}\n};\n\nconst AddonCard = ({\n addon, purchaseType, couponConfig, credits\n}) => {\n const {\n id, price, addon_name: addonName, currentNetPrice, strike_price: strikePrice, live_run_limit: liveRunLimit\n } = addon;\n const [isUserSignedIn, setIsUserSignedIn] = useState(window.isUserSignedIn);\n const isPlanActive = _.get(window, 'SA_USER_FLAGS.isPlanActive', false);\n\n const { code: coupenCode } = couponConfig;\n\n const {\n historic_run_limit: historicLimit,\n live_run_limit: liveLimit,\n cycle_duration_in_months: cycleMonth\n } = addon;\n const historicLimitStatement = `${historicLimit} Backtest credits`;\n const liveLimitStatement = `${liveLimit} live credits`;\n const { hasPaymentEnabled } = window;\n const paramCouponCode = currentNetPrice === price ? '' : coupenCode;\n const isPositiveCreditBalance = _.isNumber(credits) && credits > 0;\n\n const [multiplier, setMultiplier] = useState(1);\n const [onShowMultiplierModal, setOnShowMultiplierModal] = useState(false);\n\n const onCreatePayment = () => {\n const args = {\n addon_id: id,\n purchase_type: purchaseType,\n coupon_code: paramCouponCode,\n credits_applied: isPositiveCreditBalance,\n multiplier,\n addon_name: addonName\n };\n paymentInitialize(args, () => {\n setTimeout(() => { window.location.reload(); }, 1.5 * 1000);\n });\n };\n\n const onSubmit = () => {\n const isLiveAddon = liveRunLimit > 0;\n\n if (!isUserSignedIn) {\n return initiateUserAuth({ action: 'plan_purchase' })\n .then(() => {\n setIsUserSignedIn(true);\n window.location.reload();\n })\n .catch(() => {\n reactToastify('Unauthorized, Please login and Continue', TOASTIFY_TYPES.ERROR);\n });\n }\n\n if (isLiveAddon && !isPlanActive) {\n reactToastify('To purchase live addon, you need an active plan', TOASTIFY_TYPES.ERROR);\n return null;\n }\n\n return setOnShowMultiplierModal(true);\n };\n\n const renderLimit = (limit, statement) => {\n if (!Number(limit)) return null;\n\n return <>{statement};\n };\n\n return (\n
    \n
    {addonName}
    \n \n

    Excluding GST

    \n
    \n {renderLimit(historicLimit, historicLimitStatement)}\n {renderLimit(liveLimit, liveLimitStatement)}\n
    \n \n \n Add Now\n \n \n \n {onShowMultiplierModal && (\n setOnShowMultiplierModal(false)}\n />\n )}\n
    \n );\n};\n\nAddonCard.propTypes = propTypes;\nAddonCard.defaultProps = defaultProps;\n\nexport default AddonCard;\n","import classNames from 'classnames';\nimport React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { webAndMobileDefaultProps, webAndMobileRootPropTypes } from 'ui/Plans/defaultProps';\nimport PlanTypeSelector from '../common/PlanTypeSelector';\nimport Credits from '../common/Credits';\nimport PlanCard from './PlanCard';\nimport PlanContent from '../common/PlanContent';\nimport PlanButton from '../common/PlanButton';\nimport AddonCard from './AddonCard';\nimport PaymentCoupons from '../common/PaymentCoupons';\n\nconst propTypes = webAndMobileRootPropTypes;\nconst defaultProps = webAndMobileDefaultProps;\n\nconst Mobile = ({\n planCycleType,\n setPlanCycleType,\n activePlanId,\n activePlanName,\n couponCode,\n setCouponCode,\n isApplied,\n appliedCouponConfig,\n creditBalance,\n setCreditBalance,\n isCreditApplied,\n setIsCreditApplied,\n message,\n currentCyclicPeriodPlans,\n currentCyclicPeriodAddons,\n plansGroupedByCyclicMonths,\n shouldShowAddons,\n isSubscriptionActive,\n shouldShowCoupon,\n onCouponUpdate\n}) => {\n const [currentTab, setCurrentTab] = useState('plans');\n const [selectedPlanId, setSelectedPlanId] = useState(0);\n\n useEffect(() => {\n setSelectedPlanId(\n _.chain(currentCyclicPeriodPlans)\n .orderBy('price', 'desc')\n .first()\n .value()?.id\n );\n }, [planCycleType]);\n\n const selectedPlan = _.find(currentCyclicPeriodPlans, { id: selectedPlanId }) || {\n historic_run_limit: 0, live_run_limit: 0, is_premium: false\n };\n\n const {\n historic_run_limit: historicRunLimit, live_run_limit: liveRunLimit, is_premium: isPremium,\n } = selectedPlan;\n\n const tabConfigs = [\n { key: 'plans', label: 'Plans' },\n { key: 'addons', label: 'Add-ons' }\n ];\n\n const renderli = (liConfig) => {\n const liClassName = classNames({\n 'nav-link': true, active: currentTab === liConfig.key,\n });\n\n return (\n
  • \n setCurrentTab(liConfig.key)}>\n {liConfig.label}\n \n
  • \n );\n };\n\n const renderPlan = (plan, idx) => {\n return (\n \n );\n };\n\n const renderCouponAndCredits = () => {\n if (!shouldShowCoupon) return null;\n let headerClass = 'col-md-12 m-auto d-flex align-item-start gap-15 ';\n headerClass += ' justify-content-center';\n\n return (\n
    \n
    \n {\n setCreditBalance(newCreditBalance);\n setIsCreditApplied(isCreditUsed);\n }\n }\n />\n \n
    \n
    \n );\n };\n\n const renderPlanContent = () => {\n return (\n
    \n
    \n
    \n \n
    \n
    \n {renderCouponAndCredits()}\n
    \n {_.map(_.orderBy(currentCyclicPeriodPlans, 'price', 'desc'), renderPlan)}\n
    \n
    \n

    Whats included

    \n \n
    \n \n
    \n\n
    \n
    \n );\n };\n\n const renderAddon = (addon, id) => (\n \n );\n\n const renderAddonsContent = (isShowCreditAndCoupon = true) => {\n if (!shouldShowAddons) return null;\n if (_.isEmpty(currentCyclicPeriodAddons)) return null;\n\n return (\n <>\n {isShowCreditAndCoupon && renderCouponAndCredits()}\n
    \n {_.map(currentCyclicPeriodAddons, renderAddon)}\n
    \n \n );\n };\n\n return (\n <>\n
      \n {tabConfigs.map((tabConfig) => renderli(tabConfig))}\n
    \n\n {currentTab === 'plans' && (\n <>\n {renderPlanContent()}\n {renderAddonsContent(false)}\n \n )}\n {currentTab === 'addons' && renderAddonsContent(true)}\n \n );\n};\n\nMobile.propTypes = propTypes;\nMobile.defaultProps = defaultProps;\n\nexport default Mobile;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { planPropTypes } from 'common/propTypes';\nimport usePlans from './usePlans';\nimport Web from './components/Web/index';\nimport Mobile from './components/Mobile/index';\n\nconst propTypes = {\n freePlanDetails: planPropTypes,\n brokerId: PropTypes.string,\n activePlan: PropTypes.shape({}),\n freeTrailDays: PropTypes.shape({}),\n activeSubscription: PropTypes.shape({})\n};\nconst defaultProps = {\n freePlanDetails: {},\n brokerId: null,\n activePlan: {},\n freeTrailDays: {},\n activeSubscription: {}\n};\n\nconst Plans = ({\n freePlanDetails, brokerId, activePlan, freeTrailDays, activeSubscription\n}) => {\n const configs = usePlans({ activePlan, activeSubscription });\n\n if (_.isEmpty(configs?.planGroups) || !_.keys(freePlanDetails).length) return null;\n\n const propsArgs = {\n ...configs, freePlanDetails, freeTrailDays, brokerId\n };\n\n return (\n <>\n
    \n \n
    \n
    \n \n
    \n \n\n );\n};\n\nPlans.propTypes = propTypes;\nPlans.defaultProps = defaultProps;\nexport default Plans;\n","import _ from 'lodash';\n// export const EXCHANGES = ['NSE', 'MCX', 'NFO', 'CDS']; // hidden for furure\nexport const EXCHANGES = ['NFO'];\n\nexport const getExchangeAndSymbol = (instrument) => {\n let exchange;\n let symbol;\n\n if (!_.isUndefined(instrument)) {\n [exchange, symbol] = _.split(instrument || '', ':');\n }\n\n return {\n exchange: exchange || EXCHANGES[0],\n symbol: symbol || '',\n };\n};\n\nexport const getInstrument = (exchange, symbol) => {\n return `${exchange}:${symbol}`;\n};\n\nexport const getInstrumentLabel = ({ symbol, type }) => {\n const label = symbol;\n return `${label} (${type})`;\n};\n","import React from 'react';\nimport Form from 'react-bootstrap/Form';\nimport PropTypes from 'prop-types';\n\nimport {\n getExchangeAndSymbol, getInstrument, EXCHANGES,\n} from 'common/utils/config';\nimport { AsyncTypeahead } from 'react-bootstrap-typeahead';\nimport {\n SEGMENT_CONFIG, SEGMENT_NAMES, SEGMENT_SUPPORT_CONFIGS, BFO_INSTRUMENTS\n} from 'common/constants/index';\nimport _ from 'lodash';\nimport { LocaleUtils } from 'v2/common/utils/zeequantConstants';\n\nconst propTypes = {\n shouldDisableInput: PropTypes.bool,\n isInvalid: PropTypes.bool,\n instrument: PropTypes.string,\n exchange: PropTypes.string,\n onComplete: PropTypes.func,\n shouldShowExchange: PropTypes.bool,\n onExchangeChange: PropTypes.func,\n shouldClearTradeSymbol: PropTypes.bool,\n segment: PropTypes.string,\n onChangeSegment: PropTypes.func,\n shouldShowSegment: PropTypes.bool,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired\n};\n\nconst defaultProps = {\n isInvalid: false,\n shouldShowExchange: true,\n shouldClearTradeSymbol: false,\n instrument: '',\n exchange: '',\n segment: SEGMENT_CONFIG.equityAndFuture,\n onComplete: _.noop,\n shouldShowSegment: true,\n onExchangeChange: _.noop,\n shouldDisableInput: false,\n onChangeSegment: () => { }\n};\n\nexport default class InstrumentInput extends React.Component {\n constructor(props) {\n super(props);\n\n this.asyncTypeaheadRef = React.createRef();\n const { instrument } = props;\n const { exchange } = getExchangeAndSymbol(instrument);\n\n this.state = {\n exchange,\n symbol: '',\n suggestions: [],\n isLoading: false\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const { instrument, exchange: exchangeFromProps, shouldClearTradeSymbol } = props;\n const { exchange: currentExchange, symbol } = state;\n const { exchange, symbol: propsSymbol } = getExchangeAndSymbol(instrument);\n\n if (shouldClearTradeSymbol) return { symbol: '' };\n\n if ((exchangeFromProps) && (exchangeFromProps !== currentExchange)) {\n return { exchange: exchangeFromProps };\n }\n\n if (exchange !== currentExchange) return { exchange: currentExchange };\n\n if (symbol) return { symbol };\n\n return { exchange, symbol: propsSymbol };\n }\n\n getTradingSymbolSuggestions = (searchTerm) => {\n if (!searchTerm) {\n this.setState({ suggestions: [] });\n return;\n }\n const ignorableInstruments = [\n 'AUBANK',\n 'IEX',\n 'SBICARD',\n 'SHRIRAMFIN',\n 'INDHOTEL',\n 'ASTRAL',\n 'MPHASIS',\n 'PERSISTENT',\n 'POLYCAB',\n 'ABBOTINDIA',\n 'IRCTC'\n ];\n\n const instruments = LocaleUtils().getAllSymbols();\n\n this.setState({ isLoading: true });\n\n const newSuggestions = _.chain(instruments)\n .filter((instrument) => _.includes(instrument.toLowerCase(), searchTerm.toLowerCase()))\n .filter((instrument) => !_.includes(ignorableInstruments, instrument))\n .map((instrument) => ({\n label: instrument,\n value: instrument\n }))\n .value();\n this.setState({ suggestions: newSuggestions, isLoading: false });\n }\n\n onExchangeChange = (event) => {\n this.asyncTypeaheadRef.current.clear();\n this.asyncTypeaheadRef.current.focus();\n\n const { onExchangeChange } = this.props;\n const newExchange = event.target.value;\n\n this.setState({\n exchange: newExchange,\n symbol: '',\n suggestions: []\n });\n\n onExchangeChange(newExchange);\n }\n\n onTradingSymbolChange = (selectedTradingSymbols) => {\n const symbol = _.get(selectedTradingSymbols[0], 'value', '');\n const { onComplete } = this.props;\n const { exchange } = this.state;\n const alteredExchange = (BFO_INSTRUMENTS.includes(symbol)) ? 'BFO' : exchange;\n const instrument = getInstrument(alteredExchange, symbol);\n\n this.setState({\n symbol,\n suggestions: []\n }, () => { if (symbol) onComplete(instrument); });\n }\n\n renderExchangeInput = () => {\n const { exchange } = this.state;\n const options = _.map(EXCHANGES, (exch, key) => ());\n\n return (\n this.onExchangeChange(event)}\n >\n {options}\n \n );\n }\n\n renderTradingSymbolInput = () => {\n const { isInvalid, shouldDisableInput } = this.props;\n const { symbol, suggestions, isLoading } = this.state;\n const alteredSuggestions = _.map(suggestions, (suggestion) => {\n const { value } = suggestion;\n return { label: value, value };\n });\n\n const selectedTradingSymbols = _.isEmpty(symbol) ? [] : [symbol];\n\n return (\n \n );\n }\n\n getSegmentConfig = () => {\n const { segments } = this.props;\n const { isSupportEquity, isSupportFuture, isSupportOption } = SEGMENT_SUPPORT_CONFIGS(segments);\n const isNonPaidView = !isSupportEquity && !isSupportFuture && !isSupportOption;\n\n if (isNonPaidView) { // non paid users flow and before login flow\n const alteredSegmentNames = _.map(SEGMENT_NAMES, (segmentNames) => { return segmentNames; });\n\n return _.compact(alteredSegmentNames);\n }\n\n // paid flow for users...\n let newSegments = [];\n const optionName = isSupportOption ? ' & Options' : '';\n\n if (isSupportEquity) newSegments = [...newSegments, { ...SEGMENT_NAMES[1] }];\n if (isSupportFuture) {\n newSegments = [...newSegments, { ...SEGMENT_NAMES[0], displayName: `Future${optionName}` }];\n }\n\n return newSegments;\n };\n\n renderSegments = () => {\n const { segment, onChangeSegment } = this.props;\n const newSegments = this.getSegmentConfig();\n if (_.isEmpty(newSegments)) return null;\n\n const options = _.map(newSegments,\n ({ value, displayName }) => ());\n\n return (\n onChangeSegment(event.target.value)}\n >\n {options}\n \n );\n };\n\n render() {\n const { shouldShowExchange, shouldShowSegment } = this.props;\n\n return (\n
    \n
    \n
    \n\n NFO\n {/* hidden (common) .. because equity integration */}\n\n
    \n {shouldShowExchange && this.renderExchangeInput()}\n
    \n {/* hided exchange */}\n
    \n {shouldShowSegment && this.renderSegments()}\n
    \n\n
    \n {this.renderTradingSymbolInput()}\n
    \n
    \n );\n }\n}\n\nInstrumentInput.propTypes = propTypes;\nInstrumentInput.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { getExchangeAndSymbol } from 'common/utils/config';\n\nconst renderInstruments = (onRemoveInstrumentGroup) => (instrumentGroup, instrumentGroupIndex) => {\n const instrumentsContent = _.map(instrumentGroup, (instrument) => {\n const { symbol } = getExchangeAndSymbol(instrument);\n\n return symbol;\n });\n\n return (\n
    \n
    \n\n \n {_.join(instrumentsContent, ', ')}\n \n\n onRemoveInstrumentGroup(instrumentGroupIndex)}\n >\n close\n \n
    \n
    \n );\n};\n\nconst ViewInstrumentGroup = (props) => {\n const { instrumentGroups, onRemoveInstrumentGroup } = props;\n\n return _.map(instrumentGroups, renderInstruments(onRemoveInstrumentGroup));\n};\n\nexport default ViewInstrumentGroup;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport InstrumentInput from 'common/components/InstrumentInput';\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport ViewInstrumentGroup from './ViewInstrumentGroup';\n\nconst propTypes = {\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n onAddInstrumentGroup: PropTypes.func.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n onRemoveInstrumentGroup: PropTypes.func.isRequired,\n isInValid: PropTypes.bool,\n titleMdSize: PropTypes.string,\n inputMdSize: PropTypes.string,\n shouldHideLabel: PropTypes.bool,\n segment: PropTypes.string,\n onChangeSegment: PropTypes.func,\n segments: PropTypes.arrayOf(PropTypes.string)\n};\nconst defaultProps = {\n isInValid: false,\n titleMdSize: 'col-md-2',\n inputMdSize: 'col-md-10',\n shouldHideLabel: false,\n segment: '',\n onChangeSegment: () => {},\n segments: []\n};\nconst MAX_INSTRUMENT_GROUPS_ALLOWED = 2;\n\nconst InstrumentGroupBuilder = (props) => {\n const {\n maxInstrumentsInGroup, onAddInstrumentGroup, instrumentGroups, onRemoveInstrumentGroup, isInValid,\n titleMdSize, inputMdSize, shouldHideLabel, segment, onChangeSegment, segments\n } = props;\n const [exchange, onChangeExchange] = useState('');\n const [shouldClearTradeSymbol, onClearTradeSymbolChange] = useState(false);\n const [instrumentGroup, onChangeInstrumentGroup] = useState([]);\n const shouldDisableInput = instrumentGroups.length >= MAX_INSTRUMENT_GROUPS_ALLOWED;\n const lmtReachedMsg = shouldDisableInput ? 'max groups limit reached' : '';\n const instrumentInputRef = React.createRef();\n\n const onInstrumentAdd = (newInstrument, instrumentIndex) => {\n const newInstrumentGroup = instrumentGroup;\n newInstrumentGroup[instrumentIndex] = newInstrument;\n\n const numberOfInstrumentsInGroup = _.size(\n _.filter(newInstrumentGroup, (instrument) => !!instrument)\n );\n\n onChangeInstrumentGroup(newInstrumentGroup);\n const instrumentInputs = $(instrumentInputRef.current).find('.rbt-input-main');\n const instrumentToFocus = (instrumentIndex + 1) % maxInstrumentsInGroup;\n\n instrumentInputs[instrumentToFocus].focus();\n\n if (numberOfInstrumentsInGroup === (maxInstrumentsInGroup)) {\n onAddInstrumentGroup(instrumentGroup);\n onChangeInstrumentGroup([]);\n onClearTradeSymbolChange(true);\n instrumentInputs[0].focus();\n }\n };\n\n useEffect(() => {\n if (shouldClearTradeSymbol) onClearTradeSymbolChange(false);\n }, [instrumentGroup, shouldClearTradeSymbol]);\n\n return (\n <>\n {!shouldHideLabel && (\n
    \n \n
    \n )}\n\n
    \n
    \n {_.times(maxInstrumentsInGroup, (idx) => {\n return (\n
    \n onChangeExchange(newExchange)}\n onComplete={(newInstrument) => onInstrumentAdd(newInstrument, idx)}\n />\n \n
    \n );\n })}\n
    \n
    \n
    \n
    \n \n
    \n \n );\n};\n\nInstrumentGroupBuilder.propTypes = propTypes;\nInstrumentGroupBuilder.defaultProps = defaultProps;\n\nexport default InstrumentGroupBuilder;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nconst propTypes = {\n templateConfig: PropTypes.shape({}).isRequired,\n templateName: PropTypes.string.isRequired,\n instruments: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\n timeValidate: PropTypes.func,\n segment: PropTypes.string.isRequired\n};\n\nconst defaultProps = {\n timeValidate: () => { }\n};\n\nconst TemplateFooter = ({\n templateConfig, templateName, instruments, timeValidate, segment\n}) => {\n const config = {\n ...templateConfig,\n instruments,\n segment\n };\n\n const navigateAdvanceBuilder = () => {\n let url = 'runs/new?is_basic_builder=false&';\n url += `templateName=${templateName}&`;\n url += `template=${encodeURIComponent(JSON.stringify(config))}`;\n window.location.href = url;\n };\n\n const toAdvancedBuilder = () => {\n if (_.includes(['intradyStraddle', 'ironFly'], templateName)) {\n const { time } = config;\n const MARKET_START_TIME = moment('9:14', 'h:mm k');\n const MARKET_END_TIME = moment('15:29', 'h:mm k');\n const minTime = moment(time, 'h:mm k');\n if (moment(minTime, 'h:mm k').isBetween(MARKET_START_TIME, MARKET_END_TIME)) navigateAdvanceBuilder();\n else timeValidate();\n } else navigateAdvanceBuilder();\n };\n\n return (\n
    \n toAdvancedBuilder()}\n >\n Continue\n \n arrow_forward_ios\n \n \n
    \n );\n};\n\nTemplateFooter.defaultProps = defaultProps;\nTemplateFooter.propTypes = propTypes;\n\nexport default TemplateFooter;\n","import _ from 'lodash';\nimport { isIndexInstrumentPresentInQuantInstrumentGroups } from 'common/utils/InstrumentUtils';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { OPTIONS_EXPIRY } from 'modules/QuantBuilder/config/index';\nimport { POSITION_VALUE_TYPES } from 'v2/common/constants/index';\n\nconst strikeBasedValues = (iteration, optionType) => {\n const strikeArray = [];\n const isOptionTypePE = optionType === 'PE';\n _.range(Number(`-${iteration}`), iteration + 1).forEach((index) => {\n if (index < 0) {\n strikeArray.push({\n optionShow: isOptionTypePE\n ? `OTM ${Math.abs(index)}` : `ITM ${Math.abs(index)}`,\n value: `${index}`\n });\n }\n if (index === 0) {\n strikeArray.push({ optionShow: 'ATM', value: '0' });\n }\n if (index > 0) {\n strikeArray.push({\n optionShow: isOptionTypePE\n ? `ITM ${index}` : `OTM ${index}`,\n value: `${index}`\n });\n }\n });\n return strikeArray;\n};\n\nexport const strikeIndexes = (optionType, instrumentGroups) => {\n if (isIndexInstrumentPresentInQuantInstrumentGroups(instrumentGroups)) {\n return strikeBasedValues(30, optionType);\n } // working fine.. TODO.. when ready made strategy changes make..\n // have to make common.. remove seperate logics..\n\n return strikeBasedValues(10, optionType);\n};\n\nexport const comparisonTypesTemplates = [\n { optionShow: 'crossesAbove', value: 'crossesAbove' },\n { optionShow: 'equalTo', value: 'equalTo' },\n { optionShow: 'isAbove', value: 'isAbove' },\n { optionShow: 'isBelow', value: 'isBelow' },\n { optionShow: 'crossesBelow', value: 'crossesBelow' },\n];\n\nexport const intervalTemplates = [\n { optionShow: '1 minutes', value: '1 minutes' },\n { optionShow: '3 minutes', value: '3 minutes' },\n { optionShow: '5 minutes', value: '5 minutes' },\n { optionShow: '15 minutes', value: '15 minutes' },\n { optionShow: '30 minutes', value: '30 minutes' },\n { optionShow: '1 hours', value: '1 hours' },\n];\n\nexport const actionTypesTemplates = [\n { optionShow: 'Buy', value: 'buy' },\n { optionShow: 'Sell', value: 'sell' },\n];\n\nexport const optionTypesTemplates = [\n { optionShow: 'CE', value: 'CE' },\n { optionShow: 'PE', value: 'PE' },\n];\n\nexport const movingAverageTypeTemplate = [\n { optionShow: 'simpleMovingAverage', value: 'simpleMovingAverage' },\n { optionShow: 'exponentialMovingAverage', value: 'exponentialMovingAverage' },\n { optionShow: 'weightedMovingAverage', value: 'weightedMovingAverage' },\n];\n\nexport const transactionTypesTemplate = [\n { optionShow: 'option', value: 'option' },\n { optionShow: 'future', value: 'future' },\n];\n\nexport const daysTemplate = () => {\n const dayArray = [];\n _.range(0, 30).forEach((index) => {\n dayArray.push({ optionShow: `${index}`, value: `${index}` });\n });\n return dayArray;\n};\n\nexport const monthly = [\n { optionShow: OPTIONS_EXPIRY.monthly, value: OPTIONS_EXPIRY.monthly },\n];\n\nexport const weekly = [\n { optionShow: 'weekly', value: 'weekly' },\n];\n\nexport const standardDeviationTemplate = [\n { optionShow: 'ATM', value: '0' },\n { optionShow: '1 SD', value: '1' },\n { optionShow: '2 SD', value: '2' },\n { optionShow: '3 SD', value: '3' },\n];\n\nexport const priceAndPercentTemplate = [\n { optionShow: '%', value: 'percent' },\n { optionShow: '₹', value: 'price' },\n];\n\nexport const isPercent = (type) => type === 'percent';\n\nexport const getStopGainPercent = (type, amount) => {\n if (isPercent(type)) return Number(amount);\n\n return undefined;\n};\n\nexport const isPrice = (type) => type === 'price';\n\nexport const getStopGainPrice = (type, amount) => {\n if (isPrice(type)) return Number(amount);\n\n return undefined;\n};\n\nexport const getQuantityObject = (value) => {\n return {\n value,\n type: POSITION_VALUE_TYPES.Lot,\n };\n};\n\nexport const handleErrors = (value) => {\n if (value === '') return '0';\n\n let targetValue = value;\n if (targetValue.substring(0, 1) === '0') {\n targetValue = targetValue.substring(1);\n return targetValue;\n }\n\n return value;\n};\n\nexport const CURRENT_ONE_MINUTE_CANDLE_NAME = 'current 1 minute';\n\nexport const current1minuteCandle = () => {\n const currentCandle = PipeDefinitionUtility.getPipeConfigDefaults('currentCandle');\n const { config } = currentCandle;\n\n return {\n ...currentCandle,\n name: CURRENT_ONE_MINUTE_CANDLE_NAME,\n config: { ...config, candleInterval: '1 minutes' }\n };\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]).isRequired,\n onChange: PropTypes.func.isRequired,\n optionItems: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n disabled: PropTypes.bool,\n style: PropTypes.string,\n};\n\nconst defaultProps = {\n disabled: false,\n style: 'form-control'\n};\n\nconst Select = ({\n value,\n onChange,\n optionItems,\n disabled,\n style\n}) => {\n const optionIteration = (optionValue, key) => (\n \n );\n\n return (\n \n {_.map(optionItems, optionIteration)}\n \n );\n};\n\nSelect.propTypes = propTypes;\nSelect.defaultProps = defaultProps;\n\nexport default Select;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]).isRequired,\n onChange: PropTypes.func.isRequired,\n type: PropTypes.string,\n style: PropTypes.string,\n};\n\nconst defaultProps = {\n type: 'number',\n style: 'form-control',\n};\n\nconst Input = ({\n value,\n onChange,\n type,\n style\n}) => {\n return (\n \n );\n};\n\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\n\nexport default Input;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from './Select';\nimport Input from './Input';\nimport {\n actionTypesTemplates, handleErrors, optionTypesTemplates,\n priceAndPercentTemplate, standardDeviationTemplate,\n strikeIndexes,\n} from '../config';\n\nconst numberOrStringPropType = PropTypes.shape({\n key: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]).isRequired,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]).isRequired,\n});\n\nconst propTypes = {\n optionType: numberOrStringPropType.isRequired,\n strikeIndex: numberOrStringPropType.isRequired,\n actiontype: numberOrStringPropType.isRequired,\n stopLoss: numberOrStringPropType.isRequired,\n stopGain: numberOrStringPropType.isRequired,\n handleStrategyChange: PropTypes.func.isRequired,\n isStandardDeviation: PropTypes.bool,\n transaction: PropTypes.string,\n quantity: numberOrStringPropType.isRequired,\n stopGainType: numberOrStringPropType.isRequired,\n stopLossType: numberOrStringPropType.isRequired,\n instruments: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string))\n};\n\nconst defaultProps = {\n isStandardDeviation: false,\n transaction: 'option',\n instruments: [],\n};\n\nconst TemplateSentence = ({\n optionType,\n handleStrategyChange,\n strikeIndex,\n actiontype,\n stopLoss,\n stopGain,\n isStandardDeviation,\n transaction,\n quantity,\n stopGainType,\n stopLossType,\n instruments\n}) => {\n const optionItemsForStrikeIndex = () => {\n if (isStandardDeviation) return standardDeviationTemplate;\n return strikeIndexes(optionType.value, instruments);\n };\n\n return (\n
    \n
    \n handleStrategyChange(actiontype.key, event.target.value)}\n optionItems={actionTypesTemplates}\n />\n
    \n\n
    \n handleStrategyChange(quantity.key, handleErrors(event.target.value))}\n />\n Lot\n
    \n\n
    \n handleStrategyChange(optionType.key, event.target.value)}\n optionItems={optionTypesTemplates}\n disabled={transaction !== 'option'}\n />\n
    \n\n
    \n handleStrategyChange(strikeIndex.key, event.target.value)}\n optionItems={optionItemsForStrikeIndex()}\n disabled={transaction !== 'option'}\n />\n
    \n\n
    \n with SL\n
    \n handleStrategyChange(stopLossType.key, event.target.value)}\n optionItems={priceAndPercentTemplate}\n />\n handleStrategyChange(stopLoss.key, event.target.value)}\n />\n
    \n
    \n\n
    \n with SG\n
    \n handleStrategyChange(stopGainType.key, event.target.value)}\n optionItems={priceAndPercentTemplate}\n />\n handleStrategyChange(stopGain.key, event.target.value)}\n />\n
    \n
    \n
    \n );\n};\n\nTemplateSentence.propTypes = propTypes;\nTemplateSentence.defaultProps = defaultProps;\n\nexport default TemplateSentence;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n label: PropTypes.string.isRequired,\n className: PropTypes.string.isRequired\n};\n\nconst defaultProps = {\n};\n\nconst LabelTags = ({ label, className }) => {\n const labelClassName = `badge badge-pill ${className}`;\n\n return (\n {label}\n );\n};\n\nLabelTags.propTypes = propTypes;\nLabelTags.defaultProps = defaultProps;\n\nexport default LabelTags;\n","import _ from 'lodash';\nimport { getAlteredEmptyQuantConfig } from 'modules/QuantBuilder/config/index';\nimport {\n current1minuteCandle, CURRENT_ONE_MINUTE_CANDLE_NAME, getStopGainPercent, getStopGainPrice\n} from '../../config';\n\nexport const SUPER_TREND = 'superTrend';\n\nexport const superTrendDefaultConfig = {\n comparisonType: 'crossesAbove',\n period: 10,\n multiplier: 2,\n interval: '1 minutes',\n actiontype: 'buy',\n optionType: 'CE',\n strikeIndex: 0,\n stopLoss: 0,\n stopGain: 0,\n quantity: 1,\n stopLossType: 'percent',\n stopGainType: 'percent',\n};\n\nexport const quantConfigConversionSt = (config) => {\n const {\n comparisonType, interval, period, instruments, multiplier,\n actiontype, optionType, stopGain, stopLoss, strikeIndex, quantity,\n stopLossType,\n stopGainType, segment\n } = config;\n\n const pipeConfig = [\n {\n type: SUPER_TREND,\n name: `${SUPER_TREND}${period}`,\n config: {\n noOfCandles: Number(period),\n candleInterval: interval,\n multiplier: Number(multiplier),\n valuePaths: ['item0.month1Price'],\n },\n },\n current1minuteCandle()\n ];\n\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs, pipeConfigs } = emptyConfig;\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const setOptionConfig = {\n ...optionConfigObj,\n entryType: actiontype,\n optionType,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n strikeIndex: Number(strikeIndex),\n quantity: getQuantityObject(Number(quantity)),\n sortId: 0\n };\n\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: `${CURRENT_ONE_MINUTE_CANDLE_NAME}.close`,\n operator: comparisonType,\n rightOperand: `superTrend${period}`,\n }],\n transactionConfigs: [\n { ..._.head(transactionConfigs), optionConfigs: [{ ...optionConfigObj, ...setOptionConfig, }] }\n ]\n }];\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n pipeConfigs: [...pipeConfigs, ...pipeConfig],\n orderConfigs: modifiedOrderConfigs,\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TemplateFooter from '../../TemplateFooter';\nimport {\n intervalTemplates, comparisonTypesTemplates, handleErrors\n} from '../../config';\nimport Select from '../../CommonComponents/Select';\nimport Input from '../../CommonComponents/Input';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n quantConfigConversionSt,\n superTrendDefaultConfig, SUPER_TREND\n} from './helper';\n\nexport const templateName = SUPER_TREND;\n\nconst defaultConfig = superTrendDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n\n const propSegment = _.get(props, 'segment');\n const [segment, setSegment] = useState(propSegment);\n\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const isNew = true;\n const oneIndentation = ' ';\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n return (\n
    \n
    \n
    \n
    \n Super Trend\n
    \n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-lg-2 p-0\"\n inputMdSize=\"col-md-9 col-lg-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n
    \n When close price\n
    \n handleStrategyChange('comparisonType', event.target.value)}\n optionItems={comparisonTypesTemplates}\n />\n
    \n
    \n handleStrategyChange('period', handleErrors(event.target.value))}\n />\n
    \n Period\n
    \n handleStrategyChange('interval', event.target.value)}\n optionItems={intervalTemplates}\n />\n
    \n interval\n
    \n handleStrategyChange('multiplier', handleErrors(event.target.value))}\n />\n
    \n Multiplier\n
    \n\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionSt(config);\n};\n","import _ from 'lodash';\nimport { getAlteredEmptyQuantConfig } from 'modules/QuantBuilder/config/index';\nimport {\n current1minuteCandle, CURRENT_ONE_MINUTE_CANDLE_NAME, getStopGainPercent, getStopGainPrice\n} from '../../config';\n\nexport const CLOSE_PRICE_STRATEGY = 'closePriceStrategy';\n\nexport const movingAverageDefaultConfig = {\n period: 20,\n comparisonType: 'crossesAbove',\n interval: '1 minutes',\n actiontype: 'buy',\n transaction: 'option',\n movingAverageType: 'simpleMovingAverage',\n optionType: 'CE',\n strikeIndex: 0,\n stopLoss: 0,\n stopGain: 0,\n quantity: 1,\n stopLossType: 'percent',\n stopGainType: 'percent',\n};\n\nexport const quantConfigConversionMcp = (config) => {\n const {\n period,\n comparisonType,\n interval,\n actiontype,\n transaction,\n movingAverageType,\n optionType,\n strikeIndex,\n stopLoss,\n instruments,\n stopGain,\n quantity,\n stopLossType,\n stopGainType,\n segment\n } = config;\n\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs, pipeConfigs } = emptyConfig;\n const pipeConfig = [\n {\n type: movingAverageType,\n name: `${movingAverageType}${period}`,\n config: {\n noOfCandles: Number(period),\n candleInterval: interval,\n valuePaths: ['item0.month1Price'],\n },\n },\n current1minuteCandle()\n ];\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs, futureConfig, mode } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const setOptionConfig = {\n ...optionConfigObj,\n entryType: actiontype,\n optionType,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n strikeIndex: Number(strikeIndex),\n quantity: getQuantityObject(Number(quantity)),\n sortId: 0\n };\n\n const setFutureConfig = {\n ...futureConfig,\n entryType: actiontype,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n quantityExpression: `${quantity}`,\n sortId: 1\n };\n\n const transactionIsOption = transaction === 'option';\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: `${CURRENT_ONE_MINUTE_CANDLE_NAME}.close`,\n operator: comparisonType,\n rightOperand: `${movingAverageType}${period}`,\n }],\n transactionConfigs: [\n {\n ..._.head(transactionConfigs),\n mode: { ...mode, transaction },\n futureConfig: transactionIsOption ? futureConfig : setFutureConfig,\n optionConfigs: transactionIsOption ? [{ ...optionConfigObj, ...setOptionConfig, }] : []\n }\n ]\n }];\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n pipeConfigs: [...pipeConfigs, ...pipeConfig],\n orderConfigs: modifiedOrderConfigs,\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TemplateFooter from '../../TemplateFooter';\nimport {\n comparisonTypesTemplates, handleErrors, intervalTemplates,\n movingAverageTypeTemplate, transactionTypesTemplate\n} from '../../config';\nimport Select from '../../CommonComponents/Select';\nimport Input from '../../CommonComponents/Input';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n movingAverageDefaultConfig,\n quantConfigConversionMcp, CLOSE_PRICE_STRATEGY\n} from './helper';\n\nexport const templateName = CLOSE_PRICE_STRATEGY;\n\nconst defaultConfig = movingAverageDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n const propSegment = _.get(props, 'segment');\n const [segment, setSegment] = useState(propSegment);\n\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const isNew = false;\n const oneIndentation = ' ';\n\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n if (key === 'transaction' && value === 'future') {\n setTemplateConfig({\n ...templateConfig,\n [key]: value,\n optionType: 'CE',\n strikeIndex: 0,\n });\n return;\n }\n\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n Moving Average Close Price\n
    \n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-lg-2 p-0\"\n inputMdSize=\"col-md-9 col-lg-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n
    \n When close price\n
    \n handleStrategyChange('comparisonType', event.target.value)}\n optionItems={comparisonTypesTemplates}\n />\n
    \n
    \n handleStrategyChange('period', handleErrors(event.target.value))}\n />\n
    \n Period\n
    \n handleStrategyChange('interval', event.target.value)}\n optionItems={intervalTemplates}\n />\n
    \n
    \n handleStrategyChange('movingAverageType', event.target.value)}\n optionItems={movingAverageTypeTemplate}\n />\n
    \n\n
    \n handleStrategyChange('transaction', event.target.value)}\n optionItems={transactionTypesTemplate}\n />\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionMcp(config);\n};\n","import _ from 'lodash';\nimport { getAlteredEmptyQuantConfig } from 'modules/QuantBuilder/config/index';\nimport { getStopGainPercent, getStopGainPrice, getQuantityObject } from '../../config';\n\nexport const INTRADAY_STRADDLE = 'intradyStraddle';\n\nexport const intradyStraddleDefaultConfig = {\n optionType1: 'CE',\n optionType2: 'PE',\n strikeIndex1: 0,\n strikeIndex2: 0,\n stopLoss1: 0,\n stopLoss2: 0,\n stopGain1: 0,\n stopGain2: 0,\n time: '',\n actiontype1: 'sell',\n actiontype2: 'buy',\n quantity1: 1,\n quantity2: 1,\n stopLoss1Type: 'percent',\n stopLoss2Type: 'percent',\n stopGain1Type: 'percent',\n stopGain2Type: 'percent'\n};\n\nexport const quantConfigConversionIntraday = (config) => {\n const {\n optionType1,\n optionType2,\n strikeIndex1,\n strikeIndex2,\n stopLoss1,\n stopLoss2,\n stopGain1,\n time,\n stopGain2,\n actiontype1,\n actiontype2,\n instruments,\n quantity1,\n quantity2,\n stopGain1Type,\n stopGain2Type,\n stopLoss1Type,\n stopLoss2Type,\n segment\n } = config;\n\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs } = emptyConfig;\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const setOptionConfig1 = {\n ...optionConfigObj,\n entryType: actiontype1,\n optionType: optionType1,\n stopGainPrice: getStopGainPrice(stopGain1Type, stopGain1),\n stopLossPrice: getStopGainPrice(stopLoss1Type, stopLoss1),\n stopGain: getStopGainPercent(stopGain1Type, stopGain1),\n stopLoss: getStopGainPercent(stopLoss1Type, stopLoss1),\n strikeIndex: Number(strikeIndex1),\n quantity: getQuantityObject(Number(quantity1)),\n sortId: 0\n };\n\n const setOptionConfig2 = {\n ...optionConfigObj,\n entryType: actiontype2,\n optionType: optionType2,\n stopGainPrice: getStopGainPrice(stopGain2Type, stopGain2),\n stopLossPrice: getStopGainPrice(stopLoss2Type, stopLoss2),\n stopGain: getStopGainPercent(stopGain2Type, stopGain2),\n stopLoss: getStopGainPercent(stopLoss2Type, stopLoss2),\n strikeIndex: Number(strikeIndex2),\n quantity: getQuantityObject(Number(quantity2)),\n sortId: 1\n };\n\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: 'timeOfDay',\n operator: 'equalTo',\n rightOperand: time,\n }],\n transactionConfigs: [\n {\n ..._.head(transactionConfigs),\n optionConfigs: [\n {\n ...optionConfigObj,\n ...setOptionConfig1,\n },\n {\n ...optionConfigObj,\n ...setOptionConfig2,\n }\n ]\n }\n ]\n }];\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n orderConfigs: modifiedOrderConfigs,\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TimeSelector from 'common/components/TimeSelector';\nimport TemplateFooter from '../../TemplateFooter';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n intradyStraddleDefaultConfig,\n quantConfigConversionIntraday, INTRADAY_STRADDLE\n} from './helper';\n\nexport const templateName = INTRADAY_STRADDLE;\n\nconst defaultConfig = intradyStraddleDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n const propSegment = _.get(props, 'segment');\n const [segment, setSegment] = useState(propSegment);\n\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const [isTimeValidate, setTimeValidate] = useState(false);\n const isNew = false;\n const oneIndentation = ' ';\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n Intraday Straddle\n
    \n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-xl-2 p-0\"\n inputMdSize=\"col-md-9 col-xl-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n\n
    \n At\n {\n handleStrategyChange('time', newTime);\n }}\n />\n {isTimeValidate\n && (\n
    \n Please select a time between 09:15 to 15:28\n
    \n )}\n
    \n
    \n \n \n
    \n
    \n
    \n\n setTimeValidate(true)}\n segment={segment}\n />\n
    \n
    \n \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionIntraday(config);\n};\n","import _ from 'lodash';\nimport { getAlteredEmptyQuantConfig } from 'modules/QuantBuilder/config/index';\nimport { getStopGainPercent, getStopGainPrice } from '../../config';\n\nexport const RELATIVE_STRENGTH_INDEX = 'relativeStrengthIndex';\n\nexport const rsiDefaultConfig = {\n comparisonType: 'crossesAbove',\n period: 10,\n actiontype: 'buy',\n optionType: 'CE',\n strikeIndex: 0,\n stopLoss: 0,\n stopGain: 0,\n transaction: 'future',\n quantity: 1,\n stopLossType: 'percent',\n stopGainType: 'percent',\n};\n\nexport const quantConfigConversionRsi = (config) => {\n const {\n comparisonType,\n period,\n actiontype,\n optionType,\n strikeIndex,\n stopLoss,\n stopGain,\n transaction,\n instruments,\n quantity,\n stopLossType,\n stopGainType,\n segment\n } = config;\n\n const pipeConfig = [{\n type: RELATIVE_STRENGTH_INDEX,\n name: `rsi${period}`,\n config: {\n noOfCandles: Number(period),\n candleInterval: '1 minutes',\n valuePaths: ['item0.month1Price'],\n },\n }];\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs, pipeConfigs } = emptyConfig;\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs, futureConfig, mode } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const setOptionConfig = {\n ...optionConfigObj,\n entryType: actiontype,\n optionType,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n strikeIndex: Number(strikeIndex),\n quantity: getQuantityObject(Number(quantity)),\n sortId: 0\n };\n const setFutureConfig = {\n ...futureConfig,\n entryType: actiontype,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n quantityExpression: `${quantity}`,\n sortId: 1\n };\n const isTransactionOption = transaction === 'option';\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: `rsi${period}`,\n operator: comparisonType,\n rightOperand: '55',\n }],\n transactionConfigs: [\n {\n ..._.head(transactionConfigs),\n mode: {\n ...mode,\n transaction\n },\n futureConfig: isTransactionOption ? futureConfig : setFutureConfig,\n optionConfigs: isTransactionOption ? [\n {\n ...optionConfigObj,\n ...setOptionConfig,\n }\n ] : []\n }\n ]\n }];\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n pipeConfigs: [...pipeConfigs, ...pipeConfig],\n orderConfigs: modifiedOrderConfigs,\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TemplateFooter from '../../TemplateFooter';\nimport {\n comparisonTypesTemplates, handleErrors, transactionTypesTemplate\n} from '../../config';\nimport Select from '../../CommonComponents/Select';\nimport Input from '../../CommonComponents/Input';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n quantConfigConversionRsi,\n rsiDefaultConfig,\n RELATIVE_STRENGTH_INDEX\n} from './helper';\n\nexport const templateName = RELATIVE_STRENGTH_INDEX;\n\nconst defaultConfig = rsiDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n\n const propSegment = _.get(props, 'segment');\n\n const [segment, setSegment] = useState(propSegment);\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const isNew = false;\n const oneIndentation = ' ';\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n RSI\n
    \n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-lg-2 p-0\"\n inputMdSize=\"col-md-9 col-lg-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n When\n
    \n handleStrategyChange('period', handleErrors(event.target.value))}\n />\n
    \n\n period RSI\n
    \n handleStrategyChange('comparisonType', event.target.value)}\n optionItems={comparisonTypesTemplates}\n />\n
    \n 55\n
    \n handleStrategyChange('transaction', event.target.value)}\n optionItems={transactionTypesTemplate}\n />\n
    \n
    \n \n
    \n
    \n
    \n\n \n
    \n
    \n \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionRsi(config);\n};\n","import _ from 'lodash';\nimport { WEEKLY_OPTION_AVAILABLE_FROM, TRANSACTION_MODES } from 'modules/TransactionsBuilder/configs';\n\nconst { futureAndOption: FUTURE_AND_OPTION, futureConfig: FUTURE_CONFIG } = TRANSACTION_MODES;\n\nexport const instrumentsWithWeeklyExpiry = window.indexInstruments;\nconst NIFTY = 'NFO:NIFTY';\n\nexport const hasNiftyInInstrumentGroup = (instrumentGroups) => _.some(instrumentGroups,\n (instrumentGroup) => _.includes(instrumentGroup, NIFTY));\n\nexport const hasWeeklyExpiryInstruments = (instrumentGroups) => {\n const noOfInstruments = _.size(_.first(instrumentGroups));\n\n return _.some(\n _.times(noOfInstruments, (instumentIndex) => (\n _.every(_.map(instrumentGroups, (instrumentGroup) => (\n _.includes(instrumentsWithWeeklyExpiry, instrumentGroup[instumentIndex])\n )))\n ))\n );\n};\n\nconst checkIsFutureConfigAvailable = (orderconfigs) => _.some(\n _.flatMap(orderconfigs, ({ transactionConfigs }) => _.flatMap(\n transactionConfigs, ({ mode: { transaction } }) => (_.includes(\n [FUTURE_AND_OPTION, FUTURE_CONFIG], transaction\n ))\n ))\n);\n\nexport const isRunEligibleForWeeklyExpiry = (instrumentGroups, startDate, orderConfigs) => {\n if (!hasWeeklyExpiryInstruments(instrumentGroups)) return false;\n\n const isFutureConfigAvailable = checkIsFutureConfigAvailable(orderConfigs);\n\n if (\n (hasNiftyInInstrumentGroup(instrumentGroups)\n && WEEKLY_OPTION_AVAILABLE_FROM.isAfter(startDate))\n || isFutureConfigAvailable\n ) {\n return false;\n }\n\n return true;\n};\n\nexport const isEligibleForMonthly = (instrumentGroups) => {\n const instruments = _.flattenDeep(instrumentGroups);\n const notEligibleInstrument = ['NFO:FINNIFTY', 'NFO:MIDCPNIFTY', 'BFO:SENSEX', 'BFO:BANKEX'];\n\n const difference = _.filter(instruments, (\n instrument\n ) => {\n return _.includes(notEligibleInstrument, instrument);\n });\n\n if (_.isEmpty(difference)) return true;\n\n return false;\n};\n","import _ from 'lodash';\nimport { instrumentsWithWeeklyExpiry } from 'common/utils/optionExpiryCycleHelper';\nimport { getAlteredEmptyQuantConfig, OPTIONS_EXPIRY } from 'modules/QuantBuilder/config/index';\nimport { getStopGainPercent, getStopGainPrice, getQuantityObject } from '../../config';\n\nexport const IRON_FLY = 'ironFly';\n\nexport const ironFlyDefaultConfig = {\n optionType1: 'CE',\n optionType2: 'PE',\n optionType3: 'CE',\n optionType4: 'PE',\n standardDeviation1: 0,\n standardDeviation2: 0,\n time: '',\n stopLoss1: 0,\n stopLoss2: 0,\n stopLoss3: 0,\n stopLoss4: 0,\n stopGain1: 0,\n stopGain2: 0,\n stopGain3: 0,\n stopGain4: 0,\n days: 1,\n monthWeek: OPTIONS_EXPIRY.monthly,\n actiontype1: 'sell',\n actiontype2: 'sell',\n actiontype3: 'buy',\n actiontype4: 'buy',\n standardDeviation3: 2,\n standardDeviation4: 2,\n quantity1: 1,\n quantity2: 1,\n quantity3: 1,\n quantity4: 1,\n stopLoss1Type: 'percent',\n stopLoss2Type: 'percent',\n stopLoss3Type: 'percent',\n stopLoss4Type: 'percent',\n stopGain1Type: 'percent',\n stopGain2Type: 'percent',\n stopGain3Type: 'percent',\n stopGain4Type: 'percent',\n};\n\nexport const quantConfigConversionIronFly = (config) => {\n const {\n optionType1, optionType2, optionType3, optionType4, standardDeviation1, standardDeviation2, time,\n stopLoss1, stopLoss2, stopLoss3, stopLoss4, stopGain1, stopGain2, stopGain3, stopGain4,\n instruments, days, monthWeek, actiontype1,\n actiontype2, actiontype3, actiontype4, standardDeviation3, standardDeviation4,\n quantity1, quantity2, quantity3, quantity4, stopLoss1Type, stopLoss2Type, stopLoss3Type,\n stopLoss4Type, stopGain1Type, stopGain2Type, stopGain3Type, stopGain4Type, segment\n } = config;\n\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs, expiryHandling } = emptyConfig;\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const optionConfig = [\n {\n entryType: actiontype1,\n optionType: optionType1,\n stopGainPrice: getStopGainPrice(stopGain1Type, stopGain1),\n stopLossPrice: getStopGainPrice(stopLoss1Type, stopLoss1),\n stopGain: getStopGainPercent(stopGain1Type, stopGain1),\n stopLoss: getStopGainPercent(stopLoss1Type, stopLoss1),\n standardDeviation: Number(standardDeviation1),\n quantity: getQuantityObject(Number(quantity1)),\n sortId: 0\n },\n {\n ...optionConfigObj,\n entryType: actiontype2,\n optionType: optionType2,\n stopGainPrice: getStopGainPrice(stopGain2Type, stopGain2),\n stopLossPrice: getStopGainPrice(stopLoss2Type, stopLoss2),\n stopGain: getStopGainPercent(stopGain2Type, stopGain2),\n stopLoss: getStopGainPercent(stopLoss2Type, stopLoss2),\n standardDeviation: Number(standardDeviation2),\n quantity: getQuantityObject(Number(quantity2)),\n sortId: 1\n },\n {\n ...optionConfigObj,\n entryType: actiontype3,\n optionType: optionType3,\n stopGainPrice: getStopGainPrice(stopGain2Type, stopGain3),\n stopLossPrice: getStopGainPrice(stopLoss3Type, stopLoss3),\n stopGain: getStopGainPercent(stopGain3Type, stopGain3),\n stopLoss: getStopGainPercent(stopLoss3Type, stopLoss3),\n standardDeviation: Number(standardDeviation3),\n quantity: getQuantityObject(Number(quantity3)),\n sortId: 2\n },\n {\n ...optionConfigObj,\n entryType: actiontype4,\n optionType: optionType4,\n stopGainPrice: getStopGainPrice(stopGain4Type, stopGain4),\n stopLossPrice: getStopGainPrice(stopLoss4Type, stopLoss4),\n stopGain: getStopGainPercent(stopGain4Type, stopGain4),\n stopLoss: getStopGainPercent(stopLoss4Type, stopLoss4),\n standardDeviation: Number(standardDeviation4),\n quantity: getQuantityObject(Number(quantity4)),\n sortId: 3\n }\n ];\n\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: 'daysToExpire',\n operator: 'equalTo',\n rightOperand: `${days}`\n },\n {\n conditionOperator: 'and',\n leftOperand: 'timeOfDay',\n operator: 'equalTo',\n rightOperand: time\n }],\n transactionConfigs: [\n {\n ..._.head(transactionConfigs),\n optionConfigs: optionConfig,\n }\n ]\n }];\n\n let optionsExpiryCycle = 'monthly';\n if (_.includes(_.flatten(instruments), _.head(instrumentsWithWeeklyExpiry))\n || _.includes(_.flatten(instruments), instrumentsWithWeeklyExpiry[1])) {\n optionsExpiryCycle = monthWeek;\n }\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n orderConfigs: modifiedOrderConfigs,\n optionStrikeCalculationBasedOn: 'standardDeviation',\n optionsExpiryCycle,\n tradingType: 'positional',\n timeBasedSignal: {\n entryTime: '',\n exitTime: ''\n },\n expiryHandling: {\n ...expiryHandling,\n exitTime: '15:28'\n }\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TimeSelector from 'common/components/TimeSelector';\nimport { instrumentsWithWeeklyExpiry } from 'common/utils/optionExpiryCycleHelper';\nimport TemplateFooter from '../../TemplateFooter';\nimport {\n daysTemplate, monthly, weekly\n} from '../../config';\nimport Select from '../../CommonComponents/Select';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n ironFlyDefaultConfig,\n quantConfigConversionIronFly, IRON_FLY\n} from './helper';\n\nexport const templateName = IRON_FLY;\n\nconst defaultConfig = ironFlyDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n\n const propSegment = _.get(props, 'segment');\n const [segment, setSegment] = useState(propSegment);\n\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const [isTimeValidate, setTimeValidate] = useState(false);\n const isNew = false;\n const oneIndentation = ' ';\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n const hasFutureIndexInstruments = () => {\n const futureIndexInstruments = _.filter(instruments, (instrument) => {\n return _.includes(instrumentsWithWeeklyExpiry, ...instrument);\n });\n\n const indexBasedInstruments = () => {\n if (_.isEmpty(futureIndexInstruments) || (\n futureIndexInstruments.length !== instruments.length\n )) return monthly;\n\n return [...monthly, ...weekly];\n };\n\n return indexBasedInstruments();\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n IronFly\n
    \n\n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-lg-2 p-0\"\n inputMdSize=\"col-md-9 col-lg-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n
    \n
    \n handleStrategyChange('days', event.target.value)}\n optionItems={daysTemplate()}\n />\n
    \n \n
    \n handleStrategyChange('monthWeek', event.target.value)}\n optionItems={hasFutureIndexInstruments()}\n />\n
    \n \n {\n handleStrategyChange('time', newTime);\n }}\n />\n {isTimeValidate\n && (\n
    \n Please select a time between 09:15 to 15:28\n
    \n )}\n
    \n\n
    \n \n \n \n \n
    \n
    \n\n
    \n\n setTimeValidate(true)}\n segment={segment}\n />\n
    \n
    \n \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionIronFly(config);\n};\n","import _ from 'lodash';\nimport { getAlteredEmptyQuantConfig } from 'modules/QuantBuilder/config/index';\nimport {\n current1minuteCandle, CURRENT_ONE_MINUTE_CANDLE_NAME,\n getStopGainPercent, getStopGainPrice, getQuantityObject\n} from '../../config';\n\nexport const SUPER_TREND_AND_RSI = 'superTrendAndRsi';\n\nexport const superTrendAndRsiDefaultConfig = {\n comparisonType: 'crossesAbove',\n period: 10,\n periodRsi: 10,\n comparisonTypeRsi: 'crossesAbove',\n multiplier: 2,\n interval: '1 minutes',\n actiontype: 'buy',\n optionType: 'CE',\n strikeIndex: 0,\n stopLoss: 0,\n stopGain: 0,\n quantity: 1,\n stopLossType: 'percent',\n stopGainType: 'percent',\n};\n\nexport const quantConfigConversionStAndRsi = (config) => {\n const {\n comparisonType,\n period,\n periodRsi,\n comparisonTypeRsi,\n multiplier,\n interval,\n actiontype,\n optionType,\n strikeIndex,\n stopLoss,\n stopGain,\n instruments,\n quantity,\n stopGainType,\n stopLossType,\n segment\n } = config;\n\n const pipeConfig = [{\n type: 'superTrend',\n name: `superTrend${period}`,\n config: {\n noOfCandles: Number(period),\n candleInterval: interval,\n multiplier,\n valuePaths: ['item0.month1Price'],\n },\n }, {\n type: 'relativeStrengthIndex',\n name: `rsi${period}`,\n config: {\n noOfCandles: Number(periodRsi),\n candleInterval: '1 minutes',\n valuePaths: ['item0.month1Price'],\n },\n },\n current1minuteCandle()\n ];\n const emptyConfig = getAlteredEmptyQuantConfig();\n const { orderConfigs, expiryHandling, pipeConfigs } = emptyConfig;\n const { transactionConfigs } = _.head(orderConfigs);\n const { optionConfigs } = _.head(transactionConfigs);\n const optionConfigObj = _.head(optionConfigs);\n const setOptionConfig = {\n ...optionConfigObj,\n entryType: actiontype,\n optionType,\n stopGainPrice: getStopGainPrice(stopGainType, stopGain),\n stopLossPrice: getStopGainPrice(stopLossType, stopLoss),\n stopGain: getStopGainPercent(stopGainType, stopGain),\n stopLoss: getStopGainPercent(stopLossType, stopLoss),\n strikeIndex: Number(strikeIndex),\n quantity: getQuantityObject(Number(quantity)),\n sortId: 0\n };\n const modifiedOrderConfigs = [{\n ..._.head(orderConfigs),\n entrySignalConfigs: [{\n conditionOperator: '',\n leftOperand: `superTrend${period}`,\n operator: comparisonType,\n rightOperand: `${CURRENT_ONE_MINUTE_CANDLE_NAME}.close`,\n }, {\n conditionOperator: 'and',\n leftOperand: `rsi${periodRsi}`,\n operator: comparisonTypeRsi,\n rightOperand: '55',\n }],\n exitSignalConfigs: [\n {\n conditionOperator: '',\n leftOperand: `superTrend${period}`,\n operator: 'crossesBelow',\n rightOperand: `${CURRENT_ONE_MINUTE_CANDLE_NAME}.close`,\n },\n {\n conditionOperator: 'or', leftOperand: `rsi${periodRsi}`, operator: 'crossesBelow', rightOperand: '40',\n }\n ],\n transactionConfigs: [\n { ..._.head(transactionConfigs), optionConfigs: [{ ...optionConfigObj, ...setOptionConfig, }] }\n ]\n }];\n\n return {\n ...emptyConfig,\n segment,\n instrumentGroups: instruments,\n pipeConfigs: [...pipeConfigs, ...pipeConfig],\n orderConfigs: modifiedOrderConfigs,\n tradingType: 'positional',\n expiryHandling: { ...expiryHandling, exitTime: '15:28' }\n };\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder/index';\nimport classNames from 'classnames';\nimport TemplateFooter from '../../TemplateFooter';\nimport {\n intervalTemplates, comparisonTypesTemplates, handleErrors\n} from '../../config';\nimport Select from '../../CommonComponents/Select';\nimport Input from '../../CommonComponents/Input';\nimport TemplateSentence from '../../CommonComponents/TemplateSentence';\nimport LabelTags from '../../CommonComponents/LabelTags';\nimport {\n quantConfigConversionStAndRsi,\n superTrendAndRsiDefaultConfig, SUPER_TREND_AND_RSI\n} from './helper';\n\nexport const templateName = SUPER_TREND_AND_RSI;\n\nconst defaultConfig = superTrendAndRsiDefaultConfig;\n\nexport const Builder = (props) => {\n const segments = _.get(props, 'segments', []);\n\n const propSegment = _.get(props, 'segment');\n const [segment, setSegment] = useState(propSegment);\n const [templateConfig, setTemplateConfig] = useState(defaultConfig);\n const [instruments, setIntruments] = useState([]);\n const isNew = false;\n const oneIndentation = ' ';\n const onAddInstrument = (instrument) => {\n setIntruments([...instruments, instrument]);\n };\n\n const onDeleteAddedInstrument = (instrumentIndex) => {\n const newInstruments = _.filter(instruments, (instrument, index) => instrumentIndex !== index);\n setIntruments(newInstruments);\n };\n\n const colClassName = classNames('', {\n '': isNew\n });\n\n const cardClassName = classNames('card h-100', {\n 'new-strategie': isNew\n });\n\n const handleStrategyChange = (key, value) => {\n setTemplateConfig({\n ...templateConfig,\n [key]: value\n });\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n Super Trend + RSI\n
    \n
    \n {oneIndentation}\n \n {oneIndentation}\n \n
    \n
    \n\n
    \n onAddInstrument(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onDeleteAddedInstrument(indexToRemove)}\n titleMdSize=\"col-md-3 col-lg-2 p-0\"\n inputMdSize=\"col-md-9 col-lg-10 p-0\"\n segment={segment}\n onChangeSegment={(newSegment) => setSegment(newSegment)}\n segments={segments}\n />\n\n
    \n
    \n When close price\n
    \n handleStrategyChange('comparisonType', event.target.value)}\n optionItems={comparisonTypesTemplates}\n />\n
    \n
    \n handleStrategyChange('period', handleErrors(event.target.value))}\n />\n
    \n Period\n
    \n handleStrategyChange('interval', event.target.value)}\n optionItems={intervalTemplates}\n />\n
    \n interval\n
    \n handleStrategyChange('multiplier', event.target.value)}\n />\n
    \n Multiplier\n
    \n and\n
    \n When\n
    \n handleStrategyChange('periodRsi', handleErrors(event.target.value))}\n />\n
    \n period RSI\n
    \n handleStrategyChange('comparisonTypeRsi', event.target.value)}\n optionItems={comparisonTypesTemplates}\n />\n
    \n 55\n
    \n\n
    \n \n
    \n and Exit when price crosses below Super Trend or\n RSI crosses below 40\n
    \n
    \n\n \n
    \n
    \n \n );\n};\n\nexport const toQuantConfig = (config) => {\n return quantConfigConversionStAndRsi(config);\n};\n","import * as superTrend from './SuperTrend/index';\nimport * as movingAverageClosePrice from './MovingAverageClosePrice/index';\nimport * as intradyStraddle from './IntradyStraddle/index';\nimport * as rsi from './RSI/index';\nimport * as ironFly from './IronFly/index';\nimport * as superTrendAndRsi from './SuperTrendAndRSI/index';\n\nexport default [\n superTrend,\n movingAverageClosePrice,\n intradyStraddle,\n ironFly,\n rsi,\n superTrendAndRsi,\n];\n","import _ from 'lodash';\nimport {\n CHART_PATTERNS,\n emptyQuantConfig, getAlteredEmptyQuantConfig, getEmptyOrderConfig\n} from 'modules/QuantBuilder/config/index';\nimport qs from 'qs';\nimport templates from 'ui/Home/components/ReadyMadeTemplates/Templates/index';\nimport moment from 'moment';\nimport instruments from 'common/configs/instruments';\nimport {\n DOMAINS, ORDER_TYPES, SEGMENT_CONFIG\n} from 'common/constants/index';\nimport { automaticSupportedBrokers, oneClickSupportedBrokers } from 'common/brokerConfigs/config';\nimport { getContent } from 'ui/Plans/helper';\nimport { isIndexInstrumentPresentInQuantInstrumentGroups } from 'common/utils/InstrumentUtils';\nimport {\n getOptionConfigStrategies, STRIKE_KEYS, getEmptyTransactionConfig, getStrikeBasedOn\n} from 'modules/TransactionsBuilder/configs';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { removedIndicators } from 'v2/common/quantConfig/index';\n\nconst getParsedOptionConfigs = (optionConfigs) => _.map(optionConfigs, (optionConfig) => (\n _.reduce(optionConfig, (parsedOptionConfig, value, key) => {\n \n parsedOptionConfig[key] = _.isNaN(parseFloat(value)) ? value : parseFloat(value);\n\n return parsedOptionConfig;\n }, {})\n));\n\nexport const getOptionBuilderQuantConfig = (alteredQuantConfig, parsedQueryString) => {\n const strategyBuilderConfig = JSON.parse(\n decodeURIComponent(parsedQueryString.strategyBuilderConfig)\n );\n\n const {\n optionConfigs, timeBasedSignal, currentStrategy, optionStrikeCalculationBasedOn\n } = strategyBuilderConfig;\n\n const getOptionSubStrategy = _.compact(_.map(getOptionConfigStrategies(optionStrikeCalculationBasedOn),\n (category, name) => {\n if (_.includes(_.keys(category), currentStrategy)) { return name; }\n return null;\n }));\n\n const newMode = {\n optionStrategy: getOptionSubStrategy.length ? _.get(getOptionSubStrategy, '0', 'custom') : 'custom',\n transaction: 'option',\n optionSubStrategy: currentStrategy\n };\n\n const segment = _.get(strategyBuilderConfig, 'segment', SEGMENT_CONFIG.equityAndFuture);\n\n return {\n ...alteredQuantConfig,\n timeBasedSignal,\n segment,\n ..._.omit(strategyBuilderConfig, 'optionConfigs'),\n orderConfigs: [{\n ...getEmptyOrderConfig(),\n transactionConfigs: [{\n ...getEmptyTransactionConfig(),\n mode: newMode,\n optionConfigs: getParsedOptionConfigs(optionConfigs)\n }]\n }]\n };\n};\n\nexport const getReadyMadeStrategyQuantConfig = (parsedQueryString) => {\n const alteredQuantConfig = getAlteredEmptyQuantConfig();\n\n const templateNameParams = _.get(parsedQueryString, 'templateName', '');\n const templateConfig = _.get(parsedQueryString, 'template', {});\n const template = _.find(templates, ({ templateName }) => templateName === templateNameParams);\n let readyMadeQuantConfig = {};\n try {\n const parsedObject = JSON.parse(decodeURIComponent(templateConfig));\n readyMadeQuantConfig = template.toQuantConfig(parsedObject);\n } catch {\n readyMadeQuantConfig = alteredQuantConfig;\n }\n\n return readyMadeQuantConfig;\n};\n\nexport const replacedDeprecatedInstrumentNameFromQuantConfig = (quantConfig) => {\n const deprecatedInstrumentNames = {\n 'NFO:MOTHERSUMI': 'NFO:MOTHERSON'\n };\n\n const instrumentGroups = _.get(quantConfig, 'instrumentGroups', []);\n const alteredInstrumentGroups = _.map(instrumentGroups, (instrumentGroup) => {\n return _.map(instrumentGroup, (instrument) => {\n return deprecatedInstrumentNames[instrument] ? deprecatedInstrumentNames[instrument] : instrument;\n });\n });\n\n return { ...quantConfig, instrumentGroups: alteredInstrumentGroups, };\n};\n\nconst sanitizeVersionTwoDeprecatedQuantConfig = (quantConfig) => {\n const chartConfig = _.get(quantConfig, 'chartConfig', {});\n const orderConfigs = _.get(quantConfig, 'orderConfigs', []);\n const pipeConfigs = _.get(quantConfig, 'pipeConfigs', []);\n const optionStrikeCalculationBasedOn = _.get(quantConfig, 'optionStrikeCalculationBasedOn', '');\n const isValidStrikeBasedOn = (\n _.includes(_.map(\n getStrikeBasedOn(), ({ value }) => value\n ), optionStrikeCalculationBasedOn)\n );\n\n const wpc = [];\n const { maxInstrumentsInGroup } = quantConfig;\n const newPipeConfigs = _.chain(pipeConfigs)\n .map((pipeConfig) => {\n let alteredPipeConfig = pipeConfig;\n\n if (pipeConfig.type === 'anchoredVolumeWeightedAveragePrice') {\n // In engine version 2.0, we remove basedOn and source for AVWAP\n alteredPipeConfig = {\n ...pipeConfig,\n config: _.omit(pipeConfig.config, ['basedOn', 'source', 'time', 'date'])\n };\n alteredPipeConfig.basedOn = 'dateTime';\n }\n\n if (_.includes(removedIndicators, alteredPipeConfig.type)) {\n wpc.push(alteredPipeConfig);\n return null;\n }\n\n return alteredPipeConfig;\n })\n .compact()\n .value();\n\n const isValidSignalConfigs = (configs) => {\n const removedPipeConfigNames = _.map(wpc, 'name');\n\n return !_.some(configs, (config) => {\n return (\n _.some(removedPipeConfigNames, (pipeName) => config.leftOperand.includes(pipeName))\n || _.some(removedPipeConfigNames, (pipeName) => config.rightOperand.includes(pipeName))\n );\n });\n };\n\n const alteredChartConfig = {\n ...chartConfig,\n type: chartConfig.type === CHART_PATTERNS.renko\n ? CHART_PATTERNS.candle : chartConfig.type\n };\n\n const emptyTransactionConfigs = _.times(maxInstrumentsInGroup, () => getEmptyTransactionConfig());\n\n const newOrderConfigs = _.map(orderConfigs, (orderConfig) => {\n const { transactionConfigs, entrySignalConfigs, exitSignalConfigs } = orderConfig;\n\n return {\n ...orderConfig,\n transactionConfigs: isValidStrikeBasedOn ? transactionConfigs : emptyTransactionConfigs,\n entrySignalConfigs: isValidSignalConfigs(entrySignalConfigs) ? entrySignalConfigs : [],\n exitSignalConfigs: isValidSignalConfigs(exitSignalConfigs) ? exitSignalConfigs : []\n };\n });\n\n if (chartConfig.type === CHART_PATTERNS.renko) {\n reactToastify('Renko chart is removed from the strategy', TOASTIFY_TYPES.ERROR);\n }\n\n if (!_.isEmpty(wpc)) {\n reactToastify('Some indicators are removed from the strategy', TOASTIFY_TYPES.ERROR);\n }\n\n if (!isValidStrikeBasedOn) {\n reactToastify('Your stike based on removed from strategy', TOASTIFY_TYPES.ERROR);\n }\n\n return {\n ...quantConfig,\n orderConfigs: newOrderConfigs,\n pipeConfigs: newPipeConfigs,\n chartConfig: alteredChartConfig,\n optionStrikeCalculationBasedOn: isValidStrikeBasedOn ? optionStrikeCalculationBasedOn : 'strikeIndex',\n };\n};\n\nconst removeSensexForNonAdminQuantConfig = (quantConfig) => {\n const instrumentGroups = _.get(quantConfig, 'instrumentGroups', []);\n const alteredInstrumentGroups = _.chain(instrumentGroups)\n .map((instrumentGroup) => {\n return _.filter(instrumentGroup, (instrument) => !_.includes(instrument, 'BFO:SENSEX'));\n })\n .filter((instrumentGroup) => !_.isEmpty(instrumentGroup))\n .value();\n\n return {\n ...quantConfig,\n instrumentGroups: alteredInstrumentGroups\n };\n};\n\nexport const getQuantConfig = (propsQuantConfig) => {\n if (!_.isEmpty(propsQuantConfig)) {\n const instrumentSanitizedQuantConfig = replacedDeprecatedInstrumentNameFromQuantConfig(propsQuantConfig);\n const sanitizeVersionTwoDeprecations = sanitizeVersionTwoDeprecatedQuantConfig(\n instrumentSanitizedQuantConfig\n );\n\n const sensexOnlyForAdminQuantConfig = removeSensexForNonAdminQuantConfig(sanitizeVersionTwoDeprecations);\n\n return sensexOnlyForAdminQuantConfig;\n }\n\n const alteredQuantConfig = getAlteredEmptyQuantConfig();\n\n const queryString = window.location.search;\n const parsedQueryString = qs.parse(queryString, { parseBooleans: true });\n const queryStringParams = _.keys(parsedQueryString);\n\n if (_.includes(queryStringParams, 'strategyBuilderConfig')) {\n return getOptionBuilderQuantConfig(alteredQuantConfig, parsedQueryString);\n }\n\n if (_.includes(queryStringParams, 'templateName')) {\n return getReadyMadeStrategyQuantConfig(parsedQueryString);\n }\n\n return alteredQuantConfig;\n};\n\nexport const validateInstrumenWithStartDate = (quantInstruments, quantStartDate) => {\n const startDate = moment(quantStartDate).format('YYYY-MM-DD');\n const flattenInstrument = _.flatten(quantInstruments);\n let instrumentValidationObj = { validDate: quantStartDate, isValid: true };\n\n _.each(flattenInstrument, (instrumentName) => {\n if (instruments[instrumentName]) {\n const { startDate: instrumentStartDate } = instruments[instrumentName];\n\n if (moment(startDate).isBefore(instrumentStartDate)) {\n instrumentValidationObj = {\n validDate: new Date(instrumentStartDate),\n isValid: false,\n instrument: instrumentName\n };\n }\n }\n });\n\n return instrumentValidationObj;\n};\n\nexport const constructBrokerContent = () => {\n const { currentDomain } = window;\n if (currentDomain !== DOMAINS.DEFAULT_DOMAIN) return ' Allowed only for paid customers. ';\n\n let content = '
    Automatic order supported brokers: ';\n content += `${getContent(automaticSupportedBrokers)}`;\n content += '.

    One Click order supported brokers: ';\n content += getContent(oneClickSupportedBrokers);\n content += '.

    Allowed only for paid customers.
    ';\n return content;\n};\n\nexport const defaultOrderType = (propsOrderType, broker, planActiveTill) => {\n const { paper: { value: paper } } = ORDER_TYPES;\n const { isInInitialOfferPeriod, isAdmin } = window;\n if (!broker) return paper; // normal mail users... mandatory paper\n\n if (isAdmin || isInInitialOfferPeriod) return propsOrderType;\n\n if (((_.includes(automaticSupportedBrokers, broker))\n || _.includes(oneClickSupportedBrokers, broker))\n && (planActiveTill && moment().isBefore(planActiveTill))\n ) {\n return propsOrderType;\n }\n\n return paper;\n};\n\nexport const sanitizedEndDate = (propsEndDate, maxEndDate) => {\n if (moment(propsEndDate).isAfter(maxEndDate)) {\n return moment.utc(maxEndDate).toDate();\n }\n\n return moment.utc(propsEndDate).toDate();\n};\n\nexport const isShowAutomaticModal = (\n isActualOrder, orderType, instrumentGroups, isShowAutomaticConfirmationModal\n) => {\n const { automatic: { value: automatic } } = ORDER_TYPES;\n\n return isActualOrder\n && orderType === automatic\n && !isIndexInstrumentPresentInQuantInstrumentGroups(instrumentGroups)\n && !isShowAutomaticConfirmationModal;\n};\n\nexport const sanitizeQuantConfig = (quantConfig, segment) => {\n const updatedQuantConfig = quantConfig || emptyQuantConfig();\n\n return { ...updatedQuantConfig, segment };\n};\n\nexport const validateEquityBasedOnDate = ( // future handle equity date validation\n startDate, optionStrikeCalculationBasedOn, endDate\n) => {\n let returnObj = { isValid: false, validStartDate: startDate, validEndDate: endDate };\n if (optionStrikeCalculationBasedOn === STRIKE_KEYS.equityPrice) {\n const startDateEquity = '2020-02-01';\n if (moment(startDate).isBefore(startDateEquity)) {\n returnObj = {\n validStartDate: new Date(startDateEquity),\n isValid: true,\n validEndDate: moment(endDate).isBefore(startDateEquity) ? new Date(startDateEquity) : endDate\n };\n }\n }\n\n return returnObj;\n};\n\nexport const getQuantSupportSegment = (plan, segment) => {\n const segments = _.get(plan, 'segments', []);\n\n if (_.includes(segments, segment) || (!plan && _.isEmpty(segments))) return segment;\n if (_.size(segments) === 3) return SEGMENT_CONFIG.future;\n // for prev clone have to change\n\n if (_.head(segments) === SEGMENT_CONFIG.option) return SEGMENT_CONFIG.future;\n\n return _.head(segments);\n};\n","\nexport const SORT_BY = {\n name: 'name',\n profit: 'summary.profit',\n createdAt: 'created_at'\n};\n\nexport const TABLE_HEADER = [\n { title: 'Name & details' },\n { title: 'Profit & Loss' },\n { title: 'Created At' }\n];\n\nexport const SLIDES_TO_SHOW = 4;\n\nexport const PREBUILT_SLIDER_CONFIG = {\n infinite: false,\n dots: false,\n arrows: false,\n slidesToShow: 6,\n slidesToScroll: 1,\n speed: 1000,\n row: 1,\n autoplay: true,\n autoplaySpeed: 6000,\n};\n\nexport const SHOWCASE_SLIDER_CONFIG = (setActiveIndex) => {\n return {\n slidesToShow: 1,\n slidesToScroll: 1,\n speed: 1000,\n fade: true,\n arrows: true,\n dots: true,\n beforeChange: (current, next) => setActiveIndex(next)\n };\n};\n\nexport const FAVORITE_SLIDER_CONFIG = {\n infinite: false,\n dots: false,\n arrows: true,\n slidesToShow: 5,\n slidesToScroll: 1,\n speed: 1000,\n row: 1,\n autoplay: false,\n autoplaySpeed: 6000,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3,\n infinite: true,\n dots: true\n }\n },\n {\n breakpoint: 720,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n initialSlide: 2\n }\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }\n ]\n\n};\n\nexport const videosConfig = [\n {\n img: 'video-thumbanil.jpg',\n title: 'Basic Builder',\n url: 'https://www.youtube.com/embed/4R2CDbw4g88?autoplay=1',\n },\n {\n img: 'video-thumbanil2.jpg',\n title: 'Advance Builder',\n url: 'https://www.youtube.com/embed/OGFxp3Pixg8?autoplay=1',\n },\n {\n img: 'video-thumbanil3.jpg',\n title: 'Transactions',\n url: 'https://www.youtube.com/embed/5rMkQurfxrE?autoplay=1',\n },\n];\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { TABLE_HEADER } from 'ui/Home/config';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst RunsTableHeader = () => {\n const headers = _.map(TABLE_HEADER, (header, idx) => {\n return (\n \n {header.title}\n \n );\n });\n\n return (\n \n \n {headers}\n \n \n );\n};\n\nRunsTableHeader.propTypes = propTypes;\nRunsTableHeader.defaultProps = defaultProps;\n\nexport default RunsTableHeader;\n","export const onRunViewClick = (event, id) => {\n const runShowUrl = `/runs/${id}/`;\n const shouldRedirectToShowPage = () => {\n const isClickedOnPreventedIcon = $(event.target).closest('.prevent-redirect').length > 0;\n return !isClickedOnPreventedIcon;\n };\n\n if (!shouldRedirectToShowPage()) return;\n\n if (event.ctrlKey) {\n window.open(runShowUrl, '_blank');\n return;\n }\n\n window.location = runShowUrl;\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport getFormattedDate from 'common/utils/dateFormat';\nimport { runPropTypes } from 'common/propTypes';\nimport { onRunViewClick } from 'common/utils/runListHelper';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\n\nconst propTypes = {\n runs: PropTypes.arrayOf(runPropTypes).isRequired,\n};\nconst defaultProps = {};\n\n\nconst renderTableBody = (run) => {\n const {\n id,\n name,\n run_type: runType,\n created_at: createdAt,\n start_date: startDate,\n end_date: endDate,\n summary\n } = run;\n const profit = _.get(summary, 'profit', 0);\n\n return (\n onRunViewClick(e, id)}>\n \n
    \n
    \n
    {name || `Run-${id}`}
    \n \n {runType === 'historic' ? 'Backtest' : 'Live'}\n  \n (\n {getFormattedDate(startDate)}\n  \n -\n  \n {getFormattedDate(endDate)}\n )\n \n
    \n
    \n \n\n \n
    {profit}
    \n \n \n
    {moment(createdAt).fromNow()}
    \n \n \n );\n};\n\nconst RunsTableBody = ({ runs }) => {\n return (\n {_.map(runs, renderTableBody)}\n );\n};\n\nRunsTableBody.propTypes = propTypes;\nRunsTableBody.defaultProps = defaultProps;\n\nexport default RunsTableBody;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { runPropTypes } from 'common/propTypes';\nimport RunsTableHeader from './RunsTableHeader';\nimport RunsTableBody from './RunsTableBody';\n\nconst propTypes = {\n runs: PropTypes.arrayOf(runPropTypes),\n containerClsName: PropTypes.string.isRequired,\n};\nconst defaultProps = {\n runs: []\n};\n\nconst ICON = {\n historic: 'icons-history mr-2',\n live: 'icons-live mr-2'\n};\n\nconst RecentRuns = (props) => {\n const { runs, containerClsName } = props;\n const runType = _.get(runs, [0, 'run_type']);\n\n if (_.isEmpty(runs)) return null;\n\n return (\n
    \n
    \n

    \n \n {runType === 'historic' ? 'Backtest' : 'Live'}\n

    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nRecentRuns.propTypes = propTypes;\nRecentRuns.defaultProps = defaultProps;\n\nexport default RecentRuns;\n","import _ from 'lodash';\nimport moment from 'moment';\n\nconst getDifferanceUnit = (differenceInDays) => {\n if (differenceInDays < 30) return 'days';\n if (_.inRange(differenceInDays, 30, 365)) return 'months';\n\n return 'years';\n};\n\nexport const getDateDifferance = (startDate, endDate) => {\n const startDateObj = moment(startDate);\n const endDateObj = moment(endDate);\n\n const differenceInDays = endDateObj.diff(startDateObj, 'days');\n const differenceUnit = getDifferanceUnit(differenceInDays);\n const dateDifference = endDateObj.diff(startDateObj, differenceUnit);\n\n return `${differenceUnit !== 'days' ? 'over' : ''} ${dateDifference} ${differenceUnit}`;\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\n\nimport { getDateDifferance } from 'common/utils/dateDifference';\nimport { updateRun } from 'common/api/run';\nimport { runPropTypes } from 'common/propTypes';\nimport RunListOrderType from 'common/components/RunListOrderType';\n\nconst MINIMIZED_SHOW_RUNS_COUNT = 8;\nconst EXPANDED_SHOW_RUNS_COUNT = 100;\n\nconst propTypes = {\n starredRuns: PropTypes.arrayOf(runPropTypes)\n};\nconst defaultProps = {\n starredRuns: []\n};\n\n\nconst onRemoveFavorite = (event, runId, starredRuns, onRunsChange) => {\n event.preventDefault();\n const newStarredRuns = _.filter(starredRuns, (run) => run.id !== runId);\n updateRun({ runId, run: { is_starred: false } })\n .then(() => onRunsChange(newStarredRuns));\n};\n\nconst renderStarredRun = (starredRuns, onRunsChange) => (starredRun) => {\n const {\n name,\n end_date: endDate,\n start_date: startDate,\n run_type: runType,\n created_at: createdAt,\n id,\n } = starredRun;\n\n return (\n \n );\n};\n\nconst renderShowMore = ({ starredRuns, isExpanded, onExpandChange }) => {\n if (starredRuns.length <= MINIMIZED_SHOW_RUNS_COUNT) {\n return null;\n }\n return (\n
    \n onExpandChange(!isExpanded)}\n >\n {isExpanded ? 'Show Less' : 'Show More'}\n \n
    \n );\n};\n\nconst StarredRuns = ({ starredRuns }) => {\n const [runs, onRunsChange] = useState(starredRuns);\n const [isExpanded, onExpandChange] = useState(false);\n const runsCountToShow = isExpanded ? EXPANDED_SHOW_RUNS_COUNT : MINIMIZED_SHOW_RUNS_COUNT;\n\n if (_.isEmpty(runs)) return null;\n\n return (\n
    \n

    My Strategies

    \n
    \n
    \n {_.chain(runs).take(runsCountToShow).map(renderStarredRun(runs, onRunsChange)).value()}\n
    \n {renderShowMore({ starredRuns, isExpanded, onExpandChange })}\n
    \n
    \n );\n};\n\nexport default StarredRuns;\n\nStarredRuns.propTypes = propTypes;\nStarredRuns.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport templates from './Templates/index';\n\nconst MINIMIZED_SHOW_SIGNAL_COUNT = 2;\n\nconst propTypes = {\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n segment: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst ReadyMadeTemplates = ({ segments, segment }) => {\n const [isExpanded, hasExpandedChange] = useState(false);\n const readyMadeTemplates = isExpanded\n ? templates\n : _.take(templates, MINIMIZED_SHOW_SIGNAL_COUNT);\n\n const renderShowMore = () => {\n if (templates.length <= MINIMIZED_SHOW_SIGNAL_COUNT) {\n return null;\n }\n\n return (\n
    \n hasExpandedChange(!isExpanded)}\n >\n {isExpanded ? 'Show Less' : 'Show More'}\n {/* \n {isExpanded ? 'expand_less' : 'expand_more'}\n */}\n \n
    \n );\n };\n\n const renderTemplates = (template, key) => (\n \n );\n\n return (\n <>\n
    \n {_.map(readyMadeTemplates, renderTemplates)}\n
    \n {renderShowMore()}\n \n );\n};\n\nReadyMadeTemplates.propTypes = propTypes;\nReadyMadeTemplates.defaultProps = defaultProps;\n\nexport default ReadyMadeTemplates;\n","import _ from 'lodash';\nimport { getDefaultTimeBasedSignalForIntraday, OPTIONS_EXPIRY } from 'modules/QuantBuilder/config/index';\nimport {\n getOptionConfigStrategies, onValidateStrikeBasedOn, STRIKE_KEYS\n} from 'modules/TransactionsBuilder/configs';\n\nexport const emptyStrategyBuilderQuantConfig = () => ({\n instrumentGroups: [],\n optionStrikeCalculationBasedOn: STRIKE_KEYS.strikeIndex,\n optionsExpiryCycle: OPTIONS_EXPIRY.monthly,\n optionConfigs: [],\n timeBasedSignal: getDefaultTimeBasedSignalForIntraday()\n});\n\nexport const strategyBuilderConfig = (strikeKey) => {\n const basedOn = onValidateStrikeBasedOn(strikeKey);\n let strategies = {};\n\n _.each(getOptionConfigStrategies(basedOn), (category, categoryName) => {\n if (categoryName !== 'custom') {\n _.each(category, (strategy, strategyName) => {\n strategies = {\n ...strategies,\n [strategyName]: {\n ...strategy,\n timeBasedSignal: getDefaultTimeBasedSignalForIntraday()\n }\n };\n });\n }\n });\n\n return strategies;\n};\n\nexport const STOPS_KEYS = {\n STOP_GAIN: 'stopGain',\n STOP_LOSS: 'stopLoss',\n STOP_GAIN_PRICE: 'stopGainPrice',\n STOP_LOSS_PRICE: 'stopLossPrice'\n};\n\nexport const STOPS_VALUE_TYPES = {\n PERCENT: 'percent',\n PRICE: 'price'\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport {\n getStrikeBasedOn, getEligibleIndicatorForStrike, STRIKE_KEYS, getSegmentStrikeBasedOn\n} from 'modules/TransactionsBuilder/configs';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n strikeBasedOn: PropTypes.string.isRequired,\n onStrikeBasedOnChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n shouldHideLabel: PropTypes.bool,\n segment: PropTypes.string.isRequired,\n customPropConfigs: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n shouldHideLabel: false,\n customPropConfigs: []\n};\nconst DISAPPEAR_WAINING_TIME = 5000;\n\nconst StrikeBasedOnSelector = ({\n strikeBasedOn, onStrikeBasedOnChange, outputSchema, shouldHideLabel, segment, customPropConfigs\n}) => {\n const { isAdvancedStrikeSelectionEnabled, isAdmin } = window;\n if (!isAdvancedStrikeSelectionEnabled) return null;\n\n const shouldDisableIndicatorValues = _.isEmpty(getEligibleIndicatorForStrike(outputSchema));\n const {\n indicatorValue: INDICATOR_VALUE\n } = STRIKE_KEYS;\n const [shouldShowWarningMessage, setshouldShowWarningMessage] = useState(false);\n const [hoverMessageConfig, setHoverMessageConfig] = useState({ title: '', message: '' });\n const { title, message } = hoverMessageConfig;\n\n const filteredStrikeBasedOn = _.filter(getStrikeBasedOn(),\n (strike) => (isAdmin || strike.shouldShow));\n\n const segmentBasedStrikeBasedOn = isAdmin ? filteredStrikeBasedOn\n : getSegmentStrikeBasedOn(segment, filteredStrikeBasedOn);\n // premium and stike index released.. for admin to show all strikes\n\n const onStrikeBasedOnUpdate = (event) => {\n const newStrikeBasedOn = event.target.value;\n\n if ((shouldDisableIndicatorValues && newStrikeBasedOn === INDICATOR_VALUE)) {\n if (isAdmin && !_.isEmpty(customPropConfigs)) return onStrikeBasedOnChange(newStrikeBasedOn);\n // have to make better\n\n setshouldShowWarningMessage(true);\n setHoverMessageConfig({\n title: 'indicator value not available',\n message: 'To use indicator value please add Pivot point or Today candle or Super trend Indicator'\n });\n setTimeout(() => setshouldShowWarningMessage(false), DISAPPEAR_WAINING_TIME);\n return null;\n }\n\n return onStrikeBasedOnChange(newStrikeBasedOn);\n };\n\n const strikeBasedOnOptions = _.map(segmentBasedStrikeBasedOn, ({ value, displayName }) => (\n \n {_.startCase(displayName)}\n \n ));\n\n return (\n
    \n {!shouldHideLabel && }\n \n {strikeBasedOnOptions}\n \n \n \n \n
    \n
    \n );\n};\n\nStrikeBasedOnSelector.propTypes = propTypes;\nStrikeBasedOnSelector.defaultProps = defaultProps;\n\nexport default StrikeBasedOnSelector;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nimport {\n OPTIONS_EXPIRY, WEEKLY_OPTION_AVAILABLE_FROM, TRANSACTION_MODES\n} from 'modules/TransactionsBuilder/configs';\nimport HoverMessage from 'common/components/HoverMessage';\n\nimport {\n isRunEligibleForWeeklyExpiry, hasNiftyInInstrumentGroup, isEligibleForMonthly\n} from 'common/utils/optionExpiryCycleHelper';\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = {\n optionsExpiryCycle: PropTypes.string.isRequired,\n onOptionsExpiryCycleChange: PropTypes.func.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n};\nconst defaultProps = {};\n\nconst getDisabledExpiryCycleConfig = ({\n shouldDisableExpiryCycle,\n instrumentGroups,\n startDate,\n transactionConfig: { mode: { transaction: transactionMode } }\n}) => {\n const { futureAndOption: FUTURE_AND_OPTION, futureConfig: FUTURE_CONFIG } = TRANSACTION_MODES;\n\n if (shouldDisableExpiryCycle) {\n return {\n title: 'Cannot Change Expiry Cycle',\n message: 'You have already selected expiry cycle. To change this Goto case 1 options form'\n };\n }\n\n if (hasNiftyInInstrumentGroup(instrumentGroups) && WEEKLY_OPTION_AVAILABLE_FROM.isAfter(startDate)) {\n return {\n title: 'No Weekly Options',\n message: `weekly options is only available from\n ${WEEKLY_OPTION_AVAILABLE_FROM.format('MMM Do YYYY')}`\n };\n }\n\n if (!isRunEligibleForWeeklyExpiry(instrumentGroups, startDate)) {\n return {\n title: 'No Weekly Options',\n message: 'Weekly expiry options available only for Nifty, Finnifty and BankNifty Options'\n };\n }\n\n if (_.includes([FUTURE_AND_OPTION, FUTURE_CONFIG], transactionMode)) {\n return {\n title: 'No Weekly Options',\n message: 'Weekly expiry options is not available for \"future\" transactions'\n };\n }\n\n return {};\n};\n\nconst getDisabledMonthlyExpiryCycleConfig = (hasEligibleForMonthly, isSensex) => {\n if (hasEligibleForMonthly) { return {}; }\n\n let message = 'Selected instrument is not Eligible for Monthly options';\n if (isSensex) {\n message = 'No volume in Sensex monthly options';\n }\n\n return {\n title: 'No Monthly Options',\n message\n };\n};\n\nconst OptionsExpiryCycle = (props) => {\n const {\n optionsExpiryCycle, onOptionsExpiryCycleChange, instrumentGroups,\n } = props;\n const { weekly, monthly } = OPTIONS_EXPIRY;\n const disabledExpiryCycleConfig = getDisabledExpiryCycleConfig(props);\n\n const hasEligibleForMonthly = isEligibleForMonthly(instrumentGroups);\n\n const isSensex = _.includes(_.flatten(instrumentGroups), 'BFO:SENSEX');\n\n const disableMonthlyExpiryCycleConfig = getDisabledMonthlyExpiryCycleConfig(\n hasEligibleForMonthly, isSensex\n );\n\n const hoverMessageConfig = _.isEmpty(disabledExpiryCycleConfig)\n ? disableMonthlyExpiryCycleConfig\n : disabledExpiryCycleConfig;\n\n useEffect(() => {\n if (!hasEligibleForMonthly && optionsExpiryCycle === monthly) {\n reactToastify(\n 'Selected instrument is not Eligible for Monthly Expiry', TOASTIFY_TYPES.WARNING\n );\n onOptionsExpiryCycleChange(weekly);\n }\n }, [hasEligibleForMonthly]);\n\n const renderWeeklyMonthlyBtn = (\n onOptionsExpiryCycleChange(optionsExpiryCycle === weekly ? monthly : weekly)}\n value={optionsExpiryCycle}\n >\n \n {_.startCase(weekly)}\n \n\n \n {_.startCase(monthly)}\n \n\n \n\n );\n\n return (\n
    \n \n
    \n {_.isEmpty(hoverMessageConfig)\n ? renderWeeklyMonthlyBtn\n : (\n \n {renderWeeklyMonthlyBtn}\n \n )}\n
    \n
    \n );\n};\n\nOptionsExpiryCycle.propTypes = propTypes;\nOptionsExpiryCycle.defaultProps = defaultProps;\n\nexport default OptionsExpiryCycle;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport\nStrikeBasedOnSelector\nfrom 'modules/TransactionsBuilder/NewTransactionBuilder/components/StrikeBasedOnSelector';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder';\nimport { getEmptyTransactionConfig } from 'modules/TransactionsBuilder/configs';\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport\nOptionsExpiryCycle\nfrom 'modules/TransactionsBuilder/NewTransactionBuilder/components/OptionsExpiryCycle/index';\n\nconst propTypes = {\n quantConfig: PropTypes.shape({\n optionsExpiryCycle: PropTypes.string,\n instrumentGroups: instrumentGroupsPropTypes,\n optionStrikeCalculationBasedOn: PropTypes.string.isRequired,\n }).isRequired,\n onQuantConfigChange: PropTypes.func.isRequired,\n segment: PropTypes.string.isRequired,\n onChangeSegment: PropTypes.func.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired\n};\nconst defaultProps = {};\n\nconst TopSection = ({\n quantConfig, onQuantConfigChange, segment, onChangeSegment, segments\n}) => {\n const {\n optionsExpiryCycle,\n instrumentGroups,\n optionStrikeCalculationBasedOn,\n } = quantConfig;\n const maxInstrumentsInGroup = _.isEmpty(instrumentGroups)\n ? 1\n : _.head(instrumentGroups).length;\n\n return (\n
    \n
    \n \n onQuantConfigChange({\n instrumentGroups: []\n })}\n instrumentGroups={instrumentGroups}\n onAddInstrumentGroup={(newInstrumentGroup) => onQuantConfigChange({\n instrumentGroups: [newInstrumentGroup]\n })}\n segment={segment}\n onChangeSegment={onChangeSegment}\n segments={segments}\n />\n
    \n\n
    \n onQuantConfigChange({\n optionsExpiryCycle: newOptionsExpiryCycle\n })}\n />\n
    \n\n
    \n onQuantConfigChange({\n optionStrikeCalculationBasedOn: newStrikeBasedOn\n })}\n outputSchema={[]}\n segment={segment}\n instrumentGroups={instrumentGroups}\n />\n
    \n
    \n );\n};\n\nTopSection.propTypes = propTypes;\nTopSection.defaultProps = defaultProps;\n\nexport default TopSection;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport { getOptionConfigSettings, STRIKE_KEYS } from 'modules/TransactionsBuilder/configs';\n\nconst propTypes = {\n strike: PropTypes.number,\n onStrikeChange: PropTypes.func.isRequired,\n optionType: PropTypes.string.isRequired,\n isHide: PropTypes.bool.isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n valuePath: PropTypes.string,\n isInvalidStrike: PropTypes.bool.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n transactionConfigIdx: PropTypes.number.isRequired,\n};\nconst defaultProps = {\n strike: undefined,\n valuePath: ''\n};\n\nconst StrikeIndex = ({\n strike,\n onStrikeChange,\n optionType,\n isHide,\n strikeBasedOn,\n valuePath,\n isInvalidStrike,\n instrumentGroups,\n transactionConfigIdx\n}) => {\n const [strikeBoxName] = useState(_.uniqueId('strikeName-'));\n const {\n errors, clearErrors, setError, control\n } = useFormContext();\n const options = _.get(\n getOptionConfigSettings(\n optionType, valuePath, instrumentGroups, transactionConfigIdx\n ), [strikeBasedOn, 'options'], []\n );\n const validator = {\n required: { value: true, message: 'value should be included' },\n validate: () => (isInvalidStrike ? 'similar option available' : null)\n };\n const formInputProps = _.includes([STRIKE_KEYS.premium, STRIKE_KEYS.strikePrice], strikeBasedOn)\n ? { type: 'number' }\n : { as: 'select' };\n\n const strikeIndexOptions = _.map(options, ({ value, displayName }) => (\n \n ));\n\n useEffect(() => {\n if (!isInvalidStrike) {\n clearErrors(strikeBoxName);\n return;\n }\n\n setError(strikeBoxName, { type: 'manual', message: 'isInvalid' });\n }, [isInvalidStrike]);\n\n const onStrikeUpdate = (event, onChange) => {\n const parsedValue = event.target.value === ''\n ? undefined\n : parseFloat(event.target.value);\n\n onStrikeChange({ strike: parsedValue });\n onChange(parsedValue);\n };\n\n const strikeBoxStyle = classNames('', {\n 'custom-select custom-select-sm': !!formInputProps.as,\n 'strike-index': !!formInputProps.as,\n 'border-danger': isInvalidStrike || !!errors[strikeBoxName]\n });\n\n const renderStrikeSelector = () => (\n
    \n (\n onStrikeUpdate(event, onChange)}\n >\n {formInputProps.as && strikeIndexOptions}\n \n )}\n control={control}\n defaultValue={strike === undefined ? '' : strike && strike.toString()}\n name={strikeBoxName}\n rules={validator}\n />\n
    \n );\n\n if (isHide) {\n return null;\n }\n\n return (\n renderStrikeSelector()\n );\n};\n\nStrikeIndex.propTypes = propTypes;\nStrikeIndex.defaultProps = defaultProps;\n\nexport default StrikeIndex;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport StopsValueTypeToggleBtn from 'common/components/StopsValueTypeToggleBtn';\nimport\nStrikeIndex\nfrom 'modules/TransactionsBuilder/NewTransactionBuilder/components/TransactionBuilderForm/StrikeIndex';\nimport { optionConfigPropTypes, instrumentGroupsPropTypes, timeBasedSignalPropTypes } from 'common/propTypes';\nimport { onValidateStrikeBasedOn, STRIKE_KEYS } from 'modules/TransactionsBuilder/configs';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport {\n STOPS_KEYS, STOPS_VALUE_TYPES\n} from '../config';\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n optionConfigs: PropTypes.arrayOf(optionConfigPropTypes),\n onOptionConfigsChange: PropTypes.func.isRequired,\n optionStrikeCalculationBasedOn: PropTypes.string.isRequired,\n timeBasedSignal: timeBasedSignalPropTypes.isRequired\n};\nconst defaultProps = {};\n\nconst OptionConfigForm = ({\n instrumentGroups,\n optionConfigs,\n onOptionConfigsChange,\n optionStrikeCalculationBasedOn,\n timeBasedSignal,\n}) => {\n const { PRICE, PERCENT } = STOPS_VALUE_TYPES;\n const {\n STOP_GAIN, STOP_GAIN_PRICE, STOP_LOSS, STOP_LOSS_PRICE\n } = STOPS_KEYS;\n const [stopGainValueKey, setStopGainValueKey] = useState(STOP_GAIN);\n const [stopLossValueKey, setStopLossValueKey] = useState(STOP_LOSS);\n\n const onChangeOptionConfigs = (newOptionConfig, indexToEdit) => {\n const newOptionConfigs = optionConfigs;\n const editedOptionConfig = optionStrikeCalculationBasedOn in newOptionConfig\n ? _.omit(optionConfigs[indexToEdit], STRIKE_KEYS.strikeIndex)\n : optionConfigs[indexToEdit];\n\n newOptionConfigs[indexToEdit] = {\n ...editedOptionConfig,\n ...newOptionConfig\n };\n\n onOptionConfigsChange(newOptionConfigs, timeBasedSignal);\n };\n\n const onStopGainValueTypeChange = (newValueType, idx) => {\n setStopGainValueKey(\n newValueType === PRICE ? STOP_GAIN_PRICE : STOP_GAIN\n );\n\n onChangeOptionConfigs({\n stopGain: undefined,\n stopGainPrice: undefined,\n }, idx);\n };\n\n const onStopLossValueTypeChange = (newValueType, idx) => {\n setStopLossValueKey(\n newValueType === PRICE ? STOP_LOSS_PRICE : STOP_LOSS\n );\n\n onChangeOptionConfigs({\n stopLoss: undefined,\n stopLossPrice: undefined,\n }, idx);\n };\n\n const renderOptionConfig = (optionConfig, idx) => {\n const {\n entryType, optionType, quantity\n } = optionConfig;\n\n const strikeIndexKey = onValidateStrikeBasedOn(optionStrikeCalculationBasedOn);\n const strike = _.get(optionConfig, strikeIndexKey, 0);\n\n const onChangeValue = (key, event, isString) => {\n onChangeOptionConfigs({ [key]: onRegexOnlyNumberAndFloat(event.target.value, isString) }, idx);\n };\n\n const renderValue = (key) => {\n if (optionConfig[key] === undefined) return '';\n if (optionConfig[key]) return optionConfig[key].toString();\n\n return '';\n };\n\n return (\n \n \n onChangeOptionConfigs({ optionType: newOptionType }, idx)}\n >\n \n Call\n \n\n \n Put\n \n \n \n\n \n onChangeOptionConfigs({\n [strikeIndexKey]: newStrike.strike\n }, idx)}\n optionType={optionType}\n transactionConfigIdx={0}\n strikeBasedOn={optionStrikeCalculationBasedOn}\n valuePath=\"\"\n />\n \n\n \n onChangeOptionConfigs({\n quantity: { value: event.target.value, type: 'lot' }\n }, idx)}\n />\n \n\n \n onChangeOptionConfigs({ entryType: newEntryType }, idx)}\n >\n \n Buy\n \n\n \n Sell\n \n \n \n\n \n
    \n onStopLossValueTypeChange(newValueType, idx)}\n />\n { onChangeValue(stopLossValueKey, event, false); }}\n onChange={(event) => { onChangeValue(stopLossValueKey, event, true); }}\n />\n
    \n \n\n \n
    \n onStopGainValueTypeChange(newValueType, idx)}\n />\n { onChangeValue(stopGainValueKey, event, false); }}\n onChange={(event) => { onChangeValue(stopGainValueKey, event, true); }}\n />\n
    \n \n \n );\n };\n\n return _.map(optionConfigs, renderOptionConfig);\n};\n\nOptionConfigForm.propTypes = propTypes;\nOptionConfigForm.defaultProps = defaultProps;\n\nexport default OptionConfigForm;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { STRIKE_KEYS } from 'modules/TransactionsBuilder/configs';\n\nconst propTypes = {\n optionStrikeCalculationBasedOn: PropTypes.string.isRequired,\n};\nconst defaultProps = {};\n\nconst OptionConfigHeader = ({ optionStrikeCalculationBasedOn }) => {\n const strikeBasedOn = (optionStrikeCalculationBasedOn === STRIKE_KEYS.equityPrice)\n ? STRIKE_KEYS.strikeIndex : optionStrikeCalculationBasedOn;\n\n return (\n \n \n Option Type\n {_.startCase(strikeBasedOn)}\n Total Lot\n Action Type\n Stop Loss\n Take Profit\n \n \n );\n};\n\nOptionConfigHeader.propTypes = propTypes;\nOptionConfigHeader.defaultProps = defaultProps;\n\nexport default OptionConfigHeader;\n","import _ from 'lodash';\nimport { STRIKE_KEYS } from 'modules/TransactionsBuilder/configs';\n\nexport const changeOptionConfigsBasedOn = (optionConfigs, basedOn) => {\n const getPremiumValue = (premiumValue) => {\n if (premiumValue === 0) return 500;\n if (premiumValue > 0) {\n const value = 500 - (50 * premiumValue);\n return value >= 50 ? value : 50;\n }\n const value = 500 + (50 * premiumValue);\n return value <= 1000 ? value : 1000;\n };\n\n switch (basedOn) {\n case STRIKE_KEYS.premium:\n return _.map(optionConfigs, (optionConfig) => {\n return {\n ...optionConfig,\n [basedOn]: getPremiumValue(optionConfig[basedOn])\n };\n });\n case STRIKE_KEYS.strikePrice:\n return _.map(optionConfigs, (optionConfig) => { return { ...optionConfig, [basedOn]: 0 }; });\n default:\n return optionConfigs;\n }\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { optionConfigPropTypes, timeBasedSignalPropTypes } from 'common/propTypes';\nimport { changeOptionConfigsBasedOn } from '../helper';\n\nconst propTypes = {\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n optionConfigs: PropTypes.arrayOf(optionConfigPropTypes).isRequired,\n onOptionConfigsChange: PropTypes.func.isRequired,\n icon: PropTypes.string.isRequired,\n timeBasedSignal: timeBasedSignalPropTypes.isRequired,\n onCurrentStrategyChange: PropTypes.func.isRequired,\n optionStrikeCalculationBasedOn: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst StrategiesList = ({\n id, name, icon, optionConfigs, onOptionConfigsChange, timeBasedSignal, onCurrentStrategyChange,\n optionStrikeCalculationBasedOn\n}) => {\n return (\n
  • \n {\n onOptionConfigsChange(\n changeOptionConfigsBasedOn(optionConfigs, optionStrikeCalculationBasedOn), timeBasedSignal\n );\n onCurrentStrategyChange(name);\n }}\n >\n {name}\n {_.startCase(name)}\n \n
  • \n );\n};\n\nStrategiesList.propTypes = propTypes;\nStrategiesList.defaultProps = defaultProps;\n\nexport default StrategiesList;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport TimeSelector from 'common/components/TimeSelector';\nimport { timeBasedSignalPropTypes } from 'common/propTypes';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n timeBasedSignal: timeBasedSignalPropTypes.isRequired,\n onSignalTimeChange: PropTypes.func.isRequired,\n error: PropTypes.string\n};\n\nconst defaultProps = {\n error: null\n};\n\nconst StrategyTimeBasedSignal = ({ timeBasedSignal, onSignalTimeChange, error }) => {\n const { entryTime, exitTime } = timeBasedSignal;\n const [timePickerName] = useState(_.uniqueId('intradayTimePicker-'));\n\n return (\n <>\n
    \n
    \n \n {\n onSignalTimeChange(newTime, 'entryTime');\n }}\n selectedTime={entryTime}\n />\n
    \n
    \n \n {\n onSignalTimeChange(newTime, 'exitTime');\n }}\n selectedTime={exitTime}\n />\n
    \n
    \n
    {error || null}
    \n \n );\n};\n\nStrategyTimeBasedSignal.propTypes = propTypes;\nStrategyTimeBasedSignal.defaultProps = defaultProps;\n\nexport default StrategyTimeBasedSignal;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport {\n hasIndexInstruments, onValidateStrikeBasedOn, STRIKE_KEYS\n} from 'modules/TransactionsBuilder/configs';\n\nimport { getTimeValidatorsV2 } from 'common/utils/validators';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport { OPTIONS_EXPIRY } from 'modules/QuantBuilder/config/index';\nimport PropTypes from 'prop-types';\nimport { getQuantSupportSegment } from 'ui/run/RunForm/helper';\nimport {\n strategyBuilderConfig,\n emptyStrategyBuilderQuantConfig\n} from './config';\nimport TopSection from './components/TopSection';\nimport OptionConfigForm from './components/OptionConfigForm';\nimport OptionConfigHeader from './components/OptionConfigHeader';\nimport StrategiesList from './components/StrategiesList';\nimport StrategyTimeBasedSignal from './components/StrategyTimeBasedSignal';\nimport { changeOptionConfigsBasedOn } from './helper';\n\nconst propTypes = {\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n plan: PropTypes.shape({})\n};\n\nconst defaultProps = { plan: null };\n\nconst getUpdatedQuantConfig = (quantConfig, newOptionConfigs, timeBasedSignal) => ({\n ...quantConfig,\n optionConfigs: newOptionConfigs,\n timeBasedSignal\n});\n\nconst StrategyBuilder = ({ segments, plan }) => {\n const methods = useForm();\n const [strategies, setStrategies] = useState(strategyBuilderConfig(STRIKE_KEYS.strikeIndex));\n const initialTimeBasedSignal = _.get(strategies, 'buyCall.timeBasedSignal');\n const [segment, setSegment] = useState(getQuantSupportSegment(plan, SEGMENT_CONFIG.future));\n const [currentStrategy, setCurrentStrategy] = useState('buyCall');\n const initialOptionConfigs = _.get(strategies, [currentStrategy, 'optionConfigs']);\n const [error, setError] = useState(null);\n const [quantConfig, setQuantConfig] = useState(\n getUpdatedQuantConfig(emptyStrategyBuilderQuantConfig(), initialOptionConfigs, initialTimeBasedSignal)\n );\n\n useEffect(() => {\n setQuantConfig({\n ...quantConfig,\n optionStrikeCalculationBasedOn: segment === SEGMENT_CONFIG.future\n ? STRIKE_KEYS.strikeIndex : STRIKE_KEYS.equityPrice\n });\n }, [segment]);\n\n const {\n optionConfigs,\n optionStrikeCalculationBasedOn,\n instrumentGroups,\n timeBasedSignal\n } = quantConfig;\n\n const onOptionConfigsChange = (newOptionConfigs, signalTiming) => {\n setQuantConfig(getUpdatedQuantConfig(quantConfig,\n newOptionConfigs,\n signalTiming));\n setError(null);\n };\n const onQuantConfigChange = (patriallyUpdatedQuantConfig) => {\n setQuantConfig({\n ...quantConfig,\n ...patriallyUpdatedQuantConfig\n });\n };\n\n useEffect(() => {\n if (hasIndexInstruments(instrumentGroups)) return;\n const strikeIndexKey = onValidateStrikeBasedOn(optionStrikeCalculationBasedOn);\n\n const getOptionConfig = (optionConfig) => {\n return {\n ...optionConfig,\n [strikeIndexKey]: Math.abs(optionConfig[strikeIndexKey]) <= 10\n ? optionConfig[strikeIndexKey]\n : 0\n };\n };\n\n onQuantConfigChange({\n optionStrikeCalculationBasedOn,\n optionsExpiryCycle: OPTIONS_EXPIRY.monthly,\n optionConfigs: _.map(optionConfigs, getOptionConfig)\n });\n }, [quantConfig.instrumentGroups]);\n\n useEffect(() => {\n const newStrategies = strategyBuilderConfig(optionStrikeCalculationBasedOn);\n const newOptionConfigs = _.get(newStrategies, [currentStrategy, 'optionConfigs']);\n\n onOptionConfigsChange(\n changeOptionConfigsBasedOn(newOptionConfigs, optionStrikeCalculationBasedOn),\n timeBasedSignal\n );\n setStrategies(newStrategies);\n }, [optionStrikeCalculationBasedOn]);\n\n const onContinue = () => {\n const { timeBasedSignal: { entryTime, exitTime } } = quantConfig;\n\n if (getTimeValidatorsV2().validate(entryTime)) { // Entry time validatiom\n setError(getTimeValidatorsV2().validate(entryTime));\n\n return;\n }\n\n if (getTimeValidatorsV2().validate(exitTime)) { // exit time validation\n setError(getTimeValidatorsV2().validate(exitTime));\n\n return;\n }\n\n let url = '/runs/new?is_basic_builder=false&strategyBuilderConfig=';\n url += `${encodeURIComponent(JSON.stringify({ ...quantConfig, segment, currentStrategy }))}`;\n url += `&strategyName=${currentStrategy}`;\n\n window.location.href = url;\n };\n\n const renderStrategies = ({\n id, name, icon, optionConfigs: newOptionConfigs, timeBasedSignal: newTimeBasedSignal\n }) => (\n \n );\n\n const onSignalTimeChange = (time, type) => {\n setQuantConfig({\n ...quantConfig,\n timeBasedSignal: { ...quantConfig.timeBasedSignal, [type]: time }\n });\n setError(null);\n };\n\n const renderComponents = ({ id, name }, key) => (\n \n <>\n setSegment(newSegment)}\n segments={segments}\n />\n
    \n \n \n \n \n \n
    \n
    \n \n onContinue(name)}\n >\n Continue\n \n \n
    \n );\n\n return (\n \n {/*

    Options Builder

    */}\n
    \n
    \n
      \n {_.map(strategies, renderStrategies)}\n
    \n
    \n
    \n {_.map(strategies, renderComponents)}\n
    \n
    \n
    \n );\n};\n\nStrategyBuilder.propTypes = propTypes;\nStrategyBuilder.defaultProps = defaultProps;\n\nexport default StrategyBuilder;\n","import moment from 'moment';\n\nexport const getMeetStatus = (date, startTime, endTime) => {\n const momentDate = moment(date);\n const now = moment();\n\n if (!momentDate.isValid) { return { label: 'invalid Date Format', status: 'Completed' }; }\n\n const meetingBeginningTime = moment(startTime, 'hh:mm');\n const meetingEndTime = moment(endTime, 'hh:mm');\n\n const formattedMeetingBeginningTime = meetingBeginningTime.format('hh:mm A');\n const formattedMeetingEndTime = meetingEndTime.format('hh:mm A');\n\n if (now.isSame(date, 'day')) {\n if (now > meetingBeginningTime && now < meetingEndTime) {\n return { label: 'Streaming', status: 'Live' };\n }\n\n if (meetingEndTime < now) { return { label: 'meeting Closed', status: 'Completed' }; }\n\n return { label: ` at ${formattedMeetingBeginningTime} to ${formattedMeetingEndTime}`, status: 'Today' };\n }\n\n if (momentDate < now) { return { label: 'meeting Closed', status: 'Completed' }; }\n\n return {\n label: `Starts at (${momentDate.format('MMM Do YYYY')}), \n ${formattedMeetingBeginningTime} to ${formattedMeetingEndTime}`,\n status: 'Upcoming'\n };\n};\n","import _ from 'lodash';\nimport { getMeetStatus } from 'ui/Meeting/helper';\n\nexport const getUpcomingEvent = (meetConfigs) => {\n const filterUpComingEvents = _.filter(meetConfigs, (meetConfig) => {\n const { date, startTime, endTime } = meetConfig;\n const { status } = getMeetStatus(date, startTime, endTime);\n return status !== 'Completed';\n });\n\n // only sort by date only\n\n // if there is 2 to 3 meeting at same day.. sortBy is not handle ?\n // there is only one meeting perDay\n const sortByDate = _.sortBy(filterUpComingEvents, (event) => { return _.get(event, 'date'); });\n if (!_.isEmpty(sortByDate)) return _.head(sortByDate);\n\n return {};\n};\n\nexport const languageOptions = [\n { label: 'Choose...', value: '' },\n { label: 'English', value: 'english' },\n { label: 'Hindi', value: 'hindi' },\n { label: 'Tamil', value: 'tamil' }\n];\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getUpcomingEvent } from 'ui/HelpLine/config';\nimport { getMeetStatus } from 'ui/Meeting/helper';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\nconst propTypes = {\n googleMeetConfig: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n googleMeetConfig: []\n};\n\nconst MeetBanner = ({ googleMeetConfig }) => {\n const upComingEvent = getUpcomingEvent(googleMeetConfig);\n const {\n date, startTime, endTime, meetLink, meetingType\n } = upComingEvent;\n const title = _.get(upComingEvent, 'title', '');\n const oneIndentation = ' ';\n const { status, label } = getMeetStatus(date, startTime, endTime);\n const isLive = status === 'Live';\n const isToday = status === 'Today';\n const isHideMeeting = _.keys(upComingEvent).length === 0;\n\n if (isHideMeeting) return null;\n\n const renderLiveBubble = () => {\n if (isLive) return
    ;\n\n return null;\n };\n\n const renderSessionBubble = () => {\n if (isToday && !isHideMeeting) {\n return
    ;\n }\n\n return null;\n };\n\n const renderIcon = () => {\n switch (meetingType) {\n case 'googleMeet':\n return (\n \n );\n case 'youtube':\n return (\n \n );\n case 'zoom':\n return (\n \n );\n default:\n return null;\n }\n };\n\n return (\n <>\n
    \n
    \n {renderLiveBubble()}\n {renderSessionBubble()}\n
    \n \n {renderIcon()}\n
    \n
    \n Join\n {oneIndentation}\n {!isLive && status}\n {oneIndentation}\n Livesession\n \n {oneIndentation}\n {label}\n \n {oneIndentation}\n {title && {title}}\n
    \n
    \n \n
    \n
    \n
    \n \n );\n};\n\nMeetBanner.propTypes = propTypes;\nMeetBanner.defaultProps = defaultProps;\n\nexport default withErrorBoundary(MeetBanner, '', false);\n","import _ from 'lodash';\nimport { automaticSupportedBrokers, oneClickSupportedBrokers } from 'common/brokerConfigs/config';\n\nexport const getBrokerEnabledContent = (currentUserDetails) => {\n const { broker, plan_active_till: planActiveTill, free_trial_till: freeTrialTill } = currentUserDetails;\n const { isInInitialOfferPeriod } = window;\n\n const isAutomaticSupportUser = _.includes(automaticSupportedBrokers, broker);\n const isOneClickSupportUser = _.includes(oneClickSupportedBrokers, broker);\n let content = 'Yes ';\n\n const getStrucutureContent = (isCloseSpan) => {\n content += '';\n if (isAutomaticSupportUser && isOneClickSupportUser) {\n content += 'Automatic';\n } else if (isAutomaticSupportUser) content += 'Automatic';\n\n if (isCloseSpan) content += '';\n };\n\n if (planActiveTill) {\n getStrucutureContent(true);\n return content;\n }\n\n if (isInInitialOfferPeriod) {\n getStrucutureContent(false);\n content += ` free trial till ${freeTrialTill}`;\n content += '';\n }\n\n return content;\n};\n","import _ from 'lodash';\nexport const setLocalStorage = (key, value) => {\n let localStorage = null;\n try { localStorage = _.get(window, 'localStorage', null); } catch { localStorage = null; }\n\n if (!localStorage) return;\n\n localStorage.setItem(key, value);\n};\n\nexport const getLocalStorage = (key) => {\n let localStorage = null;\n try { localStorage = _.get(window, 'localStorage', null); } catch { localStorage = null; }\n\n if (!localStorage) return '';\n\n return localStorage.getItem(`${key}`);\n};\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport { Alert } from 'react-bootstrap';\n\nimport { getExpiringSoonItems } from 'common/api/user';\nimport { userPropTypes } from 'common/propTypes';\nimport { getLocalStorage, setLocalStorage } from 'common/utils/localstorage';\n\nconst propTypes = {\n currentUserDetails: userPropTypes\n};\nconst defaultProps = {\n currentUserDetails: null\n};\n\nconst LOCAL_STORAGE_KEY = 'hideExpiringSoon';\nconst today = moment().format('DD-MM-YYYY');\nconst renderEndDate = (endDate) => {\n return (\n \n {moment(endDate).format('dddd, Do MMMM YYYY')}\n \n );\n};\n\nconst renderAddon = (addon, endDate) => {\n return (\n <>\n Addon - \n {addon.addon_name}\n  expires on \n {renderEndDate(endDate)}\n \n );\n};\n\nconst renderPlan = (plan, endDate) => {\n return (\n
    \n {plan.plan_name}\n  Plan expires on \n {renderEndDate(endDate)}\n
    \n );\n};\n\nconst renderPurchaseItem = (purchaseItem) => {\n const { purchasable_type: purchasableType, end_date: endDate } = purchaseItem;\n let content = null;\n if (!endDate) {\n return null;\n }\n if (purchasableType === 'Addon') {\n content = renderAddon(purchaseItem.purchasable, endDate);\n }\n if (purchasableType === 'Plan') {\n content = renderPlan(purchaseItem.purchasable, endDate);\n }\n\n const classnames = classNames(\n 'purchase-item',\n `item-type-${(purchasableType || '').toLowerCase()}`\n );\n\n return (\n
    \n {content}\n
    \n );\n};\n\nconst ExpiringSoonPurchasedItems = ({ currentUserDetails }) => {\n const [expiringSoonItems, setExpiringSoonItems] = useState([]);\n const [showExpiringSoon, setShowExpiringSoon] = useState(true);\n\n const hideExpiringSoon = () => {\n setLocalStorage(LOCAL_STORAGE_KEY, today);\n setShowExpiringSoon(false);\n };\n\n useEffect(() => {\n // To avoid warning. useEffect function should not return anything other than promise.\n // We cannot use async await directly in useEffect.\n const fetchItems = async () => {\n try {\n const expiringItems = await getExpiringSoonItems();\n const planActiveTillDate = currentUserDetails.plan_active_till.toString().slice(0, 10);\n\n const filteredExpiringItems = _.filter(expiringItems, (item) => {\n return (\n item.purchasable_type === 'Addon'\n || item?.end_date >= planActiveTillDate\n );\n });\n\n setExpiringSoonItems(filteredExpiringItems);\n } catch (e) {\n console.log('Error in fetching expiring soon items', e);\n }\n };\n fetchItems();\n }, []);\n\n if (getLocalStorage(LOCAL_STORAGE_KEY) <= today) {\n return null;\n }\n\n if (expiringSoonItems.length === 0 || !showExpiringSoon) {\n return null;\n }\n\n return (\n
    \n \n Expiring Soon\n {expiringSoonItems.map(renderPurchaseItem)}\n \n
    \n );\n};\n\nExpiringSoonPurchasedItems.propTypes = propTypes;\nExpiringSoonPurchasedItems.defaultProps = defaultProps;\n\nexport default ExpiringSoonPurchasedItems;\n","import _ from 'lodash';\nimport React from 'react';\nimport SmallInfoCard from 'common/components/SmallInfoCard';\nimport { userPropTypes } from 'common/propTypes';\nimport moment from 'moment';\nimport ReactHtmlParser from 'react-html-parser';\nimport classnames from 'classnames';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { getActualPlanEnddate } from 'common/utils/dateUtils';\nimport { getBrokerEnabledContent } from './config';\nimport ExpiringSoonPurchasedItems from './ExpiringSoon';\n\nconst propTypes = {\n currentUserDetails: userPropTypes,\n};\n\nconst defaultProps = { currentUserDetails: null };\n\nlet nonBrokerTooltipMessage = 'For broker integration:
    ';\nnonBrokerTooltipMessage += '1. Login via a broker (instead of email or facebook)
    ';\nnonBrokerTooltipMessage += '2. First week free trial or Purchase any Paid Plan. No other setup required.';\n\nconst AccountDetails = ({ currentUserDetails }) => {\n if (!currentUserDetails) return null;\n const oneIndentation = ' ';\n\n const {\n broker,\n addon_consumed_historic_runs: addonConsumedHistoricRuns,\n addon_consumed_live_runs: addonConsumedLiveRuns,\n addon_max_historic_runs: addonMaxHistoricRuns,\n addon_max_live_runs: addonMaxLiveRuns,\n quota_consumed_historic_runs: quotaConsumedHistoricRuns,\n quota_consumed_live_runs: quotaConsumedLiveRuns,\n quota_max_historic_runs: quotaMaxHistoriRuns,\n quota_max_live_runs: quotaMaxLiveRuns,\n plan_active_till: planActiveTill,\n free_trial_till: freeTrialTill\n } = currentUserDetails;\n const periodHeader = planActiveTill ? 'Plan Active Till' : 'Free Active Till';\n\n const renderBacktestCreditDetails = () => {\n return (\n \n {_.add(addonConsumedHistoricRuns, quotaConsumedHistoricRuns)}\n /\n {_.add(addonMaxHistoricRuns, quotaMaxHistoriRuns)}\n \n );\n };\n\n const renderLiveCreditDetails = () => {\n return (\n \n {_.add(addonConsumedLiveRuns, quotaConsumedLiveRuns)}\n /\n {_.add(addonMaxLiveRuns, quotaMaxLiveRuns)}\n \n );\n };\n\n const renderPlanActiveTill = () => {\n let planActiveTillContent = '-';\n if (planActiveTill && moment().format('YYYY-MM-DD') <= planActiveTill) {\n planActiveTillContent = `${getActualPlanEnddate(planActiveTill).format('MMM Do, YYYY')}`;\n } else if (planActiveTill && moment().format('YYYY-MM-DD') > planActiveTill) {\n planActiveTillContent = 'Plan Expired';\n } else if (freeTrialTill && moment().format('YYYY-MM-DD') <= freeTrialTill) {\n planActiveTillContent = `${getActualPlanEnddate(freeTrialTill).format('MMM Do, YYYY')}`;\n } else if (freeTrialTill && moment().format('YYYY-MM-DD') > freeTrialTill) {\n planActiveTillContent = 'Free Trial Expired';\n }\n\n return planActiveTillContent;\n };\n\n const renderBrokerDetails = () => {\n const brokerBasedIcon = broker ? 'check_circle' : 'do_disturb_on';\n const brokerContent = broker ? ReactHtmlParser(\n getBrokerEnabledContent(currentUserDetails)\n ) : 'No';\n\n const iconClassName = classnames('material-icons-outlined tx-16 align-middle', {\n 'text-success': broker,\n 'text-warning': !broker\n });\n\n return (\n \n {brokerBasedIcon}\n {oneIndentation}\n {brokerContent}\n {!broker && (\n \n \n help_outline\n \n \n\n )}\n \n );\n };\n\n const structuredData = [\n {\n title: 'Backtest Credits',\n icon: ,\n value: renderBacktestCreditDetails(),\n link: '/folders?selectedFilter=historic'\n },\n {\n title: 'Live Credits',\n icon: ,\n value: renderLiveCreditDetails(),\n link: '/folders?selectedFilter=running_live_runs'\n },\n {\n title: 'Broker Integration',\n icon: people_alt,\n value: renderBrokerDetails(),\n link: '/settings?tab=profile'\n },\n {\n title: periodHeader,\n icon: account_balance_wallet,\n value: renderPlanActiveTill(),\n link: '/settings?tab=profile'\n }\n ];\n\n const renderStructuredData = (data, id) => {\n const {\n title, icon, value, link\n } = data;\n\n return (\n \n {value}}\n infoAvatar={(
    {icon}
    )}\n />\n
    \n );\n };\n\n return (\n
    \n
    \n {_.map(structuredData, renderStructuredData)}\n
    \n \n
    \n );\n};\n\nAccountDetails.propTypes = propTypes;\nAccountDetails.defaultProps = defaultProps;\n\nexport default AccountDetails;\n","import consumer from 'channels/consumer';\n\nexport const redisLiveDataSubscribedChannel = (args) => {\n const { channelName, onDataReceive } = args;\n return consumer.subscriptions.create(\n { channel: 'RedisLiveDataChannel', channelName },\n {\n connected: () => { console.log('connected', channelName); },\n disconnected: () => { console.log('disconnected', channelName); },\n received: (data) => { onDataReceive(data); }\n }\n );\n};\n\nexport const redisLiveDataUnSubscribedChannel = (subscribe) => {\n return consumer.subscriptions.remove(subscribe);\n};\n","import _ from 'lodash';\nimport moment from 'moment';\nimport { getSymbolType } from 'v2/common/utils/tradingSymbol';\nimport { removeExchangeFromInstrument } from 'common/utils/InstrumentUtils';\n\nconst getStrikePrice = (strikePriceSplit) => {\n const strikePriceInitial = _.get(strikePriceSplit, 0);\n const strikePriceAfterDecimal = _.get(strikePriceSplit, 1, '00');\n\n return `${strikePriceInitial}.${_.size(strikePriceAfterDecimal) >= 2\n ? strikePriceAfterDecimal : `${strikePriceAfterDecimal}0`}`;\n};\n\nexport const getChannelName = (tradingSymbol) => {\n const symbolType = getSymbolType(tradingSymbol);\n if (symbolType === 'EQUITY') return `EQUITY:${tradingSymbol}`;\n\n const firstDigitIndex = tradingSymbol.search(/\\d/);\n const date = tradingSymbol.substring(firstDigitIndex, firstDigitIndex + 7);\n const instrument = tradingSymbol.substring(0, firstDigitIndex);\n const formattedDate = moment(date, 'DDMMMYY').format('DD-MM-YYYY');\n\n const { indexInstruments } = window;\n\n const isIndexPresent = _.includes(\n _.map(indexInstruments, (indexInstrument) => removeExchangeFromInstrument(indexInstrument)), instrument\n );\n\n const indexType = isIndexPresent ? 'IDX' : 'STK';\n switch (symbolType) {\n case 'FUT':\n return `FUT${indexType}:${instrument}FUT${indexType}${formattedDate}`;\n default:\n const strikePriceSplit = _.split(tradingSymbol.substring(firstDigitIndex + 7).slice(0, -2), '.');\n const strikePrice = getStrikePrice(strikePriceSplit);\n\n return `OPT${indexType}:${instrument}OPT${indexType}${formattedDate}${strikePrice}${symbolType}`;\n }\n};\n","import PropTypes from 'prop-types';\n\nexport const pairedPropTypes = PropTypes.shape({\n entryType: PropTypes.string,\n exitType: PropTypes.string,\n entryTime: PropTypes.string,\n exitTime: PropTypes.string,\n orderProfit: PropTypes.number,\n quantity: PropTypes.number,\n entryPrice: PropTypes.number,\n exitPrice: PropTypes.number,\n hasIlliquid: PropTypes.bool,\n tradingSymbol: PropTypes.string,\n isManualExitShow: PropTypes.bool,\n entryOrder: PropTypes.shape({}),\n exitOrder: PropTypes.shape({})\n});\n","import _ from 'lodash';\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport BgBlink from 'common/components/BgBlink/index';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport TransactionType from 'common/components/TransactionType';\nimport ForceExitConfirmation from 'common/components/ForceExitConfirmation/index';\nimport { pairedPropTypes } from './pairedPropTypes';\n\nconst propTypes = {\n pairedOrder: pairedPropTypes,\n priceData: PropTypes.number,\n onForceExit: PropTypes.func.isRequired,\n isShowIndividualSquareOff: PropTypes.bool.isRequired\n};\n\nconst defaultProps = { pairedOrder: {}, priceData: null };\n\nconst TableLegRow = ({\n pairedOrder, priceData, onForceExit, isShowIndividualSquareOff\n}) => {\n const {\n entryType, exitType, orderProfit, quantity, entryPrice, exitPrice,\n tradingSymbol, shouldCalculateUnrealizedProfit, isManualExitShow\n } = pairedOrder;\n\n const renderPrice = (price) => {\n if (!_.isNumber(price) || price === 0) return '-';\n\n return {price};\n };\n\n return (\n \n {tradingSymbol}\n {quantity}\n \n
    \n \n
    {renderPrice(entryPrice)}
    \n
    \n \n \n
    \n \n
    {renderPrice(exitPrice)}
    \n
    \n \n {(shouldCalculateUnrealizedProfit && priceData) ? {priceData} : '-'}\n {renderPrice(orderProfit)}\n \n {(isManualExitShow && isShowIndividualSquareOff)\n && }\n \n \n );\n};\n\nTableLegRow.propTypes = propTypes;\nTableLegRow.defaultProps = defaultProps;\n\nexport default memo(TableLegRow);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport BgBlink from 'common/components/BgBlink/index';\nimport { isNumber } from 'lodash';\nimport TransactionType from 'common/components/TransactionType';\nimport ForceExitConfirmation from 'common/components/ForceExitConfirmation/index';\nimport { pairedPropTypes } from './pairedPropTypes';\n\nconst propTypes = {\n pairedOrder: pairedPropTypes,\n priceData: PropTypes.number,\n onForceExit: PropTypes.func.isRequired,\n isShowIndividualSquareOff: PropTypes.bool.isRequired\n};\n\nconst defaultProps = { pairedOrder: {}, priceData: null };\n\nconst CardLeg = ({\n pairedOrder, priceData, onForceExit, isShowIndividualSquareOff\n}) => {\n const {\n entryType, exitType, orderProfit, quantity, entryPrice, exitPrice,\n tradingSymbol, shouldCalculateUnrealizedProfit, isManualExitShow\n } = pairedOrder;\n const isUnRealizedProfitCalculation = shouldCalculateUnrealizedProfit && priceData;\n const percentageDiff = (initialValue, nextValue) => {\n return 100 * Math.abs((initialValue - nextValue) / initialValue);\n // return 100 * Math.abs((initialValue - nextValue) / ((initialValue + nextValue) / 2));\n };\n\n const currentExitPrice = isUnRealizedProfitCalculation ? priceData : exitPrice;\n const percentage = (currentExitPrice && entryPrice) ? percentageDiff(entryPrice, currentExitPrice) : null;\n\n const renderPrice = (price) => {\n if (!_.isNumber(price) || price === 0) return '-';\n\n return {price};\n };\n\n const renderExitSide = () => {\n if (isUnRealizedProfitCalculation) {\n return (\n
    \n {priceData ? (\n
    \n LTP : \n {priceData}\n
    \n ) : null}\n
    \n );\n }\n\n return (\n
    \n
    Exit
    \n \n
    {renderPrice(exitPrice)}
    \n
    \n );\n };\n\n const renderPercentage = () => {\n if (!isNumber(percentage) || percentage === Infinity) return null;\n\n return (\n
    \n {Math.abs(_.round(percentage, 2)) || percentage}\n %\n
    \n );\n };\n\n return (\n
    \n
    \n
    \n
    \n {tradingSymbol}\n
    \n
    \n
    \n Qty : \n {quantity}\n
    \n
    \n
    \n\n
    \n {renderPercentage()}\n
    {renderPrice(orderProfit)}
    \n
    \n
    \n\n
    \n
    \n
    Entry
    \n \n
    {renderPrice(entryPrice)}
    \n
    \n {renderExitSide()}\n
    \n
    \n {(isManualExitShow && isShowIndividualSquareOff)\n && }\n
    \n
    \n );\n};\n\nCardLeg.propTypes = propTypes;\nCardLeg.defaultProps = defaultProps;\n\nexport default CardLeg;\n","import _ from 'lodash';\nimport React, {\n useEffect, memo, useState, useRef\n} from 'react';\nimport { getOrderProfit } from 'common/utils/transactionProfitHelper';\nimport {\n redisLiveDataSubscribedChannel, redisLiveDataUnSubscribedChannel\n} from 'common/api/redisLiveDataChannel';\nimport PropTypes from 'prop-types';\nimport { onLegForceExit } from 'common/api/run';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getChannelName } from './helper';\nimport { pairedPropTypes } from './pairedPropTypes';\nimport TableLegRow from './TableLegRow';\nimport CardLeg from './CardLeg';\n\nconst propTypes = {\n pairedOrder: pairedPropTypes,\n isCardView: PropTypes.bool,\n onUpdatePairedOrder: PropTypes.func,\n isShowIndividualSquareOff: PropTypes.bool\n};\n\nconst defaultProps = {\n pairedOrder: {},\n isCardView: false,\n onUpdatePairedOrder: () => { },\n isShowIndividualSquareOff: false\n};\n\nconst PairedOrderData = ({\n pairedOrder, isCardView, onUpdatePairedOrder, isShowIndividualSquareOff\n}) => {\n const {\n entryOrderId, jobId, entryType, quantity, entryPrice,\n tradingSymbol, shouldCalculateUnrealizedProfit, exitPrice\n } = pairedOrder;\n const [priceData, setPriceData] = useState(exitPrice);\n const subscribeRef = useRef(null);\n\n useEffect(() => {\n onUpdatePairedOrder({\n ...pairedOrder, orderProfit: getOrderProfit(entryType, entryPrice, priceData, quantity)\n });\n }, [priceData]);\n\n const channelName = getChannelName(tradingSymbol);\n\n const onReceivedData = (data) => {\n const price = _.get(data, 'close', null);\n\n if (price) { setPriceData(_.round(price, 2)); }\n };\n\n useEffect(() => {\n if (shouldCalculateUnrealizedProfit) {\n subscribeRef.current = redisLiveDataSubscribedChannel({\n channelName,\n onDataReceive: (data) => { onReceivedData(data); }\n });\n } else if (subscribeRef.current) {\n redisLiveDataUnSubscribedChannel(subscribeRef.current);\n }\n }, [shouldCalculateUnrealizedProfit]);\n\n const ComponentName = isCardView ? CardLeg : TableLegRow;\n\n const onForceExit = (successCallback = () => { }) => {\n onLegForceExit(jobId, entryOrderId).then(() => {\n reactToastify('Close position requested succesfully', TOASTIFY_TYPES.SUCCESS);\n successCallback();\n }).catch(() => {\n reactToastify('Something went wrong, please try again', TOASTIFY_TYPES.ERROR);\n });\n };\n\n return (\n \n );\n};\n\nPairedOrderData.propTypes = propTypes;\nPairedOrderData.defaultProps = defaultProps;\n\nexport default memo(PairedOrderData);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\n\nconst propTypes = {\n overAllProfit: PropTypes.number,\n};\n\nconst defaultProps = {\n overAllProfit: 0\n};\n\nconst OverallTransactionProfit = ({\n overAllProfit\n}) => {\n const renderProfit = () => {\n if (!overAllProfit) return null;\n\n return (\n
    \n {overAllProfit}\n
    \n );\n };\n\n return (\n
    \n {renderProfit()}\n
    \n );\n};\n\nOverallTransactionProfit.propTypes = propTypes;\nOverallTransactionProfit.defaultProps = defaultProps;\n\nexport default memo(OverallTransactionProfit);\n","import _ from 'lodash';\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport PairedOrderData from './PairedOrderData';\n\nconst propTypes = {\n pairedOrders: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onUpdatePairedOrder: PropTypes.func.isRequired,\n isShowIndividualSquareOff: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {};\n\nconst PairedOrderTable = ({ pairedOrders, onUpdatePairedOrder, isShowIndividualSquareOff }) => {\n const renderPairedOrders = (pairedOrder, key) => {\n return (\n { onUpdatePairedOrder(updatedPairedOrder, key); }}\n isShowIndividualSquareOff={isShowIndividualSquareOff}\n />\n );\n };\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n {_.map(pairedOrders, renderPairedOrders)}\n
    Trading SymbolQtyEntryExitLTPRealized Profit
    \n
    \n );\n};\n\nPairedOrderTable.propTypes = propTypes;\nPairedOrderTable.defaultProps = defaultProps;\n\nexport default memo(PairedOrderTable);\n","import _ from 'lodash';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { runPropTypes } from 'common/propTypes';\nimport { onRunForceExit } from 'common/api/run';\nimport { formatOrdersBasedOnJobs } from 'common/api/orders';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport subscribeChannel from 'common/api/subscribeChannel';\nimport ForceExitConfirmation from 'common/components/ForceExitConfirmation/index';\nimport RenderOrderTypeBadge from 'common/components/RenderOrderTypeBadge';\nimport { groupByTransactionFormat, getOrderData } from '../../../../common/utils/transactionProfitHelper';\nimport PairedOrderData from './PairedOrderData';\nimport OverallTransactionProfit from './OverallTransactionProfit';\nimport PairedOrderTable from './PairedOrderTable';\n\nconst propTypes = { run: runPropTypes };\n\nconst defaultProps = { run: null };\n\nconst LiveRunCard = ({ run }) => {\n if (_.isEmpty(run)) return null;\n\n const {\n id, order_type: orderType, run_type: runType, display_name: displayName, jobs\n } = run;\n const [orders, setOrders] = useState(_.get(run, 'orders', []));\n const isMarketplaceAuthorRun = _.get(run, 'is_strategy_author', false);\n\n const oneIndentation = ' ';\n const collapseId = `collapse${id}`;\n\n const { innerWidth } = window;\n const isMobileView = innerWidth < 775;\n\n const jobId = _.get(jobs, '[0].id', null);\n const [newOrder, setNewOrder] = useState({});\n const [pairedOrders, setPairedOrders] = useState([]);\n const isMaualExitPresent = _.some(pairedOrders, ({ isManualExitShow }) => isManualExitShow);\n const isComplete = !isMaualExitPresent && _.some(pairedOrders, ({ isCompleted }) => isCompleted);\n const isShowIndividualSquareOff = pairedOrders.length > 1;\n\n const overAllProfit = _.reduce(pairedOrders, (result, pairedOrder) => {\n const { orderProfit } = pairedOrder;\n \n result += orderProfit || 0;\n return result;\n }, 0);\n\n useEffect(() => {\n const transaction = formatOrdersBasedOnJobs([orders], id, orderType, runType);\n const groupedByTradingSymbol = _.groupBy(_.flattenDeep(transaction), groupByTransactionFormat);\n const updatedPairedOrders = _.map(groupedByTradingSymbol, (groupedBy) => getOrderData(\n groupedBy, runType, orderType, _.get(run, 'ignore_incomplete_orders_until', null),\n isMarketplaceAuthorRun\n ));\n setPairedOrders(updatedPairedOrders);\n }, [orders]);\n\n const updateOrCreateOrder = useCallback(() => {\n if (_.isEmpty(newOrder)) return null;\n\n const { id: newOrUpdateorderId } = newOrder;\n\n const isOrderPresent = _.some(\n orders, ({ id: individualOrderId }) => individualOrderId === newOrUpdateorderId\n );\n const updatedLastTransaction = !isOrderPresent ? [...orders, newOrder]\n : _.map(orders, (order) => {\n if (order.id === newOrUpdateorderId) return newOrder;\n return order;\n });\n\n const groupedByTransactions = _.groupBy(updatedLastTransaction, 'transaction_id');\n\n return setOrders(Object.values(groupedByTransactions).pop() || []);\n }, [newOrder]);\n\n useEffect(() => {\n const socketConnection = {\n channelName: 'NotificationsChannel',\n roomId: `job_${jobId}`,\n onDataReceive: (order) => { setNewOrder(order); }\n };\n\n subscribeChannel(socketConnection);\n }, []);\n\n useEffect(() => { updateOrCreateOrder(); }, [newOrder]);\n\n const onForceExit = () => {\n onRunForceExit(id).then(() => {\n reactToastify('Manual exit completed successfully', TOASTIFY_TYPES.SUCCESS);\n }).catch(() => {\n reactToastify('Something went wrong, please try again', TOASTIFY_TYPES.ERROR);\n });\n };\n\n const renderManualExitButton = () => {\n if (!isMaualExitPresent) return null;\n\n return (\n \n );\n };\n\n const emptyPairedOrdersRender = () => {\n return (\n
    \n \n history_toggle_off\n \n Waiting for transaction\n
    \n );\n };\n\n const onUpdatePairedOrder = (updatedPairedOrder, idx) => {\n setPairedOrders(_.map(pairedOrders, (pairedOrder, index) => {\n if (index === idx) return updatedPairedOrder;\n return pairedOrder;\n }));\n };\n\n const renderLiveBtn = (\n \n );\n\n const renderConditionalRenderer = () => {\n if (_.isEmpty(pairedOrders)) return emptyPairedOrdersRender();\n\n if (!isMobileView) {\n return (\n <>\n \n {renderLiveBtn}\n \n );\n }\n\n return (\n
    \n {_.map(pairedOrders, (pairedOrder, key) => {\n return (\n {\n onUpdatePairedOrder(updatedPairedOrder, key);\n }}\n isShowIndividualSquareOff={isShowIndividualSquareOff}\n />\n );\n })}\n {renderLiveBtn}\n
    \n );\n };\n\n const renderSignalText = () => {\n if (_.isEmpty(pairedOrders)) return null;\n if (isComplete) {\n return (\n \n {oneIndentation}\n \n {oneIndentation}\n Waiting for Next Entry Signal\n \n );\n }\n if (isMaualExitPresent) {\n return (\n \n {oneIndentation}\n \n {oneIndentation}\n Signal Entered\n \n );\n }\n\n return null;\n };\n\n const renderRunHeader = () => {\n return (\n \n
    \n
    \n {displayName || id}\n
    \n
    \n Order type : \n \n \n \n
    \n {renderSignalText()}\n
    \n
    \n
    \n
    \n \n {renderManualExitButton()}\n
    \n
    \n );\n };\n\n return (\n
    \n
    \n {renderRunHeader()}\n
    \n {renderConditionalRenderer()}\n
    \n
    \n
    \n );\n};\n\nLiveRunCard.propTypes = propTypes;\nLiveRunCard.defaultProps = defaultProps;\n\nexport default LiveRunCard;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { getLastTransactionForMultipleRuns, getRuns } from 'common/api/run';\nimport { ORDER_TYPES } from 'common/constants/index';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport LiveRunCard from './LiveRunCard';\n\nconst propTypes = {};\nconst defaultProps = {};\n\n// TODO: Move this as a seperate generic component outside of Home.\nconst LiveTransactions = () => {\n const { userPermissions } = window;\n const isEnabled = _.get(userPermissions, 'socketTransactions.isEnabled', false);\n if (!isEnabled) return null;\n\n const [runningStrategies, setRunningStrategies] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const { automatic: { value: automatic }, oneClick: { value: oneclick } } = ORDER_TYPES;\n\n const getSortId = (orderType) => {\n switch (orderType) {\n case automatic: return 0;\n case oneclick: return 1;\n default: return 2;\n }\n };\n\n const orderedStrategies = _.orderBy(runningStrategies, ['sortId', 'created_at'], ['asc', 'desc']);\n\n useEffect(() => {\n async function fetchOrders() {\n const resultRuns = await getRuns({\n params:\n { offsetRunId: 0, filter_type: 'running_live_runs' }\n });\n const lastTransactions = await getLastTransactionForMultipleRuns(_.map(resultRuns, 'id'));\n\n const modifiedRuns = _.map(resultRuns, (resultRun) => {\n const { order_type: orderType } = resultRun;\n return { ...resultRun, sortId: getSortId(orderType), orders: lastTransactions[resultRun.id] };\n });\n\n setIsLoading(false);\n setRunningStrategies(modifiedRuns);\n }\n fetchOrders();\n }, []);\n\n const renderRunningStrategies = (run, idx) => {\n return ;\n };\n\n if (_.isEmpty(orderedStrategies)) return null;\n\n return (\n
    \n

    Recent Transactions

    \n \n {_.map(orderedStrategies, renderRunningStrategies)}\n \n
    \n );\n};\n\nLiveTransactions.propTypes = propTypes;\nLiveTransactions.defaultProps = defaultProps;\n\nexport default LiveTransactions;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { getRuns } from 'common/api/run';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport InstrumentGroupsSentence from 'common/components/InstrumentGroupsSentence';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport RenderOrderTypeBadge from 'common/components/RenderOrderTypeBadge';\n\nconst propTypes = {};\n\nconst defaultProps = { currentUserDetails: {} };\n\nconst SHOW_COUNT = 8;\n\nconst strategyConfig = [\n { label: 'Your Strategies', value: 'yourStrategies' },\n { label: 'Sample Strategies', value: 'marketPlaceStrategies' },\n { label: 'All', value: 'all' }\n];\n\nconst DashboardDeployedStrategies = () => {\n const oneIndentation = ' ';\n const [deployedStrategies, setDeployedStrategies] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [isExpanded, setIsExpanded] = useState(false);\n const [activeStrategy, setActiveStrategy] = useState('all');\n const activeStrategies = () => {\n if (activeStrategy === 'marketPlaceStrategies') {\n return _.filter(deployedStrategies,\n ({ is_individual_deployed_run: isIndividualDeployedrun }) => { return !isIndividualDeployedrun; });\n }\n\n if (activeStrategy === 'yourStrategies') {\n return _.filter(deployedStrategies,\n ({ is_individual_deployed_run: isIndividualDeployedrun }) => { return isIndividualDeployedrun; });\n }\n\n return deployedStrategies;\n };\n const isHideMoreStrategiesButton = _.size(activeStrategies()) < SHOW_COUNT;\n\n const showStrategies = isExpanded ? activeStrategies() : _.take(activeStrategies(), SHOW_COUNT);\n\n useEffect(() => {\n const { isUserSignedIn } = window;\n if (!isUserSignedIn) { setIsLoading(false); } else {\n getRuns({ params: { offsetRunId: 0, filter_type: 'running_live_runs' } })\n .then((resultRuns) => {\n setDeployedStrategies(resultRuns);\n setIsLoading(false);\n });\n }\n }, []);\n\n useEffect(() => { setIsExpanded(false); }, [activeStrategy]);\n\n const renderShowMoreStrategiesButton = () => {\n if (isHideMoreStrategiesButton || isExpanded) { return null; }\n\n return (\n
    \n { setIsExpanded(true); }}\n >\n More Strategies\n \n
    \n );\n };\n\n const renderNoStrategiesView = (isHideContent = false) => {\n const normalContent = \"You don't have any deployed strategies\";\n const marketPlaceContent = \"You don't have any marketplace strategies\";\n const isMarketPlaceNoStrategyView = activeStrategy === 'marketPlaceStrategies';\n const actionClassName = classNames('actions-footer', {\n mpaction: isMarketPlaceNoStrategyView\n });\n\n return (\n
    \n
    \n \"No\n {!isHideContent && (\n \n {isMarketPlaceNoStrategyView ? marketPlaceContent : normalContent}\n \n )}\n {oneIndentation}\n
    \n {!isMarketPlaceNoStrategyView && (\n <>\n { window.location.href = '/runs/new'; }}\n >\n Create your strategy\n \n or\n \n )}\n { window.location.href = '/strategies'; }}\n >\n Explore Sample Strategies\n \n
    \n
    \n
    \n );\n };\n\n const renderHeaders = () => {\n return (\n
    \n
    \n {_.map(strategyConfig, (config, key) => {\n const { label, value } = config;\n const btnClassName = classNames('btn btn-sm btn-outline-primary btn-lightness', {\n active: value === activeStrategy\n });\n\n return (\n setActiveStrategy(value)}\n className={btnClassName}\n >\n {label}\n \n );\n })}\n
    \n
    \n );\n };\n\n const renderDeployedStrategies = (run, key) => {\n const {\n is_individual_deployed_run: isIndividualDeployedrun,\n id, display_name: displayName, created_at: createdAt, summary,\n order_type: orderType\n } = run;\n\n const instrumentGroups = _.get(run, 'instrument_groups', []);\n const profit = _.get(summary, 'profit', 0);\n const parentClassName = classNames('strategies-card', { 'market-strategies': !isIndividualDeployedrun });\n\n return (\n \n\n );\n };\n\n const renderEmptyCardToExplore = () => {\n if (!isHideMoreStrategiesButton) return null;\n\n return (\n
    \n {renderNoStrategiesView(true)}\n
    \n );\n };\n\n const renderView = () => {\n if (_.isEmpty(deployedStrategies)) return renderNoStrategiesView();\n\n return (\n
    \n {renderHeaders()}\n {_.isEmpty(showStrategies) ? renderNoStrategiesView()\n : (\n
    \n {_.map(showStrategies, renderDeployedStrategies)}\n {renderEmptyCardToExplore()}\n
    \n )}\n {renderShowMoreStrategiesButton()}\n
    \n );\n };\n\n return (\n
    \n \n {renderView()}\n \n
    \n );\n};\n\nDashboardDeployedStrategies.propTypes = propTypes;\nDashboardDeployedStrategies.defaultProps = defaultProps;\n\nexport default DashboardDeployedStrategies;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n strategy: PropTypes.shape({\n title: PropTypes.string.isRequired\n }).isRequired,\n};\n\nconst defaultProps = {\n};\nconst Header = ({\n strategy\n}) => {\n const { title } = strategy;\n\n return (\n
    \n
    {title || '-'}
    \n
    \n \"\"\n {' '}\n PREMIUM\n
    \n
    \n );\n};\n\nHeader.propTypes = propTypes;\nHeader.defaultProps = defaultProps;\n\nexport default Header;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport InstrumentGroupsSentence from 'common/components/InstrumentGroupsSentence';\nimport { quantConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n strategy: PropTypes.shape({\n quant_config: quantConfigPropTypes\n }).isRequired,\n tagClassName: PropTypes.string\n};\n\nconst defaultProps = {\n tagClassName: 'ins-tag'\n};\n\nconst InstrumentAndTags = ({ strategy, tagClassName }) => {\n const oneIndentation = ' ';\n const instrumentGroups = _.get(strategy, 'live_instrument_groups', []);\n const tags = _.get(strategy, 'tags', '');\n\n const renderTags = () => {\n if (_.isEmpty(tags)) return null;\n\n const tagMap = _.map(tags, (tag, idx) => {\n return
    {tag}
    ;\n });\n\n return (\n
    \n {tagMap}\n
    \n );\n };\n\n return (\n
    \n {/* Instruments */}\n Instruments :\n {oneIndentation}\n \n \n \n {/* Tags */}\n {renderTags()}\n
    \n );\n};\n\nInstrumentAndTags.propTypes = propTypes;\nInstrumentAndTags.defaultProps = defaultProps;\n\nexport default InstrumentAndTags;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\n// import HoverMessage from 'common/components/HoverMessage';\n// import moment from 'moment';\nimport { runPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n strategy: PropTypes.shape(\n {\n margin_amount: PropTypes.number.isRequired,\n max_drawdown: PropTypes.number,\n live_run: runPropTypes,\n deployed_run_details: PropTypes.shape({}),\n deployed_user_count: PropTypes.number\n }\n ).isRequired,\n isShowDates: PropTypes.bool,\n profitableValueParentClassName: PropTypes.string\n};\n\nconst defaultProps = { isShowDates: false, profitableValueParentClassName: 'mpstrategy-value-wrapper' };\n\nconst ProfitableValues = ({ strategy, isShowDates, profitableValueParentClassName }) => {\n const {\n margin_amount: marginAmount,\n // max_drawdown: maxDrawDown,\n deployed_run_details: deployedRunDetails,\n deployed_user_count: deployedUserCount\n // live_run: liveRun if we enable live run for users.. remove maxdrawdown in market place\n } = strategy;\n // const backtestProfit = _.get(strategy, 'backtest_run.summary.profit', 0);\n const backtestStartDate = _.get(strategy, 'backtest_run.start_date', '');\n const backtestEndDate = _.get(strategy, 'backtest_run.end_date', '');\n // const backtestYear = moment(backtestEndDate).diff(moment(backtestStartDate), 'year');\n const deployedRun = _.get(deployedRunDetails, 'deployed_run', {});\n const deployedOrderType = _.get(deployedRun, 'order_type', '');\n // const { summary: { profit } } = liveRun;\n\n const renderBacktestDates = () => {\n const isShow = (backtestStartDate && backtestEndDate);\n if (!isShow) return null;\n\n const renderDate = (label, value) => (\n
    \n
    {label}
    \n {value || '-'}\n
    \n );\n\n return (\n <>\n {renderDate('Start Date', backtestStartDate)}\n {renderDate('End Date', backtestEndDate)}\n \n );\n };\n\n const renderData = (displayName, value) => {\n return (\n
    \n
    {displayName}
    \n
    {value || ''}
    \n
    \n );\n };\n\n // const backtestPercentage = ((backtestProfit / backtestYear) / marginAmount) * 100;\n\n const initialColumnData = () => {\n return (\n <>\n {!isShowDates && renderData(\n 'Margin Required (Approx)',\n {marginAmount}\n )}\n {/* {renderData(\n 'Yearly Profit',\n
    \n {_.isFinite(backtestPercentage) ? `${_.round(backtestPercentage, 2)} %` : '-'}\n \n info\n \n
    \n )}\n {renderData('Drawdown', {maxDrawDown} || '-')} */}\n {renderData('Deployed Users', deployedUserCount.toString())}\n {(deployedOrderType && !isShowDates)\n && renderData('Deployed Order Type', _.startCase(deployedOrderType))}\n \n );\n };\n\n return (\n
    \n
    \n {isShowDates && renderBacktestDates()}\n {initialColumnData()}\n
    \n
    \n );\n};\n\nProfitableValues.propTypes = propTypes;\nProfitableValues.defaultProps = defaultProps;\n\nexport default ProfitableValues;\n","import _ from 'lodash';\nimport React from 'react';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport { handleDisabledButtonInMarketPlace } from 'ui/Strategies/helper';\nimport { RUN_TYPES } from 'common/constants/index';\nimport { quotaVerificationDom } from 'ui/QuotaVerification/quotaDom';\nimport { paymentInitialize } from 'common/razorpay/paymentInitialize';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport { strategyPropTypes } from 'common/propTypes';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\n\nconst propTypes = { strategy: strategyPropTypes.isRequired };\n\nconst defaultProps = {};\n\nconst PaymentButton = ({ strategy }) => {\n const {\n id, purchase_amount: purchaseAmount, purchase_valid_month: purchaseMonth,\n live_instrument_groups: liveInstrumentGroups\n } = strategy;\n const isUserLoggedIn = _.get(window, 'isUserSignedIn', false);\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const status = _.get(strategyAccess, 'status', '');\n const paidTill = _.get(strategyAccess, 'paid_till', '');\n const isPaid = status === 'paid' && !(_.isEmpty(paidTill));\n\n const { isDisabled, message } = handleDisabledButtonInMarketPlace(strategy);\n const oneIndentation = ' ';\n\n const razorpayButton = () => {\n const args = { strategy_id: id };\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n let reDirectUrl = `/strategies/${id}`;\n if (isMinifiedPage) { reDirectUrl += '&minifiedpage=true'; }\n\n if (isUserLoggedIn) {\n if (isPaid) return paymentInitialize(args, () => { window.location.href = reDirectUrl; });\n // if it paid strategy.. just renew only\n\n return quotaVerificationDom(liveInstrumentGroups, { run_type: RUN_TYPES.live }, (argsObj) => {\n const isReload = _.get(argsObj, 'isReload', true);\n if (isReload) window.location.href = reDirectUrl;\n else paymentInitialize(args, () => { window.location.href = reDirectUrl; });\n }, strategy);\n }\n\n initiateUserAuth().then(() => {\n window.location.reload();\n }).catch(() => {\n reactToastify('Unauthorized, Please Login and continue', TOASTIFY_TYPES.ERROR);\n });\n\n return null;\n };\n\n const renderButton = (\n razorpayButton()}\n >\n {isPaid ? 'Extend' : 'Pay'}\n {oneIndentation}\n {purchaseAmount}\n {oneIndentation}\n \n /\n {oneIndentation}\n {purchaseMonth}\n {oneIndentation}\n month\n \n \n );\n\n return renderButton;\n};\n\nPaymentButton.propTypes = propTypes;\nPaymentButton.defaultProps = defaultProps;\n\nexport default PaymentButton;\n","export const SET_OUTPUT_SCHEMA = 'SET_OUTPUT_SCHEMA';\nexport const setOutputSchema = (outputSchema) => ({\n type: SET_OUTPUT_SCHEMA,\n outputSchema,\n});\n\nexport const SET_MAX_INSTRUMENTS_IN_GROUP = 'SET_MAX_INSTRUMENTS_IN_GROUP';\nexport const setMaxInstrumentsInGroup = (maxInstrumentsInGroup) => ({\n type: SET_MAX_INSTRUMENTS_IN_GROUP,\n maxInstrumentsInGroup,\n});\n\nexport const SET_INSTRUMENT_GROUPS = 'SET_INSTRUMENT_GROUPS';\nexport const setInstrumentGroups = (instrumentGroups) => ({\n type: SET_INSTRUMENT_GROUPS,\n instrumentGroups,\n});\n\nexport const SET_CHART_CONFIG = 'SET_CHART_CONFIG';\nexport const setChartConfig = (chartConfig) => ({\n type: SET_CHART_CONFIG,\n chartConfig\n});\n\nexport const SET_PIPE_CONFIGS = 'SET_PIPE_CONFIGS';\nexport const setPipeConfigs = (pipeConfigs) => ({\n type: SET_PIPE_CONFIGS,\n pipeConfigs,\n});\n\nexport const SET_REPEAT_ORDER = 'SET_REPEAT_ORDER';\nexport const setRepeatOrder = (repeatOrder) => ({\n type: SET_REPEAT_ORDER,\n repeatOrder,\n});\n\nexport const SET_ORDER_CONFIGS = 'SET_ORDER_CONFIGS';\nexport const setOrderConfigs = (orderConfigs) => ({\n type: SET_ORDER_CONFIGS,\n orderConfigs,\n});\n\nexport const SET_TRADE_TYPE = 'SET_TRADE_TYPE';\nexport const setTradeType = (tradingType) => ({\n type: SET_TRADE_TYPE,\n tradingType,\n});\n\nexport const SET_OPTIONS_EXPIRY_CYCLE = 'SET_OPTIONS_EXPIRY_CYCLE';\nexport const setOptionsExpiryCycle = (optionsExpiryCycle) => ({\n type: SET_OPTIONS_EXPIRY_CYCLE,\n optionsExpiryCycle,\n});\n\nexport const SET_TIME_BASED_SIGNAL = 'SET_TIME_BASED_SIGNAL';\nexport const setTimeBasedSignal = (timeBasedSignal) => ({\n type: SET_TIME_BASED_SIGNAL,\n timeBasedSignal,\n});\n\nexport const SET_EXPIRY_HANDLING = 'SET_EXPIRY_HANDLING';\nexport const setExpiryHandling = (expiryHandling) => ({\n type: SET_EXPIRY_HANDLING,\n expiryHandling,\n});\n\nexport const SET_QUANT_CONFIG = 'SET_QUANT_CONFIG';\nexport const setQuantConfig = (partialQuantConfig) => ({\n type: SET_QUANT_CONFIG,\n partialQuantConfig,\n});\n\nexport const SET_LIMIT_TRANSACTIONS = 'SET_LIMIT_TRANSACTIONS';\nexport const setLimitTransactions = (maxTransactionsPerDay) => ({\n type: SET_LIMIT_TRANSACTIONS,\n maxTransactionsPerDay,\n});\n\nexport const SET_ENTRY_ORDER_TYPE = 'SET_ENTRY_ORDER_TYPE';\nexport const setEntryOrderType = (entryOrderType) => ({\n type: SET_ENTRY_ORDER_TYPE,\n entryOrderType,\n});\n\nexport const SET_EXIT_ORDER_TYPE = 'SET_EXIT_ORDER_TYPE';\nexport const setExitOrderType = (exitOrderType) => ({\n type: SET_EXIT_ORDER_TYPE,\n exitOrderType,\n});\n\nexport const SET_PRODUCT_TYPE = 'SET_PRODUCT_TYPE';\nexport const setProductType = (product) => ({\n type: SET_PRODUCT_TYPE,\n product,\n});\n\nexport const SET_OPTION_STRIKE_CALCULATION_BASED_ON = 'SET_OPTION_STRIKE_CALCULATION_BASED_ON';\nexport const setOptionStrikeCalculationBasedOn = (optionStrikeCalculationBasedOn) => ({\n type: SET_OPTION_STRIKE_CALCULATION_BASED_ON,\n optionStrikeCalculationBasedOn,\n});\n\nexport const\n SET_GAP_BETWEEN_BUY_AND_SELL_ORDERS_IN_SECONDS = 'SET_GAP_BETWEEN_BUY_AND_SELL_ORDERS_IN_SECONDS';\nexport const setGapBetweenBuyAndSellOrders = (gapBetweenBuyAndSellOrdersInSeconds) => ({\n type: SET_GAP_BETWEEN_BUY_AND_SELL_ORDERS_IN_SECONDS,\n gapBetweenBuyAndSellOrdersInSeconds,\n});\n\nexport const\n STOP_AND_LIMIT_PRICE_DIFFERENCE_IN_PERCENTAGE = 'STOP_AND_LIMIT_PRICE_DIFFERENCE_IN_PERCENTAGE';\nexport const setStopAndLimitPriceDifference = (stopAndLimitPriceDifferenceInPercentage) => ({\n type: STOP_AND_LIMIT_PRICE_DIFFERENCE_IN_PERCENTAGE,\n stopAndLimitPriceDifferenceInPercentage,\n});\n\nexport const SET_COMBINED_PREMIUM_CONFIGS = 'SET_COMBINED_PREMIUM_CONFIGS';\nexport const setCombinedPremiumConfigs = (combinedPremiumConfigs) => ({\n type: SET_COMBINED_PREMIUM_CONFIGS,\n combinedPremiumConfigs,\n});\n\nexport const SET_CUSTOM_PROP_CONFIGS = 'SET_CUSTOM_PROP_CONFIGS';\nexport const setCustomPropConfigs = (customPropConfigs) => ({\n type: SET_CUSTOM_PROP_CONFIGS,\n customPropConfigs\n});\n\nexport const SET_ENTRY_ORDER_MODIFICATION = 'SET_ENTRY_ORDER_MODIFICATION';\nexport const setEntryOrderModification = (entryOrderModification) => ({\n type: SET_ENTRY_ORDER_MODIFICATION,\n entryOrderModification,\n});\n\nexport const SET_EXIT_ORDER_MODIFICATION = 'SET_EXIT_ORDER_MODIFICATION';\nexport const setExitOrderModification = (exitOrderModification) => ({\n type: SET_EXIT_ORDER_MODIFICATION,\n exitOrderModification,\n});\n\nexport const OMIT_KEY_VALUES = 'OMIT_KEYS';\nexport const removeKeyValues = (omitKeyValues) => ({\n type: OMIT_KEY_VALUES,\n omitKeyValues,\n});\n\nexport const SET_IS_PLACE_OPTIONS_ENTRY_BUY_ORDERS_FIRST = 'isPlaceOptionsEntryBuyOrdersFirst';\nexport const setIsPlaceOptionsEntryBuyOrdersFirst = (isPlaceOptionsEntryBuyOrdersFirst) => ({\n type: SET_IS_PLACE_OPTIONS_ENTRY_BUY_ORDERS_FIRST,\n isPlaceOptionsEntryBuyOrdersFirst,\n});\n\nexport const SET_SL_ORDER_PLACE_BASED_ON_PRICE = 'slOrderPlaceBasedOnPrice';\nexport const setSlOrderPlaceBasedOnPrice = (slOrderPlaceBasedOnPrice) => ({\n type: SET_SL_ORDER_PLACE_BASED_ON_PRICE,\n slOrderPlaceBasedOnPrice,\n});\n\nexport const SET_LIMIT_ORDER_BUFFER_PERCENTAGE = 'limitOrderBufferPercentage';\nexport const setLimitOrderBufferPercantage = (limitOrderBufferPercentage) => ({\n type: SET_LIMIT_ORDER_BUFFER_PERCENTAGE,\n limitOrderBufferPercentage\n});\n\nexport const SET_IS_PLACE_STOPLOSS_ORDER_TO_BROKER = 'isPlaceStoplossOrderToBroker';\nexport const setIsPlaceStoplossOrderToBroker = (isPlaceStoplossOrderToBroker) => ({\n type: SET_IS_PLACE_STOPLOSS_ORDER_TO_BROKER,\n isPlaceStoplossOrderToBroker,\n});\n\nexport const SET_IS_SQUARE_OFF_TRANSACTION_IF_ENTRY_FAILED = 'isSquareOffTransactionIfEntryFailed';\nexport const setIsSquareOffTransactionIfEntryFailed = (isSquareOffTransactionIfEntryFailed) => ({\n type: SET_IS_SQUARE_OFF_TRANSACTION_IF_ENTRY_FAILED,\n isSquareOffTransactionIfEntryFailed,\n});\n\nexport const SET_ADJUSTMENT_OPTIONS = 'adjustmentOptions';\nexport const setAdjustmentOptions = (adjustmentOptions) => ({\n type: SET_ADJUSTMENT_OPTIONS,\n adjustmentOptions,\n});\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { useFormContext } from 'react-hook-form';\nimport { connect } from 'react-redux';\nimport { setLimitTransactions } from 'modules/QuantBuilder/actions';\n\nconst propTypes = {\n maxTransactionsPerDay: PropTypes.number,\n dispatchSetLimitTransactions: PropTypes.func.isRequired\n};\nconst defaultProps = {\n maxTransactionsPerDay: 1\n};\n\nconst LimitTransactions = ({\n maxTransactionsPerDay, dispatchSetLimitTransactions\n}) => {\n const [limitTransactionName] = useState(_.uniqueId('limitTransactionName-'));\n const { errors, register } = useFormContext();\n\n const validatorConfig = {\n validate: (value) => {\n const typeConversionValue = Number(value);\n const isValidCondition = typeConversionValue >= 1 && typeConversionValue <= 10;\n if (!isValidCondition) return 'Must be between 1 to 10 ';\n\n return null;\n }\n };\n\n const validatorProps = { ref: register(validatorConfig) };\n\n return (\n
    \n
    \n \n
    \n
    \n {\n dispatchSetLimitTransactions(Number((event.target.value)));\n }}\n />\n \n
    \n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n maxTransactionsPerDay: _.get(state, 'quantConfig.maxTransactionsPerDay')\n});\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetLimitTransactions: (newMaxTransactionsPerDay) => (\n dispatch(setLimitTransactions(newMaxTransactionsPerDay))\n ),\n});\n\nLimitTransactions.propTypes = propTypes;\nLimitTransactions.defaultProps = defaultProps;\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LimitTransactions);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport { setTimeBasedSignal } from 'modules/QuantBuilder/actions';\nimport { timeBasedSignalPropTypes } from 'common/propTypes';\nimport TimeSelector from 'common/components/TimeSelector';\nimport LimitTransactions from 'modules/LimitTransactions';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { getTimeValidators } from 'common/utils/validators';\nimport moment from 'moment';\nimport { PRODUCT_TYPE } from 'modules/QuantBuilder/config/index';\nimport { ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n timeBasedSignal: timeBasedSignalPropTypes.isRequired,\n dispatchSetTimeBasedSignal: PropTypes.func.isRequired,\n product: PropTypes.string.isRequired,\n runType: PropTypes.string.isRequired,\n orderType: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst Intraday = (props) => {\n const {\n timeBasedSignal,\n timeBasedSignal: { entryTime, exitTime },\n dispatchSetTimeBasedSignal,\n product,\n runType,\n orderType\n } = props;\n const { mis } = PRODUCT_TYPE;\n const { currentUserBroker } = window;\n const isLive = runType === RUN_TYPES.live;\n const { paper: { value: paper } } = ORDER_TYPES;\n const isActualOrder = orderType !== paper && isLive;\n\n const { errors, control } = useFormContext();\n const [timePickerName] = useState(_.uniqueId('intradayTimePicker-'));\n const isShowInfo = moment(exitTime, 'HH:mm:ss').isSameOrAfter(moment('15:15:00', 'HH:mm:ss'))\n && product === mis && currentUserBroker && isActualOrder;\n\n const onTimeBasedSignalChange = (newConfig) => {\n dispatchSetTimeBasedSignal({\n ...timeBasedSignal,\n ...newConfig\n });\n };\n const startTimeStyle = classNames({\n invalid: !_.isEmpty(errors[`${timePickerName}-start-time`])\n });\n const endTimeStyle = classNames({\n invalid: !_.isEmpty(errors[`${timePickerName}-end-time`])\n });\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n\n (\n {\n onTimeBasedSignalChange({ entryTime: newTime });\n onChange(newTime);\n }}\n selectedTime={entryTime}\n />\n )}\n control={control}\n defaultValue={entryTime}\n name={`${timePickerName}-start-time`}\n rules={getTimeValidators()}\n />\n  - \n\n (\n {\n onTimeBasedSignalChange({ exitTime: newTime });\n onChange(newTime);\n }}\n selectedTime={exitTime}\n minTime={entryTime}\n />\n )}\n control={control}\n defaultValue={exitTime}\n name={`${timePickerName}-end-time`}\n rules={getTimeValidators({ minTime: entryTime })}\n />\n \n
    \n
    \n {isShowInfo && (\n
    \n
    \n Warning: \n Brokers doing auto square-off for MIS orders between 03:15 pm - 03:30 pm. So, it is\n recommended that configure your trades before 03:15 pm.\n
    \n
    \n )}\n \n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n timeBasedSignal: _.get(state, 'quantConfig.timeBasedSignal'),\n product: _.get(state, 'quantConfig.product'),\n runType: _.get(state, 'runType'),\n orderType: _.get(state, 'orderType')\n});\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetTimeBasedSignal: (newTimeBasedSignal) => dispatch(setTimeBasedSignal(newTimeBasedSignal))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Intraday);\nIntraday.propTypes = propTypes;\nIntraday.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport { setTimeBasedSignal, setExpiryHandling } from 'modules/QuantBuilder/actions';\nimport { expiryHandlingPropsTypes } from 'common/propTypes';\nimport {\n EXPIRY_TYPES, DAYS, getEmptyTimeBasedSignal, getDefaultExpiryHandling, OPTIONS_EXPIRY\n} from 'modules/QuantBuilder/config';\nimport TimeSelector from 'common/components/TimeSelector';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { getTimeValidators } from 'common/utils/validators';\n\nconst propTypes = {\n expiryHandling: expiryHandlingPropsTypes.isRequired,\n optionsExpiryCycle: PropTypes.string.isRequired,\n dispatchSetTimeBasedSignal: PropTypes.func.isRequired,\n dispatchSetExpiryHandling: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst Positional = (props) => {\n const {\n expiryHandling: { type, exitTime, exitDaysBefore },\n expiryHandling,\n dispatchSetTimeBasedSignal,\n dispatchSetExpiryHandling,\n optionsExpiryCycle\n } = props;\n const { auto: { key: autoExpiry }, rollover: { key: rollover } } = EXPIRY_TYPES;\n const { errors, control, clearErrors } = useFormContext();\n const [timePickerName] = useState(_.uniqueId('positionalTimePicker-'));\n const timePickerStyle = classNames({\n invalid: !_.isEmpty(errors[`${timePickerName}-start-time`])\n });\n\n const onExpiryTypeChange = (newExpiryType) => {\n clearErrors(timePickerName);\n dispatchSetTimeBasedSignal(getEmptyTimeBasedSignal());\n dispatchSetExpiryHandling({\n ...getDefaultExpiryHandling(),\n type: newExpiryType\n });\n };\n const onExpiryHandlingChange = (newConfig) => {\n dispatchSetExpiryHandling({\n ...expiryHandling,\n ...newConfig\n });\n };\n\n const renderExpiryTypes = _.map(EXPIRY_TYPES, ({ key: expiryType, diaplayName }) => {\n if (optionsExpiryCycle === OPTIONS_EXPIRY.weekly && expiryType === rollover) return null;\n\n const expiryTypeInput = (\n \n onExpiryTypeChange(event.target.value)}\n />\n \n
    \n );\n\n return (\n \n { expiryType === rollover && window.isDisabledRollover ? (\n \n {expiryTypeInput}\n \n )\n : expiryTypeInput}\n \n );\n });\n\n const renderDayBeforeExpiryOptions = _.map(DAYS[optionsExpiryCycle], (day) => (\n \n ));\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n {renderExpiryTypes}\n
    \n
    \n
    \n
    \n
    \n {type !== autoExpiry\n && (\n
    \n onExpiryHandlingChange({\n exitDaysBefore: parseInt(event.target.value, 10)\n })}\n >\n
    \n )}\n
    \n
    \n \n {(type === autoExpiry) ? 'On Expiry Day ' : ''}\n {(type === rollover) ? 'Rollover At ' : 'Force Exit At'}\n \n
    \n (\n {\n onExpiryHandlingChange({ exitTime: newExitTime });\n onChange(newExitTime);\n }}\n selectedTime={exitTime}\n />\n )}\n control={control}\n defaultValue={exitTime}\n name={timePickerName}\n rules={getTimeValidators()}\n />\n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n expiryHandling: _.get(state, 'quantConfig.expiryHandling'),\n optionsExpiryCycle: _.get(state, 'quantConfig.optionsExpiryCycle'),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetTimeBasedSignal: (newTimeBasedSignal) => dispatch(setTimeBasedSignal(newTimeBasedSignal)),\n dispatchSetExpiryHandling: (newExpiry) => dispatch(setExpiryHandling(newExpiry)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Positional);\n\nPositional.propTypes = propTypes;\nPositional.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useEffect, useRef } from 'react';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {\n setTradeType, setTimeBasedSignal, setExpiryHandling, setLimitTransactions\n} from 'modules/QuantBuilder/actions';\nimport {\n TRADE_TYPES,\n getEmptyTimeBasedSignal,\n getEmptyExpiryHandling,\n getDefaultExpiryHandling,\n getDefaultTimeBasedSignalForIntraday\n} from 'modules/QuantBuilder/config';\nimport Intraday from './Intraday';\nimport Positional from './Positional';\n\nconst propTypes = {\n dispatchSetTradeType: PropTypes.func.isRequired,\n dispatchSetTimeBasedSignal: PropTypes.func.isRequired,\n dispatchSetExpiryHandling: PropTypes.func.isRequired,\n tradingType: PropTypes.string.isRequired,\n dispatchSetLimitTransactions: PropTypes.func.isRequired\n};\n\nconst defaultProps = { };\n\nconst ExpiryHandler = (props) => {\n const {\n tradingType, dispatchSetTradeType, dispatchSetTimeBasedSignal, dispatchSetExpiryHandling,\n dispatchSetLimitTransactions\n } = props;\n const { positional, intraday } = TRADE_TYPES;\n const isInitialLoad = useRef(false);\n\n useEffect(() => {\n if (isInitialLoad.current) {\n if (tradingType === positional) dispatchSetLimitTransactions(10);\n else dispatchSetLimitTransactions(1);\n }\n\n isInitialLoad.current = true;\n }, [tradingType]);\n const onTradeTypeChange = (newTradeType) => {\n const defaultTimeBasedSignal = newTradeType === intraday\n ? getDefaultTimeBasedSignalForIntraday()\n : getEmptyTimeBasedSignal();\n\n const defaultExpiryHandling = newTradeType === positional\n ? getDefaultExpiryHandling()\n : getEmptyExpiryHandling();\n\n dispatchSetTradeType(newTradeType);\n dispatchSetTimeBasedSignal(defaultTimeBasedSignal);\n dispatchSetExpiryHandling(defaultExpiryHandling);\n };\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n \n {_.startCase(intraday)}\n \n\n \n {_.startCase(positional)}\n \n \n
    \n
    \n {tradingType === intraday ? : }\n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n tradingType: _.get(state, 'quantConfig.tradingType')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetTradeType: (newTradeType) => dispatch(setTradeType(newTradeType)),\n dispatchSetTimeBasedSignal: (newTimeBasedSignal) => dispatch(setTimeBasedSignal(newTimeBasedSignal)),\n dispatchSetExpiryHandling: (newExpiry) => dispatch(setExpiryHandling(newExpiry)),\n dispatchSetLimitTransactions: (newMaxTransactionsPerDay) => (\n dispatch(setLimitTransactions(newMaxTransactionsPerDay))\n ),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExpiryHandler);\n\nExpiryHandler.propTypes = propTypes;\nExpiryHandler.defaultProps = defaultProps;\n","import _ from 'lodash';\n// vendor imports\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n// project imports\nimport { setRepeatOrder } from 'modules/QuantBuilder/actions';\n\nconst propTypes = {\n repeatOrder: PropTypes.bool.isRequired,\n dispatchSetRepeatOrder: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst RepeatOrder = (props) => {\n const { repeatOrder, dispatchSetRepeatOrder } = props;\n\n return (\n
    \n dispatchSetRepeatOrder(!repeatOrder)}\n defaultChecked={repeatOrder}\n />\n \n
    \n );\n};\n\nconst mapStateToProps = (state) => ({\n repeatOrder: _.get(state, 'quantConfig.repeatOrder')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetRepeatOrder: (newRepeatOrder) => dispatch(setRepeatOrder(newRepeatOrder))\n});\n\nRepeatOrder.propTypes = propTypes;\nRepeatOrder.defaultProps = defaultProps;\nexport default connect(mapStateToProps, mapDispatchToProps)(RepeatOrder);\n","import _ from 'lodash';\nimport {\n TRANSACTION_MODES,\n getEmptyFutureConfig,\n getEmptyEquityConfig,\n onValidateStrikeBasedOn,\n STRIKE_KEYS\n} from 'modules/TransactionsBuilder/configs';\n\nconst isTradeTypeValidate = (tradeTypes, configType1, configType2) => {\n let isConfigType1Present = false;\n let isConfigType2Present = false;\n\n _.each(tradeTypes, (tradeType) => {\n if (tradeType === configType1) isConfigType1Present = true;\n if (tradeType === configType2) isConfigType2Present = true;\n });\n\n return isConfigType1Present && isConfigType2Present;\n};\n\nexport const checkIsFutureAndOption = (transactionBuilderConfigs) => {\n const tradeTypes = _.map(transactionBuilderConfigs, 'tradeType');\n const firstTradeType = _.first(tradeTypes);\n const isFutureAndOption = isTradeTypeValidate(tradeTypes, 'futureConfig', 'optionConfigs');\n const isFutureAndEquity = isTradeTypeValidate(tradeTypes, 'futureConfig', 'equityConfig');\n const isOptionAndEquity = isTradeTypeValidate(tradeTypes, 'optionConfigs', 'equityConfig');\n\n // based on these types.. we handle the optionsConfig [] and remaining single objects like. futureConfig: {}\n return {\n tradeType: firstTradeType,\n isFutureAndOption,\n isFutureAndEquity,\n isOptionAndEquity,\n isFutureDisable: isFutureAndOption || isFutureAndEquity,\n isEquityDisable: isOptionAndEquity || isFutureAndEquity\n };\n};\n\nconst getTransactionMode = (transactionBuilderConfigs) => {\n const {\n tradeType, isFutureAndOption, isFutureAndEquity, isOptionAndEquity\n } = checkIsFutureAndOption(transactionBuilderConfigs);\n\n if (isFutureAndOption && isFutureAndEquity && isOptionAndEquity) {\n return TRANSACTION_MODES.combinedAllConfigs;\n }\n\n if (isFutureAndOption) return TRANSACTION_MODES.futureAndOption;\n if (isFutureAndEquity) return TRANSACTION_MODES.futureAndEquity;\n if (isOptionAndEquity) return TRANSACTION_MODES.optionAndEquity;\n\n return TRANSACTION_MODES[tradeType];\n};\n\nconst getFutureConfig = (transactionBuilderConfig, futureConfig) => {\n const builderFutureConfig = _.find(transactionBuilderConfig, ['tradeType', 'futureConfig']);\n\n if (!builderFutureConfig) return getEmptyFutureConfig();\n\n const {\n quantity, transactionType, stopGain, stopLoss, sortId, stopGainPrice, stopLossPrice,\n trailingPercentage, reExecuteCount, reEntryCount,\n adjustPercentage, waitUntilPremiumToDecreaseInPercentage, waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n } = builderFutureConfig;\n\n return ({\n ...futureConfig,\n quantityExpression: quantity.toString(),\n entryType: transactionType,\n stopGain,\n stopLoss,\n sortId,\n stopGainPrice,\n stopLossPrice,\n reExecuteCount,\n reEntryCount,\n trailingStopLoss: { trailingPercentage, adjustPercentage },\n waitUntilPremiumToDecreaseInPercentage,\n waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n });\n};\n\nconst getEquityConfig = (transactionBuilderConfig, equityConfig) => {\n const builderEquityConfig = _.find(transactionBuilderConfig, ['tradeType', 'equityConfig']);\n\n if (!builderEquityConfig) return getEmptyEquityConfig();\n\n const {\n quantity, transactionType, stopGain, stopLoss, sortId, stopGainPrice, stopLossPrice,\n trailingPercentage, adjustPercentage, amount,\n reExecuteCount, reEntryCount,\n waitUntilPremiumToDecreaseInPercentage, waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n } = builderEquityConfig;\n\n return ({\n ...equityConfig,\n quantity: Number(quantity),\n entryType: transactionType,\n stopGain,\n amount: amount ? parseFloat(amount) : 0,\n stopLoss,\n sortId,\n stopGainPrice,\n stopLossPrice,\n reExecuteCount,\n reEntryCount,\n trailingStopLoss: { trailingPercentage, adjustPercentage },\n waitUntilPremiumToDecreaseInPercentage,\n waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n });\n};\n\nconst getOptionConfigs = (transactionBuilderConfig, strikeBasedOn) => {\n const builderOptionConfigs = _.filter(transactionBuilderConfig, ['tradeType', 'optionConfigs']);\n const basedOn = onValidateStrikeBasedOn(strikeBasedOn);\n\n if (_.isEmpty(builderOptionConfigs)) return [];\n\n return _.map(builderOptionConfigs, (builderOptionConfig) => {\n const {\n strike,\n optionType,\n quantity,\n transactionType,\n stopGain,\n stopLoss,\n sortId,\n valuePath,\n stopGainPrice,\n stopLossPrice,\n trailingPercentage,\n adjustPercentage,\n reExecuteCount,\n reEntryCount,\n waitUntilPremiumToDecreaseInPercentage, waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n } = builderOptionConfig;\n const valuePathConfig = strikeBasedOn === STRIKE_KEYS.indicatorValue ? { valuePath } : {};\n\n return ({\n ...valuePathConfig,\n [basedOn]: strike,\n optionType,\n entryType: transactionType,\n quantity: parseInt(quantity, 10),\n stopGain,\n stopLoss,\n sortId,\n stopGainPrice,\n stopLossPrice,\n reExecuteCount,\n reEntryCount,\n trailingStopLoss: { trailingPercentage, adjustPercentage },\n waitUntilPremiumToDecreaseInPercentage,\n waitUntilPremiumToIncreaseInPercentage,\n waitAndTradeType\n });\n });\n};\n\nexport const convertToTransactionConfig = (transactionBuilderConfigs, transactionConfig, strikeBasedOn) => {\n const { mode, futureConfig, equityConfig } = transactionConfig;\n const newMode = { ...mode, transaction: getTransactionMode(transactionBuilderConfigs) };\n\n return ({\n ...transactionConfig,\n mode: newMode,\n futureConfig: getFutureConfig(transactionBuilderConfigs, futureConfig),\n optionConfigs: getOptionConfigs(transactionBuilderConfigs, strikeBasedOn),\n equityConfig: getEquityConfig(transactionBuilderConfigs, equityConfig)\n });\n};\n","import _ from 'lodash';\nimport {\n getEmptyTransactionBuilderConfig, onValidateStrikeBasedOn, ADJUST_PERCENTAGE,\n TRAILING_PERCENTAGE, TRANSACTION_MODES, waitAndTradeTypesAndNode\n} from 'modules/TransactionsBuilder/configs';\n\nconst getTrailingStopLossConfig = (config) => {\n const trailingStopLoss = _.get(config, 'trailingStopLoss', {});\n const trailingPercentage = _.get(trailingStopLoss, TRAILING_PERCENTAGE, undefined);\n const adjustPercentage = _.get(trailingStopLoss, ADJUST_PERCENTAGE, undefined);\n\n return { trailingPercentage, adjustPercentage };\n};\n\nconst getReExecuteConfig = (config) => { return { reExecuteCount: _.get(config, 'reExecuteCount', 0) }; };\nconst getReEntryConfig = (config) => { return { reEntryCount: _.get(config, 'reEntryCount', 0) }; };\n\nconst getWaitAndTradeConfig = (config) => {\n const waitUntilPremiumToDecreaseInPercentage = _.get(config, 'waitUntilPremiumToDecreaseInPercentage', 0);\n const waitUntilPremiumToIncreaseInPercentage = _.get(config, 'waitUntilPremiumToIncreaseInPercentage', 0);\n const waitAndTradeType = _.get(\n config, 'waitAndTradeType', waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE\n );\n\n return { waitUntilPremiumToDecreaseInPercentage, waitUntilPremiumToIncreaseInPercentage, waitAndTradeType };\n};\n\nconst getTransactionBuilderFutureConfigs = (futureConfig) => {\n const {\n quantityExpression, entryType, stopGain, stopLoss, sortId, stopGainPrice, stopLossPrice\n } = futureConfig;\n\n return ([{\n ...getEmptyTransactionBuilderConfig(),\n ...getTrailingStopLossConfig(futureConfig),\n ...getReExecuteConfig(futureConfig),\n ...getReEntryConfig(futureConfig),\n ...getWaitAndTradeConfig(futureConfig),\n tradeType: 'futureConfig',\n quantity: quantityExpression,\n transactionType: entryType,\n stopGain,\n stopLoss,\n sortId,\n stopGainPrice,\n stopLossPrice\n }]);\n};\n\nconst getTransactionBuilderEquityConfigs = (equityConfig) => {\n const {\n quantity, entryType, stopGain, stopLoss, sortId, stopGainPrice, stopLossPrice, amount\n } = equityConfig;\n\n return ([{\n ...getEmptyTransactionBuilderConfig(),\n ...getTrailingStopLossConfig(equityConfig),\n ...getReExecuteConfig(equityConfig),\n ...getReEntryConfig(equityConfig),\n ...getWaitAndTradeConfig(equityConfig),\n tradeType: 'equityConfig',\n quantity: quantity ? Number(quantity) : 0,\n transactionType: entryType,\n amount: amount || 0,\n stopGain,\n stopLoss,\n sortId,\n stopGainPrice,\n stopLossPrice\n }]);\n};\n\nconst getTransactionBuilderOptionConfigs = (optionConfigs, strikeBasedOn) => (\n _.map(optionConfigs, (optionConfig) => {\n const {\n entryType,\n quantity,\n valuePath = '',\n stopGainPrice,\n stopLossPrice,\n optionType,\n stopGain,\n stopLoss,\n sortId\n } = optionConfig;\n const basedOn = onValidateStrikeBasedOn(strikeBasedOn);\n\n return {\n ...getEmptyTransactionBuilderConfig(),\n ...getTrailingStopLossConfig(optionConfig),\n ...getReExecuteConfig(optionConfig),\n ...getReEntryConfig(optionConfig),\n ...getWaitAndTradeConfig(optionConfig),\n tradeType: 'optionConfigs',\n strike: _.get(optionConfig, [basedOn], undefined),\n transactionType: entryType,\n quantity: quantity ? Number(quantity) : 0,\n valuePath,\n stopGainPrice,\n stopLossPrice,\n optionType,\n stopGain,\n stopLoss,\n sortId\n };\n })\n);\n\nexport const transactionConfigToTransactionBuilderConfig = (transactionConfig, strikeBasedOn) => {\n const {\n futureConfig, optionConfigs, equityConfig, mode: { transaction },\n } = transactionConfig;\n\n // 1. this process is for current component state array\n // 2. why maintain mode ? in quant(transactionConfig) it has optionConfigs: [{...}, {....}],\n // futureConfig: {...} and equityConfig: {...} it all has defaultConfig.\n // 3. I don't know which i want to take.. so based on mode: { transaction: '' }.. i will take the\n // hash from quant transaction config. The mode is based on TRANSACTION_MODES and checkIsFutureAndOption fn\n // 4. Below conditions is completely based on based mode.\n\n // TODO in future may be... remove the mode combinations and give flag for each tradeTypes\n // eg.. isFuture: true, isOption: true, isEquity: true\n // if we approached this process.. the mode is stored in quant Config.. write migration for each runs to\n // change the mode or something new..\n\n const {\n equityConfig: tranactionEquityConfig, futureAndEquity,\n futureAndOption, futureConfig: transactionFutureConfig, optionAndEquity,\n optionConfigs: transactionoptionConfigs, combinedAllConfigs\n } = TRANSACTION_MODES;\n\n const isIncludesFuture = _.includes(\n [transactionFutureConfig, futureAndOption, futureAndEquity, combinedAllConfigs], transaction\n );\n const isIncludesOption = _.includes(\n [transactionoptionConfigs, futureAndOption, optionAndEquity, combinedAllConfigs], transaction\n );\n\n const isIncludesEquity = _.includes(\n [tranactionEquityConfig, futureAndEquity, optionAndEquity, combinedAllConfigs], transaction\n );\n\n return _.chain([\n isIncludesFuture ? getTransactionBuilderFutureConfigs(futureConfig) : null,\n isIncludesOption ? getTransactionBuilderOptionConfigs(optionConfigs, strikeBasedOn) : null,\n isIncludesEquity ? getTransactionBuilderEquityConfigs(equityConfig) : null,\n ])\n .flattenDeep()\n .compact()\n .sortBy((formattedTransaction) => { return _.get(formattedTransaction, 'sortId'); })\n .value();\n};\n","import _ from 'lodash';\nexport { convertToTransactionConfig } from './builderConfigToTransactionConfig';\nexport { transactionConfigToTransactionBuilderConfig } from './transactionConfigToBuilderConfig';\nexport { checkIsFutureAndOption } from './builderConfigToTransactionConfig';\n\nexport const getDuplicateConfigIds = (transactionBuilderConfigs) => (\n _.chain(transactionBuilderConfigs)\n .reduce((result, { optionType, strike, sortId }) => {\n if (!optionType) return result;\n const dupconfigKey = `${optionType}${strike}`;\n\n if (!result[dupconfigKey]) {\n \n result[dupconfigKey] = [sortId];\n\n return result;\n }\n\n result[dupconfigKey].push(sortId);\n return result;\n }, {})\n .filter((duplicates) => duplicates.length > 1)\n .flattenDeep()\n .value()\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n onAddOptionClick: PropTypes.func.isRequired,\n isDisabled: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst AddOptionBtn = ({ onAddOptionClick, isDisabled }) => (\n \n Add Legs\n \n);\n\nAddOptionBtn.propTypes = propTypes;\nAddOptionBtn.defaultProps = defaultProps;\n\nexport default AddOptionBtn;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { instrumentGroupsPropTypes } from 'common/propTypes';\nimport { checkInstrumentPossibleForEquity } from 'common/utils/InstrumentUtils';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = {\n tradeType: PropTypes.string.isRequired,\n onTradeTypeChange: PropTypes.func.isRequired,\n isFutureDisable: PropTypes.bool.isRequired,\n isEquityDisable: PropTypes.bool.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n onRemoveOption: PropTypes.func.isRequired,\n isAdjustment: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst TradeTypeSelector = ({\n tradeType, onTradeTypeChange, isFutureDisable, isEquityDisable, instrumentGroups,\n segments, onRemoveOption, isAdjustment\n}) => {\n const isEquityEnable = checkInstrumentPossibleForEquity(instrumentGroups);\n const shouldRemoveEquityLegBasedOnIndexInstrument = (tradeType === 'equityConfig' && !isEquityEnable);\n // TODO .. Equity hided for particular instruments.. so while integrating equity we have to show\n // hovermessage for disbaled equity.. eg: NFO:BANKNIFTY is not possible for equity\n\n useEffect(() => {\n if (shouldRemoveEquityLegBasedOnIndexInstrument) {\n if (!isAdjustment) {\n reactToastify('Index Instruments are not possible for equity leg, it is removed please check',\n TOASTIFY_TYPES.ERROR);\n }\n onRemoveOption();\n }\n }, [shouldRemoveEquityLegBasedOnIndexInstrument]);\n\n const renderOption = () => {\n const isHide = !_.isEmpty(segments) && !_.includes(segments, SEGMENT_CONFIG.option);\n if (isHide) return null;\n\n return (\n \n Option\n \n );\n };\n\n const renderFuture = () => {\n const isHide = !_.isEmpty(segments) && !_.includes(segments, SEGMENT_CONFIG.future);\n if (isHide) return null;\n\n return (\n \n Future\n \n );\n };\n\n const renderEquity = () => {\n const isHide = !_.isEmpty(segments) && !_.includes(segments, SEGMENT_CONFIG.equity);\n if (isHide) return null;\n\n if (isEquityEnable) {\n return (\n \n Equity\n \n );\n }\n\n return null;\n };\n\n return (\n onTradeTypeChange({ tradeType: newTradeType })}\n value={tradeType}\n >\n {renderOption()}\n {renderFuture()}\n {renderEquity()}\n \n );\n};\n\nTradeTypeSelector.propTypes = propTypes;\nTradeTypeSelector.defaultProps = defaultProps;\n\nexport default TradeTypeSelector;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { OPTION_TYPES } from 'modules/TransactionsBuilder/configs';\nimport { useFormContext } from 'react-hook-form';\n\nconst propTypes = {\n optionType: PropTypes.string.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired,\n isHide: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst CallOrPutSelector = ({\n optionType: propsOptionType, onOptionTypeChange, isHide\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionTypeBtnName-'));\n const optionTypeInputId = _.uniqueId('optionType');\n const { errors, register, clearErrors } = useFormContext();\n const shouldDisable = isHide;\n const validatorConfig = {\n validate: (value) => (!shouldDisable && !value ? 'value required' : null)\n };\n const validatorProps = isHide ? {} : { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn',\n { disabled: shouldDisable, }\n );\n\n const radioBtnStyle = classNames(\n 'form-check-input',\n 'track',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n useEffect(() => {\n if (shouldDisable) clearErrors(optionTypeBtnName);\n }, [isHide]);\n\n const renderRadioBtn = (optionType) => (\n
    \n onOptionTypeChange({ optionType })}\n />\n \n
    \n );\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n if (shouldDisable) {\n return null;\n }\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nCallOrPutSelector.propTypes = propTypes;\nCallOrPutSelector.defaultProps = defaultProps;\n\nexport default CallOrPutSelector;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport classNames from 'classnames';\n\nconst propTypes = {\n quantity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n onQuantityChange: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired,\n};\nconst defaultProps = {};\n\nconst Quantity = ({ quantity, onQuantityChange, validator }) => {\n const { errors, control } = useFormContext();\n const [quantityName] = useState(_.uniqueId('optionsQuantity-'));\n const inputBoxStyle = classNames('form-control form-control-sm', { 'is-invalid': !!errors[quantityName] });\n\n return (\n
    \n (\n {\n onQuantityChange({ quantity: event.target.value });\n onChange(event.target.value);\n }}\n />\n )}\n rules={validator}\n name={quantityName}\n defaultValue={quantity}\n control={control}\n />\n \n
    \n );\n};\n\nQuantity.propTypes = propTypes;\nQuantity.defaultProps = defaultProps;\n\nexport default Quantity;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { TRANSACTION_TYPES } from 'modules/TransactionsBuilder/configs';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\n\nconst propTypes = {\n transactionType: PropTypes.string.isRequired,\n onTransactionTypeChange: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired,\n};\nconst defaultProps = {};\n\nconst BuyOrSellSelector = ({\n transactionType: propsTransactionType, onTransactionTypeChange, validator\n}) => {\n const [transactionTypeInputId] = useState(_.uniqueId('transactionType-'));\n const { errors, register } = useFormContext();\n const radioBtnStyle = classNames('form-check-input', { 'is-invalid': !!errors[transactionTypeInputId] });\n const transactionTypeStyle = classNames(\n 'transaction-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn',\n );\n\n const renderRadioBtn = (transactionType) => {\n const transactionTypeClassName = classNames('form-check form-check-sm', {\n buy: transactionType === 'buy',\n sell: transactionType === 'sell'\n });\n\n return (\n
    \n onTransactionTypeChange({ transactionType })}\n />\n \n
    \n );\n };\n\n return (\n
    \n {_.map(TRANSACTION_TYPES, renderRadioBtn)}\n
    \n );\n};\n\nBuyOrSellSelector.propTypes = propTypes;\nBuyOrSellSelector.defaultProps = defaultProps;\n\nexport default BuyOrSellSelector;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { STOPS_VALUE_TYPES, stopsConfig } from 'modules/TransactionsBuilder/configs';\nimport StopsValueTypeToggleBtn from 'common/components/StopsValueTypeToggleBtn';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n stopsType: PropTypes.string.isRequired,\n stopsValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onStopsValueChange: PropTypes.func.isRequired,\n valueType: PropTypes.string.isRequired\n};\nconst defaultProps = { stopsValue: undefined };\n\nconst StopsInput = ({\n stopsType, stopsValue, valueType: propsValueType, onStopsValueChange\n}) => {\n const { PERCENT, PRICE } = STOPS_VALUE_TYPES;\n const [valueType, setValueType] = useState(propsValueType);\n const emptyStopsValue = _.get(stopsConfig, [stopsType, valueType, 'config'], {});\n const [value, setValue] = useState(stopsValue);\n\n useEffect(() => { setValue(stopsValue); }, [stopsValue]);\n\n const onValueTypeChange = () => {\n setValueType(valueType === PRICE ? PERCENT : PRICE);\n onStopsValueChange({ ...emptyStopsValue, });\n };\n\n const onChange = (event) => {\n const newStopsType = valueType === PERCENT ? stopsType : `${stopsType}Price`;\n onStopsValueChange({\n ...emptyStopsValue, [newStopsType]: onRegexOnlyNumberAndFloat(event.target.value, false)\n });\n };\n\n return (\n
    \n \n\n onChange(event, false)}\n value={value === undefined ? '' : value.toString()}\n onChange={(event) => { setValue(onRegexOnlyNumberAndFloat(event.target.value, true)); }}\n />\n
    \n );\n};\n\nStopsInput.propTypes = propTypes;\nStopsInput.defaultProps = defaultProps;\n\nexport default StopsInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n onRemoveOption: PropTypes.func.isRequired,\n isDisable: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst RemoveBtn = ({ onRemoveOption, isDisable }) => {\n return (\n \n delete_outline\n \n );\n};\n\nRemoveBtn.propTypes = propTypes;\nRemoveBtn.defaultProps = defaultProps;\n\nexport default RemoveBtn;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { useFormContext, Controller } from 'react-hook-form';\n\nimport { getValuePathOptions } from 'modules/TransactionsBuilder/configs';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport { QUANT_SCHEMA_CATEGORIES } from 'common/constants/index';\n\nconst propTypes = {\n valuePath: PropTypes.string,\n onValuePathChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n isHide: PropTypes.bool.isRequired,\n};\nconst defaultProps = {\n valuePath: ''\n};\n\nconst ValuePathSelector = ({\n valuePath, onValuePathChange, outputSchema, isHide\n}) => {\n const [valuePathName] = useState(_.uniqueId('valuepath-'));\n const { control } = useFormContext();\n\n const validatorConfig = {\n validate: (value) => (!isHide && !value ? 'value required' : null)\n };\n\n const customValuePaths = _.compact(_.map(outputSchema, (schema) => {\n const { category, name, label } = schema;\n if (category === QUANT_SCHEMA_CATEGORIES.CUSTOM_PROP) {\n return {\n value: name,\n displayName: label\n };\n }\n\n return null;\n }));\n\n const valuePathOptions = _.map([...getValuePathOptions(outputSchema), ...customValuePaths],\n ({ value, displayName }) => (\n \n ));\n\n const renderValuePathInput = () => (\n
    \n (\n {\n onValuePathChange({ valuePath: event.target.value });\n onChange(event.target.value);\n }}\n >\n
    \n );\n\n if (isHide) {\n return null;\n }\n\n return renderValuePathInput();\n};\n\nValuePathSelector.propTypes = propTypes;\nValuePathSelector.defaultProps = defaultProps;\n\nexport default ValuePathSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n isStopLoss: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {};\n\nconst StopValueHint = ({ isStopLoss }) => {\n const oneIndentation = ' ';\n const arrow = '=>';\n\n if (isStopLoss) {\n return (\n
    \n Percentage:\n
    \n
    \n Enter Action : Buy\n
    \n Enter Price : Rs. 500\n
    \n
    \n
    \n SL Percentage : 5% SL Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs. 475\n
    \n SL Percentage : 10% SL Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs. 450\n
    \n
    \n\n Rupees:\n
    \n
    \n Enter Action : Buy\n
    \n Enter Price : Rs. 500\n
    \n Lot Size : 25 Quantity\n
    \n\n SL Amount : 1000 SL Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs.460\n {oneIndentation}\n
    \n (Loss Per Quantity * Quantity\n {oneIndentation}\n {arrow}\n {oneIndentation}\n 40 * 25 = 1000)\n\n
    \n\n SL Amount : 2000 SL Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs.420\n {oneIndentation}\n
    \n (Loss Per Quantity * Quantity\n {oneIndentation}\n {arrow}\n {oneIndentation}\n 80 * 25 = 2000)\n\n
    \n
    \n
    \n );\n }\n\n return (\n
    \n Percentage:\n
    \n
    \n Enter Action : Buy\n
    \n Enter Price : Rs. 500\n
    \n
    \n TP Percentage : 5% TP Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs. 525\n
    \n TP Percentage : 10% TP Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs. 550\n
    \n
    \n\n Rupees:\n
    \n
    \n Enter Action : Buy\n
    \n Enter Price : Rs. 500\n
    \n Lot Size : 25 Quantity\n
    \n\n TP Amount : 1000 TP Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs.540\n\n
    \n (Profit Per Quantity * Quantity\n {oneIndentation}\n {arrow}\n {oneIndentation}\n 40 * 25 = 1000)\n
    \n\n TP Amount : 2000 TP Target\n {oneIndentation}\n {arrow}\n {oneIndentation}\n Rs.580\n\n
    \n (Profit Per Quantity * Quantity\n {oneIndentation}\n {arrow}\n {oneIndentation}\n 80 * 25 = 2000)\n
    \n
    \n
    \n );\n};\n\nStopValueHint.propTypes = propTypes;\nStopValueHint.defaultProps = defaultProps;\n\nexport default StopValueHint;\n","import _ from 'lodash';\nimport React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n quantity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n amount: PropTypes.number,\n onUpdateConfig: PropTypes.func.isRequired\n};\n\nconst defaultProps = { quantity: 0, amount: 0 };\n\nconst EquityQuantityOrAmount = ({\n quantity: propsQuantity, amount: propsAmount, onUpdateConfig\n}) => {\n const validator = { required: { value: true, message: 'value should be included' } };\n\n const [config, setConfig] = useState({ quantity: propsQuantity, amount: propsAmount });\n const { quantity, amount } = config;\n const [activeType, setActiveType] = useState(quantity ? 'no' : 'amount');\n const isQuantity = activeType === 'no';\n const [inputId] = useState(_.uniqueId('equityQuantityOrAmount-'));\n const { errors, register } = useFormContext();\n\n const inputBoxStyle = classNames('form-control form-control-sm', { 'is-invalid': !!errors[inputId] });\n\n const inputValue = isQuantity ? quantity : amount;\n const isInitialLoad = useRef(false);\n\n const onAllowOnlyNumber = (value) => {\n if (!value) return 0;\n\n return onRegexOnlyNumberAndFloat(value);\n };\n\n const onHandleChange = (value) => {\n setConfig({\n quantity: isQuantity ? onAllowOnlyNumber(value) : 0,\n amount: isQuantity ? 0 : onAllowOnlyNumber(value)\n });\n };\n\n useEffect(() => {\n if (isInitialLoad.current) {\n setConfig({ quantity: 0, amount: 0 });\n } else { isInitialLoad.current = true; }\n }, [activeType]);\n\n const renderToggleBtn = () => {\n return (\n { setActiveType(value); }}\n >\n\n \n Qty\n \n\n \n \n \n \n );\n };\n\n return (\n
    \n {renderToggleBtn()}\n onUpdateConfig(config)}\n value={inputValue ? inputValue.toString() : ''}\n onChange={(event) => { onHandleChange(event.target.value); }}\n />\n
    \n );\n};\n\nEquityQuantityOrAmount.propTypes = propTypes;\nEquityQuantityOrAmount.defaultProps = defaultProps;\n\nexport default EquityQuantityOrAmount;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport ValueTypeToggleBtn from 'common/components/StopsValueTypeToggleBtn';\nimport { STOPS_VALUE_TYPES } from 'modules/QuantBuilder/config';\n\nconst propTypes = {\n trailingInput: PropTypes.string.isRequired,\n trailingValue: PropTypes.number,\n onTrailingValueChange: PropTypes.func.isRequired,\n};\nconst defaultProps = { trailingValue: undefined };\n\nconst TrailingStopLossInputs = ({\n trailingInput, trailingValue, onTrailingValueChange,\n}) => {\n const { PERCENT } = STOPS_VALUE_TYPES;\n const [trailingBtnName] = useState(_.uniqueId('trailingBtnName-'));\n const [value, setValue] = useState(trailingValue);\n\n useEffect(() => { setValue(trailingValue); }, [trailingValue]);\n\n const onChange = (event) => {\n const targetValue = Number(event.target.value) !== 0 ? event.target.value : undefined;\n\n onTrailingValueChange({ [trailingInput]: onRegexOnlyNumberAndFloat(targetValue, false) });\n };\n\n return (\n
    \n { }} isShowPrice={false} />\n onChange(event, false)}\n value={value === undefined ? '' : value.toString()}\n onChange={(event) => { setValue(onRegexOnlyNumberAndFloat(event.target.value, true)); }}\n />\n
    \n );\n};\n\nTrailingStopLossInputs.propTypes = propTypes;\nTrailingStopLossInputs.defaultProps = defaultProps;\n\nexport default TrailingStopLossInputs;\n","import _ from 'lodash';\nimport Modal from 'common/components/ModalComponent';\nimport { ADJUST_PERCENTAGE, TRAILING_PERCENTAGE } from 'modules/TransactionsBuilder/configs';\nimport React, { useState, useEffect, useRef } from 'react';\nimport { useForm } from 'react-hook-form';\nimport PropTypes from 'prop-types';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ReactHtmlParser from 'react-html-parser';\nimport { transactionBuilderConfigPropTypes } from 'common/propTypes';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\nimport { useSelector } from 'react-redux';\nimport TrailingStopLossInputs from './TrailingStopLossInputs';\n\nconst propTypes = {\n transactionBuilderConfig: transactionBuilderConfigPropTypes.isRequired,\n onTransactionBuilderConfigChange: PropTypes.func.isRequired,\n orderConfigIndex: PropTypes.number.isRequired\n};\n\nconst defaultProps = {};\n\nconst TrailingStopLoss = ({\n onTransactionBuilderConfigChange, transactionBuilderConfig, orderConfigIndex\n}) => {\n const globalReduxState = useSelector((state) => state);\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs', []);\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex);\n const advancedFeatures = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const { isTrailingStopLoss } = advancedFeatures;\n\n const {\n adjustPercentage, trailingPercentage, stopLoss, tradeType\n } = transactionBuilderConfig;\n const isOption = tradeType === 'optionConfigs';\n const isStopLossValuePresent = !!stopLoss;\n\n const methods = useForm();\n const isInitialLoad = useRef(false);\n\n const oneIndentation = ' ';\n const [isShowTrailingStopLossModal, setIsShowTrailingStopLossModal] = useState(false);\n const [isShowHoverMessage, setIsShowHoverMessage] = useState(false);\n const [trailingStopLossConfig, setTrailingStopLossConfig] = useState({\n [ADJUST_PERCENTAGE]: adjustPercentage,\n [TRAILING_PERCENTAGE]: trailingPercentage\n });\n\n const [errors, setErrors] = useState([]);\n\n useEffect(() => {\n setTrailingStopLossConfig({\n [ADJUST_PERCENTAGE]: adjustPercentage,\n [TRAILING_PERCENTAGE]: trailingPercentage\n });\n }, [trailingPercentage, adjustPercentage]);\n\n useEffect(() => {\n const isResetTrailingStopLoss = isInitialLoad.current\n && !isStopLossValuePresent && adjustPercentage && adjustPercentage;\n if (isResetTrailingStopLoss) {\n onTransactionBuilderConfigChange({\n [TRAILING_PERCENTAGE]: undefined, [ADJUST_PERCENTAGE]: undefined, reExecuteCount: 0, reEntryCount: 0\n });\n }\n isInitialLoad.current = true;\n }, [isStopLossValuePresent]);\n\n const onValidate = () => {\n const errorConfig = [];\n\n if (trailingStopLossConfig[ADJUST_PERCENTAGE] === undefined\n && trailingStopLossConfig[TRAILING_PERCENTAGE] === undefined) {\n return errorConfig;\n }\n\n if (trailingStopLossConfig[TRAILING_PERCENTAGE] !== undefined\n && trailingStopLossConfig[TRAILING_PERCENTAGE] < 5 && isOption) {\n errorConfig.push('* For Option, the X percentage is Minimum 5');\n }\n\n if ((trailingStopLossConfig[TRAILING_PERCENTAGE] !== undefined\n && trailingStopLossConfig[ADJUST_PERCENTAGE] === undefined)\n || (trailingStopLossConfig[TRAILING_PERCENTAGE] === undefined\n && trailingStopLossConfig[ADJUST_PERCENTAGE] !== undefined)) {\n errorConfig.push('* Both Value Should be Required');\n }\n\n if ((trailingStopLossConfig[TRAILING_PERCENTAGE] && trailingStopLossConfig[ADJUST_PERCENTAGE])\n && (trailingStopLossConfig[TRAILING_PERCENTAGE] < trailingStopLossConfig[ADJUST_PERCENTAGE])) {\n errorConfig.push('* X should be Greater than or Equal to Y');\n }\n\n return errorConfig;\n };\n\n const onSubmit = () => {\n const errorConfig = onValidate();\n if (_.isEmpty(errorConfig)) {\n onTransactionBuilderConfigChange({\n [ADJUST_PERCENTAGE]: trailingStopLossConfig[ADJUST_PERCENTAGE],\n [TRAILING_PERCENTAGE]: trailingStopLossConfig[TRAILING_PERCENTAGE]\n });\n setIsShowTrailingStopLossModal(false);\n setErrors([]);\n } else {\n setErrors(errorConfig);\n }\n };\n\n const renderTrailingStopLossValues = () => {\n return (\n
    { setIsShowTrailingStopLossModal(true); }}>\n
    \n X : \n {trailingPercentage}\n
    \n
    \n Y : \n {adjustPercentage}\n
    \n edit\n
    \n );\n };\n\n useEffect(() => {\n if (isShowHoverMessage) { setTimeout(() => { setIsShowHoverMessage(false); }, 5000); }\n }, [isShowHoverMessage]);\n\n const renderAddButton = () => {\n const addButton = (\n {\n if (!isStopLossValuePresent) setIsShowHoverMessage(true);\n else setIsShowTrailingStopLossModal(true);\n }}\n type=\"button\"\n >\n add_circle\n {oneIndentation}\n Add\n \n );\n\n if (isStopLossValuePresent || !isShowHoverMessage) return addButton;\n\n return (\n Stop Loss Percentage
    is Required For Trailing Stop Loss')}\n isOpen={isShowHoverMessage}\n >\n {addButton}\n \n );\n };\n\n const renderTrailingStopLossView = () => {\n return (\n
    \n {(trailingPercentage && adjustPercentage)\n ? renderTrailingStopLossValues() : renderAddButton()}\n
    \n );\n };\n\n if (!isTrailingStopLoss) return null;\n\n return (\n \n {renderTrailingStopLossView()}\n onSubmit())}\n shouldShow={isShowTrailingStopLossModal}\n onClose={() => setIsShowTrailingStopLossModal(false)}\n title=\"Trailing Stop Loss\"\n size=\"md\"\n okBtnTitle=\"Submit\"\n >\n
    \n
    \n If Instument Moves\n {oneIndentation}\n X\n {\n setTrailingStopLossConfig({ ...trailingStopLossConfig, ...partiallyUpdatedConfig });\n }}\n isOption={isOption}\n />\n Then Move Stoploss By\n {oneIndentation}\n Y\n {\n setTrailingStopLossConfig({ ...trailingStopLossConfig, ...partiallyUpdatedConfig });\n }}\n isOption={isOption}\n />\n
    \n\n

    \n Every time instrument moves X % in the profit\n direction then move stop loss Y % in same direction.\n

    \n\n {!_.isEmpty(errors)\n && (\n
    \n {_.map(errors, (error, idx) => { return
    {error}
    ; })}\n
    \n )}\n
    \n \n \n );\n};\n\nTrailingStopLoss.propTypes = propTypes;\nTrailingStopLoss.defaultProps = defaultProps;\n\nexport default TrailingStopLoss;\n","import _ from 'lodash';\nimport React, {\n memo, useEffect, useState, useRef\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { transactionBuilderConfigPropTypes } from 'common/propTypes';\nimport { useSelector } from 'react-redux';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ReactHtmlParser from 'react-html-parser';\nimport { ADJUST_PERCENTAGE, TRAILING_PERCENTAGE } from 'modules/TransactionsBuilder/configs';\n\nconst propTypes = {\n transactionBuilderConfig: transactionBuilderConfigPropTypes.isRequired,\n orderConfigIndex: PropTypes.number.isRequired,\n onTransactionBuilderConfigChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst ReEntryOrReExecute = ({\n transactionBuilderConfig, orderConfigIndex, onTransactionBuilderConfigChange\n}) => {\n const { stopLoss, reEntryCount, reExecuteCount } = transactionBuilderConfig;\n\n const globalReduxState = useSelector((state) => state);\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs', []);\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex);\n const advancedFeatures = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const { isReEntry, isReExecute, } = advancedFeatures;\n\n const isStopLossValuePresent = !!stopLoss;\n const isEnabledRetryOrReExecute = isReEntry || isReExecute;\n const propsActiveType = reExecuteCount ? 'reExecute' : 'reEntry';\n const activeCount = propsActiveType === 'reExecute' ? reExecuteCount : reEntryCount;\n const [activeType, setActiveType] = useState(propsActiveType);\n const isInitialLoad = useRef(true);\n\n const onHandleActiveCount = (newCount = 0) => {\n if (activeType === 'reExecute') {\n onTransactionBuilderConfigChange({ reExecuteCount: newCount, reEntryCount: 0 });\n return null;\n }\n return onTransactionBuilderConfigChange({ reExecuteCount: 0, reEntryCount: newCount });\n };\n\n useEffect(() => {\n setActiveType(propsActiveType);\n }, [reEntryCount, reExecuteCount]);\n\n useEffect(() => {\n if (!isInitialLoad.current && (reExecuteCount || reEntryCount)) {\n onHandleActiveCount(activeCount);\n } else { isInitialLoad.current = false; }\n }, [activeType]);\n\n useEffect(() => {\n const isResetReEntryAndReExecuteCount = !isInitialLoad.current\n && !isStopLossValuePresent && (reExecuteCount || reEntryCount);\n\n if (isResetReEntryAndReExecuteCount) {\n onTransactionBuilderConfigChange({\n reExecuteCount: 0, reEntryCount: 0, [TRAILING_PERCENTAGE]: undefined, [ADJUST_PERCENTAGE]: undefined\n });\n }\n }, [isStopLossValuePresent]);\n\n if (!isEnabledRetryOrReExecute) return null;\n\n const renderNode = (\n
    \n \n \n ReEntry\n \n\n \n ReExecute\n \n \n\n { onHandleActiveCount(Number(event.target.value)); }}\n className=\"custom-select custom-select-sm strike-index form-control form-control-sm\"\n >\n \n \n \n \n \n \n
    \n );\n\n if (isStopLossValuePresent) return {renderNode};\n\n return (\n \n Stop Loss Percentage is Required')}>\n {renderNode}\n \n \n );\n};\n\nReEntryOrReExecute.propTypes = propTypes;\nReEntryOrReExecute.defaultProps = defaultProps;\n\nexport default memo(ReEntryOrReExecute);\n","import _ from 'lodash';\nimport React, {\n memo, useEffect, useState,\n useRef\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { transactionBuilderConfigPropTypes } from 'common/propTypes';\nimport { useSelector } from 'react-redux';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { waitAndTradeTypesAndNode } from 'modules/TransactionsBuilder/configs';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\nconst propTypes = {\n transactionBuilderConfig: transactionBuilderConfigPropTypes.isRequired,\n orderConfigIndex: PropTypes.number.isRequired,\n onTransactionBuilderConfigChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst WaitAndTrade = ({\n transactionBuilderConfig, orderConfigIndex, onTransactionBuilderConfigChange\n}) => {\n const {\n waitAndTradeType, waitUntilPremiumToIncreaseInPercentage,\n waitUntilPremiumToDecreaseInPercentage\n } = transactionBuilderConfig;\n\n const {\n WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE, WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE\n } = waitAndTradeTypesAndNode;\n\n const globalReduxState = useSelector((state) => state);\n const runType = _.get(globalReduxState, 'runType');\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs', []);\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex);\n const advancedFeatures = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const isWaitAndTrade = _.get(advancedFeatures, 'isWaitAndTrade', false);\n\n const activeCount = WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE === waitAndTradeType\n ? waitUntilPremiumToIncreaseInPercentage : waitUntilPremiumToDecreaseInPercentage;\n const isInitialLoad = useRef(true);\n const [waitValue, setWaitValue] = useState(activeCount);\n\n const onHandleActiveCount = (newCount = 0) => {\n if (waitAndTradeType === WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE) {\n onTransactionBuilderConfigChange({\n [WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: newCount,\n [WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n });\n return null;\n }\n\n return onTransactionBuilderConfigChange({\n [WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: newCount,\n });\n };\n\n useEffect(() => setWaitValue(activeCount), [activeCount]);\n\n useEffect(() => {\n if (!isInitialLoad.current) {\n setWaitValue(0);\n } else {\n isInitialLoad.current = false;\n }\n }, [waitAndTradeType]);\n\n useEffect(() => {\n if (runType === 'historic'\n && (waitUntilPremiumToIncreaseInPercentage || waitUntilPremiumToDecreaseInPercentage)\n ) {\n setTimeout(() => {\n onTransactionBuilderConfigChange({\n [WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n });\n }, [2000]);\n }\n }, [runType]);\n\n const isShowWaitAndTradeForBackTest = runType === 'historic'\n && _.get(window, 'userPermissions.waitAndTradeForBacktest.isEnabled', false);\n\n if ((runType === 'historic' && !isShowWaitAndTradeForBackTest) || !isWaitAndTrade) return null;\n\n const renderNode = (\n
    \n {\n onTransactionBuilderConfigChange({\n [WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: newType\n });\n }}\n >\n \n
    \n expand_more\n %\n
    \n \n\n \n
    \n expand_less\n %\n
    \n \n \n\n onHandleActiveCount(onRegexOnlyNumberAndFloat(event.target.value, false))}\n value={waitValue === undefined ? '' : waitValue.toString()}\n onChange={(event) => setWaitValue(onRegexOnlyNumberAndFloat(event.target.value, true))}\n />\n
    \n );\n\n return {renderNode};\n};\n\nWaitAndTrade.propTypes = propTypes;\nWaitAndTrade.defaultProps = defaultProps;\n\nexport default memo(withErrorBoundary(WaitAndTrade));\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n STOPS_VALUE_TYPES, STRIKE_KEYS\n} from 'modules/TransactionsBuilder/configs';\nimport {\n transactionBuilderConfigPropTypes, outputSchemaPropTypes, instrumentGroupsPropTypes\n} from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\nimport TradeTypeSelector from './TradeTypeSelector';\nimport CallOrPutSelector from './CallOrPutSelector';\nimport StrikeIndex from './StrikeIndex';\nimport Quantity from './Quantity';\nimport BuyOrSellSelector from './BuyOrSellSelector';\nimport StopsInput from './StopsInput';\nimport RemoveBtn from './RemoveBtn';\nimport ValuePathSelector from './ValuePathSelector';\nimport StopValueHint from './StopValueHint';\nimport EquityQuantityOrAmount from './EquityQuantityOrAmount';\nimport TrailingStopLoss from './AdvancedFeatures/TrailingStopLoss/index';\nimport ReEntryOrReExecute from './AdvancedFeatures/ReEntryOrReExecute/index';\nimport WaitAndTrade from './AdvancedFeatures/WaitAndTrade/index';\n\nconst propTypes = {\n transactionBuilderConfig: transactionBuilderConfigPropTypes.isRequired,\n onRemoveOption: PropTypes.func.isRequired,\n onTransactionBuilderChange: PropTypes.func.isRequired,\n isFutureDisable: PropTypes.bool.isRequired,\n isEquityDisable: PropTypes.bool.isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n optionConfigsValidator: PropTypes.shape({}).isRequired,\n futureConfigValidator: PropTypes.shape({}).isRequired,\n equityConfigValidator: PropTypes.shape({}).isRequired,\n isInvalidStrike: PropTypes.bool.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n transactionConfigIdx: PropTypes.number.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n isDisableRemoveBtn: PropTypes.bool.isRequired,\n isAdjustment: PropTypes.bool.isRequired,\n orderConfigIndex: PropTypes.number.isRequired\n};\nconst defaultProps = {};\n\nconst {\n strikeIndex: STRIKE_INDEX,\n indicatorValue: INDICATOR_VALUE\n} = STRIKE_KEYS;\n\nconst TransactionBuilderForm = ({\n isFutureDisable, isEquityDisable, onRemoveOption, onTransactionBuilderChange, outputSchema,\n strikeBasedOn, transactionBuilderConfig, optionConfigsValidator, isInvalidStrike, instrumentGroups,\n transactionConfigIdx, segments, isDisableRemoveBtn, futureConfigValidator, equityConfigValidator,\n isAdjustment, orderConfigIndex\n}) => {\n const {\n tradeType, strike, optionType, quantity, transactionType, stopGain, stopLoss,\n valuePath, stopGainPrice, stopLossPrice, amount\n } = transactionBuilderConfig;\n\n const isEquity = tradeType === 'equityConfig';\n const isFuture = tradeType === 'futureConfig';\n const { PERCENT, PRICE } = STOPS_VALUE_TYPES;\n\n const getValidator = () => {\n if (isEquity) return equityConfigValidator;\n if (isFuture) return futureConfigValidator;\n\n return optionConfigsValidator;\n };\n\n const onTransactionBuilderConfigChange = (partiallyNewConfig) => {\n onTransactionBuilderChange({ ...transactionBuilderConfig, ...partiallyNewConfig });\n };\n\n const renderLot = () => {\n const validator = _.get(getValidator(), isFuture ? 'quantityExpression' : 'quantity', {});\n\n if (isEquity && isAdmin) {\n return (\n \n );\n }\n\n return (\n \n );\n };\n\n return (\n \n \n \n \n \n \n \n \n {strikeBasedOn === INDICATOR_VALUE && (\n \n \n \n )}\n \n \n \n {renderLot()}\n \n
    \n \n
    \n \n \n
    \n \n )}>\n \n info\n \n \n
    \n \n \n
    \n \n )}>\n \n info\n \n \n
    \n \n {!isAdjustment && (\n <>\n \n \n \n )}\n\n \n \n \n \n );\n};\n\nTransactionBuilderForm.propTypes = propTypes;\nTransactionBuilderForm.defaultProps = defaultProps;\n\nexport default TransactionBuilderForm;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getOptionConfigStrategies } from 'modules/TransactionsBuilder/configs';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nconst propTypes = {\n optionSubStrategy: PropTypes.string.isRequired,\n optionStrategy: PropTypes.string.isRequired,\n onStrategyUpdate: PropTypes.func.isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n};\nconst defaultProps = {};\n\nconst OptionSubStrategySelector = (props) => {\n const {\n optionSubStrategy, optionStrategy, onStrategyUpdate, strikeBasedOn\n } = props;\n const strategies = getOptionConfigStrategies(strikeBasedOn);\n\n const onSubStrategyChange = (newSubStrategy) => {\n const newOptionConfigs = _.get(strategies, [optionStrategy, newSubStrategy, 'optionConfigs']);\n const newMode = { optionSubStrategy: newSubStrategy };\n\n onStrategyUpdate(newMode, newOptionConfigs);\n };\n\n const renderSubStrategyOptions = _.map(strategies[optionStrategy], (subStrategy, subStrategyKey) => (\n \n \"\"\n {_.startCase(_.get(subStrategy, 'name', ''))}\n \n ));\n\n return (\n \n {renderSubStrategyOptions}\n \n );\n};\n\nOptionSubStrategySelector.propTypes = propTypes;\nOptionSubStrategySelector.defaultProps = defaultProps;\n\nexport default OptionSubStrategySelector;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getEmptyOptionConfigs, getOptionConfigStrategies } from 'modules/TransactionsBuilder/configs';\nimport classNames from 'classnames';\nimport OptionSubStrategySelector from './OptionSubStrategySelector';\n\nconst propTypes = {\n optionStrategy: PropTypes.string.isRequired,\n onStrategyUpdate: PropTypes.func.isRequired,\n optionSubStrategy: PropTypes.string.isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n};\nconst defaultProps = {};\n\nconst OptionStrategySelector = ({\n optionStrategy, onStrategyUpdate, optionSubStrategy, strikeBasedOn\n}) => {\n const strategies = getOptionConfigStrategies(strikeBasedOn);\n const onStrategyChange = (event) => {\n const newStrategy = event.target.value;\n const newOptionConfigs = newStrategy === 'custom' ? [].concat(getEmptyOptionConfigs())\n : _.get(_.values(strategies[newStrategy]), '[0].optionConfigs', []);\n\n const newSubStrategy = newStrategy === 'custom' ? ''\n : _.get(_.keys(strategies[newStrategy]), '0', '');\n\n const newMode = { optionStrategy: newStrategy, transaction: 'option', optionSubStrategy: newSubStrategy };\n\n onStrategyUpdate(newMode, newOptionConfigs);\n };\n\n const renderStrategyOptions = _.map(strategies, (strategyConfig, strategyKey) => {\n const dropDownStyle = classNames(\n 'dropdown-item',\n 'text-capitalize',\n { active: strategyKey === optionStrategy }\n );\n\n return (\n \n {strategyKey}\n \n );\n });\n\n return (\n
    \n
    \n \n {optionStrategy}\n \n
    \n {renderStrategyOptions}\n
    \n
    \n :\n\n \n
    \n );\n};\n\nOptionStrategySelector.propTypes = propTypes;\nOptionStrategySelector.defaultProps = defaultProps;\n\nexport default OptionStrategySelector;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { STRIKE_KEYS } from 'modules/TransactionsBuilder/configs';\nimport { useSelector } from 'react-redux';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\n\nconst propTypes = {\n strikeBasedOn: PropTypes.string.isRequired,\n isAdjustment: PropTypes.bool,\n orderConfigIndex: PropTypes.number.isRequired\n};\n\nconst defaultProps = {\n isAdjustment: false\n};\n\nconst {\n strikeIndex: STRIKE_INDEX,\n indicatorValue: INDICATOR_VALUE,\n equityPrice: EQUITY_PRICE\n} = STRIKE_KEYS;\n\nconst TableHeader = ({ strikeBasedOn, isAdjustment, orderConfigIndex }) => {\n const isIndicatorValue = strikeBasedOn === INDICATOR_VALUE;\n const isEquityPrice = strikeBasedOn === EQUITY_PRICE;\n\n const globalReduxState = useSelector((state) => state);\n const runType = _.get(globalReduxState, 'runType');\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs', []);\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex);\n const advancedFeatures = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const {\n isReEntry, isReExecute, isTrailingStopLoss\n } = advancedFeatures;\n\n const isWaitAndTrade = _.get(advancedFeatures, 'isWaitAndTrade', false);\n const isShowWaitAndTradeForBackTest = runType === 'historic'\n && _.get(window, 'userPermissions.waitAndTradeForBacktest.isEnabled', false);\n\n const advancedThs = [\n { label: 'Trailing Stop Loss', shouldShow: isTrailingStopLoss && !isAdjustment },\n { label: 'ReEntry / ReExecute', shouldShow: (isReEntry || isReExecute) && !isAdjustment, },\n {\n label: 'Wait and Trade',\n shouldShow: (runType === 'historic' && !isShowWaitAndTradeForBackTest) ? false : isWaitAndTrade\n }\n ];\n\n const renderAdvancedTh = ({ label, shouldShow }, idx) => {\n if (!shouldShow) return null;\n\n return {label};\n };\n\n return (\n \n \n Transaction\n Option Type\n {isIndicatorValue && (Value path)}\n {_.startCase((isIndicatorValue || isEquityPrice) ? STRIKE_INDEX : strikeBasedOn)}\n Total Lot\n Action Type\n Stop Loss\n Take Profit\n {_.map(advancedThs, renderAdvancedTh)}\n \n \n );\n};\n\nTableHeader.propTypes = propTypes;\nTableHeader.defaultProps = defaultProps;\n\nexport default TableHeader;\n","import _ from 'lodash';\nimport {\n ADJUST_PERCENTAGE, TRAILING_PERCENTAGE,\n waitAndTradeTypesAndNode\n} from 'modules/TransactionsBuilder/configs';\n\nexport const trailingStopLossBasedReset = (orderConfig) => {\n const { transactionConfigs } = orderConfig;\n const newTransactionConfigs = _.map(transactionConfigs, (transactionConfig) => {\n const { optionConfigs, equityConfig, futureConfig } = transactionConfig;\n\n const getTrailStopLossResetConfig = (config) => {\n return {\n ...config,\n trailingStopLoss: { [TRAILING_PERCENTAGE]: undefined, [ADJUST_PERCENTAGE]: undefined }\n };\n };\n\n return {\n ...transactionConfig,\n equityConfig: getTrailStopLossResetConfig(equityConfig),\n futureConfig: getTrailStopLossResetConfig(futureConfig),\n optionConfigs: _.map(optionConfigs, (optionConfig) => {\n return getTrailStopLossResetConfig(optionConfig);\n })\n };\n });\n\n return { ...orderConfig, transactionConfigs: newTransactionConfigs };\n};\n\nexport const reEntryAndReExecuteBasedReset = (orderConfig) => {\n const { transactionConfigs } = orderConfig;\n const newTransactionConfigs = _.map(transactionConfigs, (transactionConfig) => {\n const { optionConfigs, equityConfig, futureConfig } = transactionConfig;\n\n const getReEntryAndReExecuteResetConfig = (config) => {\n return {\n ...config,\n reExecuteCount: 0,\n reEntryCount: 0\n };\n };\n\n return {\n ...transactionConfig,\n equityConfig: getReEntryAndReExecuteResetConfig(equityConfig),\n futureConfig: getReEntryAndReExecuteResetConfig(futureConfig),\n optionConfigs: _.map(optionConfigs, (optionConfig) => {\n return getReEntryAndReExecuteResetConfig(optionConfig);\n })\n };\n });\n\n return { ...orderConfig, transactionConfigs: newTransactionConfigs };\n};\n\nexport const waitAndTradeReset = (orderConfig) => {\n const { transactionConfigs } = orderConfig;\n const adjustmentActionConfigs = _.get(orderConfig, 'adjustmentActionConfigs', []);\n\n const getSanitizedConfigs = (configs) => {\n return _.map(configs, (transactionConfig) => {\n const { optionConfigs, equityConfig, futureConfig } = transactionConfig;\n\n const getWaitAndTradeResetConfig = (config) => {\n return {\n ...config,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE]: 0,\n [waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE]: 0,\n waitAndTradeType: waitAndTradeTypesAndNode.WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE,\n };\n };\n\n return {\n ...transactionConfig,\n equityConfig: getWaitAndTradeResetConfig(equityConfig),\n futureConfig: getWaitAndTradeResetConfig(futureConfig),\n optionConfigs: _.map(optionConfigs, (optionConfig) => {\n return getWaitAndTradeResetConfig(optionConfig);\n })\n };\n });\n };\n\n return {\n ...orderConfig,\n transactionConfigs: getSanitizedConfigs(transactionConfigs),\n adjustmentActionConfigs: _.map(adjustmentActionConfigs, (adjustmentActionConfig) => {\n return getSanitizedConfigs(adjustmentActionConfig);\n })\n };\n};\n","import _ from 'lodash';\nimport {\n getDefaultExistingLegConfig, getEmptyAdjustmentActionConfig\n} from 'modules/TransactionsBuilder/configs';\n\nexport const isEligibleToMoveToCostTransactionConfigs = (transactionConfigs) => {\n return _.some(transactionConfigs, (transactionConfig) => {\n const { mode: { transaction }, optionConfigs } = transactionConfig;\n if (transaction !== 'option') return false;\n\n let isCeAndStopLossPresent = false;\n let isPeAndStopLossPresent = false;\n\n return _.some(optionConfigs, (optionConfig) => {\n const { optionType, stopLoss } = optionConfig;\n if (optionType === 'CE' && stopLoss) isCeAndStopLossPresent = true;\n if (optionType === 'PE' && stopLoss) isPeAndStopLossPresent = true;\n\n return isCeAndStopLossPresent && isPeAndStopLossPresent;\n });\n });\n};\n\nconst getSignalConfigsForAdjustment = (leftOperand, rightOperand) => {\n return [{\n conditionOperator: '',\n leftOperand,\n operator: 'equalOrAbove',\n rightOperand: `${rightOperand}`,\n mode: { isAutoAdjustment: true, adjustmentMode: 'moveToCost' }\n }];\n};\n\nconst buildAdjustmentTransactionsConfigs = (\n configName, maxInstrumentsInGroup, transactionConfigIndex, moveToCostIndexes\n) => {\n const timesOfAdjustmentConfig = _.times(maxInstrumentsInGroup, () => {\n const emptyAdjustmentActionConfig = getEmptyAdjustmentActionConfig();\n const { mode } = emptyAdjustmentActionConfig;\n\n return {\n ...emptyAdjustmentActionConfig,\n mode: { ...mode, isAutoAdjustment: true, adjustmentMode: 'moveToCost' }\n };\n });\n const adjustConfig = timesOfAdjustmentConfig[transactionConfigIndex];\n const { mode } = adjustConfig;\n\n switch (configName) {\n default:\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n mode: { ...mode, transaction: 'option' },\n existingLegConfigs: _.map(moveToCostIndexes, (moveToCostIndex) => {\n return {\n ...getDefaultExistingLegConfig,\n legType: 'option',\n action: 'updateStopLoss',\n optionConfigIndex: moveToCostIndex\n };\n })\n };\n break;\n }\n\n return timesOfAdjustmentConfig;\n};\n\nconst addAdjustmentConfigsBasedOnParentLegs = (\n config, transactionConfigIndex, configName, optionConfigIndex = 0, maxInstrumentsInGroup, count,\n onChangeCount, moveToCostIndexes\n) => {\n let reAssignedCount = count;\n const { stopLoss } = config;\n\n const configs = _.map(_.range(1), (index) => {\n switch (configName) {\n default:\n let optionLeftOperand = '';\n if (index === 0) {\n optionLeftOperand = `individualStop.${transactionConfigIndex}.${configName}`;\n optionLeftOperand += `_${optionConfigIndex}.lossPercentage`;\n } else {\n optionLeftOperand = `individualStop.${transactionConfigIndex}.${configName}_`;\n optionLeftOperand += `0_${reAssignedCount - 1}.lossPercentage`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n return {\n signalConfigs: getSignalConfigsForAdjustment(optionLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, maxInstrumentsInGroup, transactionConfigIndex, moveToCostIndexes\n )\n };\n }\n });\n\n return {\n signalConfigs: _.map(configs, ({ signalConfigs }) => { return signalConfigs; }),\n adjustmentConfigs: _.map(configs, ({ adjustmentConfigs }) => { return adjustmentConfigs; })\n };\n};\n\nexport const addAdjustmentBasedOnMoveToCost = (\n transactionConfigs, maxInstrumentsInGroup, aac,\n asc, initialCount\n) => {\n let count = initialCount;\n const onChangeCount = (reAssignedCount) => { count = reAssignedCount; };\n\n let adjustmentSignalConfigs = asc;\n let adjustmentActionConfigs = aac;\n _.each(transactionConfigs, (transactionConfig, transactionConfigIndex) => {\n const { optionConfigs } = transactionConfig;\n\n _.each(optionConfigs, (optionConfig, optionConfigIndex) => {\n const { stopLoss, optionType } = optionConfig;\n\n // if stoploss and optionTypePresent check the conditions\n if (stopLoss && optionType) {\n const getMoveToCostOptionIndex = () => {\n if (optionType === 'CE') {\n const ceIndexes = _.map(optionConfigs, (config, idx) => {\n if (config.optionType === 'PE' && config.stopLoss) {\n return idx;\n }\n return undefined;\n });\n\n return _.filter(ceIndexes, (ceIndex) => ceIndex !== undefined);\n }\n const peIndexes = _.map(optionConfigs, (config, idx) => {\n if (config.optionType === 'CE' && config.stopLoss) {\n return idx;\n }\n return undefined;\n });\n\n return _.filter(peIndexes, (peIndex) => peIndex !== undefined);\n };\n\n // move to cost index get from above functions\n const moveToCostIndexes = getMoveToCostOptionIndex();\n\n if (!_.isEmpty(moveToCostIndexes)) {\n const {\n signalConfigs: optionSignalConfigs, adjustmentConfigs: optionAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n optionConfig, transactionConfigIndex, 'option', optionConfigIndex, maxInstrumentsInGroup, count,\n onChangeCount, moveToCostIndexes\n );\n\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...optionSignalConfigs];\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...optionAdjustmentConfigs];\n }\n }\n });\n });\n\n return { adjustmentSignalConfigs, adjustmentActionConfigs, reAssignedCount: count };\n};\n","import _ from 'lodash';\nimport {\n getDefaultExistingLegConfig, getEmptyAdjustmentActionConfig\n} from 'modules/TransactionsBuilder/configs';\n\nconst getSignalConfigsForAdjustment = (leftOperand) => {\n return [{\n conditionOperator: '',\n leftOperand,\n operator: 'equalTo',\n rightOperand: '1',\n mode: { isAutoAdjustment: true, adjustmentMode: 'reEntry' }\n }];\n};\n\nconst buildAdjustmentTransactionsConfigs = (\n configName, maxInstrumentsInGroup, transactionConfigIndex, optionConfigIndex = 0\n) => {\n const timesOfAdjustmentConfig = _.times(maxInstrumentsInGroup, () => {\n const emptyAdjustmentActionConfig = getEmptyAdjustmentActionConfig();\n const { mode } = emptyAdjustmentActionConfig;\n\n return {\n ...emptyAdjustmentActionConfig,\n mode: { ...mode, isAutoAdjustment: true, adjustmentMode: 'reEntry' }\n };\n });\n\n const adjustConfig = timesOfAdjustmentConfig[transactionConfigIndex];\n const { mode } = adjustConfig;\n\n switch (configName) {\n case 'equity':\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n mode: { ...mode, transaction: 'equity' },\n existingLegConfigs: [{\n ...getDefaultExistingLegConfig, legType: 'equity', action: 'reEntry', optionConfigIndex: null\n }]\n };\n break;\n case 'future':\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n mode: { ...mode, transaction: 'future' },\n existingLegConfigs: [{\n ...getDefaultExistingLegConfig, legType: 'future', action: 'reEntry', optionConfigIndex: null\n }]\n };\n break;\n default:\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n mode: { ...mode, transaction: 'option' },\n existingLegConfigs: [{\n ...getDefaultExistingLegConfig, legType: 'option', action: 'reEntry', optionConfigIndex\n }]\n };\n break;\n }\n\n return timesOfAdjustmentConfig;\n};\n\nconst addAdjustmentConfigsBasedOnParentLegs = (\n config, transactionConfigIndex, configName, optionConfigIndex = 0, maxInstrumentsInGroup, count,\n onChangeCount\n) => {\n let reAssignedCount = count;\n const reEntryCount = _.get(config, 'reEntryCount', 0);\n\n if (reEntryCount === 0) { return { signalConfigs: [], adjustmentConfigs: [] }; }\n const { stopLoss } = config;\n\n const configs = _.map(_.range(reEntryCount), (reEntryIndex) => {\n switch (configName) {\n case 'equity':\n let equityLeftOperand = '';\n if (reEntryIndex === 0) {\n equityLeftOperand = `ordersExtra.${transactionConfigIndex}`;\n equityLeftOperand += `.${configName}.isPriceCrossedEntryPriceAfterStopLoss`;\n } else {\n equityLeftOperand = `ordersExtra.${transactionConfigIndex}.${configName}`;\n equityLeftOperand += `_${reAssignedCount - 1}.isPriceCrossedEntryPriceAfterStopLoss`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n\n return {\n signalConfigs: getSignalConfigsForAdjustment(equityLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, maxInstrumentsInGroup, transactionConfigIndex\n )\n };\n case 'future':\n let futureLeftOperand = `ordersExtra.${transactionConfigIndex}`;\n futureLeftOperand = `.${configName}.isPriceCrossedEntryPriceAfterStopLoss`;\n\n if (reEntryIndex === 0) {\n futureLeftOperand = `ordersExtra.${transactionConfigIndex}`;\n futureLeftOperand += `.${configName}.isPriceCrossedEntryPriceAfterStopLoss`;\n } else {\n futureLeftOperand = `ordersExtra.${transactionConfigIndex}.${configName}`;\n futureLeftOperand += `_${reAssignedCount - 1}.isPriceCrossedEntryPriceAfterStopLoss`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n\n return {\n signalConfigs: getSignalConfigsForAdjustment(futureLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, maxInstrumentsInGroup, transactionConfigIndex\n )\n };\n default:\n let optionLeftOperand = '';\n if (reEntryIndex === 0) {\n optionLeftOperand = `ordersExtra.${transactionConfigIndex}.${configName}`;\n optionLeftOperand += `_${optionConfigIndex}.isPriceCrossedEntryPriceAfterStopLoss`;\n } else {\n optionLeftOperand = `ordersExtra.${transactionConfigIndex}.${configName}_`;\n optionLeftOperand += `${optionConfigIndex}_${reAssignedCount - 1}`;\n optionLeftOperand += '.isPriceCrossedEntryPriceAfterStopLoss';\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n return {\n signalConfigs: getSignalConfigsForAdjustment(optionLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, maxInstrumentsInGroup, transactionConfigIndex, optionConfigIndex\n )\n };\n }\n });\n\n return {\n signalConfigs: _.map(configs, ({ signalConfigs }) => { return signalConfigs; }),\n adjustmentConfigs: _.map(configs, ({ adjustmentConfigs }) => { return adjustmentConfigs; })\n };\n};\n\nexport const addAdjustmentBasedOnReEntry = (\n transactionConfigs, maxInstrumentsInGroup, aac,\n asc, initialCount\n) => {\n let count = initialCount;\n const onChangeCount = (reAssignedCount) => { count = reAssignedCount; };\n\n let adjustmentSignalConfigs = asc;\n let adjustmentActionConfigs = aac;\n\n _.each(transactionConfigs, (transactionConfig, transactionConfigIndex) => {\n const { equityConfig, futureConfig, optionConfigs } = transactionConfig;\n const {\n signalConfigs: equitySignalConfigs, adjustmentConfigs: equityAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n equityConfig, transactionConfigIndex, 'equity', 0, maxInstrumentsInGroup, count, onChangeCount\n );\n const {\n signalConfigs: futureSignalConfigs, adjustmentConfigs: futureAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n futureConfig, transactionConfigIndex, 'future', 0, maxInstrumentsInGroup, count, onChangeCount\n );\n\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...equitySignalConfigs];\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...futureSignalConfigs];\n\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...equityAdjustmentConfigs];\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...futureAdjustmentConfigs];\n\n _.each(optionConfigs, (optionConfig, optionConfigIndex) => {\n const {\n signalConfigs: optionSignalConfigs, adjustmentConfigs: optionAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n optionConfig, transactionConfigIndex, 'option', optionConfigIndex, maxInstrumentsInGroup, count,\n onChangeCount\n );\n\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...optionSignalConfigs];\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...optionAdjustmentConfigs];\n });\n });\n\n return { adjustmentSignalConfigs, adjustmentActionConfigs, reAssignedCount: count };\n};\n","import _ from 'lodash';\nimport { getEmptyAdjustmentActionConfig } from 'modules/TransactionsBuilder/configs';\n\nconst getSignalConfigsForAdjustment = (leftOperand, rightOperand) => {\n return [\n {\n conditionOperator: '',\n leftOperand,\n operator: 'equalOrAbove',\n rightOperand: `${rightOperand}`,\n mode: { isAutoAdjustment: true, adjustmentMode: 'reExecute' }\n }\n ];\n};\n\nconst buildAdjustmentTransactionsConfigs = (\n configName, config, maxInstrumentsInGroup, transactionConfigIndex\n) => {\n const timesOfAdjustmentConfig = _.times(maxInstrumentsInGroup, () => {\n const emptyAdjustmentActionConfig = getEmptyAdjustmentActionConfig();\n const { mode } = emptyAdjustmentActionConfig;\n\n return {\n ...emptyAdjustmentActionConfig,\n mode: { ...mode, isAutoAdjustment: true, adjustmentMode: 'reExecute' }\n };\n });\n\n const adjustConfig = timesOfAdjustmentConfig[transactionConfigIndex];\n const { mode } = adjustConfig;\n\n switch (configName) {\n case 'equity':\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n equityConfig: { ...config, reExecuteCount: 0 },\n mode: { ...mode, transaction: 'equity' },\n existingLegConfigs: []\n };\n break;\n case 'future':\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [],\n futureConfig: { ...config, reExecuteCount: 0 },\n mode: { ...mode, transaction: 'future' },\n existingLegConfigs: []\n };\n break;\n default:\n timesOfAdjustmentConfig[transactionConfigIndex] = {\n ...adjustConfig,\n optionConfigs: [{ ...config, reExecuteCount: 0 }],\n mode: { ...mode, transaction: 'option' },\n existingLegConfigs: []\n };\n break;\n }\n\n return timesOfAdjustmentConfig;\n};\n\nconst addAdjustmentConfigsBasedOnParentLegs = (\n config, transactionConfigIndex, configName, optionConfigIndex = 0, maxInstrumentsInGroup, count,\n onChangeCount\n) => {\n let reAssignedCount = count;\n const reExecuteCount = _.get(config, 'reExecuteCount', 0);\n\n if (reExecuteCount === 0) { return { signalConfigs: [], adjustmentConfigs: [] }; }\n const { stopLoss } = config;\n\n const configs = _.map(_.range(reExecuteCount), (reExecuteIndex) => {\n switch (configName) {\n case 'equity':\n let equityLeftOperand = '';\n if (reExecuteIndex === 0) {\n equityLeftOperand = `individualStop.${transactionConfigIndex}.${configName}.lossPercentage`;\n } else {\n equityLeftOperand = `individualStop.${transactionConfigIndex}.${configName}`;\n equityLeftOperand += `_${reAssignedCount - 1}.lossPercentage`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n\n return {\n signalConfigs: getSignalConfigsForAdjustment(equityLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, config, maxInstrumentsInGroup, transactionConfigIndex\n )\n };\n case 'future':\n let futureLeftOperand = `individualStop.${transactionConfigIndex}.${configName}.lossPercentage`;\n if (reExecuteIndex === 0) {\n futureLeftOperand = `individualStop.${transactionConfigIndex}.${configName}.lossPercentage`;\n } else {\n futureLeftOperand = `individualStop.${transactionConfigIndex}.${configName}`;\n futureLeftOperand += `_${reAssignedCount - 1}.lossPercentage`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n\n return {\n signalConfigs: getSignalConfigsForAdjustment(futureLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, config, maxInstrumentsInGroup, transactionConfigIndex\n )\n };\n default:\n let optionLeftOperand = '';\n if (reExecuteIndex === 0) {\n optionLeftOperand = `individualStop.${transactionConfigIndex}.${configName}`;\n optionLeftOperand += `_${optionConfigIndex}.lossPercentage`;\n } else {\n optionLeftOperand = `individualStop.${transactionConfigIndex}.${configName}_`;\n optionLeftOperand += `0_${reAssignedCount - 1}.lossPercentage`;\n }\n\n reAssignedCount += 1;\n onChangeCount(reAssignedCount);\n return {\n signalConfigs: getSignalConfigsForAdjustment(optionLeftOperand, stopLoss),\n adjustmentConfigs: buildAdjustmentTransactionsConfigs(\n configName, config, maxInstrumentsInGroup, transactionConfigIndex\n )\n };\n }\n });\n\n return {\n signalConfigs: _.map(configs, ({ signalConfigs }) => { return signalConfigs; }),\n adjustmentConfigs: _.map(configs, ({ adjustmentConfigs }) => { return adjustmentConfigs; })\n };\n};\n\nexport const addAdjustmentBasedOnReExecute = (\n transactionConfigs, maxInstrumentsInGroup, aac, asc, initialCount\n) => {\n let adjustmentSignalConfigs = asc;\n let adjustmentActionConfigs = aac;\n\n let count = initialCount;\n const onChangeCount = (reAssignedCount) => { count = reAssignedCount; };\n\n _.each(transactionConfigs, (transactionConfig, transactionConfigIndex) => {\n const { equityConfig, futureConfig, optionConfigs } = transactionConfig;\n const {\n signalConfigs: equitySignalConfigs, adjustmentConfigs: equityAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n equityConfig, transactionConfigIndex, 'equity', 0, maxInstrumentsInGroup, count, onChangeCount\n );\n const {\n signalConfigs: futureSignalConfigs, adjustmentConfigs: futureAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n futureConfig, transactionConfigIndex, 'future', 0, maxInstrumentsInGroup, count, onChangeCount\n );\n\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...equitySignalConfigs];\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...futureSignalConfigs];\n\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...equityAdjustmentConfigs];\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...futureAdjustmentConfigs];\n\n _.each(optionConfigs, (optionConfig, optionConfigIndex) => {\n const {\n signalConfigs: optionSignalConfigs, adjustmentConfigs: optionAdjustmentConfigs\n } = addAdjustmentConfigsBasedOnParentLegs(\n optionConfig, transactionConfigIndex, 'option', optionConfigIndex, maxInstrumentsInGroup, count,\n onChangeCount\n );\n\n adjustmentSignalConfigs = [...adjustmentSignalConfigs, ...optionSignalConfigs];\n adjustmentActionConfigs = [...adjustmentActionConfigs, ...optionAdjustmentConfigs];\n });\n });\n\n return { adjustmentSignalConfigs, adjustmentActionConfigs, reAssignedCount: count };\n};\n","import _ from 'lodash';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\nimport {\n addAdjustmentBasedOnMoveToCost, isEligibleToMoveToCostTransactionConfigs\n} from './moveToCostAdjustment';\nimport { addAdjustmentBasedOnReEntry } from './reEntryAdjustment';\nimport { addAdjustmentBasedOnReExecute } from './reExecuteAdjustment';\n\nexport const getAdjustmentSignalConfigsWithoutAutoAdjustment = (adjustmentSignalConfigs) => {\n return _.chain(adjustmentSignalConfigs).map((adjustmentSignalConfig) => {\n if (_.isEmpty(adjustmentSignalConfig)) return adjustmentSignalConfig;\n\n const filteredAdjustmentSignalConfig = _.filter(adjustmentSignalConfig, (config) => {\n const isAutoAdjustment = _.get(config, 'mode.isAutoAdjustment', false);\n\n return !isAutoAdjustment;\n });\n\n if (_.isEmpty(filteredAdjustmentSignalConfig)) return undefined;\n\n return filteredAdjustmentSignalConfig;\n }).compact().value();\n};\n\nexport const getAdjustmentActionConfigsWithoutAutoAdjustment = (adjustmentActionConfigs) => {\n return _.chain(adjustmentActionConfigs).map((adjustmentActionConfig) => {\n if (_.isEmpty(adjustmentActionConfig)) return adjustmentActionConfig;\n\n const filteredAdjustmentActionConfig = _.filter(adjustmentActionConfig, (config) => {\n const isAutoAdjustment = _.get(config, 'mode.isAutoAdjustment', false);\n\n return !isAutoAdjustment;\n });\n\n if (_.isEmpty(filteredAdjustmentActionConfig)) return undefined;\n\n return filteredAdjustmentActionConfig;\n }).compact().value();\n};\n\nexport const onConfigureAutoAdjustment = (args) => {\n const {\n orderConfigs, orderConfigIndex, newTransactionConfigs, maxInstrumentsInGroup\n } = args;\n\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex, {});\n const adjustmentActionConfigs = _.get(currentOrderConfig, 'adjustmentActionConfigs', []);\n const adjustmentSignalConfigs = _.get(currentOrderConfig, 'adjustmentSignalConfigs', []);\n const featureConfigs = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const { isMoveToCost } = featureConfigs;\n\n const isPermissionToMoveToCost = _.get(window, 'userPermissions.moveToCost.isEnabled', false)\n && isEligibleToMoveToCostTransactionConfigs(newTransactionConfigs) && isMoveToCost;\n\n const isPermissionToEnableReEntry = _.get(window, 'userPermissions.reEntry.isEnabled', false);\n const isPermissionToEnableReExecute = _.get(window, 'userPermissions.reExecute.isEnabled', false);\n\n const filteredAdjustmentSignalConfigs = getAdjustmentSignalConfigsWithoutAutoAdjustment(\n adjustmentSignalConfigs\n );\n const filteredAdjustmentActionConfigs = getAdjustmentActionConfigsWithoutAutoAdjustment(\n adjustmentActionConfigs\n );\n\n let initialCount = 0;\n const onChangeCount = (reAssignedCount) => { initialCount = reAssignedCount; };\n\n let newAdjustmentActionConfigs = [];\n let newAdjustmentSignalConfigs = [];\n // ReEntry Adjustment Added\n\n if (isPermissionToEnableReEntry) {\n const {\n adjustmentSignalConfigs: reEntryasc,\n adjustmentActionConfigs: reEntryaac,\n reAssignedCount: reEntryReAssignedCount\n } = addAdjustmentBasedOnReEntry(\n newTransactionConfigs, maxInstrumentsInGroup, newAdjustmentActionConfigs,\n newAdjustmentSignalConfigs, initialCount\n );\n onChangeCount(reEntryReAssignedCount);\n\n newAdjustmentActionConfigs = reEntryaac;\n newAdjustmentSignalConfigs = reEntryasc;\n }\n\n if (isPermissionToEnableReExecute) {\n // ReExecute Adjustment Added\n const {\n adjustmentSignalConfigs: reExecuteasc,\n adjustmentActionConfigs: reExecuteaac,\n reAssignedCount: reExecuteReAssignedCount\n } = addAdjustmentBasedOnReExecute(\n newTransactionConfigs, maxInstrumentsInGroup, newAdjustmentActionConfigs,\n newAdjustmentSignalConfigs, initialCount\n );\n\n onChangeCount(reExecuteReAssignedCount);\n\n newAdjustmentActionConfigs = reExecuteaac;\n newAdjustmentSignalConfigs = reExecuteasc;\n }\n\n // MoveToCost Adjustment Added\n if (isPermissionToMoveToCost) {\n const {\n adjustmentSignalConfigs: moveToCostasc,\n adjustmentActionConfigs: moveToCostaac,\n reAssignedCount: moveToCostReAssignedCount\n } = addAdjustmentBasedOnMoveToCost(\n newTransactionConfigs, maxInstrumentsInGroup, newAdjustmentActionConfigs,\n newAdjustmentSignalConfigs, initialCount, onChangeCount\n );\n\n onChangeCount(moveToCostReAssignedCount);\n\n newAdjustmentActionConfigs = moveToCostaac;\n newAdjustmentSignalConfigs = moveToCostasc;\n }\n\n orderConfigs[orderConfigIndex] = {\n ...orderConfigs[orderConfigIndex],\n transactionConfigs: newTransactionConfigs,\n adjustmentSignalConfigs: [...newAdjustmentSignalConfigs, ...filteredAdjustmentSignalConfigs],\n adjustmentActionConfigs: [...newAdjustmentActionConfigs, ...filteredAdjustmentActionConfigs]\n };\n\n return orderConfigs;\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { reEntryAndReExecuteBasedReset, trailingStopLossBasedReset, waitAndTradeReset } from './fellowWorker';\nimport { isEligibleToMoveToCostTransactionConfigs } from './AdjustmentAdaptor/moveToCostAdjustment';\nimport { onConfigureAutoAdjustment } from './AdjustmentAdaptor/index';\n\nconst propTypes = {\n orderConfigIndex: PropTypes.number.isRequired,\n};\n\nconst defaultProps = {};\n\nconst AdvancedFeaturesEnablement = (props) => {\n const { orderConfigIndex } = props;\n const globalReduxState = useSelector((state) => state);\n const runType = _.get(globalReduxState, 'runType');\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs', []);\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex, {});\n const advancedFeatures = _.get(currentOrderConfig, 'advancedFeatureConfigs', advancedFeatureConfigs());\n const {\n isMoveToCost, isReEntry, isReExecute, isTrailingStopLoss,\n } = advancedFeatures;\n const isWaitAndTrade = _.get(advancedFeatures, 'isWaitAndTrade', false);\n const dispatch = useDispatch();\n const transactionConfigs = _.get(currentOrderConfig, 'transactionConfigs', []);\n\n const noOfInstrumentsInGroup = _.get(globalReduxState, 'quantConfig.instrumentGroups.0', []).length;\n const maxInstrumentsInGroup = _.get(\n globalReduxState, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup\n );\n\n const isShowWaitAndTrade = runType === 'live'\n ? _.get(window, 'userPermissions.waitAndTrade.isEnabled', false)\n : _.get(window, 'userPermissions.waitAndTradeForBacktest.isEnabled', false);\n\n const getSanitizedOrderConfig = (orderConfig, config) => {\n let alteredOrderConfig = orderConfig;\n\n // Trailing stoploss reset for particular orderConfigIndex.\n if (isTrailingStopLoss && !config.isTrailingStopLoss) {\n alteredOrderConfig = trailingStopLossBasedReset(alteredOrderConfig);\n }\n\n if (isWaitAndTrade && !config.isWaitAndTrade) {\n alteredOrderConfig = waitAndTradeReset(alteredOrderConfig);\n }\n\n // (ReEntry or Reset) reset for particular orderConfigIndex.\n if ((isReEntry || isReExecute) && (!config.isReEntry && !config.isReExecute)) {\n alteredOrderConfig = reEntryAndReExecuteBasedReset(alteredOrderConfig);\n }\n\n return { ...alteredOrderConfig, advancedFeatureConfigs: config };\n };\n\n const onUpdateOrderConfigs = (alteredAdvancedFeatures) => {\n const newOrderConfigs = _.map(orderConfigs, (orderConfig, idx) => {\n if (orderConfigIndex === idx) {\n return getSanitizedOrderConfig(orderConfig, { ...advancedFeatures, ...alteredAdvancedFeatures });\n }\n\n return orderConfig;\n });\n\n const newCurrentOrderConfig = _.get(newOrderConfigs, orderConfigIndex, {});\n const newTransactionConfigs = _.get(newCurrentOrderConfig, 'transactionConfigs', []);\n\n dispatch(\n setOrderConfigs(\n onConfigureAutoAdjustment({\n orderConfigs: newOrderConfigs,\n orderConfigIndex,\n newTransactionConfigs,\n maxInstrumentsInGroup\n })\n )\n );\n };\n\n const isPermissionToEnableReEntry = _.get(window, 'userPermissions.reEntry.isEnabled', false);\n const isPermissionToEnableReExecute = _.get(window, 'userPermissions.reExecute.isEnabled', false);\n\n let reEntryAndReExecuteLabel = '';\n if (isPermissionToEnableReEntry) { reEntryAndReExecuteLabel = 'ReEntry'; }\n if (reEntryAndReExecuteLabel) { reEntryAndReExecuteLabel += ' / '; }\n if (isPermissionToEnableReExecute) { reEntryAndReExecuteLabel += 'ReExecute'; }\n const mtcContent = (\n
    \n If any leg SL hits, the opposite leg SL is moved to Cost.\n
    \n
    \n *Only when positions favour us will we move to SL.\n
    \n );\n\n const reEntryReExecuteInfoContent = (\n
    \n No re-entry / re-execute happens if the trailing stop loss or move to cost is already triggered.\n
    \n );\n\n const featureConfigs = [\n {\n label: 'Trailing Stop Loss',\n isPermissionToShow: _.get(window, 'userPermissions.trailingStopLoss.isEnabled', false),\n isChecked: isTrailingStopLoss,\n id: `isTrailingStopLoss${orderConfigIndex}`,\n updateValues: { isTrailingStopLoss: !isTrailingStopLoss },\n isdisabled: false\n },\n {\n label: 'Move to cost',\n isPermissionToShow: _.get(window, 'userPermissions.moveToCost.isEnabled', false),\n isChecked: isMoveToCost,\n id: `isMoveToCost${orderConfigIndex}`,\n updateValues: { isMoveToCost: !isMoveToCost },\n isdisabled: !isEligibleToMoveToCostTransactionConfigs(transactionConfigs),\n infoIcon: (\n \n \n info\n \n \n )\n },\n {\n label: reEntryAndReExecuteLabel,\n isPermissionToShow: isPermissionToEnableReEntry || isPermissionToEnableReExecute,\n isChecked: isReEntry || isReExecute,\n id: `isReEntry${orderConfigIndex}`,\n updateValues: { isReEntry: !isReEntry, isReExecute: !isReExecute },\n isdisabled: false,\n infoIcon: (\n \n \n info\n \n \n )\n },\n {\n label: 'Wait and Trade',\n isPermissionToShow: isShowWaitAndTrade,\n isChecked: isWaitAndTrade,\n id: `isWaitAndTrade${orderConfigIndex}`,\n updateValues: { isWaitAndTrade: !isWaitAndTrade },\n isdisabled: false,\n }\n ];\n\n const renderFeatureConfig = ({\n label, isPermissionToShow, isChecked, id, updateValues, isdisabled, infoIcon\n }) => {\n if (!isPermissionToShow) return null;\n\n return (\n
    \n
    \n {}}\n onChange={() => { onUpdateOrderConfigs(updateValues); }}\n checked={isChecked}\n />\n \n
    \n {infoIcon && <>{infoIcon}}\n
    \n );\n };\n\n if (_.isEmpty(featureConfigs)) return null;\n\n return (\n
    \n {_.map(featureConfigs, renderFeatureConfig)}\n
    \n );\n};\n\nAdvancedFeaturesEnablement.propTypes = propTypes;\nAdvancedFeaturesEnablement.defaultProps = defaultProps;\n\nexport default AdvancedFeaturesEnablement;\n","import _ from 'lodash';\nimport React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n transactionConfigPropTypes, outputSchemaPropTypes, instrumentGroupsPropTypes\n} from 'common/propTypes';\nimport { RUN_TYPES, SEGMENT_CONFIG } from 'common/constants/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { useSelector } from 'react-redux';\nimport { reactToastify } from 'common/utils/reactToastify';\nimport {\n transactionConfigToTransactionBuilderConfig,\n convertToTransactionConfig,\n checkIsFutureAndOption,\n getDuplicateConfigIds\n} from './configAdopter';\nimport {\n getEmptyTransactionBuilderConfig, getEmptyFutureConfig, STRIKE_KEYS\n} from '../configs';\nimport AddOptionBtn from './components/AddOptionBtn';\nimport TransactionBuilderForm from './components/TransactionBuilderForm/index';\nimport OptionStrategySelector from './components/OptionStrategySelector/index';\nimport OptionsExpiryCycle from './components/OptionsExpiryCycle/index';\nimport TableHeader from './components/TableHeader';\nimport StrikeBasedOnSelector from './components/StrikeBasedOnSelector';\nimport AdvancedFeaturesEnablement from './components/AdvancedFeaturesEnablement/index';\n\nconst propTypes = {\n transactionConfig: transactionConfigPropTypes.isRequired,\n onTransactionConfigChange: PropTypes.func.isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n onStrikeBasedOnChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n transactionConfigsValidator: PropTypes.shape({}),\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n transactionConfigIdx: PropTypes.number.isRequired,\n segment: PropTypes.string.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n isAdjustment: PropTypes.bool,\n customPropConfigs: PropTypes.arrayOf(PropTypes.shape({})),\n orderConfigIndex: PropTypes.number.isRequired\n};\nconst defaultProps = {\n isAdjustment: false,\n transactionConfigsValidator: {},\n customPropConfigs: []\n};\n\nconst NewTransactionBuilder = (props) => {\n const {\n transactionConfig, onTransactionConfigChange, strikeBasedOn, onStrikeBasedOnChange, outputSchema,\n transactionConfigsValidator, instrumentGroups, transactionConfigIdx, segment, segments,\n isAdjustment, customPropConfigs, orderConfigIndex\n } = props;\n\n const existingLegConfigs = _.get(transactionConfig, 'existingLegConfigs', []);\n const isInitialLoad = useRef(false);\n const { runType } = useSelector((state) => state);\n const isBacktest = runType === RUN_TYPES.historic;\n const isAdjustmentBasedWarningLeg = isAdjustment && !_.isEmpty(existingLegConfigs);\n const isAdjustmentBasedDisabledAddLegButton = isAdjustmentBasedWarningLeg && isBacktest;\n\n const [transactionBuilderConfigs, setTransactionBuilderConfigs] = useState(\n transactionConfigToTransactionBuilderConfig(transactionConfig, strikeBasedOn)\n );\n const { mode: { optionStrategy, optionSubStrategy }, mode } = transactionConfig;\n const { isFutureDisable, isEquityDisable } = checkIsFutureAndOption(transactionBuilderConfigs);\n const duplicateBuilderConfigIds = getDuplicateConfigIds(transactionBuilderConfigs);\n\n const handleStrikeBasedOn = (newStrikeBasedOn) => {\n if (STRIKE_KEYS.equityPrice === newStrikeBasedOn) return STRIKE_KEYS.strikeIndex;\n // for equity have to make as strikeIndex\n\n return newStrikeBasedOn;\n };\n\n useEffect(() => {\n const newTransactionBuilderConfig = transactionConfigToTransactionBuilderConfig(\n transactionConfig, handleStrikeBasedOn(strikeBasedOn)\n );\n\n if (_.isEqual(newTransactionBuilderConfig, transactionBuilderConfigs)) return;\n\n setTransactionBuilderConfigs(newTransactionBuilderConfig);\n }, [transactionConfig]);\n\n const updateTransactionConfig = (newTransactionBuilderConfigs, newStrikeBasedOn = strikeBasedOn) => {\n const newTransactionConfig = convertToTransactionConfig(\n newTransactionBuilderConfigs, transactionConfig, handleStrikeBasedOn(newStrikeBasedOn)\n );\n\n setTransactionBuilderConfigs(newTransactionBuilderConfigs);\n onTransactionConfigChange(newTransactionConfig);\n };\n\n const onTransactionBuilderConfigsChange = (newTransactionBuilderConfig, index) => {\n const newTransactionBuilderConfigs = transactionBuilderConfigs;\n\n newTransactionBuilderConfigs[index] = {\n ...newTransactionBuilderConfig, sortId: newTransactionBuilderConfig.sortId || index\n };\n\n updateTransactionConfig(newTransactionBuilderConfigs);\n };\n\n useEffect(() => {\n if (isInitialLoad.current) {\n updateTransactionConfig(_.map(\n transactionBuilderConfigs, (transactionBuilderConfig) => ({ ...transactionBuilderConfig, strike: 0 })\n ), strikeBasedOn);\n }\n\n isInitialLoad.current = true;\n }, [strikeBasedOn]);\n\n useEffect(() => {\n if (isAdjustmentBasedDisabledAddLegButton && !_.isEmpty(transactionBuilderConfigs)) {\n reactToastify('New legs are removed in adjustments. Only modify the existing legs.');\n updateTransactionConfig([], strikeBasedOn);\n }\n }, [runType]);\n\n const onStrategyUpdate = (newMode, newOptionConfig) => {\n onTransactionConfigChange({\n ...transactionConfig,\n mode: { ...mode, ...newMode },\n futureConfig: getEmptyFutureConfig(),\n optionConfigs: newOptionConfig\n });\n };\n\n const getSortId = () => (_.max(_.map(transactionBuilderConfigs, 'sortId')) + 1);\n\n const onAddOption = () => onTransactionBuilderConfigsChange(\n { ...getEmptyTransactionBuilderConfig(), sortId: getSortId() }, transactionBuilderConfigs.length\n );\n\n const onStrikeBasedOnUpdate = (newStrikeBasedOn) => { onStrikeBasedOnChange(newStrikeBasedOn); };\n\n const renderTransactionForm = (transactionBuilderConfig, tranIdx) => (\n onTransactionBuilderConfigsChange(newConfig, tranIdx)}\n onRemoveOption={() => {\n updateTransactionConfig(_.filter(transactionBuilderConfigs, (value, idx) => idx !== tranIdx));\n }}\n segments={segments}\n />\n );\n\n const isDisabled = (!_.isEmpty(segments) && !_.includes(segments, SEGMENT_CONFIG.option))\n || (transactionBuilderConfigs || []).length > 7;\n\n const isShowOptionDetails = _.isEmpty(segments) || _.includes(segments, SEGMENT_CONFIG.option);\n\n const renderOptionAndStrikes = () => {\n if (isAdjustment) return null;\n\n return (\n <>\n
    \n \n
    \n {/* Option Stock Mock Builder... Hided default Strategies.. */}\n\n {isShowOptionDetails && (\n
    \n \n \n
    \n )}\n {(!isAdjustment && !transactionConfigIdx)\n && }\n \n );\n };\n\n let warningMessage = 'You added the modification to the existing legs. ';\n warningMessage += 'If you want to enable \"add legs,\" remove \"modify legs\" from below. ';\n warningMessage += 'If you add both modified legs and open new legs, the new leg will be open ';\n warningMessage += 'at the same time.';\n\n return (\n
    \n {renderOptionAndStrikes()}\n
    \n \n \n {_.map(transactionBuilderConfigs, renderTransactionForm)}\n
    \n
    \n\n
    \n \n {isAdjustmentBasedWarningLeg && (\n \n \n info\n \n \n )}\n
    \n
    \n );\n};\n\nNewTransactionBuilder.propTypes = propTypes;\nNewTransactionBuilder.defaultProps = defaultProps;\n\nexport default NewTransactionBuilder;\n","import _ from 'lodash';\n// vendor imports\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\n\n// project import\nimport {\n instrumentGroupsPropTypes, outputSchemaPropTypes, transactionConfigPropTypes\n} from 'common/propTypes';\nimport { connect } from 'react-redux';\nimport { setOptionsExpiryCycle, setOptionStrikeCalculationBasedOn } from 'modules/QuantBuilder/actions';\nimport NewTransactionBuilder from './NewTransactionBuilder/index';\n\nconst propTypes = {\n transactionConfigs: PropTypes.arrayOf(transactionConfigPropTypes).isRequired,\n onTransactionConfigsChange: PropTypes.func.isRequired,\n transactionConfigsErrors: PropTypes.arrayOf(PropTypes.shape({})),\n strikeBasedOn: PropTypes.string.isRequired,\n onStrikeBasedOnChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n transactionConfigsValidator: PropTypes.shape({}),\n startDate: PropTypes.instanceOf(Date),\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n segment: PropTypes.string.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n onOptionsExpiryCycleChange: PropTypes.func.isRequired,\n optionsExpiryCycle: PropTypes.string.isRequired,\n customPropConfigs: PropTypes.arrayOf(PropTypes.shape({})),\n orderConfigIndex: PropTypes.number.isRequired,\n};\n\nconst defaultProps = {\n transactionConfigsErrors: [],\n transactionConfigsValidator: {},\n startDate: '',\n customPropConfigs: []\n};\n\nconst TransactionsBuilder = (props) => {\n const {\n onTransactionConfigsChange,\n transactionConfigs, transactionConfigsErrors,\n strikeBasedOn, onStrikeBasedOnChange, outputSchema,\n transactionConfigsValidator, instrumentGroups, segment, segments, optionsExpiryCycle,\n onOptionsExpiryCycleChange, startDate,\n customPropConfigs, orderConfigIndex\n } = props;\n\n const onTransactionConfigUpdate = (newTransactionConfig, transactionConfigIndex) => {\n const newTransactionConfigs = transactionConfigs;\n newTransactionConfigs[transactionConfigIndex] = newTransactionConfig;\n\n onTransactionConfigsChange(newTransactionConfigs);\n };\n\n if (_.isEmpty(transactionConfigs)) return null;\n\n const sanitizedOutputSchema = _.flattenDeep([outputSchema,\n _.chain(customPropConfigs).map(({ outputSchema: cpcOutputSchema }) => {\n try { return JSON.parse(cpcOutputSchema); } catch { return null; }\n }).compact().value()\n ]);\n\n const renderTransactionConfig = (transactionConfig, transactionConfigIdx) => {\n return (\n
    \n
    \n onTransactionConfigUpdate(newTransactionConfig, transactionConfigIdx)\n }\n isAdjustment={false}\n optionsExpiryCycle={optionsExpiryCycle}\n onOptionsExpiryCycleChange={onOptionsExpiryCycleChange}\n strikeBasedOn={strikeBasedOn}\n onStrikeBasedOnChange={onStrikeBasedOnChange}\n outputSchema={sanitizedOutputSchema}\n transactionConfigsValidator={transactionConfigsValidator}\n instrumentGroups={instrumentGroups}\n segment={segment}\n startDate={startDate}\n segments={segments}\n customPropConfigs={customPropConfigs}\n />\n
    \n
    \n );\n };\n\n return (\n
    \n
    \n settings_input_composite\n Transaction Details\n
    \n\n
    \n {_.map(transactionConfigs, renderTransactionConfig)}\n
    \n
    \n );\n};\n\nconst mapStatetoProps = (state) => {\n return {\n segment: _.get(state, 'segment'),\n transactionConfigsValidator: _.get(state, [\n 'quantConfigValidators', 'orderConfigsValidators', 'transactionConfigsValidator'\n ]),\n instrumentGroups: _.get(state, 'quantConfig.instrumentGroups'),\n optionsExpiryCycle: _.get(state, 'quantConfig.optionsExpiryCycle'),\n startDate: _.get(state, 'startDate'),\n outputSchema: _.get(state, 'outputSchema'),\n segments: _.get(state, 'segments', []),\n strikeBasedOn: _.get(state, 'quantConfig.optionStrikeCalculationBasedOn', 'strikeIndex'),\n customPropConfigs: _.get(state, 'quantConfig.customPropConfigs', [])\n };\n};\n\nconst mapDispatchToProp = (dispatch) => ({\n onOptionsExpiryCycleChange: (newOptionsExpiryCycle) => {\n dispatch(setOptionsExpiryCycle(newOptionsExpiryCycle));\n },\n onStrikeBasedOnChange: (newOptionStrikeCalculationBasedOn) => (\n dispatch(setOptionStrikeCalculationBasedOn(newOptionStrikeCalculationBasedOn))\n ),\n});\n\nTransactionsBuilder.propTypes = propTypes;\nTransactionsBuilder.defaultProps = defaultProps;\n\nexport default memo(connect(mapStatetoProps, mapDispatchToProp)(TransactionsBuilder));\n","import _ from 'lodash';\nimport React, { useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport TransactionsBuilder from 'modules/TransactionsBuilder';\nimport { onConfigureAutoAdjustment } from\n// eslint-disable-next-line max-len\n'modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/index';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\n// import { advancedFeatureConfigs } from 'modules/QuantBuilder/config/signalConfigs';\n\nconst propTypes = {\n config: PropTypes.shape({\n title: PropTypes.string,\n key: PropTypes.string,\n orderConfigIndex: PropTypes.number,\n validatorErrors: PropTypes.arrayOf(PropTypes.shape({}))\n }).isRequired,\n transactionConfigsValidator: PropTypes.shape({}),\n};\n\nconst defaultProps = {\n transactionConfigsValidator: {}\n};\n\nconst TransactionsBuilderWrapper = (props) => {\n const {\n config: { orderConfigIndex, validatorErrors },\n } = props;\n const globalReduxState = useSelector((state) => state);\n const dispatch = useDispatch();\n const orderConfigs = _.get(globalReduxState, 'quantConfig.orderConfigs');\n const isInitailLoad = useRef(true);\n\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex, {});\n const transactionConfigs = _.get(currentOrderConfig, 'transactionConfigs', []);\n const noOfInstrumentsInGroup = _.get(globalReduxState, 'quantConfig.instrumentGroups.0', []).length;\n const maxInstrumentsInGroup = _.get(\n globalReduxState, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup\n );\n\n const onComplete = (newTransactionConfigs) => {\n dispatch(setOrderConfigs(onConfigureAutoAdjustment({\n orderConfigs, orderConfigIndex, newTransactionConfigs, maxInstrumentsInGroup\n })));\n };\n\n useEffect(() => {\n if (!isInitailLoad.current) {\n dispatch(setOrderConfigs(onConfigureAutoAdjustment({\n orderConfigs, orderConfigIndex, newTransactionConfigs: transactionConfigs, maxInstrumentsInGroup\n })));\n } else { isInitailLoad.current = false; }\n }, [maxInstrumentsInGroup]);\n\n return (\n <>\n \n \n );\n};\n\nTransactionsBuilderWrapper.propTypes = propTypes;\nTransactionsBuilderWrapper.defaultProps = defaultProps;\n\nexport default TransactionsBuilderWrapper;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { signalConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes).isRequired,\n indexToRemove: PropTypes.number.isRequired,\n onRemoveSignalConfig: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst RemoveSignalConfig = ({ signalConfigs, indexToRemove, onRemoveSignalConfig }) => {\n const onRemoveConditionClick = () => {\n const updatedSignalConfigs = _.filter(\n signalConfigs, (signalConfig, signalConfigIndex) => signalConfigIndex !== indexToRemove,\n );\n\n if (indexToRemove === 0) {\n updatedSignalConfigs[indexToRemove] = {\n ...updatedSignalConfigs[indexToRemove],\n conditionOperator: ''\n };\n }\n\n onRemoveSignalConfig(updatedSignalConfigs);\n };\n\n return (\n \n delete_outline\n \n );\n};\n\nRemoveSignalConfig.propTypes = propTypes;\nRemoveSignalConfig.defaultProps = defaultProps;\n\nexport default RemoveSignalConfig;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport { CONDITION_OPERATORS } from 'modules/QuantBuilder/config';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { signalConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n signalConfig: signalConfigPropTypes.isRequired,\n onUpdateSignalConfig: PropTypes.func.isRequired,\n logicalOperatorValidator: PropTypes.shape({}).isRequired\n};\nconst defaultProps = {};\n\nconst ConditionOperator = (props) => {\n const { signalConfig, onUpdateSignalConfig, logicalOperatorValidator } = props;\n const { conditionOperator } = signalConfig;\n const { register, errors } = useFormContext();\n const [radioBtnName] = useState(_.uniqueId('conditionOperator-'));\n\n const renderConditionRadioBtns = _.map(CONDITION_OPERATORS, (operator, idx) => {\n return (\n
    \n onUpdateSignalConfig({ conditionOperator: event.target.value })}\n />\n \n {operator}\n \n
    \n );\n });\n\n return (\n
    \n\n
    \n {renderConditionRadioBtns}\n
    \n\n \n
    \n );\n};\n\nexport default ConditionOperator;\n\nConditionOperator.propTypes = propTypes;\nConditionOperator.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport {\n QUANT_SCHEMA_CATEGORIES, SEGMENT_CONFIG, SEGMENT_CATEGORY_IN_QUANT, RUN_TYPES, SEGMENT_SUPPORT_CONFIGS\n} from 'common/constants/index';\nimport {\n getEmptyEquityConfig, getEmptyFutureConfig, getEmptyOptionConfigs,\n getSegmentStrikeBasedOn, getStrikeBasedOn, TRANSACTION_MODES\n} from 'modules/TransactionsBuilder/configs';\nimport moment from 'moment';\n\nexport const START_DATE = 'startDate';\nexport const END_DATE = 'endDate';\nexport const MAX_YEARS_ALLOWED = 40;\n\nexport const sanitizeOutputSchema = (outputSchema, segment) => {\n switch (segment) {\n case SEGMENT_CONFIG.equity:\n const filterOutputSchemaForEquity = _.filter(outputSchema,\n ({ category }) => category !== QUANT_SCHEMA_CATEGORIES.FUTURE_PRICE);\n\n return filterOutputSchemaForEquity;\n\n case SEGMENT_CONFIG.future:\n const filterOutputSchemaForFuture = _.filter(outputSchema,\n ({ category }) => category !== QUANT_SCHEMA_CATEGORIES.EQUITY_PRICE);\n\n return filterOutputSchemaForFuture;\n\n default:\n return outputSchema;\n }\n};\n\nconst quantIndicatorAndSignal = { indicator: 'indicator', signal: 'signal' };\n\nconst getValueString = (isConstruct, value, resultArray = [], changeName) => {\n if (!isConstruct) { return value; }\n\n let returnString = '';\n\n _.each(resultArray, (result, idx) => {\n returnString += idx === 1 ? changeName : result;\n if (idx !== resultArray.length - 1) returnString += '.';\n });\n\n return returnString;\n};\n\nconst getValue = (value, changeName, comparableName, configType) => {\n if (_.isArray(value) || _.isObject(value)) return value;\n\n const result = value.split(/[.]/);\n\n const isChange = _.size(result) === 2 || _.includes(value, 'volume');\n\n if (_.includes(value, comparableName)\n && ((comparableName === SEGMENT_CATEGORY_IN_QUANT.month1Price)\n || (comparableName === SEGMENT_CATEGORY_IN_QUANT.equity))) {\n // new for only signal last traded price --- below if condition...\n\n if (configType === quantIndicatorAndSignal.signal) {\n return `${_.head(result)}.${changeName}.close`;\n }\n\n if (isChange) return getValueString(isChange, value, result, changeName);\n\n const returnChange = configType === quantIndicatorAndSignal.indicator\n ? `${_.head(result)}.${changeName}` : `${_.head(result)}.${changeName}.volume`;\n\n reactToastify('No Matching found, Field has been Changed Please Check');\n\n return returnChange;\n }\n return value;\n};\n\nexport const updatedPipeConfigs = (pipeConfigs, changeName, comparableName) => {\n return _.map(pipeConfigs, (pipeConfig) => {\n const { config } = pipeConfig;\n const { valuePaths } = config;\n\n if (valuePaths) {\n const updatedValuePaths = _.map(valuePaths, (valuePath) => {\n return getValue(valuePath, changeName, comparableName, quantIndicatorAndSignal.indicator);\n });\n return { ...pipeConfig, config: { ...config, valuePaths: updatedValuePaths } };\n }\n return pipeConfig;\n });\n};\n\nconst updateSignalConfigs = (signalConfigs, changeName, comparableName) => {\n return _.map(signalConfigs, (signalConfig) => {\n const { rightOperand, leftOperand } = signalConfig;\n return {\n ...signalConfig,\n leftOperand: getValue(leftOperand, changeName, comparableName, quantIndicatorAndSignal.signal),\n rightOperand: getValue(rightOperand, changeName, comparableName, quantIndicatorAndSignal.signal)\n };\n });\n};\n\nexport const isSegmentBasedConfig = (segments, transaction) => {\n const isConstant = _.size(segments) === 3;\n\n const isMultipleSegment = (\n _.size(segments) === 2\n && (_.includes(segments, SEGMENT_CONFIG.equity) && _.includes(segments, SEGMENT_CONFIG.option))\n && _.includes([\n TRANSACTION_MODES.optionAndEquity, TRANSACTION_MODES.optionConfigs, TRANSACTION_MODES.equityConfig\n ], transaction))\n || (_.size(segments) === 2\n && (_.includes(segments, SEGMENT_CONFIG.future) && _.includes(segments, SEGMENT_CONFIG.option))\n && _.includes([\n TRANSACTION_MODES.futureAndOption, TRANSACTION_MODES.optionConfigs, TRANSACTION_MODES.futureConfig\n ], transaction))\n || (_.size(segments) === 2\n && (_.includes(segments, SEGMENT_CONFIG.equity) && _.includes(segments, SEGMENT_CONFIG.future))\n && _.includes([\n TRANSACTION_MODES.futureConfig, TRANSACTION_MODES.futureAndEquity, TRANSACTION_MODES.equityConfig\n ], transaction));\n\n const isSingleSegment = (_.size(segments) === 1\n && _.head(segments) === SEGMENT_CONFIG.future && transaction === TRANSACTION_MODES.futureConfig)\n || (_.size(segments) === 1\n && _.head(segments) === SEGMENT_CONFIG.equity && transaction === TRANSACTION_MODES.equityConfig)\n || (_.size(segments) === 1\n && _.head(segments) === SEGMENT_CONFIG.option && transaction === TRANSACTION_MODES.optionConfigs);\n\n return isConstant || isMultipleSegment || isSingleSegment || _.isEmpty(segments);\n};\n\nconst updateTransactionConfig = (transactionConfigs, segments) => {\n return _.map(transactionConfigs, (transactionConfig) => {\n const { mode } = transactionConfig;\n const transaction = _.get(mode, 'transaction', '');\n\n if (isSegmentBasedConfig(segments, transaction)) return transactionConfig;\n\n const { isSupportEquity, isSupportFuture, isSupportOption } = SEGMENT_SUPPORT_CONFIGS(segments);\n let newTransctionMode = TRANSACTION_MODES.optionConfigs;\n\n if (isSupportEquity && !isSupportFuture && !isSupportOption) {\n newTransctionMode = TRANSACTION_MODES.equityConfig;\n }\n if (!isSupportEquity && isSupportFuture && !isSupportOption) {\n newTransctionMode = TRANSACTION_MODES.futureConfig;\n }\n\n // If clone the equity config.. have to prefill .. same as future..\n // this is complete reset config... based on segment...\n\n reactToastify('Transaction config will be changed, Please Verify', TOASTIFY_TYPES.WARNING);\n\n return {\n ...transactionConfig,\n mode: { ...mode, transaction: newTransctionMode },\n futureConfig: getEmptyFutureConfig(),\n optionConfigs: [].concat(getEmptyOptionConfigs()),\n equityConfig: getEmptyEquityConfig()\n };\n });\n};\n\nconst updateOrderConfigs = (orderConfigs, changeName, comparableName, segments) => {\n return _.map(orderConfigs, (orderConfig) => {\n const { entrySignalConfigs, exitSignalConfigs, transactionConfigs } = orderConfig;\n const adjustmentSignalConfigs = _.get(orderConfig, 'adjustmentSignalConfigs', []);\n const adjustmentActionConfigs = _.get(orderConfig, 'adjustmentActionConfigs', []);\n\n return {\n ...orderConfig,\n transactionConfigs: updateTransactionConfig(transactionConfigs, segments),\n entrySignalConfigs: updateSignalConfigs(entrySignalConfigs, changeName, comparableName),\n exitSignalConfigs: updateSignalConfigs(exitSignalConfigs, changeName, comparableName),\n adjustmentActionConfigs: _.map(adjustmentActionConfigs,\n (adjustmentActionConfig) => {\n return updateTransactionConfig(adjustmentActionConfig, segments);\n }),\n adjustmentSignalConfigs: _.map(adjustmentSignalConfigs,\n (adjustmentSignalConfig) => {\n return updateSignalConfigs(adjustmentSignalConfig, changeName, comparableName);\n })\n };\n });\n};\n\nexport const onUpdateQuantConfigBasedOnSegmentChange = (quantConfig, segment, segments) => {\n const { equityPrice: { value: equityValue }, strikeIndex: { value: strikeValue } } = getStrikeBasedOn();\n const { orderConfigs, pipeConfigs, optionStrikeCalculationBasedOn } = quantConfig;\n\n switch (segment) {\n case SEGMENT_CONFIG.equity:\n const updatedQuantConfigForEquity = {\n ...quantConfig,\n optionStrikeCalculationBasedOn: _.includes(\n _.map(getSegmentStrikeBasedOn(segment, getStrikeBasedOn()), ({ value }) => { return value; }),\n optionStrikeCalculationBasedOn\n ) ? optionStrikeCalculationBasedOn : equityValue,\n pipeConfigs: updatedPipeConfigs(\n pipeConfigs, SEGMENT_CATEGORY_IN_QUANT.equity, SEGMENT_CATEGORY_IN_QUANT.month1Price\n ),\n orderConfigs: updateOrderConfigs(\n orderConfigs, SEGMENT_CATEGORY_IN_QUANT.equity, SEGMENT_CATEGORY_IN_QUANT.month1Price,\n segments\n )\n };\n\n return updatedQuantConfigForEquity;\n\n case SEGMENT_CONFIG.future:\n const updatedQuantConfigForFuture = {\n ...quantConfig,\n optionStrikeCalculationBasedOn: _.includes(\n _.map(getSegmentStrikeBasedOn(segment, getStrikeBasedOn()), ({ value }) => { return value; }),\n optionStrikeCalculationBasedOn\n ) ? optionStrikeCalculationBasedOn : strikeValue,\n pipeConfigs: updatedPipeConfigs(\n pipeConfigs, SEGMENT_CATEGORY_IN_QUANT.month1Price, SEGMENT_CATEGORY_IN_QUANT.equity\n ),\n orderConfigs: updateOrderConfigs(\n orderConfigs, SEGMENT_CATEGORY_IN_QUANT.month1Price, SEGMENT_CATEGORY_IN_QUANT.equity,\n segments\n )\n };\n\n return updatedQuantConfigForFuture;\n\n default: return quantConfig;\n }\n};\n\nexport const isDisabledLive = (planActiveTill) => {\n const { isInInitialOfferPeriod, isAdmin } = window;\n const isPaidActiveUser = planActiveTill && moment().isBefore(planActiveTill);\n if (isInInitialOfferPeriod || isPaidActiveUser || isAdmin) return false;\n\n return true;\n};\n\nexport const getDefaultOrderType = (propsRunType, planActiveTill) => {\n if (isDisabledLive(planActiveTill)) return RUN_TYPES.historic;\n\n return propsRunType;\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\n\nimport { getOperators } from 'common/utils/signalConfigUtils';\nimport TimeSelector from 'common/components/TimeSelector';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { getTimeValidators } from 'common/utils/validators';\nimport { rightOperandPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\n\nconst propTypes = {\n leftOperand: PropTypes.string.isRequired,\n operator: PropTypes.string.isRequired,\n rightOperand: rightOperandPropTypes.isRequired,\n onRightOperandChange: PropTypes.func.isRequired,\n onOperatorChange: PropTypes.func.isRequired,\n operatorValidator: PropTypes.shape({}).isRequired,\n isHistoricRun: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {};\n\nconst getDropdownOptions = (leftOperand) => _.map(getOperators(leftOperand),\n (value, optionIndex) => (\n \n ));\n\nconst TimeOfDay = (props) => {\n const {\n onRightOperandChange,\n operator,\n leftOperand,\n rightOperand,\n onOperatorChange,\n operatorValidator,\n isHistoricRun\n } = props;\n const [operatorFieldName] = useState(_.uniqueId('operator-'));\n const [timePickerName] = useState(_.uniqueId('timePicker-'));\n const { errors, control } = useFormContext();\n\n const onChangeOperator = (newOperator, onChange) => {\n onOperatorChange(newOperator);\n onChange(newOperator);\n };\n\n const onTimeChange = (newTime, onChange) => {\n onRightOperandChange(newTime);\n onChange(newTime);\n };\n // TODO: 'is-invalid' is not setting a red border around the input field.\n const operandStyle = classNames('form-control', errors[timePickerName] ? 'is-invalid' : '');\n\n return (\n <>\n
    \n (\n onChangeOperator(event.target.value, onChange)}\n >\n {getDropdownOptions(leftOperand)}\n \n )}\n control={control}\n defaultValue={operator}\n name={operatorFieldName}\n rules={operatorValidator}\n />\n \n
    \n\n
    \n (\n {\n onTimeChange(newTime, onChange);\n }}\n selectedTime={rightOperand}\n className={operandStyle}\n format=\"HH:mm:ss\"\n />\n )}\n control={control}\n defaultValue={rightOperand}\n name={timePickerName}\n rules={{\n required: { value: true, message: 'Please select a time between 09:15 to 15:28' },\n ...getTimeValidators()\n }}\n />\n \n \n 24 Hour time format\n {\n isHistoricRun ? ', seconds will be ignored in backtests' : ''\n }\n \n
    \n \n );\n};\n\nexport default TimeOfDay;\n\nTimeOfDay.propTypes = propTypes;\nTimeOfDay.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport classNames from 'classnames';\n\nimport { signalConditionOptions } from 'modules/QuantBuilder/config/signalConfigs';\nimport { getDayOfWeekValidation } from 'common/utils/validators';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { getLabeledHashFromArray } from 'common/utils/displayNames';\nimport { rightOperandPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n rightOperand: rightOperandPropTypes.isRequired,\n onRightOperandChange: PropTypes.func.isRequired,\n onOperatorChange: PropTypes.func.isRequired,\n operator: PropTypes.string.isRequired,\n operatorValidator: PropTypes.shape({}).isRequired\n};\nconst defaultProps = {};\n\nconst DayOfWeek = (props) => {\n const {\n operator, rightOperand, onRightOperandChange, onOperatorChange, operatorValidator\n } = props;\n const { dayOfWeek: { rightOperandOptions, operatorOptions } } = signalConditionOptions();\n const { errors, control } = useFormContext();\n const [daySelectorName] = useState(_.uniqueId('daySelector-'));\n const [operatorFieldName] = useState(_.uniqueId('operator-'));\n const rightOperands = getLabeledHashFromArray(rightOperandOptions);\n const selectedRightOperand = getLabeledHashFromArray(rightOperand);\n const operatorStyle = classNames(\n 'custom-select custom-select-sm',\n errors[operatorFieldName] ? 'is-invalid' : ''\n );\n const daySelectorInputStyle = classNames(errors[daySelectorName] ? 'is-invalid' : '');\n\n const onDayChange = (newRightOperand, onChange) => {\n const selectedDays = _.map(newRightOperand, 'id');\n\n onRightOperandChange(selectedDays);\n onChange(selectedDays);\n };\n\n const operatorsDropDownOptions = _.map(operatorOptions, (option, idx) => (\n \n ));\n\n return (\n <>\n
    \n (\n {\n onOperatorChange(event.target.value);\n onChange(event.target.value);\n }}\n >\n
    \n\n
    \n (\n onDayChange(newRightOperand, onChange)}\n />\n )}\n control={control}\n defaultValue={rightOperand}\n name={daySelectorName}\n rules={getDayOfWeekValidation()}\n />\n \n
    \n \n );\n};\n\nexport default DayOfWeek;\n\nDayOfWeek.propTypes = propTypes;\nDayOfWeek.defaultProps = defaultProps;\n","import TimeOfDay from './TimeOfDay';\nimport DayOfWeek from './DayOfWeek';\n\nconst RIGHT_OPERAND = {\n timeOfDay: TimeOfDay,\n dayOfWeek: DayOfWeek\n};\n\nexport default RIGHT_OPERAND;\n","import _ from 'lodash';\nimport { QUANT_SCHEMA_CATEGORIES } from 'common/constants/index';\n\nexport const sanitizeSignalConfigSchema = (outputSchema, isAdjustmentSignal, typeOfOperand) => {\n const { isAdmin } = window;\n\n let categories = [QUANT_SCHEMA_CATEGORIES.INDICATOR, QUANT_SCHEMA_CATEGORIES.CUSTOM_PROP];\n\n if (isAdmin) categories = [...categories, QUANT_SCHEMA_CATEGORIES.COMBINED_PREMIUM];\n if (isAdjustmentSignal && typeOfOperand === 'leftOperand') {\n categories = [\n ...categories, QUANT_SCHEMA_CATEGORIES.INDIVIDUALSTOP, QUANT_SCHEMA_CATEGORIES.STRATEGY_STOP\n ];\n }\n\n return _.filter(\n outputSchema, ({ name, category }) => {\n if (_.includes(categories, category)) return true;\n const nameSplit = name.split('.');\n\n // mainly for last traded price both equity and month1price...\n if (_.includes([QUANT_SCHEMA_CATEGORIES.FUTURE_PRICE, QUANT_SCHEMA_CATEGORIES.EQUITY_PRICE], category)\n && (_.includes(nameSplit, 'close'))) {\n return true;\n }\n\n return false;\n }\n );\n};\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { Form } from 'react-bootstrap';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { outputSchemaPropTypes, rightOperandPropTypes } from 'common/propTypes';\nimport {\n getSelectedOperandLabelForSignal,\n removeTagsFromString\n} from 'common/utils/displayNames';\nimport { getOperators, getRightOperands } from 'common/utils/signalConfigUtils';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sanitizeOutputSchema } from 'ui/run/RunForm/config';\nimport RIGHT_OPERAND from './components';\nimport { sanitizeSignalConfigSchema } from './helper';\n\nconst propTypes = {\n leftOperand: PropTypes.string.isRequired,\n operator: PropTypes.string.isRequired,\n rightOperand: rightOperandPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n onRightOperandChange: PropTypes.func.isRequired,\n onOperatorChange: PropTypes.func.isRequired,\n signalValidator: PropTypes.shape({}).isRequired,\n isHistoricRun: PropTypes.bool.isRequired,\n segment: PropTypes.string.isRequired,\n isAdjustmentSignal: PropTypes.bool\n};\n\nconst defaultProps = {\n isAdjustmentSignal: false\n};\n\nconst OperatorAndRightOperand = (props) => {\n const {\n onRightOperandChange,\n operator,\n rightOperand,\n onOperatorChange,\n outputSchema,\n signalValidator,\n leftOperand,\n isHistoricRun,\n segment,\n isAdjustmentSignal\n } = props;\n const CustomRightOperand = _.get(RIGHT_OPERAND, [leftOperand], null);\n const { errors, control, setValue } = useFormContext();\n const [rightOperandTypeHeadName] = useState(_.uniqueId('typeHead-'));\n const [operatorFieldName] = useState(_.uniqueId('operator-'));\n const operatorValidator = _.get(signalValidator, 'operator', {});\n const instrumentOutputSchema = sanitizeSignalConfigSchema(\n sanitizeOutputSchema(outputSchema, segment), isAdjustmentSignal, 'rightOperand'\n );\n\n useEffect(() => {\n setValue(rightOperandTypeHeadName, rightOperand);\n setValue(operatorFieldName, operator);\n }, [leftOperand]);\n\n const onCompleteRightOperand = (newRightOperand) => {\n onRightOperandChange(newRightOperand);\n };\n\n const onSelectRightOperand = (selectedItem, onChange) => {\n if (_.isEmpty(selectedItem)) return;\n\n const {\n id, label, customOption,\n } = _.first(selectedItem);\n if (!customOption) {\n onCompleteRightOperand(id);\n onChange(selectedItem);\n return;\n }\n\n if (!label) return;\n\n if (!_.isNaN(parseFloat(label))) {\n onCompleteRightOperand(label);\n onChange(selectedItem);\n return;\n }\n\n onChange(selectedItem);\n };\n\n const getDropdownOptions = (options) => _.map(options, (option, optionIndex) => {\n const optionValue = _.get(option, 'value', option);\n const label = _.get(option, 'label', option);\n\n return ;\n });\n\n const renderOperator = () => {\n const operatorStyle = `custom-select custom-select-sm ${errors[operatorFieldName] ? 'is-invalid' : ''}`;\n const dropDowns = getDropdownOptions(getOperators(leftOperand, instrumentOutputSchema));\n\n return (\n
    \n (\n {\n onOperatorChange(event.target.value);\n onChange(event.target.value);\n }}\n >\n {dropDowns}\n \n )}\n control={control}\n defaultValue={operator}\n name={operatorFieldName}\n rules={operatorValidator}\n />\n \n
    \n );\n };\n\n const renderRightOperand = () => {\n const rightOperands = getRightOperands(leftOperand, instrumentOutputSchema);\n const selectedOperand = getSelectedOperandLabelForSignal(\n outputSchema, leftOperand, rightOperand\n );\n\n const inputStyle = classNames({ 'is-invalid': errors[rightOperandTypeHeadName] });\n const rightOperandValidator = _.get(signalValidator, 'rightOperand');\n const onBlur = (newValue, onChange) => {\n onSelectRightOperand(\n [{ customOption: true, label: newValue, id: newValue }],\n onChange\n );\n };\n\n return (\n
    \n {\n const renderTypeHead = (\n onBlur(event.target.value, onChange)}\n renderMenuItemChildren={(option) => {\n return ReactHtmlParser(option.labelHtml || option.label);\n }}\n selected={removeTagsFromString(selectedOperand)}\n onChange={(newRightOperand) => {\n if (!_.isEmpty(newRightOperand)) { ref.current.blur(); }\n onSelectRightOperand(newRightOperand, onChange);\n }}\n />\n );\n return renderTypeHead;\n }}\n control={control}\n defaultValue={selectedOperand}\n name={rightOperandTypeHeadName}\n rules={rightOperandValidator}\n />\n\n \n
    \n );\n };\n\n if (CustomRightOperand) {\n return (\n onOperatorChange(newOperator)}\n onRightOperandChange={(newRightOperand) => onCompleteRightOperand(newRightOperand)}\n isHistoricRun={isHistoricRun}\n />\n );\n }\n\n return (\n <>\n {renderOperator()}\n {renderRightOperand()}\n \n );\n};\n\nexport default OperatorAndRightOperand;\n\nOperatorAndRightOperand.propTypes = propTypes;\nOperatorAndRightOperand.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { getLeftOperands } from 'common/utils/signalConfigUtils';\nimport { outputSchemaPropTypes } from 'common/propTypes';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport {\n getSelectedOperandLabelForSignal,\n removeTagsFromString\n} from 'common/utils/displayNames';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sanitizeOutputSchema } from 'ui/run/RunForm/config';\nimport { sanitizeSignalConfigSchema } from './OperatorAndRightOperand/helper';\n\nconst propTypes = {\n isClonedQuant: PropTypes.bool.isRequired,\n leftOperand: PropTypes.string.isRequired,\n leftOperandValidator: PropTypes.shape({}).isRequired,\n onUpdateSignalConfig: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n signalConfigField: PropTypes.string.isRequired,\n segment: PropTypes.string.isRequired,\n isAdjustmentSignal: PropTypes.bool\n};\nconst defaultProps = {\n isAdjustmentSignal: false\n};\n\nconst LeftOperand = (props) => {\n const {\n isClonedQuant,\n leftOperand,\n leftOperandValidator,\n onUpdateSignalConfig,\n outputSchema,\n signalConfigField,\n segment,\n isAdjustmentSignal\n } = props;\n const [leftOperandName] = useState(_.uniqueId('leftOperand-'));\n const { errors, control } = useFormContext();\n const instrumentOutputSchema = sanitizeSignalConfigSchema(\n sanitizeOutputSchema(outputSchema, segment), isAdjustmentSignal, 'leftOperand'\n );\n\n const onLeftOperandChange = (newLeftOperand, onChange) => {\n if (_.isEmpty(newLeftOperand)) return;\n\n const { id } = _.first(newLeftOperand);\n\n onUpdateSignalConfig({\n leftOperand: id,\n operator: '',\n rightOperand: ''\n });\n onChange(newLeftOperand);\n };\n\n const leftOperandsOptions = getLeftOperands(\n leftOperand,\n signalConfigField,\n instrumentOutputSchema,\n isClonedQuant\n );\n\n const selectedOperand = getSelectedOperandLabelForSignal(instrumentOutputSchema, leftOperand);\n const operandStyle = classNames(\n 'custom-rbt custom-form-control',\n errors[leftOperandName] ? 'is-invalid' : ''\n );\n\n return (\n
    \n (\n {\n return ReactHtmlParser(option.labelHtml || option.label);\n }}\n onChange={(value) => {\n if (!_.isEmpty(value)) { ref.current.blur(); }\n // when user click it will automatically focus remove\n\n onLeftOperandChange(value, onChange);\n }}\n />\n )}\n control={control}\n defaultValue={selectedOperand}\n name={leftOperandName}\n rules={leftOperandValidator}\n />\n \n
    \n );\n};\n\nLeftOperand.propTypes = propTypes;\nLeftOperand.defaultProps = defaultProps;\nexport default LeftOperand;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n signalConfigPropTypes, outputSchemaPropTypes\n} from 'common/propTypes';\nimport ConditionOperator from './ConditionOperator';\nimport OperatorAndRightOperand from './OperatorAndRightOperand';\nimport LeftOperand from './LeftOperand';\n\nconst propTypes = {\n isClonedQuant: PropTypes.bool.isRequired,\n shouldShowConditionOperator: PropTypes.bool.isRequired,\n signalConfig: signalConfigPropTypes.isRequired,\n signalValidator: PropTypes.shape({\n conditionOperator: PropTypes.shape({}),\n }),\n outputSchema: outputSchemaPropTypes.isRequired,\n onSignalConfigChange: PropTypes.func.isRequired,\n signalConfigField: PropTypes.string.isRequired,\n isHistoricRun: PropTypes.bool.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string),\n segment: PropTypes.string.isRequired,\n isAdjustmentSignal: PropTypes.bool\n};\n\nconst defaultProps = {\n signalValidator: {},\n segments: [],\n isAdjustmentSignal: false\n};\n\nconst SignalConfigBuilder = (props) => {\n const {\n isClonedQuant,\n shouldShowConditionOperator,\n signalConfig,\n signalValidator,\n outputSchema,\n onSignalConfigChange,\n signalConfigField,\n isHistoricRun,\n segments,\n segment,\n isAdjustmentSignal\n } = props;\n\n const { leftOperand, operator, rightOperand } = signalConfig;\n\n const onUpdateSignalConfig = (partialNewConfig) => {\n onSignalConfigChange({\n ...signalConfig,\n ...partialNewConfig\n });\n };\n\n return (\n
    \n {shouldShowConditionOperator && (\n \n )}\n
    \n
    \n \n
    \n\n onUpdateSignalConfig({ operator: newOperator })}\n onRightOperandChange={(newRightOperand) => onUpdateSignalConfig({\n rightOperand: newRightOperand\n })}\n isHistoricRun={isHistoricRun}\n segments={segments}\n segment={segment}\n isAdjustmentSignal={isAdjustmentSignal}\n />\n
    \n
    \n );\n};\n\nexport default SignalConfigBuilder;\n\nSignalConfigBuilder.propTypes = propTypes;\nSignalConfigBuilder.defaultProps = defaultProps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getEmptySignalConfig } from 'modules/QuantBuilder/config';\nimport { signalConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes).isRequired,\n onAddSignalConfig: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst AddSignalConfig = ({ signalConfigs, onAddSignalConfig }) => (\n onAddSignalConfig(signalConfigs.concat(getEmptySignalConfig()))}\n >\n Add Condition\n \n);\n\nAddSignalConfig.propTypes = propTypes;\nAddSignalConfig.defaultProps = defaultProps;\n\nexport default AddSignalConfig;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { signalConfigPropTypes, outputSchemaPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport RemoveSignalConfig from './components/RemoveSignalConfig';\nimport SignalConfigBuilder from './components/SignalConfigBuilder';\nimport AddSignalConfig from './components/AddSignalConfig';\n\nconst propTypes = {\n isClonedQuant: PropTypes.bool.isRequired,\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes).isRequired,\n onSignalConfigsChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n signalConfigField: PropTypes.string.isRequired,\n signalValidator: PropTypes.shape({}).isRequired,\n isHistoricRun: PropTypes.bool.isRequired,\n segment: PropTypes.string.isRequired,\n isAdjustmentSignal: PropTypes.bool\n};\nconst defaultProps = {\n isAdjustmentSignal: false\n};\n\nconst SignalConfigsBuilder = (props) => {\n const {\n isClonedQuant,\n signalConfigs,\n onSignalConfigsChange,\n outputSchema,\n signalConfigField,\n signalValidator,\n isHistoricRun,\n segment,\n isAdjustmentSignal\n } = props;\n const hasMoreThanOneSignalConfig = signalConfigs.length > 1;\n\n const onSignalConfigChange = (signalConfigIndex, newSignalConfig) => {\n const newSignalConfigs = _.cloneDeep(signalConfigs);\n\n newSignalConfigs[signalConfigIndex] = newSignalConfig;\n onSignalConfigsChange(newSignalConfigs);\n };\n\n const renderSignalConfigBuilder = (signalConfig, signalConfigIndex) => {\n const signalConditionClassName = classNames('signal-condition', {\n 'pr-9': hasMoreThanOneSignalConfig\n });\n\n return (\n
    \n onSignalConfigChange(signalConfigIndex, newSignalConfig)}\n />\n {hasMoreThanOneSignalConfig && (\n \n )}\n
    \n );\n };\n\n return (\n
    \n {_.map(signalConfigs, renderSignalConfigBuilder)}\n \n
    \n );\n};\n\nSignalConfigsBuilder.propTypes = propTypes;\nSignalConfigsBuilder.defaultProps = defaultProps;\nexport default SignalConfigsBuilder;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useForm, FormProvider } from 'react-hook-form';\n\nimport Modal from 'common/components/ModalComponent';\nimport { getEmptySignalConfig } from 'modules/QuantBuilder/config';\nimport {\n outputSchemaPropTypes, orderConfigsPropTypes, signalConfigPropTypes\n} from 'common/propTypes';\nimport SignalConfigsBuilder from 'modules/SignalConfigsBuilder';\nimport { RUN_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n isClonedQuant: PropTypes.bool.isRequired,\n config: PropTypes.shape({\n title: PropTypes.string,\n orderConfigIndex: PropTypes.number,\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n signalConfigField: PropTypes.string,\n }).isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n runType: PropTypes.string.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n orderConfigsValidators: PropTypes.shape({}),\n segment: PropTypes.string.isRequired,\n onUpdateSignalConfig: PropTypes.func.isRequired,\n isAdjustmentSignal: PropTypes.bool,\n customPropConfigs: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nconst defaultProps = {\n orderConfigsValidators: {},\n isAdjustmentSignal: false,\n customPropConfigs: []\n};\n\nconst SignalConfigsBuilderWrapper = (props) => {\n const {\n config: {\n signalConfigs, signalConfigField, title, orderConfigIndex\n },\n isClonedQuant,\n orderConfigs,\n outputSchema,\n orderConfigsValidators,\n runType,\n segment,\n onUpdateSignalConfig,\n isAdjustmentSignal,\n customPropConfigs\n } = props;\n\n const isHistoricRun = runType === RUN_TYPES.historic;\n\n const methods = useForm();\n const [shouldRenderModal, setShouldRenderModal] = useState(false);\n const initialSignalConfigs = _.isEmpty(signalConfigs)\n ? getEmptySignalConfig()\n : _.cloneDeep(signalConfigs);\n\n const [stateSignalConfigs, setStateSignalConfigs] = useState(initialSignalConfigs);\n const signalValidator = _.get(orderConfigsValidators, signalConfigField, {});\n\n useEffect(() => {\n setStateSignalConfigs(initialSignalConfigs);\n }, [signalConfigs]); // Added useEffect.. because.. In indicator there is an suggestion option\n // when the suggestion indicator added.. entry when is also added, but here we set as props in state..\n // so update the state while signalConfigs changes\n\n const onCancel = () => {\n setStateSignalConfigs(initialSignalConfigs);\n setShouldRenderModal(!shouldRenderModal);\n };\n const onSignalSave = () => {\n const newOrderConfigs = _.cloneDeep(orderConfigs);\n setShouldRenderModal(!shouldRenderModal);\n\n const updateConfig = {\n newOrderConfigs, orderConfigIndex, signalConfigField, stateSignalConfigs\n };\n\n onUpdateSignalConfig(updateConfig);\n };\n\n const onDelete = () => {\n const newOrderConfigs = _.cloneDeep(orderConfigs);\n const updateConfig = {\n newOrderConfigs, orderConfigIndex, signalConfigField, stateSignalConfigs: []\n };\n\n onUpdateSignalConfig(updateConfig);\n\n setShouldRenderModal(!shouldRenderModal);\n };\n\n const sanitizedOutputSchema = _.flattenDeep([outputSchema,\n _.chain(customPropConfigs).map(({ outputSchema: cpcOutputSchema }) => {\n try { return JSON.parse(cpcOutputSchema); } catch {\n return null;\n }\n }).compact().value()\n ]);\n\n const modalSaveButtonProps = {\n 'data-track-category': 'Operands',\n 'data-track-action': `Left Operand - ${_.get(_.head(stateSignalConfigs), 'leftOperand', '')}`,\n 'data-track-label': `Right Operand - ${_.get(_.head(stateSignalConfigs), 'rightOperand', '')}`\n };\n\n return (\n <>\n setShouldRenderModal(!shouldRenderModal)}\n >\n edit\n Edit\n \n {\n shouldRenderModal\n && (\n onDelete()}\n cancelBtnTitle=\"Delete\"\n size=\"lg\"\n btnClassName=\"track\"\n modalSaveButtonProps={modalSaveButtonProps}\n shouldConfirmClose={() => !_.isEqual(stateSignalConfigs, initialSignalConfigs)}\n >\n
    \n \n setStateSignalConfigs(newSignalConfigs)}\n />\n \n
    \n \n )\n }\n \n );\n};\n\nSignalConfigsBuilderWrapper.propTypes = propTypes;\nSignalConfigsBuilderWrapper.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n isClonedQuant: _.get(state, 'isClonedQuant'),\n runType: _.get(state, 'runType'),\n outputSchema: _.get(state, 'outputSchema'),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n orderConfigsValidators: _.get(state, ['quantConfigValidators', 'orderConfigsValidators']),\n segment: _.get(state, 'segment'),\n customPropConfigs: _.get(state, 'quantConfig.customPropConfigs', [])\n});\n\nexport default connect(mapStateToProps)(SignalConfigsBuilderWrapper);\n","import _ from 'lodash';\nimport { SEGMENT_CATEGORY_IN_QUANT } from 'common/constants/index';\n\nexport const isIncludeEquityOrFuture = (operand) => {\n if (_.includes(operand, SEGMENT_CATEGORY_IN_QUANT.month1Price)\n || _.includes(operand, SEGMENT_CATEGORY_IN_QUANT.equity)) {\n return true;\n }\n\n return false;\n};\n\nexport const getRemoveConfigs = (signalConfigs) => {\n return _.chain(signalConfigs)\n .map(({ leftOperand, rightOperand }) => {\n let returnArray = [];\n if (isIncludeEquityOrFuture(leftOperand)) returnArray = [...returnArray, leftOperand];\n if (isIncludeEquityOrFuture(rightOperand)) returnArray = [...returnArray, rightOperand];\n\n return returnArray;\n })\n .flattenDeep()\n .compact()\n .uniq()\n .value();\n};\n","import _ from 'lodash';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { isIncludeEquityOrFuture } from './helper';\n\nconst getPipeName = (operand) => {\n const currentCandle = 'currentCandle 1 minute';\n switch (operand) {\n case 'item0.month1Price.close':\n return `${currentCandle} Item 1 Future Last Traded Price`;\n case 'item1.month1Price.close':\n return `${currentCandle} Item 2 Future Last Traded Price`;\n case 'item0.month1Price.volume':\n return `${currentCandle} Item 1 Future Volume`;\n case 'item1.month1Price.volume':\n return `${currentCandle} Item 2 Future Volume`;\n case 'item0.month1Price.openInterest':\n return `${currentCandle} Item 1 Future Open Interest`;\n case 'item1.month1Price.openInterest':\n return `${currentCandle} Item 2 Future Open Interest`;\n case 'item0.equity':\n return `${currentCandle} Item 1 Equity Last Traded Price`;\n case 'item1.equity':\n return `${currentCandle} Item 2 Equity Last Traded Price`;\n case 'item0.equity.volume':\n return `${currentCandle} Item 1 Equity Volume`;\n case 'item1.equity.volume':\n return `${currentCandle} Item 2 Equity Volume`;\n default:\n return `${currentCandle} ${Math.random()}`;\n }\n};\n\nconst onAddNewConfigs = (operand, newPipeConfigs) => {\n const isFutureClose = _.includes(operand, 'month1Price.close');\n\n const validPipeConfig = _.filter(newPipeConfigs, ({ type, config }) => {\n const { valuePaths } = config;\n\n const isValuePathAlreadyPresent = _.some(valuePaths, (valuePath) => {\n if (isFutureClose) {\n const [item, month1Price] = _.split(operand, '.');\n return valuePath === `${item}.${month1Price}`;\n }\n\n return valuePath === operand;\n });\n\n return type === PipeDefinitionUtility.getPipeConfigDefaults('currentCandle').type\n && config.candleInterval === '1 minutes' && isValuePathAlreadyPresent;\n });\n\n if (!_.isEmpty(validPipeConfig)) { // already present config\n const config = _.head(validPipeConfig);\n const { name } = config;\n return { operand: `${name}.close`, updatedPipeConfigs: [] };\n }\n\n const newCurrentCandlePipeConfig = PipeDefinitionUtility.getPipeConfigDefaults('currentCandle');\n const { config } = newCurrentCandlePipeConfig;\n const { valuePaths } = config;\n\n const updatedValuePaths = _.map(valuePaths, () => {\n if (isFutureClose) {\n const [item, month1Price] = _.split(operand, '.');\n return `${item}.${month1Price}`;\n }\n\n return operand;\n });\n\n const updatedName = getPipeName(operand);\n const updatedCurrentCandlePipeConfig = {\n ...newCurrentCandlePipeConfig,\n name: updatedName,\n config: { ...config, valuePaths: updatedValuePaths, candleInterval: '1 minutes' }\n };\n\n return { operand: `${updatedName}.close`, updatedPipeConfigs: [updatedCurrentCandlePipeConfig] };\n};\n\nconst getValidatedOperand = (operand, newPipeConfigs) => {\n if (!isIncludeEquityOrFuture(operand)) return { operand, updatedPipeConfigs: [] };\n\n return { ...onAddNewConfigs(operand, newPipeConfigs) };\n};\n\nexport const getSignalSuggestionConfig = (pipeConfigs, signalConfigs) => {\n let newPipeConfigs = pipeConfigs;\n\n const updatedSignalFields = _.map(signalConfigs, (signalConfig) => {\n const { leftOperand, rightOperand } = signalConfig;\n const {\n operand: newLeftOperand,\n updatedPipeConfigs: leftPipeConfigs\n } = getValidatedOperand(leftOperand, newPipeConfigs);\n newPipeConfigs = [...newPipeConfigs, ...leftPipeConfigs];\n\n const {\n operand: newRightOperand,\n updatedPipeConfigs: rightPipeConfigs\n } = getValidatedOperand(rightOperand, newPipeConfigs);\n newPipeConfigs = [...newPipeConfigs, ...rightPipeConfigs];\n\n return {\n ...signalConfig,\n leftOperand: newLeftOperand,\n rightOperand: newRightOperand\n };\n });\n\n return {\n updatedSignalFields,\n isUpdatePipe: true,\n newPipeConfigs\n };\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n orderConfigsPropTypes, outputSchemaPropTypes,\n pipeConfigsPropTypes, signalConfigPropTypes\n} from 'common/propTypes';\nimport { connect } from 'react-redux';\n// import { RUN_TYPES } from 'common/constants/index';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getSelectedOperandLabelForSignal } from 'common/utils/displayNames';\nimport { setPipeConfigs } from 'modules/QuantBuilder/actions';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getRemoveConfigs } from './helper';\nimport { getSignalSuggestionConfig } from './config';\n\nconst propTypes = {\n config: PropTypes.shape({\n title: PropTypes.string,\n orderConfigIndex: PropTypes.number,\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n signalConfigField: PropTypes.string,\n }).isRequired,\n onUpdateSignalConfig: PropTypes.func.isRequired,\n // runType: PropTypes.string.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n dispatchSetPipeConfigs: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst SuggestionSignals = ({\n config, onUpdateSignalConfig, orderConfigs, outputSchema, pipeConfigs, dispatchSetPipeConfigs\n}) => {\n const oneIndentation = ' ';\n const {\n signalConfigs, signalConfigField, orderConfigIndex\n } = config;\n\n const removeConfigs = getRemoveConfigs(signalConfigs);\n const isShow = !_.isEmpty(removeConfigs);\n if (!isShow) return null;\n\n const removeConfigSentence = () => {\n const sentence = _.map(removeConfigs, (removeConfig, key) => {\n const operandConfig = getSelectedOperandLabelForSignal(outputSchema, removeConfig);\n const operandLabel = _.map(operandConfig, (\n { label, labelHtml }\n ) => { return labelHtml || label; }).join(',');\n\n return (\n \n {ReactHtmlParser(operandLabel || '')}\n \n );\n });\n\n return {sentence};\n };\n\n const onUpdate = () => {\n const newOrderConfigs = _.cloneDeep(orderConfigs);\n const { updatedSignalFields, isUpdatePipe, newPipeConfigs } = getSignalSuggestionConfig(\n pipeConfigs, signalConfigs\n );\n if (isUpdatePipe) { dispatchSetPipeConfigs([...newPipeConfigs]); } // update the pipeconfig\n // added 1 minute current candle...\n\n const updateConfig = {\n newOrderConfigs, orderConfigIndex, signalConfigField, stateSignalConfigs: updatedSignalFields\n };\n\n reactToastify('Please Check the signal and indicator', TOASTIFY_TYPES.INFO);\n onUpdateSignalConfig(updateConfig);\n };\n\n return (\n
    \n
    \n
    \n warning\n Warning :\n
    \n
    \n Backtest is based on 1 minute candle data. Live deployment is based on second by second data.\n The results will vary a lot. Do you want to use\n \n "\n {oneIndentation}\n 1 minute current candle close price\n {oneIndentation}\n "\n \n instead of\n {oneIndentation}\n {removeConfigSentence()}\n
    \n
    \n onUpdate()}\n >\n Add\n \n
    \n
    \n
    \n );\n};\n\nSuggestionSignals.propTypes = propTypes;\nSuggestionSignals.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n runType: _.get(state, 'runType'),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n segment: _.get(state, 'segment'),\n outputSchema: _.get(state, 'outputSchema'),\n pipeConfigs: _.get(state, 'quantConfig.pipeConfigs')\n});\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n dispatchSetPipeConfigs: (newPipeConfigs) => dispatch(setPipeConfigs(newPipeConfigs)),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SuggestionSignals);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport { connect } from 'react-redux';\nimport { outputSchemaPropTypes, signalConfigPropTypes } from 'common/propTypes';\nimport SignalSentence from 'common/components/SignalSentence';\nimport SignalConfigsBuilderWrapper from '../../OrderConfigBuilder/SignalConfigsBuilderWrapper';\nimport SuggestionSignals from '../../OrderConfigBuilder/SuggestionSignals';\n\nconst propTypes = {\n config: PropTypes.shape({\n title: PropTypes.string,\n orderConfigIndex: PropTypes.number,\n signalConfigs: PropTypes.arrayOf(signalConfigPropTypes),\n signalConfigField: PropTypes.string,\n }).isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n adjustmentSignalConfigIndex: PropTypes.number.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired\n};\n\nconst defaultProps = {};\n\nconst AdjustmentSignalConfig = ({\n config, dispatchSetOrderConfigs, adjustmentSignalConfigIndex, outputSchema\n}) => {\n const { signalConfigs, title } = config;\n\n const onUpdateSignalConfig = (updatedConfig) => {\n const {\n newOrderConfigs, orderConfigIndex, stateSignalConfigs\n } = updatedConfig;\n\n const updatedOrderConfig = _.map(newOrderConfigs, (newOrderConfig, idx) => {\n if (idx === orderConfigIndex) {\n const { adjustmentSignalConfigs } = newOrderConfig;\n\n const updatedAdjustmentSignalConfigs = _.map(adjustmentSignalConfigs,\n (adjustmentSignalConfig, adjustmentIndex) => {\n if (adjustmentIndex === adjustmentSignalConfigIndex) { return stateSignalConfigs; }\n\n return adjustmentSignalConfig;\n });\n\n return { ...newOrderConfig, adjustmentSignalConfigs: updatedAdjustmentSignalConfigs };\n }\n return newOrderConfig;\n });\n\n dispatchSetOrderConfigs(updatedOrderConfig);\n };\n\n return (\n
    \n
    \n
    \n {title}\n
    \n
    \n \n    \n \n
    \n
    \n \n
    \n );\n};\n\nAdjustmentSignalConfig.propTypes = propTypes;\nAdjustmentSignalConfig.defaultProps = defaultProps;\n\nconst mapStatetoProps = (state) => {\n return {\n outputSchema: _.get(state, 'outputSchema')\n };\n};\n\nconst mapDispatchToProp = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs))\n});\n\nexport default connect(mapStatetoProps, mapDispatchToProp)(AdjustmentSignalConfig);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport { transactionConfigPropTypes } from 'common/propTypes';\nimport {\n existingLegActionTypes, existingLegTypes, getDefaultExistingLegConfig,\n TRANSACTION_MODES\n} from 'modules/TransactionsBuilder/configs';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst propTypes = {\n actionConfig: transactionConfigPropTypes.isRequired,\n onUpdateAdjustmentActionConfigs: PropTypes.func.isRequired,\n transactionConfig: transactionConfigPropTypes.isRequired,\n isDisabledModifyBtn: PropTypes.bool.isRequired,\n isShowWarning: PropTypes.bool.isRequired\n};\nconst defaultProps = {};\n\nconst ExistingLegConfigs = ({\n actionConfig, onUpdateAdjustmentActionConfigs, transactionConfig,\n isDisabledModifyBtn, isShowWarning\n}) => {\n const existingLegConfigs = _.get(actionConfig, 'existingLegConfigs', []);\n const transaction = _.get(transactionConfig, 'mode.transaction', '');\n const actionOptionConfigs = _.get(transactionConfig, 'optionConfigs', []);\n const { errors, register } = useFormContext();\n\n const {\n futureConfig, optionConfigs, equityConfig, futureAndOption, futureAndEquity,\n optionAndEquity, combinedAllConfigs\n } = TRANSACTION_MODES;\n\n const isOptionPresent = _.includes(\n [optionConfigs, futureAndOption, optionAndEquity, combinedAllConfigs], transaction\n );\n const isFuturePresent = _.includes(\n [futureConfig, futureAndOption, futureAndEquity, combinedAllConfigs], transaction\n );\n const isEquityPresent = _.includes(\n [equityConfig, futureAndEquity, optionAndEquity, combinedAllConfigs], transaction\n );\n\n const optionConfigIndexes = isOptionPresent && actionOptionConfigs\n ? _.map(actionOptionConfigs, (config, idx) => {\n return { label: `Option Leg ${idx + 1}`, value: idx };\n }) : [];\n\n const sanitizedExistingLegTypes = _.filter(existingLegTypes, ({ value }) => {\n if (value === SEGMENT_CONFIG.option && isOptionPresent) return true;\n if (value === SEGMENT_CONFIG.future && isFuturePresent) return true;\n if (value === SEGMENT_CONFIG.equity && isEquityPresent) return true;\n\n return false;\n });\n\n if (_.isEmpty(sanitizedExistingLegTypes)) return null;\n\n const onUpdateExistingLegActions = (key, value, index) => {\n const updatedExistingLegActions = _.map(existingLegConfigs, (existingLegAction, idx) => {\n if (index === idx) {\n if (key === 'legType') {\n return {\n ...existingLegAction, [key]: value, action: '', optionConfigIndex: null\n };\n }\n\n return { ...existingLegAction, [key]: value };\n }\n return existingLegAction;\n });\n\n return updatedExistingLegActions;\n };\n\n const renderSelectBox = (key, index, options, selected, isDisabled = false) => {\n const validatorConfig = {\n required: isDisabled ? false : '*value required',\n };\n const validatorProps = { ref: register(validatorConfig) };\n const selectClasses = classNames(\n 'custom-select custom-select-sm track form-control',\n { 'is-invalid': !!errors[key] }\n );\n return (\n <>\n {\n const { target: { value } } = event;\n const finalValue = (key === 'optionConfigIndex' && value) ? Number(value) : value;\n onUpdateAdjustmentActionConfigs({\n ...actionConfig,\n existingLegConfigs: onUpdateExistingLegActions(key, finalValue, index)\n });\n }}\n value={_.get(selected, ['0', 'value'], '')}\n className={selectClasses}\n >\n ;\n })}\n \n \n \n );\n };\n\n const renderExistingLegAction = (existingLegAction, idx) => {\n const { legType, action, optionConfigIndex } = existingLegAction;\n const selectedLegType = _.filter(sanitizedExistingLegTypes, ({ value }) => value === legType);\n const selectedLegTypeArray = _.isEmpty(selectedLegType) ? [] : selectedLegType;\n\n const selectedLegAction = _.filter(existingLegActionTypes, ({ value }) => value === action);\n const selectedLegActionArray = _.isEmpty(selectedLegAction) ? [] : selectedLegAction;\n\n const selectedLegOptionConfigIndex = _.filter(optionConfigIndexes, (\n { value }\n ) => value === optionConfigIndex);\n const selectedLegOptionConfigIndexArray = _.isEmpty(selectedLegOptionConfigIndex)\n ? [] : selectedLegOptionConfigIndex;\n\n return (\n
    \n
    \n \n {renderSelectBox('legType', idx, sanitizedExistingLegTypes, selectedLegTypeArray)}\n
    \n
    \n \n {renderSelectBox(\n 'optionConfigIndex',\n idx,\n optionConfigIndexes,\n selectedLegOptionConfigIndexArray,\n !(legType === SEGMENT_CONFIG.option && !_.isEmpty(optionConfigIndexes))\n )}\n
    \n
    \n \n {renderSelectBox('action', idx, existingLegActionTypes, selectedLegActionArray)}\n
    \n\n onUpdateAdjustmentActionConfigs({\n ...actionConfig, existingLegConfigs: _.filter(existingLegConfigs, (c, index) => idx !== index)\n })}\n >\n delete_forever\n \n
    \n );\n };\n\n let warningMessage = 'You added new legs. If you want to modify existing legs, ';\n warningMessage += 'remove \"add legs\" from above. If you';\n warningMessage += ' add both modified legs and open new legs, ';\n warningMessage += 'the new leg will be open at the same time.';\n\n return (\n <>\n {_.map(existingLegConfigs, renderExistingLegAction)}\n {_.isEmpty(existingLegConfigs)\n &&

    No entry actions added

    }\n\n
    \n onUpdateAdjustmentActionConfigs({\n ...actionConfig, existingLegConfigs: [...existingLegConfigs, getDefaultExistingLegConfig]\n })}\n >\n Modify Existing Legs\n \n {isShowWarning && (\n \n \n info\n \n \n )}\n
    \n \n );\n};\n\nExistingLegConfigs.propTypes = propTypes;\nExistingLegConfigs.defaultProps = defaultProps;\n\nexport default ExistingLegConfigs;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n setOptionsExpiryCycle, setOptionStrikeCalculationBasedOn, setOrderConfigs\n} from 'modules/QuantBuilder/actions';\nimport { connect, useSelector } from 'react-redux';\nimport {\n instrumentGroupsPropTypes,\n orderConfigsPropTypes,\n outputSchemaPropTypes,\n transactionConfigPropTypes\n} from 'common/propTypes';\nimport { SIGNAL_CONFIG } from 'modules/QuantBuilder/config/signalConfigs';\nimport NewTransactionBuilder from 'modules/TransactionsBuilder/NewTransactionBuilder/index';\nimport { transactionConfigToTransactionBuilderConfig } from\n'modules/TransactionsBuilder/NewTransactionBuilder/configAdopter/transactionConfigToBuilderConfig';\nimport { RUN_TYPES } from 'common/constants/index';\nimport ExistingLegConfigs from './ExistingLegConfigs/index';\n\nconst propTypes = {\n orderConfigs: orderConfigsPropTypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n transactionConfigsValidator: PropTypes.shape({}),\n adjustmentActionConfig: PropTypes.arrayOf(transactionConfigPropTypes).isRequired,\n adjustmentActionConfigIndex: PropTypes.number.isRequired,\n orderConfigIndex: PropTypes.number.isRequired,\n transactionConfigs: PropTypes.arrayOf(transactionConfigPropTypes).isRequired,\n strikeBasedOn: PropTypes.string.isRequired,\n startDate: PropTypes.instanceOf(Date),\n onStrikeBasedOnChange: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n segment: PropTypes.string.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired,\n onOptionsExpiryCycleChange: PropTypes.func.isRequired,\n optionsExpiryCycle: PropTypes.string.isRequired,\n customPropConfigs: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nconst defaultProps = { transactionConfigsValidator: {}, startDate: '', customPropConfigs: [] };\n\n\nconst AdjustmentActionConfig = (props) => {\n const {\n orderConfigs, dispatchSetOrderConfigs, adjustmentActionConfig, adjustmentActionConfigIndex,\n orderConfigIndex, transactionConfigs,\n strikeBasedOn, onStrikeBasedOnChange, outputSchema,\n transactionConfigsValidator, instrumentGroups, segment, segments, optionsExpiryCycle,\n onOptionsExpiryCycleChange, startDate, customPropConfigs\n } = props;\n\n const { runType } = useSelector((state) => state);\n const isBacktest = runType === RUN_TYPES.historic;\n\n const sanitizedOutputSchema = _.flattenDeep([outputSchema,\n _.chain(customPropConfigs).map(({ outputSchema: cpcOutputSchema }) => {\n try { return JSON.parse(cpcOutputSchema); } catch { return null; }\n }).compact().value()\n ]);\n\n const onUpdateAdjustmentActionConfigs = (newAdjustmentConfig) => {\n const newOrderConfigs = _.map(orderConfigs, (orderConfig, orderConfigId) => {\n if (orderConfigId === orderConfigIndex) {\n const { adjustmentActionConfigs: configs } = orderConfig;\n const updatedAdjustmentActionConfigs = _.map(configs,\n (adjustmentActioncg, adjustmentId) => {\n if (adjustmentId === adjustmentActionConfigIndex) return newAdjustmentConfig;\n\n return adjustmentActioncg;\n });\n\n return { ...orderConfig, [SIGNAL_CONFIG.ADJUSTMENT_ACTION_CONFIGS]: updatedAdjustmentActionConfigs };\n }\n return orderConfig;\n });\n\n dispatchSetOrderConfigs(newOrderConfigs);\n };\n\n const onUpdateConfig = (newConfig, actionConfigIndex) => {\n const newActionConfig = adjustmentActionConfig;\n newActionConfig[actionConfigIndex] = newConfig;\n\n onUpdateAdjustmentActionConfigs(newActionConfig);\n };\n\n const renderActionConfig = (actionConfig, actionConfigIndex) => {\n const transactionConfig = _.get(transactionConfigs, [actionConfigIndex], {});\n const isShowWarning = !_.isEmpty(transactionConfigToTransactionBuilderConfig(\n actionConfig, strikeBasedOn\n ));\n const isDisabledModifyBtn = isShowWarning && isBacktest;\n\n return (\n
    \n
    \n onUpdateConfig(newConfig, actionConfigIndex)}\n isAdjustment\n startDate={startDate}\n optionsExpiryCycle={optionsExpiryCycle}\n onOptionsExpiryCycleChange={onOptionsExpiryCycleChange}\n strikeBasedOn={strikeBasedOn}\n onStrikeBasedOnChange={onStrikeBasedOnChange}\n outputSchema={sanitizedOutputSchema}\n transactionConfigsValidator={transactionConfigsValidator}\n instrumentGroups={instrumentGroups}\n segment={segment}\n segments={segments}\n customPropConfigs={customPropConfigs}\n />\n {_.size(actionConfig) !== 0 && (\n onUpdateConfig(newConfig, actionConfigIndex)}\n transactionConfig={transactionConfig}\n isDisabledModifyBtn={isDisabledModifyBtn}\n isShowWarning={isShowWarning}\n />\n )}\n
    \n
    \n );\n };\n\n return (\n
    \n
    \n settings_input_composite\n Transaction Details\n
    \n
    \n {_.map(adjustmentActionConfig, renderActionConfig)}\n {/* array of config */}\n
    \n
    \n );\n};\n\nAdjustmentActionConfig.propTypes = propTypes;\nAdjustmentActionConfig.defaultProps = defaultProps;\n\nconst mapStatetoProps = (state) => {\n return {\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n segment: _.get(state, 'segment'),\n transactionConfigsValidator: _.get(state, [\n 'quantConfigValidators', 'orderConfigsValidators', 'transactionConfigsValidator'\n ]),\n instrumentGroups: _.get(state, 'quantConfig.instrumentGroups'),\n optionsExpiryCycle: _.get(state, 'quantConfig.optionsExpiryCycle'),\n startDate: _.get(state, 'startDate'),\n outputSchema: _.get(state, 'outputSchema'),\n segments: _.get(state, 'segments', []),\n strikeBasedOn: _.get(state, 'quantConfig.optionStrikeCalculationBasedOn', 'strikeIndex'),\n customPropConfigs: _.get(state, 'quantConfig.customPropConfigs', [])\n };\n};\n\nconst mapDispatchToProp = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs)),\n onOptionsExpiryCycleChange: (newOptionsExpiryCycle) => {\n dispatch(setOptionsExpiryCycle(newOptionsExpiryCycle));\n },\n onStrikeBasedOnChange: (newOptionStrikeCalculationBasedOn) => (\n dispatch(setOptionStrikeCalculationBasedOn(newOptionStrikeCalculationBasedOn))\n )\n});\n\nexport default connect(mapStatetoProps, mapDispatchToProp)(AdjustmentActionConfig);\n","import _ from 'lodash';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n setOrderConfigs\n} from 'modules/QuantBuilder/actions';\nimport { connect } from 'react-redux';\nimport {\n orderConfigsPropTypes,\n signalConfigPropTypes\n} from 'common/propTypes';\nimport { SIGNAL_CONFIG } from 'modules/QuantBuilder/config/signalConfigs';\nimport { getEmptyAdjustmentActionConfig } from 'modules/TransactionsBuilder/configs';\nimport { getAdjustmentSignalConfigsWithoutAutoAdjustment } from\n// eslint-disable-next-line max-len\n'modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/index';\nimport AdjustmentSignalConfig from './AdjustmentSignalConfig';\nimport AdjustmentActionConfig from './AdjustmentActionConfig';\n\nconst propTypes = {\n adjustmentSignalConfigs: PropTypes.shape({\n orderConfigIndex: PropTypes.number,\n signalConfigs: PropTypes.arrayOf(PropTypes.arrayOf(signalConfigPropTypes))\n }).isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n};\n\nconst defaultProps = {};\n\n\nconst Adjustments = ({\n adjustmentSignalConfigs: {\n orderConfigIndex, signalConfigs\n },\n adjustmentSignalConfigs,\n orderConfigs, dispatchSetOrderConfigs, maxInstrumentsInGroup\n}) => {\n const newOrderConfigs = _.cloneDeep(orderConfigs);\n const adjustmentSignalFields = newOrderConfigs[orderConfigIndex][\n SIGNAL_CONFIG.ADJUSTMENT_SIGNAL_CONFIGS\n ] || [];\n const adjustmentActionFields = newOrderConfigs[orderConfigIndex][\n SIGNAL_CONFIG.ADJUSTMENT_ACTION_CONFIGS] || [];\n const isInitialLoad = useRef(true);\n\n const withoutAutoAdjustmentSignalConfigs = getAdjustmentSignalConfigsWithoutAutoAdjustment(signalConfigs);\n\n const onAddAdjustment = useCallback((isAppendOld) => {\n const newAdjustmentSignalConfigs = isAppendOld ? [...adjustmentSignalFields, []] : [[]];\n const newAdjustmentActionConfigs = isAppendOld ? [\n ...adjustmentActionFields,\n _.times(maxInstrumentsInGroup, () => getEmptyAdjustmentActionConfig())] : [\n _.times(maxInstrumentsInGroup, () => getEmptyAdjustmentActionConfig())\n ];\n\n newOrderConfigs[orderConfigIndex] = {\n ...newOrderConfigs[orderConfigIndex],\n [SIGNAL_CONFIG.ADJUSTMENT_SIGNAL_CONFIGS]: newAdjustmentSignalConfigs,\n [SIGNAL_CONFIG.ADJUSTMENT_ACTION_CONFIGS]: newAdjustmentActionConfigs\n };\n\n dispatchSetOrderConfigs(newOrderConfigs);\n }, [adjustmentActionFields, adjustmentSignalFields,\n dispatchSetOrderConfigs, maxInstrumentsInGroup,\n newOrderConfigs, orderConfigIndex]);\n\n useEffect(() => {\n if (!isInitialLoad.current) {\n setTimeout(() => onAddAdjustment(), 500);\n } else {\n isInitialLoad.current = false;\n }\n }, [maxInstrumentsInGroup]);\n // it will be working for both clone and newly add...\n\n const onDeleteAdjustmentSignal = (adjustmentIndex) => {\n newOrderConfigs[orderConfigIndex] = {\n ...newOrderConfigs[orderConfigIndex],\n [SIGNAL_CONFIG.ADJUSTMENT_SIGNAL_CONFIGS]: _.filter(adjustmentSignalFields,\n (adjustmentSignalField, idx) => idx !== adjustmentIndex),\n [SIGNAL_CONFIG.ADJUSTMENT_ACTION_CONFIGS]: _.filter(adjustmentActionFields,\n (adjustmentActionField, idx) => idx !== adjustmentIndex)\n };\n\n dispatchSetOrderConfigs(newOrderConfigs);\n };\n\n const renderAdjustment = (adjustmentSignalConfig, idx) => {\n const updatedConfig = { ...adjustmentSignalConfigs, signalConfigs: adjustmentSignalConfig };\n // override for common purpose... repeat components...\n const adjustmentActionConfig = _.get(orderConfigs,\n [orderConfigIndex, 'adjustmentActionConfigs', idx], []);\n const transactionConfigs = _.get(orderConfigs, [orderConfigIndex, 'transactionConfigs'], []);\n const isAutoAdjustment = _.get(updatedConfig, 'signalConfigs.0.mode.isAutoAdjustment', false);\n\n if (isAutoAdjustment) return null;\n\n return (\n
    \n
    \n \n Adjustment\n \n onDeleteAdjustmentSignal(idx)}\n type=\"button\"\n >\n delete_forever\n \n
    \n\n \n \n
    \n );\n };\n\n return (\n
    \n
    \n {!_.isEmpty(withoutAutoAdjustmentSignalConfigs)\n &&
    Adjustments
    }\n\n {_.map(signalConfigs, renderAdjustment)}\n\n
    \n onAddAdjustment(true)}\n >\n library_add\n Add Adjustment\n \n
    \n
    \n );\n};\n\nAdjustments.propTypes = propTypes;\nAdjustments.defaultProps = defaultProps;\n\nconst mapStatetoProps = (state) => {\n const noOfInstrumentsInGroup = _.get(state, 'quantConfig.instrumentGroups.0', []).length;\n\n return {\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n maxInstrumentsInGroup: _.get(state, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup)\n };\n};\n\nconst mapDispatchToProp = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs))\n});\n\nexport default connect(mapStatetoProps, mapDispatchToProp)(Adjustments);\n","import _ from 'lodash';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport {\n getAdjustmentActionConfigsWithoutAutoAdjustment,\n getAdjustmentSignalConfigsWithoutAutoAdjustment\n} from\n// eslint-disable-next-line max-len\n'modules/TransactionsBuilder/NewTransactionBuilder/components/AdvancedFeaturesEnablement/AdjustmentAdaptor/index';\nimport PropTypes from 'prop-types';\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst propTypes = {\n children: PropTypes.element.isRequired,\n};\n\nconst defaultProps = {};\n\nconst AdjustmentWrapper = (props) => {\n const { children: child } = props;\n const children = child || null;\n const configs = _.get(props, 'adjustmentSignalConfigs');\n const { orderConfigIndex } = configs;\n\n const globalState = useSelector((state) => state);\n const orderConfigs = _.get(globalState, 'quantConfig.orderConfigs', []);\n const dispatch = useDispatch();\n\n const currentOrderConfig = _.get(orderConfigs, orderConfigIndex, {});\n const adjustmentActionConfigs = getAdjustmentActionConfigsWithoutAutoAdjustment(\n _.get(currentOrderConfig, 'adjustmentActionConfigs', [])\n );\n const adjustmentSignalConfigs = getAdjustmentSignalConfigsWithoutAutoAdjustment(\n _.get(currentOrderConfig, 'adjustmentSignalConfigs', [])\n );\n const isPermissionAddManualAdjustment = _.get(window, 'userPermissions.adjustments.isEnabled', {});\n // custom Adjustment...\n\n useEffect(() => {\n if (!isPermissionAddManualAdjustment\n && (!_.isEmpty(adjustmentSignalConfigs) || !_.isEmpty(adjustmentActionConfigs))) {\n orderConfigs[orderConfigIndex] = {\n ...orderConfigs[orderConfigIndex], adjustmentSignalConfigs: [], adjustmentActionConfigs: []\n };\n\n dispatch(setOrderConfigs(orderConfigs));\n }\n }, []);\n\n if (!isPermissionAddManualAdjustment) return null;\n\n return children;\n};\n\nAdjustmentWrapper.propTypes = propTypes;\nAdjustmentWrapper.defaultProps = defaultProps;\n\nexport default AdjustmentWrapper;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nimport { orderConfigsPropTypes, outputSchemaPropTypes } from 'common/propTypes';\nimport { SIGNAL_CONFIG } from 'modules/QuantBuilder/config';\nimport SignalSentence from 'common/components/SignalSentence';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport TransactionsBuilderWrapper from './TransactionsBuilderWrapper';\nimport SignalConfigsBuilderWrapper from './SignalConfigsBuilderWrapper';\nimport Adjustments from '../components/Adjustments/index';\nimport SuggestionSignals from './SuggestionSignals';\nimport AdjustmentWrapper from '../components/AdjustmentWrapper/index';\n\nconst propTypes = {\n orderConfigIndex: PropTypes.number.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n orderConfigErrors: PropTypes.shape({}),\n outputSchema: outputSchemaPropTypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n orderConfigErrors: {}\n};\n\n\nconst OrderConfigBuilder = (props) => {\n const getConfig = (signalConfigField) => {\n const { orderConfigIndex, orderConfigs, orderConfigErrors } = props;\n const entrySignalConfigs = _.get(orderConfigs, [orderConfigIndex, SIGNAL_CONFIG.ENTRY], []);\n const exitSignalConfigs = _.get(orderConfigs, [orderConfigIndex, SIGNAL_CONFIG.EXIT], []);\n const adjustmentSignalConfigs = _.get(orderConfigs, [\n orderConfigIndex, SIGNAL_CONFIG.ADJUSTMENT_SIGNAL_CONFIGS\n ], []);\n let signalConfigs = null;\n let title = null;\n let validatorErrors = [];\n\n switch (signalConfigField) {\n case SIGNAL_CONFIG.ENTRY:\n signalConfigs = entrySignalConfigs;\n title = 'Entry when';\n validatorErrors = _.get(orderConfigErrors, [signalConfigField], []);\n break;\n case SIGNAL_CONFIG.EXIT:\n signalConfigs = exitSignalConfigs;\n title = 'Exit when';\n validatorErrors = _.get(orderConfigErrors, [signalConfigField], []);\n break;\n case SIGNAL_CONFIG.ADJUSTMENT_SIGNAL_CONFIGS:\n signalConfigs = adjustmentSignalConfigs;\n title = 'Adjust When';\n validatorErrors = _.get(orderConfigErrors, [signalConfigField], []);\n break;\n case SIGNAL_CONFIG.TRANSACTION:\n title = 'Transaction';\n validatorErrors = _.get(orderConfigErrors, [signalConfigField], []);\n break;\n default:\n title = '';\n signalConfigs = '';\n }\n\n return {\n signalConfigField,\n title,\n signalConfigs,\n orderConfigIndex,\n validatorErrors,\n };\n };\n\n const onUpdateSignalConfig = (updateConfig) => {\n const {\n newOrderConfigs, orderConfigIndex, signalConfigField, stateSignalConfigs\n } = updateConfig;\n const { dispatchSetOrderConfigs } = props;\n\n newOrderConfigs[orderConfigIndex] = {\n ...newOrderConfigs[orderConfigIndex],\n [signalConfigField]: stateSignalConfigs,\n };\n\n dispatchSetOrderConfigs(newOrderConfigs);\n };\n\n const renderEntrySignal = () => {\n const { orderConfigs, orderConfigIndex, outputSchema } = props;\n const entrySignalConfigs = _.get(orderConfigs, [orderConfigIndex, SIGNAL_CONFIG.ENTRY]);\n\n return (\n
    \n
    \n
    \n login \n Entry when\n
    \n \n \n    \n \n
    \n
    \n \n
    \n );\n };\n\n const renderExitSignal = () => {\n const { orderConfigs, orderConfigIndex, outputSchema } = props;\n const exitSignalConfigs = _.get(orderConfigs, [orderConfigIndex, SIGNAL_CONFIG.EXIT]);\n\n return (\n
    \n
    \n
    \n logout\n Exit when\n
    \n \n \n    \n \n
    \n
    \n \n
    \n );\n };\n\n return (\n
    \n {renderEntrySignal()}\n {renderExitSignal()}\n
    \n \n
    \n \n \n \n
    \n );\n};\n\nOrderConfigBuilder.propTypes = propTypes;\nOrderConfigBuilder.defaultProps = defaultProps;\n\nconst mapStatetoProps = (state) => {\n return {\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n outputSchema: _.get(state, 'outputSchema')\n };\n};\n\nconst mapDispatchToProp = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs))\n});\n\nexport default connect(mapStatetoProps, mapDispatchToProp)(OrderConfigBuilder);\n","import _ from 'lodash';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { getEmptyOrderConfig } from 'modules/QuantBuilder/config';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport { orderConfigsPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst AddOrderConfig = (props) => {\n const { orderConfigs, dispatchSetOrderConfigs, maxInstrumentsInGroup } = props;\n\n const onAddOrderConfig = () => {\n dispatchSetOrderConfigs([\n ...orderConfigs,\n getEmptyOrderConfig(maxInstrumentsInGroup)\n ]);\n };\n\n const { isBetaUser, isAdmin } = window;\n const isDisabled = (orderConfigs || []).length > 1 && !isAdmin && !isBetaUser;\n\n return (\n <>\n \n add_circle\n Add Strategy Case\n \n {isDisabled\n &&

    Only possible to add 2 strategy cases

    }\n \n );\n};\n\nconst mapStateToProps = (state) => {\n const noOfInstrumentsInGroup = _.get(state, 'quantConfig.instrumentGroups.0', []).length;\n\n return ({\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n maxInstrumentsInGroup: _.get(state, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup),\n });\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs)),\n});\n\nAddOrderConfig.propTypes = propTypes;\nAddOrderConfig.defaultProps = defaultProps;\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AddOrderConfig);\n","import _ from 'lodash';\n// vendor imports\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\n// project imports\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport { orderConfigsPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n indexToRemove: PropTypes.number.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst RemoveOrderConfig = (props) => {\n const { orderConfigs, dispatchSetOrderConfigs, indexToRemove } = props;\n\n const onRemoveOrderConfig = () => {\n const newOrderConfigs = _.filter(orderConfigs, (orderConfig, orderConfigIndex) => {\n return orderConfigIndex !== indexToRemove;\n });\n\n dispatchSetOrderConfigs(newOrderConfigs);\n };\n\n return (\n \n delete_outline\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n orderConfigs: _.get(state, 'quantConfig.orderConfigs')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs))\n});\n\nRemoveOrderConfig.propTypes = propTypes;\nRemoveOrderConfig.defaultProps = defaultProps;\n\nexport default connect(mapStateToProps, mapDispatchToProps)(RemoveOrderConfig);\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\n\nimport { QUANT_CONFIG_FIELDS } from 'modules/QuantBuilder/config';\nimport {\n getValidationError,\n serverErrorsToObject,\n} from 'common/utils/validators';\nimport { validatorProptypes, orderConfigsPropTypes } from 'common/propTypes';\nimport RepeatOrder from 'modules/QuantBuilder/components/RepeatOrder';\nimport { setOrderConfigs } from 'modules/QuantBuilder/actions';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport OrderConfigBuilder from './OrderConfigBuilder';\nimport AddOrderConfig from './components/AddOrderConfig';\nimport RemoveOrderConfig from './components/RemoveOrderConfig';\n\nconst propTypes = {\n orderConfigs: orderConfigsPropTypes.isRequired,\n validatorErrors: validatorProptypes.isRequired,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst getOrderConfigsErrors = (validatorErrors) => {\n const {\n entrySignalConfigs,\n exitSignalConfigs,\n expiryConfigs,\n transactionConfigs,\n } = QUANT_CONFIG_FIELDS;\n\n return []\n .concat(getValidationError(validatorErrors, entrySignalConfigs))\n .concat(getValidationError(validatorErrors, exitSignalConfigs))\n .concat(getValidationError(validatorErrors, expiryConfigs))\n .concat(getValidationError(validatorErrors, transactionConfigs));\n};\n\nconst OrderConfigsBuilder = (props) => {\n const { isAdmin, isBetaUser } = window;\n const { orderConfigs, validatorErrors, dispatchSetOrderConfigs } = props;\n const serverErrors = serverErrorsToObject(\n getOrderConfigsErrors(validatorErrors)\n );\n const orderConfigsErrors = _.get(serverErrors, ['orderConfigs'], []);\n\n useEffect(() => {\n if (_.size(orderConfigs) > 1 && !isAdmin && !isBetaUser) {\n const message = \"Right now, we don't have multiple case support, so we removed multiple cases\";\n reactToastify(message, TOASTIFY_TYPES.INFO);\n setTimeout(() => {\n dispatchSetOrderConfigs([_.head(orderConfigs)]);\n }, 1000); // wait for component load and page load\n }\n }, []);\n\n const renderOrderConfig = (orderConfig, orderConfigIndex) => {\n const divClassName = classNames('d-none', {\n 'd-none': !isAdmin && !isBetaUser,\n 'd-flex': (isAdmin || isBetaUser) && orderConfigIndex,\n 'border-bottom px-2 py-1 justify-content-between bg-light': true,\n });\n\n return (\n
    \n
    \n
    \n Case: \n  \n {orderConfigIndex + 1}\n
    \n \n
    \n \n
    \n );\n };\n\n const renderOrderConfigs = () => {\n if (_.isEmpty(orderConfigs)) {\n return (\n
    \n No Entry / Exit / Transactions added\n
    \n );\n }\n\n return _.map(orderConfigs, renderOrderConfig);\n };\n\n const addOrderConfigClassName = classNames('', {\n 'hidden-for-future': !isBetaUser && !isAdmin,\n 'row justify-content-center align-items-center mt-2 mb-5': true,\n });\n\n return (\n
    \n
    \n
    {renderOrderConfigs()}
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nOrderConfigsBuilder.propTypes = propTypes;\nOrderConfigsBuilder.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n orderConfigs: _.get(state, 'quantConfig.orderConfigs'),\n repeatOrder: _.get(state, 'quantConfig.repeatOrder'),\n validatorErrors: _.get(state, 'validatorErrors'),\n});\n\nconst mapDispatchToProp = (dispatch) => ({\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProp)(OrderConfigsBuilder);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nimport { CHART_PATTERNS } from 'modules/QuantBuilder/config';\nimport { setChartConfig } from 'modules/QuantBuilder/actions';\nimport { chartConfigPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n chartConfig: chartConfigPropTypes.isRequired,\n dispatchSetChartPattern: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst ChartPattern = (props) => {\n const {\n dispatchSetChartPattern, chartConfig, chartConfig: { boxUnitSize, type }\n } = props;\n\n const handleChartConfigChange = (newChartConfig) => {\n dispatchSetChartPattern({\n ...chartConfig,\n ...newChartConfig\n });\n };\n\n const renderBoxConfig = () => {\n const onBoxValueChange = (event) => handleChartConfigChange({\n [event.target.name]: event.target.value === ''\n ? undefined\n : parseFloat(event.target.value)\n });\n\n return (\n
    \n
    \n
    \n \n Box Unit Size\n \n
    \n \n
    \n
    \n );\n };\n\n const chartTypeOptions = _.map(_.omit(CHART_PATTERNS, [CHART_PATTERNS.renko]), (chartPattern, idx) => (\n \n {chartPattern}\n \n ));\n\n return (\n
    \n handleChartConfigChange({ type: newChartPattern })}\n >\n {chartTypeOptions}\n \n {(type === CHART_PATTERNS.renko) && (renderBoxConfig())}\n
    \n\n );\n};\n\nChartPattern.propTypes = propTypes;\nChartPattern.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n chartConfig: _.get(state, 'quantConfig.chartConfig'),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetChartPattern: (newChartPattern) => dispatch(setChartConfig(newChartPattern)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ChartPattern);\n","import _ from 'lodash';\nimport React, { useRef, useEffect } from 'react';\nimport { validatorProptypes } from 'common/propTypes';\n\nconst propTypes = {\n validatorErrors: validatorProptypes.isRequired\n};\nconst defaultProps = {};\n\nfunction ValidationError({ validatorErrors }) {\n if (_.isEmpty(validatorErrors)) return null;\n const currentErrorRef = useRef(null);\n\n useEffect(() => {\n currentErrorRef.current.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center'\n });\n });\n\n const getPropertyName = (property) => {\n return _.chain(property)\n .split('.')\n .filter((propertyName) => !_.includes(propertyName, 'instance'))\n .split(/[[ \\]]/)\n .join(' ')\n .value();\n };\n\n const errorMessages = _.map(validatorErrors, ({ property, message }, idx) => (\n
    \n {getPropertyName(property)}\n  \n -\n  \n {message}\n
    \n ));\n\n return (\n
    \n {errorMessages}\n
    \n );\n}\n\nexport default ValidationError;\n\nValidationError.propTypes = propTypes;\nValidationError.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { connect } from 'react-redux';\n\nimport { instrumentGroupsPropTypes, validatorProptypes } from 'common/propTypes';\nimport { setInstrumentGroups, setMaxInstrumentsInGroup } from 'modules/QuantBuilder/actions';\nimport { getValidationError } from 'common/utils/validators';\nimport { QUANT_CONFIG_FIELDS, groupingOptions } from 'modules/QuantBuilder/config';\nimport InstrumentGroupBuilder from 'common/components/InstrumentGroupBuilder';\nimport ValidationError from 'common/components/ValidationError';\n\n\nconst propTypes = {\n instrumentGroups: instrumentGroupsPropTypes.isRequired,\n dispatchSetInstrumentGroups: PropTypes.func.isRequired,\n dispatchSetMaxInstrumentsInGroup: PropTypes.func.isRequired,\n validatorErrors: validatorProptypes.isRequired,\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n segment: PropTypes.string.isRequired,\n onChangeSegment: PropTypes.func.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string).isRequired\n};\nconst defaultProps = {};\n\nconst InstrumentGroupInput = (props) => {\n const {\n instrumentGroups,\n dispatchSetInstrumentGroups,\n dispatchSetMaxInstrumentsInGroup,\n validatorErrors,\n maxInstrumentsInGroup,\n segment,\n onChangeSegment,\n segments\n } = props;\n const instrumentGroupsErrors = getValidationError(\n validatorErrors, QUANT_CONFIG_FIELDS.instrumentGroups\n );\n\n const onAddInstrumentGroup = (newInstrumentGroup) => {\n dispatchSetInstrumentGroups([...instrumentGroups, newInstrumentGroup]);\n };\n\n const onRemoveInstrumentGroup = (indexToRemove) => {\n const newInstrumentGroups = _.filter(instrumentGroups,\n (_instrumentGroup, index) => index !== indexToRemove);\n dispatchSetInstrumentGroups(newInstrumentGroups);\n };\n\n const onMaxInstrumentsInGroupChange = (newGroupingOption) => {\n dispatchSetMaxInstrumentsInGroup(newGroupingOption);\n dispatchSetInstrumentGroups([]);\n };\n\n const toggleBtns = _.map(groupingOptions, ({ type, noOfInstruments }) => (\n \n {_.titleCase(type)}\n \n ));\n\n return (\n <>\n
    \n
    \n \n
    \n\n
    \n \n {toggleBtns}\n \n
    \n
    \n\n
    \n onAddInstrumentGroup(newInstrumentGroup)}\n onRemoveInstrumentGroup={(indexToRemove) => onRemoveInstrumentGroup(indexToRemove)}\n segment={segment}\n onChangeSegment={onChangeSegment}\n segments={segments}\n />\n
    \n \n
    \n
    \n \n );\n};\n\nInstrumentGroupInput.propTypes = propTypes;\nInstrumentGroupInput.defaultProp = defaultProps;\n\nconst mapStateToProps = (state) => {\n const noOfInstrumentsInGroup = _.get(state, 'quantConfig.instrumentGroups.0', []).length;\n\n return ({\n instrumentGroups: _.get(state, 'quantConfig.instrumentGroups'),\n validatorErrors: _.get(state, 'validatorErrors'),\n maxInstrumentsInGroup: _.get(state, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup),\n onChangeSegment: _.get(state, 'onChangeSegment'),\n segment: _.get(state, 'segment'),\n segments: _.get(state, 'segments', [])\n });\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchSetInstrumentGroups: (newInstrumentGroups) => dispatch(setInstrumentGroups(newInstrumentGroups)),\n dispatchSetMaxInstrumentsInGroup: (newMaxInstrumentsInGroup) => (\n dispatch(setMaxInstrumentsInGroup(newMaxInstrumentsInGroup))\n )\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InstrumentGroupInput);\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getLabeledHashFromArray, isValueMatchingWithSchema } from 'common/utils/displayNames';\n\nconst propTypes = pipeConfigPropTypes.isRequired;\nconst defaultProps = {};\n\nconst getLabelContent = (value, outputSchema) => {\n const labelArray = getLabeledHashFromArray(isValueMatchingWithSchema(outputSchema, value));\n if (_.isEmpty(labelArray)) return ReactHtmlParser(value);\n\n const labelString = _.map(labelArray, ({ label, labelHtml }) => { return labelHtml || label; }).join(',');\n\n return ReactHtmlParser(labelString);\n};\n\nconst renderConfig = (value, key, outputSchema) => {\n const valuePathsLabel = _.isArray(value)\n ? _.map(_.compact(value), (valuePath) => getLabelContent(valuePath, outputSchema))\n : getLabelContent(value, outputSchema);\n\n let fieldContent;\n let valueContent;\n if (key !== 'valuePaths') {\n fieldContent = _.startCase(key);\n valueContent = (key === 'name') ? {value} : value;\n } else {\n fieldContent = 'Field';\n valueContent = valuePathsLabel;\n }\n\n return (\n
    \n {fieldContent}\n  : \n {valueContent}\n
    \n );\n};\n\nconst ViewPipeConfig = ({\n type, config, name, outputSchema\n}) => {\n let renderableConfig = config;\n if (type === 'customScript') {\n renderableConfig = {\n ...config,\n script: '...',\n outputSchema: '...'\n };\n }\n return [renderConfig(name, 'name', outputSchema)].concat(\n _.map(renderableConfig, (value, key) => renderConfig(value, key, outputSchema))\n );\n};\n\nViewPipeConfig.propTypes = propTypes;\nViewPipeConfig.defaultProps = defaultProps;\n\nexport default ViewPipeConfig;\n","import _ from 'lodash';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\n\nexport const isDisabledPipeName = (quantConfig, name) => {\n const orderConfigs = _.get(quantConfig, 'orderConfigs', []);\n\n const isPresent = (signalArray) => {\n return _.some(signalArray, ({ leftOperand, rightOperand }) => {\n return _.includes(leftOperand, name) || _.includes(rightOperand, name);\n });\n };\n\n return _.some(orderConfigs, (orderConfig) => {\n const entrySignalConfigs = _.get(orderConfig, 'entrySignalConfigs', []);\n const exitSignalConfigs = _.get(orderConfig, 'exitSignalConfigs', []);\n const adjustmentSignalConfigs = _.get(orderConfig, 'adjustmentSignalConfigs', []);\n\n return isPresent(entrySignalConfigs)\n || isPresent(exitSignalConfigs)\n || _.some(adjustmentSignalConfigs, (\n adjustmentSignalConfig\n ) => { return isPresent(adjustmentSignalConfig); });\n });\n};\n\nexport const updateSignalNameBasedOnPipeName = (oldPipeConfig, quantConfig, newPipeConfig) => {\n const oldName = _.get(oldPipeConfig, 'name', '');\n const newName = _.get(newPipeConfig, 'name', '');\n const oldPipeType = _.get(oldPipeConfig, 'type', '');\n const newPipeType = _.get(newPipeConfig, 'type', '');\n const isPipeDiffer = oldPipeType !== newPipeType;\n\n if (oldName === newName) return quantConfig;\n if (isPipeDiffer) {\n reactToastify(`You changed the indicator \n (${oldName}) to (${newName}), ${oldName} indicators are removed in signals, please verify`,\n TOASTIFY_TYPES.INFO);\n } else {\n reactToastify(`Indicator (${oldName}) changed to (${newName}) in signals, please verify`,\n TOASTIFY_TYPES.INFO);\n }\n\n const orderConfigs = _.get(quantConfig, 'orderConfigs', []);\n const updatedOrderConfigs = _.map(orderConfigs, (orderConfig) => {\n const entrySignalConfigs = _.get(orderConfig, 'entrySignalConfigs', []);\n const exitSignalConfigs = _.get(orderConfig, 'exitSignalConfigs', []);\n const adjustmentSignalConfigs = _.get(orderConfig, 'adjustmentSignalConfigs', []);\n\n const updatedArray = (signalArray) => {\n const newSignalArray = _.compact(_.map(signalArray, (signal) => {\n const { leftOperand, rightOperand } = signal;\n const [leftOperandFirstName] = _.split(leftOperand, '.');\n const [rightOperandFirstName] = _.split(rightOperand, '.');\n const isChangeLeftOperand = leftOperandFirstName === oldName;\n const isChangeRightOperand = rightOperandFirstName === oldName;\n\n // case 1: if user changed the pipe in edit flow.. we have to remove the old pipe in signals..\n if (isPipeDiffer) {\n if (isChangeLeftOperand || isChangeRightOperand) { return null; }\n return signal;\n }\n\n // case 2: when user changed the pipename.. we replace the pipe name of same pipe\n return {\n ...signal,\n leftOperand: (!isPipeDiffer && isChangeLeftOperand)\n ? _.replace(leftOperand, oldName, newName) : leftOperand,\n rightOperand: (!isPipeDiffer && isChangeRightOperand)\n ? _.replace(rightOperand, oldName, newName) : rightOperand\n };\n }));\n\n return _.map(newSignalArray, (signal, idx) => (!idx ? { ...signal, conditionOperator: '' } : signal));\n };\n\n return {\n ...orderConfig,\n entrySignalConfigs: updatedArray(entrySignalConfigs),\n exitSignalConfigs: updatedArray(exitSignalConfigs),\n adjustmentSignalConfigs: _.map(adjustmentSignalConfigs, (adjustmentSignalConfig) => {\n return updatedArray(adjustmentSignalConfig);\n })\n };\n });\n\n return { ...quantConfig, orderConfigs: updatedOrderConfigs };\n};\n\nexport const getDropDownFieldValues = (pipeConfig, configKey) => {\n const { config: { timeFrame, basedOn, source } } = pipeConfig;\n const configOptions = PipeDefinitionUtility.getPipeConfigOptions(pipeConfig.type);\n\n if (configOptions[configKey]) {\n return {\n id: configKey,\n options: configOptions[configKey],\n value: _.get(pipeConfig, ['config', configKey])\n };\n }\n\n switch (configKey) {\n case 'timeFrame':\n return { id: 'timeFrame', options: ['day', 'week'], value: timeFrame };\n case 'basedOn':\n return { id: 'basedOn', options: ['expiry', 'signal', 'dateTime'], value: basedOn };\n case 'source':\n return { id: 'source', options: ['open', 'high', 'low', 'close', 'hlc3'], value: source };\n default:\n return { id: '', options: [], value: '' };\n }\n};\n","import _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { outputSchemaPropTypes, pipeConfigsPropTypes, quantConfigPropTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ViewPipeConfig from './ViewPipeConfig';\nimport { isDisabledPipeName } from './PipeForm/helper';\n\nconst propTypes = {\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n onEditPipe: PropTypes.func.isRequired,\n onRemovePipe: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n quantConfig: quantConfigPropTypes.isRequired\n};\nconst defaultProps = {};\n\nexport default class PipesList extends React.Component {\n renderEditBtn = (pipeConfig, pipeConfigIndex) => {\n const { onEditPipe } = this.props;\n const args = {\n isInEditMode: true,\n pipeConfig,\n pipeConfigIndex,\n formTitle: 'Edit indicator',\n };\n\n return (\n onEditPipe(args)}\n >\n edit\n Edit\n \n );\n };\n\n renderPipe = (pipeConfig, pipeConfigIndex) => {\n const { onRemovePipe, outputSchema, quantConfig } = this.props;\n const { name, config, type } = pipeConfig;\n const isDisable = isDisabledPipeName(quantConfig, name);\n\n return (\n
    \n
    \n {_.startCase(type)}\n\n
    \n
    \n \n
    \n\n
    \n {this.renderEditBtn(pipeConfig, pipeConfigIndex)}\n {isDisable ? (\n \n \n delete_outline\n \n \n ) : (\n \n delete_outline\n \n )}\n\n
    \n
    \n\n
    \n
    \n );\n }\n\n render() {\n const { pipeConfigs } = this.props;\n\n if (_.isEmpty(pipeConfigs)) {\n return (

    No Indicator added

    );\n }\n\n return (\n
    \n {_.map(pipeConfigs, this.renderPipe)}\n
    \n );\n }\n}\n\nPipesList.propTypes = propTypes;\nPipesList.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n configKey: PropTypes.string.isRequired,\n config: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n indicatorType: PropTypes.string.isRequired\n};\nconst defaultProps = {\n config: null\n};\n\nconst statement = {\n heikinashi: (period, indicatorType) => (\n `last ${period} heikinashi candle should be ${indicatorType[1]} ${indicatorType[2] || ''}`\n ),\n renko: (period, indicatorType) => `last ${period} brick should be ${indicatorType[1]}`\n};\n\nconst Hints = ({ configKey, config, indicatorType }) => {\n if (configKey !== 'noOfCandles') return null;\n\n const splittedIndicatorType = indicatorType.split(/(?=[A-Z])/);\n\n if (!_.includes(['heikinashi', 'renko'], _.head(splittedIndicatorType))) return null;\n\n return (\n \n {statement[_.head(splittedIndicatorType)](config, splittedIndicatorType)}\n \n );\n};\n\nHints.propTypes = propTypes;\nHints.defaultProps = defaultProps;\n\nexport default Hints;\n","import _ from 'lodash';\nimport { SEGMENT_CATEGORY_IN_QUANT, SEGMENT_CONFIG } from 'common/constants/index';\nimport { updatedPipeConfigs } from 'ui/run/RunForm/config';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\n\nexport const onUpdatePipeConfigBasedOnIndicator = (segment, pipeConfig) => {\n if (segment === SEGMENT_CONFIG.equity) {\n return _.head(updatedPipeConfigs(\n [pipeConfig], SEGMENT_CATEGORY_IN_QUANT.equity, SEGMENT_CATEGORY_IN_QUANT.month1Price\n ));\n }\n\n if (segment === SEGMENT_CONFIG.future) {\n return _.head(updatedPipeConfigs(\n [pipeConfig], SEGMENT_CATEGORY_IN_QUANT.month1Price, SEGMENT_CATEGORY_IN_QUANT.equity\n ));\n }\n\n return pipeConfig;\n};\n\nexport const indicatorNameChange = (pipeConfigs, indicatorType, segment) => {\n const indicatorTypeArray = _.filter(pipeConfigs, ({ type }) => type === indicatorType);\n if (_.isEmpty(indicatorTypeArray)) {\n return onUpdatePipeConfigBasedOnIndicator(\n segment, PipeDefinitionUtility.getPipeConfigDefaults(indicatorType)\n );\n }\n\n const indicatorName = _.get(\n PipeDefinitionUtility.getPipeConfigDefaults(indicatorType),\n 'name',\n indicatorType\n );\n const period = _.get(\n PipeDefinitionUtility.getPipeConfigDefaults(indicatorType),\n 'config.noOfCandles',\n indicatorTypeArray.length * 10\n );\n\n return onUpdatePipeConfigBasedOnIndicator(segment,\n { ...PipeDefinitionUtility.getPipeConfigDefaults(indicatorType), name: `${indicatorName}${period}` });\n};\n\nexport const mandatoryMultipleInstrumentForPipes = () => [\n // getPipeConfigDefaults('augmentedDickeyFuller').type,\n // getPipeConfigDefaults('densityCurve').type,\n PipeDefinitionUtility?.getPipeConfigDefaults('ratio').type,\n // getPipeConfigDefaults('ratioStandardDeviation').type,\n // getPipeConfigDefaults('zScore').type,\n];\n\nexport const isInvalidForInstrument = (pipeConfig, maxInstrumentsInGroup) => {\n const { type, config: { valuePaths = [] } } = pipeConfig;\n\n const hasDefaultValuePaths = _.filter(_.get(\n PipeDefinitionUtility.getPipeConfigDefaults(type),\n 'config.valuePaths',\n []\n ),\n (valuePath) => {\n return _.includes(valuePaths, valuePath);\n }).length === valuePaths.length;\n\n return _.includes(mandatoryMultipleInstrumentForPipes(), type)\n && (maxInstrumentsInGroup === 1 && hasDefaultValuePaths);\n};\n","import wrappedFetch from './base';\n\nexport const validateCustomScript = (script, previousPipeConfigs) => {\n const params = {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n pipeConfigs: previousPipeConfigs,\n script\n }),\n };\n const url = '/external/api/validate_custom_script';\n\n return wrappedFetch(url, params)\n .then((response) => response.json())\n .catch((err) => {\n console.log('err trying to validate script', (err && err.message) ? err.message.slice(0, 200) : err);\n const error = [\n 'Error validating script. Please check your script.',\n 'If you are still having issues, try again after sometime or please contact support.'\n ];\n return { success: false, error };\n });\n};\n","import React, { useMemo, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { Controller } from 'react-hook-form';\nimport { validateCustomScript } from 'common/api/quantConfig';\n\nimport { pipeConfigPropTypes, pipeConfigsPropTypes } from 'common/propTypes';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst OUTPUT_SCHEMA_VALIDATION = {\n required: {\n value: true,\n message: 'script is required'\n },\n validate: (value) => {\n try {\n JSON.parse(value);\n return null;\n } catch {\n return 'Invalid JSON';\n }\n }\n};\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n onUpdate: PropTypes.func.isRequired,\n \n errors: PropTypes.object.isRequired,\n \n control: PropTypes.object.isRequired,\n \n trigger: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst renderScriptError = (scriptError) => {\n if (!scriptError) {\n return null;\n }\n return (\n
    \n
    \n        {scriptError.message}\n\n      
    \n
    \n );\n};\n\nconst CustomScriptConfigForm = ({\n pipeConfig, pipeConfigs, onUpdate, errors, control, trigger\n}) => {\n const previousPipeConfigs = (() => {\n const index = pipeConfigs.findIndex((config) => config.name === pipeConfig.name);\n return pipeConfigs.slice(0, index === -1 ? pipeConfigs.length : index);\n })();\n const { config: { script, outputSchema } } = pipeConfig;\n const onConfigItemUpdate = useCallback((key, value) => {\n onUpdate({\n ...pipeConfig,\n config: {\n ...pipeConfig.config,\n [key]: value,\n }\n });\n }, [pipeConfig, onUpdate]);\n\n const scriptValidation = useMemo(() => ({\n required: {\n value: true,\n message: 'script is required',\n },\n validate: async () => {\n const result = await validateCustomScript(script, previousPipeConfigs);\n const { success, schema, error } = result;\n if (success) {\n onConfigItemUpdate('outputSchema', JSON.stringify(schema, null, 2));\n }\n return error && error.join ? error.join('\\n') : error;\n }\n }), [onConfigItemUpdate, script]);\n\n useEffect(() => {\n const keydownHandler = (e) => {\n if (e.key === 'Enter' && e.ctrlKey) {\n trigger(['script']);\n }\n };\n document.addEventListener('keydown', keydownHandler);\n return () => {\n document.removeEventListener('keydown', keydownHandler);\n };\n }, []);\n\n return (\n <>\n \n Script\n (\n {\n onConfigItemUpdate('script', code);\n onChange(code);\n }}\n value={value}\n ref={ref}\n />\n )}\n name=\"script\"\n defaultValue={script}\n control={control}\n rules={scriptValidation}\n />\n {renderScriptError(errors.script)}\n \n \n \n OutputSchema(Will be autofilled)\n \n (\n {\n onConfigItemUpdate('outputSchema', code);\n onChange(code);\n }}\n value={value}\n ref={ref}\n />\n )}\n name=\"outputSchema\"\n defaultValue={outputSchema}\n control={control}\n rules={OUTPUT_SCHEMA_VALIDATION}\n />\n \n \n \n );\n};\n\nCustomScriptConfigForm.propTypes = propTypes;\nCustomScriptConfigForm.defaultProps = defaultProps;\n\nexport default CustomScriptConfigForm;\n","import _ from 'lodash';\nimport Modal from 'common/components/ModalComponent';\nimport PropTypes from 'prop-types';\nimport React, {\n useEffect, useState, useRef, useCallback\n} from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { connect } from 'react-redux';\nimport { Form } from 'react-bootstrap';\nimport {\n outputSchemaPropTypes, pipeConfigPropTypes, pipeConfigsPropTypes\n} from 'common/propTypes';\nimport { useForm, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\n\nimport {\n CANDLE_INTERVALS,\n configDisplayNames,\n PipeDefinitionUtility,\n} from 'v2/common/quantConfig/index';\nimport {\n getSelectedLabelForIndicator, getValuePathOptionsForIndicator, removeTagsFromString\n} from 'common/utils/displayNames';\nimport { getConfigAndPeriodValidator } from 'common/utils/validators';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sanitizeOutputSchema } from 'ui/run/RunForm/config';\nimport TimeSelector from 'common/components/TimeSelector';\nimport DateSelector from 'common/components/DateSelector';\nimport moment from 'moment';\nimport Hints from './Hints';\nimport { indicatorNameChange, isInvalidForInstrument } from '../helper';\nimport { getDropDownFieldValues } from './helper';\nimport CustomScriptConfigForm from './customScriptConfigForm';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n title: PropTypes.string,\n onSubmit: PropTypes.func,\n onUpdate: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes,\n validators: PropTypes.shape({}),\n preOccupiedPipeNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n segment: PropTypes.string,\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n};\n\nconst defaultProps = {\n outputSchema: {},\n validators: {},\n title: '',\n segment: '',\n onSubmit: () => { }\n};\n\nconst PipeForm = (props) => {\n const {\n pipeConfig, onUpdate, outputSchema, title, onClose, onSubmit, validators, pipeConfigs,\n maxInstrumentsInGroup, segment\n } = props;\n const [shouldConfirmClose, setShouldConfirmClose] = useState(false);\n const {\n errors, handleSubmit, control, reset, setValue, trigger\n } = useForm();\n const indicatorTypeRef = useRef();\n\n const { config, type } = pipeConfig;\n\n const isInvalid = isInvalidForInstrument(pipeConfig, maxInstrumentsInGroup);\n\n useEffect(() => {\n if (isInvalid) {\n onUpdate({ ...pipeConfig, config: { ...config, valuePaths: [_.head(pipeConfig.config.valuePaths)] } });\n }\n }, [isInvalid]);\n\n useEffect(() => {\n setValue('name', pipeConfig.name);\n _.each(pipeConfig.config, (configValue, configKey) => { setValue(configKey, configValue); });\n reset({ valuePaths: pipeConfig.config.valuePaths });\n }, [pipeConfig]);\n\n const onPipeConfigUpdate = (updatedValue) => {\n onUpdate({ ...pipeConfig, ...updatedValue });\n setShouldConfirmClose(true);\n };\n\n const onUpdateConfigInput = (key, value, isUpdateNormally = false) => {\n const newConfig = _.cloneDeep(config);\n\n if (isUpdateNormally) {\n newConfig[key] = value;\n } else {\n newConfig[key] = /[a-zA-Z]/g.test(value) ? value : parseFloat(value);\n }\n onPipeConfigUpdate({ config: newConfig });\n };\n\n const getPipeNameValidator = () => {\n const { preOccupiedPipeNames } = props;\n return {\n ..._.get(validators, 'name'),\n validate: (pipeName) => (_.includes(preOccupiedPipeNames, pipeName) ? 'Name already used' : null)\n };\n };\n\n const getValuePathValidator = (valuePathValidator) => {\n if (!valuePathValidator) return null;\n\n const { minLength, maxLength } = valuePathValidator;\n return {\n ...valuePathValidator,\n validate: (newValuePath) => {\n if (_.size(newValuePath) > maxLength.value) return maxLength.message;\n if (_.size(newValuePath) < minLength.value) return minLength.message;\n if (isInvalid) return 'should have pair trade';\n\n return null;\n }\n };\n };\n\n const renderValuePathsOptions = (validator) => {\n const { config: { valuePaths } } = pipeConfig;\n const isNonEditableValuePaths = _.includes(\n PipeDefinitionUtility.getIndicatorsWithNonEditableValuePaths(),\n pipeConfig.type\n );\n\n const selectedArray = getSelectedLabelForIndicator(valuePaths, outputSchema);\n const onValuePathChange = (value, onChange) => {\n const newValuePath = _.map(value, 'id');\n\n onUpdateConfigInput('valuePaths', (newValuePath));\n onChange(newValuePath);\n };\n\n const options = getValuePathOptionsForIndicator(sanitizeOutputSchema(outputSchema, segment));\n // based on segment shown shcema\n return (\n (\n { return ReactHtmlParser(option.labelHtml || option.label); }}\n selected={removeTagsFromString(selectedArray)}\n onChange={(value) => onValuePathChange(value, onChange)}\n />\n )}\n control={control}\n defaultValue={selectedArray}\n name=\"valuePaths\"\n rules={getValuePathValidator(validator)}\n />\n );\n };\n const renderAccuracy = (validator) => {\n const { config: { accuracy } } = pipeConfig;\n const accuracyValues = [90, 95, 99];\n const accuracyValuesStyle = classNames(errors.accuracy ? 'is-invalid' : '');\n\n return (\n
    \n (\n {\n onUpdateConfigInput(event.target.name, event.target.value);\n onChange(event.target.value);\n }}\n >\n {_.map(accuracyValues, (accuracyValue, index) => (\n \n ))}\n \n )}\n control={control}\n defaultValue={accuracy}\n name=\"accuracy\"\n rules={validator}\n />\n\n
    \n );\n };\n\n const renderDropDownFields = (validator, configKey) => {\n const { id, options, value } = getDropDownFieldValues(pipeConfig, configKey);\n if (_.isEmpty(options)) return null;\n const dropDownStyle = classNames(errors[id] ? 'is-invalid' : '');\n\n return (\n
    \n (\n {\n const isResetDateAndTime = value === 'dateTime'\n && event.target.value !== 'dateTime' && configKey === 'basedOn';\n if (isResetDateAndTime) {\n onPipeConfigUpdate({\n config: {\n ...config, date: '', time: '', [event.target.name]: event.target.value\n }\n });\n } else {\n onUpdateConfigInput(event.target.name, event.target.value);\n }\n onChange(event.target.value);\n }}\n >\n {_.map(options, (option) => ())}\n \n )}\n control={control}\n defaultValue={value}\n name={id}\n rules={validator}\n />\n
    \n );\n };\n\n const renderCandleInterval = (configValue, configKey, validator) => {\n const candleIntervalStyle = classNames(\n 'custom-select',\n errors.candleInterval ? 'is-invalid' : ''\n );\n const candleIntervalOptions = _.map(CANDLE_INTERVALS, ({ displayValue, value }, idx) => (\n \n ));\n\n return (\n (\n {\n onUpdateConfigInput(configKey, event.target.value);\n onChange(event.target.value);\n }}\n >\n {candleIntervalOptions}\n \n )}\n control={control}\n defaultValue={configValue}\n name=\"candleInterval\"\n rules={validator}\n />\n );\n };\n\n const renderPipeTypes = () => {\n const onSearchSelect = (result) => {\n if (_.isEmpty(result)) return;\n\n indicatorTypeRef.current.blur();\n const newIndicatorType = _.get(result, [0, 'value']);\n onPipeConfigUpdate(indicatorNameChange(pipeConfigs, newIndicatorType, segment));\n };\n\n return (\n
    \n \n
    \n search\n event.target.select()}\n clearButton\n selected={[type]}\n highlightOnlyResult\n options={PipeDefinitionUtility.getPipeConfigSearchTerms()}\n onChange={onSearchSelect}\n />\n
    \n
    \n );\n };\n\n const renderPipeName = () => {\n const { name } = pipeConfig;\n const pipeNameStyle = classNames(errors.name ? 'is-invalid' : '');\n\n return (\n \n Name\n (\n
    \n edit\n {\n onPipeConfigUpdate({ name: event.target.value });\n onChange(event.target.value);\n }}\n />\n
    \n )}\n rules={getPipeNameValidator()}\n name=\"name\"\n defaultValue={name}\n control={control}\n />\n \n
    \n );\n };\n\n const renderTime = useCallback(\n (configKey) => {\n const { config: { time, basedOn } } = pipeConfig;\n if (basedOn !== 'dateTime') return null;\n\n return (\n onUpdateConfigInput(configKey, newTime, true)}\n selectedTime={time}\n className=\"form-control\"\n format=\"HH:mm:ss\"\n />\n );\n },\n [pipeConfig],\n );\n\n const renderDate = useCallback(\n (configKey) => {\n const { config: { date, basedOn } } = pipeConfig;\n if (basedOn !== 'dateTime') return null;\n\n return (\n {\n onUpdateConfigInput(configKey, (value ? moment(value).format('YYYY-MM-DD') : ''), true);\n }}\n />\n );\n },\n [pipeConfig],\n );\n\n const renderConfigField = (configKey, configValue) => {\n const { config: { candleInterval } } = pipeConfig;\n const configOptions = PipeDefinitionUtility.getPipeConfigOptions(pipeConfig.type);\n let configFieldContent;\n const validator = _.get(validators, ['config', configKey]);\n const errorClass = classNames(errors[configKey] ? 'is-invalid' : '');\n\n if (configKey === 'valuePaths') {\n configFieldContent = renderValuePathsOptions(validator);\n } else if (configKey === 'accuracy') {\n configFieldContent = renderAccuracy(validator);\n } else if (configKey === 'time') {\n configFieldContent = renderTime(configKey);\n } else if (configKey === 'date') {\n configFieldContent = renderDate(configKey);\n } else if (configKey === 'timeFrame' || configKey === 'basedOn' || configKey === 'source') {\n configFieldContent = renderDropDownFields(validator, configKey);\n } else if (configOptions && configOptions[configKey]) {\n configFieldContent = renderDropDownFields(validator, configKey);\n } else if (configKey === 'candleInterval') {\n configFieldContent = renderCandleInterval(configValue, configKey, validator);\n } else {\n configFieldContent = (\n (\n {\n onUpdateConfigInput(configKey, (event.target.value || 0));\n onChange(event.target.value);\n }}\n />\n )}\n name={configKey}\n defaultValue={configValue}\n control={control}\n rules={getConfigAndPeriodValidator(validator, configKey, candleInterval)}\n />\n );\n }\n\n return configFieldContent;\n };\n\n const renderConfigFields = () => {\n if (type === 'customScript') {\n return (\n
    \n \n
    \n );\n }\n const configFieldsContent = _.map(_.keys(config), (configKey, idx) => {\n const configValue = config[configKey];\n const configLabel = _.get(configDisplayNames, [configKey], configKey);\n const basedOn = _.get(config, 'basedOn', '');\n if (basedOn !== 'dateTime' && _.includes(['time', 'date'], configKey)) return null;\n\n return (\n
    \n \n \n {_.startCase(configLabel)}\n \n {renderConfigField(configKey, configValue)}\n \n \n \n
    \n );\n });\n\n return (\n
    \n {configFieldsContent}\n
    \n );\n };\n\n const modalSaveButtonProps = {\n 'data-track-category': 'Indicator',\n 'data-track-action': _.get(pipeConfig, 'type', ''),\n 'data-track-label': 'Indicator'\n };\n\n return (\n
    \n \n
    \n
    \n {renderPipeTypes()}\n
    \n
    \n {renderPipeName()}\n
    \n {renderConfigFields()}\n
    \n \n
    \n );\n};\n\nPipeForm.propTypes = propTypes;\nPipeForm.defaultProps = defaultProps;\n\nfunction mapStateToProps(state) {\n const noOfInstrumentsInGroup = _.get(state, 'quantConfig.instrumentGroups.0', []).length;\n\n return {\n outputSchema: _.get(state, 'outputSchema'),\n pipeConfigs: _.get(state, 'quantConfig.pipeConfigs'),\n segment: _.get(state, 'segment'),\n maxInstrumentsInGroup: _.get(state, 'quantConfig.maxInstrumentsInGroup', noOfInstrumentsInGroup)\n };\n}\n\nexport default connect(mapStateToProps)(PipeForm);\n","import _ from 'lodash';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { onUpdatePipeConfigBasedOnIndicator } from '../helper';\n\nexport const suggestionPipes = () => [\n PipeDefinitionUtility.getPipeConfigDefaults('aroon').type,\n PipeDefinitionUtility.getPipeConfigDefaults('averageDirectionalIndex').type,\n PipeDefinitionUtility.getPipeConfigDefaults('exponentialMovingAverage').type,\n PipeDefinitionUtility.getPipeConfigDefaults('movingAverageConvergenceDivergence').type,\n PipeDefinitionUtility.getPipeConfigDefaults('simpleMovingAverage').type,\n PipeDefinitionUtility.getPipeConfigDefaults('weightedMovingAverage').type,\n PipeDefinitionUtility.getPipeConfigDefaults('bollingerBand').type,\n PipeDefinitionUtility.getPipeConfigDefaults('pivotPoints').type,\n PipeDefinitionUtility.getPipeConfigDefaults('superTrend').type,\n];\n\nexport const suggestionCandleConfig = (lastAddedConfig, suggestionPipeType, pipeConfigs, segment) => {\n switch (suggestionPipeType) {\n case PipeDefinitionUtility.getPipeConfigDefaults('currentCandle').type: // particulary for currentCandle\n const currentCandleConfig = onUpdatePipeConfigBasedOnIndicator(\n segment,\n PipeDefinitionUtility.getPipeConfigDefaults('currentCandle')\n );\n const {\n config: currentCandleValueConfig, name: currentCandleName, type: currentCandleType\n } = currentCandleConfig;\n const { config: { candleInterval } } = lastAddedConfig;\n\n const currentCandlesInPipeConfig = _.filter(pipeConfigs, ({ type }) => type === currentCandleType);\n\n if (!candleInterval && !_.isEmpty(currentCandlesInPipeConfig)) return {};\n if (!candleInterval) return onUpdatePipeConfigBasedOnIndicator(segment, currentCandleConfig);\n\n const isSameConfigPresent = _.find(pipeConfigs, (\n { type, config: { candleInterval: pipeCandleInterval } }\n ) => type === currentCandleType && pipeCandleInterval === candleInterval);\n\n if (isSameConfigPresent) return {};\n\n return onUpdatePipeConfigBasedOnIndicator(segment, {\n ...currentCandleConfig,\n name: `${currentCandleName} ${candleInterval}`,\n config: { ...currentCandleValueConfig, candleInterval }\n });\n\n default:\n return {};\n }\n};\n\nexport const rightOperandSuggestionName = (type, lastPipeName) => {\n switch (type) {\n case PipeDefinitionUtility.getPipeConfigDefaults('aroon').type:\n return lastPipeName === 'aroonUp' ? lastPipeName : `${lastPipeName}.aroonUp`;\n case PipeDefinitionUtility.getPipeConfigDefaults('averageDirectionalIndex').type:\n return lastPipeName === 'pdi' ? lastPipeName : `${lastPipeName}.pdi`;\n case PipeDefinitionUtility.getPipeConfigDefaults('movingAverageConvergenceDivergence').type:\n return lastPipeName === 'macd' ? lastPipeName : `${lastPipeName}.macd`;\n case PipeDefinitionUtility.getPipeConfigDefaults('bollingerBand').type:\n return lastPipeName === 'upperBollingerBand' ? lastPipeName : `${lastPipeName}.upperBollingerBand`;\n case PipeDefinitionUtility.getPipeConfigDefaults('pivotPoints').type:\n return lastPipeName === 'pivotPoint' ? lastPipeName : `${lastPipeName}.pivotPoint`;\n default:\n return lastPipeName;\n }\n};\n\nexport const getIndicatorBasedOnSignalConfig = (\n outputSchema, lastAddedPipeConfig, signalConfigs, leftOperandName\n) => {\n const { name: lastPipeName, type } = lastAddedPipeConfig;\n\n const matchingPipeInSchema = _.find(outputSchema, ({ name }) => name === lastPipeName);\n // have to do for aroon types.. like subcategory..\n const name = _.get(matchingPipeInSchema, 'name', rightOperandSuggestionName(type, lastPipeName));\n\n return {\n indicatorName: name,\n signalConfig: {\n conditionOperator: signalConfigs.length ? 'and' : '',\n leftOperand: `${leftOperandName}.close`,\n operator: 'crossesAbove',\n rightOperand: name,\n }\n };\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n orderConfigsPropTypes, outputSchemaPropTypes, pipeConfigPropTypes, pipeConfigsPropTypes\n} from 'common/propTypes';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { SIGNAL_CONFIG } from 'modules/QuantBuilder/config/signalConfigs';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { getIndicatorBasedOnSignalConfig, suggestionCandleConfig, suggestionPipes } from './config';\n\nconst propTypes = {\n onUpdatePipeConfigs: PropTypes.func.isRequired,\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n lastAddedPipeConfig: pipeConfigPropTypes,\n onEmptyLastAddedPipeConfig: PropTypes.func.isRequired,\n onUpdateOrderConfig: PropTypes.func.isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes.isRequired,\n segment: PropTypes.string\n};\n\nconst defaultProps = {\n lastAddedPipeConfig: null,\n segment: ''\n};\n\nconst PipeSuggestionAdapter = ({\n pipeConfigs, onUpdatePipeConfigs, lastAddedPipeConfig, onEmptyLastAddedPipeConfig,\n onUpdateOrderConfig, orderConfigs, outputSchema, segment\n}) => {\n if (!lastAddedPipeConfig) return null;\n const { type } = lastAddedPipeConfig;\n const isSuggestionShow = _.includes(suggestionPipes(), type);\n if (!isSuggestionShow) return null;\n\n const oneIndentation = ' ';\n const suggestionConfig = suggestionCandleConfig(\n lastAddedPipeConfig,\n PipeDefinitionUtility.getPipeConfigDefaults('currentCandle').type,\n pipeConfigs,\n segment\n );\n\n if (!_.keys(suggestionConfig).length) return null;\n\n const { config: { candleInterval }, name: suggestionName } = suggestionConfig;\n const orderConfigIndex = 0;\n const entrySignalConfigs = _.get(orderConfigs, [orderConfigIndex, SIGNAL_CONFIG.ENTRY], []);\n\n const { indicatorName, signalConfig } = getIndicatorBasedOnSignalConfig(\n outputSchema, lastAddedPipeConfig, entrySignalConfigs, suggestionName\n );\n\n const handleUpdateOrderConfig = () => {\n const newOrderConfigs = _.cloneDeep(orderConfigs);\n newOrderConfigs[orderConfigIndex] = {\n ...newOrderConfigs[orderConfigIndex],\n [SIGNAL_CONFIG.ENTRY]: [...entrySignalConfigs, signalConfig],\n };\n\n onUpdateOrderConfig(newOrderConfigs);\n };\n\n return (\n
    \n
    \n
    \n lightbulb\n Suggestions\n
    \n\n
    \n Do you want\n \n "\n {oneIndentation}\n {candleInterval}\n {oneIndentation}\n candle close price\n {oneIndentation}\n Crosses Above\n {oneIndentation}\n {indicatorName}\n "\n \n . Please add this indicator and Entry when\n
    \n\n
    \n {\n onUpdatePipeConfigs([...pipeConfigs, suggestionConfig]);\n onEmptyLastAddedPipeConfig();\n handleUpdateOrderConfig();\n }}\n >\n Add\n \n
    \n onEmptyLastAddedPipeConfig()}>\n \n cancel\n \n \n
    \n
    \n );\n};\n\nPipeSuggestionAdapter.propTypes = propTypes;\nPipeSuggestionAdapter.defaultProps = defaultProps;\n\nexport default withErrorBoundary(PipeSuggestionAdapter, '', false);\n","import _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\n\nimport ValidationError from 'common/components/ValidationError';\nimport { QUANT_CONFIG_FIELDS } from 'modules/QuantBuilder/config';\nimport { connect } from 'react-redux';\nimport { getValidationError } from 'common/utils/validators';\nimport {\n orderConfigsPropTypes, outputSchemaPropTypes, pipeConfigsPropTypes, quantConfigPropTypes, validatorProptypes\n} from 'common/propTypes';\nimport { setOrderConfigs, setPipeConfigs, setQuantConfig } from 'modules/QuantBuilder/actions';\nimport PipesList from './PipesList';\nimport PipeForm from './PipeForm';\nimport PipeSuggestionAdapter from './PipeSuggestionAdapter/index';\nimport { indicatorNameChange } from './helper';\nimport { updateSignalNameBasedOnPipeName } from './PipeForm/helper';\n\n\nconst propTypes = {\n pipeConfigs: pipeConfigsPropTypes.isRequired,\n dispatchSetPipeConfigs: PropTypes.func.isRequired,\n validatorErrors: validatorProptypes.isRequired,\n pipesValidators: PropTypes.shape({}).isRequired,\n orderConfigs: orderConfigsPropTypes.isRequired,\n outputSchema: outputSchemaPropTypes,\n dispatchSetOrderConfigs: PropTypes.func.isRequired,\n segment: PropTypes.string,\n quantConfig: quantConfigPropTypes.isRequired,\n dispatchSetQuantConfig: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n outputSchema: {},\n segment: ''\n};\n\nclass Pipes extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n pipeConfig: null,\n formTitle: '',\n pipeConfigIndex: null,\n shouldRenderPipeForm: false,\n isInEditMode: false,\n lastAddedPipeConfig: null\n };\n }\n\n onRemovePipe = (pipeConfigIndex) => () => {\n const { pipeConfigs, dispatchSetPipeConfigs } = this.props;\n const newPipeConfigs = _.filter(pipeConfigs, (pipeConfig, pipeIndex) => pipeIndex !== pipeConfigIndex);\n dispatchSetPipeConfigs(newPipeConfigs);\n }\n\n onSavePipeConfig = () => {\n const { pipeConfig, pipeConfigIndex } = this.state;\n const {\n dispatchSetPipeConfigs, pipeConfigs, quantConfig, dispatchSetQuantConfig\n } = this.props;\n const newPipeConfigs = pipeConfigs;\n let oldPipeConfig = null;\n\n if (pipeConfigIndex === null) newPipeConfigs.push(pipeConfig);\n else {\n oldPipeConfig = newPipeConfigs[pipeConfigIndex];\n newPipeConfigs[pipeConfigIndex] = pipeConfig;\n }\n\n this.setState({ shouldRenderPipeForm: false, isInEditMode: false },\n () => {\n dispatchSetPipeConfigs(newPipeConfigs);\n this.setState({ lastAddedPipeConfig: pipeConfig }, () => {\n if (!_.isEmpty(oldPipeConfig)) {\n dispatchSetQuantConfig(updateSignalNameBasedOnPipeName(oldPipeConfig, quantConfig, pipeConfig));\n }\n });\n });\n }\n\n setPipeConfig = ({\n pipeConfig, formTitle, pipeConfigIndex, isInEditMode\n }) => {\n this.setState({\n pipeConfig,\n formTitle,\n pipeConfigIndex,\n isInEditMode,\n shouldRenderPipeForm: true,\n });\n }\n\n getPreOccupiedNames = () => {\n const { isInEditMode, pipeConfigIndex } = this.state;\n const { pipeConfigs } = this.props;\n\n if (!isInEditMode) return _.map(pipeConfigs, 'name');\n return _.compact(_.map(pipeConfigs, (config, idx) => ((idx !== pipeConfigIndex) ? config.name : null)));\n }\n\n renderAddPipeBtn = () => {\n const { pipeConfigs, segment } = this.props;\n\n const args = {\n pipeConfig: indicatorNameChange(pipeConfigs, 'simpleMovingAverage', segment),\n formTitle: 'Add',\n pipeConfigIndex: null,\n isInEditMode: false,\n };\n\n const isDisabled = (pipeConfigs || []).length > 9;\n return (\n <>\n this.setPipeConfig(args)}\n >\n library_add\n Add Indicator\n \n {isDisabled\n &&

    Only possible to add 10 indicators

    }\n \n );\n };\n\n render = () => {\n const {\n pipeConfigs, validatorErrors, pipesValidators, outputSchema,\n dispatchSetPipeConfigs, orderConfigs, dispatchSetOrderConfigs, segment, quantConfig\n } = this.props;\n\n const pipeErrors = getValidationError(validatorErrors, QUANT_CONFIG_FIELDS.pipeConfigs);\n const {\n pipeConfig, shouldRenderPipeForm, formTitle, lastAddedPipeConfig\n } = this.state;\n const currentIndicatorType = _.get(pipeConfig, 'type', 'simpleMovingAverage');\n\n return (\n
    \n \n {shouldRenderPipeForm && (\n this.setState({ shouldRenderPipeForm: false })}\n onUpdate={(newPipeConfig) => this.setState({ pipeConfig: newPipeConfig })}\n onSubmit={this.onSavePipeConfig}\n />\n )}\n\n
    \n
    \n \n
    \n\n this.setState({ lastAddedPipeConfig: null })}\n onUpdateOrderConfig={dispatchSetOrderConfigs}\n outputSchema={outputSchema}\n />\n\n
    \n {this.renderAddPipeBtn()}\n
    \n
    \n
    \n );\n }\n}\n\nPipes.propTypes = propTypes;\nPipes.defaultProps = defaultProps;\n\nfunction mapStateToProps(state) {\n const quantConfig = _.get(state, 'quantConfig');\n\n return {\n pipeConfigs: _.get(quantConfig, 'pipeConfigs'),\n validatorErrors: _.get(state, 'validatorErrors'),\n pipesValidators: _.get(state, 'quantConfigValidators.pipesValidators', {}),\n outputSchema: _.get(state, 'outputSchema'),\n orderConfigs: _.get(quantConfig, 'orderConfigs'),\n segment: _.get(state, 'segment'),\n quantConfig\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n dispatchSetPipeConfigs: (newPipeConfigs) => dispatch(setPipeConfigs(newPipeConfigs)),\n dispatchSetOrderConfigs: (newOrderConfigs) => dispatch(setOrderConfigs(newOrderConfigs)),\n dispatchSetQuantConfig: (newQuantConfig) => dispatch(setQuantConfig(newQuantConfig))\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Pipes);\n","import _ from 'lodash';\nimport React from 'react';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setChartConfig } from 'modules/QuantBuilder/actions';\nimport { chartConfigPropTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n chartConfig: chartConfigPropTypes.isRequired,\n dispatchSetChartPattern: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst RollupType = (props) => {\n const {\n chartConfig, chartConfig: { isContinuousRollup }, dispatchSetChartPattern\n } = props;\n const onRollUpTypeChange = (newRollUp) => {\n dispatchSetChartPattern({\n ...chartConfig,\n isContinuousRollup: newRollUp\n });\n };\n\n return (\n \n \n \n Continuous\n \n\n \n End of Candle\n \n \n \n );\n};\n\nRollupType.propTypes = propTypes;\nRollupType.defaultProps = defaultProps;\n\nfunction mapStateToProps(state) {\n return {\n chartConfig: _.get(state, 'quantConfig.chartConfig'),\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n dispatchSetChartPattern: (newChartPattern) => dispatch(setChartConfig(newChartPattern)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(RollupType);\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\n\nconst propTypes = {\n stopAndLimitPriceDifferenceInPercentage: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n labelClassName: PropTypes.string.isRequired,\n buttonClassName: PropTypes.string.isRequired,\n errors: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n errors: []\n};\n\nconst StopLimitPriceDifferenceInPercentage = ({\n stopAndLimitPriceDifferenceInPercentage,\n onChange, labelClassName,\n buttonClassName,\n errors\n}) => {\n const hasError = _.find(errors, (error) => error.property\n === 'instance.stopAndLimitPriceDifferenceInPercentage');\n\n const [stopAndLimitPrice, setStopAndLimitPrice] = useState(stopAndLimitPriceDifferenceInPercentage);\n\n useEffect(() => {\n setStopAndLimitPrice(stopAndLimitPriceDifferenceInPercentage);\n }, [stopAndLimitPriceDifferenceInPercentage]);\n\n return (\n <>\n
    \n \n
    \n
    \n
    \n \n \n { }}\n />\n %\n \n
    \n onChange(event.target.value === ''\n ? 0 : onRegexOnlyNumberAndFloat(event.target.value, false))}\n value={(stopAndLimitPrice === undefined || stopAndLimitPrice === null)\n ? '' : stopAndLimitPrice.toString()}\n onChange={(event) => setStopAndLimitPrice(onRegexOnlyNumberAndFloat(event.target.value, true))}\n />\n
    \n {hasError ? (\n
    \n Number should be integer\n
    \n ) : null}\n
    \n \n );\n};\n\nBufferPercentage.propTypes = propTypes;\nBufferPercentage.defaultProps = defaultProps;\n\nexport default withErrorBoundary(BufferPercentage);\n","import _ from 'lodash';\nimport { setLimitOrderBufferPercantage } from 'modules/QuantBuilder/actions';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport BufferPercentage from './BufferPercentage';\n\nconst propTypes = {\n limitOrderBufferPercentage: PropTypes.number.isRequired,\n dispatchLimitOrderBufferPercantage: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst LimitOrderBufferPercentage = ({\n dispatchLimitOrderBufferPercantage, limitOrderBufferPercentage\n}) => {\n return (\n
    \n \n
    \n );\n};\n\nLimitOrderBufferPercentage.propTypes = propTypes;\nLimitOrderBufferPercentage.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n limitOrderBufferPercentage:\n _.get(state, 'quantConfig.limitOrderBufferPercentage', 0),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchLimitOrderBufferPercantage:\n (newPer) => dispatch(setLimitOrderBufferPercantage(newPer))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LimitOrderBufferPercentage);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\nimport { oneOfTypes } from 'common/propTypes';\n\nconst OPTION_TYPES = [\n { label: 'Yes', value: true },\n { label: 'No', value: false }\n];\n\nconst propTypes = {\n optionType: oneOfTypes.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst PlaceOptionsEntryBuyOrdersSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionPlaceOptionsEntryBuyOrdersSelector-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nPlaceOptionsEntryBuyOrdersSelector.propTypes = propTypes;\nPlaceOptionsEntryBuyOrdersSelector.defaultProps = defaultProps;\n\nexport default PlaceOptionsEntryBuyOrdersSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { oneOfTypes, orderConfigsPropTypes } from 'common/propTypes';\nimport HoverMessage from 'common/components/HoverMessage';\nimport HtmlParser from 'react-html-parser';\nimport PlaceStoplossOrderToBrokerFieldSelector from './PlaceStoplossOrderToBrokerFieldSelector';\nimport { isIndividualStoplossAvailable } from '../ProfitAndOrdersComponents/helper';\n\nconst propTypes = {\n isPlaceStoplossOrderToBroker: oneOfTypes,\n handleChange: PropTypes.func.isRequired,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = { isPlaceStoplossOrderToBroker: '', orderConfigs: [] };\n\nconst PlaceStoplossOrderToBrokerField = ({\n isPlaceStoplossOrderToBroker, handleChange, orderConfigs\n}) => {\n if (!isIndividualStoplossAvailable(orderConfigs)) { return null; }\n const oneIndentation = ' ';\n\n let content = 'If yes,
    QuantMan will place individual ';\n content += 'leg stoploss(SL-Limit) order to broker and as well as we also track the stoploss order.';\n content += '

    If No,
    ';\n content += 'QuantMan will track your stoploss and close position if stoploss acheived. ';\n content += 'No SL-Limit order to broker';\n\n return (\n
    \n \n
    \n {\n handleChange(value);\n }}\n />\n
    \n
    \n );\n};\n\nPlaceStoplossOrderToBrokerField.propTypes = propTypes;\nPlaceStoplossOrderToBrokerField.defaultProps = defaultProps;\n\nexport default PlaceStoplossOrderToBrokerField;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setIsPlaceStoplossOrderToBroker } from 'modules/QuantBuilder/actions';\nimport { oneOfTypes, orderConfigsPropTypes } from 'common/propTypes';\nimport PlaceStoplossOrderToBrokerField from './PlaceStoplossOrderToBrokerField';\n\nconst propTypes = {\n dispatchIsPlaceStoplossOrderToBroker: PropTypes.func.isRequired,\n isPlaceStoplossOrderToBroker: oneOfTypes,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = {\n isPlaceStoplossOrderToBroker: null,\n orderConfigs: []\n};\n\nconst PlaceStoplossOrderToBroker = ({\n dispatchIsPlaceStoplossOrderToBroker, isPlaceStoplossOrderToBroker, orderConfigs\n}) => {\n useEffect(() => { // newly implemented, old runs don't have those config so i attached to quantConfig.\n if (isPlaceStoplossOrderToBroker === null) {\n setTimeout(() => {\n dispatchIsPlaceStoplossOrderToBroker(true);\n }, 200);\n }\n }, []);\n\n if (isPlaceStoplossOrderToBroker === null) return null;\n\n return (\n \n );\n};\n\nPlaceStoplossOrderToBroker.propTypes = propTypes;\nPlaceStoplossOrderToBroker.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n isPlaceStoplossOrderToBroker:\n _.get(state, 'quantConfig.isPlaceStoplossOrderToBroker', null),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs', [])\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchIsPlaceStoplossOrderToBroker:\n (newValue) => dispatch(setIsPlaceStoplossOrderToBroker(newValue))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PlaceStoplossOrderToBroker);\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useFormContext } from 'react-hook-form';\nimport { oneOfTypes } from 'common/propTypes';\n\nconst OPTION_TYPES = [\n { label: 'Yes', value: true },\n { label: 'No', value: false }\n];\n\nconst propTypes = {\n optionType: oneOfTypes.isRequired,\n onOptionTypeChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst SquareOffTransactionIfEntryFailedSelector = ({\n optionType: propsOptionType, onOptionTypeChange\n}) => {\n const [optionTypeBtnName] = useState(_.uniqueId('optionSquareOffTransactionIfEntryFailedSelector-'));\n const optionTypeInputId = _.uniqueId('optionTypeSelector');\n const { errors, register } = useFormContext();\n const validatorConfig = { validate: (value) => (!value ? 'value required' : null) };\n const validatorProps = { ref: register(validatorConfig) };\n\n const optionTypeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const radioBtnStyle = classNames(\n 'form-check-input',\n { 'is-invalid': !!errors[optionTypeBtnName] }\n );\n\n const renderRadioBtn = (optionType) => {\n return (\n
    \n onOptionTypeChange(optionType.value)}\n />\n \n
    \n );\n };\n\n const optionTypeRadioBtns = _.map(OPTION_TYPES, renderRadioBtn);\n\n return (\n
    \n {optionTypeRadioBtns}\n
    \n );\n};\n\nSquareOffTransactionIfEntryFailedSelector.propTypes = propTypes;\nSquareOffTransactionIfEntryFailedSelector.defaultProps = defaultProps;\n\nexport default SquareOffTransactionIfEntryFailedSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { orderConfigsPropTypes } from 'common/propTypes';\nimport SquareOffTransactionIfEntryFailedSelector from './SquareOffTransactionIfEntryFailedSelector';\nimport { isTransactionHaveMoreThanOneLeg } from '../ProfitAndOrdersComponents/helper';\n\nconst propTypes = {\n isSquareOffTransactionIfEntryFailed: PropTypes.bool.isRequired,\n handleChange: PropTypes.func.isRequired,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = {\n orderConfigs: []\n};\n\nconst SquareOffTransactionIfEntryFailed = ({\n isSquareOffTransactionIfEntryFailed, handleChange, orderConfigs\n}) => {\n if (!isTransactionHaveMoreThanOneLeg(orderConfigs)) { return null; }\n\n return (\n
    \n \n
    \n {\n handleChange(value);\n }}\n />\n
    \n
    \n );\n};\n\nSquareOffTransactionIfEntryFailed.propTypes = propTypes;\nSquareOffTransactionIfEntryFailed.defaultProps = defaultProps;\n\nexport default SquareOffTransactionIfEntryFailed;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { setIsSquareOffTransactionIfEntryFailed } from 'modules/QuantBuilder/actions';\nimport { oneOfTypes, orderConfigsPropTypes } from 'common/propTypes';\nimport SquareOffTransactionIfEntryFailed from './SquareOffTransactionIfEntryFailed';\n\nconst propTypes = {\n dispatchIsSquareOffTransactionIfEntryFailed: PropTypes.func.isRequired,\n isSquareOffTransactionIfEntryFailed: oneOfTypes,\n orderConfigs: orderConfigsPropTypes\n};\nconst defaultProps = {\n isSquareOffTransactionIfEntryFailed: null,\n orderConfigs: []\n};\n\nconst SquareOffEntireTransactionIfEntryFailed = ({\n dispatchIsSquareOffTransactionIfEntryFailed, isSquareOffTransactionIfEntryFailed, orderConfigs\n}) => {\n useEffect(() => { // newly implemented, old runs don't have those config so we attached to quantConfig.\n if (isSquareOffTransactionIfEntryFailed === null) {\n dispatchIsSquareOffTransactionIfEntryFailed(false);\n }\n }, []);\n\n return (\n \n );\n};\n\nSquareOffEntireTransactionIfEntryFailed.propTypes = propTypes;\nSquareOffEntireTransactionIfEntryFailed.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n isSquareOffTransactionIfEntryFailed: _.get(state, 'quantConfig.isSquareOffTransactionIfEntryFailed', null),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs', [])\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchIsSquareOffTransactionIfEntryFailed:\n (newValue) => dispatch(setIsSquareOffTransactionIfEntryFailed(newValue))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SquareOffEntireTransactionIfEntryFailed);\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\nimport BuySellTimeAndStopLossDiff from '../BuySellTimeAndStopLossDiff/index';\nimport StopsBuilder from '../StopsBuilder/index';\nimport ProductType from '../ProductType/index';\nimport OrderType from '../OrderType/index';\nimport { removeKeyValues } from '../../actions';\nimport OptionsEntryBuyOrders from '../OptionsEntryBuyOrders/index';\nimport SlOrderBasedOnPrice from '../SlOrderBasedOnPrice/index';\nimport LimitOrderBufferPercentage from '../LimitOrderBufferPercentage/index';\nimport PlaceStoplossOrderToBroker from '../PlaceStoplossOrderToBroker/index';\nimport SquareOffEntireTransactionIfEntryFailed from '../SquareOffEntireTransactionIfEntryFailed/index';\n\nconst propTypes = {\n runType: PropTypes.string.isRequired,\n orderType: PropTypes.string.isRequired,\n dispatchRemoveKeyValues: PropTypes.func.isRequired,\n entryOrderType: PropTypes.string.isRequired,\n exitOrderType: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst ProfitAndOrdersComponents = ({\n runType, orderType, dispatchRemoveKeyValues, entryOrderType, exitOrderType\n}) => {\n const isLive = runType === RUN_TYPES.live;\n const { paper: { value: paper } } = ORDER_TYPES;\n // const title = !isLive ? 'Profit' : 'Profit/ Order';\n const isActualOrder = orderType !== paper;\n\n useEffect(() => {\n if (!isActualOrder || runType === RUN_TYPES.historic) {\n dispatchRemoveKeyValues([\n 'entryOrderModification',\n 'exitOrderModification',\n 'isPlaceOptionsEntryBuyOrdersFirst',\n 'slOrderPlaceBasedOnPrice',\n 'isPlaceStoplossOrderToBroker',\n 'squareOffTransactionIfEntryFailed'\n ]);\n }\n }, [runType, orderType]);\n\n useEffect(() => { // newly implemented, old runs don't have those config so i attached to quantConfig.\n if (entryOrderType === 'market') {\n dispatchRemoveKeyValues([\n 'entryOrderModification'\n ]);\n }\n if (exitOrderType === 'market') {\n dispatchRemoveKeyValues([\n 'exitOrderModification'\n ]);\n }\n }, [entryOrderType, exitOrderType]);\n\n return (\n <>\n
    Strategy Stops
    \n
    \n \n
    \n {(isLive && isActualOrder) && (\n <>\n
    \n \n \n \n \n {isActualOrder && }\n {isActualOrder && }\n {isActualOrder && }\n {isActualOrder && }\n
    \n \n )}\n \n );\n};\n\nProfitAndOrdersComponents.propTypes = propTypes;\nProfitAndOrdersComponents.defaultProps = defaultProps;\n\nconst mapStateToProps = (state) => ({\n runType: _.get(state, 'runType'),\n orderType: _.get(state, 'orderType'),\n entryOrderType: _.get(state, 'quantConfig.entryOrderType'),\n exitOrderType: _.get(state, 'quantConfig.exitOrderType'),\n orderConfigs: _.get(state, 'quantConfig.orderConfigs')\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n dispatchRemoveKeyValues: (keyValues) => dispatch(removeKeyValues(keyValues))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProfitAndOrdersComponents);\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { setAdjustmentOptions } from 'modules/QuantBuilder/actions';\nimport { useFormContext } from 'react-hook-form';\nimport _ from 'lodash';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst EXECUTION_TYPES = {\n immediate: 'Immediate',\n nextMinute: 'Next Minute Start',\n delayBy: 'Delay By'\n};\n\nconst AdvancedOptions = () => {\n const adjustmentExecutionTypeAdvanceAccess = _.get(\n window,\n 'userPermissions.adjustmentExecutionTypeAdvanceAccess.isEnabled',\n false\n );\n const isInitiaload = useRef(true);\n\n const defaultExecutionType = adjustmentExecutionTypeAdvanceAccess ? 'delayBy' : 'nextMinute';\n\n const { quantConfig } = useSelector((state) => state);\n const adjustmentOptions = _.get(quantConfig, 'adjustmentOptions', {});\n\n const executionType = _.get(adjustmentOptions, 'executionType', defaultExecutionType);\n const isDelaySecondsAvailable = _.includes(executionType, 'seconds');\n const isDelayBy = executionType === 'delayBy' || isDelaySecondsAvailable;\n const delay = isDelaySecondsAvailable ? _.parseInt(executionType) : 5;\n const dispatch = useDispatch();\n\n const [executionTypeErrorId] = useState(_.uniqueId('executionTypeErrorId-'));\n const {\n setError, formState, trigger, errors\n } = useFormContext();\n\n const onExecutionTypeChange = async (newExecutionType) => {\n dispatch(setAdjustmentOptions(\n {\n ...adjustmentOptions,\n executionType: newExecutionType === 'delayBy' ? `${delay}seconds` : newExecutionType\n }\n ));\n if (formState.isSubmitted) await trigger();\n };\n\n const onChangeDelay = async (newDelay) => {\n dispatch(setAdjustmentOptions(\n { ...adjustmentOptions, executionType: `${parseInt(newDelay, 10)}seconds` }\n ));\n if (formState.isSubmitted) await trigger();\n };\n\n useEffect(() => {\n if (isInitiaload.current && _.isEmpty(adjustmentOptions)) {\n setTimeout(() => {\n dispatch(setAdjustmentOptions(\n {\n ...adjustmentOptions,\n executionType: defaultExecutionType === 'delayBy' ? `${delay}seconds` : defaultExecutionType\n }\n ));\n isInitiaload.current = false;\n }, 500);\n }\n }, []);\n\n useEffect(() => {\n if (formState.isSubmitted) {\n if (executionType === '') {\n setError(executionTypeErrorId, {\n type: 'manual',\n message: 'Execution Type is mandatory.',\n });\n } else if (isDelayBy && (_.isNaN(delay) || delay <= 0)) {\n setError(executionTypeErrorId, {\n type: 'manual',\n message: 'seconds is mandatory when execution type is \"Delay By\".',\n });\n }\n }\n }, [formState.isSubmitted, executionType, delay, setError, executionTypeErrorId]);\n\n const renderToggleButton = (value, label) => (\n \n {label}\n \n );\n\n return (\n <>\n
    Advanced Options
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {_.map(EXECUTION_TYPES, (value, key) => renderToggleButton(key, value))}\n \n
    \n\n
    \n {isDelayBy && (\n <>\n
    \n
    \n After\n
    \n onChangeDelay(event.target.value)}\n />\n
    \n seconds\n
    \n
    \n \n )}\n
    \n
    \n\n \n
    \n
    \n \n );\n};\n\nexport default AdvancedOptions;\n","import React from 'react';\n\nimport ExpiryHandler from 'modules/QuantBuilder/components/ExpiryHandler';\nimport OrderConfigsBuilder from 'modules/QuantBuilder/components/OrderConfigsBuilder';\nimport ChartPattern from './components/ChartPattern';\nimport InstrumentGroupInput from './components/instrumentGroups/InstrumentGroupInput';\nimport PipesInput from './components/Pipes';\nimport RollupType from './components/ChartPattern/RollupType';\nimport ProfitAndOrdersComponents from './components/ProfitAndOrdersComponents/index';\nimport AdvancedOptions from './components/AdvancedOptions/index';\n\nexport default class QuantBuilder extends React.Component {\n render() {\n const { isAdmin } = window;\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
    Indicators
    \n
    \n \n
    \n\n
    \n\n \n
    \n\n {isAdmin && (\n <>\n \n
    \n \n )}\n\n \n
    \n\n
    Expiry
    \n
    \n \n
    \n
    \n
    \n
    \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport QuantBuilder from 'modules/QuantBuilder';\nimport {\n outputSchemaPropTypes, quantConfigPropTypes, validatorProptypes\n} from 'common/propTypes';\n\nconst propTypes = {\n isClonedQuant: PropTypes.bool.isRequired,\n runType: PropTypes.string.isRequired,\n onQuantConfigUpdate: PropTypes.func.isRequired,\n outputSchema: outputSchemaPropTypes,\n quantConfig: quantConfigPropTypes,\n quantConfigValidators: PropTypes.shape({}),\n startDate: PropTypes.instanceOf(Date).isRequired,\n endDate: PropTypes.instanceOf(Date).isRequired,\n validatorErrors: validatorProptypes,\n orderType: PropTypes.string.isRequired,\n segment: PropTypes.string.isRequired,\n onChangeSegment: PropTypes.func.isRequired,\n segments: PropTypes.arrayOf(PropTypes.string)\n};\nconst defaultProps = {\n outputSchema: null,\n quantConfig: null,\n quantConfigValidators: {},\n validatorErrors: [],\n segments: []\n};\n\nconst AdvancedBuilder = (props) => {\n const {\n isClonedQuant,\n runType,\n onQuantConfigUpdate,\n outputSchema,\n quantConfig,\n quantConfigValidators,\n startDate,\n endDate,\n validatorErrors,\n orderType,\n segment,\n onChangeSegment,\n segments\n } = props;\n\n return (\n \n );\n};\n\nexport default AdvancedBuilder;\n\nAdvancedBuilder.propTypes = propTypes;\nAdvancedBuilder.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport HoverMessage from 'common/components/HoverMessage';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { ORDER_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n onOrderTypeChange: PropTypes.func.isRequired,\n orderType: PropTypes.string.isRequired,\n orderTypes: PropTypes.shape({\n paper: PropTypes.shape({ value: PropTypes.string }),\n automatic: PropTypes.shape({ value: PropTypes.string }),\n oneClick: PropTypes.shape({ value: PropTypes.string })\n }),\n isShowOrderTypeLabel: PropTypes.bool,\n orderTypeParentClassName: PropTypes.string\n};\n\nconst defaultProps = {\n orderTypes: ORDER_TYPES,\n isShowOrderTypeLabel: true,\n orderTypeParentClassName: 'd-flex gap-15 mt-2 flex-wrap'\n};\n\n\nconst QuantOrderType = ({\n orderType: currentOrderType, onOrderTypeChange, orderTypes, isShowOrderTypeLabel, orderTypeParentClassName\n}) => {\n const {\n paper: { value: paper },\n automatic: { value: automatic },\n oneClick: { value: oneclick },\n } = ORDER_TYPES;\n\n const { automaticOrder, oneClickOrder, paperOrder } = _.get(\n window,\n 'userPermissions',\n {}\n );\n\n const getOrderTypePermissions = (orderType) => {\n if (orderType.value === paper && paperOrder.isDisabled) {\n return { isDisabled: true, disabledMessage: paperOrder.disabledReason };\n }\n if (orderType.value === oneclick && oneClickOrder.isDisabled) {\n return {\n isDisabled: true,\n disabledMessage: oneClickOrder.disabledReason,\n };\n }\n if (orderType.value === automatic && automaticOrder.isDisabled) {\n return {\n isDisabled: true,\n disabledMessage: automaticOrder.disabledReason,\n };\n }\n\n return { isDisabled: false, disabledMessage: '' };\n };\n\n const renderOrderType = (orderType, idx) => {\n const { isDisabled, disabledMessage } = getOrderTypePermissions(orderType);\n\n const options = (\n
    \n onOrderTypeChange(event.target.value)}\n disabled={isDisabled}\n className=\"form-check-input track\"\n data-track-category=\"Quant Order Type\"\n data-track-action={orderType.displayName}\n data-track-label=\"Quant Form track\"\n id={orderType.value}\n />\n \n
    \n );\n\n if (isDisabled) {\n return {options};\n }\n\n return options;\n };\n\n return (\n
    \n {isShowOrderTypeLabel\n && }\n
    {_.map(orderTypes, renderOrderType)}
    \n
    \n );\n};\n\nexport default withErrorBoundary(QuantOrderType);\n\nQuantOrderType.propTypes = propTypes;\nQuantOrderType.defaultProps = defaultProps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n onChangeRunName: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst RunNameInput = ({ name, onChangeRunName }) => {\n return (\n
    \n \n
    \n onChangeRunName(event.target.value)}\n />\n
    \n
    \n );\n};\n\nexport default RunNameInput;\n\nRunNameInput.propTypes = propTypes;\nRunNameInput.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { RUN_GRANULARITY, RUN_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n runType: PropTypes.string.isRequired,\n granularity: PropTypes.string.isRequired,\n onChangeGranularity: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst Granularity = (props) => {\n const showGranularity = _.get(window, 'userPermissions.runGranularityAccess.isEnabled', false);\n const { runType, granularity, onChangeGranularity } = props;\n\n if (runType !== RUN_TYPES.historic || !showGranularity) {\n return null;\n }\n\n return (\n <>\n
    \n
    \n \n
    \n \n \n Minute Candle\n \n \n Second-wise\n \n \n
    \n
    \n \n );\n};\n\nexport default Granularity;\n\nGranularity.propTypes = propTypes;\nGranularity.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\n\nimport HoverMessage from 'common/components/HoverMessage';\nimport { RUN_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n runType: PropTypes.string.isRequired,\n onChangeRunType: PropTypes.func.isRequired,\n isHistoricRunDisabled: PropTypes.bool.isRequired,\n isLiveRunDisabled: PropTypes.bool.isRequired,\n};\nconst defaultProps = {};\n\nconst RunType = ({\n runType, onChangeRunType, isHistoricRunDisabled, isLiveRunDisabled\n}) => {\n const currentUserBroker = _.get(window, 'currentUserBroker', '');\n const isUserSignedIn = _.get(window, 'isUserSignedIn', false);\n\n const isNonBrokerUser = isUserSignedIn && _.isEmpty(currentUserBroker);\n\n const disabledMessage = () => {\n if (isNonBrokerUser) {\n return 'Run creations are not supported for non-broker users. '\n + 'Please sign-in with broker account to create runs.';\n }\n if (isHistoricRunDisabled && isLiveRunDisabled) {\n return 'Historic and live run creation is temporarily disabled';\n }\n if (isHistoricRunDisabled) return 'Historic run creation is temporarily disabled';\n\n return 'Live run creation is temporarily disabled';\n };\n\n const runTypeBtns = (\n \n \n Backtest\n \n \n Live\n \n \n );\n return (\n
    \n \n
    \n {(isHistoricRunDisabled || isLiveRunDisabled || isNonBrokerUser)\n ? {runTypeBtns}\n : runTypeBtns}\n
    \n
    \n );\n};\n\nexport default RunType;\n\nRunType.propTypes = propTypes;\nRunType.defaultProps = defaultProps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n initialFreeTrialDays: PropTypes.number.isRequired,\n purchaseAmount: PropTypes.number,\n isStrategyConfirmationModel: PropTypes.bool\n};\n\nconst defaultProps = {\n purchaseAmount: null,\n isStrategyConfirmationModel: false\n};\n\nconst FreeTrialInfo = ({\n initialFreeTrialDays, purchaseAmount, isStrategyConfirmationModel\n}) => {\n const oneIndentation = ' ';\n if (isStrategyConfirmationModel) {\n return (\n
    \n Strategy available for\n {oneIndentation}\n \n free trial for first\n {oneIndentation}\n {initialFreeTrialDays}\n {oneIndentation}\n days.\n \n {oneIndentation}\n After the trial period, you must pay\n {oneIndentation}\n \n Rs.\n {oneIndentation}\n {purchaseAmount}\n {oneIndentation}\n to purchase the strategy\n \n {oneIndentation}\n or the deployment will be stopped.\n
    \n );\n }\n\n return (\n
    \n \n {oneIndentation}\n campaign\n \n {initialFreeTrialDays}\n {oneIndentation}\n days free trial\n
    \n );\n};\n\nFreeTrialInfo.propTypes = propTypes;\nFreeTrialInfo.defaultProps = defaultProps;\n\nexport default FreeTrialInfo;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport { ORDER_TYPES } from 'common/constants/index';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport { QuantOrderType } from 'ui/run/RunForm/components/index';\nimport Multiplier from './Multiplier';\nimport FreeTrialInfo from './freeTrialInfo';\n\nconst propTypes = {\n multiplier: PropTypes.number,\n onChangeMultiplier: PropTypes.func.isRequired,\n onCreateRun: PropTypes.func.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n selectedOrderType: PropTypes.string.isRequired,\n onChangeSelectedOrderType: PropTypes.func.isRequired,\n marginAmount: PropTypes.number.isRequired,\n isMinifiedPage: PropTypes.bool.isRequired,\n initialFreeTrialDays: PropTypes.number,\n purchaseAmount: PropTypes.number,\n isFreeTrialAvailable: PropTypes.bool\n};\nconst defaultProps = {\n multiplier: 1,\n initialFreeTrialDays: 0,\n purchaseAmount: null,\n isFreeTrialAvailable: false\n};\n\nconst MULTIPLIER_LIMIT = 200;\n\nconst StrategyConfirmationModal = ({\n multiplier, onChangeMultiplier, onCreateRun, onCloseModal,\n selectedOrderType, onChangeSelectedOrderType, marginAmount, isMinifiedPage,\n initialFreeTrialDays, purchaseAmount, isFreeTrialAvailable\n}) => {\n const [isAgreed] = useState(true);\n // setIsAgreed\n const orderTypes = _.omit(ORDER_TYPES, isMinifiedPage ? ['oneClick', 'paper'] : ['oneClick']);\n const isInValidMultiplier = multiplier > MULTIPLIER_LIMIT;\n\n return (\n \n <>\n
    \n
    \n

    Confirmation

    \n

    \n Number of lots\n

    \n
    \n \n
    \n Margin Required:\n \n {multiplier ? marginAmount * Math.abs(multiplier) : marginAmount}\n \n {isInValidMultiplier && (\n \n )}\n \n
    \n The past backtesting performance of the strategy is not necessarily\n indicative of future performance\n of the strategy and trading is subject to market risks\n
    \n\n {isFreeTrialAvailable && (\n \n )}\n
    \n \n \n );\n};\n\nStrategyConfirmationModal.propTypes = propTypes;\nStrategyConfirmationModal.defaultProps = defaultProps;\n\nexport default StrategyConfirmationModal;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { createRun } from 'common/api/run';\nimport { MARKET_END_TIME, ORDER_TYPES, RUN_TYPES } from 'common/constants/index';\nimport { buttonTypesInStrategy, handleDisabledButtonInMarketPlace } from 'ui/Strategies/helper';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { quotaVerificationDom } from 'ui/QuotaVerification/quotaDom';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport { strategyPropTypes } from 'common/propTypes';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport moment from 'moment';\nimport StrategyConfirmationModal from './StrategyConfirmationModal';\n\nconst propTypes = {\n strategy: strategyPropTypes.isRequired,\n btnClassName: PropTypes.string,\n isStrategyDetailView: PropTypes.bool\n};\n\nconst defaultProps = {\n btnClassName: 'common-icon-btn btn btn-success btn-block btn-sm',\n isStrategyDetailView: false\n};\n\nconst DeployStrategyButton = ({ strategy, btnClassName, isStrategyDetailView }) => {\n const {\n currentUserDefaultFolderId, title, id, margin_amount: marginAmount,\n live_instrument_groups: liveInstrumentGroups, initial_free_trial_days: initialFreeTrialDays,\n purchase_amount: purchaseAmount, isFreeTrialAvailable\n } = strategy;\n const isUserLoggedIn = _.get(window, 'isUserSignedIn', false);\n const subscriberStrategyCutOffTime = _.get(window, 'SA_COLLECTIONS.subscriberStrategyCutOffTime', null);\n const [isShowModal, setIsShowModal] = useState(false);\n const [multiplier, setMultiplier] = useState(1);\n const { automatic: { value: automatic } } = ORDER_TYPES;\n const [selectedOrderType, setSelectedOrderType] = useState(automatic);\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const isDeployedStrategy = _.get(strategyAccess, 'is_deployed', false);\n const runId = _.get(strategyAccess, 'run_id', null);\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n\n const executeCreateRun = (runParams) => {\n createRun(runParams).catch((error) => {\n const errors = _.get(error.response, 'data.errors', []);\n const additionalErrors = _.filter(errors, (err, key) => key !== 'quant_config');\n const errorMessages = _.join(_.map(additionalErrors, '0'), ', ');\n if (errorMessages) reactToastify(errorMessages, TOASTIFY_TYPES.ERROR);\n });\n };\n\n const onCreateRun = () => {\n setIsShowModal(false);\n\n const runParams = {\n folder_id: currentUserDefaultFolderId,\n quant_config: null,\n name: title || '',\n run_type: RUN_TYPES.live,\n strategy_id: id,\n order_type: selectedOrderType,\n multiplier: multiplier ? Math.abs(multiplier) : 1,\n is_public: true,\n is_strategy_subscriber: true\n };\n\n const cutoffTimeMoment = moment(subscriberStrategyCutOffTime, 'HH:mm');\n const marketEndTimeMoment = moment(MARKET_END_TIME, 'HH:mm');\n\n const isAfterCutoff = moment().isAfter(cutoffTimeMoment);\n const isBeforeMarketEnd = moment().isBefore(marketEndTimeMoment);\n\n let delay = 0;\n if (isAfterCutoff && isBeforeMarketEnd) {\n delay = 5000;\n reactToastify(\n 'Your deployment will take effect in the live market from tomorrow.',\n TOASTIFY_TYPES.INFO\n );\n }\n\n setTimeout(() => {\n quotaVerificationDom(liveInstrumentGroups, runParams, executeCreateRun);\n }, delay);\n\n return null;\n };\n\n const { isDisabled, message } = handleDisabledButtonInMarketPlace(\n strategy, buttonTypesInStrategy.deployButton\n );\n\n if (runId) {\n if (isStrategyDetailView) return null;\n\n let reDirectUrl = `/runs/${runId}`;\n if (isMinifiedPage) { reDirectUrl += '&minifiedpage=true'; }\n\n return (\n { window.location.href = reDirectUrl; }}\n >\n visibility\n View Deployed Run\n \n );\n }\n\n const onDeployStrategy = () => {\n if (isUserLoggedIn) { return setIsShowModal(true); }\n\n initiateUserAuth().then(() => {\n window.location.reload();\n }).catch(() => {\n reactToastify('Unauthorized, Please Login and continue', TOASTIFY_TYPES.ERROR);\n });\n\n return null;\n };\n\n return (\n <>\n onDeployStrategy()}\n data-toggle=\"tooltip\"\n title={message}\n disabled={isDisabled}\n >\n rocket_launch\n {isDeployedStrategy ? 'Deployed' : 'Deploy Strategy'}\n \n {isShowModal\n && (\n onCreateRun()}\n onCloseModal={() => setIsShowModal(false)}\n selectedOrderType={selectedOrderType}\n isMinifiedPage={isMinifiedPage}\n onChangeSelectedOrderType={setSelectedOrderType}\n initialFreeTrialDays={initialFreeTrialDays}\n purchaseAmount={purchaseAmount}\n isFreeTrialAvailable={isFreeTrialAvailable}\n />\n )}\n \n );\n};\n\nDeployStrategyButton.propTypes = propTypes;\nDeployStrategyButton.defaultProps = defaultProps;\n\nexport default DeployStrategyButton;\n","import qs from 'qs';\nimport wrappedFetch from './base';\n\nexport const onCreateStrategyAccess = (args) => {\n const config = {\n method: 'POST',\n url: '/strategy_accesses.json',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ strategy_access: args }),\n };\n\n return wrappedFetch('/strategy_accesses.json', config).then((response) => response.json());\n};\n\nexport const onUpdateStrategyAccess = (args) => {\n const { id, strategyParams } = args;\n\n const config = {\n method: 'PUT',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ strategy_access: strategyParams }),\n };\n\n return wrappedFetch(`/strategy_accesses/${id}.json`, config).then((response) => response.json());\n};\n\nexport const onGetStrategyAccessBasedOnStrategyId = (args) => {\n const queryParams = qs.stringify({ ...args });\n const uri = `/strategy_accesses/get_strategy_accesses_on_strategy_id?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n","import _ from 'lodash';\nimport { onCreateStrategyAccess } from 'common/api/strategyAccess';\nimport { STRATEGY_ACCESS_STATUS } from 'common/constants/index';\nimport { strategyPropTypes } from 'common/propTypes';\nimport React, { useState } from 'react';\nimport { buttonTypesInStrategy, handleDisabledButtonInMarketPlace } from 'ui/Strategies/helper';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = { strategy: strategyPropTypes.isRequired };\n\nconst defaultProps = {};\n\nconst RequestTypeButton = ({ strategy: propsStrategy }) => {\n const isUserLoggedIn = _.get(window, 'isUserSignedIn', false);\n const [strategy, setStrategy] = useState(propsStrategy);\n const { id } = strategy;\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const status = _.get(strategyAccess, 'status', '');\n\n const onRequest = () => {\n if (isUserLoggedIn) {\n onCreateStrategyAccess({ strategy_id: id, status: 'requested' }).then((result) => {\n const { strategy_access: access } = result;\n setStrategy({ ...strategy, strategy_access: access });\n });\n return null;\n }\n\n initiateUserAuth().then(() => {\n window.location.reload();\n }).catch(() => {\n reactToastify('Unauthorized, Please Login and continue', TOASTIFY_TYPES.ERROR);\n });\n\n return null;\n };\n\n const getButtonName = () => {\n if (status === STRATEGY_ACCESS_STATUS.REQUESTED) return 'Requested';\n if (status === STRATEGY_ACCESS_STATUS.PAID) return 'Approved';\n if (status === STRATEGY_ACCESS_STATUS.REJECTED) return 'Rejected';\n\n return 'Request';\n };\n\n const { isDisabled, message } = handleDisabledButtonInMarketPlace(\n strategy, buttonTypesInStrategy.requestType\n );\n return (\n onRequest()}\n >\n {getButtonName()}\n \n );\n};\n\nRequestTypeButton.propTypes = propTypes;\nRequestTypeButton.defaultProps = defaultProps;\n\nexport default RequestTypeButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FIXED_AMOUNT } from 'common/constants/index';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nconst propTypes = {\n isEmptyStrategyAccess: PropTypes.bool.isRequired,\n status: PropTypes.string,\n purchaseType: PropTypes.string.isRequired,\n strategyAccess: PropTypes.shape({}),\n initialFreeTrialDays: PropTypes.number\n};\n\nconst defaultProps = {\n status: '',\n strategyAccess: null,\n initialFreeTrialDays: 0\n};\n\nconst AccessTill = ({\n isEmptyStrategyAccess, status, purchaseType, strategyAccess, initialFreeTrialDays\n}) => {\n if (purchaseType !== FIXED_AMOUNT) return null;\n const paidTill = _.get(strategyAccess, 'paid_till', '');\n const strategyAccessCreatedAt = _.get(strategyAccess, 'created_at', '');\n const freeTrialTill = !isEmptyStrategyAccess ? moment(strategyAccessCreatedAt)\n .add(initialFreeTrialDays, 'days').format() : null;\n const isFreeTrial = _.isEmpty(paidTill) && !(_.isEmpty(freeTrialTill));\n\n const oneIndentation = ' ';\n\n return (\n <>\n {(!isEmptyStrategyAccess && status === 'paid') && (\n
    \n
    \n info \n {oneIndentation}\n
    \n \n {isFreeTrial ? 'Free trial till' : 'Purchased till'}\n {oneIndentation}\n :\n \n {oneIndentation}\n {oneIndentation}\n {oneIndentation}\n {moment(isFreeTrial ? freeTrialTill : paidTill).format('MMM DD, YYYY') }\n
    \n
    \n
    \n )}\n \n );\n};\n\nAccessTill.propTypes = propTypes;\nAccessTill.defaultProps = defaultProps;\n\nexport default AccessTill;\n","import React from 'react';\n\nconst StrategyFreeButton = () => {\n return (\n
    Free strategy
    \n );\n};\n\nStrategyFreeButton.propTypes = {};\n\nexport default StrategyFreeButton;\n","import _ from 'lodash';\nimport React from 'react';\nimport {\n FIXED_AMOUNT, REQUEST_TYPE\n} from 'common/constants/index';\nimport { strategyPropTypes } from 'common/propTypes';\nimport PaymentButton from '../Strategy/PaymentButton';\nimport DeployStrategyButton from '../Strategy/DeployStrategyButton';\nimport RequestTypeButton from '../Strategy/RequestTypeButton';\nimport AccessTill from '../Strategy/AccessTill';\n// import RiskCategory from '../Strategy/RiskCategory';\nimport StrategyFreeButton from '../Strategy/StrategyFreeButton';\n\nconst propTypes = {\n strategy: strategyPropTypes.isRequired\n};\n\nconst defaultProps = {};\n\nconst Footer = ({ strategy }) => {\n const {\n // risk_category: riskCategory,\n user_id: userId\n } = strategy;\n const currentUser = _.get(strategy, 'currentUser', {});\n const currentUserId = _.get(currentUser, 'id', null);\n const isStrategyBelongsToUser = userId === currentUserId;\n const purchaseType = _.get(strategy, 'purchase_type', '');\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const isEmptyStrategyAccess = _.isEmpty(strategyAccess); // for initial users\n const status = _.get(strategyAccess, 'status', '');\n\n const renderConditionBasedButton = () => {\n if (isStrategyBelongsToUser) return null;\n if (purchaseType === FIXED_AMOUNT) return ;\n if (purchaseType === REQUEST_TYPE) return ;\n\n return ;\n };\n\n return (\n
    \n
    \n \n {/* */}\n
    \n\n
    \n {renderConditionBasedButton()}\n \n
    \n {purchaseType === FIXED_AMOUNT && (\n
    \n task_alt\n Excluding GST\n
    \n )}\n\n
    \n );\n};\n\nFooter.propTypes = propTypes;\nFooter.defaultProps = defaultProps;\n\nexport default Footer;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport classNames from 'classnames';\nimport ReactHtmlParser from 'react-html-parser';\nimport Header from './Header';\nimport InstrumentAndTags from './InstrumentAndTags';\nimport ProfitableValues from './ProfitableValues';\nimport Footer from './Footer';\n\nconst propTypes = { strategy: PropTypes.shape({}).isRequired };\n\nconst defaultProps = {};\n\nconst StrategyCard = ({ strategy }) => {\n const description = _.get(strategy, 'description', '');\n const strategyId = _.get(strategy, 'id');\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n const isPremium = _.get(strategy, 'is_premium', false);\n\n let strategyUrl = `/strategies/${strategyId}`;\n if (isMinifiedPage) strategyUrl += '&minifiedpage=true';\n\n const strategyParentClassName = classNames('card mp-strategy-card', { 'premium-card': isPremium });\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n

    {ReactHtmlParser(description)}

    \n
    \n \n
    \n
    \n
    \n \n View Details\n chevron_right \n \n
    \n
    \n
    \n );\n};\n\nStrategyCard.propTypes = propTypes;\nStrategyCard.defaultProps = defaultProps;\n\nexport default withErrorBoundary(StrategyCard, '', false);\n","import _ from 'lodash';\nimport fetchStrategies from 'common/api/strategies';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { userPropTypes } from 'common/propTypes';\nimport React, { useEffect, useState } from 'react';\nimport StrategyCard from 'ui/Strategies/components/StrategyCard/index';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n currentUserDetails: userPropTypes,\n currentUserDefaultFolderId: PropTypes.number\n};\n\nconst defaultProps = {\n currentUserDetails: null,\n currentUserDefaultFolderId: null\n};\n\nconst DashboardMarketPlaceStrategies = ({ currentUserDetails, currentUserDefaultFolderId }) => {\n const [strategies, setStrategies] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n fetchStrategies({ params: { limit: 6 } }).then((results) => {\n setStrategies(results);\n setIsLoading(false);\n });\n }, []);\n\n const renderStrategy = (strategy, idx) => {\n return (\n \n );\n };\n\n const renderStrategyContainer = () => {\n if (isLoading) return null;\n\n if (!_.isEmpty(strategies)) {\n return
    {_.map(strategies, renderStrategy)}
    ;\n }\n\n return (\n
    \n \"No\n No Strategies Available\n
    \n );\n };\n\n return (\n \n {renderStrategyContainer()}\n {!isLoading && (\n
    \n { window.location.href = '/strategies'; }}\n >\n Go to Sample Strategies\n arrow_forward \n \n
    \n )}\n
    \n\n );\n};\n\nDashboardMarketPlaceStrategies.propTypes = propTypes;\nDashboardMarketPlaceStrategies.defaultProps = defaultProps;\n\nexport default DashboardMarketPlaceStrategies;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n textCount: PropTypes.number\n};\nconst defaultProps = {\n children: null,\n textCount: 10\n};\n\nconst ReadMore = ({ children, textCount }) => {\n if (!children) return null;\n\n const text = children;\n const [isReadMore, setIsReadMore] = useState(true);\n const toggleReadMore = () => {\n setIsReadMore(!isReadMore);\n };\n\n const isShowReadMore = _.size(text) > textCount;\n\n return (\n <>\n {isReadMore ? text.slice(0, textCount) : text}\n {isShowReadMore && (\n \n {isReadMore ? '... Read more' : ' Show less'}\n \n )}\n \n );\n};\n\nReadMore.propTypes = propTypes;\nReadMore.defaultProps = defaultProps;\n\nexport default ReadMore;\n","import _ from 'lodash';\nimport ReadMore from 'common/components/ReadMore';\nimport { runPropTypes } from 'common/propTypes';\nimport React, { useState } from 'react';\nimport qs from 'qs';\nimport InstrumentGroupsSentence from 'common/components/InstrumentGroupsSentence';\nimport classNames from 'classnames';\n// import CreditDetails from 'ui/run/RunShow/components/CreditDetails';\nimport PropTypes from 'prop-types';\nimport { getFolders } from 'common/api/folder';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport moment from 'moment';\nimport { createRun } from 'common/api/run';\nimport { quotaVerificationDom } from 'ui/QuotaVerification/quotaDom';\nimport { initiateUserAuth } from 'common/auth/modalLogin';\nimport { getSanitizedQuantConfig } from 'v2/modules/withRunForm/sanitizer/onLoad/quantConfig/index';\n\nconst propTypes = { run: runPropTypes.isRequired, currentUserDefaultFolderId: PropTypes.number };\nconst defaultProps = { currentUserDefaultFolderId: null };\n\nconst ShowCaseRunCard = ({ run, currentUserDefaultFolderId }) => {\n const [isExpanded] = useState(false);\n const {\n name, description, id: runId, quant_config: quantConfig, run_type: runType,\n order_type: orderType, start_date: startDate, end_date: endDate, strategy_id: strategyId\n } = run;\n const cloneUrl = `/runs/new?${qs.stringify({ clone_from_run_id: runId })}`;\n const { isUserSignedIn } = window;\n const sanitizedQuantConfig = getSanitizedQuantConfig(quantConfig);\n\n const { instrumentGroups } = sanitizedQuantConfig;\n\n const divClassName = classNames('bt-transaction-details mb-3', {\n 'expand-more': isExpanded,\n '': !isExpanded\n });\n\n const executeCreateRun = (runParams) => {\n createRun(runParams).catch((error) => {\n const errors = _.get(error.response, 'data.errors', []);\n const additionalErrors = _.filter(errors, (err, key) => key !== 'quant_config');\n const errorMessages = _.join(_.map(additionalErrors, '0'), ', ');\n\n if (errorMessages) reactToastify(errorMessages, TOASTIFY_TYPES.ERROR);\n });\n\n return null;\n };\n\n const executeRun = (runParams) => {\n return quotaVerificationDom(instrumentGroups, runParams, executeCreateRun);\n };\n\n const handleCreateRun = () => {\n const runParams = {\n name,\n folder_id: currentUserDefaultFolderId,\n quant_config: JSON.stringify(quantConfig),\n run_type: runType,\n order_type: orderType,\n start_date: moment(startDate).format('YYYY-MM-DD'),\n end_date: moment(endDate).format('YYYY-MM-DD'),\n strategy_id: strategyId\n };\n\n const onHandleDefaultFolderAndExecuteRun = () => {\n getFolders().then((folders) => {\n const { id } = _.find(folders, 'is_default');\n executeRun({ ...runParams, folder_id: id });\n });\n };\n\n if (isUserSignedIn) {\n if (!currentUserDefaultFolderId) return onHandleDefaultFolderAndExecuteRun();\n return executeRun(runParams);\n }\n\n initiateUserAuth().then(() => {\n onHandleDefaultFolderAndExecuteRun();\n }).catch(() => { reactToastify('Unauthorized, Please Login and continue', TOASTIFY_TYPES.ERROR); });\n\n return null;\n };\n\n return (\n
    \n
    \n
    {name || runId}
    \n
    \n\n
    \n {description}\n
    \n\n
    \n
    \n\n
    \n
    Instrument
    \n
    \n
    \n
    \n
    \n
    \n
    \n {/* */}\n \n Copy and Edit\n
    \n
    \n
    \n );\n};\n\nShowCaseRunCard.propTypes = propTypes;\nShowCaseRunCard.defaultProps = defaultProps;\n\nexport default ShowCaseRunCard;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { runPropTypes } from 'common/propTypes';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport ShowCaseRunCard from './ShowCaseRunCard/index';\n\nconst MINIMIZED_SHOW_COUNT = 6;\n\nconst propTypes = {\n showcasedRuns: PropTypes.arrayOf(runPropTypes).isRequired,\n currentUserDefaultFolderId: PropTypes.number\n};\nconst defaultProps = { currentUserDefaultFolderId: null };\n\nconst ShowCaseRunCards = ({ showcasedRuns, currentUserDefaultFolderId }) => {\n if (_.isEmpty(showcasedRuns)) return null;\n const [isExpanded, hasExpandedChange] = useState(false);\n\n const runs = isExpanded ? showcasedRuns : _.take(showcasedRuns, MINIMIZED_SHOW_COUNT);\n\n const renderShowCaseRun = (run, idx) => (\n \n );\n\n const renderShowMore = () => {\n if (showcasedRuns.length <= MINIMIZED_SHOW_COUNT) { return null; }\n\n return (\n
    \n hasExpandedChange(!isExpanded)}\n >\n {isExpanded ? 'Show Less' : 'Show More'}\n \n
    \n );\n };\n\n return (\n <>\n

    Sample Strategies

    \n
    {_.map(runs, renderShowCaseRun)}
    \n {renderShowMore()}\n \n );\n};\n\nShowCaseRunCards.propTypes = propTypes;\nShowCaseRunCards.defaultProps = defaultProps;\n\nexport default withErrorBoundary(ShowCaseRunCards);\n","import classNames from 'classnames';\nimport React from 'react';\n\nconst GoToMarketPlaceBanner = () => {\n const marketplaceBannerClassNames = classNames(\n 'marketplace-banner', 'rounded mt-3 mt-md-0 mb-3 mb-md-6',\n 'd-none d-md-block', 'master-domain-only'\n );\n\n return (\n
    \n
    \n
    \n

    Sample Strategies

    \n

    \n Explore a world of trading strategies, where you choose and deploy from professionally curated\n strategies.\n

    \n
    \n\n { window.location.href = '/strategies'; }}\n >\n Explore Now\n arrow_forward\n \n
    \n
    \n );\n};\n\nGoToMarketPlaceBanner.propTypes = {};\n\nexport default GoToMarketPlaceBanner;\n","import classNames from 'classnames';\nimport React from 'react';\n\nconst GoToCreateStrategyBanner = () => {\n const createStrategyBannerClassNames = classNames(\n 'marketplace-banner', 'rounded mt-3 mt-md-0 mb-3 mb-md-6',\n 'd-none d-md-block', 'master-domain-only'\n );\n\n return (\n
    \n
    \n
    \n

    Create your own strategy

    \n

    \n We allows you to tailor your approach\n to the financial markets and implement personalized trading rules.\n

    \n
    \n\n { window.location.href = '/runs/new'; }}\n >\n Create Strategy\n arrow_forward\n \n
    \n
    \n );\n};\n\nGoToCreateStrategyBanner.propTypes = {};\n\nexport default GoToCreateStrategyBanner;\n","import _ from 'lodash';\n// vendor imports\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\n// project imports\nimport { runPropTypes, userPropTypes } from 'common/propTypes';\nimport { SEGMENT_CONFIG } from 'common/constants/index';\nimport { getQuantSupportSegment } from 'ui/run/RunForm/helper';\nimport AccessTokenInValidMessage from 'ui/Settings/Components/AccessTokenInValidMessage';\nimport classNames from 'classnames';\nimport AvailableFreeTrialCard from 'common/components/AvailableFreeTrialCard';\nimport RecentRuns from './components/RecentRuns';\nimport StarredRuns from './components/StarredRuns/index';\nimport ReadyMadeTemplates from './components/ReadyMadeTemplates/index';\nimport StrategyBuilder from './components/StrategyBuilder/index';\nimport MeetBanner from './components/MeetBanner/index';\nimport AccountDetails from './components/AccountDetails/index';\nimport LiveTransactions from './components/LiveTransactions/index';\nimport DashboardDeployedStrategies from './components/MarkerPlaceStrategies/DashboardDeployedStrategies';\nimport DashboardMarketPlaceStrategies\nfrom './components/MarkerPlaceStrategies/DashboardMarketPlaceStrategies';\nimport ShowCaseRunCards from './components/ShowCaseRunCards/index';\nimport GoToMarketPlaceBanner from './components/MarkerPlaceStrategies/GoToMarketPlaceBanner';\nimport GoToCreateStrategyBanner from './components/MarkerPlaceStrategies/GoToCreateStrategyBanner';\n\nconst propTypes = {\n showcasedRuns: PropTypes.arrayOf(runPropTypes).isRequired,\n historicRuns: PropTypes.arrayOf(runPropTypes),\n liveRuns: PropTypes.arrayOf(runPropTypes),\n starredRuns: PropTypes.arrayOf(runPropTypes),\n googleMeetConfig: PropTypes.arrayOf(PropTypes.shape({})),\n currentUserDetails: userPropTypes,\n plan: PropTypes.shape({}),\n currentUserDefaultFolderId: PropTypes.number\n};\nconst defaultProps = {\n historicRuns: [],\n liveRuns: [],\n starredRuns: [],\n googleMeetConfig: [],\n currentUserDetails: null,\n plan: null,\n currentUserDefaultFolderId: null\n};\n\nconst Home = ({\n showcasedRuns, historicRuns, liveRuns, starredRuns,\n googleMeetConfig, currentUserDetails, plan, currentUserDefaultFolderId\n}) => {\n const { isUserSignedIn, SA_FEATURE_FLAGS } = window;\n const isShowMarketplaceInDashboard = isUserSignedIn && SA_FEATURE_FLAGS.isMarketPlaceAllowed;\n const segments = _.get(plan, 'segments', []);\n const [activeTab, setActiveTab] = useState(\n isShowMarketplaceInDashboard ? 'marketplace' : 'optionsBuilder'\n );\n\n const homeTabs = [\n {\n isShow: isShowMarketplaceInDashboard,\n value: 'marketplace',\n name: 'Sample Strategies',\n icon: () => { return storefront; },\n returnRenderer: () => {\n return (\n
    \n \n
    \n );\n }\n },\n {\n isShow: true,\n value: 'deployedStrategies',\n name: 'Deployed Strategies',\n icon: () => { return rocket_launch; },\n returnRenderer: () => {\n return ();\n }\n },\n {\n isShow: true,\n value: 'optionsBuilder',\n name: 'Options Builder',\n icon: () => { return tune; },\n returnRenderer: () => {\n return ();\n }\n },\n {\n isShow: false,\n value: 'indicatorTemplates',\n name: 'Indicator Templates',\n icon: () => { return layers; },\n returnRenderer: () => {\n return (\n \n );\n }\n }\n ];\n\n const renderHomeTabs = (config, idx) => {\n if (!config.isShow) return null;\n\n const listClassName = classNames('list-item', { active: config.value === activeTab });\n return (\n { setActiveTab(config.value); }}\n >\n \n {config.icon()}\n {config.name}\n \n \n );\n };\n\n const returnComponent = _.find(homeTabs, ({ value }) => value === activeTab);\n\n return (\n
    \n \n
    \n
    \n
    \n \n {isShowMarketplaceInDashboard ? : }\n \n \n
    \n\n
    \n
    \n
    \n
      {_.map(homeTabs, renderHomeTabs)}
    \n
    \n
    \n
    \n {_.get(returnComponent, 'returnRenderer', () => { })()}\n
    \n
    \n\n
    \n \n
    \n \n \n
    \n \n \n
    \n
    \n
    \n );\n};\n\nexport default Home;\n\nHome.propTypes = propTypes;\nHome.defaultProps = defaultProps;\n","import React from 'react';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst UsLogin = () => {\n return (\n
    \n
    \n
    \n
    Sign in to your account
    \n \n
    \n
    \n
    \n );\n};\n\nUsLogin.propTypes = propTypes;\nUsLogin.defaultProps = defaultProps;\n\nexport default UsLogin;\n","import _ from 'lodash';\nexport const setSessionStorage = (key, value) => {\n let sessionStorage = null;\n try { sessionStorage = _.get(window, 'sessionStorage', null); } catch { sessionStorage = null; }\n\n if (!sessionStorage) return;\n\n sessionStorage.setItem(key, value);\n};\n\nexport const getSessionStorage = (key) => {\n let sessionStorage = null;\n try { sessionStorage = _.get(window, 'sessionStorage', null); } catch { sessionStorage = null; }\n\n if (!sessionStorage) return '';\n\n return sessionStorage.getItem(`${key}`);\n};\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { INFO_MESSAGE_TYPE } from 'v2/common/constants';\n\nconst propTypes = {\n infoType: PropTypes.string,\n args: PropTypes.string\n};\n\nconst defaultProps = {\n infoType: 'info',\n args: {}\n};\n\nconst RenderInfoMessage = ({ infoType, args }) => {\n const oneIndentation = ' ';\n\n const renderBrokerLoginRequiredInfo = useMemo(() => {\n const { planName = 'Live' } = args;\n return (\n
    \n \n Broker Login Required :\n {oneIndentation}\n {oneIndentation}\n {planName}\n {oneIndentation}\n run plan purchases are only allowed for Broker logins.\n {oneIndentation}\n {oneIndentation}\n Please log in with your Broker account to buy a plan.\n \n
    \n );\n }, [args]);\n\n const renderBacktestPlanInfo = useMemo(() => {\n return (\n
    \n <>\n {oneIndentation}\n
    \n \n Backtest plan\n {oneIndentation}\n can be purchased with an Email login.\n To purchase Backtest plan with Email login,\n {\n window.allowBacktestPlanPurchase = true;\n window.complete = true;\n }}\n className=\"btn-sm btn btn-success text-nowrap copy-btn track cursor-pointer m-2\"\n >\n {' '}\n {oneIndentation}\n please click here\n \n \n \n
    \n );\n }, []);\n\n switch (infoType) {\n case INFO_MESSAGE_TYPE.BrokerLogin:\n return renderBrokerLoginRequiredInfo;\n case INFO_MESSAGE_TYPE.BacktestPlan:\n return renderBacktestPlanInfo;\n default:\n return null;\n }\n};\n\nRenderInfoMessage.propTypes = propTypes;\nRenderInfoMessage.defaultProps = defaultProps;\n\nexport default RenderInfoMessage;\n","import { BROKERS, XTS_API_VENDOR } from 'common/constants/index';\n\nlet xtsImageSource = 'https://encrypted-tbn0.gstatic.com';\nxtsImageSource += '/images?q=tbn:ANd9GcSwr_LzBoU7RjcYjp21df6W-rFBEE9eI2qjEQ&usqp=CAU';\n\nexport const loginPageTopBrokers = [\n BROKERS.fyers.id,\n BROKERS.paytm.id,\n BROKERS.zerodha.id,\n BROKERS.angel_broking.id,\n BROKERS.aliceblue.id,\n BROKERS.upstox.id,\n BROKERS.fivepaisa.id,\n BROKERS.icici_direct.id,\n BROKERS.finvasia.id,\n BROKERS.dhan.id\n];\n\nexport const brokerStructuredData = [\n {\n brokerConfig: BROKERS.fyers,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.fyers.image,\n imageClassName: '',\n sortOrder: 0\n },\n {\n href: BROKERS.paytm.href,\n brokerConfig: BROKERS.paytm,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.paytm.image,\n imageClassName: '',\n sortOrder: 6\n },\n {\n brokerConfig: BROKERS.icici_direct,\n brokerClassName: 'btn btn-light',\n name: 'ICICI direct',\n isShow: false,\n imagePath: BROKERS.icici_direct.image,\n imageClassName: '',\n sortOrder: 2\n },\n {\n href: BROKERS.angel_broking.href,\n brokerConfig: BROKERS.angel_broking,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.angel_broking.image_white,\n imageClassName: 'w-75',\n sortOrder: 3\n },\n {\n href: BROKERS.aliceblue.href,\n brokerConfig: BROKERS.aliceblue,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.aliceblue.image,\n imageClassName: '',\n sortOrder: 4\n },\n {\n href: BROKERS.zebull.href,\n brokerConfig: BROKERS.zebull,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.zebull.image,\n imageClassName: '',\n sortOrder: 5\n },\n {\n brokerConfig: BROKERS.flattrade,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.flattrade.image,\n imageClassName: '',\n sortOrder: 6\n },\n {\n brokerConfig: BROKERS.zerodha,\n brokerClassName: 'btn btn-light',\n name: BROKERS.zerodha.name,\n isShow: false,\n imagePath: BROKERS.zerodha.image,\n imageClassName: 'small',\n sortOrder: 40\n },\n {\n href: BROKERS.jainam_duck.href,\n brokerConfig: BROKERS.jainam_duck,\n brokerClassName: 'btn btn-light',\n name: 'Duck', // frontend Differently show to users.. so that not taken from Zeequant-Constant\n isShow: true,\n imagePath: BROKERS.jainam_duck.image,\n imageClassName: '',\n sortOrder: 15\n },\n {\n href: BROKERS.goodwill.href,\n brokerConfig: BROKERS.goodwill,\n brokerClassName: 'btn btn-light',\n name: BROKERS.goodwill.name,\n isShow: true,\n imagePath: BROKERS.goodwill.image,\n imageClassName: '',\n sortOrder: 12\n },\n {\n href: BROKERS.fivepaisa.href,\n brokerConfig: BROKERS.fivepaisa,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.fivepaisa.image,\n imageClassName: '',\n sortOrder: 9\n },\n {\n href: BROKERS.motilal_oswal.href,\n brokerConfig: BROKERS.motilal_oswal,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.motilal_oswal.image,\n imageClassName: '',\n sortOrder: 16\n },\n {\n brokerConfig: BROKERS.bigul,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.bigul.image,\n imageClassName: '',\n sortOrder: 19\n },\n {\n href: BROKERS.dhan.href,\n brokerConfig: BROKERS.dhan,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.dhan.image,\n imageClassName: '',\n sortOrder: 10\n },\n {\n brokerConfig: { id: XTS_API_VENDOR },\n brokerClassName: 'btn btn-light',\n name: '',\n isShow: true,\n imagePath: xtsImageSource,\n imageClassName: '',\n sortOrder: 15\n },\n {\n brokerConfig: BROKERS.finvasia,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.finvasia.image,\n imageClassName: '',\n sortOrder: 11\n },\n {\n brokerConfig: BROKERS.iifl,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.iifl.image,\n imageClassName: '',\n sortOrder: 13\n },\n {\n href: BROKERS.nuvama.href,\n brokerConfig: BROKERS.nuvama,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.nuvama.image,\n imageClassName: '',\n sortOrder: 14\n },\n {\n href: BROKERS.mastertrust.href,\n brokerConfig: BROKERS.mastertrust,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.mastertrust.image,\n sortOrder: 17\n },\n {\n href: BROKERS.moneysukh.href,\n brokerConfig: BROKERS.moneysukh,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.moneysukh.image,\n sortOrder: 18\n },\n {\n brokerConfig: BROKERS.upstox,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.upstox.image,\n imageClassName: '',\n sortOrder: 7\n },\n {\n brokerConfig: BROKERS.bnrathi,\n brokerClassName: 'btn btn-light',\n name: 'B.N.Rathi',\n isShow: false,\n imagePath: BROKERS.bnrathi.image,\n imageClassName: '',\n sortOrder: 21\n },\n {\n brokerConfig: BROKERS.tradeplus,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.tradeplus.image,\n imageClassName: '',\n sortOrder: 22\n },\n {\n brokerConfig: BROKERS.rupeezy,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.rupeezy.image,\n imageClassName: '',\n sortOrder: 23\n },\n {\n href: BROKERS.smc_global.href,\n brokerConfig: BROKERS.smc_global,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.smc_global.image,\n sortOrder: 24\n },\n {\n href: BROKERS.enrich_money.href,\n brokerConfig: BROKERS.enrich_money,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.enrich_money.image,\n imageClassName: '',\n sortOrder: 1\n },\n {\n href: BROKERS.sharekhan.href,\n brokerConfig: BROKERS.sharekhan,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.sharekhan.image,\n imageClassName: '',\n sortOrder: 26\n },\n {\n brokerConfig: BROKERS.kotak_neo,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.kotak_neo.image,\n imageClassName: '',\n sortOrder: 27\n },\n {\n brokerConfig: BROKERS.sky_broking,\n brokerClassName: 'btn btn-light',\n name: 'Sky Broking',\n isShow: true,\n imagePath: BROKERS.sky_broking.image,\n imageClassName: '',\n sortOrder: 28\n },\n {\n brokerConfig: BROKERS.ac_agarwal,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.ac_agarwal.image,\n imageClassName: '',\n sortOrder: 29\n },\n {\n href: BROKERS.philip_capital.href,\n brokerConfig: BROKERS.philip_capital,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.philip_capital.image,\n imageClassName: '',\n sortOrder: 5\n },\n {\n href: BROKERS.samco.href,\n brokerConfig: BROKERS.samco,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.samco.image,\n imageClassName: '',\n sortOrder: 32\n },\n {\n brokerConfig: BROKERS.indira_securities,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.indira_securities.image,\n imageClassName: '',\n sortOrder: 33\n },\n {\n brokerConfig: { ...BROKERS.jainam_broking_retail, name: 'Jainam Broking' },\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.jainam_broking_retail.image,\n imageClassName: '',\n sortOrder: 34\n },\n {\n brokerConfig: BROKERS.fair_invest,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.fair_invest.image,\n imageClassName: '',\n sortOrder: 35\n },\n {\n brokerConfig: BROKERS.profitmart,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.profitmart.image,\n imageClassName: '',\n sortOrder: 36\n },\n {\n href: BROKERS.stoxkart.href,\n brokerConfig: BROKERS.stoxkart,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.stoxkart.image,\n sortOrder: 95\n },\n {\n brokerConfig: BROKERS.hdfcsky,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.hdfcsky.image,\n imageClassName: '',\n sortOrder: 37\n },\n {\n brokerConfig: BROKERS.invest_right,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.invest_right.image,\n imageClassName: '',\n sortOrder: 38\n },\n {\n href: BROKERS.jainam_lite.href,\n brokerConfig: BROKERS.jainam_lite,\n brokerClassName: 'btn btn-light',\n isShow: false,\n imagePath: BROKERS.jainam_lite.image,\n imageClassName: '',\n sortOrder: 95\n },\n {\n href: BROKERS.dhanistocks.href,\n brokerConfig: BROKERS.dhanistocks,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.dhanistocks.image,\n imageClassName: '',\n sortOrder: 96\n },\n {\n brokerConfig: BROKERS.trade_smart,\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.trade_smart.image,\n imageClassName: '',\n sortOrder: 97\n },\n {\n brokerConfig: { ...BROKERS.kasat, name: 'Kasat Securities' },\n brokerClassName: 'btn btn-light',\n isShow: true,\n imagePath: BROKERS.kasat.image,\n imageClassName: '',\n sortOrder: 98\n },\n {\n href: BROKERS.groww.href,\n brokerConfig: { ...BROKERS.groww, name: 'Groww' },\n brokerClassName: 'btn btn-light',\n isShow: false,\n name: BROKERS.groww.name,\n imagePath: BROKERS.groww.image,\n imageClassName: '',\n sortOrder: 99\n },\n {\n href: BROKERS.broker_stub.href,\n brokerConfig: BROKERS.broker_stub,\n brokerClassName: 'btn btn-light',\n name: BROKERS.broker_stub.name,\n isShow: window.allowBrokerStub,\n imagePath: BROKERS.broker_stub.image,\n imageClassName: '',\n sortOrder: 100\n }\n];\n","import { initiateBrokerCallbackLogin } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst loginInModal = (href) => {\n initiateBrokerCallbackLogin(href)\n .then((res) => {\n window.location.href = res?.href;\n })\n .catch((error) => {\n console.error(error);\n reactToastify(\n 'Unauthorized, Please Login and continue',\n TOASTIFY_TYPES.ERROR\n );\n });\n};\n\nexport default loginInModal;\n","import React from 'react';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\n// import { BROKERS } from 'common/constants';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst AngelOneLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with AngelOne Smart API.\n
    \n
    \n

    \n {/* \n \n */}\n loginInModal('/auth/angel_broking')}\n >\n Login via\n {oneIndentation}\n Angel_API_Integration\n \n
    \n
    \n
    \n );\n};\n\nAngelOneLogin.propTypes = propTypes;\nAngelOneLogin.defaultProps = defaultProps;\n\nexport default AngelOneLogin;\n","export const signUpFormProps = {\n email: {\n type: 'email',\n name: 'user[email]',\n autoComplete: 'new-password',\n placeholder: 'Your Email',\n required: 'required',\n icon: 'email',\n pattern: '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{1,63}$'\n },\n password: {\n autoComplete: 'new-password',\n minLength: '6',\n name: 'user[password]',\n placeholder: 'Password',\n required: 'required',\n type: 'password',\n icon: 'lock',\n },\n passwordConfirmation: {\n minLength: '6',\n name: 'user[password_confirmation]',\n placeholder: 'Password',\n required: 'required',\n type: 'password',\n icon: 'lock',\n }\n};\n\nexport const socialMedias = {\n gmail: {\n href: '#',\n className: 'social icons-google'\n },\n facebook: {\n href: '#',\n className: 'social icons-facebook-f'\n },\n twitter: {\n href: '#',\n className: 'social icons-twitter'\n },\n telegram: {\n href: '#',\n className: 'social icons-telegram'\n }\n};\n\nexport const signInProps = {\n email: {\n type: 'email',\n name: 'user[email]',\n placeholder: 'Enter your email',\n icon: 'emails',\n },\n password: {\n type: 'password',\n name: 'user[password]',\n placeholder: 'Password',\n icon: 'lock',\n }\n};\n\nexport const navBarItems = {\n home: { id: 'home', displayName: 'Home' },\n features: { id: 'features', displayName: 'Features' },\n plans: { id: 'plans', displayName: 'Buy a Plan' },\n faq: { id: 'faq', displayName: 'Faq' },\n contact: { id: 'contact', displayName: 'Contact Us' }\n};\n\nexport const plans = {\n badshah: {\n monthly: {\n price: 2500,\n discountPercentage: 0,\n backtestCount: 250,\n liveCount: 10\n },\n halfYearly: {\n price: 11999,\n discountPercentage: 20,\n backtestCount: 250,\n liveCount: 10\n },\n yearly: {\n price: 17999,\n discountPercentage: 40,\n backtestCount: 250,\n liveCount: 10,\n }\n }\n};\n","import _ from 'lodash';\nimport React from 'react';\n\nimport { signInProps } from 'ui/LandingPage/config';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst SignIn = () => {\n const renderFormField = (fieldProps, field) => (\n
    \n \n
    \n {`${fieldProps.icon}`}\n \n
    \n
    \n );\n\n return (\n
    \n
    \n {_.map(signInProps, renderFormField)}\n\n
    \n
    \n \n \n
    \n\n
    \n Forget Password?\n \n Didn't receive confirmation email?\n \n\n \n Sign in\n \n \n
    \n
    \n
    Or continue with
    \n \"facebook\"\n \"twitter\"\n
    \n
    \n );\n};\n\nSignIn.propTypes = propTypes;\nSignIn.defaultProps = defaultProps;\n\nexport default SignIn;\n","import _ from 'lodash';\nimport React from 'react';\nimport ReactHtmlParser, { processNodes } from 'react-html-parser';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport PropTypes from 'prop-types';\nimport qs from 'qs';\nimport { TEMP_MAIL_LIST } from 'v2/common/constants';\n\nimport { signUpFormProps, socialMedias } from 'ui/LandingPage/config';\n\nconst propTypes = {\n errorMessages: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n ]),\n referredBy: PropTypes.string\n};\nconst defaultProps = {\n errorMessages: null,\n referredBy: null,\n};\n\nconst transform = (node, index) => {\n \n if (node.type !== 'tag') {\n return;\n }\n\n return (\n
    \n {processNodes(node.children, transform)}\n
    \n );\n \n};\n\nconst SignUp = (props) => {\n const { errorMessages, referredBy: propsRefrredBy } = props;\n const queryString = window.location.search;\n const parsedQueryString = qs.parse(queryString, { parseBooleans: true });\n // eslint-disable-next-line no-unused-vars\n const referredBy = !propsRefrredBy ? _.get(parsedQueryString, 'referred_by', propsRefrredBy)\n : propsRefrredBy;\n\n const renderFormInputs = (formProps, field) => (\n
    \n \n
    \n {`${formProps.icon}`}\n \n
    \n
    \n );\n\n const handleSignUp = (event) => {\n event.preventDefault();\n\n const form = event.target;\n const password = form['user[password]'].value;\n const passwordConfirmation = form['user[password_confirmation]'].value;\n const email = form['user[email]'].value;\n\n if (password !== passwordConfirmation) {\n reactToastify('Passwords and Password Confirmation do not match', TOASTIFY_TYPES.ERROR);\n return;\n }\n\n const isTempMail = TEMP_MAIL_LIST.some((domain) => email.includes(domain));\n // const isProductionENV = process.env.NODE_ENV === 'production';\n\n if (isTempMail) {\n reactToastify('Invalid Email / Temporary Emails Not Allowed ', TOASTIFY_TYPES.ERROR);\n return;\n }\n\n form.submit();\n };\n\n return (\n
    \n
    \n {!!errorMessages && ReactHtmlParser(errorMessages, { transform })}\n
    \n \n {_.map(signUpFormProps, renderFormInputs)}\n {/* */}\n \n Create Account\n \n \n
    \n\n
    Or sign up with social account
    \n
    \n {_.map(socialMedias, (socialProps, key) => (\n \n ))}\n
    \n\n \n );\n};\n\nSignUp.propTypes = propTypes;\nSignUp.defaultProps = defaultProps;\n\nexport default SignUp;\n","import _ from 'lodash';\nimport { BROKERS, XTS_API_VENDOR, CALLBACK_SUPPORTED_ON_BROKER_DOMAINS } from 'common/constants/index';\nimport { initiateBrokerCallbackLogin } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nexport const reDirectPage = (reDirectData, broker, isRedirectToCallbackPath) => {\n let reDirectUrl = `/auth/${broker}`;\n if (isRedirectToCallbackPath) reDirectUrl += '/callback?';\n else reDirectUrl += '?';\n\n let index = 0;\n _.each(reDirectData, (data, key) => {\n reDirectUrl += !index ? `${key}=${encodeURIComponent(data)}` : `&${key}=${encodeURIComponent(data)}`;\n index += 1;\n });\n\n if (CALLBACK_SUPPORTED_ON_BROKER_DOMAINS.includes(broker)) {\n initiateBrokerCallbackLogin(reDirectUrl)\n .then((res) => {\n window.location.href = res?.href;\n })\n .catch(() => {\n reactToastify(\n 'Unauthorized, Please Login and continue',\n TOASTIFY_TYPES.ERROR\n );\n });\n } else {\n window.location.href = reDirectUrl;\n }\n};\n\nexport const getBrokerImage = (broker) => {\n let imageWrapper = '';\n\n switch (broker) {\n case BROKERS.icici_direct.id:\n imageWrapper += ' {\n let notesContent = '';\n switch (broker) {\n case BROKERS.zebull.id:\n notesContent += '
    Note:';\n notesContent += ' It is required to login directly using the link ';\n notesContent += '';\n notesContent += 'https://zebull.in before login in Quantman. ';\n notesContent += 'Also, do not logout zebull, but it is ok to close the tab directly.
    ';\n return notesContent;\n case BROKERS.flattrade.id:\n notesContent += '
    Note:';\n notesContent += ' If you logged-in another app using flattrade api after quantman login, ';\n notesContent += ' your session in quantman has expired by flattrade and your orders will fail.
    ';\n return notesContent;\n default:\n return notesContent;\n }\n};\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst IciciDirect = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://api.icicidirect.com/apiuser/home\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      Use ICICI Direct credentials to login

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Click on\n {oneIndentation}\n Register an App\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Fill below details and submit.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n Redirect URL:\n {oneIndentation}\n https://quantman.in/auth/icici_direct/callback\n

      \n
      \n\n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Click\n {oneIndentation}\n View Apps\n

      \n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n Click\n {oneIndentation}\n Deactive\n {oneIndentation}\n in App status.\n

      \n \n
      \n
    12. \n\n
    13. \n
      \n

      Step 7

      \n

      \n Click\n {oneIndentation}\n Yes\n {oneIndentation}\n button in confirmation popup and refresh the page.\n

      \n \n
      \n
    14. \n\n
    15. \n
      \n

      Step 8

      \n

      \n Now, Please check your app status if its\n {oneIndentation}\n Active \n ,\n {oneIndentation}\n you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    16. \n
    \n
    \n \n);\n\nIciciDirect.propTypes = propTypes;\nIciciDirect.defaultProps = defaultProps;\n\nexport default IciciDirect;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nlet zerodhaSupportLink = 'https://support.zerodha.com/category/your-zerodha-account/';\nzerodhaSupportLink += 'login-credentials/login-credentials-of-trading-platforms/articles/';\nzerodhaSupportLink += 'time-based-otp-setup-mobile-only';\n\nconst step5Content = 'Type \"I UNDERSTAND\" and click ok in popup (it requires 2000 credits)';\nconst step7Content = 'Click \"Show API Secret\"';\n\nconst Zerodha = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n Note:\n {oneIndentation}\n TOTP is mandatory to place orders on third-party apps in zerodha. Learn how to set up TOTP\n for your account\n {oneIndentation}\n \n Click here.\n\n \n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://kite.trade/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      Click on the Signup or Login.

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n After successful logging in, Click on\n {oneIndentation}\n Create new app\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Fill below details and submit.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n\n Zerodha Client ID:\n {oneIndentation}\n Your zerodha user Id\n
      \n\n Redirect URL:\n {oneIndentation}\n https://quantman.in/auth/zerodha/callback\n
      \n\n Postback URL:\n {oneIndentation}\n https://quantman.in/zerodha/postback\n
      \n\n Description:\n {oneIndentation}\n Quantman\n

      \n
      \n\n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n {step5Content}\n

      \n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n Choose your app in list\n

      \n \n
      \n
    12. \n\n
    13. \n
      \n

      Step 7

      \n

      \n {step7Content}\n

      \n \n
      \n
    14. \n\n
    15. \n
      \n

      Step 8

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    16. \n
    \n
    \n \n);\n\nZerodha.propTypes = propTypes;\nZerodha.defaultProps = defaultProps;\n\nexport default Zerodha;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Zebull = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n Please login zebull\n \n \n - https://go.mynt.in/#/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click\n {oneIndentation}\n client code on top right corner\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Click the\n {oneIndentation}\n API key\n {oneIndentation}\n button next to the logout put for generate.\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Select the\n {oneIndentation}\n API key Months\n

      \n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Generate the API Key\n

      \n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 7

      \n

      \n Now, you can copy the\n {oneIndentation}\n APP Key and paste it in appropriate field.\n

      \n \n
      \n
    12. \n\n
    \n
    \n \n);\n\nZebull.propTypes = propTypes;\nZebull.defaultProps = defaultProps;\n\nexport default Zebull;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Flattrade = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://wall.flattrade.in/login\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click\n {oneIndentation}\n Pi\n {oneIndentation}\n on the top right corner\n {' '}\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Click on\n {oneIndentation}\n CREATE NEW API KEY\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Fill below details and submit.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n App ShortName:\n {oneIndentation}\n Quantman\n
      \n Redirect URL:\n {oneIndentation}\n https://quantman.in/auth/flattrade/callback\n
      \n Postback URL:\n {oneIndentation}\n https://www.quantman.in/flattrade/postback\n
      \n Description:\n {oneIndentation}\n Quantman\n

      \n
      \n\n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Press\n {' '}\n eye icon\n {' '}\n to show secret key\n

      \n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    12. \n
    \n
    \n \n);\n\nFlattrade.propTypes = propTypes;\nFlattrade.defaultProps = defaultProps;\n\nexport default Flattrade;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Iifl = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://ttblaze.iifl.com/dashboard#!/login\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click\n {oneIndentation}\n Create an Account\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Create profile by entering details. Field marked with\n {oneIndentation}\n *\n {oneIndentation}\n are mandatory\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Verification mail will be send on your email id.\n

      \n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Post successful email verification, You can login with credentials which shared over email.\n

      \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n After successful login, click CREATE NEW APPLICATION\n

      \n \n
      \n
    12. \n\n
    13. \n
      \n

      Step 7

      \n

      \n Click validate and Enter broker client id and api login password.\n

      \n \n
      \n
    14. \n\n
    15. \n
      \n

      Step 8

      \n

      \n Go to API Catalogue and Click subscribe\n {oneIndentation}\n Interactive Order API\n

      \n
      \n
    16. \n\n
    17. \n
      \n

      Step 9

      \n

      \n Fill below details in appropriate fields and click CREATE NEW APPLICATION.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n IIFLMARKET\n
      \n App Description:\n {oneIndentation}\n IIFL MARKET\n
      \n API Package:\n {oneIndentation}\n Interactive Order API\n
      \n Company Name:\n {oneIndentation}\n IIFL1\n
      \n Redirect URL:\n {oneIndentation}\n https://ttblaze.iifl.com/interactive\n

      \n
      \n
      \n
    18. \n\n
    19. \n
      \n

      Step 10

      \n

      \n After successfully create api, you should wait till api activation from iifl team.\n

      \n

      \n Generally, API Activation activity is scheduled daily i.e. @ 9:00 am, 12:30 pm and 5:30 pm.\n If not activated within a day contact IIFL support.\n

      \n
      \n
    20. \n\n
    21. \n
      \n

      Step 11

      \n

      \n Once api activated, copy and paste api details in quantman and continue your login in quantman.\n

      \n
      \n
    22. \n
    \n
    \n \n);\n\nIifl.propTypes = propTypes;\nIifl.defaultProps = defaultProps;\n\nexport default Iifl;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Upstox = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://login.upstox.com/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click on your name on the top right corner and click on\n {oneIndentation}\n My Account\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Click on apps and select\n {oneIndentation}\n New App\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Fill below details and submit.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n Redirect URL:\n {oneIndentation}\n https://www.quantman.in/auth/upstox/callback\n
      \n Postback URL:\n {oneIndentation}\n https://www.quantman.in/upstox/postback\n
      \n

      \n
      \n\n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    10. \n
    \n
    \n \n);\n\nUpstox.propTypes = propTypes;\nUpstox.defaultProps = defaultProps;\n\nexport default Upstox;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Paytm = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://developer.paytmmoney.com/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      Use PaytmMoney credentials to sign-In and go to My Apps

      \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Click on\n {oneIndentation}\n Create New App\n

      \n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Click\n {oneIndentation}\n Proceed\n

      \n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Fill below details and Proceed.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n Product Type:\n {oneIndentation}\n Rule Based Trading Platform\n
      \n Redirect URL:\n {oneIndentation}\n https://www.quantman.in/auth/paytm/callback\n
      \n Description:\n {oneIndentation}\n QuantMan\n

      \n
      \n\n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n Click\n {oneIndentation}\n Go to Homepage\n

      \n \n
      \n
    12. \n\n
    13. \n
      \n

      Step 7

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    14. \n\n
    15. \n
      \n

      \n Source:\n {oneIndentation}\n \n https://www.paytmmoney.com/blog/how-to-create-api-key-and-secret/\n \n

      \n
      \n
    16. \n
    \n
    \n \n);\n\nPaytm.propTypes = propTypes;\nPaytm.defaultProps = defaultProps;\n\nexport default Paytm;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst KotakNeo = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://www.kotaksecurities.com/trading-tools/kotak-neo-trading-platform/trading-api/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Following your registration for the Neo TradeAPIs,\n {oneIndentation}\n you will receive an email from the Kotak team which included the your API details\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Please go to the API portal by\n {oneIndentation}\n \n Clicking here\n \n {oneIndentation}\n and\n {oneIndentation}\n use the credentials provided by the Kotak through email.\n

      \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Once you logged into the API gateway,\n {oneIndentation}\n go to Applications and then click on Default Application, as shown in the image below.\n

      \n \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Go to Production keys and scroll down the page and then change the default time from\n {oneIndentation}\n 3600 to 86400\n {oneIndentation}\n in all of the fields shown in the image below, then click on update at the bottom.\n

      \n \n
      \n
    10. \n\n
    11. \n
      \n

      Step 6

      \n

      \n Once updated, you can copy and paste the Consumer API details in the appropriate fields.\n

      \n \n
      \n
    12. \n
    \n
    \n \n);\n\nKotakNeo.propTypes = propTypes;\nKotakNeo.defaultProps = defaultProps;\n\nexport default KotakNeo;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Sharekhan = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n Sign in to your Sharekhan account by clicking on this link:\n {oneIndentation}\n \n \n https://newtrade.sharekhan.com/.\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Select the menu icon in the upper right corner.\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Select\n {oneIndentation}\n Trading API\n {oneIndentation}\n from the\n {oneIndentation}\n Sharekhan products\n {oneIndentation}\n menu\n

      \n\n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Click\n {oneIndentation}\n Create New App,\n {oneIndentation}\n then select\n {oneIndentation}\n Partners App,\n {oneIndentation}\n fill out the form with following details, and click Create.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n {/*
      */}\n {/* Redirect URL:\n {oneIndentation}\n https://www.quantman.in/auth/sharekhan/callback\n
      \n Postback URL:\n {oneIndentation}\n https://www.quantman.in/sharekhan/postback\n
      \n App Description:\n {oneIndentation}\n QuantMan */}\n

      \n
      \n\n {/* */}\n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n You can now copy and paste the API details into the appropriate fields below.\n

      \n \n
      \n
    10. \n
    \n
    \n \n);\n\nSharekhan.propTypes = propTypes;\nSharekhan.defaultProps = defaultProps;\n\nexport default Sharekhan;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst PhilipCapital = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n Please login PhilipCapital\n \n \n - https://phillip9.phillipcapital.in/#/entrylevel/login\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n After login, go to settings page or\n {' '}\n \n click here\n \n {' '}\n , then choose 10 years and generate API Key\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Now, you can copy the\n {oneIndentation}\n API Key and paste it in appropriate field.\n

      \n
      \n
    6. \n
    \n
    \n \n);\n\nPhilipCapital.propTypes = propTypes;\nPhilipCapital.defaultProps = defaultProps;\n\nexport default PhilipCapital;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst CopyTextButton = ({ text }) => {\n const onCopy = () => {\n navigator.clipboard.writeText(text);\n reactToastify('Copied to clipboard', TOASTIFY_TYPES.SUCCESS, {\n autoClose: 2000,\n hideProgressBar: true,\n });\n };\n\n return (\n \n \n {text}\n \n \n \n );\n};\n\nCopyTextButton.propTypes = {\n text: PropTypes.string.isRequired,\n};\nCopyTextButton.defaultProps = {};\n\nexport default CopyTextButton;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\n\nimport CopyTextButton from 'v2/common/components/CopyTextButton/index';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Hdfcsky = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link and login with Hdfcsky credentials\n {oneIndentation}\n \n \n https://developer.hdfcsky.com/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Go to\n {oneIndentation}\n My Apps.\n {oneIndentation}\n Click on create App\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Fill below details and create.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n Redirect URL:\n {oneIndentation}\n \n
      \n Description:\n {oneIndentation}\n Quantman\n

      \n
      \n\n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    8. \n
    \n
    \n \n);\n\nHdfcsky.propTypes = propTypes;\nHdfcsky.defaultProps = defaultProps;\n\nexport default Hdfcsky;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst InvestRight = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link and login with InvestRight credentials\n {oneIndentation}\n \n \n https://developer.hdfcsec.com/\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Go to\n {oneIndentation}\n My Apps.\n {oneIndentation}\n Click on create App\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Fill below details and create.\n

      \n\n
      \n

      \n App Name:\n {oneIndentation}\n Quantman\n
      \n Redirect URL:\n {oneIndentation}\n https://www.quantman.in/auth/invest_right/callback\n
      \n Description:\n {oneIndentation}\n Quantman\n

      \n
      \n\n \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n \n
      \n
    8. \n
    \n
    \n \n);\n\nInvestRight.propTypes = propTypes;\nInvestRight.defaultProps = defaultProps;\n\nexport default InvestRight;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport CopyTextButton from 'v2/common/components/CopyTextButton/index';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Rupeezy = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link and\n Login Using Rupeezy Credentials\n
      \n \n \n https://vortex.rupeezy.in/create-new-app\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click\n {oneIndentation}\n Create New App\n

      \n \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Fill the below details\n

      \n\n \n\n
      \n

      \n App Name:\n {oneIndentation}\n \n
      \n Rupeezy Client ID:\n {oneIndentation}\n eg. HIL789\n
      \n (Enter you Client ID in the input field)\n
      \n

      \n Redirect URL:\n {oneIndentation}\n \n
      \n
      \n Postback URL:\n {oneIndentation}\n \n
      \n Description:\n {oneIndentation}\n \n

      \n
      \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Please\n {oneIndentation}\n click on\n {oneIndentation}\n Create\n

      \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n

      \n Please\n {oneIndentation}\n click on\n {oneIndentation}\n View Details\n

      \n
      \n
    10. \n\n \n\n
    11. \n
      \n

      Step 6

      \n \n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n
      \n
    12. \n
    \n
    \n \n);\n\nRupeezy.propTypes = propTypes;\nRupeezy.defaultProps = defaultProps;\n\nexport default Rupeezy;\n","import React from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport PropTypes from 'prop-types';\nimport CopyTextButton from 'v2/common/components/CopyTextButton/index';\nimport { getBrokerImage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst Fyers = ({ broker }) => (\n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n
      \n
    1. \n
      \n

      Step 1

      \n

      \n To start click on this link\n \n \n - https://myapi.fyers.in/dashboard\n \n \n

      \n
      \n
    2. \n\n
    3. \n
      \n

      Step 2

      \n

      \n Click\n {oneIndentation}\n Create App\n

      \n
      \n
    4. \n\n
    5. \n
      \n

      Step 3

      \n

      \n Fill the below details\n

      \n\n \n\n
      \n

      \n App Name:\n {oneIndentation}\n \n
      \n Redirect URL:\n {oneIndentation}\n \n
      \n Description:\n {oneIndentation}\n \n
      \n Webhook URL:\n {oneIndentation}\n \n
      \n Webhook Secret:\n {oneIndentation}\n \n
      \n Webhook Permissions: \n {oneIndentation}\n Pending,Rejected,Cancelled,Traded\n
      \n (Choose the mentioned option in select box. Hint: Last option)\n
      \n App Permissions:\n {oneIndentation}\n Profile Details, Transaction Info, Order Placement\n
      \n (Check the mentioned App permissions)\n

      \n
      \n
      \n
    6. \n\n
    7. \n
      \n

      Step 4

      \n

      \n Please\n {oneIndentation}\n Check Agree\n {oneIndentation}\n and\n {oneIndentation}\n click on\n {oneIndentation}\n Create App\n

      \n
      \n
    8. \n\n
    9. \n
      \n

      Step 5

      \n \"Copy\n

      \n Now, you can Copy and paste api details in appropriate fields below.\n

      \n
      \n
    10. \n
    \n
    \n \n);\n\nFyers.propTypes = propTypes;\nFyers.defaultProps = defaultProps;\n\nexport default Fyers;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { BROKERS } from 'common/constants/index';\nimport IciciDirect from './IciciDirect';\nimport Zerodha from './Zerodha';\nimport Zebull from './Zebull';\nimport Flattrade from './Flattrade';\nimport Iifl from './iifl';\nimport Upstox from './upstox';\nimport Paytm from './Paytm';\nimport KotakNeo from './KotakNeo';\nimport Sharekhan from './Sharekhan';\nimport PhilipCapital from './PhilipCapital';\nimport Hdfcsky from './Hdfcsky';\nimport InvestRight from './InvestRight';\nimport Rupeezy from './Rupeezy';\nimport Fyers from './Fyers';\n\nconst propTypes = { broker: PropTypes.string.isRequired };\n\nconst defaultProps = {};\n\nconst BrokerContent = ({ broker }) => {\n switch (broker) {\n case BROKERS.icici_direct.id:\n return ;\n case BROKERS.zebull.id:\n return ;\n case BROKERS.flattrade.id:\n return ;\n // case BROKERS.zerodha.id:\n // return ;\n case BROKERS.fivepaisa.id:\n return ;\n case BROKERS.iifl.id:\n return ;\n case BROKERS.upstox.id:\n return ;\n case BROKERS.paytm.id:\n return ;\n case BROKERS.kotak_neo.id:\n return ;\n case BROKERS.sharekhan.id:\n return ;\n case BROKERS.philip_capital.id:\n return ;\n case BROKERS.hdfcsky.id:\n return ;\n case BROKERS.invest_right.id:\n return ;\n case BROKERS.rupeezy.id:\n return ;\n case BROKERS.fyers.id:\n return ;\n default:\n return <>;\n }\n};\n\nBrokerContent.propTypes = propTypes;\nBrokerContent.defaultProps = defaultProps;\n\nexport default BrokerContent;\n","import _ from 'lodash';\nimport React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport { reDirectPage, shouldHideapisecret } from './config';\nimport BrokerContent from './BrokerContent/index';\n\nconst propTypes = {\n onCloseModal: PropTypes.func.isRequired,\n brokerUserId: PropTypes.string.isRequired,\n broker: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst btnTitle = 'Authenticate';\n\nconst SecretKeyAuthentication = ({ onCloseModal, brokerUserId, broker }) => {\n const [apiKey, setApiKey] = useState('');\n const [apiSecret, setApiSecret] = useState('');\n const [isValid, setIsValid] = useState(true);\n const textFoucs = useRef(null);\n const shouldHideApiSecret = _.includes(shouldHideapisecret, broker);\n\n let label = {\n apiKey: 'API Key',\n apiSecret: 'Secret Key'\n };\n\n switch (broker) {\n case 'rupeezy':\n label = {\n apiKey: 'API key',\n apiSecret: 'Application ID'\n };\n break;\n case 'fyers':\n label = {\n apiKey: 'App ID',\n apiSecret: 'Secret ID'\n };\n break;\n default:\n label = {\n apiKey: 'API Key',\n apiSecret: 'Secret Key'\n };\n }\n\n useEffect(() => {\n textFoucs.current.focus();\n }, []);\n\n const onNavigate = () => {\n if (!apiKey || (!shouldHideApiSecret && !apiSecret)) return setIsValid(false);\n const reDirectData = { api_key: apiKey, api_secret: apiSecret, broker_user_id: brokerUserId };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n return (\n onNavigate()}\n onClose={onCloseModal}\n title={availableBrokers[broker] ? `${availableBrokers[broker]} API Credentials` : ''}\n size=\"lg\"\n okBtnTitle={btnTitle}\n >\n <>\n \n
    \n
    \n

    Register here, Please refer above instructions..

    \n
    \n
    \n \n {\n setApiKey(event.target.value.trim());\n }}\n />\n {!shouldHideApiSecret && (\n
    \n \n {\n setApiSecret(event.target.value.trim());\n }}\n />\n
    \n )}\n {!isValid &&
    *Please provide the details
    }\n
    \n
    \n \n \n );\n};\n\nSecretKeyAuthentication.propTypes = propTypes;\nSecretKeyAuthentication.defaultProps = defaultProps;\n\nexport default SecretKeyAuthentication;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst propTypes = {\n currentBrokerName: PropTypes.string.isRequired,\n broker: PropTypes.string.isRequired,\n handleChange: PropTypes.func.isRequired,\n handleClick: PropTypes.func.isRequired,\n brokerUserId: PropTypes.string.isRequired,\n isValidUser: PropTypes.bool.isRequired,\n errorMessage: PropTypes.string.isRequired\n};\nconst defaultProps = {};\n\nconst oneIndentation = ' ';\n\nconst BrokerSimpleLogin = ({\n currentBrokerName, broker, handleChange, handleClick, brokerUserId,\n isValidUser, errorMessage\n}) => {\n return (\n
    \n {/*

    \n Login just using your\n {oneIndentation}\n {currentBrokerName}\n {oneIndentation}\n credentials.\n
    \n Backtest / Only Paper Trade live deployments allowed.\n
    \n Automatic or One-Click-Confirmed live deployments not supported.\n

    \n \n Simple\n {oneIndentation}\n {currentBrokerName}\n {oneIndentation}\n Login\n \n\n
    \n

    Or

    \n
    */}\n\n
    \n

    \n Login via\n {oneIndentation}\n {currentBrokerName}\n {oneIndentation}\n using your\n {oneIndentation}\n {currentBrokerName}\n {oneIndentation}\n API key/secret.\n
    \n (API key/secret required only for the first time).\n
    \n {/* \n Backtest / Live deployments with paper-trade /\n {oneIndentation}\n
    \n automatic-order /\n one-click-confirmed-order\n {oneIndentation}\n
    \n all supported\n
    */}\n

    \n
    \n \n
    \n {\n const { target: { value } } = event;\n handleChange(value);\n }}\n />\n
    \n \n Login\n \n
    \n
    \n
    \n \n {/*
    \n *Note:\n {oneIndentation}\n Once you logged in with api login, Simple login will not work any more\n
    */}\n
    \n
    \n );\n};\n\nBrokerSimpleLogin.propTypes = propTypes;\nBrokerSimpleLogin.defaultProps = defaultProps;\n\nexport default BrokerSimpleLogin;\n","import _ from 'lodash';\nimport React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport { validateBrokerUser } from 'common/api/user';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport ReactHtmlParser from 'react-html-parser';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport SecretKeyAuthentication from '../SecretKeyAuthentication';\nimport {\n getBrokerImage, getBrokerNotes, reDirectPage, simpleLoginBrokers\n} from '../config';\nimport BrokerSimpleLogin from './BrokerSimpleLogin';\nimport BrokerContent from '../BrokerContent/index';\n\nconst propTypes = { onCloseModal: PropTypes.func.isRequired, broker: PropTypes.string.isRequired };\n\nconst defaultProps = {};\n\nconst btnTitle = 'Login';\nconst errorMessage = '*Please give the valid id';\n\nconst BrokerIdAuthentication = ({ onCloseModal, broker }) => {\n const [isOpenBrokerIdAuthenticationModal, setIsOpenBrokerIdAuthenticationModal] = useState(true);\n const [brokerDetails, setBrokerDetails] = useState({ brokerUserId: '' });\n const [isValidUser, setIsUserValid] = useState(true);\n const [isOpenSecretKeyAuthenticationModal, setIsOpenSecretKeyAuthenticationModal] = useState(false);\n const [setupGuideOnly, setSetupGuideOnly] = useState(false);\n const { brokerUserId } = brokerDetails;\n\n const isSimpleLoginEnabled = _.includes(simpleLoginBrokers, broker);\n const textFocus = useRef(null);\n const currentBrokerName = `${availableBrokers[broker] || ''}`;\n\n const navigateBrokerModal = () => {\n setIsOpenSecretKeyAuthenticationModal(true);\n setIsOpenBrokerIdAuthenticationModal(false);\n };\n\n const onValidate = (isChangeApiDetails) => {\n if (broker === 'upstox' && isChangeApiDetails) {\n setIsOpenSecretKeyAuthenticationModal(false);\n setIsOpenBrokerIdAuthenticationModal(false);\n setSetupGuideOnly(true);\n return null;\n }\n\n if (brokerUserId !== '') {\n if (isChangeApiDetails) return navigateBrokerModal(); // change Api details.. so directly\n // change the modal no need to make call.. but brokerUserId validation is mandatory...\n\n validateBrokerUser({ broker_user_id: brokerUserId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n navigateBrokerModal();\n return;\n }\n\n const { api_key: apiKey, api_secret: apiSecret } = brokerApiCredientals;\n const reDirectData = {\n api_key: apiKey, api_secret: apiSecret, broker_user_id: brokerUserId\n };\n reDirectPage(reDirectData, broker);\n });\n\n return null;\n }\n\n return setIsUserValid(false);\n };\n\n const modalProps = !isSimpleLoginEnabled ? {\n onSave: () => onValidate(),\n onClose: onCloseModal,\n title: currentBrokerName ? `${currentBrokerName} User Authentication` : '',\n size: 'md',\n okBtnTitle: btnTitle,\n onSaveid: `btn-${broker}`\n } : {\n onClose: onCloseModal,\n title: currentBrokerName ? `${currentBrokerName} User Authentication` : '',\n size: 'md',\n onSaveid: `btn-${broker}`\n };\n\n useEffect(() => {\n if (!isSimpleLoginEnabled) textFocus.current.focus();\n }, []);\n\n const renderModalContent = () => {\n if (isSimpleLoginEnabled) {\n return (\n setBrokerDetails({ brokerUserId: value })}\n handleClick={() => onValidate()}\n brokerUserId={brokerUserId}\n isValidUser={isValidUser}\n errorMessage={errorMessage}\n />\n );\n }\n\n const labelContent = () => {\n let msg = `${currentBrokerName} User Id`;\n if (broker === 'paytm') msg = `Registered mobile on ${currentBrokerName}`;\n\n return msg;\n };\n\n return (\n <>\n
    \n \n
    \n {\n setBrokerDetails({ brokerUserId: event.target.value.trim() });\n }}\n />\n \n {ReactHtmlParser(getBrokerNotes(broker))}\n \n );\n };\n\n if (isOpenBrokerIdAuthenticationModal) {\n return (\n \n <>\n {ReactHtmlParser(getBrokerImage(broker))}\n {renderModalContent()}\n onValidate(true)}\n >\n {broker === 'upstox'\n ? 'One time setup required. - How to Connect Upstox to Quantman ?'\n : 'Change api details'}\n \n \n \n );\n }\n\n if (isOpenSecretKeyAuthenticationModal) {\n return (\n \n );\n }\n\n if (setupGuideOnly) {\n return (\n \n \n \n );\n }\n\n return <>;\n};\n\nexport default BrokerIdAuthentication;\n\nBrokerIdAuthentication.propTypes = propTypes;\nBrokerIdAuthentication.defaultProps = defaultProps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n onHandleChange: PropTypes.func.isRequired,\n type: PropTypes.string,\n isDisabled: PropTypes.bool\n};\n\nconst defaultProps = { type: 'text', isDisabled: false };\n\nconst UserInput = ({\n id, value, onHandleChange, type, isDisabled\n}) => {\n return (\n { onHandleChange(event.target.value); }}\n />\n );\n};\n\nUserInput.propTypes = propTypes;\nUserInput.defaultProps = defaultProps;\n\nexport default UserInput;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sendOtpToBrokerUser, validateOtpToBrokerUser } from 'common/api/user';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Bigul = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({ clientId: '', password: '', otp: '' });\n const { clientId, password, otp } = configs;\n const [isSendOtpClicked, setIsSendOtpClicked] = useState(false);\n const isClientAndPasswordPresent = clientId && password;\n const [errorMessage, setErrorMessage] = useState('');\n\n const onSendOtp = (isResendOtp = false) => {\n sendOtpToBrokerUser({ client_id: clientId, password }, isResendOtp, broker).then((res) => {\n const { status, message } = res;\n if (!status) { setErrorMessage(message); } else {\n reactToastify(\n 'OTP send successfully',\n TOASTIFY_TYPES.SUCCESS\n );\n setIsSendOtpClicked(true);\n }\n }).catch(() => { });\n };\n\n const onValidate = () => {\n validateOtpToBrokerUser({ client_id: clientId, password, otp }, broker).then((res) => {\n const { status, token, message } = res;\n if (!status) { setErrorMessage(message); } else {\n reDirectPage({ client_id: window.btoa(clientId), token }, broker, true);\n }\n }).catch(() => { });\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isSendOtpClicked ? () => onSendOtp() : () => onValidate(),\n okBtnTitle: !isSendOtpClicked ? 'Send OTP' : 'Login',\n isOkBtnDisabled: !isClientAndPasswordPresent\n };\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n if (errorMessage) { setErrorMessage(''); }\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', _.toUpper(value)); }}\n />\n \n { onHandleConfig('password', value); }}\n />\n {isSendOtpClicked && (\n
    \n \n
    \n )}\n\n {isSendOtpClicked && (\n
    \n \n { onHandleConfig('otp', value); }}\n />\n
    \n )}\n\n \n
    \n
    \n );\n};\n\nBigul.propTypes = propTypes;\nBigul.defaultProps = defaultProps;\n\nexport default Bigul;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { BROKERS, XTS_API_VENDOR } from 'common/constants/index';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Xts = ({ onCloseModal }) => {\n const [isValid, setIsValid] = useState(true);\n const [apiKey, setApiKey] = useState('');\n const [apiSecret, setApiSecret] = useState('');\n const [broker, setBroker] = useState('');\n const xtsSupportedBrokers = _.chain(BROKERS)\n .filter((brokerConfig) => brokerConfig.is_xts_api)\n .map((brokerConfig) => { return { id: brokerConfig.id, name: brokerConfig.broker_name }; })\n .value();\n\n const onNavigate = () => {\n if (!apiKey || !apiSecret || !broker) return setIsValid(false);\n const reDirectData = { app_key: apiKey, secret_key: apiSecret, broker };\n reDirectPage(reDirectData, 'xts', true);\n\n return '';\n };\n\n const renderOptions = (optionConfig, idx) => {\n return ;\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: 'btn-xts12121',\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(XTS_API_VENDOR))}\n \n { setApiKey(event.target.value); }}\n />\n \n { setApiSecret(event.target.value); }}\n />\n \n { setBroker(event.target.value); }}\n >\n
    \n
    \n );\n};\n\nXts.propTypes = propTypes;\nXts.defaultProps = defaultProps;\n\nexport default Xts;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst GoodwillDealer = ({ onCloseModal, broker }) => {\n const [isValid, setIsValid] = useState(true);\n const [dealerId, setDealerId] = useState('');\n const [dealerPassword, setDealerPassword] = useState('');\n const [clientId, setClientId] = useState('');\n\n const onNavigate = () => {\n if (!dealerId || !dealerPassword || !clientId) return setIsValid(false);\n const reDirectData = {\n dealer_id: dealerId,\n dealer_password: dealerPassword,\n client_account_id: clientId\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { setDealerId(event.target.value); }}\n />\n \n { setDealerPassword(event.target.value); }}\n />\n \n { setClientId(event.target.value); }}\n />\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nGoodwillDealer.propTypes = propTypes;\nGoodwillDealer.defaultProps = defaultProps;\n\nexport default GoodwillDealer;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Finvasia = ({ onCloseModal, broker }) => {\n const [isValid, setIsValid] = useState(true);\n const [clientId, setClientId] = useState('');\n const [password, setpassword] = useState('');\n const [totp, setTotp] = useState('');\n\n const onNavigate = () => {\n if (!clientId || !password || !totp) return setIsValid(false);\n const reDirectData = {\n client_id: clientId,\n password,\n totp\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { setClientId(event.target.value); }}\n />\n \n { setpassword(event.target.value); }}\n />\n \n { setTotp(event.target.value); }}\n />\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nFinvasia.propTypes = propTypes;\nFinvasia.defaultProps = defaultProps;\n\nexport default Finvasia;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\nimport BrokerContent from '../BrokerContent/index';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Iifl = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({ clientId: '', apikey: '', secretKey: '' });\n const { clientId, apiKey, secretKey } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [showGuideSteps, setShowGuideSteps] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage({ client_id: clientId, app_key: apiKey, secret_key: secretKey }, broker, true);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showApiKeyField && (\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n { onHandleConfig('secretKey', value); }}\n />\n
    \n )}\n\n {isValidateClientIdClicked && (\n
    \n { setShowGuideSteps(true); }}\n >\n How to generate API?\n \n
    \n )}\n {showGuideSteps\n && (\n <>\n setShowGuideSteps(false)}\n title=\"Steps to generate API\"\n size=\"lg\"\n okBtnTitle=\"\"\n >\n \n \n \n )}\n\n {isValidateClientIdClicked\n && (\n
    \n Blaze API Login:\n {' '}\n \n Click here\n \n
    \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nIifl.propTypes = propTypes;\nIifl.defaultProps = defaultProps;\n\nexport default Iifl;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\nimport BrokerContent from '../BrokerContent/index';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Zebull = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '', apiKey: '', password: '', totp: ''\n });\n const {\n clientId, apiKey, password, totp\n } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showCredentials, setShowCredentials] = useState(false);\n const [showGuideSteps, setShowGuideSteps] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setShowCredentials(true);\n setIsValidateClientIdClicked(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !password || !totp) return setIsValid(false);\n reDirectPage({\n client_id: clientId, api_key: apiKey, password, totp\n }, broker, true);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'md',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showCredentials && (\n <>\n
    \n \n { onHandleConfig('password', value); }}\n />\n
    \n
    \n \n { onHandleConfig('totp', value); }}\n />\n
    \n\n \n )}\n\n {showApiKeyField && (\n <>\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n
    \n { setShowGuideSteps(true); }}\n >\n How to generate API?\n \n
    \n \n )}\n\n {(!showApiKeyField && showCredentials) && (\n <>\n
    \n {\n setConfigs({ ...configs, apiKey: '' });\n setShowApiKeyField(true);\n }}\n >\n Change api?\n \n
    \n \n )}\n\n {showGuideSteps\n && (\n <>\n setShowGuideSteps(false)}\n title=\"Steps to generate API\"\n size=\"lg\"\n okBtnTitle=\"\"\n >\n \n \n \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nZebull.propTypes = propTypes;\nZebull.defaultProps = defaultProps;\n\nexport default Zebull;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Bnrathi = ({ onCloseModal, broker }) => {\n const [isValid, setIsValid] = useState(true);\n const [clientId, setClientId] = useState('');\n const [password, setpassword] = useState('');\n const [totp, setTotp] = useState('');\n\n const onNavigate = () => {\n if (!clientId || !password || !totp) return setIsValid(false);\n const reDirectData = {\n client_id: clientId,\n password,\n totp\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { setClientId(event.target.value); }}\n />\n \n { setpassword(event.target.value); }}\n />\n \n { setTotp(event.target.value); }}\n />\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nBnrathi.propTypes = propTypes;\nBnrathi.defaultProps = defaultProps;\n\nexport default Bnrathi;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Tradeplus = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({ clientId: '', apikey: '', secretKey: '' });\n const { clientId, apiKey, secretKey } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage({ client_id: clientId, app_key: apiKey, secret_key: secretKey }, broker, true);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showApiKeyField && (\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n { onHandleConfig('secretKey', value); }}\n />\n
    \n )}\n\n {isValidateClientIdClicked && (\n
    \n Please contact Tradeplus support to get your API Key and Secret Key\n
    \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nTradeplus.propTypes = propTypes;\nTradeplus.defaultProps = defaultProps;\n\nexport default Tradeplus;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst SkyBroking = ({ onCloseModal, broker }) => {\n const [isValid, setIsValid] = useState(true);\n const [clientId, setClientId] = useState('');\n const [token, setToken] = useState('');\n\n const onNavigate = () => {\n if (!clientId || !token) return setIsValid(false);\n const reDirectData = {\n client_id: clientId,\n token\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { setClientId(event.target.value); }}\n />\n \n { setToken(event.target.value); }}\n />\n {!isValid &&
    Please provide the details
    }\n\n
    \n Please follow the instructions below to obtain a token.\n
    \n
      \n
    • \n Login\n {' '}\n skypro\n
    • \n
    • Go to profile section
    • \n
    • Click API key
    • \n
    • Choose QUANTMAN in vendor
    • \n
    • Generate API token and paste in appropriate field
    • \n
    \n
    \n
    \n
    \n );\n};\n\nSkyBroking.propTypes = propTypes;\nSkyBroking.defaultProps = defaultProps;\n\nexport default SkyBroking;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport { validateBrokerUser, sendOtpToBrokerUser, validateOtpToBrokerUser } from 'common/api/user';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\nimport BrokerContent from '../BrokerContent/index';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst KotakNeo = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n mobileNumber: '',\n password: '',\n otp: '',\n consumerKey: '',\n consumerSecret: ''\n });\n const {\n mobileNumber, password, otp, consumerKey, consumerSecret\n } = configs;\n const [stepOne, setStepOne] = useState(true);\n const [showApiDetailsField, setShowApiDetailsField] = useState(false);\n const [isSendOtpClicked, setIsSendOtpClicked] = useState(false);\n const [mandatoryDetails, setMandatoryDetails] = useState({});\n const [errorMessage, setErrorMessage] = useState('');\n const [showGuideSteps, setShowGuideSteps] = useState(false);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n if (errorMessage) { setErrorMessage(''); }\n };\n\n const onValidateClientId = () => {\n // if (!mobileNumber) return setIsExistingClient(false);\n\n validateBrokerUser({ broker_user_id: mobileNumber, broker }).then(async (result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiDetailsField(true);\n } else {\n setConfigs({\n ...configs,\n consumerKey: brokerApiCredientals.api_key,\n consumerSecret: brokerApiCredientals.api_secret\n });\n }\n\n setStepOne(false);\n });\n\n return null;\n };\n\n const onSendOtp = (isResendOtp = false) => {\n sendOtpToBrokerUser({\n mobile_number: mobileNumber, password, otp, consumer_key: consumerKey, consumer_secret: consumerSecret\n }, isResendOtp, broker).then((res) => {\n const { status, message, extras } = res;\n if (!status) setErrorMessage(message);\n else {\n setIsSendOtpClicked(true);\n setMandatoryDetails(extras);\n }\n }).catch(() => { });\n };\n\n const onValidateOTP = () => {\n validateOtpToBrokerUser({\n consumer_key: consumerKey,\n consumer_secret: consumerSecret,\n mobile_number: mobileNumber,\n otp,\n extras: mandatoryDetails\n }, broker).then((res) => {\n const {\n status, token, client_id: clientId, message\n } = res;\n if (!status) { setErrorMessage(message); } else {\n reDirectPage({\n client_id: clientId,\n token\n }, broker, true);\n }\n }).catch(() => { });\n };\n\n const onSaveAction = () => {\n if (stepOne) {\n return onValidateClientId();\n }\n if (!isSendOtpClicked) {\n return onSendOtp();\n }\n if (isSendOtpClicked) {\n return onValidateOTP();\n }\n return () => {};\n };\n\n const btnLabel = () => {\n if (stepOne) {\n return 'Validate';\n }\n if (!isSendOtpClicked) {\n return 'Send OTP';\n }\n\n if (isSendOtpClicked) {\n return 'Login';\n }\n return () => {};\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveId: `btn-${broker}`,\n onSave: () => onSaveAction(),\n okBtnTitle: btnLabel(),\n isOkBtnDisabled: false,\n title: 'Kotak Neo'\n };\n\n const renderMobileNumberField = () => {\n return (\n
    \n \n { onHandleConfig('mobileNumber', value); }}\n />\n
    \n );\n };\n\n const renderApiCredentials = () => {\n return (\n <>\n
    \n \n { onHandleConfig('consumerKey', value); }}\n />\n
    \n
    \n \n { onHandleConfig('consumerSecret', value); }}\n />\n
    \n
    \n \n
    \n \n );\n };\n\n return (\n \n
    \n {renderMobileNumberField()}\n {showApiDetailsField && renderApiCredentials()}\n {!stepOne && !showApiDetailsField && (\n
    \n {\n onHandleConfig('consumerKey', '');\n onHandleConfig('consumerSecret', '');\n setShowApiDetailsField(true);\n }}\n >\n Change in consumer API details?\n \n
    \n )}\n\n {!stepOne && (\n
    \n \n { onHandleConfig('password', value); }}\n />\n
    \n )}\n\n {isSendOtpClicked && (\n
    \n \n { onHandleConfig('otp', value); }}\n />\n
    \n )}\n\n {showGuideSteps\n && (\n <>\n setShowGuideSteps(false)}\n title=\"Steps to generate API\"\n size=\"lg\"\n okBtnTitle=\"\"\n >\n \n \n \n )}\n\n \n
    \n
    \n );\n};\n\nKotakNeo.propTypes = propTypes;\nKotakNeo.defaultProps = defaultProps;\n\nexport default KotakNeo;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst AcAgarwal = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({ clientId: '', apikey: '', secretKey: '' });\n const { clientId, apiKey, secretKey } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage({ client_id: clientId, app_key: apiKey, secret_key: secretKey }, broker, true);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showApiKeyField && (\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n { onHandleConfig('secretKey', value); }}\n />\n
    \n )}\n\n {isValidateClientIdClicked\n && (\n
    \n API Dashboard Login:\n {' '}\n \n Click here\n \n
    \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nAcAgarwal.propTypes = propTypes;\nAcAgarwal.defaultProps = defaultProps;\n\nexport default AcAgarwal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\nimport BrokerContent from '../BrokerContent/index';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst PhilipCapital = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '', apiKey: '', password: '', totp: ''\n });\n const {\n clientId, apiKey, password, totp\n } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showCredentials, setShowCredentials] = useState(false);\n const [showGuideSteps, setShowGuideSteps] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setShowCredentials(true);\n setIsValidateClientIdClicked(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !password || !totp) return setIsValid(false);\n reDirectPage({\n client_id: clientId, api_key: apiKey, password, totp\n }, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'md',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showCredentials && (\n <>\n
    \n \n { onHandleConfig('password', value); }}\n />\n
    \n
    \n \n { onHandleConfig('totp', value); }}\n />\n
    \n\n \n )}\n\n {showApiKeyField && (\n <>\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n
    \n { setShowGuideSteps(true); }}\n >\n How to generate API?\n \n
    \n \n )}\n\n {(!showApiKeyField && showCredentials) && (\n <>\n
    \n {\n setConfigs({ ...configs, apiKey: '' });\n setShowApiKeyField(true);\n }}\n >\n Change api?\n \n
    \n \n )}\n\n {showGuideSteps\n && (\n <>\n setShowGuideSteps(false)}\n title=\"Steps to generate API\"\n size=\"lg\"\n okBtnTitle=\"\"\n >\n \n \n \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nPhilipCapital.propTypes = propTypes;\nPhilipCapital.defaultProps = defaultProps;\n\nexport default PhilipCapital;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Samco = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '', password: '', yob: ''\n });\n const { clientId, password, yob } = configs;\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onLogin = () => {\n if (!clientId || !password || !yob) return setIsValid(false);\n reDirectPage({\n client_id: clientId, password, yob\n }, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'md',\n onSaveid: `btn-${broker}`,\n onSave: () => onLogin(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n
    \n \n { onHandleConfig('password', value); }}\n />\n
    \n
    \n \n { onHandleConfig('yob', value); }}\n />\n
    \n {!isValid &&
    Please provide the details
    }\n
    \n You need an API access from your broker in order to log in to Quantman.\n
    \n
    \n
    \n );\n};\n\nSamco.propTypes = propTypes;\nSamco.defaultProps = defaultProps;\n\nexport default Samco;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst IndiraSecurities = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({ clientId: '', apikey: '', secretKey: '' });\n const { clientId, apiKey, secretKey } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage({ client_id: clientId, app_key: apiKey, secret_key: secretKey }, broker, true);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked ? () => onValidateClientId() : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n\n {showApiKeyField && (\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n { onHandleConfig('secretKey', value); }}\n />\n
    \n )}\n\n {isValidateClientIdClicked && (\n
    \n Please contact IndiraSecurities support to get your API Key and Secret Key\n
    \n )}\n\n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nIndiraSecurities.propTypes = propTypes;\nIndiraSecurities.defaultProps = defaultProps;\n\nexport default IndiraSecurities;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst JainamBroking = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '',\n apikey: '',\n secretKey: '',\n userType: 'retail',\n });\n const {\n clientId, apiKey, secretKey, userType\n } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({\n broker_user_id: clientId,\n broker: `jainam_broking_${userType}`,\n }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage(\n {\n client_id: clientId,\n app_key: apiKey,\n secret_key: secretKey,\n user_type: userType,\n },\n 'jainam_broking',\n true\n );\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked\n ? () => onValidateClientId()\n : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false,\n };\n\n const renderUserType = () => {\n return (\n
    \n \n onHandleConfig('userType', e.target.value)}\n disabled={isValidateClientIdClicked}\n >\n \n \n \n \n
    \n );\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n {\n onHandleConfig('clientId', value);\n }}\n />\n\n {renderUserType()}\n\n {showApiKeyField && (\n
    \n \n {\n onHandleConfig('apiKey', value);\n }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n {\n onHandleConfig('secretKey', value);\n }}\n />\n
    \n )}\n\n {isValidateClientIdClicked && (\n
    \n Please contact JainamBroking support to get your API Key and Secret\n Key\n
    \n )}\n\n {!isValid && (\n
    \n Please provide the details\n
    \n )}\n
    \n
    \n );\n};\n\nJainamBroking.propTypes = propTypes;\nJainamBroking.defaultProps = defaultProps;\n\nexport default JainamBroking;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { validateBrokerUser } from 'common/api/user';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst kasat = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '',\n apikey: '',\n secretKey: ''\n });\n const {\n clientId, apiKey, secretKey\n } = configs;\n const [isValidateClientIdClicked, setIsValidateClientIdClicked] = useState(false);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [showSecretKeyField, setShowSecretKeyField] = useState(false);\n const [isValid, setIsValid] = useState(true);\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n };\n\n const onValidateClientId = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({\n broker_user_id: clientId, broker,\n }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setIsValidateClientIdClicked(true);\n setShowSecretKeyField(true);\n });\n\n return setIsValid(true);\n };\n\n const onLogin = () => {\n if (!clientId || !apiKey || !secretKey) return setIsValid(false);\n reDirectPage(\n {\n client_id: clientId,\n app_key: apiKey,\n secret_key: secretKey\n },\n broker,\n true\n );\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isValidateClientIdClicked\n ? () => onValidateClientId()\n : () => onLogin(),\n okBtnTitle: !isValidateClientIdClicked ? 'Validate' : 'Login',\n isOkBtnDisabled: false,\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n {\n onHandleConfig('clientId', value);\n }}\n />\n\n {showApiKeyField && (\n
    \n \n {\n onHandleConfig('apiKey', value);\n }}\n />\n
    \n )}\n\n {showSecretKeyField && (\n
    \n \n {\n onHandleConfig('secretKey', value);\n }}\n />\n
    \n )}\n\n {isValidateClientIdClicked && (\n
    \n Please contact Kasat Securities support to get your API Key and Secret\n Key\n
    \n )}\n\n {!isValid && (\n
    \n Please provide the details\n
    \n )}\n
    \n
    \n );\n};\n\nkasat.propTypes = propTypes;\nkasat.defaultProps = defaultProps;\n\nexport default kasat;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport { sendOtpToBrokerUser, validateBrokerUser } from 'common/api/user';\nimport ReactHtmlParser from 'react-html-parser';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport UserInput from '../CommonComponents/UserInput';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst FairInvest = ({ broker, onCloseModal }) => {\n const [configs, setConfigs] = useState({\n clientId: '',\n password: '',\n otp: '',\n apiKey: '',\n });\n const {\n clientId,\n password,\n otp,\n apiKey\n } = configs;\n const [isValidUser, setIsValidUser] = useState(false);\n const [isValid, setIsValid] = useState(true);\n const [showApiKeyField, setShowApiKeyField] = useState(false);\n const [checkedApiKey, setCheckedApiKey] = useState(false);\n\n const onHandleConfig = (key, value) => {\n const updatedValue = key === 'clientId' ? value.toUpperCase() : value;\n setConfigs({ ...configs, [key]: updatedValue });\n };\n\n const onLogin = () => {\n if (!clientId || !password || !otp) return setIsValid(false);\n reDirectPage({\n client_id: clientId, password, otp, api_key: apiKey\n }, broker, false);\n\n return '';\n };\n\n const checkExistingUser = () => {\n if (!clientId) return setIsValid(false);\n\n validateBrokerUser({ broker_user_id: clientId, broker }).then((result) => {\n const { status, broker_api_credentials: brokerApiCredientals } = result;\n if (!status) {\n setShowApiKeyField(true);\n } else {\n onHandleConfig('apiKey', brokerApiCredientals.api_key);\n }\n\n setCheckedApiKey(true);\n });\n\n return setIsValid(true);\n };\n\n const authenticateUser = (isResendOtp = false) => {\n if (clientId && !checkedApiKey) return checkExistingUser();\n\n if (_.isEmpty(clientId) || _.isEmpty(password)) {\n setIsValid(false);\n return null;\n }\n\n setIsValid(true);\n setIsValidUser(false);\n sendOtpToBrokerUser(\n { client_id: clientId, password, api_key: apiKey },\n isResendOtp,\n broker\n ).then((result) => {\n if (result && result.status) {\n setIsValidUser(true);\n } else {\n reactToastify((result?.message || 'Wrong ClientId or Password'), TOASTIFY_TYPES.ERROR);\n }\n });\n return null;\n };\n\n const modalProps = {\n onClose: () => onCloseModal(),\n shouldShow: true,\n size: 'md',\n onSaveid: `btn-${broker}`,\n onSave: () => (isValidUser ? onLogin() : authenticateUser()),\n okBtnTitle: isValidUser ? 'Validate OTP' : 'Login',\n isOkBtnDisabled: false,\n };\n\n return (\n \n <>\n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n
    \n
    \n \n { onHandleConfig('clientId', value); }}\n />\n
    \n\n {(checkedApiKey) && (\n
    \n \n { onHandleConfig('password', value); }}\n />\n
    \n )}\n\n {(checkedApiKey && showApiKeyField) && (\n <>\n
    \n \n { onHandleConfig('apiKey', value); }}\n />\n
    \n
    \n Please contact FairInvest support to get your API Key\n
    \n \n )}\n {isValidUser && (\n <>\n
    \n \n { onHandleConfig('otp', value); }}\n />\n
    \n
    \n \n
    \n \n )}\n\n {!isValid &&
    Please provide the details
    }\n \n
    \n );\n};\n\nFairInvest.propTypes = propTypes;\nFairInvest.defaultProps = defaultProps;\n\nexport default FairInvest;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sendOtpToBrokerUser } from 'common/api/user';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getBrokerImage, reDirectPage } from '../config';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst Profitmart = ({ onCloseModal, broker }) => {\n const [isValid, setIsValid] = useState(true);\n const [clientId, setClientId] = useState('');\n const [password, setpassword] = useState('');\n const [totp, setTotp] = useState('');\n\n const onNavigate = () => {\n if (!clientId || !password || !totp) return setIsValid(false);\n const reDirectData = {\n client_id: clientId,\n password,\n totp\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const onSendOtp = (isResendOtp = false) => {\n if (!clientId || !password) {\n setIsValid(false);\n }\n\n sendOtpToBrokerUser({ client_id: clientId, password }, isResendOtp, broker).then((res) => {\n const { status, message } = res;\n if (!status) {\n reactToastify(message, TOASTIFY_TYPES.ERROR);\n } else {\n reactToastify('Sent OTP', TOASTIFY_TYPES.SUCCESS);\n }\n }).catch(() => { });\n\n setIsValid(true);\n\n return null;\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: () => onNavigate(),\n okBtnTitle: 'Login',\n isOkBtnDisabled: false\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { setClientId(event.target.value); }}\n />\n \n { setpassword(event.target.value); }}\n />\n \n { setTotp(event.target.value); }}\n />\n
    \n \n
    \n {!isValid &&
    Please provide the details
    }\n
    \n
    \n );\n};\n\nProfitmart.propTypes = propTypes;\nProfitmart.defaultProps = defaultProps;\n\nexport default Profitmart;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\nimport ReactHtmlParser from 'react-html-parser';\nimport { sendOtpToBrokerUser } from 'common/api/user';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getBrokerImage, reDirectPage } from '../config';\nimport UserInput from '../CommonComponents/UserInput';\n\nconst propTypes = {\n broker: PropTypes.string.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst TradeSmart = ({ onCloseModal, broker }) => {\n const [configs, setConfigs] = useState({ clientId: '', password: '', otp: '' });\n const { clientId, password, otp } = configs;\n const [isSendOtpClicked, setIsSendOtpClicked] = useState(false);\n const isClientAndPasswordPresent = clientId && password;\n const [errorMessage, setErrorMessage] = useState('');\n\n const onSendOtp = (isResendOtp = false) => {\n sendOtpToBrokerUser({ client_id: clientId, password }, isResendOtp, broker).then((res) => {\n const { status, message } = res;\n if (!status) { setErrorMessage(message); } else {\n reactToastify(\n 'OTP send successfully',\n TOASTIFY_TYPES.SUCCESS\n );\n setIsSendOtpClicked(true);\n }\n }).catch(() => { });\n };\n\n const onNavigate = () => {\n if (!clientId || !password || !otp) return setIsValid(false);\n const reDirectData = {\n client_id: clientId,\n password,\n otp\n };\n reDirectPage(reDirectData, broker);\n\n return '';\n };\n\n const modalProps = {\n onClose: onCloseModal,\n shouldShow: true,\n size: 'sm',\n onSaveid: `btn-${broker}`,\n onSave: !isSendOtpClicked ? () => onSendOtp() : () => onNavigate(),\n okBtnTitle: !isSendOtpClicked ? 'Send OTP' : 'Login',\n isOkBtnDisabled: !isClientAndPasswordPresent\n };\n\n const onHandleConfig = (key, value) => {\n setConfigs({ ...configs, [key]: value });\n if (errorMessage) { setErrorMessage(''); }\n };\n\n return (\n \n
    \n {ReactHtmlParser(getBrokerImage(broker))}\n \n { onHandleConfig('clientId', value); }}\n />\n \n { onHandleConfig('password', value); }}\n />\n {isSendOtpClicked && (\n
    \n \n
    \n )}\n\n {isSendOtpClicked && (\n
    \n \n { onHandleConfig('otp', value); }}\n />\n
    \n )}\n\n \n
    \n
    \n );\n};\n\nTradeSmart.propTypes = propTypes;\nTradeSmart.defaultProps = defaultProps;\n\nexport default TradeSmart;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { BROKERS, XTS_API_VENDOR } from 'common/constants/index';\nimport BrokerIdAuthentication from './BrokerIdAuthentication/index';\nimport Bigul from './BrokerSpecficComponents/Bigul';\nimport Xts from './BrokerSpecficComponents/Xts';\nimport GoodwillDealer from './BrokerSpecficComponents/GoodwillDealer';\nimport Finvasia from './BrokerSpecficComponents/Finvasia';\nimport Iifl from './BrokerSpecficComponents/iifl';\nimport Zebull from './BrokerSpecficComponents/Zebull';\nimport Bnrathi from './BrokerSpecficComponents/Bnrathi';\nimport Tradeplus from './BrokerSpecficComponents/Tradeplus';\nimport SkyBroking from './BrokerSpecficComponents/SkyBroking';\nimport KotakNeo from './BrokerSpecficComponents/KotakNeo';\nimport AcAgarwal from './BrokerSpecficComponents/AcAgarwal';\nimport PhilipCapital from './BrokerSpecficComponents/PhilipCapital';\nimport Samco from './BrokerSpecficComponents/Samco';\nimport IndiraSecurities from './BrokerSpecficComponents/IndiraSecurities';\nimport JainamBroking from './BrokerSpecficComponents/JainamBroking';\nimport Kasat from './BrokerSpecficComponents/Kasat';\nimport FairInvest from './BrokerSpecficComponents/FairInvest';\nimport Profitmart from './BrokerSpecficComponents/Profitmart';\nimport TradeSmart from './BrokerSpecficComponents/TradeSmart';\n\nconst propTypes = {\n broker: PropTypes.string, onCloseModal: PropTypes.func\n};\n\nconst defaultProps = { broker: '', onCloseModal: () => { } };\n\nconst AuthenticationModal = ({ broker, onCloseModal }) => {\n if (!broker) return null;\n\n switch (broker) {\n case BROKERS.bigul.id:\n return ;\n case BROKERS.goodwill_dealer.id:\n return ;\n case XTS_API_VENDOR:\n return ;\n case BROKERS.finvasia.id:\n return ;\n case BROKERS.iifl.id:\n return ;\n case BROKERS.zebull.id:\n return ;\n case BROKERS.bnrathi.id:\n return ;\n case BROKERS.tradeplus.id:\n return ;\n case BROKERS.kotak_neo.id:\n return ;\n case BROKERS.sky_broking.id:\n return ;\n case BROKERS.ac_agarwal.id:\n return ;\n case BROKERS.philip_capital.id:\n return ;\n case BROKERS.samco.id:\n return ;\n case BROKERS.indira_securities.id:\n return ;\n case BROKERS.jainam_broking_retail.id:\n return ;\n case BROKERS.fair_invest.id:\n return ;\n case BROKERS.profitmart.id:\n return ;\n case BROKERS.trade_smart.id:\n return ;\n case BROKERS.kasat.id:\n return ;\n default:\n return ;\n }\n};\n\nexport default AuthenticationModal;\n\nAuthenticationModal.propTypes = propTypes;\nAuthenticationModal.defaultProps = defaultProps;\n","import React from 'react';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\n// import { BROKERS } from 'common/constants';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst AlicBlueLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with aliceblue Smart API.\n
    \n
    \n loginInModal('/auth/aliceblue')}\n >\n Login via\n {oneIndentation}\n Aliceblue\n \n

    \n {/* \n {BROKERS.aliceblue.name}\n */}\n
    \n
    \n
    \n );\n};\n\nAlicBlueLogin.propTypes = propTypes;\nAlicBlueLogin.defaultProps = defaultProps;\n\nexport default AlicBlueLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst PaytmLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with paytm money API.\n

    \n { setCurrentBroker(BROKERS.paytm.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n PAYTM MONEY\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n );\n};\n\nPaytmLogin.propTypes = propTypes;\nPaytmLogin.defaultProps = defaultProps;\n\nexport default PaytmLogin;\n","import React from 'react';\nimport { BROKERS } from 'common/constants';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst DhanLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Dhan.\n

    \n\n loginInModal('/auth/dhan')}\n >\n
    \n Login via Dhan\n
    \n \n
    \n
    \n
    \n );\n};\n\nDhanLogin.propTypes = propTypes;\nDhanLogin.defaultProps = defaultProps;\n\nexport default DhanLogin;\n","import React, { useState } from 'react';\n\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst DhaniStocksLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Indiabulls Securities.\n

    \n\n loginInModal('/auth/dhanistocks')}\n >\n LOGIN WITH INDIABULLS SECURITIES\n \n\n setCurrentBroker('')} />\n
    \n
    \n
    \n );\n};\n\nDhaniStocksLogin.propTypes = propTypes;\nDhaniStocksLogin.defaultProps = defaultProps;\n\nexport default DhaniStocksLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport PropTypes from 'prop-types';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {\n allowGoodwillDealer: PropTypes.bool\n};\n\nconst defaultProps = {\n allowGoodwillDealer: false\n};\n\nconst GoodWillLogin = ({ allowGoodwillDealer }) => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n const renderBrokerImage = () => {\n return (\n \n );\n };\n\n const renderGoodwillDefaultLoginBtn = () => {\n return (\n <>\n loginInModal('/auth/goodwill')}\n >\n {renderBrokerImage()}\n LOGIN WITH GOODWILL\n \n \n );\n };\n\n const renderGoodwillDealerLoginBtn = () => {\n return (\n <>\n { setCurrentBroker(BROKERS.goodwill_dealer.id); }}\n className=\"btn btn-outline-primary broker mt-2\"\n >\n {renderBrokerImage()}\n LOGIN WITH GOODWILL DEALER\n
    \n \n );\n };\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with GoodWill.\n

    \n\n {allowGoodwillDealer ? renderGoodwillDealerLoginBtn() : renderGoodwillDefaultLoginBtn()}\n\n setCurrentBroker('')} />\n
    \n
    \n
    \n );\n};\n\nGoodWillLogin.propTypes = propTypes;\nGoodWillLogin.defaultProps = defaultProps;\n\nexport default GoodWillLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst IciciDirectLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with ICICI direct API.\n
    \n
    \n { setCurrentBroker(BROKERS.icici_direct.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n ICICI Direct\n

    \n

    \n {/* { setCurrentBroker(BROKERS.icici_direct.id); }}\n className=\"broker btn btn-light\"\n >\n\n \n
    */}\n
    \n setCurrentBroker('')} />\n
    \n
    \n );\n};\n\nIciciDirectLogin.propTypes = propTypes;\nIciciDirectLogin.defaultProps = defaultProps;\n\nexport default IciciDirectLogin;\n","import React from 'react';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst NuvamaLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Nuvama API.\n
    \n
    \n loginInModal('/auth/nuvama')}\n >\n Login via\n {oneIndentation}\n Nuvama\n \n

    \n
    \n
    \n
    \n );\n};\n\nNuvamaLogin.propTypes = propTypes;\nNuvamaLogin.defaultProps = defaultProps;\n\nexport default NuvamaLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst BigulLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Bigul.\n

    \n\n { setCurrentBroker(BROKERS.bigul.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH BIGUL\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n
    \n );\n};\n\nBigulLogin.propTypes = propTypes;\nBigulLogin.defaultProps = defaultProps;\n\nexport default BigulLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst IiflLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with IIFL.\n

    \n\n { setCurrentBroker(BROKERS.iifl.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH IIFL\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n
    \n );\n};\n\nIiflLogin.propTypes = propTypes;\nIiflLogin.defaultProps = defaultProps;\n\nexport default IiflLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst FlattradeLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Flattrade.\n

    \n\n { setCurrentBroker(BROKERS.flattrade.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH FLATTRADE\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n
    \n );\n};\n\nFlattradeLogin.propTypes = propTypes;\nFlattradeLogin.defaultProps = defaultProps;\n\nexport default FlattradeLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst FinvasiaLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Finvasia.\n

    \n\n { setCurrentBroker(BROKERS.finvasia.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH FINVASIA\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n
    \n );\n};\n\nFinvasiaLogin.propTypes = propTypes;\nFinvasiaLogin.defaultProps = defaultProps;\n\nexport default FinvasiaLogin;\n","import React, { useState } from 'react';\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst RupeezyLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Rupeezy API.\n
    \n
    \n { setCurrentBroker(BROKERS.rupeezy.id); }}\n >\n Login via\n {oneIndentation}\n Rupeezy\n \n

    \n
    \n
    \n setCurrentBroker('')} />\n
    \n );\n};\n\nRupeezyLogin.propTypes = propTypes;\nRupeezyLogin.defaultProps = defaultProps;\n\nexport default RupeezyLogin;\n","import React from 'react';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst EntichMoneyLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Enrich Money API.\n

    \n loginInModal('/auth/enrich_money')}\n >\n
    \n Login with Enrich Money\n
    \n \n
    \n
    \n
    \n );\n};\n\nEntichMoneyLogin.propTypes = propTypes;\nEntichMoneyLogin.defaultProps = defaultProps;\n\nexport default EntichMoneyLogin;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'common/components/ModalComponent';\n\nconst propTypes = {\n brokersConfig: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n supportedBrokers: PropTypes.arrayOf(PropTypes.string),\n onCloseModal: PropTypes.func.isRequired,\n onSetBroker: PropTypes.func.isRequired\n};\nconst defaultProps = {\n supportedBrokers: null\n};\n\nconst BrokerAccountLoginModal = ({ onCloseModal, brokersConfig, onSetBroker }) => {\n const [filteredBrokers, setFilteredBrokers] = useState(\n _.sortBy(brokersConfig, 'sortOrder')\n );\n\n const modalProps = {\n size: 'lg',\n shouldShow: true,\n title: 'Login with your Broking Account',\n onClose: () => { onCloseModal(); },\n };\n\n const onSearch = (searchValue) => {\n let filteredBrokersBySearchValue = brokersConfig;\n\n if (searchValue !== '') {\n filteredBrokersBySearchValue = _.filter(brokersConfig, (broker) => {\n return _.get(broker, 'brokerConfig.name', '').toLowerCase().includes(searchValue.toLowerCase());\n });\n }\n\n setFilteredBrokers(_.sortBy(filteredBrokersBySearchValue, 'sortOrder'));\n };\n\n const renderFilter = () => {\n return (\n
    \n
    \n
    \n
    \n
    \n search\n
    \n
    \n onSearch(e.target.value)}\n />\n
    \n
    \n
    \n );\n };\n\n const renderBroker = (broker, idx) => {\n const {\n brokerConfig, brokerClassName, imagePath, imageClassName\n } = broker;\n const href = _.get(broker, 'href', '');\n const name = _.get(broker, 'name', '');\n\n return (\n {\n if (href) window.location.href = href;\n else onSetBroker(brokerConfig.id);\n }}\n >\n {imagePath && {brokerConfig.name}}\n {name && {name}}\n \n );\n };\n\n const renderModal = () => {\n return (\n \n
    \n
    \n {renderFilter()}\n
    \n {_.map(filteredBrokers, renderBroker)}\n
    \n
    \n
    \n
    \n );\n };\n\n return (\n
    \n {renderModal()}\n
    \n );\n};\n\nexport default BrokerAccountLoginModal;\n\nBrokerAccountLoginModal.propTypes = propTypes;\nBrokerAccountLoginModal.defaultProps = defaultProps;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst KotakNeoLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Kotak Neo API.\n
    \n
    \n { setCurrentBroker(BROKERS.kotak_neo.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n Kotak Neo\n

    \n

    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nKotakNeoLogin.propTypes = propTypes;\nKotakNeoLogin.defaultProps = defaultProps;\n\nexport default KotakNeoLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst SharekhanLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Build and deploy your own strategies in the live market and\n {oneIndentation}\n seamlessly executing orders through integration with the Sharekhan API\n

    \n { setCurrentBroker(BROKERS.sharekhan.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n Sharekhan\n
    \n
    \n
    \n setCurrentBroker('')} />\n \n );\n};\n\nSharekhanLogin.propTypes = propTypes;\nSharekhanLogin.defaultProps = defaultProps;\n\nexport default SharekhanLogin;\n","import _ from 'lodash';\nimport React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n selectedBroker: PropTypes.string,\n brokerStructuredData: PropTypes.arrayOf(PropTypes.shape({})),\n onHandleSelectedBroker: PropTypes.func.isRequired,\n};\n\nconst defaultProps = { selectedBroker: '', brokerStructuredData: [] };\n\nconst DROPDOWN_SHOW_EVENT = 'shown.bs.dropdown';\n\nconst BrokerSelectionDropDown = ({ selectedBroker, brokerStructuredData, onHandleSelectedBroker }) => {\n const [searchBroker, setSearchBroker] = useState('');\n const dropdownRef = useRef(null);\n const inputRef = useRef(null);\n\n useEffect(() => {\n const onDropdownShow = () => {\n // eslint-disable-next-line no-unused-expressions\n inputRef && inputRef.current && inputRef.current.focus();\n };\n if (dropdownRef && dropdownRef.current) {\n $(dropdownRef.current).on(DROPDOWN_SHOW_EVENT, onDropdownShow);\n return () => {\n $(dropdownRef.current).off(DROPDOWN_SHOW_EVENT, onDropdownShow);\n };\n }\n return () => {};\n }, [inputRef]);\n\n const selectedBrokerConfig = _.find(brokerStructuredData,\n (broker) => _.get(broker, 'brokerConfig.id', '') === selectedBroker);\n const selectedBrokerName = _.get(selectedBrokerConfig, 'brokerConfig.name', '');\n const filteredBrokerStructuredData = _.filter(brokerStructuredData, (broker) => {\n return _.get(broker, 'brokerConfig.name', '').toLowerCase().includes(searchBroker.toLowerCase());\n });\n\n const sortedBrokerStructuredData = _.sortBy(filteredBrokerStructuredData, (broker) => {\n return _.get(broker, 'sortOrder', 0);\n });\n\n const renderDropDownItem = (broker) => (\n onHandleSelectedBroker(broker.brokerConfig.id)}\n >\n {broker.brokerConfig.name}\n \n );\n\n return (\n
    \n \n
    \n {selectedBrokerName || 'Select Broker'}\n keyboard_arrow_down\n
    \n \n
    \n
    \n search\n setSearchBroker(event.target.value)}\n />\n
    \n {_.map(sortedBrokerStructuredData, renderDropDownItem)}\n
    \n
    \n );\n};\n\nBrokerSelectionDropDown.propTypes = propTypes;\nBrokerSelectionDropDown.defaultProps = defaultProps;\n\nexport default BrokerSelectionDropDown;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst PhilipCapitalLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with PhillipCapital API.\n

    \n { setCurrentBroker(BROKERS.philip_capital.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n PhillipCapital\n
    \n
    \n
    \n setCurrentBroker('')} />\n \n );\n};\n\nPhilipCapitalLogin.propTypes = propTypes;\nPhilipCapitalLogin.defaultProps = defaultProps;\n\nexport default PhilipCapitalLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst SamcoLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Samco.\n

    \n\n { setCurrentBroker(BROKERS.samco.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH SAMCO\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nSamcoLogin.propTypes = propTypes;\nSamcoLogin.defaultProps = defaultProps;\n\nexport default SamcoLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst UpstoxLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Upstox API.\n

    \n { setCurrentBroker(BROKERS.upstox.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n Upstox\n
    \n
    \n
    \n setCurrentBroker('')} />\n \n );\n};\n\nUpstoxLogin.propTypes = propTypes;\nUpstoxLogin.defaultProps = defaultProps;\n\nexport default UpstoxLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst InvestRightLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with HDFC InvestRight.\n

    \n\n { setCurrentBroker(BROKERS.invest_right.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n Login via HDFC Invest Right\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nInvestRightLogin.propTypes = propTypes;\nInvestRightLogin.defaultProps = defaultProps;\n\nexport default InvestRightLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst HdfcSky = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with HDFC SKY.\n

    \n\n { setCurrentBroker(BROKERS.hdfcsky.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n Login via HDFC SKY\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nHdfcSky.propTypes = propTypes;\nHdfcSky.defaultProps = defaultProps;\n\nexport default HdfcSky;\n","import React, { useState } from 'react';\n\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst GrowwLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with GoodWill.\n

    \n\n loginInModal('/auth/groww')}\n >\n LOGIN WITH GROWW\n \n\n setCurrentBroker('')} />\n
    \n
    \n
    \n );\n};\n\nGrowwLogin.propTypes = propTypes;\nGrowwLogin.defaultProps = defaultProps;\n\nexport default GrowwLogin;\n","import React from 'react';\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst FivepaisaLogin = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with 5Paisa API.\n

    \n loginInModal('/auth/fivepaisa')}\n >\n
    \n Login with 5Paisa\n
    \n \n
    \n
    \n
    \n );\n};\n\nFivepaisaLogin.propTypes = propTypes;\nFivepaisaLogin.defaultProps = defaultProps;\n\nexport default FivepaisaLogin;\n","import React, { useState } from 'react';\n\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst JainamLiteLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Jainam Lite.\n

    \n\n loginInModal('/auth/jainam_lite')}\n >\n LOGIN WITH JAINAM LITE\n \n\n setCurrentBroker('')} />\n
    \n
    \n
    \n );\n};\n\nJainamLiteLogin.propTypes = propTypes;\nJainamLiteLogin.defaultProps = defaultProps;\n\nexport default JainamLiteLogin;\n","import React, { useState } from 'react';\n\nimport loginInModal from 'v2/modules/withRunForm/utils/loginInModal';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst StoxkartLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with stoxkart.\n

    \n\n loginInModal('/auth/stoxkart')}\n >\n LOGIN WITH STOXKART\n \n\n setCurrentBroker('')} />\n
    \n
    \n
    \n );\n};\n\nStoxkartLogin.propTypes = propTypes;\nStoxkartLogin.defaultProps = defaultProps;\n\nexport default StoxkartLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst ZerodhaLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Zdha API.\n
    \n
    \n

    \n { setCurrentBroker(BROKERS.zerodha.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n Login via\n {oneIndentation}\n ZDHA\n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nZerodhaLogin.propTypes = propTypes;\nZerodhaLogin.defaultProps = defaultProps;\n\nexport default ZerodhaLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst ZebuLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Zebu.\n

    \n\n { setCurrentBroker(BROKERS.zebull.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH ZEBU\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nZebuLogin.propTypes = propTypes;\nZebuLogin.defaultProps = defaultProps;\n\nexport default ZebuLogin;\n","import React, { useState } from 'react';\n\nimport { BROKERS } from 'common/constants';\nimport AuthenticationModal from '../AuthenticationModal/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst FyersLogin = () => {\n const oneIndentation = ' ';\n const [currentBroker, setCurrentBroker] = useState('');\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n

    \n Welcome to\n {oneIndentation}\n Quantman\n

    \n

    \n Explore, Analyse and Learn via backtests on\n {oneIndentation}\n 6+ years\n {oneIndentation}\n of data.\n Deploy strategies on live market with order execution\n integrated with Zebu.\n

    \n\n { setCurrentBroker(BROKERS.fyers.id); }}\n className=\"btn btn-outline-primary broker\"\n >\n
    \n \n LOGIN WITH FYERS\n
    \n
    \n
    \n setCurrentBroker('')} />\n
    \n \n );\n};\n\nFyersLogin.propTypes = propTypes;\nFyersLogin.defaultProps = defaultProps;\n\nexport default FyersLogin;\n","import _ from 'lodash';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { DOMAINS } from 'common/constants';\nimport { getSessionStorage, setSessionStorage } from 'common/utils/session';\nimport { initiateBrokerCallbackLogin } from 'common/auth/modalLogin';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport RenderInfoMessage from 'common/components/RenderInfoMessage';\nimport { INFO_MESSAGE_TYPE } from 'v2/common/constants';\nimport {\n brokerStructuredData,\n // loginPageTopBrokers\n} from '../config';\nimport AngelOneLogin from '../specificDomainLoginPages/AngelOneLogin';\nimport SignIn from '../SignIn';\nimport SignUp from '../SignUp';\nimport AuthenticationModal from '../AuthenticationModal/index';\nimport AlicBlueLogin from '../specificDomainLoginPages/AlicBlueLogin';\nimport PaytmLogin from '../specificDomainLoginPages/PaytmLogin';\nimport DhanLogin from '../specificDomainLoginPages/DhanLogin';\nimport DhaniStocksLogin from '../specificDomainLoginPages/DhaniStocksLogin';\nimport GoodWillLogin from '../specificDomainLoginPages/GoodWillLogin';\nimport IciciDirectLogin from '../specificDomainLoginPages/IciciDirectLogin';\nimport NuvamaLogin from '../specificDomainLoginPages/NuvamaLogin';\nimport BigulLogin from '../specificDomainLoginPages/bigulLogin';\nimport IiflLogin from '../specificDomainLoginPages/IiflLogin';\nimport FlattradeLogin from '../specificDomainLoginPages/FlattradeLogin';\nimport FinvasiaLogin from '../specificDomainLoginPages/FinvasiaLogin';\nimport RupeezyLogin from '../specificDomainLoginPages/RupeezyLogin';\nimport EnrichMoneyLogin from '../specificDomainLoginPages/EnrichMoneyLogin';\nimport BrokerAccountLoginModal from '../BrokerAccountLoginModal';\nimport KotakNeoLogin from '../specificDomainLoginPages/KotakNeoLogin';\nimport SharekhanLogin from '../specificDomainLoginPages/SharekhanLogin';\nimport BrokerSelectionDropDown from '../BrokerSelectionDropDown';\nimport PhilipCapitalLogin from '../specificDomainLoginPages/PhilipCapitalLogin';\nimport SamcoLogin from '../specificDomainLoginPages/samcoLogin';\nimport UpstoxLogin from '../specificDomainLoginPages/UpstoxLogin';\nimport InvestRightLogin from '../specificDomainLoginPages/investRightLogin';\nimport HdfcSky from '../specificDomainLoginPages/hdfcSky';\nimport GrowwLogin from '../specificDomainLoginPages/GrowwLogin';\nimport FivepaisaLogin from '../specificDomainLoginPages/FivePaisaLogin';\nimport JainamLiteLogin from '../specificDomainLoginPages/JainamLiteLogin';\nimport StoxkartLogin from '../specificDomainLoginPages/StoxkartLogin';\nimport ZerodhaLogin from '../specificDomainLoginPages/ZerodhaLogin';\nimport ZebuLogin from '../specificDomainLoginPages/ZebuLogin';\nimport FyersLogin from '../specificDomainLoginPages/FyersLogin';\n\nconst propTypes = {\n mode: PropTypes.string,\n // TODO: is this the best way?? should we set it ApplicationDomain as global var for all\n // components to consume without sending as props.\n supportedBrokers: PropTypes.arrayOf(PropTypes.string),\n allowAlternateLoginMode: PropTypes.bool,\n allowGoodwillDealer: PropTypes.bool\n};\nconst defaultProps = {\n mode: 'signIn',\n supportedBrokers: null,\n allowAlternateLoginMode: true,\n allowGoodwillDealer: false\n};\n\nconst ENTRY_MODES = [\n { label: 'Login', value: 'signIn' },\n { label: 'Register', value: 'signUp' }\n];\n\nconst ENTRY_COMPONENTS = { signIn: SignIn, signUp: SignUp };\nconst CURRENT_MODE = 'user_auth_current_mode';\n// const MAX_BROKERS_TO_SHOW = 11;\n\nconst UserAuth = (props) => {\n const { supportedBrokers, allowAlternateLoginMode } = props;\n const defaultMode = getSessionStorage(CURRENT_MODE);\n const [currentEntryMode, setCurrentEntryMode] = useState(defaultMode || '');\n const CurrentEntryComponent = ENTRY_COMPONENTS[currentEntryMode];\n const [currentBroker, setCurrentBroker] = useState('');\n const oneIndentation = ' ';\n const [selectedBroker, setSelectedBroker] = useState('');\n const [showBrokersLoginModal, setShowBrokersLoginModal] = useState(false);\n\n const { applicationDomain } = window;\n const isPrimaryDomain = (_.isNull(_.get(applicationDomain, 'id', null)));\n const isEmailUser = _.get(window, 'isEmailUser', false);\n const isAllowEmailLoginPlanPurchase = window.location.href.includes('plan_purchase');\n const queryParams = new URLSearchParams(window.location.search);\n const planName = queryParams.get('plan') || 'Live';\n const isBacktestPlan = (planName).includes('Backtest');\n\n useEffect(() => {\n return () => { setSessionStorage(CURRENT_MODE, ''); };\n }, []);\n\n const onHandleCurrentEntryMode = (value) => {\n if (currentEntryMode === value) {\n setCurrentEntryMode('');\n setSessionStorage(CURRENT_MODE, '');\n } else {\n setCurrentEntryMode(value);\n setSessionStorage(CURRENT_MODE, value);\n }\n };\n\n const renderEntryTabItem = ({ label, value }) => {\n const buttonClassName = classNames('btn btn-block badge-pill btn-outline-primary', {\n 'mt-0 active': (value === currentEntryMode)\n });\n\n return (\n { onHandleCurrentEntryMode(value); }}\n >\n {label}\n \n );\n };\n const currentComponentDivClassName = classNames('exp-login', { 'exp-login-open': (CurrentEntryComponent) });\n\n const renderAlternateLoginContent = () => {\n if (!allowAlternateLoginMode || isAllowEmailLoginPlanPurchase) {\n return null;\n }\n\n return (\n <>\n
    \n
    \n OR\n
    \n
    \n\n
    \n Continue with\n {oneIndentation}\n { onHandleCurrentEntryMode('signIn'); }}\n >\n Email\n \n
    \n {currentEntryMode && (\n
    \n {_.map(ENTRY_MODES, renderEntryTabItem)}\n
    \n )}\n\n
    \n {currentEntryMode &&
    }\n
    \n \n );\n };\n\n const sanitizedBrokerStructuredData = useMemo(() => _.filter(brokerStructuredData, (broker) => {\n return (\n (_.isEmpty(supportedBrokers) || _.includes(supportedBrokers, _.get(broker, 'brokerConfig.id', '')))\n && broker.isShow\n );\n }, [brokerStructuredData]));\n const selectedBrokerConfig = _.find(sanitizedBrokerStructuredData,\n (broker) => _.get(broker, 'brokerConfig.id', '') === selectedBroker);\n\n const onHandleAuthMode = () => {\n if (selectedBrokerConfig?.href) {\n if (!isPrimaryDomain) {\n window.location.href = selectedBrokerConfig.href;\n }\n\n initiateBrokerCallbackLogin(selectedBrokerConfig.href)\n .then((res) => {\n window.location.href = res?.href;\n })\n .catch((error) => {\n console.error(error);\n reactToastify(\n 'Unauthorized, Please Login and continue',\n TOASTIFY_TYPES.ERROR\n );\n });\n } else setCurrentBroker(selectedBroker);\n };\n\n return (\n <>\n
    \n {isEmailUser && isAllowEmailLoginPlanPurchase && allowAlternateLoginMode && (\n <>\n \n {isBacktestPlan && (\n <>\n OR\n \n \n )}\n \n )}\n
    \n
    \n
    \n
    Login with your broker
    \n
    \n {showBrokersLoginModal && (\n { setShowBrokersLoginModal(false); }}\n onSetBroker={(brokerId) => {\n setShowBrokersLoginModal(false);\n setCurrentBroker(brokerId);\n }}\n />\n )}\n setCurrentBroker('')} />\n
    \n
    \n
    \n
    \n Continue with\n {oneIndentation}\n Broker\n {' '}\n select here\n
    \n \n
    \n\n \n Login with broker\n \n
    \n {renderAlternateLoginContent()}\n
    \n
    \n
    \n
    \n \n );\n};\n\nUserAuth.propTypes = propTypes;\nUserAuth.defaultProps = defaultProps;\n\nexport default (props) => {\n const { currentDomain } = window;\n switch (currentDomain) {\n case DOMAINS.ANGEL_ONE:\n return ;\n case DOMAINS.ALICE_BLUE:\n return ;\n case DOMAINS.ICICI_DIRECT:\n return ;\n case DOMAINS.GOODWILL:\n return ;\n case DOMAINS.PAYTM_MONEY:\n return ;\n case DOMAINS.BIGUL:\n return ;\n case DOMAINS.FLATTRADE:\n return ;\n case DOMAINS.FINVASIA:\n return ;\n case DOMAINS.DHAN:\n return ;\n case DOMAINS.NUVAMA:\n return ;\n case DOMAINS.RUPEEZY:\n return ;\n case DOMAINS.ENRICH_MONEY:\n return ;\n case DOMAINS.KOTAK_NEO:\n return ;\n case DOMAINS.SHAREKHAN:\n return ;\n case DOMAINS.PHILLIP_CAPITAL:\n return ;\n case DOMAINS.SAMCO:\n return ;\n case DOMAINS.UPSTOX:\n return ;\n case DOMAINS.INVESTRIGHT:\n return ;\n case DOMAINS.HDFCSKY:\n return ;\n case DOMAINS.GROWW:\n return ;\n case DOMAINS.JAINAMLITE:\n return ;\n case DOMAINS.STOXKART:\n return ;\n case DOMAINS.FIVEPAISA:\n return ;\n case DOMAINS.FYERS:\n return ;\n case DOMAINS.ZEBU:\n return ;\n case DOMAINS.ZERODHA:\n return ;\n case DOMAINS.IIFL:\n return ;\n case DOMAINS.DHANISTOCKS:\n return ;\n default:\n return ;\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport UsLogin from './LocaleWiseLogin/UsLogin';\nimport IndiaLogin from './LocaleWiseLogin/IndiaLogin';\n\nconst propTypes = {\n mode: PropTypes.string,\n // TODO: is this the best way?? should we set it ApplicationDomain as global var for all\n // components to consume without sending as props.\n supportedBrokers: PropTypes.arrayOf(PropTypes.string),\n allowAlternateLoginMode: PropTypes.bool,\n allowGoodwillDealer: PropTypes.bool\n};\nconst defaultProps = {\n mode: 'signIn',\n supportedBrokers: null,\n allowAlternateLoginMode: true,\n allowGoodwillDealer: false\n};\n\nconst UserAuth = (props) => {\n const { SA_LOCALE: locale } = window;\n\n if (locale.isUsVersion) {\n return ;\n }\n\n return ;\n};\n\nUserAuth.propTypes = propTypes;\nUserAuth.defaultProps = defaultProps;\n\nexport default UserAuth;\n","import _ from 'lodash';\nimport React from 'react';\nimport UserAuth from 'modules/UserAuth';\nimport {\n REMOVE_BACKTEST_CONTENT_ON_BROKER_DOMAINS,\n DOMAINS\n} from 'common/constants';\n\nconst HomeSection = (props) => {\n const oneIndentation = ' ';\n const currentDomain = _.get(window, 'currentDomain', '');\n const isShowBackTestRemovedSubMessage = REMOVE_BACKTEST_CONTENT_ON_BROKER_DOMAINS.includes(currentDomain);\n const usersCountMessage = _.get(window, 'usersCountMessage', '');\n const freeTrialDays = currentDomain === DOMAINS.UPSTOX ? 30 : 7;\n const historicRunLimit = window.freePlan?.historic_run_limit || 0;\n const liveRunLimit = window.freePlan?.live_run_limit || 0;\n\n const defaultSubMessage = (\n

    \n With Quantman's Algo Trading. Access over\n {oneIndentation}\n 6 years\n {oneIndentation}\n of futures & options\n data and choose from 100+ tried-and-tested strategies. With Quantman at\n your fingertips, anyone can trade effortlessly –\n {oneIndentation}\n no coding\n {oneIndentation}\n required.\n And yes, you can even customise your strategies.\n

    \n );\n\n const backestRemovedSubMessage = (\n

    \n Analyze hypotheses and test theories efficiently using QuantMan.\n {oneIndentation}\n Discover patterns and strategies,\n {oneIndentation}\n and easily deploy your validated trading algorithms with a straightforward\n {oneIndentation}\n single click setup.\n

    \n );\n\n const onOpenDropDown = () => {\n setTimeout(() => {\n // Trigger broker dropdown toggle using jQuery by ID\n $('#brokerDropdownMenuButton').dropdown('toggle');\n // Focus the input field when the dropdown is shown\n $('#dropdownSearchInput').focus();\n });\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n

    Algo trading

    \n

    Trade Smarter, Not Harder

    \n\n

    \n {\n isShowBackTestRemovedSubMessage\n ? backestRemovedSubMessage\n : defaultSubMessage\n }\n

    \n\n
    \n \n
    \n \n +\n {oneIndentation}\n {historicRunLimit}\n {oneIndentation}\n free backtests and\n {oneIndentation}\n {liveRunLimit}\n {oneIndentation}\n live runs\n \n
    \n
    \n\n
    \n Trusted by\n {oneIndentation}\n {usersCountMessage}\n {oneIndentation}\n happy customers.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default HomeSection;\n","// import { automaticSupportedBrokers, oneClickSupportedBrokers } from 'common/brokerConfigs/config';\nimport { DOMAINS } from 'common/constants/index';\nimport React from 'react';\n// import { getContent } from 'ui/Plans/helper';\n\nconst AboutSection = () => {\n const { currentDomain } = window;\n const isDefaultDomain = currentDomain === DOMAINS.DEFAULT_DOMAIN;\n const liveTypesClassName = isDefaultDomain\n ? 'col-md-6 col-lg-6 mb-3 mb-lg-0'\n : 'col-md-6 col-lg-6 mb-3 mb-lg-0';\n\n return (\n
    \n
    \n
    \n

    Live Execution

    \n

    \n Execute your strategies on the live market with our world-class execution platform.\n Deploy your custom strategies with never before heard reliability uninterrupted.\n

    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n

    Automatic Order

    \n
    \n
      \n
    • \n Place orders directly on the broker account on the account used to log in.\n (no additional setup required.)\n
    • \n
    • \n We place stop-loss orders based on executed prices with the brokers.\n
    • \n\n
    • \n Stop loss orders are automatically canceled on take profit.\n
    • \n\n
    • \n You can track the status of the transactions easily.\n
    • \n\n {/* {isDefaultDomain && (\n
    • \n
      \n Supported brokers :\n {' '}\n {getContent(automaticSupportedBrokers)}\n
      \n
    • \n )} */}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n

    One Click order

    \n
    \n\n
      \n
    • \n On every signal, get a phone call with IVR.\n
    • \n
    • \n You can confirm the order simply by pressing 1 on the phone call.\n
    • \n\n
    • \n Tweak the price or other details of the order before actually executing it.\n
    • \n\n {/* {isDefaultDomain && (\n
    • \n
      \n Supported brokers:\n {' '}\n {getContent(oneClickSupportedBrokers)}\n
      \n
    • \n )} */}\n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n

    Paper Testing

    \n
    \n
      \n
    • \n Checks signal conditions every second just like live execution.\n
    • \n
    • \n Instead of placing orders in the broker, we store them in our database\n so that you can verify if the strategy works as you expect it to.\n
    • \n\n
    • \n
      Log in via any supported broker to try this out.
      \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\nexport default AboutSection;\n","import React from 'react';\n\nconst FeaturesSection = () => (\n
    \n
    \n\n
    \n

    What are the features of the product?

    \n

    Features are highlighted below.

    \n
    \n\n
    \n
    \n
    \n

    Strategy Templates

    \n
      \n
    • \n
      \n Directional:\n {' '}\n Bull Call spread / Bear Put Spread\n
      \n
    • \n
    • \n
      \n Non-directional Strategies:\n {' '}\n Straddle / Strangle/ Iron Condor\n
      \n
    • \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n

    Create Your Own Strategy

    \n
      \n
    • \n
      \n Tweak these strategies using our massive\n set of customizable indicators or other custom signals like\n
      \n
        \n
      1. Days to expiry
      2. \n
      3. Technical indicators
      4. \n
      5. Opening range or candle at specified period.
      6. \n
      7. Day of week / Time of Day.
      8. \n
      \n
      \n
    • \n
    • \n Intraday and Positional, both supported.\n
    • \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
      \n
    • \n
      \n Choose Options to place enter based on\n
      \n
        \n
      1. Spot Based Strike Index
      2. \n
      3. Future Based Strike Index
      4. \n
      5. Premium
      6. \n
      7. Strike Price
      8. \n
      \n
      \n
    • \n
    • \n We support both Weekly and Monthly expiry cycles.\n
    • \n
    • \n Futures / Options / Equity of Indexes and all Stocks.\n
    • \n
    • \n Build multiple cases with different transaction Legs and Entry / Exit signals.\n
    • \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
      \n
    • \n Candle / Heikin Ashi\n
    • \n\n
    • \n SuperTrend / RSI / ATR / SMA / ... (27 more)\n
    • \n\n
    • \n Volume / Open interest based signal generation\n
    • \n\n
    • \n BullishHammer / BullishEngulfing / BearishMarubozu / BearishSpinningTop\n
    • \n\n
    • \n Price Ratio Standard Deviation Indicator\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n);\n\nexport default FeaturesSection;\n","import React from 'react';\n\nconst RenderQAndA = ({\n // eslint-disable-next-line react/prop-types\n index, question, expanded, children\n}) => {\n return (\n
    \n
    \n
    \n \n {question}\n
    \n \n
    \n
    \n \n
    \n {children}\n
    \n
    \n
    \n );\n};\n\nconst Faq = () => {\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n

    Frequently Asked Questions

    \n
    \n
    \n
    \n \n
      \n
    • \n Login into\n {oneIndentation}\n QuantMan \n {oneIndentation}\n via your broker.\n {oneIndentation}\n
    • \n
    • \n Create a live deployment to place an order and verify it in your broker terminal.\n
    • \n\n
    • \n NOTE : \n {oneIndentation}\n You must log in daily to QuantMan via the same broker account\n for orders that need to be executed from QuantMan on that day.\n
    • \n
    \n \n \n
      \n
    • \n
      \n Once you create a live deployment, it will monitor your entry signals continuosly.\n
      \n\n
        \n
      1. \n Once an entry signal is met,\n it will place the entry orders.\n
      2. \n
      3. \n To utilize the margin effectively, we place option buy orders\n before option sell orders if you choose the wait and trade execution.\n
      4. \n
      5. \n Stop loss orders are placed with the brokers\n when individual stop loss are provided for the leg.\n
      6. \n
      7. \n
        \n After entering into a transaction, live deployment will continuously check for\n\n
          \n
        1. exit condition
        2. \n
        3. \n trading-time / expiry-condition\n {oneIndentation}\n (trade during 10:00AM - 03:10PM)\n
        4. \n
        5. Overall stop loss
        6. \n
        \n
        \n
      8. \n
      9. \n If any-of the above conditions are met,\n it will place orders to close the entered positions.\n
      10. \n
      \n
      \n
    • \n
    \n \n \n
      \n
    • \n \n Please stop the live deployment and close the positions manually.\n \n {' '}\n The system will try to close the position\n when an exit signal condition is met even if it is closed in the broker terminal.\n
    • \n
    \n \n \n
      \n
    • \n
      \n Yes. The broker sessions are\n {' '}\n valid only for the day.\n {' '}\n And you must log in to QuantMan every day for the execution\n to successfully go through for that day.\n
      \n
    • \n
    \n \n \n
      \n
    • \n Backtesting and Past Performance is not necessary indication of future profits.\n Substantial deviations from past performance are possible based on volatility,\n slippages and market conditions.\n
    • \n
    • \n Backtesting is a tool to verify strategies on past data.\n
    • \n
    • \n The bullish/bearish nature of the market, global events, government policies,\n economics, and other fundamentals must be taken into consideration\n during the interpretation of backtest metrics.\n
    • \n
    • \n A directional strategy in a bullish market that made profit\n will not make a profit or the same returns in a bearish market.\n
    • \n
    \n \n \n
      \n
    • \n No, for the sake of simplicity,\n we support just one broker login for each QuantMan account.\n
    • \n
    • \n Incase you want to use QuantMan with a different broker than what is in use currently,\n you can migrate your existing data/credits/payments to a new broker login in QuantMan.\n Please contact support (email or use the feedback button on the right side).\n The custom strategies, run metrics and credits will be completely\n moved out of your old account.\n
    • \n
    \n \n
    \n
    \n\n \n More FAQ\n trending_flat\n \n
    \n {/*
    \n \n
    */}\n
    \n
    \n
    \n
    \n );\n};\nexport default Faq;\n","import React from 'react';\n\nconst ContactSection = () => (\n
    \n

    \n Have Question? Get in Touch\n

    \n
    \n
    \n
    \n
    \n
    Email us
    \n
    \n \n support@quantman.in\n \n
    \n
    \n
    \n
    \n\n {/*
    \n
    Office Address
    \n
    \n {' '}\n 9/28 Ramalakshmi nagar, Lakshmipuram, Peelamedu,\n
    \n Coimbatore-641004\n
    \n
    */}\n\n {/*
    \n
    \n
    \n
    \n
    \n
    Call us
    \n
    \n +91 97515-97579\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Email us
    \n
    \n \n support@quantman.in\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Telegram
    \n
    \n \n @quantman_in\n \n
    \n
    \n
    \n
    \n
    */}\n
    \n
    \n);\n\nexport default ContactSection;\n","import _ from 'lodash';\nimport React from 'react';\n\nconst Footer = () => {\n const pathname = _.get(window, 'location.pathname', '');\n if (pathname === '/advanced_analytics') return null;\n\n const blogs = _.get(window, 'applicationDomain.config.blogs', []);\n\n const renderBlogsContent = _.isEmpty(blogs) ? null : (\n
    \n
    Important Blogs :
    \n {blogs.map(({ title, link }, index) => (\n \n {title}\n {index !== (blogs.length - 1) && ' |'}\n \n ))}\n
    \n );\n\n // must clean up file.. avoid repeating code\n return (\n
    \n
    \n ©\n {' '}\n {new Date().getFullYear()}\n {' '}\n All rights reserved.\n \n Simply Algo Fintech Private Limited,\n \n \n D Quarters, 48/28, Balan nagar, Peelamedu, Coimbatore - 641004, Tamil\n Nadu\n \n
    \n
    \n
    Support :
    \n \n Tamil, English :\n {' '}\n 9043044901\n \n\n \n Hindi :\n {' '}\n 7200397083,\n \n\n \n 7305977320\n \n\n \n Email :\n {' '}\n support@quantman.in\n \n
    \n\n
    \n
    Business partnership franchise Bulk sales :
    \n \n Mobile :\n {' '}\n 7200397082\n \n
    \n {renderBlogsContent}\n\n
    \n
    \n \n
    \n \"facebook\"\n
    Follow Us
    \n
    \n \n\n \n
    \n \"twitter\"\n
    Follow Us
    \n
    \n \n\n \n
    \n \"telegram\"\n
    Join Us
    \n
    \n \n\n \n
    \n \"email\"\n
    Subscribe
    \n
    \n \n\n \n
    \n \"email\"\n
    \n contactus@quantman.in\n
    \n
    \n \n\n {/* \n
    \n phone_in_talk\n
    9043044901
    \n
    \n */}\n
    \n\n
    \n
    \n \n Terms & Conditions\n \n |\n \n Faq\n \n |\n \n Policy\n \n |\n \n About us\n \n |\n \n Best Algo\n \n |\n \n Top 10 Algorithmic Platforms\n \n\n |\n \n Blogs\n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Footer;\n","import _ from 'lodash';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport React from 'react';\n\nimport Plans from 'ui/Plans';\nimport {\n HomeSection, AboutSection, FeaturesSection, ContactSection\n} from './pages';\nimport Faq from './pages/Faq';\n\nconst LandingPage = (props) => {\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n\n return (\n
    \n \n \n {!isMinifiedPage && (\n
    \n \n
    \n \n
    \n \n \n {/*
    */}\n
    \n )}\n
    \n );\n};\n\nexport default LandingPage;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactHtmlParser from 'react-html-parser';\n\nconst propTypes = {\n title: PropTypes.string.isRequired,\n message: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n onClose: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst MessageToast = ({ title, message, onClose }) => {\n return (\n
    \n
    \n
    \n {_.startCase(title)}\n \n ×\n \n
    \n
    \n {ReactHtmlParser(message)}\n
    \n
    \n
    \n );\n};\n\nexport default MessageToast;\nMessageToast.defaultProps = defaultProps;\nMessageToast.propTypes = propTypes;\n","import _ from 'lodash';\nimport { getLocalStorage, setLocalStorage } from './localstorage';\n\nconst today = new Date().toLocaleDateString();\n\nexport const setUserMessagesLocalStorage = (userMessages) => {\n let localStorage = null;\n try { localStorage = _.get(window, 'localStorage', null); } catch { localStorage = null; }\n\n if (!localStorage) return;\n\n const keysInLocalStorage = _.keys(localStorage);\n\n _.each(userMessages, ({ id }) => {\n if (!_.includes(keysInLocalStorage, `message_read_${id}`)) {\n setLocalStorage(`message_read_${id}`, '');\n }\n });\n};\n\nexport const getUnreadMessages = (userMessages) => {\n let localStorage = null;\n try { localStorage = _.get(window, 'localStorage', null); } catch { localStorage = null; }\n\n if (!localStorage) return [];\n\n return _.filter(userMessages, ({ id, isShowEveryDay }) => {\n const messageReadAt = getLocalStorage(`message_read_${id}`);\n return (isShowEveryDay && messageReadAt !== today) || _.isEmpty(messageReadAt);\n });\n};\n\nexport const onUserMessageClose = (messageIdToClose, unreadMessages) => {\n let localStorage = null;\n try { localStorage = _.get(window, 'localStorage', null); } catch { localStorage = null; }\n\n if (!localStorage) return [];\n\n setLocalStorage(`message_read_${messageIdToClose}`, today);\n\n return _.filter(unreadMessages, ({ id }) => id !== messageIdToClose);\n};\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\n\nimport MessageToast from 'common/components/MessageToast';\nimport {\n getUnreadMessages, setUserMessagesLocalStorage, onUserMessageClose\n} from 'common/utils/userMessages';\n\nconst propTypes = {\n messages: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n messages: PropTypes.arrayOf(PropTypes.string)\n })).isRequired\n};\nconst defaultProps = {};\n\nconst UserMessageToast = ({ messages }) => {\n const [unReadMessges, setUnreadMessages] = useState([]);\n\n useEffect(() => {\n setUserMessagesLocalStorage(messages);\n setUnreadMessages(getUnreadMessages(messages));\n }, []);\n\n const renderToastMessage = ({ id, title, message }) => (\n setUnreadMessages(onUserMessageClose(id, unReadMessges))}\n />\n );\n return (\n
    \n {_.map(unReadMessges, renderToastMessage)}\n
    \n );\n};\n\nUserMessageToast.propTypes = propTypes;\nUserMessageToast.defaultProps = defaultProps;\n\nexport default UserMessageToast;\n","export const initializeConfettiAnimationParty = () => {\n return new Promise((resolve) => {\n const script = document.createElement('script');\n script.src = 'https://cdn.jsdelivr.net/npm/party-js@latest/bundle/party.min.js';\n script.onload = () => { resolve(true); };\n script.onerror = () => { resolve(false); };\n\n document.body.appendChild(script);\n });\n};\n","/**\n * name: fireworks-js\n * version: 2.10.8\n * author: Vitalij Ryndin (https://crashmax.ru)\n * homepage: https://fireworks.js.org\n * license MIT\n */\nfunction f(e) {\n return Math.abs(Math.floor(e));\n}\nfunction c(e, t) {\n return Math.random() * (t - e) + e;\n}\nfunction o(e, t) {\n return Math.floor(c(e, t + 1));\n}\nfunction m(e, t, i, s) {\n const n = Math.pow;\n return Math.sqrt(n(e - i, 2) + n(t - s, 2));\n}\nfunction x(e, t, i = 1) {\n if (e > 360 || e < 0)\n throw new Error(`Expected hue 0-360 range, got \\`${e}\\``);\n if (t > 100 || t < 0)\n throw new Error(`Expected lightness 0-100 range, got \\`${t}\\``);\n if (i > 1 || i < 0)\n throw new Error(`Expected alpha 0-1 range, got \\`${i}\\``);\n return `hsla(${e}, 100%, ${t}%, ${i})`;\n}\nconst g = (e) => {\n if (typeof e == \"object\" && e !== null) {\n if (typeof Object.getPrototypeOf == \"function\") {\n const t = Object.getPrototypeOf(e);\n return t === Object.prototype || t === null;\n }\n return Object.prototype.toString.call(e) === \"[object Object]\";\n }\n return !1;\n}, y = [\n \"__proto__\",\n \"constructor\",\n \"prototype\"\n], v = (...e) => e.reduce((t, i) => (Object.keys(i).forEach((s) => {\n y.includes(s) || (Array.isArray(t[s]) && Array.isArray(i[s]) ? t[s] = i[s] : g(t[s]) && g(i[s]) ? t[s] = v(t[s], i[s]) : t[s] = i[s]);\n}), t), {});\nfunction b(e, t) {\n let i;\n return (...s) => {\n i && clearTimeout(i), i = setTimeout(() => e(...s), t);\n };\n}\nclass S {\n x;\n y;\n ctx;\n hue;\n friction;\n gravity;\n flickering;\n lineWidth;\n explosionLength;\n angle;\n speed;\n brightness;\n coordinates = [];\n decay;\n alpha = 1;\n constructor({\n x: t,\n y: i,\n ctx: s,\n hue: n,\n decay: h,\n gravity: a,\n friction: r,\n brightness: u,\n flickering: p,\n lineWidth: l,\n explosionLength: d\n }) {\n for (this.x = t, this.y = i, this.ctx = s, this.hue = n, this.gravity = a, this.friction = r, this.flickering = p, this.lineWidth = l, this.explosionLength = d, this.angle = c(0, Math.PI * 2), this.speed = o(1, 10), this.brightness = o(u.min, u.max), this.decay = c(h.min, h.max); this.explosionLength--; )\n this.coordinates.push([t, i]);\n }\n update(t) {\n this.coordinates.pop(), this.coordinates.unshift([this.x, this.y]), this.speed *= this.friction, this.x += Math.cos(this.angle) * this.speed, this.y += Math.sin(this.angle) * this.speed + this.gravity, this.alpha -= this.decay, this.alpha <= this.decay && t();\n }\n draw() {\n const t = this.coordinates.length - 1;\n this.ctx.beginPath(), this.ctx.lineWidth = this.lineWidth, this.ctx.fillStyle = x(this.hue, this.brightness, this.alpha), this.ctx.moveTo(\n this.coordinates[t][0],\n this.coordinates[t][1]\n ), this.ctx.lineTo(this.x, this.y), this.ctx.strokeStyle = x(\n this.hue,\n this.flickering ? c(0, this.brightness) : this.brightness,\n this.alpha\n ), this.ctx.stroke();\n }\n}\nclass E {\n constructor(t, i) {\n this.options = t, this.canvas = i, this.pointerDown = this.pointerDown.bind(this), this.pointerUp = this.pointerUp.bind(this), this.pointerMove = this.pointerMove.bind(this);\n }\n active = !1;\n x;\n y;\n get mouseOptions() {\n return this.options.mouse;\n }\n mount() {\n this.canvas.addEventListener(\"pointerdown\", this.pointerDown), this.canvas.addEventListener(\"pointerup\", this.pointerUp), this.canvas.addEventListener(\"pointermove\", this.pointerMove);\n }\n unmount() {\n this.canvas.removeEventListener(\"pointerdown\", this.pointerDown), this.canvas.removeEventListener(\"pointerup\", this.pointerUp), this.canvas.removeEventListener(\"pointermove\", this.pointerMove);\n }\n usePointer(t, i) {\n const { click: s, move: n } = this.mouseOptions;\n (s || n) && (this.x = t.pageX - this.canvas.offsetLeft, this.y = t.pageY - this.canvas.offsetTop, this.active = i);\n }\n pointerDown(t) {\n this.usePointer(t, this.mouseOptions.click);\n }\n pointerUp(t) {\n this.usePointer(t, !1);\n }\n pointerMove(t) {\n this.usePointer(t, this.active);\n }\n}\nclass O {\n hue;\n rocketsPoint;\n opacity;\n acceleration;\n friction;\n gravity;\n particles;\n explosion;\n mouse;\n boundaries;\n sound;\n delay;\n brightness;\n decay;\n flickering;\n intensity;\n traceLength;\n traceSpeed;\n lineWidth;\n lineStyle;\n autoresize;\n constructor() {\n this.autoresize = !0, this.lineStyle = \"round\", this.flickering = 50, this.traceLength = 3, this.traceSpeed = 10, this.intensity = 30, this.explosion = 5, this.gravity = 1.5, this.opacity = 0.5, this.particles = 50, this.friction = 0.95, this.acceleration = 1.05, this.hue = {\n min: 0,\n max: 360\n }, this.rocketsPoint = {\n min: 50,\n max: 50\n }, this.lineWidth = {\n explosion: {\n min: 1,\n max: 3\n },\n trace: {\n min: 1,\n max: 2\n }\n }, this.mouse = {\n click: !1,\n move: !1,\n max: 1\n }, this.delay = {\n min: 30,\n max: 60\n }, this.brightness = {\n min: 50,\n max: 80\n }, this.decay = {\n min: 0.015,\n max: 0.03\n }, this.sound = {\n enabled: !1,\n files: [\n \"explosion0.mp3\",\n \"explosion1.mp3\",\n \"explosion2.mp3\"\n ],\n volume: {\n min: 4,\n max: 8\n }\n }, this.boundaries = {\n debug: !1,\n height: 0,\n width: 0,\n x: 50,\n y: 50\n };\n }\n update(t) {\n Object.assign(this, v(this, t));\n }\n}\nclass z {\n constructor(t, i) {\n this.options = t, this.render = i;\n }\n tick = 0;\n rafId = 0;\n fps = 60;\n tolerance = 0.1;\n now;\n mount() {\n this.now = performance.now();\n const t = 1e3 / this.fps, i = (s) => {\n this.rafId = requestAnimationFrame(i);\n const n = s - this.now;\n n >= t - this.tolerance && (this.render(), this.now = s - n % t, this.tick += n * (this.options.intensity * Math.PI) / 1e3);\n };\n this.rafId = requestAnimationFrame(i);\n }\n unmount() {\n cancelAnimationFrame(this.rafId);\n }\n}\nclass L {\n constructor(t, i, s) {\n this.options = t, this.updateSize = i, this.container = s;\n }\n resizer;\n mount() {\n if (!this.resizer) {\n const t = b(() => this.updateSize(), 100);\n this.resizer = new ResizeObserver(t);\n }\n this.options.autoresize && this.resizer.observe(this.container);\n }\n unmount() {\n this.resizer && this.resizer.unobserve(this.container);\n }\n}\nclass M {\n constructor(t) {\n this.options = t, this.init();\n }\n buffers = [];\n audioContext;\n onInit = !1;\n get isEnabled() {\n return this.options.sound.enabled;\n }\n get soundOptions() {\n return this.options.sound;\n }\n init() {\n !this.onInit && this.isEnabled && (this.onInit = !0, this.audioContext = new (window.AudioContext || window.webkitAudioContext)(), this.loadSounds());\n }\n async loadSounds() {\n for (const t of this.soundOptions.files) {\n const i = await (await fetch(t)).arrayBuffer();\n this.audioContext.decodeAudioData(i).then((s) => {\n this.buffers.push(s);\n }).catch((s) => {\n throw s;\n });\n }\n }\n play() {\n if (this.isEnabled && this.buffers.length) {\n const t = this.audioContext.createBufferSource(), i = this.buffers[o(0, this.buffers.length - 1)], s = this.audioContext.createGain();\n t.buffer = i, s.gain.value = c(\n this.soundOptions.volume.min / 100,\n this.soundOptions.volume.max / 100\n ), s.connect(this.audioContext.destination), t.connect(s), t.start(0);\n } else\n this.init();\n }\n}\nclass C {\n x;\n y;\n sx;\n sy;\n dx;\n dy;\n ctx;\n hue;\n speed;\n acceleration;\n traceLength;\n totalDistance;\n angle;\n brightness;\n coordinates = [];\n currentDistance = 0;\n constructor({\n x: t,\n y: i,\n dx: s,\n dy: n,\n ctx: h,\n hue: a,\n speed: r,\n traceLength: u,\n acceleration: p\n }) {\n for (this.x = t, this.y = i, this.sx = t, this.sy = i, this.dx = s, this.dy = n, this.ctx = h, this.hue = a, this.speed = r, this.traceLength = u, this.acceleration = p, this.totalDistance = m(t, i, s, n), this.angle = Math.atan2(n - i, s - t), this.brightness = o(50, 70); this.traceLength--; )\n this.coordinates.push([t, i]);\n }\n update(t) {\n this.coordinates.pop(), this.coordinates.unshift([this.x, this.y]), this.speed *= this.acceleration;\n const i = Math.cos(this.angle) * this.speed, s = Math.sin(this.angle) * this.speed;\n this.currentDistance = m(\n this.sx,\n this.sy,\n this.x + i,\n this.y + s\n ), this.currentDistance >= this.totalDistance ? t(this.dx, this.dy, this.hue) : (this.x += i, this.y += s);\n }\n draw() {\n const t = this.coordinates.length - 1;\n this.ctx.beginPath(), this.ctx.moveTo(\n this.coordinates[t][0],\n this.coordinates[t][1]\n ), this.ctx.lineTo(this.x, this.y), this.ctx.strokeStyle = x(this.hue, this.brightness), this.ctx.stroke();\n }\n}\nclass T {\n target;\n container;\n canvas;\n ctx;\n width;\n height;\n traces = [];\n explosions = [];\n waitStopRaf;\n running = !1;\n opts;\n sound;\n resize;\n mouse;\n raf;\n constructor(t, i = {}) {\n this.target = t, this.container = t, this.opts = new O(), this.createCanvas(this.target), this.updateOptions(i), this.sound = new M(this.opts), this.resize = new L(\n this.opts,\n this.updateSize.bind(this),\n this.container\n ), this.mouse = new E(this.opts, this.canvas), this.raf = new z(this.opts, this.render.bind(this));\n }\n get isRunning() {\n return this.running;\n }\n get version() {\n return \"2.10.8\";\n }\n get currentOptions() {\n return this.opts;\n }\n start() {\n this.running || (this.canvas.isConnected || this.createCanvas(this.target), this.running = !0, this.resize.mount(), this.mouse.mount(), this.raf.mount());\n }\n stop(t = !1) {\n this.running && (this.running = !1, this.resize.unmount(), this.mouse.unmount(), this.raf.unmount(), this.clear(), t && this.canvas.remove());\n }\n async waitStop(t) {\n if (this.running)\n return new Promise((i) => {\n this.waitStopRaf = () => {\n this.waitStopRaf && (requestAnimationFrame(this.waitStopRaf), !this.traces.length && !this.explosions.length && (this.waitStopRaf = null, this.stop(t), i()));\n }, this.waitStopRaf();\n });\n }\n pause() {\n this.running = !this.running, this.running ? this.raf.mount() : this.raf.unmount();\n }\n clear() {\n this.ctx && (this.traces = [], this.explosions = [], this.ctx.clearRect(0, 0, this.width, this.height));\n }\n launch(t = 1) {\n for (let i = 0; i < t; i++)\n this.createTrace();\n this.waitStopRaf || (this.start(), this.waitStop());\n }\n updateOptions(t) {\n this.opts.update(t);\n }\n updateSize({\n width: t = this.container.clientWidth,\n height: i = this.container.clientHeight\n } = {}) {\n this.width = t, this.height = i, this.canvas.width = t, this.canvas.height = i, this.updateBoundaries({\n ...this.opts.boundaries,\n width: t,\n height: i\n });\n }\n updateBoundaries(t) {\n this.updateOptions({ boundaries: t });\n }\n createCanvas(t) {\n t instanceof HTMLCanvasElement ? (t.isConnected || document.body.append(t), this.canvas = t) : (this.canvas = document.createElement(\"canvas\"), this.container.append(this.canvas)), this.ctx = this.canvas.getContext(\"2d\"), this.updateSize();\n }\n render() {\n if (!this.ctx || !this.running) return;\n const { opacity: t, lineStyle: i, lineWidth: s } = this.opts;\n this.ctx.globalCompositeOperation = \"destination-out\", this.ctx.fillStyle = `rgba(0, 0, 0, ${t})`, this.ctx.fillRect(0, 0, this.width, this.height), this.ctx.globalCompositeOperation = \"lighter\", this.ctx.lineCap = i, this.ctx.lineJoin = \"round\", this.ctx.lineWidth = c(s.trace.min, s.trace.max), this.initTrace(), this.drawTrace(), this.drawExplosion();\n }\n createTrace() {\n const {\n hue: t,\n rocketsPoint: i,\n boundaries: s,\n traceLength: n,\n traceSpeed: h,\n acceleration: a,\n mouse: r\n } = this.opts;\n this.traces.push(\n new C({\n x: this.width * o(i.min, i.max) / 100,\n y: this.height,\n dx: this.mouse.x && r.move || this.mouse.active ? this.mouse.x : o(s.x, s.width - s.x * 2),\n dy: this.mouse.y && r.move || this.mouse.active ? this.mouse.y : o(s.y, s.height * 0.5),\n ctx: this.ctx,\n hue: o(t.min, t.max),\n speed: h,\n acceleration: a,\n traceLength: f(n)\n })\n );\n }\n initTrace() {\n if (this.waitStopRaf) return;\n const { delay: t, mouse: i } = this.opts;\n (this.raf.tick > o(t.min, t.max) || this.mouse.active && i.max > this.traces.length) && (this.createTrace(), this.raf.tick = 0);\n }\n drawTrace() {\n let t = this.traces.length;\n for (; t--; )\n this.traces[t].draw(), this.traces[t].update((i, s, n) => {\n this.initExplosion(i, s, n), this.sound.play(), this.traces.splice(t, 1);\n });\n }\n initExplosion(t, i, s) {\n const {\n particles: n,\n flickering: h,\n lineWidth: a,\n explosion: r,\n brightness: u,\n friction: p,\n gravity: l,\n decay: d\n } = this.opts;\n let w = f(n);\n for (; w--; )\n this.explosions.push(\n new S({\n x: t,\n y: i,\n ctx: this.ctx,\n hue: s,\n friction: p,\n gravity: l,\n flickering: o(0, 100) <= h,\n lineWidth: c(\n a.explosion.min,\n a.explosion.max\n ),\n explosionLength: f(r),\n brightness: u,\n decay: d\n })\n );\n }\n drawExplosion() {\n let t = this.explosions.length;\n for (; t--; )\n this.explosions[t].draw(), this.explosions[t].update(() => {\n this.explosions.splice(t, 1);\n });\n }\n}\nexport {\n T as Fireworks,\n T as default\n};\n","import React, { useEffect, useRef } from 'react';\nimport { Fireworks } from 'fireworks-js';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n intensity: PropTypes.number,\n};\n\nconst defaultProps = {\n intensity: 30,\n};\n\nconst FireworksBlast = ({\n intensity,\n}) => {\n const canvasRef = useRef(null);\n\n useEffect(() => {\n // Initialize fireworks instance\n const fireworks = new Fireworks(canvasRef.current, {\n speed: 5,\n acceleration: 1.05,\n friction: 0.98,\n gravity: 1.2,\n particles: 150, // Number of particles per firework (blast effect)\n explosion: 4, // Blast effect size\n intensity, // Number of fireworks per second\n trace: 5,\n autoresize: true,\n });\n\n // Start fireworks on component mount\n fireworks.start();\n\n // Cleanup function to stop fireworks when component unmounts\n return () => fireworks.stop();\n }, []);\n\n return (\n \n );\n};\n\nFireworksBlast.propTypes = propTypes;\nFireworksBlast.defaultProps = defaultProps;\n\nexport default FireworksBlast;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\n\nimport Modal from 'common/components/ModalComponent';\nimport {\n getUnreadMessages, setUserMessagesLocalStorage, onUserMessageClose\n} from 'common/utils/userMessages';\nimport { initializeConfettiAnimationParty } from 'common/utils/initializeConfettiAnimationParty';\nimport FireworksBlast from './FireworksBlast';\n\nconst propTypes = {\n modalMessages: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n title: PropTypes.string,\n messages: PropTypes.arrayOf(PropTypes.string),\n showTo: PropTypes.string,\n filterByDomain: PropTypes.string,\n })).isRequired\n};\nconst defaultProps = {};\n\nconst UserMessageModal = ({ modalMessages }) => {\n const [unReadMessges, setUnreadMessages] = useState([]);\n const unReadMessage = _.head(unReadMessges) || {};\n const isShowFireBlast = _.get(unReadMessage, 'isShowFireBlast', false);\n\n useEffect(() => {\n setUserMessagesLocalStorage(modalMessages);\n setUnreadMessages(getUnreadMessages(modalMessages));\n }, []);\n\n useEffect(() => {\n const isShowConfetti = _.get(unReadMessage, 'isShowConfetti', false);\n if (isShowConfetti) {\n initializeConfettiAnimationParty().then(() => {\n setTimeout(() => {\n party.confetti(document.getElementById('confetti-paper'));\n }, 1500);\n }).catch(() => { });\n }\n }, [unReadMessage]);\n\n // show only one modal at the time.. no overlapping while mapping..\n if (_.isEmpty(unReadMessage)) return null;\n\n const {\n id, title, messages, filterByDomain, showTo\n } = unReadMessage;\n const size = _.get(unReadMessage, 'size', 'lg');\n\n const { currentUserBroker, currentDomain } = window;\n const isInvalidMessage = ((filterByDomain && filterByDomain !== currentDomain)\n || (showTo && showTo !== currentUserBroker));\n\n if (isInvalidMessage) return null;\n\n return (\n <>\n setUnreadMessages(onUserMessageClose(id, unReadMessges))}\n >\n <>\n {_.map(messages, (message, idx) => (\n
    \n {ReactHtmlParser(message)}\n
    \n ))}\n
    \n {isShowFireBlast && (\n \n )}\n \n \n {isShowFireBlast && (\n \n )}\n \n );\n};\n\nUserMessageModal.propTypes = propTypes;\nUserMessageModal.defaultProps = defaultProps;\n\nexport default UserMessageModal;\n","import PropTypes from 'prop-types';\nimport { useEffect } from 'react';\n\nconst propTypes = {\n message: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {};\n\nconst ScriptLoad = ({ message }) => {\n useEffect(() => {\n const scripts = message?.match(/]*>([\\s\\S]*?)<\\/script>/g);\n if (!scripts) return null;\n\n const scriptTags = scripts.map((script) => {\n const scriptContent = script.replace(/]*>/, '').replace(/<\\/script>/, '');\n const scriptTag = document.createElement('script');\n scriptTag.textContent = scriptContent;\n document.body.appendChild(scriptTag);\n return scriptTag;\n });\n\n // Cleanup function to remove the script tags when the component unmounts\n return () => {\n scriptTags.forEach((scriptTag) => {\n document.body.removeChild(scriptTag);\n });\n };\n }, [message]); // Ensure the effect re-runs if 'message' changes\n\n return null; // Return nothing, as you're handling the side effect with the script tags\n};\n\nScriptLoad.propTypes = propTypes;\nScriptLoad.defaultProps = defaultProps;\n\nexport default ScriptLoad;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactHtmlParser from 'react-html-parser';\nimport {\n getUnreadMessages, onUserMessageClose, setUserMessagesLocalStorage\n} from 'common/utils/userMessages';\nimport ScriptLoad from './ScriptLoad';\n\nconst propTypes = {\n messages: PropTypes.arrayOf(PropTypes.shape({\n message: PropTypes.string,\n showBy: PropTypes.string,\n referredBy: PropTypes.string\n })).isRequired,\n};\nconst defaultProps = {};\n\nconst UserMessageBanner = ({ messages }) => {\n const [unReadMessges, setUnreadMessages] = useState([]);\n\n useEffect(() => {\n setUserMessagesLocalStorage(messages);\n setUnreadMessages(getUnreadMessages(messages));\n }, []);\n\n const renderBannerMessage = (value, key) => {\n const { currentUserBroker } = window;\n const {\n message, filterByDomain, showTo, id, isShowBeforeLoggedIn\n } = value;\n\n const { currentDomain, isUserSignedIn } = window;\n\n const isShowBeforeSignedInBasedOnFlag = !isUserSignedIn && isShowBeforeLoggedIn;\n const isInValidCase = ((filterByDomain && filterByDomain !== currentDomain)\n || (showTo && showTo !== currentUserBroker));\n\n const renderMessage = (\n
    \n {ReactHtmlParser(message)}\n \n\n { setUnreadMessages(onUserMessageClose(id, unReadMessges)); }}\n >\n close\n \n
    \n );\n\n if (isShowBeforeSignedInBasedOnFlag) return renderMessage;\n if (isInValidCase) return null;\n\n return renderMessage;\n };\n\n return _.map(unReadMessges, renderBannerMessage);\n};\n\nUserMessageBanner.propTypes = propTypes;\nUserMessageBanner.defaultProps = defaultProps;\n\nexport default UserMessageBanner;\n","import _ from 'lodash';\nimport React from 'react';\n// import PropTypes from 'prop-types';\n\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport UserMessageToast from './UserMessageToast';\nimport UserMessageModal from './UserMessageModal';\nimport UserMessageBanner from './UserMessageBanner';\n\nconst propTypes = {\n // userMessages: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.shape({\n // id: PropTypes.string,\n // title: PropTypes.string,\n // message: PropTypes.string,\n // messages: PropTypes.arrayOf(PropTypes.string)\n // }))).isRequired\n // for reference\n};\nconst defaultProps = {};\n\nconst BANNERS = 'banners';\nconst MODALS = 'modals';\nconst TOASTS = 'toasts';\n\nconst UserMessages = () => {\n const userMessages = _.get(window, 'applicationDomain.config.userMessages', {});\n\n return (\n <>\n \n \n \n \n );\n};\n\nUserMessages.defaultProps = defaultProps;\nUserMessages.propTypes = propTypes;\n\nexport default withErrorBoundary(UserMessages);\n","import React from 'react';\n\nconst Content = () => {\n let paraContent = 'The following terminology applies to these Terms and Conditions,';\n paraContent += 'Privacy Statement and Disclaimer Notice and all Agreements: \"Client\",';\n paraContent += '\"You\" and \"Your\" refers to you, the person log on this website and compliant to the';\n paraContent += 'Company’s terms and conditions. \"The Company\", \"Ourselves\", \"We\", \"Our\" and \"Us\",';\n paraContent += 'refers to our Company. \"Party\", \"Parties\", or \"Us\", refers to both the Client and';\n paraContent += 'ourselves. All terms refer to the offer, acceptance and consideration of payment';\n paraContent += 'necessary to undertake the process of our assistance to the Client in the most appropriate';\n paraContent += 'manner for the express purpose of meeting the Client’s needs in respect of provision of ';\n paraContent += 'Company’s stated services, in accordance with and subject to, prevailing law of ';\n paraContent += 'the Netherlands. Any use of the above terminology or other words in the singular, plural, ';\n paraContent += 'capitalization and/or he/she or they, are taken as interchangeable and therefore as ';\n paraContent += 'referring to same.';\n\n let profitLossContent = \"We are not responsible for user's profit/loss during the market or data \";\n profitLossContent += 'down time';\n\n let cookieContent = 'We employ the use of cookies. By accessing Quantman, you agreed to ';\n cookieContent += \"use cookies in agreement with the simply algo fintech's Privacy Policy.\";\n\n let tradeMarkContent = \"No use of simply algo fintech's logo or other artwork will be allowed for linking\";\n tradeMarkContent += ' absent a trademark license agreement.';\n\n let termsForFintech = 'These terms and conditions outline the rules and regulations for ';\n termsForFintech += \"the use of simply algo fintech's Website, located at quantman.in.\";\n\n return (\n
    \n

    Terms and Conditions

    \n
    \n

    Welcome to Quantman!

    \n\n

    {termsForFintech}

    \n

    \n By accessing this website we assume you accept these terms and conditions.\n Do not continue to use Quantman if you do not agree to take all of the terms and\n conditions stated on this page.\n

    \n\n

    {paraContent}

    \n\n

    Backtesting

    \n

    \n Backtesting and Past Performance is not a necessary indication of future profits and the fact\n that substantial deviations from past performance are possible on account of volatility and\n slippages in live market.\n

    \n\n

    Technical Issues and non-liability

    \n

    \n Broker Api issue or Freak trades or Problems in order placements or\n cloud provider technical or server issues are not QuantMan’s responsibility.\n We do not provide a guarentee for full execution because of the external vendors,\n frameworks and infrastructure/cloud providers that we use have different uptime\n policies. All risks associated with trading and algorithmic trading lies on the\n users shoulders. QuantMan will just facilitate your strategy execution.\n

    \n\n

    No Refund Policy

    \n

    \n Once you made your payments, you can not get or apply for a refund. If you do not want\n the subscription any more, and you have initiated a recurring payment, you can cancel your\n subscription anytime. You will still have access to the subscription until the end of the\n period you have paid for.\n

    \n\n

    In case of Issue

    \n

    \n Issues in case if required can be only resolved or filed in Courts in coimbatore.\n

    \n\n

    General terms and conditions

    \n

    {profitLossContent}

    \n\n

    Cookies

    \n\n

    {cookieContent}

    \n\n

    \n Most interactive websites use cookies to let\n us retrieve the user’s details for each visit. Cookies\n are used by our website to enable the functionality of certain\n areas to make it easier for people visiting our website. Some of our\n affiliate/advertising partners may also use cookies.\n\n

    \n\n

    License

    \n\n

    \n Unless otherwise stated, simply algo fintech and/or its\n licensors own the intellectual property rights for all material on\n Quantman. All intellectual property rights are reserved. You may access this\n from Quantman for your own personal use subjected to restrictions set in these terms and\n conditions.\n\n

    \n\n

    You must not:

    \n
      \n
    • Republish material from Quantman
    • \n
    • Sell, rent or sub-license material from Quantman
    • \n
    • Reproduce, duplicate or copy material from Quantman
    • \n
    • Redistribute content from Quantman
    • \n
    \n

    \n Parts of this website offer an opportunity for users to post\n and exchange opinions and information in certain areas of the website.\n simply algo fintech does not filter, edit, publish or review Comments prior\n to their presence on the website. Comments do not reflect the views and opinions\n of simply algo fintech,its agents and/or affiliates. Comments reflect the views and\n opinions of the person who post their views and opinions. To the extent permitted by\n applicable laws, simply algo fintech shall not be liable for the Comments or for any\n liability, damages or expenses caused and/or suffered as a result of any use of and/or\n posting of and/or appearance of the Comments on this website.\n

    \n\n

    \n simply algo fintech reserves the right to monitor all Comments and to\n remove\n any Comments which can be considered inappropriate, offensive or causes breach\n of these Terms and Conditions.\n

    \n\n

    You warrant and represent that:

    \n\n
      \n
    • \n You are entitled to post the Comments on our website and have all necessary l\n icenses and consents to do so;\n
    • \n
    • \n The Comments do not invade any intellectual property right, including without\n limitation copyright, patent or trademark of any third party;\n
    • \n
    • \n The Comments do not contain any defamatory, libelous, offensive, indecent or\n otherwise unlawful material which is an invasion of privacy\n
    • \n
    • \n The Comments will not be used to solicit or promote business or custom or present\n commercial activities or unlawful activity.\n
    • \n
    \n\n

    \n You hereby grant simply algo fintech a non-exclusive license to use, reproduce,\n edit and authorize others to use, reproduce and edit any of your Comments in any\n and all forms, formats or media.\n\n

    \n\n

    Hyperlinking to our Content

    \n\n

    The following organizations may link to our Website without prior written approval:

    \n\n
      \n
    • Government agencies;
    • \n
    • Search engines;
    • \n
    • News organizations;
    • \n
    • \n Online directory distributors may link to our Website in the same manner as\n they hyperlink to the Websites of other listed businesses; and\n\n
    • \n
    • \n System wide Accredited Businesses except soliciting non-profit organizations,\n charity shopping malls, and charity fundraising groups which may not hyperlink to\n our Web site.\n\n
    • \n
    \n\n

    \n These organizations may link to our home page, to publications or to other Website\n information so long as the link: (a) is not in any way deceptive; (b) does not falsely\n imply sponsorship, endorsement or approval of the linking party and its products and/or\n services; and (c) fits within the context of the linking party’s site.\n\n

    \n\n

    We may consider and approve other link requests from the following types of organizations:

    \n\n
      \n
    • commonly-known consumer and/or business information sources;
    • \n
    • dot.com community sites;
    • \n
    • associations or other groups representing charities;
    • \n
    • online directory distributors;
    • \n
    • internet portals;
    • \n
    • accounting, law and consulting firms; and
    • \n
    • educational institutions and trade associations.
    • \n
    \n\n

    \n We will approve link requests from these organizations if we decide that: (a)\n the link would not make us look unfavorably to ourselves or to our accredited\n businesses; (b) the organization does not have any negative records with us;\n (c) the benefit to us from the visibility of the hyperlink compensates the absence\n of simply algo fintech; and (d) the link is in the context of general resource information.\n\n

    \n\n

    \n These organizations may link to our home page so long as the link: (a) is not in\n any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval\n of the linking party and its products or services; and (c) fits within the context\n of the linking party’s site.\n

    \n\n

    \n If you are one of the organizations listed in paragraph 2 above and are interested\n in linking to our website, you must inform us by sending an e-mail to simply algo fintech.\n Please include your name, your organization name, contact information as well as the URL\n of your site, a list of any URLs from which you intend to link to our Website, and a list\n of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.\n

    \n\n

    Approved organizations may hyperlink to our Website as follows:

    \n\n
      \n
    • By use of our corporate name; or
    • \n
    • By use of the uniform resource locator being linked to; or
    • \n
    • \n By use of any other description of our Website being linked to that makes\n sense within the context and format of content on the linking party’s site.\n
    • \n
    \n\n

    {tradeMarkContent}

    \n\n

    iFrames

    \n\n

    \n Without prior approval and written permission, you may not create frames around\n our Webpages that alter in any way the visual presentation or appearance of our Website.\n\n

    \n\n

    Content Liability

    \n\n

    \n We shall not be hold responsible for any content that appears on your Website.\n You agree to protect and defend us against all claims that is rising on your Website.\n No link(s) should appear on any Website that may be interpreted as libelous, obscene or\n criminal, or which infringes, otherwise violates, or advocates the infringement or other\n violation of, any third party rights.\n\n

    \n\n

    Your Privacy

    \n\n

    Please read Privacy Policy

    \n\n

    Reservation of Rights

    \n\n

    \n We reserve the right to request that you remove all links or any particular\n link to our Website. You approve to immediately remove all links to our Website\n upon request. We also reserve the right to amen these terms and conditions and\n it’s linking policy at any time. By continuously linking to our Website, you agree to\n be bound to and follow these linking terms and conditions.\n

    \n\n

    Removal of links from our website

    \n\n

    \n If you find any link on our Website that is offensive for any reason,\n you are free to contact and inform us any moment. We will consider requests\n to remove links but we are not obligated to or so or to respond to you directly.\n

    \n\n

    \n We do not ensure that the information on this website is correct, we do\n not warrant its completeness or accuracy; nor do we promise to ensure that\n the website remains available or that the material on the website is kept up to date.\n

    \n\n

    Disclaimer

    \n\n

    \n To the maximum extent permitted by applicable law, we exclude all\n representations, warranties and conditions relating to our website and\n the use of this website. Nothing in this disclaimer will:\n

    \n\n
      \n
    • limit or exclude our or your liability for death or personal injury;
    • \n
    • limit or exclude our or your liability for fraud or fraudulent misrepresentation;
    • \n
    • \n limit any of our or your liabilities in any way that is not permitted\n under applicable law; or\n
    • \n
    • exclude any of our or your liabilities that may not be excluded under applicable law.
    • \n
    \n\n

    \n The limitations and prohibitions of liability set in this Section and\n elsewhere in this disclaimer: (a) are subject to the preceding paragraph; a\n nd (b) govern all liabilities arising under the disclaimer, including liabilities\n arising in contract, in tort and for breach of statutory duty.\n\n

    \n\n

    \n As long as the website and the information and services on the website are\n provided free of charge, we will not be liable for any loss or damage of any nature.\n

    \n
    \n
    \n );\n};\n\nexport default Content;\n","import _ from 'lodash';\nimport React from 'react';\n\nconst { applicationDomain } = window;\nconst productName = _.get(applicationDomain, 'config.content.logoText', 'QuantMan');\nconst host = _.get(applicationDomain, 'host', 'Quantman.in');\nconst oneIndentation = ' ';\n\nconst strategyDomainContent = () => {\n let paraContent = 'The following terminology applies to these Terms and Conditions,';\n paraContent += 'Privacy Statement and Disclaimer Notice and all Agreements: \"Client\",';\n paraContent += '\"You\" and \"Your\" refers to you, the person log on this website and compliant to the';\n paraContent += 'Company’s terms and conditions. \"The Company\", \"Ourselves\", \"We\", \"Our\" and \"Us\",';\n paraContent += 'refers to our Company. \"Party\", \"Parties\", or \"Us\", refers to both the Client and';\n paraContent += 'ourselves. All terms refer to the offer, acceptance and consideration of payment';\n paraContent += 'necessary to undertake the process of our assistance to the Client in the most appropriate';\n paraContent += 'manner for the express purpose of meeting the Client’s needs in respect of provision of ';\n paraContent += 'Company’s stated services, in accordance with and subject to, prevailing law of ';\n paraContent += 'the Netherlands. Any use of the above terminology or other words in the singular, plural, ';\n paraContent += 'capitalization and/or he/she or they, are taken as interchangeable and therefore as ';\n paraContent += 'referring to same.';\n\n let profitLossContent = \"We are not responsible for user's profit/loss during the market or data \";\n profitLossContent += 'down time';\n\n let cookieContent = `We employ the use of cookies. By accessing ${productName}, you agreed to `;\n cookieContent += \"use cookies in agreement with the simply algo fintech's Privacy Policy.\";\n\n let tradeMarkContent = \"No use of simply algo fintech's logo or other artwork will be allowed for linking\";\n tradeMarkContent += ' absent a trademark license agreement.';\n\n let termsForFintech = 'These terms and conditions outline the rules and regulations for ';\n termsForFintech += `the use of ${productName}'s Website, located at ${host}.`;\n\n return (\n
    \n

    Terms and Conditions

    \n
    \n

    \n Welcome to\n {oneIndentation}\n {productName}\n !\n

    \n\n

    {termsForFintech}

    \n

    \n By accessing this website we assume you accept these terms and conditions.\n Do not continue to use\n {oneIndentation}\n {productName}\n {oneIndentation}\n if you do not agree to take all of the terms and\n conditions stated on this page.\n

    \n\n

    {paraContent}

    \n\n

    Backtesting

    \n

    \n Backtesting and Past Performance is not a necessary indication of future profits and the fact\n that substantial deviations from past performance are possible on account of volatility and\n slippages in live market.\n

    \n\n

    Technical Issues and non-liability

    \n

    \n Broker Api issue or Freak trades or Problems in order placements or\n cloud provider technical or server issues are not\n {oneIndentation}\n {productName}\n {oneIndentation}\n responsibility.\n We do not provide a guarentee for full execution because of the external vendors,\n frameworks and infrastructure/cloud providers that we use have different uptime\n policies. All risks associated with trading and algorithmic trading lies on the\n users shoulders.\n {oneIndentation}\n {productName}\n {oneIndentation}\n will just facilitate your strategy execution.\n

    \n\n

    No Refund Policy

    \n

    \n Once you made your payments, you can not get or apply for a refund. If you do not want\n the subscription any more, and you have initiated a recurring payment, you can cancel your\n subscription anytime. You will still have access to the subscription until the end of the\n period you have paid for.\n

    \n\n

    In case of Issue

    \n

    \n Issues in case if required can be only resolved or filed in Courts in coimbatore.\n

    \n\n

    General terms and conditions

    \n

    {profitLossContent}

    \n\n

    Cookies

    \n\n

    {cookieContent}

    \n\n

    \n Most interactive websites use cookies to let\n us retrieve the user’s details for each visit. Cookies\n are used by our website to enable the functionality of certain\n areas to make it easier for people visiting our website. Some of our\n affiliate/advertising partners may also use cookies.\n\n

    \n\n

    License

    \n\n

    \n Unless otherwise stated, simply algo fintech and/or its\n licensors own the intellectual property rights for all material on\n {oneIndentation}\n {productName}\n {oneIndentation}\n . All intellectual property rights are reserved. You may access this\n from\n {oneIndentation}\n {productName}\n {oneIndentation}\n for your own personal use subjected to restrictions set in these terms and\n conditions.\n\n

    \n\n

    You must not:

    \n
      \n
    • \n Republish material from\n {oneIndentation}\n {productName}\n {oneIndentation}\n
    • \n
    • \n Sell, rent or sub-license material from\n {oneIndentation}\n {productName}\n {oneIndentation}\n
    • \n
    • \n Reproduce, duplicate or copy material from\n {oneIndentation}\n {productName}\n {oneIndentation}\n
    • \n
    • \n Redistribute content from\n {oneIndentation}\n {productName}\n {oneIndentation}\n
    • \n
    \n

    \n Parts of this website offer an opportunity for users to post\n and exchange opinions and information in certain areas of the website.\n simply algo fintech does not filter, edit, publish or review Comments prior\n to their presence on the website. Comments do not reflect the views and opinions\n of simply algo fintech,its agents and/or affiliates. Comments reflect the views and\n opinions of the person who post their views and opinions. To the extent permitted by\n applicable laws, simply algo fintech shall not be liable for the Comments or for any\n liability, damages or expenses caused and/or suffered as a result of any use of and/or\n posting of and/or appearance of the Comments on this website.\n

    \n\n

    \n simply algo fintech reserves the right to monitor all Comments and to\n remove\n any Comments which can be considered inappropriate, offensive or causes breach\n of these Terms and Conditions.\n

    \n\n

    You warrant and represent that:

    \n\n
      \n
    • \n You are entitled to post the Comments on our website and have all necessary l\n icenses and consents to do so;\n
    • \n
    • \n The Comments do not invade any intellectual property right, including without\n limitation copyright, patent or trademark of any third party;\n
    • \n
    • \n The Comments do not contain any defamatory, libelous, offensive, indecent or\n otherwise unlawful material which is an invasion of privacy\n
    • \n
    • \n The Comments will not be used to solicit or promote business or custom or present\n commercial activities or unlawful activity.\n
    • \n
    \n\n

    \n You hereby grant simply algo fintech a non-exclusive license to use, reproduce,\n edit and authorize others to use, reproduce and edit any of your Comments in any\n and all forms, formats or media.\n\n

    \n\n

    Hyperlinking to our Content

    \n\n

    The following organizations may link to our Website without prior written approval:

    \n\n
      \n
    • Government agencies;
    • \n
    • Search engines;
    • \n
    • News organizations;
    • \n
    • \n Online directory distributors may link to our Website in the same manner as\n they hyperlink to the Websites of other listed businesses; and\n\n
    • \n
    • \n System wide Accredited Businesses except soliciting non-profit organizations,\n charity shopping malls, and charity fundraising groups which may not hyperlink to\n our Web site.\n\n
    • \n
    \n\n

    \n These organizations may link to our home page, to publications or to other Website\n information so long as the link: (a) is not in any way deceptive; (b) does not falsely\n imply sponsorship, endorsement or approval of the linking party and its products and/or\n services; and (c) fits within the context of the linking party’s site.\n\n

    \n\n

    We may consider and approve other link requests from the following types of organizations:

    \n\n
      \n
    • commonly-known consumer and/or business information sources;
    • \n
    • dot.com community sites;
    • \n
    • associations or other groups representing charities;
    • \n
    • online directory distributors;
    • \n
    • internet portals;
    • \n
    • accounting, law and consulting firms; and
    • \n
    • educational institutions and trade associations.
    • \n
    \n\n

    \n We will approve link requests from these organizations if we decide that: (a)\n the link would not make us look unfavorably to ourselves or to our accredited\n businesses; (b) the organization does not have any negative records with us;\n (c) the benefit to us from the visibility of the hyperlink compensates the absence\n of simply algo fintech; and (d) the link is in the context of general resource information.\n\n

    \n\n

    \n These organizations may link to our home page so long as the link: (a) is not in\n any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval\n of the linking party and its products or services; and (c) fits within the context\n of the linking party’s site.\n

    \n\n

    \n If you are one of the organizations listed in paragraph 2 above and are interested\n in linking to our website, you must inform us by sending an e-mail to simply algo fintech.\n Please include your name, your organization name, contact information as well as the URL\n of your site, a list of any URLs from which you intend to link to our Website, and a list\n of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.\n

    \n\n

    Approved organizations may hyperlink to our Website as follows:

    \n\n
      \n
    • By use of our corporate name; or
    • \n
    • By use of the uniform resource locator being linked to; or
    • \n
    • \n By use of any other description of our Website being linked to that makes\n sense within the context and format of content on the linking party’s site.\n
    • \n
    \n\n

    {tradeMarkContent}

    \n\n

    iFrames

    \n\n

    \n Without prior approval and written permission, you may not create frames around\n our Webpages that alter in any way the visual presentation or appearance of our Website.\n\n

    \n\n

    Content Liability

    \n\n

    \n We shall not be hold responsible for any content that appears on your Website.\n You agree to protect and defend us against all claims that is rising on your Website.\n No link(s) should appear on any Website that may be interpreted as libelous, obscene or\n criminal, or which infringes, otherwise violates, or advocates the infringement or other\n violation of, any third party rights.\n\n

    \n\n

    Your Privacy

    \n\n

    Please read Privacy Policy

    \n\n

    Reservation of Rights

    \n\n

    \n We reserve the right to request that you remove all links or any particular\n link to our Website. You approve to immediately remove all links to our Website\n upon request. We also reserve the right to amen these terms and conditions and\n it’s linking policy at any time. By continuously linking to our Website, you agree to\n be bound to and follow these linking terms and conditions.\n

    \n\n

    Removal of links from our website

    \n\n

    \n If you find any link on our Website that is offensive for any reason,\n you are free to contact and inform us any moment. We will consider requests\n to remove links but we are not obligated to or so or to respond to you directly.\n

    \n\n

    \n We do not ensure that the information on this website is correct, we do\n not warrant its completeness or accuracy; nor do we promise to ensure that\n the website remains available or that the material on the website is kept up to date.\n

    \n\n

    Disclaimer

    \n\n

    \n To the maximum extent permitted by applicable law, we exclude all\n representations, warranties and conditions relating to our website and\n the use of this website. Nothing in this disclaimer will:\n

    \n\n
      \n
    • limit or exclude our or your liability for death or personal injury;
    • \n
    • limit or exclude our or your liability for fraud or fraudulent misrepresentation;
    • \n
    • \n limit any of our or your liabilities in any way that is not permitted\n under applicable law; or\n
    • \n
    • exclude any of our or your liabilities that may not be excluded under applicable law.
    • \n
    \n\n

    \n The limitations and prohibitions of liability set in this Section and\n elsewhere in this disclaimer: (a) are subject to the preceding paragraph; a\n nd (b) govern all liabilities arising under the disclaimer, including liabilities\n arising in contract, in tort and for breach of statutory duty.\n\n

    \n\n

    \n As long as the website and the information and services on the website are\n provided free of charge, we will not be liable for any loss or damage of any nature.\n

    \n
    \n
    \n );\n};\n\nexport default strategyDomainContent;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { updateUser } from 'common/api/user';\nimport Content from './Content';\nimport StrategyDomainContent from './strategyDomainContent';\nimport { isStrategyDomainUser } from '../applicationDomainHelper';\n\nconst propTypes = {\n currentUserId: PropTypes.number,\n isTermsAndConditionsAgreed: PropTypes.bool.isRequired\n};\n\nconst defaultProps = {\n currentUserId: null\n};\n\nconst TermsAndConditions = ({\n currentUserId,\n isTermsAndConditionsAgreed\n}) => {\n const [isAgreed] = useState(isTermsAndConditionsAgreed);\n\n const hasAgreeTermsAndConditions = () => {\n updateUser({ id: currentUserId, is_terms_and_conditions_agreed: true }).then(() => {\n window.location.reload();\n });\n };\n\n const renderBackButton = (styleClass) => {\n const aTagClassName = `d-inline-flex btn btn-outline-primary btn-sm btn-pill my-2 ${styleClass}`;\n\n if ((!currentUserId || (currentUserId && isAgreed))) {\n return (\n \n arrow_back\n Back\n \n );\n }\n\n return null;\n };\n\n const renderButton = () => {\n if (!currentUserId) return null;\n if (isAgreed) return null;\n\n return (\n hasAgreeTermsAndConditions()}\n disabled={isAgreed}\n >\n {isAgreed ? 'Agreed' : 'Agree'}\n \n );\n };\n\n const ContentComponent = isStrategyDomainUser ? StrategyDomainContent : Content;\n\n return (\n <>\n {renderBackButton('mb-5')}\n \n
    \n {renderButton()}\n
    \n \n );\n};\n\nTermsAndConditions.propTypes = propTypes;\nTermsAndConditions.defaultProps = defaultProps;\n\nexport default TermsAndConditions;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { RUN_TYPES } from 'common/constants/index';\nimport RunSummary from 'modules/RunSummary/index';\nimport TransactionTable from 'modules/TransactionTable/index';\nimport { runPropTypes } from 'common/propTypes';\nimport { OrderContext } from 'ui/run/RunShow/OrderStore/index';\n\nconst propTypes = {\n type: PropTypes.string,\n name: PropTypes.string,\n startDate: PropTypes.string,\n endDate: PropTypes.string,\n description: PropTypes.string,\n run: runPropTypes.isRequired,\n runType: PropTypes.string.isRequired\n};\n\nconst defaultProps = {\n type: '', name: '', startDate: '', endDate: '', description: ''\n};\n\nconst ShowCase = ({\n type, name, startDate, endDate, description, runType, run\n}) => {\n const { isLoading } = useContext(OrderContext);\n if (isLoading) return null;\n\n const { live } = RUN_TYPES;\n switch (runType) {\n case live:\n return ;\n default:\n return (\n \n );\n }\n};\n\nShowCase.propTypes = propTypes;\nShowCase.defaultProps = defaultProps;\n\nexport default ShowCase;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport OrderStore from 'ui/run/RunShow/OrderStore/index';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { runPropTypes } from 'common/propTypes';\nimport RunDetail from 'ui/run/RunShow/components/RunDetail/index';\nimport ShowCase from './ShowCase';\n\nconst propTypes = {\n type: PropTypes.string,\n name: PropTypes.string,\n startDate: PropTypes.string,\n endDate: PropTypes.string,\n description: PropTypes.string,\n run: runPropTypes.isRequired,\n runType: PropTypes.string.isRequired,\n runId: PropTypes.number.isRequired,\n jobIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n isShare: PropTypes.bool,\n orderType: PropTypes.string,\n ordersAccessTokens: PropTypes.shape({})\n};\n\nconst defaultProps = {\n type: '',\n name: '',\n startDate: '',\n endDate: '',\n description: '',\n isShare: false,\n orderType: '',\n ordersAccessTokens: {}\n};\n\nconst Summary = ({\n type, name, startDate, endDate, description, runType, runId,\n jobIds, run, isShare, orderType,\n ordersAccessTokens\n}) => {\n return (\n \n <>\n {isShare && }\n \n \n \n );\n};\n\nSummary.defaultProps = defaultProps;\nSummary.propTypes = propTypes;\nexport default withErrorBoundary(Summary);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n filteredTitles: PropTypes.arrayOf(PropTypes.string),\n onHandleFilteredTitles: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n filteredTitles: []\n};\n\nconst FilteredTitles = ({ filteredTitles, onHandleFilteredTitles }) => {\n const renderFilteredTitle = (title, key) => {\n return (\n
    \n \n {title}\n onHandleFilteredTitles(\n _.filter(filteredTitles, (filteredTitle) => filteredTitle !== title)\n )}\n >\n cancel\n \n \n
    \n );\n };\n\n const renderClearAll = () => {\n return (\n onHandleFilteredTitles([])}\n >\n Clear all\n \n );\n };\n\n return (\n
    \n {!_.isEmpty(filteredTitles) && renderClearAll()}\n {_.map(filteredTitles, renderFilteredTitle)}\n
    \n );\n};\n\nFilteredTitles.propTypes = propTypes;\nFilteredTitles.defaultProps = defaultProps;\n\nexport default FilteredTitles;\n","export const videoLanguages = [\n { id: 'english', label: 'English' },\n { id: 'hindi', label: 'Hindi' },\n { id: 'malayalam', label: 'Malayalam' },\n { id: 'tamil', label: 'Tamil' },\n { id: 'telugu', label: 'Telugu' }\n];\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { videoLanguages } from '../config';\n\nconst propTypes = {\n activeLanguage: PropTypes.string.isRequired,\n onChangeLanguage: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst LanguageTab = ({ activeLanguage, onChangeLanguage }) => {\n const renderLanguage = (language, key) => {\n const { id, label } = language;\n const navLinkClassName = classNames('nav-link', { active: activeLanguage === id });\n\n return (\n
  • \n onChangeLanguage(id)}\n >\n {label}\n \n
  • \n );\n };\n\n return (\n
    \n
      \n {_.map(videoLanguages, renderLanguage)}\n
    \n
    \n );\n};\n\nLanguageTab.propTypes = propTypes;\nLanguageTab.defaultProps = defaultProps;\n\nexport default LanguageTab;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport Modal from 'common/components/ModalComponent';\n\nconst propTypes = {\n videos: PropTypes.arrayOf(PropTypes.shape({})),\n selectedVideoId: PropTypes.number\n};\n\nconst defaultProps = { videos: [], selectedVideoId: 0 };\n\nconst VIDEO_SUBSTRING_ID = 17;\n\nconst VideosDetails = ({ videos, selectedVideoId }) => {\n const [currentVideoDetails, setCurrentVideoDetails] = useState({});\n\n useEffect(() => {\n const selectedVideo = _.find(videos, { id: selectedVideoId });\n\n if (!_.isEmpty(selectedVideo)) {\n const { title, video_link: videoLink, id } = selectedVideo;\n const videoUniqId = videoLink.substring(VIDEO_SUBSTRING_ID);\n const alteredLink = `https://www.youtube.com/embed/${videoUniqId}`;\n setCurrentVideoDetails({ title, videoLink: alteredLink, id });\n }\n }, [videos]);\n\n const renderVideoImage = (id, videoUniqId, title, alteredLink) => {\n return (\n setCurrentVideoDetails({ title, videoLink: alteredLink, id })}\n >\n
    \n play_arrow\n
    \n \n
    \n );\n };\n\n const renderVideoModal = () => {\n if (!_.keys(currentVideoDetails).length) return null;\n\n const { title, videoLink, id } = currentVideoDetails;\n window.history.pushState(null, '', `/learningvideos/${id}`);\n\n return (\n {\n window.history.pushState(null, '', '/learningvideos/');\n setCurrentVideoDetails({});\n }}\n title={title}\n className=\"video-modal\"\n size=\"lg\"\n >\n \n \n );\n };\n\n const renderVideoDetails = (title, createdAt) => {\n return (\n <>\n
    \n \n {title}\n \n
    \n
    \n
    \n \n calendar_month\n \n {moment(createdAt).fromNow()}\n
    \n
    \n \n );\n };\n\n const renderVideo = (video, key) => {\n const {\n video_link: videoLink, title, created_at: createdAt, id\n } = video;\n const videoUniqId = videoLink.substring(VIDEO_SUBSTRING_ID);\n const alteredLink = `https://www.youtube.com/embed/${videoUniqId}`;\n\n return (\n
    \n
    \n {/* Video Image */}\n {renderVideoImage(id, videoUniqId, title, alteredLink)}\n {/* Video title and time */}\n {renderVideoDetails(title, createdAt)}\n
    \n
    \n );\n };\n\n return (\n
    \n \n
    \n {_.isEmpty(videos)\n ? (\n
    \n \n No Videos\n
    \n ) : _.map(videos, renderVideo)}\n {renderVideoModal()}\n
    \n
    \n
    \n );\n};\n\nVideosDetails.propTypes = propTypes;\nVideosDetails.defaultProps = defaultProps;\n\nexport default VideosDetails;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n filteredVideos: PropTypes.arrayOf(PropTypes.shape({})),\n filteredTitles: PropTypes.arrayOf(PropTypes.string),\n onHandleFilteredTitles: PropTypes.func.isRequired\n};\nconst defaultProps = { filteredVideos: [], filteredTitles: [] };\n\nconst VideoTitleOptionsAndSeachBar = ({ filteredVideos, filteredTitles, onHandleFilteredTitles }) => {\n const [currentSearchTitle, setCurrentSearchTitle] = useState('');\n const oneIndentation = ' ';\n const filteredTitleBasedOnUserSearch = _.filter(filteredVideos, (\n { title } // filter title in videos array.,, based on user search\n ) => title.toLowerCase().indexOf(currentSearchTitle.toLowerCase()) !== -1);\n\n const isTitleAlreadyFiltered = (title) => {\n return !_.find(filteredTitles, (filteredTitle) => filteredTitle === title);\n };\n\n const renderTitle = (video, key) => {\n const { title } = video;\n\n return (\n { // checked title is already in filteredTitles..\n if (isTitleAlreadyFiltered(title)) onHandleFilteredTitles([...filteredTitles, title]);\n }}\n >\n {title}\n \n );\n };\n\n const renderSeachBar = () => {\n return (\n
    \n
    \n \n search\n \n
    \n {\n const { target: { value } } = event;\n setCurrentSearchTitle(value);\n }}\n aria-describedby=\"basic-addon1\"\n />\n
    \n );\n };\n\n const renderTitles = () => {\n return (\n
    \n {_.isEmpty(filteredTitleBasedOnUserSearch)\n ?
    No results found...
    \n : _.map(filteredTitleBasedOnUserSearch, renderTitle)}\n
    \n );\n };\n\n const renderFilterButton = () => {\n return (\n \n \n filter_list\n \n {oneIndentation}\n Videos Filters\n \n );\n };\n\n return (\n
    \n\n {/* Mobile View */}\n
    \n {renderFilterButton()}\n\n
    \n {renderSeachBar()}\n {renderTitles()}\n
    \n
    \n\n {/* Web View */}\n
    \n {renderSeachBar()}\n {renderTitles()}\n
    \n\n
    \n );\n};\n\nVideoTitleOptionsAndSeachBar.propTypes = propTypes;\nVideoTitleOptionsAndSeachBar.defaultProps = defaultProps;\n\nexport default VideoTitleOptionsAndSeachBar;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport FilteredTitles from './Components/FilteredTitles';\nimport LanguageTab from './Components/LanguageTab';\nimport VideosDetails from './Components/VideosDetails';\nimport VideoTitleOptionsAndSeachBar from './Components/VideoTitleOptionsAndSeachBar';\n\nconst propTypes = {\n videos: PropTypes.arrayOf(PropTypes.shape({})),\n selectedVideoId: PropTypes.number\n};\n\nconst defaultProps = { videos: [], selectedVideoId: 0 };\n\nconst DEFAULT_LANGUAGE = 'english';\n\nconst VideoPage = ({ videos, selectedVideoId }) => {\n const selectedVideo = _.find(videos, { id: selectedVideoId });\n const selectedLanguage = selectedVideo ? selectedVideo.language : DEFAULT_LANGUAGE;\n\n const [activeLanguage, setActiveLanguage] = useState(selectedLanguage);\n const [filteredVideos, setFilteredVideos] = useState([]);\n const [filteredTitles, setFilteredTitles] = useState([]);\n const languageBasedVideos = _.filter(videos, ({ language }) => language === activeLanguage);\n\n useEffect(() => {\n const filterTitleBasedVideos = _.chain(filteredTitles)\n .map((filteredTitle) => {\n return _.find(languageBasedVideos, ({ title }) => title === filteredTitle);\n }).compact().value();\n\n setFilteredVideos(_.isEmpty(filteredTitles) ? languageBasedVideos : filterTitleBasedVideos);\n }, [activeLanguage, videos, filteredTitles]);\n\n return (\n
    \n
    \n \n\n \n\n
    \n \n \n
    \n\n
    \n
    \n );\n};\n\nVideoPage.propTypes = propTypes;\nVideoPage.defaultProps = defaultProps;\n\nexport default VideoPage;\n","import wrappedFetch from './base';\n\nexport const onCreateNewCallbackRequest = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/callback_requests.json', config);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useFormContext } from 'react-hook-form';\nimport classNames from 'classnames';\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n onUpdate: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n type: PropTypes.string,\n isTextArea: PropTypes.bool\n};\n\nconst defaultProps = { type: 'string', isTextArea: false };\n\nconst HelpLineInput = ({\n name, value, onUpdate, label, type, isTextArea\n}) => {\n const { errors, register } = useFormContext();\n const mailformat = '[a-zA-Z0-9._%+-]+@[a-z0-9.-]+.[a-zA-Z]{2,4}';\n\n const validatorConfig = {\n validate: (result) => {\n if (!result) return `Please type an ${name}`;\n if (result && name === 'email') {\n return !value.match(mailformat) ? 'Please type an valid email *' : null;\n }\n\n return null;\n }\n };\n\n const validatorProps = { ref: register(validatorConfig) };\n\n const inputClassName = classNames('form-control form-control-sm');\n\n return (\n <>\n \n {isTextArea ? (\n {\n onUpdate(event.target.value);\n }}\n />\n ) : (\n {\n const { target: { value: targetValue } } = event;\n onUpdate(targetValue);\n }}\n />\n )}\n \n \n );\n};\n\nHelpLineInput.propTypes = propTypes;\nHelpLineInput.defaultProps = defaultProps;\n\nexport default HelpLineInput;\n","import _ from 'lodash';\nimport { onCreateNewCallbackRequest } from 'common/api/callbackRequest';\nimport HoverMessage from 'common/components/HoverMessage';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { userPropTypes } from 'common/propTypes';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactHtmlParser from 'react-html-parser';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { languageOptions } from './config';\nimport HelpLineInput from './HelpLineInput';\nimport { isStrategyDomainUser } from '../applicationDomainHelper';\n\nconst propTypes = { currentUser: userPropTypes };\n\nconst defaultProps = { currentUser: {} };\n\nlet messageContent = '
    Need Help?
    ';\nmessageContent += '

    Please give a call back request, we will get back to you

    ';\n\nconst HelpLine = ({ currentUser }) => {\n const pathname = _.get(window, 'location.pathname', '');\n if (pathname === '/advanced_analytics') return null;\n\n const userPhoneNumber = _.get(currentUser, 'phone_number', '');\n\n if (_.isEmpty(currentUser)) return null;\n\n const methods = useForm();\n\n const [isShow, setIsShow] = useState(false);\n const [phoneNumber, setPhoneNumber] = useState(userPhoneNumber || '');\n const [email, setEmail] = useState('');\n const [description, setDescription] = useState('');\n const [language, setLanguage] = useState('english');\n const [isOpenToolTip, setIsOpenToolTip] = useState(true);\n const callbackRef = useRef(false);\n const { applicationDomain } = window;\n const isCallBackRequestAllowed = (\n !isStrategyDomainUser()\n || _.get(applicationDomain, 'config.callback_request_allowed', false)\n );\n\n if (!isCallBackRequestAllowed) return null;\n\n const handleDocumentClick = (event) => {\n const isClicked = callbackRef.current.contains(event.target);\n const isPopUpOpen = document.getElementsByClassName('pop-up').length;\n if (!isClicked && isPopUpOpen === 1) return setIsShow(false);\n\n return null;\n };\n\n useEffect(() => {\n document.addEventListener('click', handleDocumentClick, true);\n setTimeout(() => { setIsOpenToolTip(false); }, 3000);\n\n return () => { document.removeEventListener('click', handleDocumentClick, true); };\n }, []);\n\n const onSendDetails = () => {\n onCreateNewCallbackRequest({\n phone_number: phoneNumber, description, language, email, user_id: currentUser.id\n })\n .then(() => {\n reactToastify('Request has been sent, we will get back you soon');\n }).catch(() => {\n reactToastify('There will be some problem, please try again later', TOASTIFY_TYPES.ERROR);\n });\n\n setIsShow(!isShow);\n setDescription('');\n setEmail('');\n\n return null;\n };\n\n const renderCallBackDetails = () => {\n return (\n \n
    \n { setIsShow(!isShow); }}\n />\n\n
    \n
    \n );\n };\n\n if (isShow) return renderCallBackDetails();\n\n return (\n \n {renderCallBackDetails()}\n \n );\n};\n\nHelpLine.defaultProps = defaultProps;\nHelpLine.propTypes = propTypes;\n\nexport default withErrorBoundary(HelpLine);\n","import axios from 'axios';\n\nexport const updateSiteConfig = (name, config) => {\n return axios({\n method: 'post',\n url: '/active_admin/meeting/save',\n data: JSON.stringify({ config, name }),\n headers: { 'Content-Type': 'application/json' }\n }).then(() => {});\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport TimeSelector from 'common/components/TimeSelector';\nimport { getMeetStatus } from './helper';\n\nconst propTypes = {\n config: PropTypes.shape({\n date: PropTypes.string.isRequired,\n startTime: PropTypes.string.isRequired,\n endTime: PropTypes.string.isRequired,\n meetLink: PropTypes.string.isRequired,\n meetingType: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired\n }).isRequired,\n onDeleteMeetConfig: PropTypes.func.isRequired,\n onHandleChange: PropTypes.func.isRequired,\n keyIndex: PropTypes.number.isRequired\n};\n\nconst defaultProps = {};\n\nconst Details = ({\n config, onDeleteMeetConfig, onHandleChange, keyIndex\n}) => {\n const oneIndentation = ' ';\n const {\n date, startTime, endTime, meetLink, meetingType, title\n } = config;\n\n const { status, label } = getMeetStatus(date, startTime, endTime);\n\n return (\n
    \n \n onHandleChange('date', event.target.value, keyIndex)}\n />\n\n \n {\n onHandleChange('startTime', newTime, keyIndex);\n }}\n selectedTime={startTime}\n />\n \n\n \n {\n onHandleChange('endTime', newTime, keyIndex);\n }}\n selectedTime={endTime}\n />\n \n \n onHandleChange('meetingType', event.target.value, keyIndex)}\n >\n \n \n \n \n\n \n \n onHandleChange('meetLink', event.target.value, keyIndex)}\n />\n \n \n onHandleChange('title', event.target.value, keyIndex)}\n />\n\n {meetLink\n && (\n \n Join\n {oneIndentation}\n {meetingType}\n \n )}\n\n {status && (\n <>\n \n \n \n )}\n\n \n onDeleteMeetConfig(keyIndex)}\n >\n delete_forever\n \n
    \n );\n};\n\nDetails.propTypes = propTypes;\nDetails.defaultProps = defaultProps;\n\nexport default Details;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Details from './Details';\n\nconst propTypes = {\n meetconfigs: PropTypes.arrayOf(PropTypes.shape({})),\n onDeleteMeetConfig: PropTypes.func.isRequired,\n onHandleChange: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n meetconfigs: []\n};\n\nconst MeetingDetails = ({ meetconfigs, onDeleteMeetConfig, onHandleChange }) => {\n const renderMeet = (meetconfig, key) => {\n return (\n
    \n \n
    \n );\n };\n\n return (\n
    \n

    Meeting Details

    \n {_.map(meetconfigs, renderMeet)}\n
    \n );\n};\n\nMeetingDetails.propTypes = propTypes;\nMeetingDetails.defaultProps = defaultProps;\n\nexport default MeetingDetails;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { updateSiteConfig } from 'common/api/siteConfig';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport { reactToastify } from 'common/utils/reactToastify';\nimport MeetingDetails from './MeetingDetails';\n\nconst propTypes = {\n googleMeetConfig: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = {\n googleMeetConfig: []\n};\n\nexport const defaultConfig = {\n date: '',\n startTime: '',\n endTime: '',\n meetLink: '',\n meetingType: 'googleMeet',\n title: ''\n};\n\nconst Meeting = ({ googleMeetConfig }) => {\n const [meetconfigs, setMeetConfigs] = useState(googleMeetConfig);\n\n const onDeleteMeetConfig = (deletekey) => {\n const newMeetConfig = _.filter(meetconfigs,\n (meetconfig, key) => (deletekey !== key));\n setMeetConfigs(newMeetConfig);\n };\n\n const onAddNewMeetConfig = () => {\n const updateConfig = [defaultConfig, ...meetconfigs];\n setMeetConfigs(updateConfig);\n };\n\n const onHandleChange = (name, value, updateKey) => {\n const newMeetConfig = _.map(meetconfigs,\n (meetconfig, key) => (updateKey === key ? { ...meetconfig, [name]: value } : meetconfig));\n setMeetConfigs(newMeetConfig);\n };\n\n const updateSiteConfigDetails = () => {\n updateSiteConfig('meeting_config', meetconfigs);\n reactToastify('Updated Site Config Details');\n };\n\n return (\n <>\n onAddNewMeetConfig()}\n >\n Add New Meeting\n \n onHandleChange(name, value, updateKey)}\n onDeleteMeetConfig={(deletekey) => onDeleteMeetConfig(deletekey)}\n />\n\n updateSiteConfigDetails()}\n >\n Update Meeting Details\n \n \n );\n};\n\nMeeting.propTypes = propTypes;\nMeeting.defaultProps = defaultProps;\n\nexport default withErrorBoundary(Meeting);\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { defaultFilterConfig } from '../../config';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({}).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n onUpdateModal: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst FilterHeader = ({ onUpdateFilterConfigs, filterConfigs, onUpdateModal }) => {\n const oneIndentation = ' ';\n const [count, setCount] = useState(0);\n\n useEffect(() => {\n let alteredCount = 0;\n _.each(filterConfigs, (filterConfig) => {\n alteredCount += _.size(filterConfig);\n });\n\n setCount(alteredCount);\n }, [filterConfigs]);\n\n return (\n
    \n onUpdateModal()}\n >\n
    \n filter_list\n {oneIndentation}\n Filter\n {count || null}\n {oneIndentation}\n
    \n \n\n
    \n filter_list\n {oneIndentation}\n Filter\n {count || null}\n {oneIndentation}\n
    \n \n Clear All\n \n
    \n );\n};\n\nFilterHeader.propTypes = propTypes;\nFilterHeader.defaultProps = defaultProps;\n\nexport default FilterHeader;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { SEGMENT_NAMES } from 'common/constants/index';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n segments: PropTypes.arrayOf(PropTypes.string.isRequired)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst SegmentFilter = ({ filterConfigs, onUpdateFilterConfigs }) => {\n const { segments } = filterConfigs;\n\n const renderOptions = (option, idx) => {\n const { value, displayName } = option;\n const onHandleSegments = () => {\n if (_.includes(segments, value)) {\n return _.filter(segments, (segment) => segment !== value);\n }\n\n return [...segments, value];\n };\n\n return (\n
    \n {}}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n segments: onHandleSegments()\n })}\n />\n \n
    \n );\n };\n\n return (\n
    \n
    Segment
    \n
    \n {_.map(SEGMENT_NAMES, renderOptions)}\n
    \n
    \n );\n};\n\nSegmentFilter.propTypes = propTypes;\nSegmentFilter.defaultProps = defaultProps;\n\nexport default SegmentFilter;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { marginFilterConfig } from 'ui/Strategies/config';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n margins: PropTypes.arrayOf(PropTypes.number)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst MarginFilter = ({ filterConfigs, onUpdateFilterConfigs }) => {\n const { margins } = filterConfigs;\n\n const renderOption = (option, idx) => {\n const { label, value } = option;\n const onHandleMargin = () => {\n if (_.includes(margins, value)) {\n return _.filter(margins, (margin) => margin !== value);\n }\n\n return [...margins, value];\n };\n\n return (\n
    \n {}}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n margins: onHandleMargin()\n })}\n />\n \n
    \n );\n };\n\n return (\n
    \n {/*
    Margin Required (Approx)
    */}\n
    \n {_.map(marginFilterConfig, renderOption)}\n
    \n
    \n );\n};\n\nMarginFilter.propTypes = propTypes;\nMarginFilter.defaultProps = defaultProps;\n\nexport default MarginFilter;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getInstrumentOptions } from 'ui/Strategies/helper';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n instruments: PropTypes.arrayOf(PropTypes.string)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst InstrumentFilter = ({ strategies, filterConfigs, onUpdateFilterConfigs }) => {\n const { instruments } = filterConfigs;\n const instrumentOptions = getInstrumentOptions(strategies);\n\n const renderInstrumentOption = (instrument, idx) => {\n const onHandleInstrument = () => {\n if (_.includes(instruments, instrument)) {\n return _.filter(instruments, (value) => value !== instrument);\n }\n\n return [...instruments, instrument];\n };\n\n return (\n
    \n { }}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n instruments: onHandleInstrument()\n })}\n />\n \n
    \n );\n };\n return _.isEmpty(instrumentOptions) ? null : (\n
    \n
    Instruments
    \n
    \n {_.map(instrumentOptions, renderInstrumentOption)}\n
    \n
    \n );\n};\n\nInstrumentFilter.propTypes = propTypes;\nInstrumentFilter.defaultProps = defaultProps;\n\nexport default InstrumentFilter;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { tagsconfig } from 'ui/Strategies/config';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n tags: PropTypes.arrayOf(PropTypes.string)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst TagFilter = ({ filterConfigs, onUpdateFilterConfigs }) => {\n const { tags } = filterConfigs;\n const options = _.keys(tagsconfig);\n\n const renderTagOptions = (tag, idx) => {\n const onHandleInstrument = () => {\n if (_.includes(tags, tag)) {\n return _.filter(tags, (value) => value !== tag);\n }\n\n return [...tags, tag];\n };\n\n return (\n
    \n { }}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n tags: onHandleInstrument()\n })}\n />\n \n
    \n );\n };\n return _.isEmpty(options) ? null : (\n
    \n
    Category
    \n
    \n {_.map(options, renderTagOptions)}\n
    \n
    \n );\n};\n\nTagFilter.propTypes = propTypes;\nTagFilter.defaultProps = defaultProps;\n\nexport default TagFilter;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { tagsconfig } from 'ui/Strategies/config';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n premiums: PropTypes.arrayOf(PropTypes.bool)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst PremiumFilter = ({ filterConfigs, onUpdateFilterConfigs }) => {\n const { premiums } = filterConfigs;\n const options = _.keys(tagsconfig);\n\n const renderOptions = ({ label, value }, idx) => {\n const onHandleOption = () => {\n if (_.includes(premiums, value)) {\n return _.filter(premiums, (p) => p !== value);\n }\n\n return [...premiums, value];\n };\n\n return (\n
    \n { }}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n premiums: onHandleOption()\n })}\n />\n \n
    \n );\n };\n\n return _.isEmpty(options) ? null : (\n
    \n
    Premium
    \n
    \n {_.map(\n [{ label: 'Premium Strategy', value: true }, { label: 'Non Premium Strategy', value: false }\n ], renderOptions\n )}\n
    \n
    \n );\n};\n\nPremiumFilter.propTypes = propTypes;\nPremiumFilter.defaultProps = defaultProps;\n\nexport default PremiumFilter;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({\n authorNames: PropTypes.arrayOf(PropTypes.string)\n }).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst AuthorNameFilter = ({ strategies, filterConfigs, onUpdateFilterConfigs }) => {\n const { authorNames } = filterConfigs;\n const options = _.chain(strategies)\n .map(({ author_name: authorName }) => (authorName || '')).compact().uniq()\n .value();\n\n const renderAuthorName = (authorName, idx) => {\n const onHandleAuthorNames = () => {\n if (_.includes(authorNames, authorName)) {\n return _.filter(authorNames, (value) => value !== authorName);\n }\n\n return [...authorNames, authorName];\n };\n\n return (\n
    \n { }}\n onClick={() => onUpdateFilterConfigs({\n ...filterConfigs,\n authorNames: onHandleAuthorNames()\n })}\n />\n \n
    \n );\n };\n return _.isEmpty(options) ? null : (\n
    \n
    Authors
    \n
    \n {_.map(options, renderAuthorName)}\n
    \n
    \n );\n};\n\nAuthorNameFilter.propTypes = propTypes;\nAuthorNameFilter.defaultProps = defaultProps;\n\nexport default AuthorNameFilter;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { defaultFilterConfig } from 'ui/Strategies/config';\nimport Modal from 'common/components/ModalComponent';\nimport ArrowAccordion from 'common/components/ArrowAccordion';\nimport FilterHeader from './FilterHeader';\n// import PurchaseFilter from './PurchaseFilter';\nimport SegmentFilter from './SegmentFilter';\nimport MarginFilter from './MarginFilter';\n// import CategoryFilter from './CategoryFilter';\nimport InstrumentFilter from './InstrumentFilter';\nimport TagFilter from './TagFilter';\nimport PremiumFilter from './PremiumFilter';\nimport AuthorNameFilter from './AuthorNameFilter';\n// import PurchaseAmountFilter from './PurchaseAmountFilter';\n\nconst propTypes = {\n filterConfigs: PropTypes.shape({}).isRequired,\n onUpdateFilterConfigs: PropTypes.func.isRequired,\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst StrategyFilters = ({ filterConfigs, onUpdateFilterConfigs, strategies }) => {\n const [showModal, setShowModal] = useState(false);\n\n const structuredFilters = [\n // {\n // title: 'Purchase Filters',\n // isOpen: true,\n // showItem: (\n // <>\n // \n // \n // {/* */}\n // \n // )\n // },\n {\n title: 'Margin (Funds Required)',\n isOpen: true,\n showItem: \n },\n {\n title: 'Category',\n isOpen: true,\n showItem: (\n <>\n \n \n \n \n )\n },\n {\n title: 'Segments & Instruments',\n isOpen: false,\n showItem: (\n <>\n \n \n \n )\n }\n ];\n\n const renderStructedFilters = (structedFilter, idx) => {\n const { title, isOpen, showItem } = structedFilter;\n\n return (\n { }}\n >\n {showItem}\n \n );\n };\n\n const renderFilters = () => {\n return
    {_.map(structuredFilters, renderStructedFilters)}
    ;\n };\n\n let modalProps = { title: 'Filter', size: 'lg' };\n if (!_.isMatch(defaultFilterConfig, filterConfigs)) {\n modalProps = { ...modalProps, okBtnTitle: 'Done', onSave: () => setShowModal(false) };\n }\n\n return (\n <>\n onUpdateFilterConfigs(defaultFilterConfig)}\n onUpdateModal={() => setShowModal(!showModal)}\n />\n\n
    {renderFilters()}
    \n\n {showModal && (\n setShowModal(false)}\n className=\"market-place-filter\"\n {...modalProps}\n >\n {renderFilters()}\n \n )}\n \n );\n};\n\nStrategyFilters.propTypes = propTypes;\nStrategyFilters.defaultProps = defaultProps;\n\nexport default StrategyFilters;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n currentActiveStrategyType: PropTypes.string.isRequired,\n onhandleCurrentActiveStrategyType: PropTypes.func.isRequired,\n typesOfStrategies: PropTypes.shape({}).isRequired,\n onResetPageIndex: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst StrategiesFilterNavTab = ({\n currentActiveStrategyType, onhandleCurrentActiveStrategyType, typesOfStrategies, onResetPageIndex\n}) => {\n const types = [\n { id: 'all', label: 'All Strategy' },\n { id: 'deployed', label: 'Deployed' },\n { id: 'paid', label: 'Subscribed' },\n { id: 'own', label: 'Own Strategies' }\n ];\n\n const renderTypes = (language, key) => {\n const { id, label } = language;\n const navLinkClassName = classNames('nav-link', { active: id === currentActiveStrategyType });\n const count = _.size(_.get(typesOfStrategies, id, []));\n if (!count) return null;\n\n return (\n
  • \n {\n onhandleCurrentActiveStrategyType(id);\n onResetPageIndex();\n }}\n >\n {label}\n {count}\n \n
  • \n );\n };\n\n return
      {_.map(types, renderTypes)}
    ;\n};\n\nStrategiesFilterNavTab.propTypes = propTypes;\nStrategiesFilterNavTab.defaultProps = defaultProps;\n\nexport default StrategiesFilterNavTab;\n","import _ from 'lodash';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport React from 'react';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst StrategyBanner = () => {\n const urlParams = getUrlParams();\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n if (isMinifiedPage) return
    ;\n\n return (\n
    \n
    \n

    Sample Strategies

    \n

    \n Explore a world of trading strategies, where you choose and deploy\n from professionally curated strategies.\n

    \n { window.location.href = '/strategies'; }}\n >\n arrow_back\n Go to Strategies\n \n
    \n
    \n );\n};\n\nStrategyBanner.propTypes = propTypes;\nStrategyBanner.defaultProps = defaultProps;\n\nexport default StrategyBanner;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { userPropTypes } from 'common/propTypes';\nimport { automaticSupportedBrokers, availableBrokers } from 'common/brokerConfigs/config';\nimport Modal from 'common/components/ModalComponent';\nimport { getLocalStorage, setLocalStorage } from 'common/utils/localstorage';\n\nconst propTypes = { currentUser: userPropTypes };\nconst defaultProps = { currentUser: null };\n\nconst TIME_RANGE = 120;\nconst LOCAL_STORAGE_KEY = 'market_place_not_supported_message';\n\nconst StrategyErrorMessage = ({ currentUser }) => {\n const { isUserSignedIn } = window;\n const [isOpen, setIsOpen] = useState(false);\n const broker = _.get(currentUser, 'broker', '');\n const oneIndentation = ' ';\n const isShowModal = !_.includes(automaticSupportedBrokers, broker) && isUserSignedIn && isOpen;\n\n const handleOpenModal = () => {\n setIsOpen(true);\n setLocalStorage(LOCAL_STORAGE_KEY, new Date());\n };\n\n useEffect(() => {\n const localStorageTime = getLocalStorage(LOCAL_STORAGE_KEY);\n if (localStorageTime) {\n const updatedTime = new Date();\n updatedTime.setTime(new Date(localStorageTime).getTime() + (TIME_RANGE * 60 * 1000));\n if (new Date() > updatedTime) { handleOpenModal(); }\n } else { handleOpenModal(); }\n }, []);\n\n if (!isShowModal) return null;\n\n let content = '';\n if (!broker) {\n content = 'For broker integration and order execution,you need to login via your broker account in';\n content += 'QuantMan. You are logged in using your email/facebook/twitter. ';\n content += 'So, you cannot execute orders in QuantMan.';\n } else {\n content = 'For automatic order execution, you need to login via your automatic supported broker';\n content += ` account in QuantMan. you are logged in using your \n ${availableBrokers[broker] ? availableBrokers[broker] : broker} account, which is not`;\n content += ' supported for market place';\n }\n\n return (\n setIsOpen(false)}>\n
    \n

    \n Your account is not supported for\n {oneIndentation}\n Sample Strategies\n

    \n \"user-alert\"\n

    {content}

    \n setIsOpen(false)}\n className=\"btn btn-outline-primary btn-pill my-3\"\n >\n Continue browsing\n \n
    \n
    \n );\n};\n\nStrategyErrorMessage.propTypes = propTypes;\nStrategyErrorMessage.defaultProps = defaultProps;\n\nexport default StrategyErrorMessage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Pagination from 'common/components/Pagination';\n\nconst propTypes = {\n strategies: PropTypes.arrayOf(PropTypes.shape({})),\n handleCurrentPageIndex: PropTypes.func.isRequired,\n strategiesPerPage: PropTypes.number.isRequired,\n currentPageIndex: PropTypes.number.isRequired\n};\nconst defaultProps = { strategies: [] };\n\nconst StrategieFooter = ({\n strategies, handleCurrentPageIndex, strategiesPerPage, currentPageIndex\n}) => {\n const totalStrategies = strategies.length;\n const totalPages = totalStrategies / strategiesPerPage;\n const isShowPagination = totalStrategies > strategiesPerPage;\n if (!isShowPagination) return null;\n\n return (\n
    \n { handleCurrentPageIndex(selectedPage); }}\n currentPageIndex={currentPageIndex}\n />\n
    \n );\n};\n\nStrategieFooter.propTypes = propTypes;\nStrategieFooter.defaultProps = defaultProps;\n\nexport default StrategieFooter;\n","import _ from 'lodash';\nimport React, { useEffect, useRef, useState } from 'react';\nimport fetchStrategies from 'common/api/strategies';\nimport PropTypes from 'prop-types';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport { userPropTypes } from 'common/propTypes';\nimport { getUrlParams, updateUrlQueryParams } from 'common/utils/urlUtils';\nimport { deepLinkFilter } from 'ui/FolderList/helper';\nimport StrategyCard from './components/StrategyCard/index';\nimport { getDisplayStrategies, getFilteredStrategies } from './helper';\nimport { defaultFilterConfig } from './config';\nimport StrategyFilters from './components/StrategyFilters/index';\nimport StrategiesFilterNavTab from './components/StrategiesFilterNavTab';\nimport StrategyBanner from './components/StrategyBanner';\nimport StrategyErrorMessage from './components/StrategyErrorMessage';\nimport StrategieFooter from './StrategieFooter';\n\nconst propTypes = { currentUserDefaultFolderId: PropTypes.number, currentUser: userPropTypes };\n\nconst defaultProps = { currentUserDefaultFolderId: null, currentUser: null };\n\nconst INITIAL_PAGE_NO = 0;\nconst STRATEGIES_PER_PAGE = 10;\n\nconst Strategies = ({ currentUserDefaultFolderId, currentUser }) => {\n const [typesOfStrategies, setTypesOfStrategies] = useState({\n all: [], paid: [], deployed: [], own: []\n });\n const urlParams = getUrlParams();\n const [currentActiveStrategyType, setCurrentActiveStrategyType] = useState(deepLinkFilter());\n const [isLoading, setIsLoading] = useState(true);\n const pg = _.get(urlParams, 'pg', '');\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n const [filterConfigs, setFilterConfigs] = useState(defaultFilterConfig);\n const currentUserId = _.get(currentUser, 'id', null);\n const strategies = _.get(typesOfStrategies, currentActiveStrategyType, []);\n const filteredStrategies = getFilteredStrategies(strategies, filterConfigs);\n const sortByPriority = (strategyArray) => _.sortBy(strategyArray, ['priority']);\n const [currentPageIndex, setCurrentPageIndex] = useState(\n Number(_.get(urlParams, 'currentPageIndex', INITIAL_PAGE_NO))\n );\n const isInitialLoad = useRef(true);\n const [strategiesPerPage, setStrategiesPerPage] = useState(STRATEGIES_PER_PAGE);\n const strategiesToDisplay = getDisplayStrategies(\n filteredStrategies, currentPageIndex, strategiesPerPage\n );\n const isShowEmptyStrategy = _.isEmpty(strategiesToDisplay) && !isLoading;\n\n const handleTypeOfStrategies = (results) => {\n setTypesOfStrategies({\n all: sortByPriority(results),\n paid: sortByPriority(_.filter(results,\n (result) => _.get(result, 'strategy_access.status', '') === 'paid')),\n deployed: sortByPriority(_.filter(results,\n (result) => _.get(result, 'strategy_access.is_deployed', false))),\n own: sortByPriority(_.filter(results, (result) => _.get(result, 'user_id', '') === currentUserId))\n });\n };\n\n useEffect(() => {\n updateUrlQueryParams('currentPageIndex', currentPageIndex, !!isMinifiedPage);\n }, [currentPageIndex]);\n\n useEffect(() => {\n if (isInitialLoad.current) {\n isInitialLoad.current = false;\n } else { setCurrentPageIndex(INITIAL_PAGE_NO); }\n }, [filterConfigs]);\n\n useEffect(() => {\n fetchStrategies({\n params: {\n offsetStrategyId: 0,\n minifiedpage: isMinifiedPage ? 'true' : 'false',\n pg\n }\n })\n .then((results) => {\n handleTypeOfStrategies(results);\n setIsLoading(false);\n });\n }, []);\n\n useEffect(() => {\n updateUrlQueryParams('selectedFilter', currentActiveStrategyType, !!isMinifiedPage);\n }, [currentActiveStrategyType]);\n\n const renderStrategy = (strategy, idx) => {\n return (\n \n );\n };\n\n const renderClearFilterButton = () => {\n const isShowClearFilterButton = _.some(filterConfigs, (filterConfig) => _.size(filterConfig) !== 0);\n if (!isShowClearFilterButton) return null;\n\n return (\n { setFilterConfigs(defaultFilterConfig); }}\n className=\"btn btn-outline-secondary\"\n >\n Clear Filters\n \n );\n };\n\n const renderStrategyContainer = () => {\n if (!isShowEmptyStrategy) {\n return
    {_.map(strategiesToDisplay, renderStrategy)}
    ;\n }\n\n return (\n
    \n \"No\n
    \n No Strategies Available\n
    \n Try refining your search results or removing some filters\n
    \n {renderClearFilterButton()}\n
    \n );\n };\n\n const isMarketPlaceOnlyDomain = window.applicationDomain.config.type === 'marketplace-only';\n\n return (\n
    \n \n
    \n \n
    \n
    \n \n\n
    \n \n
    \n
    \n setCurrentPageIndex(INITIAL_PAGE_NO)}\n />\n
    \n
    \n\n {!_.isEmpty(filteredStrategies) && (\n
    \n
    \n \n {\n setStrategiesPerPage(event.target.value);\n setCurrentPageIndex(INITIAL_PAGE_NO);\n }}\n >\n \n \n \n \n
    \n
    \n )}\n\n {renderStrategyContainer()}\n {!isShowEmptyStrategy && (\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nStrategies.propTypes = propTypes;\nStrategies.defaultProps = defaultProps;\n\nexport default withErrorBoundary(Strategies);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n // strategyPropTypes,\n userPropTypes\n} from 'common/propTypes';\nimport RunDetail from 'ui/run/RunShow/components/RunDetail/index';\nimport TransactionDetail from 'ui/run/RunShow/components/TransactionDetail/index';\nimport RunTitleAndActions from 'ui/run/RunShow/components/RunTitleAndActions/index';\nimport CreditDetails from 'ui/run/RunShow/components/CreditDetails';\nimport { RUN_TYPES } from 'common/constants/index';\nimport OrderStore from 'ui/run/RunShow/OrderStore/index';\nimport moment from 'moment';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\n// import DeployStrategyButton from '../Strategy/DeployStrategyButton';\n\nconst propTypes = {\n deployedRunDetails: PropTypes.shape({}),\n currentUser: userPropTypes,\n marginAmount: PropTypes.number.isRequired,\n // strategy: strategyPropTypes.isRequired\n};\nconst defaultProps = {\n deployedRunDetails: {},\n currentUser: null\n};\n\nconst StrategyDeployedRunDetails = ({\n deployedRunDetails, currentUser, marginAmount,\n // strategy\n}) => {\n const deployedRun = _.get(deployedRunDetails, 'deployed_run', null);\n\n if (!deployedRun) {\n return (\n
    \n
    \n \"Strategy\n
    \n
    You have not deployed this strategy
    \n It will take new orders as when you deploy a strategy.\n
    \n {/* */}\n
    \n
    \n );\n }\n\n const deployedRunJobs = _.get(deployedRunDetails, 'deployed_run_jobs', []);\n const deployedRunJobIds = _.map(deployedRunJobs, 'id').sort();\n const deployedRunId = _.get(deployedRunJobs, '[0].run_id');\n\n const {\n run_type: runType,\n instrument_groups: instrumentGroups,\n order_type: orderType,\n created_at: createdAt,\n status,\n multiplier,\n summary\n } = deployedRun;\n const profit = _.get(summary, 'profit', 0);\n\n const renderRunButtons = () => {\n return (\n
    \n \n \n
    \n );\n };\n\n return (\n
    \n
    \n
    \n \n
    \n {moment(createdAt).format('ll')}\n
    \n
    \n
    \n \n
    {multiplier * marginAmount}
    \n
    \n
    \n \n
    {profit}
    \n
    \n\n
    \n \n
    {_.startCase(status)}
    \n
    \n
    \n \n
    {multiplier}
    \n
    \n
    \n\n \n
    \n \n {renderRunButtons()}\n\n \n
    \n \n
    \n );\n};\n\nStrategyDeployedRunDetails.propTypes = propTypes;\nStrategyDeployedRunDetails.defaultProps = defaultProps;\n\nexport default StrategyDeployedRunDetails;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\n// import MoneyDisplay from 'common/components/MoneyDisplay';\nimport { strategyPropTypes } from 'common/propTypes';\nimport OrderStore from 'ui/run/RunShow/OrderStore/index';\nimport RunSummary from 'modules/RunSummary/index';\nimport TransactionsAnalytics from 'modules/TransactionsAnalytics/index';\nimport { RUN_TYPES } from 'common/constants/index';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport classNames from 'classnames';\nimport { onCreateStrategyAccess, onUpdateStrategyAccess } from 'common/api/strategyAccess';\n// import ProfitableValues from '../StrategyCard/ProfitableValues';\n\nconst propTypes = { strategy: strategyPropTypes.isRequired };\n\nconst defaultProps = {};\n\nconst StrategyBacktestRunDetails = ({ strategy }) => {\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const [shouldShowBacktest, setShouldShowBacktest] = useState(\n _.get(strategyAccess, 'is_show_backtest', false)\n );\n const [isLoading, setIsLoading] = useState(false);\n\n const onCreateOrUpdateStrategyAccess = _.isEmpty(strategyAccess) ? onCreateStrategyAccess\n : onUpdateStrategyAccess;\n\n const { backtestJobs, id } = strategy;\n const strategyAccessId = _.get(strategyAccess, 'id', '');\n const oneIndentation = ' ';\n const backtestJobIds = _.map(backtestJobs, 'id').sort();\n const backtestRunId = _.get(backtestJobs, '[0].run_id');\n\n // const backtestProfit = _.get(strategy, 'backtest_run.summary.profit', 0);\n\n // const renderBacktestProfit = () => {\n // if (backtestProfit === 0) return null;\n\n // return (\n //
    \n //
    \n //
    \n //
    \n //
    Backtest Profit & Loss
    \n //
    \n // {backtestProfit}\n //
    \n //
    \n //
    \n //
    \n // );\n // };\n\n useEffect(() => { if (isLoading) { setTimeout(() => { setIsLoading(false); }, 5000); } }, [isLoading]);\n\n const onHandleClick = () => {\n onCreateOrUpdateStrategyAccess({\n id: strategyAccessId,\n strategyParams: { strategy_id: id, is_show_backtest: true }\n }).then(() => {\n setIsLoading(true);\n setShouldShowBacktest(true);\n }).catch(() => { });\n };\n\n const renderViewBacktestButton = () => {\n return (\n
    \n
    \n \"Run\n
    \n

    Backtest this strategy on your own

    \n onHandleClick()}\n data-toggle=\"tooltip\"\n >\n \n {oneIndentation}\n Run Backtest\n \n
    \n
    \n
    \n );\n };\n\n const renderBacktest = () => {\n if (!shouldShowBacktest) return renderViewBacktestButton();\n\n const strategyClassName = classNames('strategy-order-store', { 'mt-10': isLoading });\n\n return (\n \n
    \n {!isLoading && (\n \n
    \n \n \n
    \n \n )}\n
    \n
    \n );\n };\n\n return (\n
    \n {/*
    \n {renderBacktestProfit()}\n
    \n \n
    \n
    */}\n {renderBacktest()}\n {(shouldShowBacktest && !isLoading) && (\n
    \n Information : \n {oneIndentation}\n The past backtesting performance of the strategy is not necessarily indicative of future\n performance of the strategy and trading is subject to market risks. Backtest is based\n on minute by minute data(open / high / low / close), whereas in live deployments are based on\n second by second data. So there will be minor variation. Backtest results does not\n include\n {oneIndentation}\n brokerage charges/slippages\n {oneIndentation}\n that occur in actual order execution. It is just an\n indication about the performance of the strategy.\n
    \n )}\n\n
    \n );\n};\n\nStrategyBacktestRunDetails.propTypes = propTypes;\nStrategyBacktestRunDetails.defaultProps = defaultProps;\n\nexport default StrategyBacktestRunDetails;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport OrderStore from 'ui/run/RunShow/OrderStore/index';\nimport RunDetail from 'ui/run/RunShow/components/RunDetail/index';\nimport TransactionDetail from 'ui/run/RunShow/components/TransactionDetail/index';\nimport { RUN_TYPES } from 'common/constants/index';\nimport { strategyPropTypes, userPropTypes } from 'common/propTypes';\nimport PropTypes from 'prop-types';\nimport subscribeChannel from 'common/api/subscribeChannel';\nimport RunTitleAndActions from 'ui/run/RunShow/components/RunTitleAndActions/index';\n\nconst propTypes = {\n strategy: strategyPropTypes.isRequired,\n isAccordianOpen: PropTypes.bool,\n currentUser: userPropTypes\n};\nconst defaultProps = {\n isAccordianOpen: false,\n currentUser: null\n};\n\nconst StrategyLiveRunDetails = ({ strategy, isAccordianOpen, currentUser }) => {\n const { liveJobs, liveRun, is_manual_signals_allowed: isAllowManualSignals } = strategy;\n const liveJobIds = _.map(liveJobs, 'id').sort();\n const liveRunId = _.get(liveJobs, '[0].run_id');\n const { order_type: orderType } = liveRun;\n const jobId = _.head(liveJobIds);\n\n useEffect(() => {\n const socketConnection = {\n channelName: 'NotificationsChannel',\n roomId: `job_${jobId}`,\n onDataReceive: () => {\n setTimeout(() => { window.location.reload(); }, 1000);\n }\n };\n\n subscribeChannel(socketConnection);\n }, []);\n\n return (\n
    \n \n
    \n {!isAllowManualSignals && (\n \n )}\n \n \n
    \n \n
    \n );\n};\n\nStrategyLiveRunDetails.propTypes = propTypes;\nStrategyLiveRunDetails.defaultProps = defaultProps;\n\nexport default StrategyLiveRunDetails;\n","import React, { useEffect } from 'react';\nimport {\n useTable,\n useSortBy,\n useGlobalFilter,\n usePagination,\n} from 'react-table';\nimport PropTypes from 'prop-types';\nimport Pagination from 'common/components/Pagination';\n\nconst propTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\nconst defaultProps = {};\n\nconst ReactDataTable = ({ columns, data }) => {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n prepareRow,\n page,\n state: { globalFilter, pageIndex, pageSize },\n setGlobalFilter,\n pageCount,\n gotoPage,\n setPageSize,\n } = useTable(\n {\n columns,\n data,\n initialState: {\n pageIndex: 0,\n sortBy: [\n {\n id: 'transaction_id',\n desc: true,\n },\n ],\n },\n },\n useGlobalFilter,\n useSortBy,\n usePagination\n );\n\n useEffect(() => {\n setGlobalFilter(globalFilter);\n }, [globalFilter, setGlobalFilter]);\n\n const sortArrow = (column) => {\n if (column.isSorted) {\n const icon = column.isSortedDesc ? 'keyboard_arrow_down' : 'keyboard_arrow_up';\n return icon ? {icon} : '';\n }\n\n return '';\n };\n\n return (\n <>\n
    \n setGlobalFilter(e.target.value)}\n />\n
    \n
    \n \n \n {headerGroups.map((headerGroup, idx) => (\n \n {headerGroup.headers.map((column, idx) => (\n \n
    \n {column.render('Header')}\n {sortArrow(column)}\n
    \n \n ))}\n
    \n ))}\n \n \n {page.map((row, idx) => {\n prepareRow(row);\n\n return (\n \n {row.cells.map((cell, idx) => {\n return (\n \n );\n })}\n \n );\n })}\n \n
    {cell.render('Cell')}
    \n
    \n
    \n gotoPage(selectedPage)}\n currentPageIndex={pageIndex}\n />\n {' '}\n {\n setPageSize(Number(e.target.value));\n }}\n >\n {[10, 20, 30, 40, 50].map((currentPageSize) => (\n \n ))}\n \n
    \n \n );\n};\n\nexport default ReactDataTable;\n\nReactDataTable.propTypes = propTypes;\nReactDataTable.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport { onUpdateStrategyAccess } from 'common/api/strategyAccess';\nimport { STRATEGY_ACCESS_STATUS } from 'common/constants/index';\nimport moment from 'moment';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport ReactDataTable from 'common/components/ReactDataTable';\n\nconst propTypes = { strategyAccessDetails: PropTypes.arrayOf(PropTypes.shape({})) };\n\nconst defaultProps = { strategyAccessDetails: null };\n\nconst StrategyAccessDetails = ({ strategyAccessDetails: accessDetails }) => {\n if (_.isEmpty(accessDetails)) return null;\n\n const [strategyAccessDetails, setStrategyAccessDetails] = useState(accessDetails);\n\n const renderTitle = (userDetails) => {\n const { name, email, broker_client_email: brokerEmail } = userDetails;\n\n return
    {_.capitalize(name || email || brokerEmail)}
    ;\n };\n\n const onUpdateStatus = (id, status) => {\n onUpdateStrategyAccess({ id, strategyParams: { status } }).then(() => {\n const isPaid = status === STRATEGY_ACCESS_STATUS.PAID;\n const type = isPaid ? TOASTIFY_TYPES.SUCCESS : TOASTIFY_TYPES.ERROR;\n setStrategyAccessDetails(_.map(strategyAccessDetails, (strategyAccess) => {\n if (id === strategyAccess.id) { return { ...strategyAccess, status }; }\n return strategyAccess;\n }));\n return reactToastify(`${isPaid ? 'Approved' : 'Rejected'}`, type);\n }).catch(() => reactToastify('Something went wrong', TOASTIFY_TYPES.ERROR));\n };\n\n const getFormattedData = (strateyAccessDetail) => {\n const {\n user_details: userDetails, id, created_at: createdAt, status\n } = strateyAccessDetail;\n const { phone_number: phoneNumber, broker, broker_client_id: brokerClientId } = userDetails;\n const isAfter4PM = moment().isAfter(moment().hour(16).startOf('hour'));\n const isBefore8PM = moment().isBefore(moment().hour(8).startOf('hour'));\n const isAllowedRejectTime = isBefore8PM || isAfter4PM;\n\n const isShowApproveBtn = _.includes(\n [STRATEGY_ACCESS_STATUS.REQUESTED, STRATEGY_ACCESS_STATUS.REJECTED], status\n );\n const isShowRejectBtn = status !== STRATEGY_ACCESS_STATUS.REJECTED\n && (\n (status === STRATEGY_ACCESS_STATUS.PAID && isAllowedRejectTime)\n || status !== STRATEGY_ACCESS_STATUS.PAID\n );\n\n const showInfoMsgAboutRejectBtn = status === STRATEGY_ACCESS_STATUS.PAID && !isAllowedRejectTime;\n\n return {\n userName: renderTitle(userDetails),\n phoneNumber: !_.isEmpty(phoneNumber) ? `${phoneNumber.slice(0, 5)} *****` : '-',\n broker: !_.isEmpty(broker) ? `${availableBrokers[broker]} - ${brokerClientId}` : '-',\n date: moment(createdAt).format('YYYY-MM-DD'),\n status: _.capitalize(status === 'paid' ? 'approved' : status),\n action: (\n
    \n {isShowApproveBtn && (\n onUpdateStatus(id, STRATEGY_ACCESS_STATUS.PAID)}\n >\n Approve\n \n )}\n {(isShowRejectBtn) && (\n onUpdateStatus(id, STRATEGY_ACCESS_STATUS.REJECTED)}\n >\n Reject\n \n )}\n {showInfoMsgAboutRejectBtn && (\n
    \n \n *You cannot able to reject this request between 8 AM to 4 PM\n \n
    \n )}\n
    \n )\n };\n };\n\n const headers = [\n { Header: 'User name', accessor: 'userName' },\n { Header: 'Mobile', accessor: 'phoneNumber' },\n { Header: 'Broker', accessor: 'broker' },\n { Header: 'Status', accessor: 'status' },\n { Header: 'Date', accessor: 'date' },\n { Header: 'Action', accessor: 'action' }\n ];\n\n return (\n <>\n {!_.isEmpty(strategyAccessDetails) && (\n
    \n
    Strategy Access Details
    \n \n
    \n )}\n \n );\n};\n\nStrategyAccessDetails.propTypes = propTypes;\nStrategyAccessDetails.defaultProps = defaultProps;\n\nexport default StrategyAccessDetails;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { FIXED_AMOUNT, REQUEST_TYPE } from 'common/constants/index';\nimport { strategyPropTypes, userPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport ReactHtmlParser from 'react-html-parser';\nimport StrategyErrorMessage from '../StrategyErrorMessage';\nimport Header from '../StrategyCard/Header';\nimport InstrumentAndTags from '../StrategyCard/InstrumentAndTags';\n// import RiskCategory from './RiskCategory';\nimport AccessTill from './AccessTill';\nimport DeployStrategyButton from './DeployStrategyButton';\nimport StrategyAccessDetails from './StrategyAccessDetails';\nimport PaymentButton from './PaymentButton';\nimport RequestTypeButton from './RequestTypeButton';\nimport ProfitableValues from '../StrategyCard/ProfitableValues';\nimport FreeTrialInfo from './freeTrialInfo';\n\nconst propTypes = {\n currentUserDefaultFolderId: PropTypes.number,\n currentUser: userPropTypes,\n strategy: strategyPropTypes.isRequired,\n strategyAccessDetails: PropTypes.arrayOf(PropTypes.shape({}))\n};\nconst defaultProps = { currentUserDefaultFolderId: null, currentUser: null, strategyAccessDetails: null };\n\nconst IndividualStrategyDetails = ({\n strategy, currentUser, currentUserDefaultFolderId, strategyAccessDetails\n}) => {\n const {\n // risk_category: riskCategory,\n user_id: userId,\n is_premium: isPremium\n } = strategy;\n const purchaseType = _.get(strategy, 'purchase_type', '');\n const description = _.get(strategy, 'description', '');\n const currentUserId = _.get(currentUser, 'id', null);\n const isStrategyBelongsToUser = userId === currentUserId;\n const strategyAccess = _.get(strategy, 'strategy_access', {});\n const isEmptyStrategyAccess = _.isEmpty(strategyAccess); // for initial users\n const status = _.get(strategyAccess, 'status', '');\n const isShowCampaign = !_.get(window, 'userPermissions.subscribePremiumPlan.isEnabled') && isPremium;\n const initialFreeTrialDays = _.get(strategy, 'initial_free_trial_days', 0);\n const isFreeTrialAvailable = (initialFreeTrialDays > 0 && isEmptyStrategyAccess);\n\n const renderConditionBasedButton = () => {\n if (isStrategyBelongsToUser) return null;\n if (purchaseType === FIXED_AMOUNT) {\n if (isFreeTrialAvailable) {\n return (\n \n );\n }\n return ;\n }\n if (purchaseType === REQUEST_TYPE) return ;\n\n return null;\n };\n\n const strategyCardClassName = classNames('card mp-strategy-card', { 'premium-card': isPremium });\n\n return (\n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n

    {ReactHtmlParser(description)}

    \n
    \n
    \n \n
    \n
    \n
    \n \n {/* */}\n
    \n
    \n \n\n
    \n {renderConditionBasedButton()}\n \n
    \n\n {isShowCampaign && (\n
    \n
    \n campaign \n
    \n Strategy is available for premium user\n
    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n\n \n
    \n );\n};\n\nIndividualStrategyDetails.propTypes = propTypes;\nIndividualStrategyDetails.defaultProps = defaultProps;\n\nexport default IndividualStrategyDetails;\n","import wrappedFetch from './base';\n\nconst urlPath = '/dashboards/strategy_analytics';\n\nexport const fetchStrategyTransactions = (args) => {\n const { strategyId } = args;\n const url = `${urlPath}/transactions?strategy_id=${strategyId}`;\n\n return wrappedFetch(url).then(\n (response) => {\n console.log(response);\n return response.json();\n }\n ).catch((e) => console.log('ERORRRR:', e));\n};\n\nexport const fetchTransactionUsers = (args) => {\n const { strategyId, transactionId } = args;\n const url = `${urlPath}/users?strategy_id=${strategyId}&transaction_id=${transactionId}`;\n\n return wrappedFetch(url).then(\n (response) => {\n console.log(response);\n return response.json();\n }\n ).catch((e) => console.log('ERORRRR:', e));\n};\n\nexport const fetchTransactionLegsForUser = (args) => {\n const { strategyId, transactionId, userId } = args;\n const url = `${urlPath}/legs?strategy_id=${strategyId}&transaction_id=${transactionId}&user_id=${userId}`;\n\n return wrappedFetch(url).then(\n (response) => {\n console.log(response);\n return response.json();\n }\n ).catch((e) => console.log('ERORRRR:', e));\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes, { oneOfType, object } from 'prop-types';\n\nconst propTypes = {\n particularTransactionDetailsForAllUsers: oneOfType([object]).isRequired,\n individualUserTransactionLegs: oneOfType([object]).isRequired,\n onTransactionsClick: PropTypes.func.isRequired,\n onUsersClick: PropTypes.func.isRequired,\n onLegsClick: PropTypes.func.isRequired\n};\n\nconst defaultProps = {};\n\nconst BreadCrumb = ({\n particularTransactionDetailsForAllUsers,\n individualUserTransactionLegs,\n onTransactionsClick,\n onUsersClick,\n onLegsClick,\n}) => {\n const isParticularTransactionDetailsForAllUsers = !_.isEmpty(\n particularTransactionDetailsForAllUsers.data\n );\n\n const isIndividualUserTransactionLegs = !_.isEmpty(\n individualUserTransactionLegs.data\n );\n\n return (\n
      \n
    1. \n Transactions\n
    2. \n {isParticularTransactionDetailsForAllUsers && (\n \n \n Users\n {' '}\n (\n transaction Id:\n {' '}\n {particularTransactionDetailsForAllUsers.data[0].transaction_id}\n )\n \n \n )}\n {isIndividualUserTransactionLegs && (\n \n \n Legs\n {' '}\n (\n User Id:\n {' '}\n {individualUserTransactionLegs.data[0].user_id}\n )\n \n \n )}\n
    \n );\n};\n\nBreadCrumb.propTypes = propTypes;\nBreadCrumb.defaultProps = defaultProps;\n\nexport default BreadCrumb;\n","export const strategyTransactionHeaders = () => {\n return (\n [\n { Header: 'Id', accessor: 'transaction_id' },\n { Header: 'Symbol', accessor: 'instrument' },\n {\n Header: 'Transaction Time',\n columns: [{\n Header: 'First',\n accessor: 'transaction_start_time',\n },\n {\n Header: 'Last',\n accessor: 'transaction_end_time',\n }]\n },\n {\n Header: 'Runs count',\n columns: [{\n Header: 'Paper',\n accessor: 'paper_runs_count',\n },\n {\n Header: 'Automatic',\n accessor: 'automatic_runs_count',\n }]\n },\n { Header: 'Users Count', accessor: 'users_count' },\n {\n Header: 'Automatic Transactions',\n columns: [{\n Header: 'Incomplete',\n accessor: 'incomplete_automatic_transaction_count',\n },\n {\n Header: 'Success',\n accessor: 'completed_automatic_transaction_count',\n },\n {\n Header: 'Failure',\n accessor: 'failed_automatic_transaction_count',\n }]\n },\n {\n Header: 'Actual Profit',\n columns: [{\n Header: 'Min',\n accessor: 'min_actual_profit',\n },\n {\n Header: 'Max',\n accessor: 'max_actual_profit',\n },\n {\n Header: 'Avg',\n accessor: 'avg_actual_profit',\n }]\n },\n {\n Header: 'Quantman Broker Delay',\n columns: [{\n Header: 'Min',\n accessor: 'min_quantman_broker_delay',\n },\n {\n Header: 'Max',\n accessor: 'max_quantman_broker_delay',\n },\n {\n Header: 'Avg',\n accessor: 'avg_quantman_broker_delay',\n }]\n },\n {\n Header: 'Broker Market Delay',\n columns: [{\n Header: 'Min',\n accessor: 'min_broker_market_delay',\n },\n {\n Header: 'Max',\n accessor: 'max_broker_market_delay',\n },\n {\n Header: 'Avg',\n accessor: 'avg_broker_market_delay',\n }]\n },\n { Header: '', accessor: 'show_more' },\n ]\n );\n};\n\nexport const particularTransactionDetailsForAllUsersHeaders = () => {\n return (\n [\n { Header: 'userId', accessor: 'user_id' },\n { Header: 'Broker', accessor: 'broker' },\n { Header: 'Type', accessor: 'run_order_type' },\n {\n Header: 'Transaction Time',\n columns: [{\n Header: 'First',\n accessor: 'transaction_start_time',\n },\n {\n Header: 'Last',\n accessor: 'transaction_end_time',\n }]\n },\n { Header: 'Entry', accessor: 'entry_status' },\n { Header: 'StopLoss', accessor: 'sl_status' },\n { Header: 'Exit', accessor: 'exit_status' },\n { Header: 'Signal Profit', accessor: 'signal_profit' },\n { Header: 'Actual profit', accessor: 'traded_profit' },\n { Header: 'Slippage', accessor: 'slippage' },\n {\n Header: 'Quantman Broker Delay',\n columns: [{\n Header: 'Min',\n accessor: 'min_quantman_broker_delay',\n },\n {\n Header: 'Max',\n accessor: 'max_quantman_broker_delay',\n },\n {\n Header: 'Avg',\n accessor: 'avg_quantman_broker_delay',\n }]\n },\n {\n Header: 'Broker Market Delay',\n columns: [{\n Header: 'Min',\n accessor: 'min_broker_market_delay',\n },\n {\n Header: 'Max',\n accessor: 'max_broker_market_delay',\n },\n {\n Header: 'Avg',\n accessor: 'avg_broker_market_delay',\n }]\n },\n { Header: '', accessor: 'show_more' }\n ]\n );\n};\n\nexport const individualUserTransactionLegsHeaders = () => {\n return (\n [\n // { Header: 'Broker', accessor: 'broker' },\n // { Header: 'Type', accessor: 'run_order_type' },\n { Header: 'TradingSymbol', accessor: 'trading_symbol' },\n\n {\n Header: 'Entry',\n columns: [{\n Header: 'Qty',\n accessor: 'entry_quantity',\n },\n {\n Header: 'Signal Price',\n accessor: 'entry_signal_price',\n },\n {\n Header: 'Traded Price',\n accessor: 'entry_traded_price',\n },\n {\n Header: 'Signal Time',\n accessor: 'entry_signal_time',\n },\n {\n Header: 'Placed Time',\n accessor: 'entry_placed_time',\n },\n {\n Header: 'Traded Time',\n accessor: 'entry_traded_time',\n }],\n },\n\n {\n Header: 'Stoploss',\n columns: [{\n Header: 'Qty',\n accessor: 'sl_quantity',\n },\n {\n Header: 'Signal Price',\n accessor: 'sl_signal_price',\n },\n {\n Header: 'Traded Price',\n accessor: 'sl_traded_price',\n },\n {\n Header: 'Signal Time',\n accessor: 'sl_signal_time',\n },\n {\n Header: 'Placed Time',\n accessor: 'sl_placed_time',\n },\n {\n Header: 'Traded Time',\n accessor: 'sl_traded_time',\n }],\n },\n\n {\n Header: 'Exit',\n columns: [{\n Header: 'Qty',\n accessor: 'exit_quantity',\n },\n {\n Header: 'Signal Price',\n accessor: 'exit_signal_price',\n },\n {\n Header: 'Traded Price',\n accessor: 'exit_traded_price',\n },\n {\n Header: 'Signal Time',\n accessor: 'exit_signal_time',\n },\n {\n Header: 'Placed Time',\n accessor: 'exit_placed_time',\n },\n {\n Header: 'Traded Time',\n accessor: 'exit_traded_time',\n }],\n },\n {\n Header: 'Profit',\n columns: [{\n Header: 'Signal',\n accessor: 'signal_profit',\n },\n {\n Header: 'Traded',\n accessor: 'traded_profit',\n }]\n }\n ]\n );\n};\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { strategyPropTypes } from 'common/propTypes';\nimport {\n fetchStrategyTransactions, fetchTransactionUsers, fetchTransactionLegsForUser\n} from 'common/api/strategyAnalytics';\nimport moment from 'moment';\nimport ReactDataTable from 'common/components/ReactDataTable';\nimport BreadCrumb from './BreadCrumb';\nimport {\n strategyTransactionHeaders,\n particularTransactionDetailsForAllUsersHeaders,\n individualUserTransactionLegsHeaders\n} from './TableHeaderConfigs';\n\nconst propTypes = { strategy: strategyPropTypes.isRequired };\n\nconst defaultProps = {};\n\nconst renderTable = (data, columns) => {\n return ;\n};\n\nconst StrategyAnalytics = ({ strategy }) => {\n const [strategyTransactions, setStrategyTransactions] = useState({\n data: [],\n headers: [],\n });\n\n const [\n particularTransactionDetailsForAllUsers,\n setParticularTransactionDetailsForAllUsers,\n ] = useState({\n data: [],\n headers: [],\n });\n const [individualUserTransactionLegs, setIndividualUserTransactionLegs] = useState({\n data: [],\n headers: [],\n });\n\n const [fetchData, setFetchData] = useState(false);\n\n const isParticularTransactionDetailsForAllUsers = !_.isEmpty(\n particularTransactionDetailsForAllUsers.data\n );\n\n const isIndividualUserTransactionLegs = !_.isEmpty(\n individualUserTransactionLegs.data\n );\n\n const handleTransactionsClick = () => {\n setParticularTransactionDetailsForAllUsers({ data: [], headers: [] });\n setIndividualUserTransactionLegs({ data: [], headers: [] });\n };\n\n const handleUsersClick = () => {\n setIndividualUserTransactionLegs({ data: [], headers: [] });\n };\n\n const handleLegsClick = () => {};\n\n const formatEmptyvalues = (value, filler = '-') => {\n return (!_.isEmpty(value) || _.isNumber(value)) ? value : filler;\n };\n\n const formatdate = (date) => {\n if (_.isEmpty(date)) {\n return 'N/A';\n }\n return formatEmptyvalues(moment(date).format('DD/MM/YY HH:mm:ss'), 'N/A');\n };\n\n const formatPrice = (price) => {\n if (!_.isNumber(price)) {\n return '-';\n }\n\n return parseFloat(price).toFixed(2);\n };\n\n const formatSec = (seconds) => {\n if (!_.isNumber(seconds)) {\n return '-';\n }\n\n return `${parseFloat(seconds).toFixed(1)} s`;\n };\n\n const statusIcon = {\n completed: { className: 'material-icons-outlined text-success', icon: 'check_circle' },\n incompleted: { className: 'material-icons-outlined text-warning', icon: 'do_disturb_on' },\n failed: { className: 'material-icons-outlined text-danger', icon: 'dangerous' },\n };\n\n const formatOrderStatusByIcon = (status) => {\n const { className, icon } = _.get(statusIcon, status);\n if (className) {\n return {icon};\n }\n\n return status;\n };\n\n const renderUserTransactionLeg = (args) => {\n (fetchTransactionLegsForUser({ ...args, strategyId: strategy.id })).then((res) => {\n const alteredData = _.map(res.data, (row) => {\n const isPaperRun = (row.run_order_type === 'paper');\n\n return {\n transaction_id: row.transaction_id,\n user_id: row.user_id,\n broker: formatEmptyvalues(row.broker),\n run_order_type: formatEmptyvalues(row.run_order_type),\n trading_symbol: formatEmptyvalues(row.trading_symbol),\n entry_quantity: formatEmptyvalues(row.entry_quantity),\n entry_signal_price: formatPrice(row.entry_signal_price),\n entry_traded_price: formatPrice(row.entry_traded_price),\n entry_signal_time: formatdate(row.entry_signal_time),\n entry_placed_time: !isPaperRun ? formatdate(row.entry_placed_time) : 'N/A',\n entry_traded_time: !isPaperRun ? formatdate(row.entry_traded_time) : 'N/A',\n sl_quantity: formatEmptyvalues(row.stop_loss_quantity),\n sl_signal_price: formatPrice(row.sl_signal_price),\n sl_traded_price: formatPrice(row.sl_traded_price),\n sl_signal_time: formatdate(row.sl_signal_time),\n sl_placed_time: !isPaperRun ? formatdate(row.sl_placed_time) : 'N/A',\n sl_traded_time: !isPaperRun ? formatdate(row.sl_traded_time) : 'N/A',\n exit_quantity: formatEmptyvalues(row.exit_quantity),\n exit_signal_price: formatPrice(row.exit_signal_price),\n exit_traded_price: formatPrice(row.exit_traded_price),\n exit_signal_time: formatdate(row.exit_signal_time),\n exit_placed_time: !isPaperRun ? formatdate(row.exit_placed_time) : 'N/A',\n exit_traded_time: !isPaperRun ? formatdate(row.exit_traded_time) : 'N/A',\n signal_profit: (\n = 0 ? 'success' : 'danger'}`}>\n {formatPrice(row.signal_profit)}\n \n ),\n traded_profit: (\n !isPaperRun ? (\n = 0 ? 'success' : 'danger'}`}>\n {formatPrice(row.traded_profit)}\n \n )\n : '-')\n };\n });\n\n setFetchData(false);\n setIndividualUserTransactionLegs({\n data: alteredData,\n headers: individualUserTransactionLegsHeaders()\n });\n });\n };\n\n const getTransactionUser = (args) => {\n (fetchTransactionUsers({ ...args, strategyId: strategy.id })).then((res) => {\n const alteredData = _.map(res.data, (row) => {\n const minQuantmanBrokerDelay = _.min([\n row.min_entry_signal_placed_diff_in_secs,\n row.min_sl_signal_placed_diff_in_secs,\n row.min_exit_signal_placed_diff_in_secs\n ]);\n const maxQuantmanBrokerDelay = _.max([\n row.max_entry_signal_placed_diff_in_secs,\n row.max_sl_signal_placed_diff_in_secs,\n row.max_exit_signal_placed_diff_in_secs\n ]);\n const avgQuantmanBrokerDelay = _.max([\n row.avg_entry_signal_placed_diff_in_secs,\n row.avg_sl_signal_placed_diff_in_secs,\n row.avg_exit_signal_placed_diff_in_secs\n ]);\n\n const minBrokerMarketDelay = _.min([\n row.min_entry_placed_traded_diff_in_secs,\n row.min_sl_placed_traded_diff_in_secs,\n row.min_exit_placed_traded_diff_in_secs\n ]);\n const maxBrokerMarketDelay = _.max([\n row.max_entry_placed_traded_diff_in_secs,\n row.max_sl_placed_traded_diff_in_secs,\n row.max_exit_placed_traded_diff_in_secs\n ]);\n const avgBrokerMarketDelay = _.max([\n row.avg_entry_placed_traded_diff_in_secs,\n row.avg_sl_placed_traded_diff_in_secs,\n row.avg_exit_placed_traded_diff_in_secs\n ]);\n const maxSlippage = _.max([\n row.max_entry_slippage,\n row.max_sl_slippage,\n row.max_exit_slippage\n ]);\n\n return {\n transaction_id: row.transaction_id,\n user_id: row.user_id,\n broker: row.broker,\n symbol: formatEmptyvalues(row.symbol),\n run_order_type: formatEmptyvalues(row.run_order_type),\n\n transaction_start_time: formatdate(row.first_trade_time),\n transaction_end_time: formatdate(row.last_trade_time),\n\n entry_status: formatOrderStatusByIcon(formatEmptyvalues(row.entry_status)),\n sl_status: formatOrderStatusByIcon(formatEmptyvalues(row.sl_status)),\n exit_status: formatOrderStatusByIcon(formatEmptyvalues(row.exit_status)),\n\n signal_profit: formatPrice(row.signal_profit),\n traded_profit: formatPrice(row.traded_profit),\n slippage: maxSlippage ? Math.abs(formatPrice(maxSlippage)) : '-',\n\n min_quantman_broker_delay: formatSec(minQuantmanBrokerDelay),\n max_quantman_broker_delay: formatSec(maxQuantmanBrokerDelay),\n avg_quantman_broker_delay: formatSec(avgQuantmanBrokerDelay),\n\n min_broker_market_delay: formatSec(minBrokerMarketDelay),\n max_broker_market_delay: formatSec(maxBrokerMarketDelay),\n avg_broker_market_delay: formatSec(avgBrokerMarketDelay),\n\n show_more: (\n {\n renderUserTransactionLeg({ transactionId: row.transaction_id, userId: row.user_id });\n }}\n >\n View Details\n \n )\n };\n });\n\n setFetchData(false);\n setParticularTransactionDetailsForAllUsers({\n data: alteredData,\n headers: particularTransactionDetailsForAllUsersHeaders()\n });\n });\n };\n\n const getStrategyTransactions = () => {\n (fetchStrategyTransactions({ strategyId: strategy.id })).then((res) => {\n const alteredData = _.map(res.data, (row) => {\n return {\n transaction_id: formatEmptyvalues(row.transaction_id),\n instrument: formatEmptyvalues(row.instrument),\n transaction_start_time: formatdate(row.transaction_first_trade_time),\n transaction_end_time: formatdate(row.transaction_last_trade_time),\n\n paper_runs_count: formatEmptyvalues(row.paper_runs_count),\n automatic_runs_count: formatEmptyvalues(row.automatic_runs_count),\n users_count: formatEmptyvalues(row.transaction_users_count),\n // eslint-disable-next-line max-len\n incomplete_automatic_transaction_count: formatEmptyvalues(row.automatic_transaction_users_incompleted),\n completed_automatic_transaction_count: formatEmptyvalues(row.automatic_transaction_users_completed),\n failed_automatic_transaction_count: formatEmptyvalues(row.automatic_transaction_users_failed),\n\n min_actual_profit: formatPrice(row.min_traded_profit),\n max_actual_profit: formatPrice(row.max_traded_profit),\n avg_actual_profit: formatPrice(row.avg_traded_profit),\n\n min_quantman_broker_delay: formatSec(row.min_signal_placed_diff_in_secs),\n max_quantman_broker_delay: formatSec(row.max_signal_placed_diff_in_secs),\n avg_quantman_broker_delay: formatSec(row.max_avg_signal_placed_diff_in_secs),\n\n min_broker_market_delay: formatSec(row.min_placed_traded_diff_in_secs),\n max_broker_market_delay: formatSec(row.max_placed_traded_diff_in_secs),\n avg_broker_market_delay: formatSec(row.max_avg_placed_traded_diff_in_secs),\n\n show_more: (\n {\n getTransactionUser({ transactionId: row.transaction_id });\n }}\n >\n View Details\n \n ),\n };\n });\n\n setFetchData(false);\n setStrategyTransactions({\n data: alteredData,\n headers: strategyTransactionHeaders(),\n });\n });\n };\n\n useEffect(() => {\n getStrategyTransactions();\n }, []);\n\n const renderActiveTable = () => {\n setFetchData(true);\n if (isIndividualUserTransactionLegs) {\n const data = individualUserTransactionLegs.data[0];\n return renderUserTransactionLeg({ transactionId: data.transaction_id, userId: data.user_id });\n }\n\n if (isParticularTransactionDetailsForAllUsers && !isIndividualUserTransactionLegs) {\n return getTransactionUser(\n { transactionId: particularTransactionDetailsForAllUsers.data[0].transaction_id }\n );\n }\n\n if (!isParticularTransactionDetailsForAllUsers && !isIndividualUserTransactionLegs) {\n return getStrategyTransactions();\n }\n\n return null;\n };\n\n return (\n <>\n {\n renderActiveTable();\n }}\n >\n refresh\n \n {fetchData ? 'Refreshing...' : 'Refresh'}\n \n \n \n {isIndividualUserTransactionLegs && (\n renderTable(individualUserTransactionLegs?.data, individualUserTransactionLegs?.headers)\n )}\n {(isParticularTransactionDetailsForAllUsers && !isIndividualUserTransactionLegs) && (\n renderTable(\n particularTransactionDetailsForAllUsers?.data,\n particularTransactionDetailsForAllUsers?.headers\n )\n )}\n {!isParticularTransactionDetailsForAllUsers && !isIndividualUserTransactionLegs && (\n renderTable(strategyTransactions?.data, strategyTransactions?.headers)\n )}\n \n );\n};\n\nStrategyAnalytics.propTypes = propTypes;\nStrategyAnalytics.defaultProps = defaultProps;\n\nexport default StrategyAnalytics;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { strategyPropTypes, userPropTypes } from 'common/propTypes';\nimport { RUN_TYPES } from 'common/constants/index';\nimport classNames from 'classnames';\nimport { getUrlParams, updateUrlQueryParams } from 'common/utils/urlUtils';\nimport { ACTIVE_STRATEGY_TYPE, buildCategory } from 'ui/Strategies/helper';\nimport StrategyDeployedRunDetails from '../StrategyRunDetails/StrategyDeployedRunDetails';\nimport StrategyBacktestRunDetails from '../StrategyRunDetails/StrategyBacktestRunDetails';\nimport StrategyLiveRunDetails from '../StrategyRunDetails/StrategyLiveRunDetails';\nimport IndividualStrategyDetails from './IndividualStrategyDetails';\nimport StrategyAnalytics from '../StrategyAnalytics/index';\n\nconst propTypes = {\n currentUserDefaultFolderId: PropTypes.number,\n currentUser: userPropTypes,\n strategy: strategyPropTypes.isRequired,\n strategyAccessDetails: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nconst defaultProps = { currentUserDefaultFolderId: null, currentUser: null, strategyAccessDetails: null };\n\nconst Strategy = ({\n strategy, currentUser, currentUserDefaultFolderId, strategyAccessDetails\n}) => {\n const { deployed_run_details: deployedRunDetails, margin_amount: marginAmount } = strategy;\n const urlParams = getUrlParams();\n const [activeStrategyType, setActiveStrategyType] = useState(\n _.get(urlParams, ACTIVE_STRATEGY_TYPE, RUN_TYPES.historic)\n );\n const { SA_USER_FLAGS, isUserSignedIn } = window;\n const currentUserId = _.get(currentUser, 'id', '');\n const strategyUserId = _.get(strategy, 'user_id', '-');\n const isOwnerStrategy = currentUserId === strategyUserId;\n let goToMarkerPlaceUrl = `/strategies`;\n const isMinifiedPage = _.get(urlParams, 'minifiedpage', 'false') === 'true';\n if (isMinifiedPage) goToMarkerPlaceUrl = `/strategies?minifiedpage=true`;\n\n const isAdmin = _.get(SA_USER_FLAGS, 'isAdmin', false);\n const isStaff = _.get(SA_USER_FLAGS, 'isStaff', false);\n const isStaffOrAdmin = isAdmin || isStaff;\n\n const categories = [\n buildCategory('My Deployment', 'deployed_run', !isOwnerStrategy,\n rocket_launch),\n buildCategory('Live', RUN_TYPES.live, (isStaffOrAdmin || isOwnerStrategy), ),\n buildCategory('Backtest',\n RUN_TYPES.historic, false, ),\n buildCategory('Analytics', 'Analytics', isAdmin, ),\n ];\n\n const isPermitToShow = _.find(categories, ({ value, isShow }) => value === activeStrategyType && isShow);\n\n useEffect(() => {\n if (!isPermitToShow) setActiveStrategyType(isOwnerStrategy ? RUN_TYPES.live : 'deployed_run');\n }, []);\n\n useEffect(() => {\n updateUrlQueryParams(ACTIVE_STRATEGY_TYPE, activeStrategyType, !!isMinifiedPage);\n }, [activeStrategyType]);\n\n const renderCategories = (category, key) => {\n const {\n label, value, isShow, icon\n } = category;\n\n if (!isShow) return null;\n\n const liClassName = classNames('list-item', { active: value === activeStrategyType });\n\n return (\n { setActiveStrategyType(value); }}\n >\n \n {icon}\n {label}\n \n \n );\n };\n\n const renderCatrgoryBasedRuns = () => {\n if (!isPermitToShow) return null;\n\n switch (activeStrategyType) {\n case RUN_TYPES.live:\n return (\n \n );\n case 'deployed_run':\n return (\n \n );\n case RUN_TYPES.historic:\n return ;\n case 'Analytics':\n return ;\n default:\n return null;\n }\n };\n\n return (\n
    \n
    \n
    \n
    \n \n arrow_back\n Go to Strategies\n \n
    \n\n \n
    \n {isUserSignedIn && (\n
    \n
    \n
    \n
      {_.map(categories, renderCategories)}
    \n
    \n
    \n\n
    {renderCatrgoryBasedRuns()}
    \n
    \n )}\n
    \n
    \n );\n};\n\nStrategy.propTypes = propTypes;\nStrategy.defaultProps = defaultProps;\n\nexport default Strategy;\n","import React, { useEffect, useState } from 'react';\nimport { fetchV2DashboadJobsDetails } from 'common/api/job';\nimport ReactDataTable from 'common/components/ReactDataTable';\n\nconst V2Dashboard = () => {\n const oneIndentation = ' ';\n const [stuckedJobs, setStuckedJobs] = useState([]);\n const [totalV2LiveJobsCountInFrontend, setTotalV2LiveJobsCountInFrontend] = useState(0);\n const [totalV2StuckedJobsCountInEngine, setTotalV2StuckedJobsCountInEngine] = useState(0);\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const result = await fetchV2DashboadJobsDetails();\n const {\n total_jobs_in_engine: engineJobsCount,\n total_jobs_in_frontend: frontendJobsCount,\n stucked_jobs: stuckedJobDetails\n } = result;\n setTotalV2StuckedJobsCountInEngine(engineJobsCount);\n setTotalV2LiveJobsCountInFrontend(frontendJobsCount);\n setStuckedJobs(stuckedJobDetails);\n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n\n fetchData();\n }, []);\n\n const columns = [\n { Header: 'Job Id', accessor: 'job_id' },\n { Header: 'Frontend Status', accessor: 'frontend_status' }\n ];\n\n return (\n
    \n
    Summary
    \n
    \n \n V2 Live Jobs in Frontend:\n {oneIndentation}\n {totalV2LiveJobsCountInFrontend}\n \n \n V2 Live Jobs in Engine:\n {oneIndentation}\n {totalV2StuckedJobsCountInEngine}\n \n \n Mismatch:\n {oneIndentation}\n {totalV2LiveJobsCountInFrontend - totalV2StuckedJobsCountInEngine}\n \n \n Stucked:\n {oneIndentation}\n {stuckedJobs.length}\n \n
    \n
    Stucked Job Details
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default V2Dashboard;\n","import React, { useState } from 'react';\nimport { fetchV2JobDetails } from 'common/api/job';\nimport _ from 'lodash';\n\nconst V2JobDetails = () => {\n const [jobId, setJobId] = useState('');\n const [jobDetails, setJobDetails] = useState({});\n const [errorMsg, setErrorMsg] = useState('');\n\n const getJobDetails = () => {\n fetchV2JobDetails(jobId)\n .then((result) => {\n setJobDetails(result);\n setErrorMsg('');\n })\n .catch((error) => {\n console.error('Error fetching data:', error);\n setJobDetails({});\n setErrorMsg(`Error fetching data, Status: ${error.status}, statusText: ${error.statusText}`);\n });\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    Job Details
    \n
    \n
    \n \n {\n const { target: { value } } = event;\n setJobId(value);\n }}\n value={jobId}\n />\n
    \n
    \n getJobDetails()}\n >\n Get Job Details\n \n
    \n
    \n
    \n
    \n
    \n
    \n\n {(!_.isEmpty(jobDetails) || !_.isEmpty(errorMsg)) && (\n
    \n
    \n
    \n
    \n
    Job Details
    \n
    \n                  \n                    {!_.isEmpty(jobDetails) && JSON.stringify(jobDetails, null, 2)}\n                    {!_.isEmpty(errorMsg) && errorMsg}\n                  \n                
    \n
    \n
    \n
    \n
    \n )}\n
    \n );\n};\n\nexport default V2JobDetails;\n","import React, { useState } from 'react';\nimport { V2JobsAction } from 'common/api/job';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst V2JobActions = () => {\n const [jobIds, setJobIds] = useState('');\n\n const onAction = async (action) => {\n const jobIdsArray = jobIds.split(',').map((jobId) => jobId.trim());\n\n try {\n const result = await V2JobsAction(jobIdsArray, action);\n reactToastify('Requested', TOASTIFY_TYPES.SUCCESS);\n console.log('Requested', result);\n } catch (error) {\n reactToastify('Unable to process your request', TOASTIFY_TYPES.ERROR);\n console.error('Unable to process your request:', error);\n }\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    Job Actions
    \n
    \n
    \n \n {\n const { target: { value } } = event;\n setJobIds(value);\n }}\n value={jobIds}\n />\n
    \n
    \n onAction('Stop')}\n >\n Stop (Dequeue)\n \n onAction('Start')}\n >\n Start (Enqueue)\n \n onAction('Restart')}\n >\n Restart\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default V2JobActions;\n","import React, { useState } from 'react';\nimport V2Dashboard from './V2Dashboard';\nimport V2JobDetails from './V2JobDetails';\nimport V2JobActions from './V2JobActions';\n\nconst AdminV2JobsDetailsAndActions = () => {\n const [activeTab, setActiveTab] = useState('dashboard');\n\n const tabItems = [\n { label: 'Dashboard', value: 'dashboard' },\n { label: 'Job Details', value: 'jobDetails' },\n { label: 'Job Actions', value: 'jobActions' },\n ];\n\n const handleTabClick = (tabValue) => {\n setActiveTab(tabValue);\n };\n\n const renderActiveTab = () => {\n switch (activeTab) {\n case 'jobDetails':\n return ;\n case 'jobActions':\n return ;\n default:\n return ;\n }\n };\n\n return (\n
    \n
      \n {tabItems.map((tab) => (\n
    • \n handleTabClick(tab.value)}\n >\n {tab.label}\n \n
    • \n ))}\n
    \n {renderActiveTab()}\n
    \n );\n};\n\nexport default AdminV2JobsDetailsAndActions;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToastContainer } from 'react-toastify';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst propTypes = {\n alert: PropTypes.string,\n notice: PropTypes.string\n};\n\nconst defaultProps = {\n alert: null,\n notice: null\n};\n\nconst FlashNotice = (props) => {\n const { alert, notice } = props;\n\n useEffect(() => {\n if (alert) reactToastify(alert, TOASTIFY_TYPES.ERROR);\n }, [alert]);\n\n useEffect(() => {\n if (notice) reactToastify(notice, TOASTIFY_TYPES.INFO);\n }, [notice]);\n\n return ;\n};\n\nFlashNotice.propTypes = {};\n\nexport default FlashNotice;\n\nFlashNotice.propTypes = propTypes;\nFlashNotice.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React from 'react';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst LoginButton = () => {\n const pathArray = window.location.pathname.split('/');\n const returnToPath = _.get(pathArray, '[1]', '');\n const { applicationDomain } = window;\n const isPrimaryDomain = (_.isNull(_.get(applicationDomain, 'id', null)));\n\n let signInPath = isPrimaryDomain ? '/' : '/users/sign_in';\n const returnToParam = window.location.pathname + window.location.search;\n if (returnToPath) signInPath += `?return_to=${encodeURIComponent(returnToParam)}`;\n\n return (\n
  • \n { window.location.href = signInPath; }}\n >\n lock\n {' '}\n Login\n \n
  • \n );\n};\n\nLoginButton.propTypes = propTypes;\nLoginButton.defaultProps = defaultProps;\n\nexport default LoginButton;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { runPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n runIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n runs: PropTypes.arrayOf(runPropTypes).isRequired,\n checkedRunIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n handleCheckboxChange: PropTypes.func.isRequired,\n rowFunc: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst SelectRuns = ({\n runIds, runs, checkedRunIds, handleCheckboxChange, rowFunc\n}) => {\n return (\n
    \n
    \n
    \n Selected Runs\n
    \n
    {rowFunc()}
    \n
    \n
    \n
    \n {_.map(runIds, (runId) => (\n
    \n
    \n
    \n
    \n
    \n
    \n handleCheckboxChange(runId)}\n id={`checkbox-${runId}`}\n />\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n
    \n
    \n );\n};\n\nSelectRuns.propTypes = propTypes;\nSelectRuns.defaultProps = defaultProps;\n\nexport default SelectRuns;\n","import _ from 'lodash';\nimport React from 'react';\nimport { optimizeFields } from 'ui/run/RunShow/OrderStore/metrics/formula';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n optimizeBy: PropTypes.string.isRequired,\n handleOptimizeBy: PropTypes.func.isRequired,\n onClickRefineBtn: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst OptimizeBy = ({ optimizeBy, handleOptimizeBy, onClickRefineBtn }) => {\n const optimizeValues = _.keys(optimizeFields);\n return (\n
    \n
    \n \n {\n handleOptimizeBy(e.target.value);\n }}\n >\n \n {optimizeValues.map((value) => (\n \n ))}\n \n \n Refine\n \n
    \n
    \n );\n};\n\nOptimizeBy.propTypes = propTypes;\nOptimizeBy.defaultProps = defaultProps;\n\nexport default OptimizeBy;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport { getNumerousRuns } from 'common/api/run';\nimport OrderStore from 'ui/run/RunShow/OrderStore/index';\nimport RunDetail from 'ui/run/RunShow/components/RunDetail/index';\nimport RunSummary from 'modules/RunSummary/index';\nimport { RUN_TYPES } from 'common/constants/index';\nimport TransactionDetail from 'ui/run/RunShow/components/TransactionDetail/index';\nimport SlippageInputDetails from 'ui/run/RunShow/components/SlippageInputDetails';\nimport SelectRuns from './SelectRuns';\nimport OptimizeBy from './OptimizeBy';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst NumerousRuns = () => {\n const urlParams = getUrlParams();\n const initialRunIds = JSON.parse(_.get(urlParams, 'runids', '[]'));\n const [runIds] = useState(initialRunIds);\n const [checkedRunIds, setCheckedRunIds] = useState(runIds);\n const [optimizeBy, setOptimizeBy] = useState('');\n const [runsWithJobs, setRunsWithJobs] = useState([]);\n\n useEffect(() => {\n getNumerousRuns({ run_ids: runIds })\n .then((result) => {\n const { runs: numerousRuns } = result;\n setRunsWithJobs(numerousRuns);\n });\n }, [runIds]);\n\n const handleCheckboxChange = (runId) => {\n setOptimizeBy('');\n setCheckedRunIds((prevCheckedRunIds) => (prevCheckedRunIds.includes(runId)\n ? prevCheckedRunIds.filter((id) => id !== runId)\n : [...prevCheckedRunIds, runId]));\n };\n\n const handleOptimizedRunIds = (optimizedRunIds) => {\n if (checkedRunIds.length !== optimizedRunIds.length) {\n setCheckedRunIds(optimizedRunIds);\n }\n };\n\n const handleOptimizeBy = (value) => {\n if (_.isEmpty(value)) setCheckedRunIds(runIds);\n setOptimizeBy(value);\n };\n\n const onClickRefineBtn = () => {\n const url = new URL(window.location.href);\n url.searchParams.set('runids', JSON.stringify(checkedRunIds));\n window\n .open(url.toString(), '_blank')\n .focus();\n\n return null;\n };\n\n const filterCheckedJobs = () => {\n return _.chain(runsWithJobs)\n .filter((run) => checkedRunIds.includes(run.run.id))\n .map((run) => run.job_ids)\n .value();\n };\n\n const renderErrorMessages = () => {\n return (\n
    \n
    No runs found. Please select runs to view results
    \n
    \n );\n };\n\n const allRuns = _.map(runsWithJobs, (r) => r.run);\n\n const run = {\n ..._.head(allRuns),\n start_date: _.minBy(allRuns, (r) => r.start_date)?.start_date,\n end_date: _.maxBy(allRuns, (r) => r.end_date)?.end_date,\n };\n\n const { order_type: orderType, run_type: runType } = run;\n\n const isRunsAvailable = !(_.isEmpty(checkedRunIds) || _.isEmpty(allRuns));\n\n const renderOptimizeBy = () => {\n return (\n onClickRefineBtn()}\n />\n );\n };\n\n return (\n <>\n \n {!isRunsAvailable && renderErrorMessages()}\n {isRunsAvailable && (\n \n <>\n \n
    \n \n
    \n {runType === RUN_TYPES.historic && }\n \n \n \n )}\n \n );\n};\n\nNumerousRuns.propTypes = propTypes;\nNumerousRuns.defaultProps = defaultProps;\n\nexport default NumerousRuns;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { Table } from 'react-bootstrap';\nimport { onGetStrategyAccessBasedOnStrategyId } from 'common/api/strategyAccess';\nimport { strategyPropTypes } from 'common/propTypes';\n\nconst propTypes = {\n strategy: strategyPropTypes\n};\nconst defaultProps = {\n strategy: null\n};\n\nconst StrategyAccessDetailsAdminPanel = ({ strategy }) => {\n const [strategyAccesses, setStrategyAccesses] = useState([]);\n\n useEffect(() => {\n onGetStrategyAccessBasedOnStrategyId({ strategy_id: strategy.id }).then((result) => {\n setStrategyAccesses(result.strategy_accesses);\n console.log(result.strategy_accesses, 'strategy_accesses');\n console.log(strategy, 'strategy'); // for debugging purpose... admin only so\n });\n }, []);\n\n const renderStrategyAccesses = (strategyAccess, idx) => {\n const encodedUrl = encodeURI(`${FRONTEND_PUBLIC_URL}/runs/${strategyAccess.run_id}`);\n\n return (\n \n {idx + 1}\n {strategyAccess.id}\n {strategyAccess.user_id}\n {strategyAccess.paid_till}\n {strategyAccess.run_id}\n \n );\n };\n\n if (_.isEmpty(strategyAccesses)) {\n return (\n
    No running strategy access
    \n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {_.map(strategyAccesses, renderStrategyAccesses)}\n \n
    S.NoStrategy Access IdUser IdPaid TillRun Id
    \n );\n};\n\nStrategyAccessDetailsAdminPanel.propTypes = propTypes;\nStrategyAccessDetailsAdminPanel.defaultProps = defaultProps;\n\nexport default StrategyAccessDetailsAdminPanel;\n","import _ from 'lodash';\nimport fetchStrategies from 'common/api/strategies';\nimport ArrowAccordion from 'common/components/ArrowAccordion';\nimport { runStatusColorCode } from 'common/configs/runStatus';\nimport React, { useEffect, useState } from 'react';\nimport moment from 'moment';\nimport StrategyAccessDetailsAdminPanel from './StrategyAccessDetailsAdminPanel';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst StrategyAdminPanel = () => {\n const [strategies, setStrategies] = useState([]);\n const oneIndentation = ' ';\n\n useEffect(() => {\n fetchStrategies({ params: { offsetStrategyId: 0 } })\n .then((results) => {\n setStrategies(_.orderBy(results, 'deployed_user_count', 'desc'));\n });\n }, []);\n\n const renderTitle = (strategy) => {\n const { title } = strategy;\n\n return title;\n };\n\n const renderHeaderRightSectionContent = (strategy) => {\n const { live_run: liveRun } = strategy;\n const { status: liveStatus, updated_at: updatedAt } = liveRun;\n const { statusText, statusClassName } = runStatusColorCode(liveStatus);\n\n return (\n
    \n
    \n (\n {moment(updatedAt).format('YYYY-MM-DD hh:mm A')}\n )\n {oneIndentation}\n {oneIndentation}\n {liveStatus && }\n {statusText}\n
    \n
    \n );\n };\n\n const renderStrategies = (strategy, key) => {\n return (\n { }}\n >\n \n \n );\n };\n\n return (\n <>\n
    \n Strategy Details\n
    \n {_.map(strategies, renderStrategies)}\n \n );\n};\n\nStrategyAdminPanel.propTypes = propTypes;\nStrategyAdminPanel.defaultProps = defaultProps;\n\nexport default StrategyAdminPanel;\n","import qs from 'qs';\nimport wrappedFetch from './base';\n\nexport const fetchLiveTicks = (tickParams) => {\n const queryParams = qs.stringify({ ...tickParams });\n const uri = `/admin/ticks/live/fetch?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n\nexport const fetchTradingSymbolTicks = (tickParams) => {\n const queryParams = qs.stringify({ ...tickParams });\n const uri = `/external/api/live_data?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n\nexport const fetchHistoricAdminTicks = (tickParams) => {\n const queryParams = qs.stringify({ ...tickParams });\n const uri = `/admin/ticks/historic/fetch?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n\nexport const fetchRocksDbData = (Params) => {\n const queryParams = qs.stringify({ ...Params });\n const uri = `/external/api/rocksdb_data?${queryParams}`;\n\n const params = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(uri, params)\n .then((response) => response.json());\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { fetchLiveTicks, fetchTradingSymbolTicks } from 'common/api/adminTicks';\nimport ArrowAccordion from 'common/components/ArrowAccordion';\nimport { Table } from 'react-bootstrap';\n\nconst defaultConfig = {\n date: null, marketData: {}, time: null, error: false, message: ''\n};\n\nconst LiveDataAdminPanel = () => {\n const oneIndentation = ' ';\n const [liveData, setLiveData] = useState(defaultConfig);\n\n const [instruments, setInstruments] = useState('FUTSTK-HDFC');\n const [tradeSymbols, setTradingSymbols] = useState('HDFC25MAR21FUT');\n\n const getLiveData = () => {\n fetchLiveTicks({ instruments }).then((result) => {\n setLiveData(result);\n });\n };\n\n const getTradingSymbolTicks = () => {\n fetchTradingSymbolTicks({ tradeSymbols }).then((result) => {\n console.log(`Trade Symbols - ${result}`);\n setLiveData(result);\n });\n };\n\n const dataSet = [\n {\n label: 'Instruments',\n placeholder: 'FUTSTK-HDFC,FUTSTK-HDFCBANK',\n name: 'instruments',\n onClick: () => getLiveData(),\n btnLabel: 'View Live Data',\n onChange: (event) => {\n const { target: { value } } = event;\n setInstruments(value);\n },\n value: instruments\n },\n {\n label: 'Trading Symbol',\n placeholder: 'HDFC25MAR21FUT, BANKNIFTY25MAR2140000CE',\n name: 'tradeSymbols',\n onClick: () => getTradingSymbolTicks(),\n btnLabel: 'View Trading Symbol Live Data',\n onChange: (event) => {\n const { target: { value } } = event;\n setTradingSymbols(value);\n },\n value: tradeSymbols\n }\n ];\n\n const renderCol = (data, idx) => {\n return (\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n {data.btnLabel}\n
    \n
    \n
    \n );\n };\n\n const renderInstrumentIndividualDetails = (instrumentIndividualDetails, instrumentName) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(instrumentIndividualDetails, (details, key) => {\n return (\n \n \n \n \n \n \n \n \n );\n })}\n \n
    NamePriceBB PriceBS PriceDay VolumeOpen Interest
    {`${instrumentName} - ${key}`}{_.get(details, 'price', '-')}{_.get(details, 'bbPrice', '-')}{_.get(details, 'bsPrice', '-')}{_.get(details, 'dayVolume', '-')}{_.get(details, 'openInterest', '-')}
    \n );\n };\n\n const renderMarketData = (dataFormat, key) => {\n return (\n { }}\n >\n {_.map(dataFormat, (instrumentIndividualDetails, instrumentName) => {\n return renderInstrumentIndividualDetails(instrumentIndividualDetails, instrumentName);\n })}\n \n );\n };\n\n const renderLiveDataTable = () => {\n const marketData = _.get(liveData, 'marketData', {});\n const error = _.get(liveData, 'error', false);\n\n if (_.isEmpty(marketData)) {\n return
    No Data Present
    ;\n }\n\n if (error) {\n return (\n
    \n {_.get(liveData, 'message', 'No Data Present')}\n
    \n );\n }\n\n const { date, time } = liveData;\n const dateTime = `${date}, ${time}`;\n\n return (\n
    \n Fetch Time:\n {oneIndentation}\n {dateTime}\n
    \n {_.map(marketData, renderMarketData)}\n
    \n
    \n );\n };\n\n return (\n
    \n
    {_.map(dataSet, renderCol)}
    \n {renderLiveDataTable()}\n
    \n );\n};\n\nLiveDataAdminPanel.propTypes = {};\n\nexport default LiveDataAdminPanel;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { fetchRocksDbData } from 'common/api/adminTicks';\nimport moment from 'moment';\nimport LoadingSpinner from 'common/components/LoadingSpinner';\nimport ReactDataTable from 'common/components/ReactDataTable';\n\nconst RocksDBDataAdminPanel = () => {\n const [rocksDBData, setRocksDBData] = useState([]);\n\n const [tradingSymbol, setTradingSymbol] = useState('BANKNIFTY');\n const [granularity, setGranularity] = useState('minute');\n const [startDate, setStartDate] = useState(\n moment().subtract(1, 'day').format('YYYY-MM-DD')\n );\n const [endDate, setEndDate] = useState(\n moment().subtract(1, 'day').format('YYYY-MM-DD')\n );\n const [isLoading, setIsLoading] = useState(false);\n\n const getRocksDBData = () => {\n const queryParams = {\n tradingSymbol,\n startDate,\n endDate,\n granularity\n };\n setIsLoading(true);\n fetchRocksDbData(queryParams).then((result) => {\n setRocksDBData(result);\n setIsLoading(false);\n });\n };\n\n const renderTradingSymbolBadge = (ts) => {\n return (\n setTradingSymbol(ts)}\n >\n {ts}\n \n );\n };\n\n const renderInputField = () => {\n return (\n
    \n
    \n
    { getRocksDBData(); e.preventDefault(); }}>\n
    \n
    \n \n {\n const { target: { value } } = event;\n setTradingSymbol(value);\n }}\n value={tradingSymbol}\n />\n
    \n\n
    \n \n {\n const { target: { value } } = event;\n setStartDate(value);\n }}\n value={startDate}\n />\n
    \n\n
    \n \n {\n const { target: { value } } = event;\n setEndDate(value);\n }}\n value={endDate}\n />\n
    \n\n
    \n \n setGranularity(event.target.value)}\n className=\"form-control\"\n >\n \n \n \n
    \n\n
    \n
    getRocksDBData()}>\n View RocksDB Data\n
    \n
    \n
    \n
    \n
    \n Sample Trading Symbols\n
    \n Options\n {renderTradingSymbolBadge('BANKNIFTY23FEB2339400CE')}\n
    \n
    \n Futures\n {renderTradingSymbolBadge('BANKNIFTY-IFUT')}\n {renderTradingSymbolBadge('BANKNIFTY-IIFUT')}\n
    \n
    \n EQUITY\n {renderTradingSymbolBadge('BANKNFITY')}\n {renderTradingSymbolBadge('INDIAVIX')}\n
    \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n const renderDataTable = () => {\n const columns = [\n { Header: 'Timestamp', accessor: 'timestamp' },\n { Header: 'Price', accessor: 'price' },\n { Header: 'Volume', accessor: 'volume' },\n { Header: 'Open Interest', accessor: 'openInterest' }\n ];\n\n _.forEach(rocksDBData, (obj) => {\n obj.timestamp = _.chain(obj.timestamp)\n .thru((timestamp) => moment(timestamp).format('YYYY-MM-DD HH:mm:ss'))\n .value();\n });\n\n return ();\n };\n\n return (\n
    \n
    {renderInputField()}
    \n \n {!_.isEmpty(rocksDBData) && renderDataTable()}\n
    \n );\n};\n\nRocksDBDataAdminPanel.propTypes = {};\n\nexport default RocksDBDataAdminPanel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Pagination from 'common/components/Pagination';\nimport { transactionPropTypes } from 'common/propTypes';\nimport withErrorBoundary from '../withErrorBoundary/index';\n\nconst propTypes = {\n total: PropTypes.arrayOf(transactionPropTypes).isRequired,\n currentPageIndex: PropTypes.number.isRequired,\n perPage: PropTypes.number.isRequired,\n onCurrentPageChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst PaginationFooter = ({\n total, currentPageIndex, perPage, onCurrentPageChange\n}) => {\n const totalLength = total.length;\n const totalPages = totalLength / perPage;\n const startOfRange = perPage * currentPageIndex;\n const endOfRange = startOfRange + perPage < totalLength\n ? startOfRange + perPage\n : totalLength;\n\n return (\n
    \n
    \n {`Showing ${startOfRange + 1} to ${endOfRange} of ${totalLength} entries`}\n
    \n\n
    \n {totalLength > perPage\n && (\n onCurrentPageChange(selectedPage)}\n currentPageIndex={currentPageIndex}\n />\n )}\n
    \n
    \n );\n};\n\nPaginationFooter.propTypes = propTypes;\nPaginationFooter.defaultProps = defaultProps;\n\nexport default withErrorBoundary(PaginationFooter);\n","export const historicDefaultConfig = {\n data_type: 'historic',\n includeEquity: 'true',\n includeIndiaVix: 'false',\n includeNextExpiry: 'false',\n includeOptions: 'false',\n instruments: 'NFO:HDFC',\n interval: 'minute',\n isWeeklyOptions: 'false',\n month: '1',\n year: '2020'\n};\n","import _ from 'lodash';\nimport { fetchHistoricAdminTicks } from 'common/api/adminTicks';\nimport PaginationFooter from 'common/components/PaginationFooter/index';\nimport { getDisplayTransactions } from 'common/utils/transactionProfitHelper';\nimport React, { useEffect, useState } from 'react';\nimport { Table, ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { historicDefaultConfig } from './config';\n\nconst defaultFilterConfig = [\n {\n label: 'INDIAVIX',\n value: 'additionalData.INDIAVIX'\n }\n];\n\nconst INITIAL_PAGE_NO = 0;\nconst DETAILS_PER_PAGE = 40;\n\nconst HistoricDataAdminPanel = () => {\n const [config, setConfig] = useState(historicDefaultConfig);\n const [historicData, setHistoricData] = useState([]);\n const [activeFilter, setActiveFilter] = useState('additionalData.INDIAVIX');\n const [filterConfig, setFilterConfig] = useState(defaultFilterConfig);\n const [filteredData, setFilteredData] = useState([]);\n const isIncludesOptionTicks = activeFilter.includes('optionsTicks');\n const [detailsPerPage] = useState(DETAILS_PER_PAGE);\n const [currentPageIndex, setCurrentPageIndex] = useState(INITIAL_PAGE_NO);\n const detailsToDisplay = getDisplayTransactions(\n filteredData, currentPageIndex, detailsPerPage\n );\n\n const getAdminHistoricTicks = () => {\n const instrumentSplits = config.instruments.split(', ');\n const instrumentConfig = _.flattenDeep(_.map(instrumentSplits, (instrument) => {\n return [\n {\n label: `${instrument} Month1Price`,\n value: `ticks.${instrument}.month1Price`\n },\n {\n label: `${instrument} Month2Price`,\n value: `ticks.${instrument}.month2Price`\n },\n {\n label: `${instrument} Equity`,\n value: `ticks.${instrument}.equity`\n },\n {\n label: `${instrument} OptionTicks Month1Price`,\n value: `optionsTicks.${instrument}.month1`\n },\n {\n label: `${instrument} OptionTicks Month2Price`,\n value: `optionsTicks.${instrument}.month2`\n },\n ];\n }));\n\n fetchHistoricAdminTicks(config).then((result) => {\n setHistoricData(result);\n setFilterConfig([...instrumentConfig, ...defaultFilterConfig]);\n });\n };\n\n useEffect(() => {\n setFilteredData(_.flattenDeep(_.map(historicData, (data) => {\n if (isIncludesOptionTicks) {\n const ticksSet = _.get(data, activeFilter, {});\n const dataSet = _.flattenDeep(_.map(ticksSet, (ticks, key) => {\n return { name: key, ...ticks };\n }));\n return dataSet;\n }\n\n const time = _.get(data, 'ticks.dateTime', '');\n const ticksSet = _.get(data, activeFilter, {});\n return { time, ...ticksSet };\n })));\n\n setCurrentPageIndex(INITIAL_PAGE_NO);\n }, [activeFilter, historicData]);\n\n const renderInstrument = () => {\n return (\n
    \n \n
    \n { setConfig({ ...config, instruments: event.target.value }); }}\n />\n
    \n
    \n );\n };\n\n const renderCheckBox = () => {\n const dataSet = [\n { label: 'Historic data', value: 'historic' },\n { label: 'Current Historic Live', value: 'current-day-hl' }\n ];\n return (\n
    \n Data Type\n {_.map(dataSet, (data, idx) => {\n return (\n
    \n {\n setConfig({ ...config, data_type: event.target.value });\n }}\n />\n \n
    \n );\n })}\n
    \n );\n };\n const structuredData = [\n {\n label: 'Year',\n value: config.year,\n placeholder: '2020',\n onChange: (event) => { setConfig({ ...config, year: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'Month',\n value: config.month,\n placeholder: '1',\n onChange: (event) => { setConfig({ ...config, month: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'Interval',\n value: config.interval,\n placeholder: 'day/minute',\n onChange: (event) => { setConfig({ ...config, interval: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'IncludeOptions',\n value: config.includeOptions,\n placeholder: 'true/false',\n onChange: (event) => { setConfig({ ...config, includeOptions: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'isWeeklyOptions',\n value: config.isWeeklyOptions,\n placeholder: 'true/false',\n onChange: (event) => { setConfig({ ...config, isWeeklyOptions: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'includeNextExpiry',\n value: config.includeNextExpiry,\n placeholder: 'true/false',\n onChange: (event) => { setConfig({ ...config, includeNextExpiry: event.target.value }); },\n isShow: config.data_type === 'historic'\n },\n {\n label: 'includeEquity',\n value: config.includeEquity,\n placeholder: 'true/false',\n onChange: (event) => { setConfig({ ...config, includeEquity: event.target.value }); },\n isShow: true\n },\n {\n label: 'includeIndiaVix',\n value: config.includeIndiaVix,\n placeholder: 'true/false',\n onChange: (event) => { setConfig({ ...config, includeIndiaVix: event.target.value }); },\n isShow: true\n }\n ];\n\n const renderStructuredData = (data, idx) => {\n if (!data.isShow) return null;\n\n return (\n
    \n \n
    \n \n
    \n
    \n );\n };\n\n const renderViewHistoricData = () => {\n if (_.isEmpty(historicData)) {\n return
    No Backend Data Present
    ;\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(detailsToDisplay, (tick, key) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n
    S No{isIncludesOptionTicks ? 'Name' : 'Time'}CloseHighLowOpenOpen InterestVolume
    {key + 1}{isIncludesOptionTicks ? _.get(tick, 'name', '-') : _.get(tick, 'time', '-')}{_.get(tick, 'close', '-')}{_.get(tick, 'high', '-')}{_.get(tick, 'low', '-')}{_.get(tick, 'open', '-')}{_.get(tick, 'openInterest', '-')}{_.get(tick, 'volume', '-')}
    \n \n \n );\n };\n\n const renderFilterOptions = () => {\n const options = _.map(filterConfig, ({ label, value }) => (\n \n {label}\n \n ));\n\n return (\n setActiveFilter(value)}\n >\n {options}\n \n );\n };\n return (\n
    \n
    \n {renderInstrument()}\n {renderCheckBox()}\n {_.map(structuredData, renderStructuredData)}\n\n
    getAdminHistoricTicks()}>\n View Historic Data\n
    \n
    \n
    \n {renderFilterOptions()}\n
    \n\n {renderViewHistoricData()}\n
    \n\n
    \n
    \n
    JSON
    \n
    \n            \n              {JSON.stringify(historicData.slice(0, 20), null, 2)}\n            \n          
    \n
    \n
    \n
    \n );\n};\n\nHistoricDataAdminPanel.propTypes = {};\n\nexport default HistoricDataAdminPanel;\n","import wrappedFetch from './base';\n\nexport const onCreateNewCampaignRegistration = (args) => {\n const config = {\n method: 'POST',\n headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n body: JSON.stringify({ ...args }),\n };\n\n return wrappedFetch('/campaign_registrations.json', config);\n};\n\nexport const onGetCampaign = (id) => {\n const url = `/campaigns/${id}.json`;\n const options = {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n };\n\n return wrappedFetch(url, options).then((response) => response.json());\n};\n","import _ from 'lodash';\nimport { onGetCampaign, onCreateNewCampaignRegistration } from 'common/api/campaigns';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport React, { useEffect, useState } from 'react';\nimport ReactHtmlParser from 'react-html-parser';\n\nconst CampaignRegistration = () => {\n const [config, setConfig] = useState({ email: '', phone_number: '' });\n const urlParams = getUrlParams();\n const campaignId = _.get(urlParams, 'campaign', null);\n const [campaignDetails, setCampaignDetails] = useState({});\n\n useEffect(() => {\n onGetCampaign(campaignId).then((response) => {\n setCampaignDetails(response);\n });\n }, []);\n\n const onSubmit = () => {\n let args = config;\n if (campaignId) { args = { ...args, campaign_id: campaignId }; }\n\n onCreateNewCampaignRegistration(args)\n .then(() => {\n reactToastify('Thank you for your registration', TOASTIFY_TYPES.SUCCESS);\n setTimeout(() => { window.location.href = '/'; }, 2000);\n }).catch((errorResults) => {\n errorResults.json().then(({ errors }) => {\n _.each(errors, (error, key) => {\n reactToastify(`${_.startCase(key)} - ${_.join(error, ', ')}`, TOASTIFY_TYPES.ERROR);\n });\n });\n });\n };\n\n const renderCampaignDetails = () => {\n if (_.isEmpty(campaignDetails)) return null;\n\n const { campaign_name: campaignName, campaign_html: campaignHtml } = campaignDetails;\n\n return (\n
    \n

    {campaignName}

    \n {ReactHtmlParser(campaignHtml)}\n
    \n );\n };\n\n return (\n
    \n {renderCampaignDetails()}\n
    Campagin Registration
    \n
    \n \n { setConfig({ ...config, email: event.target.value }); }}\n />\n \n we will never share\n your email with anyone else.\n \n
    \n
    \n \n { setConfig({ ...config, phone_number: event.target.value }); }}\n />\n
    \n \n
    \n );\n};\n\nCampaignRegistration.propTypes = {};\n\nexport default CampaignRegistration;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { planPropTypes } from 'common/propTypes';\nimport classNames from 'classnames';\nimport PaymentMoneyDisplay from 'ui/Plans/components/common/PaymentMoneyDisplay';\n\nconst defaultUpgradePlanPropTypes = PropTypes.shape({\n targetPlan: planPropTypes,\n upgradeDetails: PropTypes.shape({\n upgradable: PropTypes.bool,\n start: PropTypes.string,\n end: PropTypes.string,\n unused_percentage: PropTypes.number,\n current_plan_amount: PropTypes.number,\n target_plan_amount: PropTypes.number,\n upgrade_amount: PropTypes.number\n })\n});\n\nconst propTypes = {\n currentUpgradePlan: defaultUpgradePlanPropTypes,\n config: defaultUpgradePlanPropTypes.isRequired,\n onHandleConfig: PropTypes.func.isRequired\n};\nconst defaultProps = { currentUpgradePlan: {} };\n\nconst Plan = ({ config, onHandleConfig, currentUpgradePlan }) => {\n const { targetPlan } = config;\n const oneIndentation = ' ';\n const cardClassName = classNames('plans-details col-12 col-md-5', {\n premiumplan: targetPlan.is_premium,\n });\n\n const {\n plan_name: planName,\n live_run_limit: liveRunLimit,\n historic_run_limit: historicRunLimit,\n cycle_duration_in_months: duration,\n } = targetPlan;\n\n const price = _.get(config, 'price');\n const currentNetPrice = _.get(config, 'currentNetPrice', price);\n\n return (\n\n
    \n
    \n { onHandleConfig(); }}\n checked={targetPlan.id === _.get(currentUpgradePlan, 'targetPlan.id', '')}\n type=\"radio\"\n id={targetPlan.id}\n name=\"select\"\n value={targetPlan.id}\n onChange={() => {}}\n />\n
    \n );\n};\n\nPlan.propTypes = propTypes;\nPlan.defaultProps = defaultProps;\n\nexport default Plan;\n","import _ from 'lodash';\nimport React from 'react';\nimport { planPropTypes } from 'common/propTypes';\nimport PaymentMoneyDisplay from 'ui/Plans/components/common/PaymentMoneyDisplay';\nimport PropTypes from 'prop-types';\nimport { planCycleLabel } from './helper';\n\nconst propTypes = {\n currentPlan: planPropTypes.isRequired,\n isUpgradePlan: PropTypes.bool\n};\n\nconst defaultProps = {\n isUpgradePlan: false\n};\n\nconst CurrentAndUpgradePlanDetail = ({ currentPlan, isUpgradePlan }) => {\n const {\n plan_name: planName,\n live_run_limit: liveRunLimit,\n price,\n historic_run_limit: historicRunLimit,\n cycle_duration_in_months: duration,\n } = currentPlan;\n\n const currentNetPrice = _.get(currentPlan, 'currentNetPrice', price);\n const oneIndentation = ' ';\n\n return (\n
    \n
    \n

    {isUpgradePlan ? 'Upgrade Plan' : 'Current Plan'}

    \n
    \n {_.startCase(planName)}\n {oneIndentation}\n {planCycleLabel(duration)}\n
    \n
    \n
    \n Live \n {liveRunLimit}\n
    \n
    \n Backtest \n {historicRunLimit}\n
    \n
    \n Plan Amount \n \n
    \n
    \n
    \n
    \n );\n};\n\nCurrentAndUpgradePlanDetail.propTypes = propTypes;\nCurrentAndUpgradePlanDetail.defaultProps = defaultProps;\n\nexport default CurrentAndUpgradePlanDetail;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PaymentMoneyDisplay from 'ui/Plans/components/common/PaymentMoneyDisplay';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport { applyCredits } from 'ui/Plans/helper';\n\nconst propTypes = {\n currentUpgradePlan: PropTypes.shape({\n upgradeDetails: PropTypes.shape({}),\n cycle_duration_in_months: PropTypes.number\n }),\n discountPercentage: PropTypes.number,\n credits: PropTypes.number\n};\n\nconst defaultProps = {\n currentUpgradePlan: {},\n discountPercentage: 0,\n credits: 0\n};\n\nconst UpgradePaymentDetails = ({ currentUpgradePlan, discountPercentage, credits }) => {\n const oneIndentation = ' ';\n const { upgradeDetails } = currentUpgradePlan;\n const upgradeAmount = _.get(upgradeDetails, 'upgrade_amount', 0);\n const price = _.get(currentUpgradePlan, 'price', 0);\n const currentNetPrice = _.get(currentUpgradePlan, 'currentNetPrice', price);\n let reducedUpgradeAmount = upgradeAmount;\n if (currentNetPrice !== price) {\n reducedUpgradeAmount -= (reducedUpgradeAmount / 100) * discountPercentage;\n }\n\n return (\n
    \n \n \n \n \n \n {(credits > 0) && (\n \n \n \n \n )}\n \n \n \n \n \n
    \n Your existing plan unused\n {oneIndentation}\n {parseInt(_.get(upgradeDetails, 'unused_percentage', 0), 10)}\n %\n {oneIndentation}\n is adjusted\n
    Credits used:\n {credits}\n
    Total Upgrade amount :\n \n
    \n
    \n );\n};\n\nUpgradePaymentDetails.propTypes = propTypes;\nUpgradePaymentDetails.defaultProps = defaultProps;\n\nexport default UpgradePaymentDetails;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nimport { planPropTypes } from 'common/propTypes';\nimport { paymentInitialize } from 'common/razorpay/paymentInitialize';\nimport ModalComponent from 'common/components/ModalComponent';\nimport withErrorBoundary from 'common/components/withErrorBoundary/index';\nimport PlanTypeSelector from 'ui/Plans/components/common/PlanTypeSelector';\nimport PaymentCoupons from 'ui/Plans/components/common/PaymentCoupons';\nimport { cyclicPlansPeriods } from 'ui/Plans/config';\nimport { fetchCoupon, fetchPreApplyCoupon } from 'common/api/coupons';\nimport Credits from 'ui/Plans/components/common/Credits';\nimport { cyclicFilter, getCouponConfig, initCurrentNetPrice } from 'ui/Plans/helper';\nimport Plan from './Plan';\nimport CurrentAndUpgradePlanDetail from './CurrentAndUpgradePlanDetail';\nimport UpgradePaymentDetails from './UpgradePaymentDetails';\n\nconst propTypes = {\n currentPlan: planPropTypes.isRequired,\n upgradeConfigs: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst UpgradePlan = ({\n currentPlan,\n upgradeConfigs\n}) => {\n const isEmptyUpgradeConfigs = _.isEmpty(upgradeConfigs);\n if (isEmptyUpgradeConfigs) return null;\n\n const [isShowModal, setIsShowModal] = useState(false);\n const [planCycleType, setPlanCycleType] = useState('yearly');\n const [discountPercentage, setDiscountPercentage] = useState(0);\n const [couponCode, setCouponCode] = useState('');\n const [isApplied, setIsApplied] = useState(false);\n const [message, setMessage] = useState('');\n\n const [creditBalance, setCreditBalance] = useState(_.get(window, 'creditBalance', 0));\n const [isCreditApplied, setIsCreditApplied] = useState(true);\n\n const modifiedUpgradeConfigs = _.map(upgradeConfigs, ({ targetPlan, upgradeDetails }) => {\n return { ...targetPlan, upgradeDetails, targetPlan };\n }); // default have.. but spreaded for common use coupon flow...\n\n const [planGroups, setPlanGroups] = useState(\n _.groupBy(initCurrentNetPrice(modifiedUpgradeConfigs), 'plan_name')\n );\n const currentCyclicPeriodPlans = _.flatten(_.map(planGroups, (planGroup) => {\n return _.filter(planGroup, (plan) => cyclicFilter(planCycleType, plan));\n }));\n const [currentUpgradePlan, setCurrentUpgradePlan] = useState(_.last(currentCyclicPeriodPlans));\n const plansGroupedByCyclicMonths = _.groupBy(_.flatMap(planGroups), 'cycle_duration_in_months');\n\n const onUpdateCouponPricesInPayments = (config) => {\n const {\n alteredCouponCode, alteredIsApplied, alteredPlanGroups,\n discountPercentage: couponDiscountPercentage\n } = getCouponConfig(config, [], planGroups);\n setCouponCode(alteredCouponCode);\n setIsApplied(alteredIsApplied);\n setPlanGroups(alteredPlanGroups);\n setDiscountPercentage(couponDiscountPercentage);\n const updatedCurrentUpgradedPlan = _.find(_.flattenDeep(_.values(alteredPlanGroups)), (\n { id }\n ) => currentUpgradePlan.id === id);\n setCurrentUpgradePlan(updatedCurrentUpgradedPlan || currentUpgradePlan);\n };\n\n useEffect(() => {\n fetchPreApplyCoupon().then((result) => {\n const { status, coupon } = result;\n if (status) {\n setMessage(`${coupon.discount_percentage}% discount applied`);\n onUpdateCouponPricesInPayments(coupon);\n }\n });\n }, []);\n\n const onUpgrade = () => {\n const args = {\n plan_id: currentUpgradePlan.targetPlan.id,\n purchase_type: 'payment',\n is_upgrade_plan: true,\n coupon_code: couponCode,\n credits_applied: isCreditApplied,\n };\n\n paymentInitialize(args, () => {\n reactToastify('Plan Upgrade Successful!', TOASTIFY_TYPES.SUCCESS);\n setTimeout(() => { window.location.reload(); }, 1.5 * 1000);\n });\n setIsShowModal(false);\n };\n\n const renderUpgradeToTargetPlan = (config, key) => {\n return (\n { setCurrentUpgradePlan(config); }}\n />\n );\n };\n\n const onCouponUpdate = (isUpgradePlan = false) => {\n if (!isApplied) {\n fetchCoupon({ code: couponCode, is_upgrade_plan: isUpgradePlan })\n .then((result) => {\n const { status, coupon } = result;\n if (status) {\n setMessage(`${coupon.discount_percentage}% discount applied`);\n return onUpdateCouponPricesInPayments(coupon);\n }\n return setMessage('Invalid Coupon');\n });\n }\n setMessage('');\n onUpdateCouponPricesInPayments({});\n return null;\n };\n\n const cyclicPeriods = _.filter(cyclicPlansPeriods, ({ period }) => {\n return _.some(upgradeConfigs, ({ targetPlan }) => {\n return targetPlan.cycle_duration_in_months === period;\n });\n });\n\n const renderModal = () => {\n let modalProps = {\n onClose: () => setIsShowModal(false),\n title: 'Upgrade Plan',\n shouldShow: isShowModal,\n size: 'lg'\n };\n\n if (!_.isEmpty(currentUpgradePlan)) {\n modalProps = { ...modalProps, okBtnTitle: 'Upgrade', onSave: () => onUpgrade() };\n }\n\n return (\n \n
    \n
    \n \n
    \n
    \n {\n setCreditBalance(newCreditBalance);\n setIsCreditApplied(isCreditUsed);\n }\n }\n />\n onCouponUpdate(true)}\n message={message}\n />\n
    \n
    \n
    Eligible Upgrade plans
    \n
    \n {_.map(currentCyclicPeriodPlans, renderUpgradeToTargetPlan)}\n
    \n
    \n
    \n \n
    \n
    \"Change\"
    \n
    \n \n
    \n {!_.isEmpty(currentUpgradePlan)\n && (\n \n )}\n
    \n
    \n );\n };\n\n return (\n
    \n { setIsShowModal(true); }}\n className=\"hide-minimal-content upgrade-btn btn-info btn-pill btn btn-sm nav-item\"\n >\n Upgrade plan\n \n {renderModal()}\n
    \n );\n};\n\nUpgradePlan.propTypes = propTypes;\nUpgradePlan.defaultProps = defaultProps;\n\nexport default withErrorBoundary(UpgradePlan);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n labels: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n datasets: PropTypes.arrayOf(PropTypes.shape({})),\n chartType: PropTypes.string\n};\n\nconst defaultProps = {\n labels: [],\n datasets: [],\n chartType: 'Line'\n};\n\nconst ChartJsGraph = () => {\n // Removed as \n // - this page is not used anymore.\n // - to remove chart js and thereby reducing js bundle size.\n return
    \n};\n\nChartJsGraph.propTypes = propTypes;\nChartJsGraph.defaultProps = defaultProps;\n\nexport default ChartJsGraph;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport ChartJsGraph from 'common/components/ChartJsGraph';\n\nconst propTypes = {\n userAndStrategyDetails: PropTypes.arrayOf(PropTypes.shape({})),\n orders: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nconst defaultProps = { userAndStrategyDetails: [], orders: [] };\n\nconst HeaderDetails = ({ userAndStrategyDetails, orders }) => {\n const groupedByOrdersDates = _.groupBy(orders, (order) => moment(order.created_at).format('YYYY-MM-DD'));\n const chartDataSetsForOrders = [\n {\n label: 'Orders By Date',\n data: _.map(groupedByOrdersDates, (groupedByOrdersDate) => _.size(groupedByOrdersDate)),\n fill: true,\n backgroundColor: ['rgb(255, 99, 132)', 'rgb(54, 162, 235)', 'rgb(255, 205, 86)'],\n hoverOffset: 4\n },\n ];\n\n const chartDataSetsForStrategies = [\n {\n label: 'Permitted Strategy Based On Users',\n data: _.map(userAndStrategyDetails, ({ strategy_access: strategyAccess }) => {\n return _.size(strategyAccess);\n }),\n fill: true,\n backgroundColor: ['rgb(255, 99, 132)', 'rgb(54, 162, 235)', 'rgb(255, 205, 86)'],\n hoverOffset: 4\n },\n ];\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n {\n return brokerClientId;\n })}\n datasets={chartDataSetsForStrategies}\n />\n
    \n
    \n
    \n );\n};\n\nHeaderDetails.propTypes = propTypes;\nHeaderDetails.defaultProps = defaultProps;\n\nexport default HeaderDetails;\n","import _ from 'lodash';\nexport const getDisplayRows = (rows, currentPageIndex, perIndex) => {\n if (_.isEmpty(rows)) return [];\n\n const totalRows = _.size(rows);\n const startOfRange = perIndex * currentPageIndex;\n const endOfRange = startOfRange + perIndex < totalRows\n ? startOfRange + perIndex\n : totalRows;\n const range = _.range(startOfRange, endOfRange);\n\n return _.flattenDeep(_.map(range, (idx) => _.get(rows, idx, [])));\n};\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { removeExchangeFromInstrument } from 'common/utils/InstrumentUtils';\nimport MoneyDisplay from 'common/components/MoneyDisplay';\nimport TransactionType from 'common/components/TransactionType';\nimport moment from 'moment';\nimport { STATUS_STYLE_CONFIG } from 'modules/OrderDetails/config';\nimport PaginationFooter from 'common/components/PaginationFooter/index';\nimport { getDisplayRows } from '../helper';\n\nconst propTypes = {\n orders: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nconst defaultProps = { orders: [] };\n\nconst OrderDetails = ({ orders }) => {\n const [currentPageIndex, setCurrentPageIndex] = useState(0);\n const ordersToDisplay = getDisplayRows(orders, currentPageIndex, 20);\n\n const renderOrder = (order, idx) => {\n const {\n instrument, is_entry: isEntry, is_stop_loss: isStopLoss, quantity, signal_price: signalPrice,\n signal_time: signalTime, traded_price: tradedPrice, traded_time: tradedTime,\n transaction_type: transctionType, status, trading_symbol: tradingSymbol\n } = order;\n\n const statusConfig = _.get(STATUS_STYLE_CONFIG, status);\n const statusText = _.get(statusConfig, 'statusText', status);\n const statusTextClassName = _.get(statusConfig, 'statusTextClassName', 'text-muted');\n\n return (\n \n {removeExchangeFromInstrument(instrument)}\n \n {isEntry ? check_circle : '-'}\n \n {!isEntry && !isStopLoss\n ? check_circle : '-'}\n \n \n {!isEntry && isStopLoss\n ? check_circle : '-'}\n \n {quantity}\n \n {signalPrice\n ? {signalPrice} : '-'}\n \n \n \n {signalTime ? moment(signalTime).format('YYYY-MM-DD HH:mm:ss') : '-'}\n \n \n \n {tradedPrice\n ? {tradedPrice} : '-'}\n \n \n \n {tradedTime ? moment(tradedTime).format('YYYY-MM-DD HH:mm:ss') : '-'}\n \n \n {tradingSymbol}\n \n {_.startCase(statusText)}\n \n \n );\n };\n\n if (_.isEmpty(orders)) {\n return
    No Orders Placed
    ;\n }\n\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(ordersToDisplay, renderOrder)}\n \n
    InstrumentTransaction TypeEntryExitStop LossQuantitySignal PriceSignal TimeTraded PriceTraded TimeTrading SymbolStatus
    \n
    \n\n
    \n setCurrentPageIndex(paramPageIndex)}\n />\n
    \n
    \n );\n};\n\nOrderDetails.propTypes = propTypes;\nOrderDetails.defaultProps = defaultProps;\n\nexport default OrderDetails;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'common/components/ModalComponent';\nimport { STRATEGY_ACCESS_STATUS } from 'common/constants/index';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { onCreateStrategyAccess, onUpdateStrategyAccess } from 'common/api/strategyAccess';\nimport { userPropTypes } from 'common/propTypes';\nimport { RUN_STATUS_CODES } from 'common/configs/runStatus';\nimport axios from 'axios';\nimport { onReStartRun } from 'common/api/run';\nimport qs from 'qs';\n\nconst propTypes = {\n userAndStrategyDetail: PropTypes.shape({\n strategy_access: PropTypes.arrayOf(PropTypes.shape({})),\n user: userPropTypes,\n runs: PropTypes.arrayOf(PropTypes.shape({}))\n }),\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onUpdateDetail: PropTypes.func.isRequired,\n shouldShowModal: PropTypes.bool.isRequired,\n onCloseModal: PropTypes.func.isRequired\n};\nconst defaultProps = { userAndStrategyDetail: {} };\n\nconst UserStrategyDetails = ({\n strategies, userAndStrategyDetail, onUpdateDetail, shouldShowModal, onCloseModal\n}) => {\n if (!shouldShowModal) return null;\n const { strategy_access: strategyAccess, user, runs } = userAndStrategyDetail;\n\n const onUpdateUserAndStrategyDetail = (res) => {\n const { strategy_access: resStrategyAccess } = res;\n\n const isAlreadyPresent = _.some(\n strategyAccess, ({ id }) => id === resStrategyAccess.id\n );\n const updatedStrategyAccess = !isAlreadyPresent ? [...strategyAccess, resStrategyAccess]\n : _.map(strategyAccess, (access) => {\n if (access.id === resStrategyAccess.id) return resStrategyAccess;\n return access;\n });\n\n onUpdateDetail({ ...userAndStrategyDetail, strategy_access: updatedStrategyAccess });\n return reactToastify('Access Granted', TOASTIFY_TYPES.SUCCESS);\n };\n\n const onCreateNewAccess = (strategyId) => {\n onCreateStrategyAccess({\n strategy_id: strategyId, status: STRATEGY_ACCESS_STATUS.PAID, user_id: user.id\n }).then((res) => {\n onUpdateUserAndStrategyDetail(res);\n });\n };\n\n const onUpdateStatus = (id, status) => {\n onUpdateStrategyAccess({ id, strategyParams: { status } }).then((res) => {\n onUpdateUserAndStrategyDetail(res);\n });\n };\n\n const renderStrategyAccessBasedOnStrategy = (strategy) => {\n const strategyId = strategy.id;\n const accessObj = _.find(strategyAccess, ({ strategy_id: sId }) => strategyId === sId);\n const status = _.get(accessObj, 'status', '');\n const id = _.get(accessObj, 'id', '');\n\n if (status === STRATEGY_ACCESS_STATUS.PAID) return 'Access granted';\n\n return (\n (id ? onUpdateStatus(id, STRATEGY_ACCESS_STATUS.PAID) : onCreateNewAccess(strategyId))}\n >\n Give Access\n \n );\n };\n\n const renderRunDetails = (strategy) => {\n const strategyId = strategy.id;\n const accessObj = _.find(strategyAccess, ({ strategy_id: sId }) => strategyId === sId);\n const runId = _.get(accessObj, 'run_id', '');\n if (!runId) return '-';\n\n const runObj = _.find(runs, ({ id }) => id === runId);\n if (_.isEmpty(runObj)) return '-';\n\n const { status } = runObj;\n\n const isStarted = status === RUN_STATUS_CODES.STARTED;\n\n const onStopRun = () => {\n const queryParams = qs.stringify({ is_stop_auxiliary: true });\n const uri = `/runs/${runId}/stop.json?${queryParams}`;\n axios.post(uri).finally(() => {\n onUpdateDetail({\n ...userAndStrategyDetail,\n runs: _.map(runs, (run) => {\n if (run.id === runId) { return { ...run, status: RUN_STATUS_CODES.STOPPED }; }\n return run;\n })\n });\n });\n };\n\n const onRestartRun = () => {\n onReStartRun({\n ignore_incomplete_transaction: true,\n is_stop_auxiliary: 'true'\n }, runId, () => {\n onUpdateDetail({\n ...userAndStrategyDetail,\n runs: _.map(runs, (run) => {\n if (run.id === runId) { return { ...run, status: RUN_STATUS_CODES.STARTED }; }\n return run;\n })\n });\n });\n };\n\n return (\n onStopRun() : () => onRestartRun()}\n key=\"stop-btn\"\n >\n stop_circle\n {isStarted ? 'Stop Run' : 'Restart Run'}\n
    \n );\n };\n\n const renderStrategy = (strategy, idx) => {\n const { title } = strategy;\n\n return (\n \n {title}\n {renderStrategyAccessBasedOnStrategy(strategy)}\n {renderRunDetails(strategy)}\n \n );\n };\n\n return (\n { onCloseModal(); }}\n title=\"Strategy Details\"\n size=\"lg\"\n >\n
    \n \n \n \n \n \n \n \n \n \n {_.map(strategies, renderStrategy)}\n \n
    Strategy NameStrategy AccessRun
    \n
    \n \n );\n};\n\nUserStrategyDetails.propTypes = propTypes;\nUserStrategyDetails.defaultProps = defaultProps;\n\nexport default UserStrategyDetails;\n","import _ from 'lodash';\nimport { availableBrokers } from 'common/brokerConfigs/config';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { userPropTypes } from 'common/propTypes';\nimport UserStrategyDetails from './UserStrategyDetails';\n\nconst propTypes = {\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n userAndStrategyDetail: PropTypes.shape({\n user: userPropTypes,\n strategy_access: PropTypes.arrayOf(PropTypes.shape({}))\n }).isRequired\n};\n\nconst defaultProps = {};\n\nconst TableBody = ({ userAndStrategyDetail: propsUserAndStrategyDetail, strategies }) => {\n const [userAndStrategyDetail, setUserAndStrategyDetail] = useState(propsUserAndStrategyDetail);\n const { user, strategy_access: strategyAccess } = userAndStrategyDetail;\n const { broker, created_at: createdAt } = user;\n const [shouldShowModal, setShouldShowModal] = useState(false);\n\n useEffect(() => {\n setUserAndStrategyDetail(propsUserAndStrategyDetail);\n }, [propsUserAndStrategyDetail]);\n\n const renderPermittedStrategyNames = () => {\n if (_.isEmpty(strategyAccess)) return '-';\n\n return _.join(\n _.map(strategyAccess, ({ strategy_id: strategyId }) => _.get(_.find(\n strategies, ({ id }) => id === strategyId\n ), 'title', '')), ', '\n );\n };\n\n return (\n \n \n setShouldShowModal(true)}\n >\n edit\n \n setShouldShowModal(false)}\n onUpdateDetail={(updatedDetail) => {\n setUserAndStrategyDetail(updatedDetail);\n }}\n />\n \n {availableBrokers[broker] || broker}\n {_.get(user, 'broker_client_name', '')}\n {_.get(user, 'broker_client_id', '')}\n {_.get(user, 'broker_client_email', '')}\n {_.get(user, 'phone_number', '')}\n {moment(createdAt).format('YYYY-MM-DD HH:mm:ss')}\n {renderPermittedStrategyNames(strategyAccess)}\n \n );\n};\n\nTableBody.propTypes = propTypes;\nTableBody.defaultProps = defaultProps;\n\nexport default TableBody;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport PaginationFooter from 'common/components/PaginationFooter/index';\nimport { getDisplayRows } from '../helper';\nimport TableBody from './TableBody';\n\nconst propTypes = {\n userAndStrategyDetails: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n strategies: PropTypes.arrayOf(PropTypes.shape({})).isRequired\n};\n\nconst defaultProps = {};\n\nconst UserDetails = ({ userAndStrategyDetails, strategies }) => {\n const [currentPageIndex, setCurrentPageIndex] = useState(0);\n const userAndStrategyDetailsToDisplay = getDisplayRows(userAndStrategyDetails, currentPageIndex, 20);\n\n const renderUserAndStrategyDetail = (userAndStrategyDetail, idx) => {\n return (\n \n );\n };\n\n if (_.isEmpty(userAndStrategyDetails)) {\n return
    No Users Present
    ;\n }\n\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(userAndStrategyDetailsToDisplay, renderUserAndStrategyDetail)}\n \n
    EditBroker NameBroker Client NameBroker Client IdMail IdMobile NumberCreated AtPermitted Strategies
    \n
    \n
    \n setCurrentPageIndex(paramPageIndex)}\n />\n
    \n
    \n );\n};\n\nUserDetails.propTypes = propTypes;\nUserDetails.defaultProps = defaultProps;\n\nexport default UserDetails;\n","import _ from 'lodash';\nimport classNames from 'classnames';\nimport React, { useState } from 'react';\nimport HeaderDetails from './HeaderDetails/index';\nimport OrderDetails from './OrderDetails/index';\nimport UserDetails from './UserDetails/index';\n\nconst OrderAndUserDetails = (props) => {\n const orders = _.get(props, 'orders', []);\n const currentUser = _.get(props, 'currentUser');\n const strategies = _.get(props, 'strategies', []);\n const userAndStrategyDetails = _.get(props, 'userAndStrategyDetails', [])\n .filter(({ user: { id } }) => id !== currentUser.id);\n const [activeTab, setActiveTab] = useState('userDetails');\n\n const tabs = [\n { label: 'User Details', value: 'userDetails' },\n { label: 'Recent Orders', value: 'orders' }\n ];\n\n const renderTab = ({ label, value }, idx) => {\n const liClassName = classNames('custom-toggle-sm btn btn-primary mr-3', {\n active: value === activeTab\n });\n\n return (\n
  • \n setActiveTab(value)}\n href={`#${value}`}\n role=\"tab\"\n aria-controls=\"home\"\n aria-selected=\"true\"\n >\n {label}\n \n
  • \n );\n };\n\n return (\n
    \n \n
      \n {_.map(tabs, renderTab)}\n
    \n
    \n \n {activeTab === 'userDetails'\n ? \n : }\n
    \n
    \n
    \n );\n};\n\nOrderAndUserDetails.propTypes = {};\n\nexport default OrderAndUserDetails;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport { getUrlParams } from 'common/utils/urlUtils';\nimport { getLocalStorage, setLocalStorage } from 'common/utils/localstorage';\n\nconst propTypes = {};\n\nconst defaultProps = {};\n\nconst PrivateGroupMarketPlaceTab = () => {\n const urlParams = getUrlParams();\n const pg = _.get(urlParams, 'pg', '');\n const privateMarketPlaceLocalStorageKey = 'privateMarketPlace';\n const [lsValue, setLsValue] = useState('');\n\n useEffect(() => {\n const storageValue = getLocalStorage(privateMarketPlaceLocalStorageKey);\n if (pg) { setLocalStorage(privateMarketPlaceLocalStorageKey, pg); }\n\n if (storageValue || pg) { setLsValue(storageValue || pg); }\n }, [urlParams]);\n\n if (_.isEmpty(lsValue)) return null;\n\n const navigateUrl = `/strategies?pg=${lsValue}`;\n\n return (\n \n {_.capitalize(lsValue)}\n {' '}\n MarketPlace\n \n );\n};\n\nPrivateGroupMarketPlaceTab.propTypes = propTypes;\nPrivateGroupMarketPlaceTab.defaultProps = defaultProps;\n\nexport default PrivateGroupMarketPlaceTab;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n referralURL: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst SocialShare = ({ referralURL }) => {\n const message = 'SignUp on Quantman to backtest and deploy your own strategies in live.';\n const messageAndReferralURL = `${message} ${referralURL}`;\n const whatsappURL = `https://wa.me/?text=${messageAndReferralURL}`;\n const facebookURL = `https://www.facebook.com/sharer/sharer.php?u=${referralURL}`;\n const twitterURL = `https://twitter.com/intent/tweet?text=${messageAndReferralURL}`;\n const telegramURL = `https://telegram.me/share/url?url=${messageAndReferralURL}`;\n\n const renderSocial = (socialName, socialImage, socialUrl) => {\n return (\n \n
    \n \"facebook\"\n
    \n \n );\n };\n\n return (\n
    \n

    Share Referral Link on

    \n

    \n You can also share your referral link\n
    \n by copying and sending it or sharing it on your social media.\n

    \n\n
    \n
    \n {renderSocial('facebook', '/facebook.svg', facebookURL)}\n {renderSocial('twitter', '/twitter.svg', twitterURL)}\n {renderSocial('telegram', '/telegram.svg', telegramURL)}\n {renderSocial('whatsapp', '/whatsapp.png', whatsappURL)}\n
    \n
    \n
    \n );\n};\n\nSocialShare.propTypes = propTypes;\nSocialShare.defaultProps = defaultProps;\n\nexport default SocialShare;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport SocialShare from './SocialShare';\n\nconst propTypes = {\n referralURL: PropTypes.string.isRequired\n};\n\nconst defaultProps = {};\n\nconst ReferAndEarn = ({ referralURL }) => {\n const [copyBtnText, setCopyBtnText] = useState('Copy Link');\n const oneIndentation = ' ';\n\n const onCopyReferralLink = () => {\n const tempInput = document.createElement('input');\n document.body.appendChild(tempInput);\n tempInput.value = referralURL;\n tempInput.select();\n document.execCommand('copy', false);\n tempInput.remove();\n\n setCopyBtnText('Copied!');\n setTimeout(() => { setCopyBtnText('Copy Link'); }, 5000);\n return null;\n };\n\n return (\n
    \n
    \n
    \n
    \n
    REFER & EARN
    \n

    Earn 10% of each payment that Your Friends & Family made.

    \n \"share\"\n

    \n Create a passive income by referring your friends, colleagues, and family members to\n
    \n QUANTMAN\n {oneIndentation}\n and earning the 10% credits from each payments they make for lifetime.\n {oneIndentation}\n
    \n You can use this credits while make your payment in Quantman\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n { onCopyReferralLink(); }}\n >\n content_copy\n {oneIndentation}\n {copyBtnText}\n\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nReferAndEarn.propTypes = propTypes;\nReferAndEarn.defaultProps = defaultProps;\n\nexport default ReferAndEarn;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport PropTypes from 'prop-types';\n\nimport ErrorMesssage from 'common/components/ErrorMesssage';\n\nconst propTypes = {\n emailId: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n onEmailIdSubmit: PropTypes.func.isRequired,\n onEmailIdChange: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst emailIdValidator = {\n required: 'please enter email id',\n pattern: {\n value: /\\S+@\\S+\\.\\S+/,\n message: 'Enter valid email id'\n }\n};\n\nconst EmailIdForm = (props) => {\n const { emailId, onEmailIdSubmit, onEmailIdChange } = props;\n const { register, errors, handleSubmit } = useForm();\n\n return (\n
    \n
    \n \"smartphone\"\n

    Enter Your Email Id

    \n
    \n Email Id helps to deliver you the updates such as subscriptions, feature updates etc...\n We will not spam you\n
    \n
    \n
    \n
    \n
    \n \n email\n \n onEmailIdChange(event.target.value)}\n ref={register(emailIdValidator)}\n placeholder=\"e.g. email@example.com\"\n />\n
    \n \n
    \n \n Submit\n \n \n
    \n );\n};\n\nEmailIdForm.defaultProps = defaultProps;\nEmailIdForm.propTypes = propTypes;\n\nexport default EmailIdForm;\n","import React, { useState } from 'react';\nimport Modal from 'common/components/ModalComponent';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nimport { signOut, updateEmailId } from 'common/api/user';\nimport EmailIdForm from './EmailIdForm';\n\nconst propTypes = { redirectPath: PropTypes.string.isRequired };\nconst defaultProps = {};\n\nconst MandatoryEmailId = ({ redirectPath }) => {\n const [emailId, setEmailId] = useState('');\n\n const onEmailIdSubmit = () => {\n updateEmailId(emailId)\n .then((res) => {\n if (res.status) {\n reactToastify('Email Id updated successfully', TOASTIFY_TYPES.SUCCESS);\n setTimeout(() => {\n window.location.href = redirectPath;\n }, 1000);\n } else { reactToastify(res.message || 'Email Id updation failed', TOASTIFY_TYPES.ERROR); }\n });\n };\n\n return (\n \n \n \n );\n};\n\nMandatoryEmailId.propTypes = propTypes;\nMandatoryEmailId.defaultProps = defaultProps;\n\nexport default MandatoryEmailId;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\n\nfunction TelegramPopUp() {\n const [showModal, setShowModal] = useState(false);\n const today = new Date().toISOString().slice(0, 10);\n\n useEffect(() => {\n const lastModalDate = localStorage.getItem('telegramPopupLastModalDate');\n\n const storedDate = new Date(lastModalDate);\n const lastWeek = new Date();\n lastWeek.setDate(lastWeek.getDate() - 7);\n\n if (_.isEmpty(lastModalDate) || storedDate < lastWeek) {\n setShowModal(true);\n }\n }, []);\n\n const handleCloseModal = () => {\n localStorage.setItem('telegramPopupLastModalDate', today);\n setShowModal(false);\n };\n\n return (\n showModal && (\n
    \n \n
    \n \"telegram\"\n
    Join us on telegram
    \n Join Now\n
    \n
    \n )\n );\n}\n\nexport default TelegramPopUp;\n","export const LANGUAGES = [\n 'Tamil',\n 'Malayalam',\n 'Telugu',\n 'Kannada',\n 'Hindi',\n 'English',\n // 'Bengali',\n // 'Marathi',\n // 'Urdu',\n // 'Gujarati',\n // 'Odia',\n // 'Punjabi',\n // 'Assamese',\n // 'Rajasthani',\n // 'Haryanvi',\n // 'Kashmiri',\n // 'Sindhi',\n // 'Konkani',\n // 'Maithili',\n // 'Santali',\n // 'Nepali',\n // 'Bhojpuri',\n // 'Dogri'\n];\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport Modal from 'common/components/ModalComponent';\nimport { updateMandatoryPreferences, signOut } from 'common/api/user';\nimport { LANGUAGES } from './constants';\n\nconst propTypes = { redirectPath: PropTypes.string.isRequired };\n\nconst Preferences = ({ redirectPath }) => {\n const [selectedLanguages, setSelectedLanguages] = useState([]);\n const [error, setError] = useState('');\n\n const handleSubmit = () => {\n if (!selectedLanguages.length) {\n setError('Please fill the field');\n return;\n }\n\n setError('');\n\n updateMandatoryPreferences(\n { comfortable_languages: selectedLanguages }\n ).then((res) => {\n if (res.status) {\n window.location.href = redirectPath;\n } else {\n setError('Something went wrong');\n }\n });\n };\n\n return (\n \n
    \n
    \n \n \n
    \n
    \n {error &&

    {error}

    }\n
    \n \n
    \n
    \n
    \n \n );\n};\n\nPreferences.propTypes = propTypes;\n\nexport default Preferences;\n","import wrappedFetch from './base';\n\nexport const getTips = () => {\n return wrappedFetch('/tips.json')\n .then((response) => response.json());\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n content: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string\n }).isRequired\n};\n\nconst defaultProps = {};\n\nconst Media = ({ content }) => {\n const { url, alt } = content;\n\n return (\n {alt}\n );\n};\n\nMedia.propTypes = propTypes;\nMedia.defaultProps = defaultProps;\n\nexport default Media;\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n content: PropTypes.arrayOf(PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string\n })).isRequired\n};\n\nconst defaultProps = {};\n\nconst MultiMedia = ({ content }) => {\n const renderContent = ({ url, alt }, idx) => {\n return (\n
    \n {alt}\n
    \n );\n };\n\n return _.map(content, renderContent);\n};\n\nMultiMedia.propTypes = propTypes;\nMultiMedia.defaultProps = defaultProps;\n\nexport default MultiMedia;\n","import { useEffect, useState } from 'react';\n\nconst TIP_LOCAL_STORAGE_KEY = 'tipsPopup';\n\nconst useTipsLocalStorage = () => {\n const [showModal, setShowModal] = useState(false);\n const today = new Date().toISOString().slice(0, 10);\n\n useEffect(() => {\n const lastModalDate = localStorage.getItem(TIP_LOCAL_STORAGE_KEY);\n\n if (!lastModalDate) {\n setShowModal(true);\n return;\n }\n\n if (today !== lastModalDate) {\n setShowModal(true);\n }\n }, []);\n\n const handleCloseModal = () => {\n localStorage.setItem(TIP_LOCAL_STORAGE_KEY, today);\n setShowModal(false);\n };\n\n return { showModal, handleCloseModal };\n};\n\nexport default useTipsLocalStorage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n content: PropTypes.shape({\n url: PropTypes.string,\n alt: PropTypes.string\n }).isRequired\n};\n\nconst defaultProps = {};\n\nconst Video = ({ content }) => {\n const { url, alt } = content;\n let allow = 'accelerometer; autoplay; ';\n allow += 'clipboard-write; encrypted-media; ';\n allow += 'gyroscope; picture-in-picture; web-share';\n\n return (\n \n );\n};\n\nVideo.propTypes = propTypes;\nVideo.defaultProps = defaultProps;\n\nexport default Video;\n","import _ from 'lodash';\nimport { getTips } from 'common/api/tip';\nimport React, { useEffect, useState } from 'react';\nimport ModalComponent from 'v2/common/components/ModalComponent';\nimport classNames from 'classnames';\nimport Media from './Media';\nimport MultiMedia from './MultiMedia';\nimport useTipsLocalStorage from './useTipsLocalStorage';\nimport Video from './Video';\n\nconst Tips = () => {\n const [tips, setTips] = useState([]);\n const [activeIndex, setActiveIndex] = useState(0);\n const tip = tips[activeIndex] || tips[0] || {};\n\n useEffect(() => {\n getTips().then((res) => setTips(res));\n }, []);\n\n const { showModal, handleCloseModal } = useTipsLocalStorage();\n\n const onChangeTip = (isBefore) => {\n if (isBefore) {\n if (activeIndex === 0) return setActiveIndex(tips.length - 1);\n return setActiveIndex(activeIndex - 1);\n }\n if (activeIndex === tips.length - 1) return setActiveIndex(0);\n return setActiveIndex(activeIndex + 1);\n };\n\n const renderTip = () => {\n const { category, content } = tip;\n\n switch (category) {\n case 'media':\n return ;\n case 'multiMedia':\n return ;\n case 'video':\n return
    \n );\n};\n\nBuyOrSellSelector.propTypes = propTypes;\nBuyOrSellSelector.defaultProps = defaultProps;\n\nexport default memo(BuyOrSellSelector);\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\nimport { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\n\nconst propTypes = {\n stopsType: PropTypes.string.isRequired,\n stopsValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onStopsValueChange: PropTypes.func.isRequired,\n shouldIgnorePoints: PropTypes.bool,\n shouldIgnoreUnderlyingSpot: PropTypes.bool,\n origin: PropTypes.string\n};\nconst defaultProps = {\n stopsValue: undefined,\n shouldIgnorePoints: false,\n shouldIgnoreUnderlyingSpot: false,\n origin: 'self'\n};\n\nconst StopsInput = ({\n stopsType, stopsValue, onStopsValueChange,\n shouldIgnorePoints,\n shouldIgnoreUnderlyingSpot,\n origin\n}) => {\n const { Percent, Amount, Points } = STOPS_VALUE_TYPES;\n const options = [\n {\n name: Percent, label: '%', origin: 'self', isShow: true\n },\n {\n name: Amount, label: '₹', origin: 'self', isShow: true\n },\n {\n name: Points, label: 'Pts', origin: 'self', isShow: !shouldIgnorePoints\n },\n {\n name: Percent, label: 'Spot %', origin: 'underlyingSpot', isShow: !shouldIgnoreUnderlyingSpot\n },\n {\n name: Points,\n label: 'Spot Pts',\n origin: 'underlyingSpot',\n isShow: !shouldIgnoreUnderlyingSpot && !shouldIgnorePoints\n }\n ];\n\n const valueType = _.includes([Percent, Amount, Points], stopsType)\n ? `${stopsType}-${origin}`\n : `${Amount}-${origin}`;\n\n const [value, setValue] = useState(stopsValue);\n\n useEffect(() => { setValue(stopsValue); }, [stopsValue]);\n\n const onValueTypeChange = (newStopsValueWithOrigin) => {\n const [newStopsValue, newOrigin] = newStopsValueWithOrigin.split('-');\n const commonConfig = { type: newStopsValue, value: stopsValue };\n\n return onStopsValueChange({\n ...commonConfig,\n origin: { type: newOrigin }\n });\n };\n\n const onChange = (event) => {\n const [newStopsValue, newOrigin] = valueType.split('-');\n const commonConfig = { type: newStopsValue, value: onRegexOnlyNumberAndFloat(event.target.value, false) };\n\n return onStopsValueChange({\n ...commonConfig,\n origin: { type: newOrigin }\n });\n };\n\n return (\n
    \n onValueTypeChange(event.target.value)}\n >\n {_.map(options, ({\n name, label, origin: staticOrigin, isShow\n }, idx) => {\n if (!isShow) return null;\n return ;\n })}\n \n onChange(event, false)}\n value={(value === undefined || !value) ? '' : value.toString()}\n onChange={(event) => { setValue(onRegexOnlyNumberAndFloat(event.target.value, true)); }}\n />\n
    \n );\n};\n\nStopsInput.propTypes = propTypes;\nStopsInput.defaultProps = defaultProps;\n\nexport default StopsInput;\n","import _ from 'lodash';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { toPositiveNumberString } from 'common/stringUtils/toPositiveNumberString';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ReactHtmlParser from 'react-html-parser';\n\nconst propTypes = {\n reEntryOrExecuteOptionConfigs: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onChangeReEntryorExecute: PropTypes.func.isRequired,\n isDisabled: PropTypes.bool,\n};\n\nconst defaultProps = {\n isDisabled: false,\n};\n\nconst DEFAULT_CONFIG = {\n reEntryCount: 0,\n reExecuteCount: 0,\n};\n\nconst ReEntryOrExecute = ({ reEntryOrExecuteOptionConfigs, onChangeReEntryorExecute, isDisabled }) => {\n const filteredConfigs = useMemo(\n () => _.filter(reEntryOrExecuteOptionConfigs, ({ isShow }) => isShow), [reEntryOrExecuteOptionConfigs]\n );\n const selected = useMemo(\n () => _.find(filteredConfigs, ({ value }) => value) || _.head(filteredConfigs), [filteredConfigs]\n );\n const [selectedType, setSelectedType] = useState(selected.name);\n const [isShowHoverMessage, setIsShowHoverMessage] = useState(false);\n\n useEffect(() => {\n if (isShowHoverMessage) { setTimeout(() => { setIsShowHoverMessage(false); }, 5000); }\n }, [isShowHoverMessage]);\n\n const renderTypeSelector = (\n {\n setSelectedType(event.target.value);\n onChangeReEntryorExecute({ ...DEFAULT_CONFIG, [event.target.value]: selected.value });\n }}\n >\n ;\n })}\n \n );\n\n const renderValueSelector = (\n {\n if (isDisabled) {\n setIsShowHoverMessage(true);\n return;\n }\n onChangeReEntryorExecute({\n ...DEFAULT_CONFIG,\n [selectedType]: toPositiveNumberString((event.target.value).toString())\n });\n }}\n >\n \n \n \n \n \n \n );\n\n const renderHoverMessageWithContent = (renderContent) => {\n return (\n Stop Loss
    is Required For ReEntry or ReExecute')}\n isOpen={isShowHoverMessage}\n >\n {renderContent}\n \n );\n };\n\n return (\n
    \n {isDisabled ? renderHoverMessageWithContent(renderTypeSelector) : renderTypeSelector}\n {isDisabled ? renderHoverMessageWithContent(renderValueSelector) : renderValueSelector}\n
    \n );\n};\n\nReEntryOrExecute.propTypes = propTypes;\nReEntryOrExecute.defaultProps = defaultProps;\n\nexport default ReEntryOrExecute;\n","import _ from 'lodash';\nimport { useCallback, useContext, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { SEGMENT_CONFIG, STRIKE_SELECTION_TYPES } from 'v2/common/constants/index';\nimport { TOASTIFY_TYPES, reactToastify } from 'common/utils/reactToastify';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport {\n isIndexInstrumentPresentInInstrumentGroup, isIndexInstrumentWithWeeklyExpiryOnly\n} from '../../components/InstrumentDetails/indexInstrumentsChecker';\nimport { useIntent } from './index';\nimport { IntentsContext } from '../../hoc/withIntentsContext';\nimport { getQuantModes } from '../../configs/index';\n\nexport const useOpenIntent = (intent) => {\n const {\n segment,\n onChangeSegment,\n segmentOptionConfigs,\n intentId,\n createOnChangeHandler,\n maxInstrumentsInGroup,\n isIndexInstrumentIntent,\n instrumentGroups,\n isIndexInstrumentWithWeeklyExpiry,\n isShowInstrumentIndex,\n onUpdateQuickAdjustments,\n onChangeIntentType,\n } = useIntent(intent);\n\n const {\n onUpdateIntent,\n isPipeIntent,\n } = useContext(IntentsContext);\n\n const {\n quantity = {},\n side,\n waitUntilPremiumToIncreaseInPercentage,\n waitUntilPremiumToDecreaseInPercentage,\n waitAndTradeType,\n reEntryCount,\n reExecuteCount,\n stopLoss = {},\n stopGain = {},\n } = intent;\n const optionType = intent?.instrument?.optionType;\n const expiry = intent?.instrument?.expiry;\n const strike = intent?.instrument?.strike;\n const instrumentIndex = intent?.instrument?.instrumentIndex;\n const multiplier = intent?.instrument?.strike?.multiplier || 0;\n const isStopLossPresent = !!stopLoss?.value;\n\n const mode = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs.mode')\n ) || getQuantModes.simple.value;\n\n const isAdvancedMode = useMemo(() => mode === getQuantModes.advanced.value, [mode]);\n const isValidStrikeTypeForMultiplier = useCallback((strikeType) => {\n return _.includes(\n [\n STRIKE_SELECTION_TYPES.EquityBasedStrikeIndex?.value,\n STRIKE_SELECTION_TYPES.FutureBasedStrikeIndex?.value,\n STRIKE_SELECTION_TYPES.PremiumBased?.value,\n STRIKE_SELECTION_TYPES.IndicatorValueBasedStrikeIndex?.value,\n STRIKE_SELECTION_TYPES.DeltaBased?.value\n ], strikeType\n );\n }, []);\n\n const isShowMultiplier = useMemo(() => {\n return isAdvancedMode\n && segment === SEGMENT_CONFIG.option\n && isValidStrikeTypeForMultiplier(strike?.type)\n && (_.get(\n window, 'SA_FEATURE_FLAGS.shouldShowIntentMultiplier', false\n ) || window?.isAdmin || false);\n }, [isAdvancedMode, isValidStrikeTypeForMultiplier, segment, strike.type]);\n\n const uiBehaviourFlags = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiBehaviourFlags')\n );\n const {\n isReEntry,\n isReExecute,\n isTrailingStopLoss,\n isWaitAndTrade\n } = uiBehaviourFlags;\n\n const onChangeStopLossDelayBy = useCallback((delayBy) => {\n onUpdateIntent({ ...intent, stopLoss: { ...stopLoss, delayBy } }, intentId);\n }, [intent, intentId, onUpdateIntent, stopLoss]);\n\n const onChangeStopLoss = useCallback((newStopLoss) => {\n const newIntent = _.cloneDeep(intent);\n const { value } = newStopLoss;\n const trailingAdjustBasedOnStopLoss = value ? {} : { trailingValue: 0, adjustValue: 0 };\n newIntent.stopLoss = { ...newIntent.stopLoss, ...newStopLoss, ...trailingAdjustBasedOnStopLoss };\n if (!value) {\n newIntent.reEntryCount = 0;\n newIntent.reExecuteCount = 0;\n }\n onUpdateIntent(newIntent, intentId);\n }, [intent, intentId, onUpdateIntent]);\n\n const trailingConfigs = useMemo(() => {\n return stopLoss?.trail || {};\n }, [stopLoss.trail]);\n\n const onUpdateTrailingConfigs = useCallback((newTrailingConfigs) => {\n const newIntent = _.cloneDeep(intent);\n newIntent.stopLoss = { ...newIntent.stopLoss, trail: newTrailingConfigs };\n onUpdateIntent(newIntent, intentId);\n }, [intent, intentId, onUpdateIntent]);\n\n const waitAndTradeConfigs = useMemo(() => ({\n waitUntilPremiumToIncreaseInPercentage,\n waitUntilPremiumToDecreaseInPercentage,\n waitAndTradeType,\n }), [waitAndTradeType, waitUntilPremiumToDecreaseInPercentage, waitUntilPremiumToIncreaseInPercentage]);\n\n const onChangeWaitAndTradeConfigs = useCallback((newWaitAndTradeConfigs) => {\n onUpdateIntent({ ...intent, ...newWaitAndTradeConfigs }, intentId);\n }, [intent, intentId, onUpdateIntent]);\n\n const onChangeReEntryorExecute = useCallback((newReEntryorExecuteConfigs) => {\n onUpdateIntent({ ...intent, ...newReEntryorExecuteConfigs }, intentId);\n }, [intent, intentId, onUpdateIntent]);\n\n const reEntryOrExecuteOptionConfigs = useMemo(() => {\n return [\n {\n value: reEntryCount,\n label: 'Re-Entry',\n name: 'reEntryCount',\n isShow: isReEntry && !isPipeIntent,\n },\n {\n value: reExecuteCount,\n label: 'Re-Execute',\n name: 'reExecuteCount',\n isShow: isReExecute && !isPipeIntent,\n }\n ];\n }, [reEntryCount, isReEntry, reExecuteCount, isReExecute, isPipeIntent]);\n\n const onChangeInstrumentIndex = useCallback((newInstrumentIndex) => {\n const newIntent = _.cloneDeep(intent);\n if (newIntent.instrument.type === SEGMENT_CONFIG.equity\n && isIndexInstrumentPresentInInstrumentGroup(instrumentGroups, newInstrumentIndex)) {\n reactToastify('Index instrument is not allowed for Equity segment', TOASTIFY_TYPES.ERROR);\n } else if (isIndexInstrumentWithWeeklyExpiryOnly(instrumentGroups, newInstrumentIndex)) {\n newIntent.instrument.instrumentIndex = newInstrumentIndex;\n newIntent.instrument.expiry.cycle = 'weekly';\n onUpdateIntent(newIntent, intentId);\n } else {\n newIntent.instrument.instrumentIndex = newInstrumentIndex;\n onUpdateIntent(newIntent, intentId);\n }\n }, [intent, intentId, onUpdateIntent, instrumentGroups]);\n\n const onChangeStrike = useCallback((newStrike) => {\n const newIntent = _.cloneDeep(intent);\n newIntent.instrument.strike = newStrike;\n if (!isValidStrikeTypeForMultiplier(newStrike.type)) {\n newIntent.instrument.strike.multiplier = 0;\n }\n onUpdateIntent(newIntent, intentId);\n }, [intent, intentId, isValidStrikeTypeForMultiplier, onUpdateIntent]);\n\n return {\n segment,\n onChangeSegment,\n optionType,\n isRetryEnabled: isReEntry && !isPipeIntent,\n isReExecuteEnabled: isReExecute && !isPipeIntent,\n isTrailingStopLossEnabled: isTrailingStopLoss && !isPipeIntent,\n isWaitAndTradeEnabled: isWaitAndTrade && !isPipeIntent,\n onChangeOptionType: createOnChangeHandler('instrument.optionType'),\n onChangeQuantity: createOnChangeHandler('quantity'),\n quantity,\n onUpdateQuickAdjustments,\n instrumentIndex,\n onChangeInstrumentIndex,\n side,\n onChangeSide: createOnChangeHandler('side'),\n expiry,\n multiplier,\n onChangeMultiplier: createOnChangeHandler('instrument.strike.multiplier'),\n onChangeExpiry: createOnChangeHandler('instrument.expiry'),\n strike,\n stopGain,\n isShowInstrumentIndex,\n isAdvancedMode,\n trailingConfigs,\n onUpdateTrailingConfigs,\n waitAndTradeConfigs,\n onChangeWaitAndTradeConfigs,\n stopLoss,\n reEntryOrExecuteOptionConfigs,\n onChangeStrike,\n isIndexInstrumentIntent,\n segmentOptionConfigs,\n onChangeStopLoss,\n onChangeStopLossDelayBy,\n isStopLossPresent,\n onChangeStopGain: createOnChangeHandler('stopGain'),\n onChangeIntentType,\n onChangeReEntryorExecute,\n intentId,\n maxInstrumentsInGroup,\n isShowMultiplier,\n isIndexInstrumentWithWeeklyExpiry,\n instrumentGroups,\n };\n};\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n trailingInput: PropTypes.string.isRequired,\n trailingValue: PropTypes.number,\n onTrailingValueChange: PropTypes.func.isRequired,\n};\nconst defaultProps = { trailingValue: undefined };\n\nconst TrailingStopLossInputs = ({\n trailingInput, trailingValue, onTrailingValueChange,\n}) => {\n const [trailingBtnName] = useState(_.uniqueId('trailingBtnName-'));\n const [value, setValue] = useState(trailingValue);\n\n useEffect(() => { setValue(trailingValue); }, [trailingValue]);\n\n const onChange = (event) => {\n const targetValue = Number(event.target.value) !== 0 ? event.target.value : undefined;\n\n onTrailingValueChange({ [trailingInput]: onRegexOnlyNumberAndFloat(targetValue, false) });\n };\n\n return (\n
    \n onChange(event, false)}\n value={value === undefined ? '' : value.toString()}\n onChange={(event) => { setValue(onRegexOnlyNumberAndFloat(event.target.value, true)); }}\n />\n
    \n );\n};\n\nTrailingStopLossInputs.propTypes = propTypes;\nTrailingStopLossInputs.defaultProps = defaultProps;\n\nexport default TrailingStopLossInputs;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { SL_TRAIL_TYPES } from 'v2/common/constants/index';\nimport { STOPS_VALUE_TYPES } from 'common/constants/index';\nimport TrailingStopLossInputs from './TrailingStopLossInputs';\n\nconst TRAILING_VALUE = 'trailingValue';\nconst ADJUST_VALUE = 'adjustValue';\nconst BOOK_PROFIT_ON = 'bookProfitOn';\nconst BOOK_PROFIT = 'bookProfit';\n\nconst propTypes = {\n setTrailingStopLossConfig: PropTypes.func.isRequired,\n trailingStopLossConfig: PropTypes.shape({\n type: PropTypes.string,\n adjustValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n trailingValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bookProfitOn: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bookProfit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }).isRequired,\n stopLossType: PropTypes.string.isRequired,\n origin: PropTypes.string,\n};\n\nconst defaultProps = {\n origin: 'self',\n};\n\nconst TrailingFields = ({\n trailingStopLossConfig,\n setTrailingStopLossConfig,\n stopLossType,\n origin\n}) => {\n const { Percent, Amount, Points } = STOPS_VALUE_TYPES;\n const renderSymbol = useMemo(() => {\n const symbolMap = {\n self: {\n [Percent]: '%',\n [Amount]: '₹',\n [Points]: 'Pts',\n },\n underlyingSpot: {\n [Percent]: 'Spot %',\n [Points]: 'Spot Pts',\n },\n };\n\n return {symbolMap[origin]?.[stopLossType] || ''};\n }, [Amount, Percent, Points, origin, stopLossType]);\n\n const [isBookProfitEnabled, setIsBookProfitEnabled] = useState(\n trailingStopLossConfig.type === SL_TRAIL_TYPES.BookAndLinear\n );\n\n const renderTrailingStoplossInputs = (trailProperty) => {\n return (\n {\n setTrailingStopLossConfig({\n ...trailingStopLossConfig,\n ...partiallyUpdatedConfig,\n });\n }}\n />\n );\n };\n\n const oneIndentation = ' ';\n\n const renderLinear = () => {\n if (trailingStopLossConfig.type !== SL_TRAIL_TYPES.Linear) return null;\n\n return (\n <>\n
    \n If Instument Moves\n {oneIndentation}\n \n X\n {' '}\n {renderSymbol}\n \n {renderTrailingStoplossInputs(TRAILING_VALUE)}\n Then Move Stoploss By\n {oneIndentation}\n \n Y\n {' '}\n {renderSymbol}\n \n {renderTrailingStoplossInputs(ADJUST_VALUE)}\n
    \n\n

    \n Every time instrument moves X\n {' '}\n {renderSymbol}\n {' '}\n in the profit\n direction then move stop loss Y\n {' '}\n {renderSymbol}\n {' '}\n in same direction.\n

    \n \n );\n };\n\n const renderBookAndLinear = () => {\n if (trailingStopLossConfig.type !== SL_TRAIL_TYPES.BookAndLinear) return null;\n\n return (\n <>\n
    \n When profit reaches\n {oneIndentation}\n \n P1\n {oneIndentation}\n {renderSymbol}\n \n {renderTrailingStoplossInputs(BOOK_PROFIT_ON)}\n then lock profit only once on\n {oneIndentation}\n \n P2\n {oneIndentation}\n {renderSymbol}\n \n {renderTrailingStoplossInputs(BOOK_PROFIT)}\n
    \n
    \n After that, \n
    \n
    \n Whenever profit increases by\n \n X\n {oneIndentation}\n {renderSymbol}\n \n {oneIndentation}\n {renderTrailingStoplossInputs(TRAILING_VALUE)}\n then trail by\n \n Y\n {oneIndentation}\n {renderSymbol}\n \n {oneIndentation}\n {renderTrailingStoplossInputs(ADJUST_VALUE)}\n
    \n \n );\n };\n\n return (\n
    \n
    \n {\n setIsBookProfitEnabled(!isBookProfitEnabled);\n setTrailingStopLossConfig({\n ...trailingStopLossConfig,\n type: isBookProfitEnabled\n ? SL_TRAIL_TYPES.Linear\n : SL_TRAIL_TYPES.BookAndLinear,\n });\n }}\n />\n \n
    \n\n {renderLinear()}\n {renderBookAndLinear()}\n
    \n );\n};\n\nTrailingFields.propTypes = propTypes;\nTrailingFields.defaultProps = defaultProps;\n\nexport default TrailingFields;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ReactHtmlParser from 'react-html-parser';\n\nconst propTypes = {\n isStopLossPresent: PropTypes.bool.isRequired,\n onShowTrailingStopLoss: PropTypes.func.isRequired,\n isShowCheckBox: PropTypes.bool,\n isTrailingStopLossEnabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {\n isShowCheckBox: false,\n isTrailingStopLossEnabled: false,\n};\n\nconst AddTrailing = ({\n label, isStopLossPresent, onShowTrailingStopLoss, isShowCheckBox, isTrailingStopLossEnabled\n}) => {\n const [isShowHoverMessage, setIsShowHoverMessage] = useState(false);\n const oneIndentation = ' ';\n\n useEffect(() => {\n if (isShowHoverMessage) { setTimeout(() => { setIsShowHoverMessage(false); }, 5000); }\n }, [isShowHoverMessage]);\n\n const renderAddButton = () => {\n const addButton = (\n {\n if (!isStopLossPresent) setIsShowHoverMessage(true);\n else onShowTrailingStopLoss(true);\n }}\n type=\"button\"\n >\n add\n {oneIndentation}\n {label}\n \n );\n\n const addCheckBox = (\n
    \n {\n if (!isStopLossPresent) setIsShowHoverMessage(true);\n else onShowTrailingStopLoss(!isTrailingStopLossEnabled);\n }}\n />\n \n
    \n );\n\n if (isStopLossPresent || !isShowHoverMessage) return isShowCheckBox ? addCheckBox : addButton;\n\n return (\n Stop Loss
    is Required For Trailing Stop Loss')}\n isOpen={isShowHoverMessage}\n >\n {isShowCheckBox ? addCheckBox : addButton}\n \n );\n };\n\n return (\n
    \n {renderAddButton()}\n
    \n );\n};\n\nAddTrailing.propTypes = propTypes;\nAddTrailing.defaultProps = defaultProps;\n\nexport default AddTrailing;\n","import { SL_TRAIL_TYPES } from 'v2/common/constants/index';\n\nconst TRAILING_VALUE = 'trailingValue';\nconst ADJUST_VALUE = 'adjustValue';\nconst BOOK_PROFIT_ON = 'bookProfitOn';\nconst BOOK_PROFIT = 'bookProfit';\n\nexport const getTrailingStopLossValidationErrors = (trailingStopLossConfig) => {\n const errorConfig = [];\n\n if (trailingStopLossConfig[ADJUST_VALUE] === undefined\n && trailingStopLossConfig[TRAILING_VALUE] === undefined\n && trailingStopLossConfig[BOOK_PROFIT_ON] === undefined\n && trailingStopLossConfig[BOOK_PROFIT] === undefined) {\n return errorConfig;\n }\n\n // if (trailingStopLossConfig[TRAILING_VALUE] !== undefined\n // && trailingStopLossConfig[TRAILING_VALUE] < 5) {\n // errorConfig.push('* For Option, the X percentage is Minimum 5');\n // }\n\n // if (trailingStopLossConfig[BOOK_PROFIT_ON] !== undefined\n // && trailingStopLossConfig[BOOK_PROFIT_ON] < 5) {\n // errorConfig.push('* P1 percentage is Minimum 5');\n // }\n\n const isAnyUndefinedInLinear = (\n trailingStopLossConfig.type === SL_TRAIL_TYPES.Linear\n && (\n (trailingStopLossConfig[TRAILING_VALUE] !== undefined\n && trailingStopLossConfig[ADJUST_VALUE] === undefined)\n || (trailingStopLossConfig[TRAILING_VALUE] === undefined\n && trailingStopLossConfig[ADJUST_VALUE] !== undefined)\n )\n );\n\n const isAnyUndefinedInBookAndLinear = (\n trailingStopLossConfig.type === SL_TRAIL_TYPES.BookAndLinear\n && (\n (trailingStopLossConfig[BOOK_PROFIT_ON] !== undefined\n && trailingStopLossConfig[BOOK_PROFIT] === undefined)\n || (trailingStopLossConfig[BOOK_PROFIT_ON] === undefined\n && trailingStopLossConfig[BOOK_PROFIT] !== undefined)\n )\n );\n\n if (isAnyUndefinedInLinear || isAnyUndefinedInBookAndLinear) {\n errorConfig.push('* All values are Required');\n }\n\n if ((trailingStopLossConfig[TRAILING_VALUE] && trailingStopLossConfig[ADJUST_VALUE])\n && (trailingStopLossConfig[TRAILING_VALUE] < trailingStopLossConfig[ADJUST_VALUE])) {\n errorConfig.push('* X should be Greater than or Equal to Y');\n }\n\n if (trailingStopLossConfig.type === SL_TRAIL_TYPES.BookAndLinear\n && (trailingStopLossConfig[BOOK_PROFIT_ON] && trailingStopLossConfig[BOOK_PROFIT])\n && (trailingStopLossConfig[BOOK_PROFIT_ON] < trailingStopLossConfig[BOOK_PROFIT])) {\n errorConfig.push('* P1 should be Greater than or Equal to P2');\n }\n\n return errorConfig;\n};\n","import _ from 'lodash';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useForm } from 'react-hook-form';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'v2/common/components/ModalComponent';\nimport { SL_TRAIL_TYPES } from 'v2/common/constants/index';\nimport TrailingFields from './TrailingFields';\nimport AddTrailing from './AddTrailing';\nimport { getTrailingStopLossValidationErrors } from './errorConfig';\n\nconst propTypes = {\n onUpdateTrailingConfigs: PropTypes.func.isRequired,\n trailingConfigs: PropTypes.shape({\n type: PropTypes.string,\n adjustValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n trailingValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bookProfitOn: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bookProfit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }).isRequired,\n isStopLossPresent: PropTypes.bool.isRequired,\n stopLossType: PropTypes.string.isRequired,\n addTrailingLabel: PropTypes.string,\n origin: PropTypes.string\n};\n\nconst defaultProps = {\n addTrailingLabel: 'Add',\n origin: 'self'\n};\n\nconst TrailingStopLoss = ({\n addTrailingLabel,\n onUpdateTrailingConfigs,\n trailingConfigs,\n isStopLossPresent,\n stopLossType,\n origin\n}) => {\n const {\n adjustValue, trailingValue, bookProfitOn, bookProfit, type: trailType\n } = trailingConfigs;\n const methods = useForm();\n\n const [isShowTrailingStopLossModal, setIsShowTrailingStopLossModal] = useState(false);\n const [isShowHoverMessage, setIsShowHoverMessage] = useState(false);\n const [trailingStopLossConfig, setTrailingStopLossConfig] = useState(trailingConfigs);\n\n const [errors, setErrors] = useState([]);\n\n const validateErrors = useCallback(() => {\n const errorConfig = getTrailingStopLossValidationErrors(trailingStopLossConfig);\n setErrors(errorConfig);\n return _.isEmpty(errorConfig);\n }, [trailingStopLossConfig]);\n\n const onSubmit = () => {\n if (validateErrors()) {\n if (trailingStopLossConfig.type === SL_TRAIL_TYPES.Linear) {\n delete trailingStopLossConfig.bookProfitOn;\n delete trailingStopLossConfig.bookProfit;\n }\n onUpdateTrailingConfigs(trailingStopLossConfig);\n setIsShowTrailingStopLossModal(false);\n setErrors([]);\n }\n };\n\n useEffect(() => {\n validateErrors();\n }, [trailingStopLossConfig, validateErrors]);\n\n const renderTrailingStopLossValues = () => {\n return (\n
    { setIsShowTrailingStopLossModal(true); }}>\n {trailType === SL_TRAIL_TYPES.BookAndLinear && (\n <>\n
    \n P1 : \n {bookProfitOn}\n
    \n
    \n P2: \n {bookProfit}\n
    \n \n )}\n
    \n X : \n {trailingValue}\n
    \n
    \n Y : \n {adjustValue}\n
    \n edit\n
    \n );\n };\n\n useEffect(() => {\n if (isShowHoverMessage) { setTimeout(() => { setIsShowHoverMessage(false); }, 5000); }\n }, [isShowHoverMessage]);\n\n const renderAddButton = () => {\n return (\n \n );\n };\n\n const renderTrailingStopLossView = () => {\n return (\n
    \n {(trailingValue && adjustValue)\n ? renderTrailingStopLossValues() : renderAddButton()}\n
    \n );\n };\n\n return (\n <>\n {renderTrailingStopLossView()}\n onSubmit())}\n shouldShow={isShowTrailingStopLossModal}\n onClose={() => setIsShowTrailingStopLossModal(false)}\n onCancel={() => setTrailingStopLossConfig((prevConfig) => ({\n ...prevConfig,\n trailingValue: undefined,\n adjustValue: undefined,\n bookProfitOn: undefined,\n bookProfit: undefined\n }))}\n title=\"Trailing Stop Loss\"\n size=\"md\"\n okBtnTitle=\"Submit\"\n cancelBtnTitle=\"Clear All\"\n className=\"trailing-stop-modal\"\n >\n <>\n \n\n {!_.isEmpty(errors) && (\n
    \n {_.map(errors, (error, idx) => {\n return
    {error}
    ;\n })}\n
    \n )}\n \n \n \n );\n};\n\nTrailingStopLoss.propTypes = propTypes;\nTrailingStopLoss.defaultProps = defaultProps;\n\nexport default TrailingStopLoss;\n","import _ from 'lodash';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n delayBy: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {\n delayBy: undefined,\n};\n\nconst ONE_SECOND = 1000;\n\n// Local value in seconds. Value in quantConfig in millis.\nconst DelayBy = ({ delayBy, onChange }) => {\n const [localDelayBy, setLocalDelayBy] = useState(\n _.isNumber(delayBy) ? delayBy / ONE_SECOND : delayBy\n );\n\n const onLocalDelayByChange = useCallback((event) => {\n const valueString = _.trim(event.target.value);\n const newDelayBy = Number(valueString);\n if (!_.isEmpty(valueString) && _.isNumber(newDelayBy)) {\n setLocalDelayBy(newDelayBy);\n onChange(newDelayBy * ONE_SECOND);\n return;\n }\n setLocalDelayBy(undefined);\n onChange(undefined);\n }, [onChange]);\n\n useEffect(() => {\n setLocalDelayBy(_.isNumber(delayBy) ? delayBy / ONE_SECOND : delayBy);\n }, [delayBy]);\n\n return (\n
    \n \n
    \n secs\n
    \n
    \n );\n};\n\nDelayBy.propTypes = propTypes;\nDelayBy.defaultProps = defaultProps;\n\nexport default DelayBy;\n","import _ from 'lodash';\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { OPTION_TYPES } from 'v2/common/constants/index';\nimport classNames from 'classnames';\n\nconst propTypes = {\n optionType: PropTypes.string,\n onChangeOptionType: PropTypes.func.isRequired,\n};\nconst defaultProps = {\n optionType: '',\n};\n\nconst OptionTypeSelector = ({ optionType, onChangeOptionType }) => {\n const { CE, PE } = OPTION_TYPES;\n const isCE = optionType === CE;\n\n const divClassName = classNames('option-type-selector', {\n 'bg-success p-1': isCE,\n 'bg-danger p-1': !isCE\n });\n\n return (\n onChangeOptionType(isCE ? PE : CE)}\n >\n \n \n );\n};\n\nOptionTypeSelector.propTypes = propTypes;\nOptionTypeSelector.defaultProps = defaultProps;\n\nexport default memo(OptionTypeSelector);\n","import _ from 'lodash';\nimport React, { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { EXPIRY_MONTHLY_DETAILS, EXPIRY_WEEKLY_DETAILS } from 'v2/common/constants/index';\nimport classNames from 'classnames';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n expiry: PropTypes.shape({\n index: PropTypes.number.isRequired,\n cycle: PropTypes.string.isRequired,\n }).isRequired,\n isDisabled: PropTypes.bool,\n onChangeExpiry: PropTypes.func.isRequired,\n errorConfig: PropTypes.shape({}),\n isIlliquidInfo: PropTypes.bool,\n};\nconst defaultProps = {\n isDisabled: false,\n errorConfig: {},\n isIlliquidInfo: false,\n};\n\nconst ExpirySelector = ({\n expiry, onChangeExpiry, isDisabled, errorConfig, isIlliquidInfo\n}) => {\n const isErrorInExpiry = _.get(errorConfig, 'isErrorInExpiry', false);\n const isPremiumError = _.get(errorConfig, 'isPremiumError', false);\n const { index, cycle } = expiry;\n\n const expiryDetails = useMemo(() => {\n return { ...EXPIRY_WEEKLY_DETAILS, ...EXPIRY_MONTHLY_DETAILS };\n }, []);\n\n const selectedValue = useMemo(() => `${index}-${cycle}`, [index, cycle]);\n\n const mtcContent = useMemo(() => (\n
    \n The monthly contracts, being comparatively less liquid than the weekly contracts,\n may result in significant slippages due to insufficient volume.\n
    \n
    \n ), []);\n\n const renderExpiryOption = useCallback((expiryDetail, value) => {\n const { label } = expiryDetail;\n\n return ;\n }, []);\n\n const selectClassName = classNames('', { 'is-invalid': isErrorInExpiry });\n\n const renderCrownImage = () => {\n if (!isPremiumError) return null;\n\n return (\n \"\"\n );\n };\n\n const renderInfoMessage = () => {\n return (\n <>\n \n \n info\n \n \n \n );\n };\n\n return (\n
    \n {\n const { config } = expiryDetails[event.target.value];\n onChangeExpiry(config);\n }}\n >\n {_.map(expiryDetails, renderExpiryOption)}\n \n {renderCrownImage()}\n {isIlliquidInfo && renderInfoMessage()}\n
    \n );\n};\n\nExpirySelector.propTypes = propTypes;\nExpirySelector.defaultProps = defaultProps;\n\nexport default memo(ExpirySelector);\n","import _ from 'lodash';\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport useOutputSchema from 'v2/modules/withRunForm/hooks/useOutputSchema';\nimport classNames from 'classnames';\nimport { OutputSchemaUtility, TypeheadSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport { schemaShouldShowConfigTypes } from 'v2/common/quantConfig/outputSchema/config';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\n\nconst propTypes = {\n valuePath: PropTypes.string,\n onChange: PropTypes.func,\n errorMessage: PropTypes.string,\n};\n\nconst defaultProps = {\n valuePath: '',\n onChange: () => { },\n errorMessage: '',\n};\n\nconst IndicatorValuePathSelector = ({ valuePath, onChange, errorMessage }) => {\n const {\n caseIndex, adjustmentIndex, isAdjustmentIntent, pipeIndex, isPipeIntent\n } = useContext(IntentsContext);\n const outputSchema = useOutputSchema();\n\n const indicatorSchema = _.chain(outputSchema)\n .thru((schema) => OutputSchemaUtility.filterByCaseIndex(schema, caseIndex))\n .thru((schema) => OutputSchemaUtility.filterByTypes(\n schema, [schemaShouldShowConfigTypes.intentValuePath]\n ))\n .thru((schema) => {\n if (isAdjustmentIntent) {\n return OutputSchemaUtility.filterSchemaPriorToAdjustmentIndex(schema, adjustmentIndex);\n }\n if (isPipeIntent) {\n return _.chain(schema)\n .thru((sch) => OutputSchemaUtility.filterByCategory(sch, 'indicator'))\n .thru((sch) => OutputSchemaUtility.filterSchemaPriorToPipeIndex(sch, pipeIndex))\n .value();\n }\n return OutputSchemaUtility.filterByCategory(schema, 'indicator');\n })\n .map((schema) => TypeheadSchemaUtility.getOption(schema))\n .value();\n\n const renderIndicatorSchema = (schema) => {\n return ;\n };\n\n const selectClassName = classNames('indicator-selector', {\n 'is-invalid': errorMessage,\n });\n\n const renderSelect = (\n onChange(event.target.value)}\n >\n \n );\n }, []);\n\n const renderSelect = (\n \n {_.map(selections, renderStrikeSelectionType)}\n \n );\n\n const isDeltaBased = StrikeUtility.isDeltaBased(type);\n\n const renderMessage = ' Please purchase a Premium plan to use this feature.';\n\n const cronImageClassName = classNames('v2-crown-image position-absolute sticky-top', {\n 'ml-10': isDeltaBased\n });\n\n const renderHoverMessage = (\n \n <>\n {renderSelect}\n {errorMessage && \"\"}\n \n \n );\n\n return isPermissionToChoose ? renderSelect : renderHoverMessage;\n};\n\nSelection.propTypes = propTypes;\nSelection.defaultProps = defaultProps;\n\nexport default Selection;\n","import _ from 'lodash';\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport classNames from 'classnames';\nimport IndicatorValuePathSelector from './IndicatorValuePathSelector';\nimport useStrikeBased from './useStrikeBased';\nimport Selection from './Selection';\nimport { StrikeUtility } from './utility';\n\nconst propTypes = {\n strike: PropTypes.shape({\n type: PropTypes.string.isRequired,\n }).isRequired,\n onChangeStrike: PropTypes.func.isRequired,\n isIndexInstrumentBased: PropTypes.bool.isRequired,\n optionType: PropTypes.string.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n setError: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst StrikeBasedSelector = ({\n strike, onChangeStrike, isIndexInstrumentBased, optionType, errors, control, clearErrors, setError\n}) => {\n const [strikeBoxName] = useState(_.uniqueId('strikeName-'));\n const errorMessage = errors[strikeBoxName] ? errors[strikeBoxName]?.message || '' : '';\n const [isShowHoverMessage, setIsShowHoverMessage] = useState(false);\n\n useEffect(() => {\n if (isShowHoverMessage) { setTimeout(() => { setIsShowHoverMessage(false); }, 5000); }\n }, [isShowHoverMessage]);\n\n const {\n isIndexBased,\n value,\n type,\n valuePath,\n options,\n onChangeType,\n onChangeValue,\n onChangeValuePath,\n isIndicatorBased,\n comparison,\n } = useStrikeBased(strike, onChangeStrike, isIndexInstrumentBased, optionType);\n\n const isPermissionToChoose = StrikeUtility.isPermissionToChoose(type);\n\n useEffect(() => {\n if (!isPermissionToChoose) setIsShowHoverMessage(true);\n }, [isPermissionToChoose]);\n\n const validator = {\n validate: (val) => {\n if (val === '' || val === undefined) return 'should be included';\n if (Number.isNaN(Number(val))) return 'should be a number';\n if (!isIndexBased && val <= 0) return 'should be included';\n return null;\n }\n };\n\n const formInputProps = !isIndexBased ? { type: 'number' } : { as: 'select' };\n\n const strikeBoxStyle = classNames('', {\n 'custom-select-sm': !!formInputProps.as,\n 'strike-index': !!formInputProps.as,\n 'is-invalid': !!errors[strikeBoxName]\n });\n\n const divClassName = classNames('strike-based-selector', { 'indicator-based': isIndicatorBased });\n\n return (\n
    \n \n {isIndicatorBased\n && (\n \n )}\n (\n {\n onChangeValue(parseFloat(event.target.value, 10));\n onChange(parseFloat(event.target.value, 10));\n }}\n >\n {formInputProps.as && _.map(options, ({ label, value: val }, idx) => {\n return ;\n })}\n \n )}\n control={control}\n defaultValue={value}\n name={strikeBoxName}\n rules={validator}\n />\n
    \n );\n};\n\nStrikeBasedSelector.propTypes = propTypes;\nStrikeBasedSelector.defaultProps = defaultProps;\n\nexport default StrikeBasedSelector;\n","import _ from 'lodash';\nimport React, { memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n instrumentIndex: PropTypes.number.isRequired,\n onChangeInstrumentIndex: PropTypes.func.isRequired,\n maxInstrumentsInGroup: PropTypes.number.isRequired,\n};\nconst defaultProps = {};\n\nconst InstrumentIndexSelector = ({ instrumentIndex, onChangeInstrumentIndex, maxInstrumentsInGroup }) => {\n const renderInstrumentIndexOption = useCallback((index) => {\n return (\n \n );\n }, []);\n\n return (\n
    \n onChangeInstrumentIndex(Number(event.target.value))\n }\n >\n {_.range(0, maxInstrumentsInGroup).map(renderInstrumentIndexOption)}\n \n
    \n );\n};\n\nInstrumentIndexSelector.propTypes = propTypes;\nInstrumentIndexSelector.defaultProps = defaultProps;\n\nexport default memo(InstrumentIndexSelector);\n","import _ from 'lodash';\nimport React, { useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport OptionTypeSelector from 'v2/common/components/OptionTypeSelector/index';\nimport ExpirySelector from 'v2/common/components/ExpirySelector/index';\nimport StrikeBasedSelector from 'v2/common/components/StrikeBasedSelector/index';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport InstrumentIndexSelector from 'v2/common/components/InstrumentIndexSelector/index';\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\nimport {\n isIlliquidInstrument\n} from 'v2/modules/withRunForm/components/InstrumentDetails/indexInstrumentsChecker';\n\nconst propTypes = {\n intentConfigs: PropTypes.shape({\n segment: PropTypes.string,\n expiry: PropTypes.shape({}),\n strike: PropTypes.shape({}).isRequired,\n optionType: PropTypes.string.isRequired,\n instrumentIndex: PropTypes.number,\n onChangeExpiry: PropTypes.func.isRequired,\n onChangeStrike: PropTypes.func.isRequired,\n onChangeOptionType: PropTypes.func.isRequired,\n onChangeInstrumentIndex: PropTypes.func.isRequired,\n isShowInstrumentIndex: PropTypes.bool,\n isIndexInstrumentIntent: PropTypes.bool,\n isIndexInstrumentWithWeeklyExpiry: PropTypes.bool,\n maxInstrumentsInGroup: PropTypes.number,\n isAdvancedMode: PropTypes.bool,\n isShowMultiplier: PropTypes.bool,\n onChangeMultiplier: PropTypes.func,\n multiplier: PropTypes.number,\n }).isRequired,\n};\n\nconst defaultProps = {};\n\nconst multiplierOptions = [10, 20, 50, 100, 500];\n\nconst renderMultiplier = (intentConfigs) => {\n if (!intentConfigs?.isAdvancedMode) {\n return null;\n }\n if (!intentConfigs?.isShowMultiplier) {\n return (\n
    \n );\n }\n return (\n
    \n intentConfigs.onChangeMultiplier(Number(event.target.value))}\n >\n \n );\n })}\n \n
    \n );\n};\n\nconst InstrumentBasedDetails = ({ intentConfigs }) => {\n const isOption = intentConfigs.segment === SEGMENT_CONFIG.option;\n const {\n errors,\n setError,\n clearErrors,\n control,\n errorConfigs,\n intents\n } = useContext(IntentsContext);\n const intentId = _.get(intentConfigs, 'intentId', '');\n\n const currentIntent = intents.find((intent) => intent.identifier.label === intentId);\n\n const instrumentClassNames = classNames('transaction_details-items', {\n instrument: !intentConfigs?.isShowInstrumentIndex,\n with_advanced_mode: intentConfigs?.isAdvancedMode,\n pair_instrument: intentConfigs?.isShowInstrumentIndex,\n });\n\n const instrumentGroups = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.instrumentGroups')\n );\n\n const isIlliquidInfo = useMemo(() => {\n if (_.isEmpty(_.flattenDeep(instrumentGroups)) || !currentIntent) {\n return false;\n }\n\n const {\n instrument: {\n instrumentIndex,\n expiry: { cycle: cycleType },\n },\n } = currentIntent;\n\n return (\n isIlliquidInstrument(instrumentGroups, instrumentIndex) && cycleType === 'monthly'\n );\n }, [instrumentGroups, currentIntent]);\n\n return (\n
    \n {isOption && (\n \n )}\n {isOption && (\n \n )}\n {renderMultiplier(intentConfigs)}\n {isOption && (\n \n )}\n {intentConfigs?.isShowInstrumentIndex && (\n \n )}\n
    \n );\n};\n\nInstrumentBasedDetails.propTypes = propTypes;\nInstrumentBasedDetails.defaultProps = defaultProps;\n\nexport default InstrumentBasedDetails;\n","import _ from 'lodash';\nimport { useContext, useEffect } from 'react';\nimport { IntentsContext } from '../../hoc/withIntentsContext';\n\nconst isPermissionToAddManualAdjustment = _.get(window, 'userPermissions.adjustments.isEnabled', false)\n || window?.isAdmin || false;\n\nexport const useQuickAdjustments = (intentId, quickAdjustments) => {\n const {\n adjustmentIndex,\n caseIndex,\n clearErrors,\n errors,\n setError,\n } = useContext(IntentsContext);\n const fieldId = `${caseIndex}-${adjustmentIndex}-${intentId}`;\n\n useEffect(() => {\n if (!isPermissionToAddManualAdjustment && quickAdjustments.length > 0) {\n setError(fieldId, {\n isPremiumError: true,\n forceScrollTo: `#${fieldId}`,\n message: 'Please purchase a premium plan to use Quick Adjustments.',\n caseIndex\n });\n } else {\n clearErrors(fieldId);\n }\n return () => {\n clearErrors(fieldId);\n };\n }, [caseIndex, adjustmentIndex, intentId, quickAdjustments, setError, fieldId, clearErrors]);\n\n return {\n error: errors[fieldId] || {},\n fieldId\n };\n};\n","import _ from 'lodash';\nimport React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onChange: PropTypes.func.isRequired,\n};\nconst defaultProps = {\n value: undefined,\n};\n\nconst TYPES = {\n IMMEDIATELY: 'immediately',\n AFTER: 'after',\n};\n\nconst renderInput = (type, value, changeValue) => {\n if (type === TYPES.IMMEDIATELY) {\n return null;\n }\n\n return (\n <>\n
    \n \n
    \n \n
    \n
    \n {/* Secs */}\n \n );\n};\n\nconst QuickAdjustmentDelayBy = ({ value, onChange }) => {\n const [type, setType] = useState(\n _.isNumber(value) ? TYPES.AFTER : TYPES.IMMEDIATELY\n );\n\n const changeValue = useCallback((event) => {\n onChange('delayBy', _.trim(event.target.value.toString()).length > 0\n ? Number(event.target.value)\n : '');\n }, [onChange]);\n const changeType = useCallback((event) => {\n const newType = event.target.value;\n setType(newType);\n onChange('delayBy', newType === TYPES.IMMEDIATELY ? '' : 0);\n },\n [setType, onChange]);\n\n const componentClassNames = classNames('quick-adjustment-delay-by', {\n 'type-immediate': type === TYPES.IMMEDIATELY,\n 'type-after': type === TYPES.AFTER,\n });\n\n return (\n
    \n \n \n \n \n {renderInput(type, value, changeValue)}\n
    \n );\n};\n\nQuickAdjustmentDelayBy.propTypes = propTypes;\nQuickAdjustmentDelayBy.defaultProps = defaultProps;\n\nexport default QuickAdjustmentDelayBy;\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Typeahead } from 'react-bootstrap-typeahead';\n\nimport { quickAdjustmentPropTypes } from 'common/propTypes';\nimport {\n QUICK_ADJUSTMENT_TRIGGERS,\n QUICK_ADJUSTMENT_ACTIONS,\n} from 'v2/common/constants/index';\nimport useOutputSchema from 'v2/modules/withRunForm/hooks/useOutputSchema';\nimport { OutputSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport { extractIndividualSchemaField } from 'v2/modules/withRunForm/utils/signal';\nimport QuickAdjustmentDelayBy from './QuickAdjustmentDelayBy';\n\nexport const BLANK_QUICK_ADJUSTMENT = {\n trigger: QUICK_ADJUSTMENT_TRIGGERS.ExitedInLoss.value,\n action: QUICK_ADJUSTMENT_ACTIONS.CloseLeg.value,\n targets: [],\n};\n\nconst propTypes = {\n intentId: PropTypes.string.isRequired,\n quickAdjustments: PropTypes.arrayOf(quickAdjustmentPropTypes),\n onUpdate: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {\n quickAdjustments: [BLANK_QUICK_ADJUSTMENT],\n};\n\nconst renderTrigger = (trigger, onUpdateKey, intentId) => {\n return (\n <>\n
    \n IF\n \n
    \n
    \n Leg\n {' '}\n {intentId}\n
    \n
    \n
    \n
    \n onUpdateKey('trigger', e.target.value)}\n >\n {_.map(QUICK_ADJUSTMENT_TRIGGERS, (t) => (\n \n ))}\n \n \n );\n};\n\nconst renderAction = (action, onUpdateKey) => {\n return (\n <>\n Then\n onUpdateKey('action', e.target.value)}\n >\n {_.map(QUICK_ADJUSTMENT_ACTIONS, (a) => (\n \n ))}\n \n \n );\n};\n\nconst renderQuickAdjustment = (\n quickAdjusment,\n legOptions,\n index,\n onUpdate,\n onDelete,\n intentId\n) => {\n const {\n trigger, action, targets, delayBy\n } = quickAdjusment;\n\n const onUpdateKey = (key, value) => {\n onUpdate(index, { ...quickAdjusment, [key]: value });\n };\n const selectedTargetOptions = _.map(targets, (target) => ({\n id: target,\n label: `Leg ${target}`,\n }));\n const onTargetsUpdate = (newSelections) => {\n return onUpdateKey('targets', _.map(newSelections, 'id'));\n };\n\n return (\n
    \n {renderTrigger(trigger, onUpdateKey, intentId)}\n {renderAction(action, onUpdateKey)}\n \n \n onDelete(index)}\n >\n \n \n
    \n );\n};\n\nconst QuickAdjustmentsForm = ({ intentId, quickAdjustments, onUpdate }) => {\n const outputSchema = useOutputSchema();\n const legOptions = useMemo(() => {\n return _.chain(outputSchema)\n .thru((schema) => OutputSchemaUtility.filterByCategory(schema, 'individualStop'))\n .thru((schema) => _.map(\n schema,\n (sch) => extractIndividualSchemaField(sch?.name)?.intentId\n ))\n .uniq()\n .without(intentId)\n .map((id) => ({ id: id.toString(), label: `Leg ${id}` }))\n .value();\n }, [intentId, outputSchema]);\n\n const addQuickAdjustment = useCallback(() => {\n onUpdate([...quickAdjustments, BLANK_QUICK_ADJUSTMENT]);\n }, [quickAdjustments, onUpdate]);\n\n const onDeleteQuickAdjustment = useCallback(\n (index) => {\n onUpdate(_.filter(quickAdjustments, (_, i) => i !== index));\n },\n [quickAdjustments, onUpdate]\n );\n\n const updateQuickAdjustment = useCallback(\n (index, updatedQuickAdjustment) => {\n const newQuickAdjustments = [...quickAdjustments];\n newQuickAdjustments[index] = updatedQuickAdjustment;\n onUpdate(newQuickAdjustments);\n },\n [quickAdjustments, onUpdate]\n );\n\n return (\n
    \n {quickAdjustments.map((quickAdjustment, index) => {\n return renderQuickAdjustment(\n quickAdjustment,\n legOptions,\n index,\n updateQuickAdjustment,\n onDeleteQuickAdjustment,\n intentId\n );\n })}\n
    \n \n add\n Add Quick Action\n \n
    \n
    \n );\n};\n\nQuickAdjustmentsForm.propTypes = propTypes;\nQuickAdjustmentsForm.defaultProps = defaultProps;\n\nexport default QuickAdjustmentsForm;\n","import _ from 'lodash';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport {\n QUICK_ADJUSTMENT_ACTIONS,\n QUICK_ADJUSTMENT_TRIGGERS,\n} from 'v2/common/constants/index';\nimport ModalComponent from 'v2/common/components/ModalComponent';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { quickAdjustmentPropTypes } from 'common/propTypes';\nimport { useQuickAdjustments } from 'v2/modules/withRunForm/hooks/useQuickAdjustments/index';\nimport QuickAdjustmentsForm, { BLANK_QUICK_ADJUSTMENT } from './QuickAdjustmentForm';\n\nconst propTypes = {\n intentId: PropTypes.string.isRequired,\n quickAdjustments: PropTypes.arrayOf(quickAdjustmentPropTypes),\n onUpdate: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {\n quickAdjustments: [],\n};\n\nconst renderQuickAdjustmentText = (quickAdjustment, index) => {\n const {\n trigger, action, targets, delayBy\n } = quickAdjustment;\n const triggerItem = _.find(QUICK_ADJUSTMENT_TRIGGERS, { value: trigger });\n const actionItem = _.find(QUICK_ADJUSTMENT_ACTIONS, { value: action });\n\n const badgeClassNames = classNames(\n 'quick-adjustment-badge badge badge-light align-middle'\n );\n const triggerClassNames = classNames('trigger', {\n 'text-success': triggerItem === QUICK_ADJUSTMENT_TRIGGERS.ExitedInProfit,\n 'text-danger': triggerItem === QUICK_ADJUSTMENT_TRIGGERS.ExitedInLoss,\n });\n const targetLabels = targets.map((target) => `${target}`).join(' | ');\n return (\n
    \n \n On \n {triggerItem?.shortLabel}\n ,\n \n {actionItem?.shortLabel}\n \n Leg \n {targetLabels}\n \n {_.isNumber(delayBy) && (\n
    \n after \n {delayBy}\n  secs\n
    \n )}\n
    \n );\n};\n\nconst renderQuickAdjustmentsText = (quickAdjustments) => {\n if (!quickAdjustments || quickAdjustments.length === 0) {\n return (\n \n add\n Quick Adjustments\n \n );\n }\n\n return [\n \n ].concat(\n quickAdjustments.map(renderQuickAdjustmentText)\n );\n};\n\nconst QuickAdjustments = ({ intentId, quickAdjustments, onUpdate }) => {\n const [showModal, setShowModal] = useState(false);\n const { fieldId, error } = useQuickAdjustments(intentId, quickAdjustments);\n const [localQuickAdjustments, setLocalQuickAdjustments] = useState(quickAdjustments);\n\n useEffect(\n () => setLocalQuickAdjustments(quickAdjustments),\n [quickAdjustments]\n );\n\n useEffect(() => {\n if (showModal && _.isEmpty(quickAdjustments)) {\n setLocalQuickAdjustments([BLANK_QUICK_ADJUSTMENT]);\n }\n }, [quickAdjustments, setLocalQuickAdjustments, showModal]);\n\n const onModalSave = useCallback(() => {\n setShowModal(false);\n onUpdate(localQuickAdjustments);\n }, [localQuickAdjustments, onUpdate]);\n\n const shouldConfirmClose = useCallback(() => {\n return !_.chain(localQuickAdjustments)\n .filter(BLANK_QUICK_ADJUSTMENT)\n .isEqual(quickAdjustments)\n .value();\n }, [quickAdjustments, localQuickAdjustments]);\n\n const textContainerClassNames = classNames('text-container', `total-items-${quickAdjustments.length}`);\n return (\n
    \n
    setShowModal(!showModal)}>\n \n {renderQuickAdjustmentsText(quickAdjustments)}\n \n
    \n setShowModal(false)}\n onCancel={() => setShowModal(false)}\n >\n \n \n
    \n );\n};\n\nQuickAdjustments.propTypes = propTypes;\nQuickAdjustments.defaultProps = defaultProps;\n\nexport default QuickAdjustments;\n","import _ from 'lodash';\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport SegmentSelector from 'v2/common/components/SegmentSelector/index';\nimport Quantity from 'common/components/Quantity';\nimport WaitAndTrade from 'v2/common/components/WaitAndTrade/index';\nimport BuyOrSellSelector from 'v2/common/components/BuyOrSellSelector';\nimport StopsInput from 'v2/common/components/StopsInput/index';\nimport ReEntryOrExecute from 'v2/common/components/ReEntryOrExecute/index';\nimport { useOpenIntent } from 'v2/modules/withRunForm/hooks/useIntent/useOpenIntent';\nimport { intentPropTypes } from 'common/propTypes';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\nimport classNames from 'classnames';\nimport { SL_TRAIL_TYPES, SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport TrailingStopLoss from 'v2/common/components/TrailingStopLoss/index';\nimport DelayBy from 'v2/common/components/StopsInput/DelayBy';\nimport InstrumentBasedDetails from './InstrumentBasedDetails';\nimport QuickAdjustments from './QuickAdjustments/index';\nimport IntentTypeSelector from '../IntentTypeSelector';\n\nconst propTypes = {\n intent: intentPropTypes.isRequired,\n renderDeleteBtn: PropTypes.element,\n};\n\nconst defaultProps = {\n renderDeleteBtn: null,\n};\n\nconst OpenLegIntent = ({\n intent, renderDeleteBtn\n}) => {\n const intentConfigs = useOpenIntent(intent);\n const {\n control,\n errors,\n isAdjustmentIntent,\n } = useContext(IntentsContext);\n\n const isEquity = intentConfigs.segment === SEGMENT_CONFIG.equity;\n\n const parentDivClassName = classNames('leg-label-ribbon');\n\n const stopLossOrigin = intentConfigs?.stopLoss?.origin?.type || 'self';\n const stopGainOrigin = intentConfigs?.stopGain?.origin?.type || 'self';\n\n return (\n <>\n \n
    \n
    \n Leg\n {' '}\n {intentConfigs?.intentId}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n \n \n
    \n
    \n \n
    \n \n \n
    \n {intentConfigs.isAdvancedMode ? (\n
    \n \n
    \n ) : null}\n \n \n \n {intentConfigs.isTrailingStopLossEnabled ? (\n \n \n \n ) : null}\n {intentConfigs.isWaitAndTradeEnabled ? (\n
    \n \n
    \n ) : null}\n {_.some(intentConfigs.reEntryOrExecuteOptionConfigs, 'isShow')\n && (\n
    \n \n
    \n )}\n \n
    \n {renderDeleteBtn}\n
    \n \n \n );\n};\n\nOpenLegIntent.propTypes = propTypes;\nOpenLegIntent.defaultProps = defaultProps;\n\nexport default OpenLegIntent;\n","import _ from 'lodash';\nimport { useMemo, useContext, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { useIntent } from './index';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport { getQuantModes } from '../../configs/index';\nimport { IntentsContext } from '../../hoc/withIntentsContext';\n\nexport const useBasketIntent = (intent) => {\n const {\n createOnChangeHandler,\n intentId,\n segment,\n onChangeSegment,\n onChangeIntentType,\n segmentOptionConfigs,\n isShowInstrumentIndex\n } = useIntent(intent);\n\n const { onUpdateIntent } = useContext(IntentsContext);\n\n const mode = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs.mode')\n ) || getQuantModes.simple.value;\n const isAdvancedMode = useMemo(() => mode === getQuantModes.advanced.value, [mode]);\n\n const createOnChangeMultiplierHandler = useCallback((field) => (newValue) => {\n const newIntent = _.cloneDeep(intent);\n _.unset(newIntent, 'quantity');\n _.set(newIntent, field, newValue?.value);\n onUpdateIntent(newIntent, intentId);\n }, [intent, intentId, onUpdateIntent]);\n\n return {\n name: intent?.name || '',\n onChangeBasketName: createOnChangeHandler('name'),\n multiplier: intent?.multiplier,\n onChangeMultiplier: createOnChangeMultiplierHandler('multiplier'),\n onChangeIntentType,\n intentId,\n segment: segment || INTENT_TYPES.OpenBasket,\n onChangeSegment,\n segmentOptionConfigs,\n isShowInstrumentIndex,\n isAdvancedMode\n };\n};\n","import React, { useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { Controller } from 'react-hook-form';\nimport _ from 'lodash';\nimport { Form } from 'react-bootstrap';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { useSelector } from 'react-redux';\nimport { basket } from 'v2/common/quantConfig/pipeDefinitions/index';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\n\nconst propTypes = {\n name: PropTypes.string,\n onChangeName: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {\n name: '',\n};\n\nconst BasketSelector = ({ name: bName, onChangeName }) => {\n const {\n errors,\n control\n } = useContext(IntentsContext);\n\n const uniqueId = useMemo(() => _.uniqueId('basket_selector'), []);\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n const pipeNames = _.chain(pipeConfigs)\n .filter(({ type }) => type === basket?.type)\n .map('name')\n .value();\n\n const validator = {\n validate: (val) => {\n if (!val) return 'basket should be selected';\n return null;\n }\n };\n\n return (\n \n (\n {\n onChangeName(event.target.value);\n onChange(event.target.value);\n }}\n >\n \n ))}\n \n )}\n control={control}\n defaultValue={bName}\n name={uniqueId}\n rules={validator}\n />\n \n );\n};\n\nBasketSelector.propTypes = propTypes;\nBasketSelector.defaultProps = defaultProps;\n\nexport default BasketSelector;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Quantity from 'common/components/Quantity';\nimport { useBasketIntent } from 'v2/modules/withRunForm/hooks/useIntent/useBasketIntent';\nimport { intentPropTypes } from 'common/propTypes';\nimport SegmentSelector from 'v2/common/components/SegmentSelector/index';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\nimport classNames from 'classnames';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport BasketSelector from './BasketSelector';\nimport IntentTypeSelector from '../IntentTypeSelector';\n\nconst propTypes = {\n intent: intentPropTypes.isRequired,\n renderDeleteBtn: PropTypes.element,\n};\n\nconst defaultProps = {\n renderDeleteBtn: null\n};\n\nconst BasketIntent = ({\n intent, renderDeleteBtn\n}) => {\n const intentConfigs = useBasketIntent(intent);\n const {\n control,\n errors,\n isAdjustmentIntent\n } = useContext(IntentsContext);\n const isEquity = intentConfigs.segment === SEGMENT_CONFIG.equity;\n\n const instrumentClassNames = classNames('transaction_details-items', {\n instrument: !intentConfigs?.isShowInstrumentIndex,\n pair_instrument: intentConfigs?.isShowInstrumentIndex,\n });\n\n return (\n
    \n \n
    \n
    \n Basket\n {' '}\n {intentConfigs?.intentId}\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n {renderDeleteBtn && renderDeleteBtn}\n
    \n );\n};\n\nBasketIntent.propTypes = propTypes;\nBasketIntent.defaultProps = defaultProps;\n\nexport default BasketIntent;\n","import _ from 'lodash';\nimport React, { useContext, useMemo } from 'react';\nimport { intentPropTypes } from 'common/propTypes';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\nimport HoverMessage from 'common/components/HoverMessage';\nimport ModifyExistingLegsIntent from './ModifyExistingLegsIntent/index';\nimport OpenLegIntent from './OpenLegIntent/index';\nimport BasketIntent from './BasketIntent/index';\n\nconst propTypes = {\n intent: intentPropTypes.isRequired,\n};\n\nconst defaultProps = {};\n\nconst Intent = ({ intent }) => {\n const {\n onDeleteIntent,\n intentDependencies,\n } = useContext(IntentsContext);\n const intentDependency = _.get(intentDependencies, intent?.identifier?.label, {});\n\n const isDependent = _.get(intentDependency, 'isDependent', false);\n\n const renderDeleteBtn = useMemo(() => (\n \n {\n if (isDependent) {\n reactToastify('Cannot delete dependent leg', TOASTIFY_TYPES.ERROR);\n return;\n }\n onDeleteIntent(intent?.identifier?.label);\n }}\n disabled={isDependent}\n >\n \n \n \n ), [intent.identifier.label, isDependent, onDeleteIntent]);\n\n const IntentComponent = useMemo(() => {\n switch (intent.type) {\n case INTENT_TYPES.CloseLeg:\n case INTENT_TYPES.UpdateStopLoss:\n return ModifyExistingLegsIntent;\n\n case INTENT_TYPES.OpenBasket:\n return BasketIntent;\n\n default:\n return OpenLegIntent;\n }\n }, [intent.type]);\n\n return (\n \n );\n};\n\nIntent.propTypes = propTypes;\nIntent.defaultProps = defaultProps;\n\nexport default Intent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\n\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { getQuantModes, defaultUiBehaviourFlags } from 'v2/modules/withRunForm/configs/index';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n isPipeIntent: PropTypes.bool,\n isBookProfitTsl: PropTypes.bool,\n};\nconst defaultProps = {\n isPipeIntent: false,\n isBookProfitTsl: false,\n};\n\nconst renderQuickAdjustments = () => {\n return (\n
    \n Quick Adjustments\n \"\"\n
    \n );\n};\n\nconst stopLossDelayByToolTipContent = (\n
    \n If the price is beyond stop loss for configured delay by time, then it is exited.\n
    \n
    \n If the price fluctutates and not stays beyond stop loss for configured delay by time, then\n it is \n ignored\n .\n
    \n
    \n Note:\n  \n If delay by is set, \n SL orders will not be placed to the broker\n  in Live Deployments.\n
    \n);\n\nconst IntentHeaders = ({ isPipeIntent, isBookProfitTsl }) => {\n const uiBehaviourFlags = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiBehaviourFlags')\n );\n const maxInstrumentsInGroup = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.maxInstrumentsInGroup')\n );\n // TODO: Copied from useOpenIntent, DRY it.\n const mode = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs.mode')\n ) || getQuantModes.simple.value;\n const isAdvancedMode = useMemo(() => mode === getQuantModes.advanced.value, [mode]);\n // ------------------------------\n const isShowInstrumentIndex = useMemo(() => maxInstrumentsInGroup > 1, [maxInstrumentsInGroup]);\n\n const {\n isReEntry,\n isReExecute,\n isTrailingStopLoss,\n isWaitAndTrade\n } = uiBehaviourFlags || defaultUiBehaviourFlags;\n\n const renderRenTryOrReExecuteLabel = useMemo(() => {\n if (isReEntry && isReExecute) {\n return 'Re-Entry/Re-Execute';\n }\n if (isReEntry) {\n return 'Re-Entry';\n }\n\n return 'Re-Execute';\n }, [isReEntry, isReExecute]);\n\n const instrumentClassName = classNames('transaction_details-items', {\n instrument: !isShowInstrumentIndex,\n with_advanced_mode: isAdvancedMode,\n pair_instrument: isShowInstrumentIndex,\n });\n\n const slClassNames = classNames('transaction_details-items stop_loss d-flex justify-content-end', {\n 'align-to-delay-by': isAdvancedMode,\n });\n return (\n
    \n
    Action
    \n
    Segment
    \n
    Instrument
    \n
    Lot
    \n
    Action
    \n
    Stop Loss
    \n {isAdvancedMode ? (\n
    \n Spike\n \n security\n \n \n \n info\n \n \n
    \n ) : null}\n
    Take Profit
    \n {isTrailingStopLoss && !isPipeIntent\n && (\n \n Trailing Stop Loss\n
    \n )}\n {isWaitAndTrade\n && !isPipeIntent\n &&
    Wait and Trade
    }\n {((isReEntry || isReExecute) && !isPipeIntent)\n && (\n
    \n {renderRenTryOrReExecuteLabel}\n
    \n )}\n {renderQuickAdjustments()}\n
    \n
    \n );\n};\n\nIntentHeaders.propTypes = propTypes;\nIntentHeaders.defaultProps = defaultProps;\n\nexport default IntentHeaders;\n","import _ from 'lodash';\nimport React, {\n useCallback, useContext, useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport withIntentsContext, { IntentsContext } from 'v2/modules/withRunForm/hoc/withIntentsContext';\nimport { INTENT_TYPES, SL_TRAIL_TYPES } from 'v2/common/constants/index';\nimport Intent from './Intent/index';\nimport IntentHeaders from './IntentHeaders/index';\n\nconst propTypes = {\n renderMoveToCostCheckbox: PropTypes.func,\n};\n\nconst defaultProps = {\n renderMoveToCostCheckbox: () => null,\n};\n\nconst Intents = ({\n renderMoveToCostCheckbox\n}) => {\n const {\n intents,\n onAddIntent,\n isAdjustmentIntent,\n errorMessage,\n isPipeIntent,\n } = useContext(IntentsContext);\n const renderMoveToCost = renderMoveToCostCheckbox();\n\n const renderIntent = useCallback((intent, idx) => {\n const key = `${intent.type}${intent?.identifier?.label || idx}`;\n\n return (\n \n );\n }, []);\n\n const addLegClassName = classNames(\n 'add-leg-container d-flex justify-content-between align-items-center py-2'\n );\n\n const isBookProfitTsl = useMemo(() => {\n return intents.some((intent) => {\n return (\n intent.type === INTENT_TYPES.OpenLeg\n && intent?.stopLoss?.trail?.type === SL_TRAIL_TYPES.BookAndLinear\n );\n });\n }, [intents]);\n\n const renderIntentHeaders = useMemo(() => {\n return (\n \n );\n }, [isPipeIntent, isBookProfitTsl]);\n\n return (\n
    \n {!isAdjustmentIntent && renderIntentHeaders}\n {_.map(intents, renderIntent)}\n\n
    \n {renderMoveToCost}\n \n \n library_add\n {isAdjustmentIntent ? 'Add/Modify Leg' : 'Add Leg'}\n \n
    \n
    \n );\n};\n\nIntents.propTypes = propTypes;\nIntents.defaultProps = defaultProps;\n\nexport default withIntentsContext(Intents);\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport HoverMessage from 'common/components/HoverMessage';\n\nconst propTypes = {\n uiConfigs: PropTypes.shape({\n isMoveToCost: PropTypes.bool,\n }).isRequired,\n onUpdateUiConfigs: PropTypes.func.isRequired,\n isValidToEnableMoveToCost: PropTypes.bool.isRequired,\n};\nconst defaultProps = {};\n\nconst CaseBasedBehaviourFlags = ({ uiConfigs, onUpdateUiConfigs, isValidToEnableMoveToCost }) => {\n const { isMoveToCost } = uiConfigs;\n const id = _.uniqueId('moveToCost-');\n const isPermissionToShow = _.get(window, 'userPermissions.moveToCost.isEnabled', false);\n\n const mtcContent = useMemo(() => (\n
    \n If any leg SL hits, the opposite leg SL is moved to Cost.\n
    \n
    \n *Only when positions favour us will we move to SL.\n
    \n ), []);\n\n if (!isPermissionToShow) return null;\n\n return (\n
    \n {}}\n onChange={() => { onUpdateUiConfigs({ ...uiConfigs, isMoveToCost: !isMoveToCost }); }}\n checked={isMoveToCost}\n />\n \n Move to Cost\n \n \n \n info\n \n \n
    \n );\n};\n\nCaseBasedBehaviourFlags.propTypes = propTypes;\nCaseBasedBehaviourFlags.defaultProps = defaultProps;\n\nexport default CaseBasedBehaviourFlags;\n","import React, {\n Fragment, memo, useCallback, useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { casePropTypes } from 'common/propTypes';\nimport { signalTypes } from 'v2/modules/withRunForm/configs/index';\nimport { useCase } from 'v2/modules/withRunForm/hooks/useCase/index';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport Signals from 'v2/modules/withRunForm/components/Signals/index';\nimport Intents from 'v2/modules/withRunForm/components/Intents/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport CaseBasedFeatureFlags from './CaseBasedBehaviourFlags/index';\n\nconst propTypes = {\n caseConfig: casePropTypes.isRequired,\n caseIndex: PropTypes.number.isRequired,\n intentDependencies: PropTypes.shape({}).isRequired,\n errorMessage: PropTypes.string,\n errorConfigs: PropTypes.shape({}),\n isHiddenSignal: PropTypes.bool.isRequired,\n};\nconst defaultProps = {\n errorMessage: '',\n errorConfigs: {},\n};\n\nconst Case = ({\n caseIndex, caseConfig, intentDependencies, errorConfigs, isHiddenSignal\n}) => {\n const {\n entrySignals,\n exitSignals,\n intents,\n onUpdateEntrySignals,\n onUpdateExitSignals,\n onUpdateIntents,\n uiConfigs,\n onUpdateUiConfigs,\n isValidToEnableMoveToCost,\n adjustments,\n onAddAdjustment,\n onUpdateAdjustmentSignals,\n onUpdateAdjustmentIntents,\n onDeleteAdjustment,\n getModifyLegsTargetSchema,\n } = useCase(caseConfig, caseIndex);\n\n const adjustmentErrorMessage = errorConfigs[caseIndex]?.adjustments?.errorMessage || '';\n const isPremiumError = errorConfigs[caseIndex]?.adjustments?.isPremiumError || false;\n\n const renderSignals = useCallback(\n (signals, signalType, onUpdateSignals, extraArgs = {}) => {\n const signalProps = {\n signals,\n caseIndex,\n signalType,\n onUpdateSignals,\n isHiddenSignal,\n ...extraArgs,\n };\n\n return ;\n },\n [caseIndex, isHiddenSignal]\n );\n\n const renderMoveToCostCheckbox = useCallback(() => {\n return (\n \n );\n }, [uiConfigs, onUpdateUiConfigs, isValidToEnableMoveToCost]);\n\n const renderAdjustment = useCallback(\n (adjustment, adjustmentIndex) => {\n const { signal, intents: adjustIntents } = adjustment;\n const modifyLegsTargetSchema = getModifyLegsTargetSchema(adjustmentIndex);\n // Note: Not a callback, new function everytime.\n const onUpdateIntentsForAdjustment = (\n newIntents,\n removedOpenIntentIds = []\n ) => {\n return onUpdateAdjustmentIntents(\n newIntents,\n removedOpenIntentIds,\n adjustmentIndex\n );\n };\n\n return (\n \n
    \n {isPremiumError && (\n \n )}\n \n Adjustment \n {adjustmentIndex + 1}\n \n {renderSignals(\n signal,\n signalTypes.adjustSignal,\n (newSignals) => onUpdateAdjustmentSignals(newSignals, adjustmentIndex),\n { adjustmentIndex }\n )}\n onDeleteAdjustment(adjustmentIndex)}\n >\n \n \n
    \n \n
    \n );\n },\n [\n caseIndex,\n getModifyLegsTargetSchema,\n intentDependencies,\n isPremiumError,\n onDeleteAdjustment,\n onUpdateAdjustmentIntents,\n onUpdateAdjustmentSignals,\n renderSignals,\n ]\n );\n\n const renderAddAdjustmentButton = useMemo(() => {\n return (\n {\n if (!isHiddenSignal) onAddAdjustment();\n }}\n >\n library_add\n Add Adjustment\n \n );\n }, [isHiddenSignal, onAddAdjustment]);\n\n return (\n <>\n
    \n {renderSignals(\n entrySignals,\n signalTypes.entrySignal,\n onUpdateEntrySignals\n )}\n {renderSignals(\n exitSignals,\n signalTypes.exitSignal,\n onUpdateExitSignals\n )}\n \n \n {adjustments.map(renderAdjustment)}\n
    \n {isHiddenSignal ? (\n \n {renderAddAdjustmentButton}\n \n ) : (\n renderAddAdjustmentButton\n )}\n
    \n\n
    \n \n );\n};\n\nCase.propTypes = propTypes;\nCase.defaultProps = defaultProps;\n\nexport default memo(Case);\n","import _ from 'lodash';\nimport React, { memo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ReactHtmlParser from 'react-html-parser';\n\nimport HoverMessage from 'common/components/HoverMessage';\nimport useCases from 'v2/modules/withRunForm/hooks/useCases/index';\nimport Case from './Case/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst Cases = () => {\n const {\n cases,\n onAddCase,\n onDeleteCase,\n activeCaseIndex,\n onChangeActiveCaseIndex,\n isMaximumCasesExceeded,\n isShowAddCaseHoverMessage,\n isSimpleMode,\n intentDependencies,\n onCloneCase,\n errorConfigs,\n errorMessage,\n isHiddenSignal\n } = useCases();\n\n let renderMessage = ' Please purchase a Premium plan to use this feature.';\n renderMessage += '\"\"';\n\n const renderAddCaseButton = (\n \n library_add\n Add Case\n \n );\n\n const renderHoverMessage = (\n \n {renderAddCaseButton}\n \n );\n\n const renderCaseIcon = useCallback((idx) => {\n return (\n
    \n onCloneCase(idx)}>file_copy\n {(cases?.length !== 1) && (\n {\n onDeleteCase(idx);\n setTimeout(() => onChangeActiveCaseIndex(0), 100);\n }}\n >\n \"close\"\n \n )}\n
    \n );\n }, [cases.length, onDeleteCase, onChangeActiveCaseIndex, onCloneCase]);\n\n const renderCaseIndex = useCallback((c, idx) => {\n const labelClassName = classNames('nav-item', { active: idx === activeCaseIndex });\n\n return (\n
    onChangeActiveCaseIndex(idx)}>\n \n Case\n {' '}\n {idx + 1}\n \n {renderCaseIcon(idx)}\n
    \n );\n }, [activeCaseIndex, onChangeActiveCaseIndex, renderCaseIcon]);\n\n const renderBtn = () => {\n if (isSimpleMode) return null;\n\n return isShowAddCaseHoverMessage ? renderHoverMessage : renderAddCaseButton;\n };\n\n const renderCheckbox = () => {\n return (\n
    \n \n \n
    \n );\n };\n\n const renderContentCase = useCallback((caseConfig, idx) => {\n return (\n \n \n \n );\n }, [activeCaseIndex, intentDependencies, errorMessage, isHiddenSignal, errorConfigs]);\n\n return (\n
    \n
    \n {!isSimpleMode &&
    {_.map(cases, renderCaseIndex)}
    }\n {renderBtn()}\n
    \n
    \n {!isSimpleMode && renderCheckbox()}\n {_.map(cases, renderContentCase)}\n
    \n
    \n );\n};\n\nCases.propTypes = propTypes;\nCases.defaultProps = defaultProps;\n\nexport default memo(Cases);\n","import _ from 'lodash';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nconst propTypes = {\n tradingType: PropTypes.string.isRequired,\n onChangeTradingType: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst TRADE_TYPES = {\n positional: 'positional',\n intraday: 'intraday'\n};\n\nconst ExpirySelector = ({ tradingType, onChangeTradingType }) => {\n const { positional, intraday } = TRADE_TYPES;\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n onChangeTradingType(newTradingType)}\n >\n \n {_.startCase(intraday)}\n \n\n \n {_.startCase(positional)}\n \n \n
    \n
    \n
    \n );\n};\n\nExpirySelector.propTypes = propTypes;\nExpirySelector.defaultProps = defaultProps;\n\nexport default ExpirySelector;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport { setPartialBounds } from '../../redux/actions';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst MaxTransactionsPerDay = () => {\n const [limitTransactionName] = useState(_.uniqueId('limitTransactionName-'));\n const { errors, register } = useFormContext();\n const dispatch = useDispatch();\n const maxTransactionsPerDay = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.bounds.maxTransactionsPerDay')\n );\n\n const onChangeMaxTransactionsPerDay = (event) => {\n dispatch(setPartialBounds({ maxTransactionsPerDay: Number((event.target.value)) }));\n };\n\n const validatorConfig = {\n validate: (value) => {\n const typeConversionValue = Number(value);\n const isValidCondition = typeConversionValue >= 1 && typeConversionValue <= 20;\n if (!isValidCondition) return 'Must be between 1 to 20';\n\n return null;\n }\n };\n\n const validatorProps = { ref: register(validatorConfig) };\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n );\n};\n\nMaxTransactionsPerDay.propTypes = propTypes;\nMaxTransactionsPerDay.defaultProps = defaultProps;\n\nexport default MaxTransactionsPerDay;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { timeBasedSignalPropTypes } from 'common/propTypes';\nimport TimeSelector from 'common/components/TimeSelector';\nimport { getTimeValidatorsV2 } from 'common/utils/validators';\nimport ErrorMessage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n timeBasedSignal: timeBasedSignalPropTypes.isRequired,\n onChangeTimeBasedSignal: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {};\n\nconst Intraday = (props) => {\n const {\n timeBasedSignal,\n timeBasedSignal: { entryTime, exitTime },\n onChangeTimeBasedSignal,\n } = props;\n\n const { errors, control } = useFormContext();\n const [timePickerName] = useState(_.uniqueId('intradayTimePicker-'));\n\n const onTimeBasedSignalChange = (newConfig) => {\n onChangeTimeBasedSignal({ ...timeBasedSignal, ...newConfig });\n };\n\n const startTimeStyle = classNames({\n invalid: !_.isEmpty(errors[`${timePickerName}-start-time`]),\n });\n const endTimeStyle = classNames({\n invalid: !_.isEmpty(errors[`${timePickerName}-end-time`]),\n });\n\n // todo: Add the error message for the time picker\n const startTimeError = _.get(errors, `${timePickerName}-start-time.message`, '');\n const endTimeError = _.get(errors, `${timePickerName}-end-time.message`, '');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n (\n {\n onTimeBasedSignalChange({ entryTime: newTime });\n onChange(newTime);\n }}\n selectedTime={entryTime}\n />\n )}\n control={control}\n defaultValue={entryTime}\n name={`${timePickerName}-start-time`}\n rules={getTimeValidatorsV2()}\n />\n -\n (\n {\n onTimeBasedSignalChange({ exitTime: newTime });\n onChange(newTime);\n }}\n selectedTime={exitTime}\n minTime={entryTime}\n />\n )}\n control={control}\n defaultValue={exitTime}\n name={`${timePickerName}-end-time`}\n rules={getTimeValidatorsV2()}\n />\n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Intraday;\n\nIntraday.propTypes = propTypes;\nIntraday.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useState } from 'react';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport { useFormContext, Controller } from 'react-hook-form';\n\nimport { expiryHandlingPropsTypes } from 'common/propTypes';\nimport TimeSelector from 'common/components/TimeSelector';\nimport { getTimeValidatorsV2 } from 'common/utils/validators';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n expiryHandling: expiryHandlingPropsTypes.isRequired,\n onChangeExpiryHandling: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst Positional = (props) => {\n const {\n expiryHandling: { exitTime, exitDaysBefore },\n expiryHandling,\n onChangeExpiryHandling,\n } = props;\n const { errors, control } = useFormContext();\n const [timePickerName] = useState(_.uniqueId('positionalTimePicker-'));\n\n const onExpiryHandlingChange = (newConfig) => {\n onChangeExpiryHandling({ ...expiryHandling, ...newConfig });\n };\n\n const renderDayBeforeExpiryOptions = _.map(_.range(0, 60), (day) => (\n \n ));\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n onExpiryHandlingChange({\n exitDaysBefore: parseInt(event.target.value, 10)\n })}\n >\n
    \n
    \n
    \n
    \n );\n};\n\nexport default Positional;\n\nPositional.propTypes = propTypes;\nPositional.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport ExpirySelector from './ExpirySelector';\nimport { setPartialQuantConfig } from '../../redux/actions';\nimport MaxTransactionsPerDay from './MaxTransactionsPerDay';\nimport Intraday from './Intraday';\nimport Positional from './Positional';\nimport { getDefaultExpiryHandling, getDefaultTimeBasedSignal } from '../../configs/index';\n\nconst propTypes = {};\n\nconst defaultProps = { };\n\nconst ExpiryDetails = () => {\n const tradingType = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.tradingType'));\n const dispatch = useDispatch();\n const isIntraday = useMemo(() => tradingType === 'intraday', [tradingType]);\n const bounds = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.bounds')\n );\n const { timeBasedSignal, expiryHandling } = bounds;\n\n const onChangeTradingType = useCallback((newTradingType) => {\n const isNewTradingTypeIntraday = newTradingType === 'intraday';\n const newTimeBasedSignal = isNewTradingTypeIntraday ? getDefaultTimeBasedSignal : {};\n const newExpiryHandling = !isNewTradingTypeIntraday ? getDefaultExpiryHandling : { };\n\n dispatch(\n setPartialQuantConfig({\n tradingType: newTradingType,\n bounds: {\n ...(!isNewTradingTypeIntraday\n ? _.omit(bounds, ['dayStopLoss', 'dayStopGain'])\n : bounds\n ),\n timeBasedSignal: newTimeBasedSignal,\n expiryHandling: newExpiryHandling\n }\n })\n );\n }, [bounds, dispatch]);\n\n const onChangeExpiryHandling = useCallback((newExpiryHandling) => {\n dispatch(setPartialQuantConfig({ bounds: { ...bounds, expiryHandling: newExpiryHandling } }));\n }, [dispatch, bounds]);\n\n const onChangeTimeBasedSignal = useCallback((newTimeBasedSignal) => {\n dispatch(setPartialQuantConfig({ bounds: { ...bounds, timeBasedSignal: newTimeBasedSignal } }));\n }, [dispatch, bounds]);\n\n return (\n
    \n
    Expiry
    \n \n {isIntraday ? (\n \n ) : }\n \n
    \n );\n};\n\nexport default ExpiryDetails;\n\nExpiryDetails.propTypes = propTypes;\nExpiryDetails.defaultProps = defaultProps;\n","import _ from 'lodash';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { pipeInputSchemaTypes } from 'v2/common/quantConfig/pipeDefinitions/config';\nimport { StrikeUtility } from 'v2/common/components/StrikeBasedSelector/utility';\nimport { extractIdsFromLabel, extractIndividualSchemaField } from '../utils/signal';\n\nexport const onResetLabels = (cases, pipeConfigs) => {\n const allIntents = _.chain(cases)\n .map((caseConfig) => {\n const {\n entry: { intents: entryIntents },\n adjustments,\n } = caseConfig;\n\n return _.concat(entryIntents, _.chain(adjustments).map('intents').flatten().value());\n })\n .flattenDeep()\n .value();\n\n let incrementalLabel = 0;\n const labelMappedConfig = {};\n\n allIntents.forEach((intent) => {\n const {\n identifier: { label },\n } = intent;\n\n if (!labelMappedConfig[label]) {\n const { basketId } = extractIdsFromLabel(label || '');\n incrementalLabel += 1;\n labelMappedConfig[label] = basketId\n ? `${incrementalLabel}(${basketId})`\n : `${incrementalLabel}`;\n }\n });\n\n const getUpdatedOperand = (operand) => {\n const isIndividualStopIncludes = operand?.includes('individualStop.');\n const isIndicatorBasedBasket = operand?.includes('basket_');\n if (isIndividualStopIncludes) {\n const {\n position, label, intentId, field, basketId\n } = extractIndividualSchemaField(operand || '');\n const updatedIntentId = basketId ? `${labelMappedConfig[intentId]}(${basketId})`\n : labelMappedConfig[label];\n const updatedLabel = updatedIntentId;\n return [position, updatedLabel, field].join('.');\n } if (isIndicatorBasedBasket) {\n const [basket, labelId, config] = _.split(operand, '_');\n const updatedbasketId = basket ? `${labelMappedConfig[labelId]}`\n : labelId;\n return [basket, updatedbasketId, config].join('_');\n }\n return operand;\n };\n\n const getUpdatedStrike = (strike) => {\n const newStrike = _.cloneDeep(strike);\n const { valuePath } = newStrike;\n return {\n ...newStrike,\n valuePath: getUpdatedOperand(valuePath) || newStrike.valuePath\n };\n };\n\n const getUpdatedTargets = (targets) => {\n return _.map(targets, (target) => labelMappedConfig[target] || target);\n };\n\n const getUpdatedQuickAdjustments = (quickAdjustments) => {\n return _.map(quickAdjustments, (quickAdjustment) => {\n const newQuickAdjustment = _.cloneDeep(quickAdjustment);\n const { targets } = newQuickAdjustment;\n\n return {\n ...newQuickAdjustment,\n targets: getUpdatedTargets(targets) || newQuickAdjustment.targets,\n };\n });\n };\n\n const getUpdatedIntents = (intents) => {\n return intents.map((intent) => {\n const { label } = intent.identifier;\n const updatedLabel = labelMappedConfig[label];\n const newIntent = _.cloneDeep(intent);\n newIntent.identifier.label = updatedLabel;\n const isQuickAdjustments = intent.uiConfigs?.quickAdjustments;\n\n if (isQuickAdjustments) {\n newIntent.uiConfigs.quickAdjustments = getUpdatedQuickAdjustments(isQuickAdjustments);\n }\n\n if (intent?.instrument?.strike) {\n const { isIndicatorBased } = StrikeUtility.getStrikeObj(intent.instrument.strike);\n\n if (isIndicatorBased) {\n newIntent.instrument.strike = getUpdatedStrike(newIntent.instrument.strike)\n || newIntent.instrument.strike;\n }\n }\n\n if (newIntent.target) {\n const { label: targetLabel } = newIntent.target;\n const { basketId, intentId } = extractIdsFromLabel(targetLabel || '');\n const updatedIntentId = basketId ? `${labelMappedConfig[intentId]}(${basketId})`\n : labelMappedConfig[intentId];\n const updatedTargetLabel = updatedIntentId || targetLabel;\n newIntent.target.label = updatedTargetLabel;\n }\n\n return newIntent;\n });\n };\n\n const getUpdatedSignal = (signals) => {\n return _.map(signals, (signal) => {\n const newSignal = _.cloneDeep(signal);\n const { leftOperand, rightOperand } = newSignal;\n\n return {\n ...newSignal,\n leftOperand: getUpdatedOperand(leftOperand) || newSignal.leftOperand,\n rightOperand: getUpdatedOperand(rightOperand) || newSignal.rightOperand,\n };\n });\n };\n\n const updatedCases = cases.map((caseConfig) => {\n const {\n entry: { intents: entryIntents },\n adjustments,\n } = caseConfig;\n\n const updatedEntryIntents = getUpdatedIntents(entryIntents);\n\n const updatedAdjustments = adjustments.map((adjustment) => {\n return {\n ...adjustment,\n intents: getUpdatedIntents(adjustment.intents) || adjustment.intents,\n signal: getUpdatedSignal(adjustment.signal) || adjustment.signal,\n };\n });\n\n return {\n ...caseConfig,\n entry: {\n ...caseConfig.entry,\n intents: updatedEntryIntents || []\n },\n adjustments: updatedAdjustments || []\n };\n });\n\n const updatedPipeConfigs = _.map(pipeConfigs, (pipeConfig) => {\n const inputSchema = PipeDefinitionUtility.getPipeInputSchemaByType(pipeConfig.type);\n const signalSchema = _.find(inputSchema, ({ type }) => type === pipeInputSchemaTypes.signal);\n\n if (_.isEmpty(signalSchema)) return pipeConfig;\n\n const signal = _.get(pipeConfig.config, signalSchema.name);\n\n return {\n ...pipeConfig,\n config: {\n ...pipeConfig.config,\n [signalSchema.name]: getUpdatedSignal(signal)\n },\n };\n });\n\n return { updatedCases, updatedPipeConfigs, lastLabelIndex: _.size(labelMappedConfig) };\n};\n","import _ from 'lodash';\nimport { POSITION_VALUE_TYPES, INTENT_TYPES } from 'v2/common/constants/index';\n\nconst getUpdatedIntents = (intents, newQuantity) => {\n return _.map(intents, (intent) => {\n if (INTENT_TYPES.OpenBasket === intent?.type) return intent;\n if (\n !intent?.quantity\n || !_.isObject(intent.quantity)\n || intent.quantity.type === POSITION_VALUE_TYPES.Amount\n ) {\n return {\n ...intent,\n quantity: {\n type: intent?.quantity?.type ?? POSITION_VALUE_TYPES.Lot,\n value: _.isObject(intent.quantity) ? intent.quantity.value : newQuantity,\n },\n };\n }\n\n return {\n ...intent,\n quantity: {\n ...intent.quantity,\n type: intent?.quantity?.type ?? POSITION_VALUE_TYPES.Lot,\n value: newQuantity\n },\n };\n });\n};\n\nexport const onResetQuantity = (cases, pipeConfigs, quantityValue) => {\n const updatedCases = _.map(cases, (caseConfig) => ({\n ...caseConfig,\n entry: {\n ...caseConfig.entry,\n intents:\n getUpdatedIntents(caseConfig?.entry?.intents, quantityValue) || [],\n },\n adjustments: _.map(caseConfig?.adjustments, (adjustment) => ({\n ...adjustment,\n intents: getUpdatedIntents(adjustment?.intents, quantityValue) || [],\n })),\n }));\n\n const updatedPipeConfigs = _.map(pipeConfigs, (pipeConfig) => {\n if (_.isEmpty(pipeConfig?.config?.legs)) return pipeConfig;\n\n return {\n ...pipeConfig,\n config: {\n ...pipeConfig.config,\n legs: getUpdatedIntents(pipeConfig?.config?.legs, quantityValue) || [],\n },\n };\n });\n\n return { updatedCases, updatedPipeConfigs };\n};\n","import _ from 'lodash';\nimport React, {\n useCallback,\n useState,\n useRef,\n useEffect\n} from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ModalComponent from 'v2/common/components/ModalComponent';\nimport { setPartialQuantConfig } from 'v2/modules/withRunForm/redux/actions';\nimport { toPositiveNumberString } from 'common/stringUtils/toPositiveNumberString';\nimport { onResetQuantity } from 'v2/modules/withRunForm/events/quantityReset';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\n\nconst QuantityReset = () => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [error, setError] = useState({});\n const [quantity, setQuantity] = useState(null);\n const inputRef = useRef(null);\n\n const { cases, pipeConfigs } = useSelector((state) => state.quantConfig);\n const dispatch = useDispatch();\n\n const handleValidation = useCallback((value) => {\n if (!_.toString(value)) {\n setError({ quantity: 'Lot is required' });\n } else if (parseFloat(value) <= 0) {\n setError({ quantity: 'Lot must be a positive number' });\n } else {\n setError();\n }\n }, []);\n\n const onSave = useCallback((event) => {\n event.preventDefault();\n handleValidation(quantity);\n\n if (!quantity || !_.isEmpty(error)) {\n return;\n }\n\n const { updatedCases, updatedPipeConfigs } = onResetQuantity(cases, pipeConfigs, quantity);\n try {\n dispatch(\n setPartialQuantConfig({\n cases: updatedCases,\n pipeConfigs: updatedPipeConfigs\n })\n );\n setIsModalOpen(false);\n reactToastify('Lot Update Successfully', TOASTIFY_TYPES.INFO);\n } catch {\n reactToastify('Something went wrong unable to Update Lot', TOASTIFY_TYPES.ERROR);\n }\n }, [handleValidation, quantity, error, cases, pipeConfigs, dispatch]);\n\n const onClose = useCallback(() => {\n setIsModalOpen(false);\n }, []);\n\n useEffect(() => {\n if (isModalOpen && inputRef.current) {\n inputRef.current.focus();\n }\n return () => {\n setQuantity(null);\n setError({});\n };\n }, [isModalOpen]);\n\n const renderModal = () => {\n return (\n onSave(e)}\n onClose={onClose}\n onCancel={onClose}\n cancelBtnTitle=\"Cancel\"\n title=\"Update Lot\"\n size=\"md\"\n btnClassName=\"track\"\n // shouldConfirmClose\n className=\"add-indicator-modal\"\n >\n
    \n
    \n \n e.key === 'Enter' && onSave(e)}\n value={quantity === null ? '' : _.toString(quantity)}\n onBlur={(e) => handleValidation(e.target.value)}\n onChange={(e) => setQuantity(toPositiveNumberString(e.target.value))}\n ref={inputRef}\n />\n {error && error?.quantity && {error.quantity}}\n
    \n
    \n \n );\n };\n\n return (\n <>\n { isModalOpen && renderModal()}\n setIsModalOpen(true)}\n className=\"dropdown-item\"\n >\n Update Lot\n \n \n );\n};\n\nexport default QuantityReset;\n","import _ from 'lodash';\nimport { defaultUiBehaviourFlags, IntentLabelConfig } from 'v2/modules/withRunForm/configs/index';\nimport { setPartialQuantConfig } from 'v2/modules/withRunForm/redux/actions';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport React, { useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RUN_TYPES } from 'v2/common/constants/index';\nimport { onResetLabels } from 'v2/modules/withRunForm/events/resetLabels';\nimport HoverMessage from 'common/components/HoverMessage';\nimport QuantityReset from 'v2/modules/withRunForm/components/FeatureEnablements/QuantityReset/index';\nimport { Dropdown } from 'react-bootstrap';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { onChangeUiBehaviourFlags } from '../../events/uiBehaviourFlags';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst FeatureEnablements = () => {\n const uiBehaviourFlags = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiBehaviourFlags')\n ) || defaultUiBehaviourFlags;\n const runType = useSelector((state) => getSelectorBasedStoreValue(state, 'runType'));\n const cases = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.cases'));\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n\n const {\n isReEntry, isReExecute, isTrailingStopLoss, isWaitAndTrade\n } = uiBehaviourFlags;\n const dispatch = useDispatch();\n\n const onUpdateUiBehaviourFlags = useCallback((updateValues) => {\n const newUiBehaviourFlags = { ...uiBehaviourFlags, ...updateValues };\n dispatch(setPartialQuantConfig(onChangeUiBehaviourFlags(\n { cases, uiBehaviourFlags: newUiBehaviourFlags }\n )));\n }, [cases, dispatch, uiBehaviourFlags]);\n\n const isShowWaitAndTrade = useMemo(() => (\n runType === RUN_TYPES.live\n ? _.get(window, 'userPermissions.waitAndTrade.isEnabled', false)\n : _.get(window, 'userPermissions.waitAndTradeForBacktest.isEnabled', false)\n ), [runType]);\n\n const handelLablesIndexReset = useCallback(() => {\n try {\n const { updatedCases, updatedPipeConfigs, lastLabelIndex } = onResetLabels(cases, pipeConfigs);\n dispatch(\n setPartialQuantConfig({\n cases: updatedCases,\n pipeConfigs: updatedPipeConfigs\n })\n );\n IntentLabelConfig.setConfigNameAndValue('default', lastLabelIndex);\n reactToastify('Intents Legs ID Rest Successfully', TOASTIFY_TYPES.INFO);\n } catch (e) {\n console.log('Error occured during leg reset call', e);\n reactToastify('Something went wrong unable to Reset Legs ID', TOASTIFY_TYPES.ERROR);\n }\n }, [cases, dispatch, pipeConfigs]);\n\n const reEntryContent = (\n
    \n No re-entry happens if the trailing stop loss or move to cost is already triggered.\n
    \n );\n\n const reExecuteContent = (\n
    \n No re-execute happens if the trailing stop loss or move to cost is already triggered.\n
    \n );\n\n const moreFeatures = useMemo(() => {\n return (\n \n \n More\n \n\n \n \n \n Reset Leg ID\n \n \n \n );\n }, [handelLablesIndexReset]);\n\n const featureConfigs = useMemo(() => [\n {\n label: 'Trailing Stop Loss',\n isPermissionToShow: _.get(window, 'userPermissions.trailingStopLoss.isEnabled', false),\n isChecked: isTrailingStopLoss,\n id: 'isTrailingStopLoss',\n updateValues: { isTrailingStopLoss: !isTrailingStopLoss },\n isdisabled: false,\n },\n {\n label: 'Re-Entry',\n isPermissionToShow: _.get(window, 'userPermissions.reEntry.isEnabled', false),\n isChecked: isReEntry,\n id: 'isReEntry',\n updateValues: { isReEntry: !isReEntry },\n isdisabled: false,\n infoIcon: (\n \n \n info\n \n \n )\n },\n {\n label: 'Re-Execute',\n isPermissionToShow: _.get(window, 'userPermissions.reExecute.isEnabled', false),\n isChecked: isReExecute,\n id: 'isReExecute',\n updateValues: { isReExecute: !isReExecute },\n isdisabled: false,\n infoIcon: (\n \n \n info\n \n \n )\n },\n {\n label: 'Wait and Trade',\n isPermissionToShow: isShowWaitAndTrade,\n isChecked: isWaitAndTrade,\n id: 'isWaitAndTrade',\n updateValues: { isWaitAndTrade: !isWaitAndTrade },\n isdisabled: false,\n }\n ], [isReEntry, isReExecute, isShowWaitAndTrade,\n isTrailingStopLoss, isWaitAndTrade, reEntryContent, reExecuteContent\n ]);\n\n const renderFeatureConfig = useCallback(({\n label, isPermissionToShow, isChecked, id, isdisabled, updateValues, infoIcon\n }) => {\n if (!isPermissionToShow) return null;\n\n return (\n
    \n
    \n { }}\n onChange={() => onUpdateUiBehaviourFlags(updateValues)}\n checked={isChecked}\n />\n \n {label}\n \n
    \n {infoIcon && <>{infoIcon}}\n
    \n );\n }, [onUpdateUiBehaviourFlags]);\n\n return (\n
    \n
    \n
    \n
    Features Enablement:
    \n
    \n {_.map(featureConfigs, renderFeatureConfig)}\n
    \n
    \n {moreFeatures}\n
    \n
    \n );\n};\n\nFeatureEnablements.propTypes = propTypes;\nFeatureEnablements.defaultProps = defaultProps;\n\nexport default FeatureEnablements;\n","import _ from 'lodash';\nimport React, {\n memo, useCallback, useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { BFO_INSTRUMENTS } from 'v2/common/constants/index';\nimport { useFormContext, Controller } from 'react-hook-form';\nimport { LocaleUtils } from 'v2/common/utils/zeequantConstants';\nimport ErrorMesssage from '../ErrorMessage/index';\n\nconst propTypes = {\n instrument: PropTypes.string,\n onUpdateInstrument: PropTypes.func.isRequired,\n prependLabel: PropTypes.string,\n};\n\nconst defaultProps = { instrument: '', prependLabel: '' };\n\nconst SingleInstrumentSelector = ({\n instrument: propsInstrument, onUpdateInstrument, prependLabel\n}) => {\n const {\n errors, control\n } = useFormContext();\n const uniqueId = useMemo(() => _.uniqueId('instrument_'), []);\n const instruments = useMemo(() => LocaleUtils().getAllSymbols(), []);\n const instrument = useMemo(() => propsInstrument.replace(/NFO:|BFO:/, ''), [propsInstrument]);\n\n const options = useMemo(() => _.chain(instruments)\n .map((ins) => ({\n label: ins,\n value: `${_.includes(BFO_INSTRUMENTS, ins) ? 'BFO' : 'NFO'}:${ins}`\n })).value(), [instruments]);\n\n const onChangeInstrument = useCallback((selectedInsArray, onChange) => {\n const selectedIns = _.get(selectedInsArray, '[0].value', '');\n onUpdateInstrument(selectedIns);\n onChange(selectedInsArray);\n }, [onUpdateInstrument]);\n\n const selectedOptions = instrument ? [instrument] : [];\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const validatorConfig = useMemo(() => ({\n validate: (value) => {\n if (_.isEmpty(value)) return 'Please add instrument';\n\n return null;\n }\n }), []);\n\n return (\n
    \n
    \n
    \n
    \n {prependLabel\n && (\n
    \n
    {prependLabel}
    \n
    \n )}\n (\n onChangeInstrument(newInstruments, onChange)}\n />\n )}\n control={control}\n defaultValue={selectedOptions}\n value={selectedOptions}\n name={uniqueId}\n rules={validatorConfig}\n />\n
    \n
    \n
    \n \n
    \n );\n};\n\nSingleInstrumentSelector.propTypes = propTypes;\nSingleInstrumentSelector.defaultProps = defaultProps;\n\nexport default memo(SingleInstrumentSelector);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getQuantModes } from '../../configs/index';\n\nconst propTypes = {\n mode: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nconst ModeSelector = ({ onChange, mode }) => {\n const modeStyle = classNames(\n 'option-type',\n 'align-items-center',\n 'gap-10',\n 'mt-1',\n 'd-flex',\n 'selector-radio-btn'\n );\n const isAdvancedMode = mode === getQuantModes.advanced.value;\n\n const onChangeOrClick = () => {\n if (isAdvancedMode) onChange(getQuantModes.simple.value);\n else onChange(getQuantModes.advanced.value);\n };\n\n const modeRadioBtn = () => {\n return (\n
    \n \n \n {getQuantModes.advanced.label}\n \n
    \n );\n };\n\n return (\n
    {modeRadioBtn()}
    \n );\n};\n\nModeSelector.propTypes = propTypes;\nexport default ModeSelector;\n","import _ from 'lodash';\nimport {\n INTENT_TYPES, SEGMENT_CONFIG\n} from 'v2/common/constants/index';\nimport {\n isIndexInstrumentPresentInInstrumentGroup\n} from '../components/InstrumentDetails/indexInstrumentsChecker';\nimport { getQuantModes } from '../configs/index';\n\nconst getSanitizedIntents = (intents, instrumentGroups, maxInstrumentInGroup, isSimpleMode) => {\n const newIntents = intents.map((intent) => {\n const newIntent = _.cloneDeep(intent);\n if (newIntent.type !== INTENT_TYPES.OpenLeg) {\n return newIntent;\n }\n\n if (isSimpleMode && newIntent?.instrument?.strike?.multiplier) {\n newIntent.instrument.strike.multiplier = 0;\n }\n\n // if changed pair to single, then change instrument index to 0\n if (maxInstrumentInGroup === 1 && newIntent?.instrument?.instrumentIndex === 1) {\n newIntent.instrument.instrumentIndex = 0;\n }\n\n const { instrument: { instrumentIndex } } = newIntent;\n const isIndexInstrumentPresent = isIndexInstrumentPresentInInstrumentGroup(\n instrumentGroups, instrumentIndex\n );\n\n // index related stuffs\n if (isIndexInstrumentPresent) {\n const isEquityPresent = newIntent.instrument.type === SEGMENT_CONFIG.equity;\n if (isEquityPresent) {\n newIntent.instrument.type = SEGMENT_CONFIG.future;\n }\n\n return newIntent;\n }\n\n return newIntent;\n });\n\n return newIntents;\n};\n\nconst getSanitizedCases = (cases, instrumentGroups, maxInstrumentInGroup, isSimpleMode) => {\n const newCases = isSimpleMode ? [_.get(cases, '0')] : cases;\n\n return newCases.map((caseConfig) => {\n const newCaseConfig = _.cloneDeep(caseConfig);\n const { entry: { intents }, adjustments } = newCaseConfig;\n newCaseConfig.entry.intents = getSanitizedIntents(\n intents, instrumentGroups, maxInstrumentInGroup, isSimpleMode\n );\n\n const newAdjustments = adjustments.map((adjustment) => {\n const newAdjustment = _.cloneDeep(adjustment);\n const { intents: adjustmentIntents } = newAdjustment;\n newAdjustment.intents = getSanitizedIntents(\n adjustmentIntents, instrumentGroups, maxInstrumentInGroup, isSimpleMode\n );\n return newAdjustment;\n });\n\n newCaseConfig.adjustments = newAdjustments;\n return newCaseConfig;\n });\n};\n\nexport const onChangeInstrumentGroups = ({\n instrumentGroups,\n cases,\n maxInstrumentsInGroup,\n uiConfigs\n}) => {\n const simple = getQuantModes.simple.value;\n const isSimpleMode = _.get(uiConfigs, 'mode', simple) === simple;\n\n return {\n cases: getSanitizedCases(cases, instrumentGroups, maxInstrumentsInGroup, isSimpleMode),\n instrumentGroups,\n maxInstrumentsInGroup,\n uiConfigs\n };\n};\n","import { useDispatch, useSelector } from 'react-redux';\nimport { useState, useMemo } from 'react';\nimport _ from 'lodash';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport { getQuantModes } from '../../configs/index';\nimport { onChangeInstrumentGroups } from '../../events/instrumentGroups';\nimport { setPartialQuantConfig } from '../../redux/actions';\n\nexport const MAX_INSTRUMENT_GROUPS = window?.isAdmin ? 20 : 2;\n\nconst getMaxInstrumentsGroups = (mode, instrumentGroups) => {\n return mode === getQuantModes.simple.value ? 1 : _.size(instrumentGroups) || 1;\n};\n\nconst useInstrumentDetails = () => {\n const instrumentGroups = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.instrumentGroups')\n );\n const maxInstrumentsInGroup = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.maxInstrumentsInGroup')\n );\n const mode = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs.mode')\n ) || getQuantModes.simple.value;\n\n const uiConfigs = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs')\n ) || {};\n\n const [maxInstrumentGroups, setMaxInstrumentGroups] = useState(\n getMaxInstrumentsGroups(mode, instrumentGroups)\n );\n const cases = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.cases'));\n const isAdvancedMode = useMemo(() => mode === getQuantModes.advanced.value, [mode]);\n const dispatch = useDispatch();\n\n const onUpdateInstrumentGroups = (\n newInstrumentGroups, newMaxInstrumentInGroup, newUiConfigs = uiConfigs\n ) => {\n dispatch(\n setPartialQuantConfig(\n onChangeInstrumentGroups({\n instrumentGroups: newInstrumentGroups,\n cases,\n maxInstrumentsInGroup: Number(newMaxInstrumentInGroup),\n uiConfigs: newUiConfigs\n })\n )\n );\n };\n\n const onUpdateInstrumentGroup = (newInstrumentGroup, idx) => {\n const newInstrumentGroups = _.cloneDeep(instrumentGroups);\n newInstrumentGroups[idx] = newInstrumentGroup;\n\n dispatch(\n setPartialQuantConfig(\n onChangeInstrumentGroups({\n instrumentGroups: newInstrumentGroups,\n cases,\n maxInstrumentsInGroup: Number(maxInstrumentsInGroup),\n uiConfigs\n })\n )\n );\n };\n\n const onUpdateInstrument = (newInstrument, instrumentGroupIndex, instrumentIndex) => {\n const newInstrumentGroup = _.cloneDeep(_.get(instrumentGroups, instrumentGroupIndex, []));\n newInstrumentGroup[instrumentIndex] = newInstrument;\n onUpdateInstrumentGroup(newInstrumentGroup, instrumentGroupIndex);\n };\n\n const onDeleteInstrumentGroup = (instrumentGroupIndex) => {\n const newInstrumentGroups = _.cloneDeep(instrumentGroups);\n newInstrumentGroups.splice(instrumentGroupIndex, 1);\n setMaxInstrumentGroups(maxInstrumentGroups - 1);\n onUpdateInstrumentGroups(newInstrumentGroups, maxInstrumentsInGroup);\n };\n\n const onAddInstumentGroup = () => {\n if (maxInstrumentGroups < MAX_INSTRUMENT_GROUPS) {\n setMaxInstrumentGroups(maxInstrumentGroups + 1);\n } else {\n reactToastify('Maximum strategy limit exceeded', TOASTIFY_TYPES.INFO);\n }\n };\n\n const onChangeMode = (newMode) => {\n const newUiConfigs = { ...uiConfigs, mode: newMode };\n const flattenInstrumentGroups = _.flattenDeep(instrumentGroups);\n if (!_.isEmpty(flattenInstrumentGroups)) {\n return onUpdateInstrumentGroups([[_.head(flattenInstrumentGroups)]], 1, newUiConfigs);\n }\n if (newMode === getQuantModes.simple.value && _.isEmpty(flattenInstrumentGroups)) {\n return onUpdateInstrumentGroups([], 1, newUiConfigs);\n }\n\n return onUpdateInstrumentGroups(instrumentGroups, maxInstrumentsInGroup, newUiConfigs);\n };\n\n return {\n instrumentGroups,\n maxInstrumentsInGroup,\n maxInstrumentGroups,\n isAdvancedMode,\n onUpdateInstrumentGroups,\n onUpdateInstrumentGroup,\n onUpdateInstrument,\n onDeleteInstrumentGroup,\n onAddInstumentGroup,\n onChangeMode,\n mode\n };\n};\n\nexport default useInstrumentDetails;\n","import _ from 'lodash';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\n\nexport const onChangeGlobalSegment = ({\n uiConfigs,\n pipeConfigs\n}) => {\n const { segment } = uiConfigs;\n\n const newPipeConfigs = _.map(pipeConfigs, (pipeConfig) => {\n const supportedSegments = PipeDefinitionUtility.getPipeValuePathSupportedSegments(pipeConfig?.type);\n const valuePaths = _.get(pipeConfig, 'config.valuePaths', []);\n const isEmptyValuePath = _.isEmpty(valuePaths);\n const newSegmentValuePaths = _.map(valuePaths, (valuePath) => {\n const type = _.get(valuePath.split('.'), '1', '');\n if (type === 'month1Price'\n && segment === SEGMENT_CONFIG.equity\n && _.includes(supportedSegments, SEGMENT_CONFIG.equity)\n ) {\n return valuePath.replace('month1Price', 'equity');\n }\n if (type === 'equity'\n && segment === SEGMENT_CONFIG.future\n && _.includes(supportedSegments, SEGMENT_CONFIG.future)\n ) {\n return valuePath.replace('equity', 'month1Price');\n }\n return valuePath;\n });\n return isEmptyValuePath ? pipeConfig : {\n ...pipeConfig, config: { ...pipeConfig.config, valuePaths: newSegmentValuePaths }\n };\n });\n\n return { pipeConfigs: newPipeConfigs, uiConfigs };\n};\n","import _ from 'lodash';\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { SEGMENT_CONFIG } from 'v2/common/constants/index';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport { setPartialQuantConfig } from '../../redux/actions';\nimport { onChangeGlobalSegment } from '../../events/globalSegment';\n\nconst GlobalSegmentSelector = () => {\n const uiConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs'));\n const { segment } = uiConfigs;\n const dispatch = useDispatch();\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n\n const options = [\n { value: SEGMENT_CONFIG.equity, label: 'Equity & Index' },\n { value: SEGMENT_CONFIG.future, label: 'Future & Options' },\n ];\n return (\n {\n const newUiConfigs = {\n ...uiConfigs,\n segment: event.target.value\n };\n\n dispatch(\n setPartialQuantConfig(\n onChangeGlobalSegment({\n pipeConfigs,\n uiConfigs: newUiConfigs\n })\n )\n );\n }}\n >\n {_.map(options, (op) => {\n return ;\n })}\n \n );\n};\n\nGlobalSegmentSelector.propTypes = {};\n\nexport default GlobalSegmentSelector;\n","import React, { memo } from 'react';\nimport _ from 'lodash';\nimport SingleInstrumentSelector from 'v2/common/components/SingleInstrumentSelector/index';\nimport classNames from 'classnames';\nimport ModeSelector from './ModeSelector';\nimport useInstrumentDetails from '../../hooks/useInstrumentDetails/index';\nimport GlobalSegmentSelector from './GlobalSegmentSelector';\n\nconst InstrumentDetails = () => {\n const {\n instrumentGroups,\n maxInstrumentsInGroup,\n maxInstrumentGroups,\n isAdvancedMode,\n onUpdateInstrumentGroups,\n onUpdateInstrument,\n onDeleteInstrumentGroup,\n onAddInstumentGroup,\n onChangeMode,\n mode\n } = useInstrumentDetails();\n\n const renderInstrumentSelector = (instrumentGroupIndex, instrumentIndex, prependLabel = '') => {\n return (\n onUpdateInstrument(\n newInstrument, instrumentGroupIndex, instrumentIndex\n )}\n />\n );\n };\n\n const renderDeleteBtn = (instrumentGroupIndex) => {\n return (\n onDeleteInstrumentGroup(instrumentGroupIndex)}\n >\n \n Delete Strategy\n \n );\n };\n\n const renderAddBtn = () => {\n return (\n \n add\n Add Strategy\n \n );\n };\n\n const renderAddOrDeleteBtn = (instrumentGroupIndex) => {\n if (instrumentGroupIndex === 0 && maxInstrumentGroups === 1) {\n return renderAddBtn(instrumentGroupIndex);\n }\n\n return instrumentGroupIndex === maxInstrumentGroups - 1\n ? renderAddBtn(instrumentGroupIndex)\n : renderDeleteBtn(instrumentGroupIndex);\n };\n\n const renderMaxInstrumentGroupsSelector = () => {\n if (!isAdvancedMode) return renderInstrumentSelector(0, 0);\n\n return _.range(0, maxInstrumentGroups)\n .map((instrumentGroupIndex) => {\n return (\n
    \n \n {_.range(0, maxInstrumentsInGroup).map((instrumentIndex) => {\n return (\n \n {renderInstrumentSelector(\n instrumentGroupIndex,\n instrumentIndex, `Item ${instrumentIndex + 1}`\n )}\n \n );\n })}\n {renderAddOrDeleteBtn(instrumentGroupIndex)}\n
    \n );\n });\n };\n\n const renderMaxInstrumentsInGroupSelector = () => {\n return (\n <>\n
    \n \n {!isAdvancedMode ? 'Instrument' : 'Strategy Based on'}\n \n \n
    \n {isAdvancedMode && (\n onUpdateInstrumentGroups([], event.target.value)}\n >\n {[1, 2, 3].map((value) => {\n return (\n \n );\n })}\n \n )}\n \n );\n };\n\n const flexClassNameModeBased = classNames({ 'd-flex gap-10': !isAdvancedMode });\n const maxInstrumentClassName = classNames('d-flex align-items-center flex-wrap',\n {\n 'strategy-container': true,\n 'mb-2': isAdvancedMode\n });\n\n return (\n
    \n
    \n
    \n
    \n
    \n {renderMaxInstrumentsInGroupSelector()}\n
    \n
    {renderMaxInstrumentGroupsSelector()}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default memo(InstrumentDetails);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { STOPS_VALUE_TYPES } from 'common/constants/index';\n\nconst propTypes = {\n valueType: PropTypes.string.isRequired,\n onValueTypeChange: PropTypes.func.isRequired,\n isShowPrice: PropTypes.bool,\n isShowPoints: PropTypes.bool,\n isShowPercent: PropTypes.bool\n};\n\nconst defaultProps = { isShowPrice: true, isShowPoints: true, isShowPercent: true };\n\nconst ValueTypeToggleBtn = ({\n valueType, onValueTypeChange, isShowPrice, isShowPoints, isShowPercent\n}) => {\n const { Percent, Amount, Points } = STOPS_VALUE_TYPES;\n\n return (\n onValueTypeChange(value)}\n >\n {isShowPercent && (\n \n %\n \n )}\n {isShowPrice && (\n \n \n \n )}\n {isShowPoints && (\n \n Pts\n \n )}\n \n );\n};\n\nValueTypeToggleBtn.propTypes = propTypes;\nValueTypeToggleBtn.defaultProps = defaultProps;\n\nexport default ValueTypeToggleBtn;\n","import _ from 'lodash';\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { setPartialBounds } from 'v2/modules/withRunForm/redux/actions';\nimport StopsValueTypeToggleBtn from 'v2/common/components/StopsValueTypeToggleBtn.jsx';\nimport { onRegexOnlyNumber } from 'common/stringUtils/toPositiveNumberString';\nimport { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\n\nconst TYPES = {\n stopLoss: { value: 'stopLoss', label: 'Stop Loss' },\n stopGain: { value: 'stopGain', label: 'Take Profit' },\n dayStopLoss: { value: 'dayStopLoss', label: 'Stop Loss' },\n dayStopGain: { value: 'dayStopGain', label: 'Take Profit' }\n};\n\nconst propTypes = {\n type: PropTypes.oneOf(_.values(TYPES).map((type) => type.value)).isRequired,\n defaultType: PropTypes.string,\n isShowPercent: PropTypes.bool,\n isShowPoints: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.number,\n PropTypes.string\n ])\n};\n\nconst defaultProps = {\n defaultType: STOPS_VALUE_TYPES.Percent,\n isShowPercent: true,\n isShowPoints: true,\n children: null\n};\n\nconst StopLossOrGainInput = ({\n type, defaultType, isShowPercent, isShowPoints, children\n}) => {\n const dispatch = useDispatch();\n const selectedBound = useSelector(\n (state) => getSelectorBasedStoreValue(state, `quantConfig.bounds.${type}`)\n );\n\n const [config, setConfig] = useState({\n ...selectedBound,\n type: _.get(selectedBound, 'type', defaultType),\n value: _.get(selectedBound, 'value', 0)\n });\n\n useEffect(() => {\n setConfig({\n ...selectedBound,\n type: _.get(selectedBound, 'type', defaultType),\n value: _.get(selectedBound, 'value', 0)\n });\n }, [defaultType, selectedBound]);\n\n const onUpdateBoundTostate = () => {\n dispatch(setPartialBounds({ [type]: config }));\n return null;\n };\n\n const onValueTypeChange = (valueTypeArgs) => {\n dispatch(setPartialBounds({ [type]: { ...config, type: valueTypeArgs } }));\n setConfig({ ...config, type: valueTypeArgs });\n };\n\n const onValueChange = (valueArgs) => {\n setConfig({ ...config, value: valueArgs });\n };\n\n const inputBox = (\n { onValueChange(onRegexOnlyNumber(e.target.value)); }}\n />\n );\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n {inputBox}\n
    \n {children}\n
    \n
    \n
    \n );\n};\n\nStopLossOrGainInput.propTypes = propTypes;\nStopLossOrGainInput.defaultProps = defaultProps;\n\nexport default StopLossOrGainInput;\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport TrailingStopLoss from 'v2/common/components/TrailingStopLoss/index';\nimport { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\nimport { defaultLinearTrail } from 'v2/modules/withRunForm/configs/index';\nimport { setPartialBounds } from 'v2/modules/withRunForm/redux/actions';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst OverallTransactionTSL = () => {\n const dispatch = useDispatch();\n const overallStopLoss = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.bounds.stopLoss')\n ) || {};\n\n const {\n type: slType = STOPS_VALUE_TYPES.Percent,\n value: slValue\n } = overallStopLoss;\n const trail = overallStopLoss.uiConfigs?.trail || defaultLinearTrail;\n\n const onTrailChange = (newTrail) => {\n dispatch(setPartialBounds({\n stopLoss: {\n ...overallStopLoss,\n uiConfigs: {\n ...overallStopLoss.uiConfigs,\n trail: newTrail\n }\n }\n }));\n };\n\n if (!slValue) {\n return null;\n }\n\n return (\n \n );\n};\n\nOverallTransactionTSL.propTypes = propTypes;\nOverallTransactionTSL.defaultProps = defaultProps;\n\nexport default OverallTransactionTSL;\n","import React, { useMemo } from 'react';\nimport { STOPS_VALUE_TYPES } from 'v2/common/constants/index';\nimport { useSelector } from 'react-redux';\nimport HoverMessage from 'common/components/HoverMessage';\nimport StopLossOrGainInput from './StopLossOrGainInput';\nimport { getSelectorBasedStoreValue } from '../../redux/selector';\nimport OverallTransactionTSL from './OverallTransactionTSL';\n\nconst OverallExitCondition = () => {\n const tradingType = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.tradingType'));\n const isIntraday = useMemo(() => tradingType === 'intraday', [tradingType]);\n\n const ttContent = useMemo(() => (\n
    \n After Entry, If all the legs combined profit crosses Take Profit\n
    \n (Or)\n
    \n After Entry, If all the legs combined loss crosses Stop Loss,\n
    \n Then,\n
    \n
    \n It will exit all the legs.\n
    \n ), []);\n\n const dtContent = useMemo(() => (\n
    \n If the day profit (previous transactions and current transaction in the day) crosses Take Profit,\n
    \n (Or)\n
    \n If the day loss (previous transactions and current transaction in the day) crosses Stop Loss,\n
    \n Then,\n
    \n
    \n It will exit the current transaction and will not enter any new transactions for the day.\n
    \n ), []);\n\n const exitConfigs = [\n {\n label: 'Transaction Targets',\n renderInfoMessage: (\n \n \n info\n \n \n ),\n parentClassName: 'col-md-6 col-sm-12 mb-4 mb-md-0',\n content: (\n
    \n \n \n \n \n
    \n ),\n isShow: true\n },\n {\n label: 'Daily Targets',\n renderInfoMessage: (\n \n \n info\n \n \n ),\n parentClassName: 'col-md-6 col-sm-12',\n content: (\n
    \n \n \n
    \n ),\n isShow: isIntraday\n }\n ];\n\n return (\n <>\n
    \n
    \n {exitConfigs.map((config, index) => {\n const {\n label, renderInfoMessage, parentClassName, content, isShow\n } = config;\n if (!isShow) return null;\n\n return (\n
    \n
    \n {label}\n {renderInfoMessage}\n
    \n {content}\n
    \n );\n })}\n
    \n
    \n \n );\n};\n\nexport default OverallExitCondition;\n","const buildDependencyGraph = (pipeConfigs, cases) => {\n const graph = new Map();\n\n const addNode = (name) => {\n if (!graph.has(name)) {\n graph.set(name, { isDependent: false });\n }\n };\n\n const addDependency = (target) => {\n if (!graph.get(target).isDependent) {\n graph.get(target).isDependent = true;\n }\n };\n\n const processSignal = (signal, name) => {\n const { leftOperand, rightOperand } = signal;\n const regex = new RegExp(`\\\\b${name}\\\\b`);\n if (regex.test(leftOperand) || regex.test(rightOperand)) {\n addDependency(name);\n }\n };\n\n const processIntent = (intent, name) => {\n if (graph.get(name).isDependent) {\n return;\n }\n\n const bName = intent?.name || '';\n if (name === bName) addDependency(name);\n };\n\n const processPipeConfig = (pipeConfig) => {\n const { name } = pipeConfig;\n addNode(name);\n\n if (graph.get(name).isDependent) {\n return;\n }\n\n cases.forEach((caseConfig) => {\n const {\n entry: { signal: entrySignals, intents: entryIntents },\n adjustments,\n exitSignal: exitSignals\n } = caseConfig;\n\n entrySignals.forEach((signal) => processSignal(signal, name));\n exitSignals.forEach((signal) => {\n if (graph.get(name).isDependent) {\n return; // Break the loop if already dependent\n }\n processSignal(signal, name);\n });\n\n if (graph.get(name).isDependent) {\n return;\n }\n\n entryIntents.forEach((intent) => processIntent(intent, name));\n\n adjustments.forEach(({ signal: adjustmentSignals, intents: adjustmentIntents }) => {\n adjustmentSignals.forEach((signal) => {\n if (graph.get(name).isDependent) {\n return; // Break the loop if already dependent\n }\n processSignal(signal, name);\n adjustmentIntents.forEach((intent) => processIntent(intent, name));\n });\n });\n });\n\n pipeConfigs.forEach((pipeConfigToCheck) => {\n const signals = pipeConfigToCheck.config?.signal || pipeConfigToCheck?.config?.when || [];\n signals.forEach((signal) => {\n if (graph.get(name).isDependent) {\n return;\n }\n processSignal(signal, name);\n });\n });\n };\n\n pipeConfigs.forEach((pipeConfig) => {\n processPipeConfig(pipeConfig);\n });\n\n return graph;\n};\n\nconst getPipesDependencies = (pipeConfigs, cases) => {\n const graph = buildDependencyGraph(pipeConfigs, cases);\n const pipeDependencies = Object.fromEntries([...graph.entries()]);\n return pipeDependencies;\n};\n\nexport default getPipesDependencies;\n","import _ from 'lodash';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\n\nconst changeName = (value = '', oldPipeName, newPipeName) => {\n if (!_.isString(value)) {\n return value;\n }\n\n const isIncludedCombinedPremium = _.includes(value, 'combinedPremium');\n const getChangedName = (name) => name.replace(new RegExp(`\\\\b${oldPipeName}\\\\b`, 'g'), newPipeName);\n\n if (isIncludedCombinedPremium) {\n const splitedArray = value.split('.');\n if (_.size(splitedArray) === 2) {\n const [pipeName, ...rest] = splitedArray;\n return [getChangedName(pipeName), ...rest].join('.');\n }\n\n const [field, pipeName, ...rest] = splitedArray;\n return [field, getChangedName(pipeName), ...rest].join('.');\n }\n\n return getChangedName(value);\n};\n\nconst processSignal = (signal, oldPipeName, newPipeName) => {\n const newSignal = _.cloneDeep(signal);\n newSignal.leftOperand = changeName(newSignal.leftOperand, oldPipeName, newPipeName);\n newSignal.rightOperand = changeName(newSignal.rightOperand, oldPipeName, newPipeName);\n\n return newSignal;\n};\n\nconst processIntent = (intent, oldPipeName, newPipeName) => {\n if (intent?.type !== INTENT_TYPES.OpenBasket) {\n return intent;\n }\n\n const newIntent = _.cloneDeep(intent);\n newIntent.name = changeName(newIntent.name, oldPipeName, newPipeName);\n\n return newIntent;\n};\n\nconst getSanitizedCases = (cases, oldPipeName, newPipeName) => {\n return _.map(cases, (caseConfig) => {\n const newCaseConfig = _.cloneDeep(caseConfig);\n const {\n entry: {\n signal: entrySignals,\n intents: entryIntents\n },\n adjustments,\n exitSignal: exitSignals\n } = newCaseConfig;\n const newEntrySignals = _.map(entrySignals, (signal) => processSignal(signal, oldPipeName, newPipeName));\n const newExitSignals = _.map(exitSignals, (signal) => processSignal(signal, oldPipeName, newPipeName));\n const newEntryIntents = _.map(entryIntents, (intent) => processIntent(intent, oldPipeName, newPipeName));\n const newAdjustments = _.map(adjustments, (adjustment) => {\n const { signal: adjustmentSignals, intents: adjustmentIntents } = adjustment;\n const newAdjustmentSignals = _.map(\n adjustmentSignals,\n (signal) => processSignal(signal, oldPipeName, newPipeName)\n );\n\n const newAdjustmentIntents = _.map(\n adjustmentIntents,\n (intent) => processIntent(intent, oldPipeName, newPipeName)\n );\n return {\n ...adjustment,\n signal: newAdjustmentSignals,\n intents: newAdjustmentIntents\n };\n });\n newCaseConfig.entry.signal = newEntrySignals;\n newCaseConfig.entry.intents = newEntryIntents;\n newCaseConfig.exitSignal = newExitSignals;\n newCaseConfig.adjustments = newAdjustments;\n\n return newCaseConfig;\n });\n};\n\nconst getSanitizedPipeConfigs = (pipeConfigs, oldPipeName, newPipeName) => {\n return _.map(pipeConfigs, (pipeConfig) => {\n const signals = _.get(pipeConfig, 'config.signal', []);\n const newSignals = _.map(signals, (signal) => processSignal(signal, oldPipeName, newPipeName));\n const valuePaths = _.get(pipeConfig, 'config.valuePaths', []);\n const newValuePaths = _.map(valuePaths, (valuePath) => changeName(valuePath, oldPipeName, newPipeName));\n\n return {\n ...pipeConfig,\n config: {\n ...pipeConfig.config,\n ...(_.isEmpty(newSignals) ? {} : { signal: newSignals }),\n ...(_.isEmpty(newValuePaths) ? {} : { valuePaths: newValuePaths })\n }\n };\n });\n};\n\nexport const onChangePipeName = ({\n cases,\n oldPipeName,\n newPipeName,\n pipeConfigs\n}) => {\n return {\n pipeConfigs: getSanitizedPipeConfigs(pipeConfigs, oldPipeName, newPipeName),\n cases: getSanitizedCases(cases, oldPipeName, newPipeName)\n };\n};\n","import { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport _ from 'lodash';\nimport { setPartialQuantConfig, setPipeConfigs } from 'v2/modules/withRunForm/redux/actions';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport {\n useCallback, useMemo, useState\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport getPipesDependencies from './pipesDependencies';\nimport useOutputSchema from '../useOutputSchema';\nimport { onChangePipeName } from '../../events/pipeName';\nimport { onChangeGlobalSegment } from '../../events/globalSegment';\n\nconst usePipeConfigs = () => {\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n const cases = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.cases'));\n const outputSchema = useOutputSchema();\n const dispatch = useDispatch();\n const uiConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs'));\n const isHiddenSignal = useSelector((state) => getSelectorBasedStoreValue(state, 'isHiddenSignal'));\n\n const [pipeFormConfigs, setPipeFormConfigs] = useState({\n shouldRenderPipeForm: false,\n currentPipeConfig: null,\n editIndex: null\n });\n\n const pipeDependencies = useMemo(() => getPipesDependencies(pipeConfigs, cases), [cases, pipeConfigs]);\n\n const existingPipeNames = useMemo(() => {\n const pipeNames = _.map(pipeConfigs, 'name');\n if (pipeFormConfigs?.editIndex === null) return pipeNames;\n\n return _.filter(pipeNames, (name, idx) => idx !== pipeFormConfigs?.editIndex);\n }, [pipeConfigs, pipeFormConfigs.editIndex]);\n\n const getPipeUpdatedNameIfAlreadyPresent = useCallback((pipeConfig) => {\n if (_.includes(existingPipeNames, pipeConfig?.name)) {\n return { ...pipeConfig, name: _.uniqueId(pipeConfig?.name) };\n }\n return pipeConfig;\n }, [existingPipeNames]);\n\n const onUpdatePipeFormConfigs = useCallback((partialPipeFormConfigs) => {\n setPipeFormConfigs((prev) => ({ ...prev, ...partialPipeFormConfigs }));\n }, []);\n\n const onUpdatePipeConfigsToStore = useCallback((pipeConfig) => {\n if (pipeFormConfigs?.editIndex === null) {\n const newPipeConfigs = [...pipeConfigs, pipeConfig];\n return dispatch(setPipeConfigs(newPipeConfigs));\n }\n const newPipeConfigs = _.cloneDeep(pipeConfigs);\n const oldPipeConfig = newPipeConfigs[pipeFormConfigs?.editIndex];\n newPipeConfigs[pipeFormConfigs?.editIndex] = pipeConfig;\n\n const oldPipeName = oldPipeConfig?.name;\n const newPipeName = pipeConfig?.name;\n\n if (oldPipeName !== newPipeName) {\n return dispatch(\n setPartialQuantConfig(\n onChangePipeName({\n cases,\n oldPipeName,\n newPipeName,\n pipeConfigs: newPipeConfigs\n })\n )\n );\n }\n\n return dispatch(setPipeConfigs(newPipeConfigs));\n }, [cases, dispatch, pipeConfigs, pipeFormConfigs.editIndex]);\n\n const onDeletePipeConfig = useCallback((idx) => {\n const newPipeConfigs = _.filter(pipeConfigs, (config, index) => index !== idx);\n return dispatch(setPipeConfigs(newPipeConfigs));\n }, [dispatch, pipeConfigs]);\n\n const onEditPipeConfig = useCallback((idx) => {\n const currentPipeConfig = pipeConfigs[idx];\n setPipeFormConfigs((prev) => ({\n ...prev,\n shouldRenderPipeForm: true,\n currentPipeConfig,\n editIndex: idx\n }));\n }, [pipeConfigs]);\n\n const onAddIndicator = useCallback(() => {\n const { pipeConfigs: newPipeConfigs } = onChangeGlobalSegment({\n pipeConfigs: [PipeDefinitionUtility.getPipeConfigDefaults('simpleMovingAverage')],\n uiConfigs\n });\n\n setPipeFormConfigs((prev) => ({\n ...prev,\n shouldRenderPipeForm: true,\n currentPipeConfig: getPipeUpdatedNameIfAlreadyPresent(newPipeConfigs[0]),\n }));\n }, [getPipeUpdatedNameIfAlreadyPresent, uiConfigs]);\n\n return {\n pipeConfigs,\n ...pipeFormConfigs,\n onUpdatePipeFormConfigs,\n outputSchema,\n pipeDependencies,\n existingPipeNames,\n onAddIndicator,\n onDeletePipeConfig,\n getPipeUpdatedNameIfAlreadyPresent,\n onUpdatePipeConfigsToStore,\n onEditPipeConfig,\n isHiddenSignal\n };\n};\n\nexport default usePipeConfigs;\n","import wrappedFetch from './base';\n\nconst fetchValidationSchemas = () => {\n return wrappedFetch('/json/validation_schema.json?version=86')\n .then((response) => response.json());\n};\n\nexport default fetchValidationSchemas;\n","import _ from 'lodash';\nconst getPatternRegex = () => ({\n number: /[-+]?([0-9]*\\.[0-9]+|[0-9]+)/,\n string: /\\w/,\n integer: /^[-+]?\\d*$/\n});\n\nconst getChartConfigValidator = (chartConfig) => {\n const { properties, required } = chartConfig;\n const chartConfigValidators = {};\n\n _.each(properties, (property, key) => {\n const { type } = property;\n\n chartConfigValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[type],\n message: `value must be a ${type}`\n }\n };\n });\n\n return chartConfigValidators;\n};\n\nconst getConfigValidator = (config) => {\n const { properties, required } = config;\n const configValidators = {};\n\n _.each(properties, (property, key) => {\n const { type } = property;\n\n if (key === 'valuePaths') {\n const { minItems, maxItems, items } = property;\n configValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'Value is required',\n },\n pattern: {\n value: getPatternRegex()[items.type],\n message: `value should be a ${items.type}`\n },\n minLength: {\n value: minItems,\n message: `should have atleast ${minItems} items`\n },\n maxLength: {\n value: maxItems,\n message: `should have at most ${maxItems} items`\n }\n };\n\n return;\n }\n\n configValidators[key] = {\n required: {\n value: _.includes(required, key),\n message: 'value is required'\n },\n pattern: {\n value: getPatternRegex()[type],\n message: `value must be a ${type}`\n }\n };\n });\n\n return configValidators;\n};\n\nexport const getPipeValidators = (pipesSchema) => {\n const pipesValidators = {};\n _.each(pipesSchema, (pipeSchema, pipeType) => {\n const { properties, required } = pipeSchema;\n const { type: { type }, config, chartConfig } = properties;\n\n pipesValidators[pipeType] = {\n name: {\n required: {\n value: _.includes(required, 'name'),\n message: 'Name is required'\n },\n pattern: {\n value: /^[^\\\\.]+$/,\n message: 'Character \".\" (dot) not allowed in name.'\n }\n },\n type: {\n required: {\n value: _.includes(required, 'type'),\n message: 'indicator is required'\n },\n pattern: {\n value: getPatternRegex()[type],\n message: 'Alphabetical characters only'\n }\n },\n config: getConfigValidator(config),\n chartConfig: getChartConfigValidator(chartConfig)\n };\n });\n\n return pipesValidators;\n};\n","import fetchValidationSchemas from 'common/api/validationSchema';\nimport { useEffect, useMemo, useState } from 'react';\nimport { getPipeValidators } from './pipeValidators';\n\nconst useValidationSchema = () => {\n const [validationSchema, setValidationSchema] = useState({ pipesSchema: {} });\n const { pipesSchema } = validationSchema;\n const pipesValidators = useMemo(() => getPipeValidators(pipesSchema), [pipesSchema]);\n\n useEffect(() => {\n fetchValidationSchemas().then((schema) => {\n setValidationSchema(schema);\n });\n }, []);\n\n return {\n pipesValidators\n };\n};\n\nexport default useValidationSchema;\n","import _ from 'lodash';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport React, { memo, useCallback, useMemo } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { useSelector } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { onChangeGlobalSegment } from 'v2/modules/withRunForm/events/globalSegment';\n\nconst propTypes = {\n type: PropTypes.string.isRequired,\n onSetNewPipe: PropTypes.func.isRequired,\n validator: PropTypes.shape({}),\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n isDependent: PropTypes.bool\n};\n\nconst defaultProps = { validator: { }, isDependent: false };\n\nconst PipeSelector = ({\n type, onSetNewPipe, validator, control, errors, isDependent\n}) => {\n const uiConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.uiConfigs'));\n const uniqueId = useMemo(() => _.uniqueId('pipe_type_'), []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const onChangePipe = useCallback((result, onChange) => {\n if (_.isEmpty(result)) return null;\n\n const newIndicatorType = _.get(result, [0, 'value']);\n\n const { pipeConfigs: newPipeConfigs } = onChangeGlobalSegment({\n pipeConfigs: [PipeDefinitionUtility.getPipeConfigDefaults(newIndicatorType)],\n uiConfigs\n });\n\n onSetNewPipe(newPipeConfigs[0]);\n return onChange(result);\n }, [onSetNewPipe, uiConfigs]);\n\n const validatorConfig = useMemo(() => ({\n ...validator,\n validate: (value) => {\n if (_.isEmpty(value)) return 'Please add indicator type';\n\n return null;\n }\n }), [validator]);\n\n const selectedOptions = useMemo(() => (type ? [type] : []), [type]);\n\n return (\n
    \n \n
    \n \n \n (\n event.target.select()}\n clearButton\n selected={selectedOptions}\n highlightOnlyResult\n options={PipeDefinitionUtility.getPipeConfigSearchTerms()}\n onChange={(result) => onChangePipe(result, onChange)}\n />\n )}\n control={control}\n defaultValue={selectedOptions}\n name={uniqueId}\n rules={validatorConfig}\n />\n \n
    \n
    \n );\n};\n\nPipeSelector.propTypes = propTypes;\nPipeSelector.defaultProps = defaultProps;\n\nexport default memo(PipeSelector);\n","import _ from 'lodash';\nimport React, { memo, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n name: PropTypes.string,\n onUpdateName: PropTypes.func.isRequired,\n existingPipeNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n validator: PropTypes.shape({}),\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n pipeType: PropTypes.string.isRequired,\n clearErrors: PropTypes.func.isRequired\n};\n\nconst defaultProps = {\n name: '',\n validator: {}\n};\n\nconst PipeName = ({\n name: pipeName, onUpdateName, existingPipeNames, validator,\n control, errors, pipeType, clearErrors\n}) => {\n const uniqueId = useMemo(() => _.uniqueId('pipe_name_'), []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n useEffect(() => clearErrors(uniqueId), [clearErrors, pipeType, uniqueId]);\n\n const validatorConfig = useMemo(() => ({\n ...validator,\n validate: () => {\n if (!pipeName) return 'Please name indicator';\n if (_.includes(existingPipeNames, pipeName)) return 'Name already exists';\n\n return null;\n }\n }), [validator, pipeName, existingPipeNames]);\n\n return (\n <>\n
    \n \n \n (\n
    \n \n {\n onUpdateName({ name: event.target.value });\n onChange(event.target.value);\n }}\n />\n
    \n )}\n rules={validatorConfig}\n name={uniqueId}\n defaultValue={pipeName}\n control={control}\n />\n
    \n
    \n \n );\n};\n\nPipeName.propTypes = propTypes;\nPipeName.defaultProps = defaultProps;\n\nexport default memo(PipeName);\n","import _ from 'lodash';\nimport { chartConfigPropTypes } from 'common/propTypes';\nimport React, { memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { CHART_PATTERNS } from 'v2/common/constants/index';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\n\nconst propTypes = {\n chartConfig: chartConfigPropTypes.isRequired,\n onUpdateChartConfig: PropTypes.func.isRequired\n};\nconst defaultProps = {};\n\nconst PipeChartConfig = ({ chartConfig, onUpdateChartConfig }) => {\n const { type } = chartConfig;\n\n const onChange = useCallback((chartType) => {\n onUpdateChartConfig({ chartConfig: { ...chartConfig, type: chartType } });\n }, [chartConfig, onUpdateChartConfig]);\n\n const renderOptions = useCallback(({ label, value, isDisplay }) => {\n if (!isDisplay) return null;\n\n return (\n onChange(value)}\n >\n {label}\n \n\n );\n }, [onChange, type]);\n\n return (\n
    \n \n \n {_.map(CHART_PATTERNS, renderOptions)}\n \n
    \n );\n};\n\nPipeChartConfig.propTypes = propTypes;\nPipeChartConfig.defaultProps = defaultProps;\n\nexport default memo(PipeChartConfig);\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { onRegexOnlyNumber } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired\n};\n\nconst NumberFormField = ({\n name: propsName, value, control, errors, onUpdatePipeConfig, validator\n}) => {\n const uniqueId = useMemo(() => _.uniqueId(`pipe_${propsName}_`), [propsName]);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const rulesValidator = useMemo(() => {\n if (!_.isEmpty(validator)) return validator;\n\n return {\n validate: () => {\n if (Number(value) === 0) {\n return 'Please enter the valid value';\n }\n\n return null;\n }\n };\n }, [value, validator]);\n\n return (\n \n (\n {\n onUpdatePipeConfig(propsName, (onRegexOnlyNumber(event.target.value) || 0));\n onChange(event.target.value);\n }}\n />\n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nNumberFormField.propTypes = propTypes;\n\nexport default NumberFormField;\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])).isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n};\n\nconst SelectFormField = ({\n name: propsName, options, value, control, errors, onUpdatePipeConfig\n}) => {\n const uniqueId = useMemo(() => _.uniqueId(`pipe_${propsName}_`), [propsName]);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const rulesValidator = useMemo(() => {\n return {\n validate: () => {\n if (_.isEmpty(value) && !_.isBoolean(value)) {\n return 'Please select the valid value';\n }\n\n return null;\n }\n };\n }, [value]);\n\n const renderOption = (opt) => {\n if (_.isObject(opt)) {\n return ;\n }\n\n return ;\n };\n return (\n \n (\n {\n const targetValue = event.target.value;\n if (['true', 'false'].includes(targetValue)) {\n onUpdatePipeConfig(propsName, (targetValue === 'true'));\n } else {\n onUpdatePipeConfig(propsName, (targetValue || 0));\n }\n onChange(targetValue);\n }}\n >\n {_.map(options, renderOption)}\n \n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nSelectFormField.propTypes = propTypes;\n\nexport default SelectFormField;\n","import _ from 'lodash';\nimport React, { memo, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { Controller } from 'react-hook-form';\nimport useOutputSchema from 'v2/modules/withRunForm/hooks/useOutputSchema';\nimport { useSelector } from 'react-redux';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport ReactHtmlParser from 'react-html-parser';\nimport { OutputSchemaUtility, TypeheadSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport { schemaShouldShowConfigTypes } from 'v2/common/quantConfig/outputSchema/config';\n\nconst propTypes = {\n value: PropTypes.arrayOf(PropTypes.string).isRequired,\n type: PropTypes.string.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired,\n name: PropTypes.string.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n pipeIndex: PropTypes.number\n};\n\nconst defaultProps = {\n pipeIndex: undefined\n};\n\nconst mandatoryMultipleInstrumentForPipes = () => [\n PipeDefinitionUtility.getPipeConfigDefaults('ratio').type,\n];\n\nconst isInvalidForInstrument = (type, valuePaths, maxInstrumentsInGroup) => {\n const hasDefaultValuePaths = _.filter(\n _.get(PipeDefinitionUtility.getPipeConfigDefaults(type),\n 'config.valuePaths',\n []),\n (valuePath) => {\n return _.includes(valuePaths, valuePath);\n }\n ).length === valuePaths.length;\n\n return _.includes(mandatoryMultipleInstrumentForPipes(), type)\n && (maxInstrumentsInGroup === 1 && hasDefaultValuePaths);\n};\n\nconst ValuePathsFormField = ({\n value, type, onUpdatePipeConfig, validator, control, errors, name: propsName, pipeIndex\n}) => {\n const uniqueId = useMemo(() => _.uniqueId('pipe_value_paths_'), []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n const maxInstrumentsInGroup = useSelector(\n (state) => getSelectorBasedStoreValue(state, 'quantConfig.maxInstrumentsInGroup')\n );\n const outputSchema = useOutputSchema();\n const isInvalid = useMemo(\n () => isInvalidForInstrument(type, value, maxInstrumentsInGroup),\n [maxInstrumentsInGroup, type, value]\n );\n\n const pipeConfigOutputSchema = useMemo(\n () => _.chain(outputSchema)\n .thru((schema) => OutputSchemaUtility.filterByTypes(\n schema,\n [schemaShouldShowConfigTypes.pipeValuePath]\n ))\n .thru((schema) => OutputSchemaUtility.filterSchemaPriorToPipeIndex(schema, pipeIndex))\n .value(),\n [outputSchema, pipeIndex]\n );\n\n const isNonEditableValuePaths = useMemo(\n () => _.includes(PipeDefinitionUtility.getIndicatorsWithNonEditableValuePaths(), type), [type]\n );\n\n const options = useMemo(\n () => _.map(\n pipeConfigOutputSchema,\n (schema) => TypeheadSchemaUtility.getOption(schema)\n ),\n [pipeConfigOutputSchema]\n );\n\n const selected = useMemo(\n () => TypeheadSchemaUtility.getSelectedOption(\n pipeConfigOutputSchema,\n value\n ), [value, pipeConfigOutputSchema]\n );\n\n const onValuePathChange = useCallback((val, onChange) => {\n const newValuePaths = _.map(val, 'id');\n\n onUpdatePipeConfig(propsName, newValuePaths);\n onChange(newValuePaths);\n }, [onUpdatePipeConfig, propsName]);\n\n const valuePathValidator = useMemo(() => {\n const minLength = _.get(validator, 'minLength');\n const maxLength = _.get(validator, 'maxLength');\n\n return {\n ...validator,\n validate: (val) => {\n if (_.isEmpty(val)) return 'Please add a value Field';\n if (maxLength && _.size(selected) > maxLength.value) return maxLength.message;\n if (minLength && _.size(selected) < minLength.value) return minLength.message;\n if (isInvalid) return 'should have pair trade';\n\n return null;\n }\n };\n }, [isInvalid, selected, validator]);\n\n return (\n \n (\n 1}\n disabled={isNonEditableValuePaths}\n ref={ref}\n isInvalid={!!errorMessage}\n id={name}\n options={options}\n labelKey=\"searchLabel\"\n renderMenuItemChildren={(option) => ReactHtmlParser(option.label)}\n filterBy={(\n option, filterProps\n ) => TypeheadSchemaUtility.getOptionFilteredBySearchText(option, filterProps)}\n selected={selected}\n clearButton={!_.isEmpty(selected)}\n onChange={(val) => onValuePathChange(val, onChange)}\n />\n )}\n control={control}\n defaultValue={selected}\n name={uniqueId}\n rules={valuePathValidator}\n />\n \n );\n};\n\nValuePathsFormField.propTypes = propTypes;\nValuePathsFormField.defaultProps = defaultProps;\n\nexport default memo(ValuePathsFormField);\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { signalsPropTypes } from 'common/propTypes';\nimport useOutputSchema from 'v2/modules/withRunForm/hooks/useOutputSchema';\nimport { OutputSchemaUtility } from 'v2/common/quantConfig/outputSchema/utility';\nimport Main from 'v2/modules/withRunForm/components/Signals/SignalsForm/Main';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: signalsPropTypes.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n pipeIndex: PropTypes.number\n};\n\nconst defaultProps = {\n pipeIndex: undefined\n};\n\nconst SignalFormField = ({\n name, value, control, errors, onUpdatePipeConfig, pipeIndex\n}) => {\n const signals = value || [];\n const outputSchema = useOutputSchema();\n const filteredOutputSchema = useMemo(() => {\n return _.chain(outputSchema)\n .thru((schema) => OutputSchemaUtility.filterSchemaPriorToPipeIndex(schema, pipeIndex))\n .value();\n }, [outputSchema, pipeIndex]);\n\n const onUpdateSignals = useCallback((newSignals) => {\n onUpdatePipeConfig(name, newSignals);\n }, [onUpdatePipeConfig, name]);\n\n return (\n
    \n \n
    \n );\n};\n\nSignalFormField.propTypes = propTypes;\nSignalFormField.defaultProps = defaultProps;\n\nexport default SignalFormField;\n","import _ from 'lodash';\nimport React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { CANDLE_INTERVALS } from 'v2/common/quantConfig/index';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n value: PropTypes.string.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n validator: PropTypes.shape({}).isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired\n};\n\nconst defaultProps = {};\n\nconst PipeCandleInterval = ({\n value, onUpdatePipeConfig, name: propsName, validator, control, errors\n}) => {\n const uniqueId = useMemo(() => _.uniqueId('pipe_candle_interval_'), []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const intervalOptions = useMemo(() => _.map(\n CANDLE_INTERVALS,\n ({ displayValue, value: val }, idx) => \n ), []);\n\n const rulesValidator = useMemo(() => {\n if (_.isEmpty(validator)) return null;\n\n return {\n ...validator,\n validate: () => {\n if (!value) {\n return 'Candle Interval is required';\n }\n\n return null;\n }\n };\n }, [value, validator]);\n\n return (\n \n (\n {\n onUpdatePipeConfig(propsName, event.target.value);\n onChange(event.target.value);\n }}\n >\n {intervalOptions}\n \n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nPipeCandleInterval.propTypes = propTypes;\nPipeCandleInterval.defaultProps = defaultProps;\n\nexport default memo(PipeCandleInterval);\n","import _ from 'lodash';\nimport { INTENT_TYPES } from 'v2/common/constants/index';\nimport { extractIdsFromLabel, extractIndividualSchemaField } from '../../utils/signal';\n\nconst getPipeIntentDependencies = (pipeConfig, cases) => {\n const { name, config: { legs: intents } } = pipeConfig;\n\n const pipeIntentDependencies = {};\n const dependentLabels = cases.flatMap(\n ({ entry: { intents: entryIntents, signal: entrySignals }, adjustments }) => {\n const allIntents = [\n ...entryIntents,\n ...adjustments.flatMap(({ intents: adjustmentIntents }) => adjustmentIntents)\n ];\n const allSignals = [\n ...entrySignals,\n ...adjustments.flatMap(({ signal: adjustmentSignals }) => adjustmentSignals)\n ];\n\n const openBasketIntents = allIntents.filter(\n (intent) => intent?.type === INTENT_TYPES.OpenBasket && intent.name === name\n );\n\n return openBasketIntents.map((openBasketIntent) => {\n const { identifier: { label: openBasketLabel } } = openBasketIntent;\n const filteredIntentLabel = allIntents.flatMap((intent) => {\n const { identifier: { label } } = intent;\n const { intentId } = extractIdsFromLabel(label || '');\n const { intentId: targetIntentId } = extractIdsFromLabel(_.get(intent, 'target.label', ''));\n if (intentId?.includes(openBasketLabel)) {\n return [label];\n }\n if (targetIntentId?.includes(openBasketLabel)) {\n return [_.get(intent, 'target.label', '')];\n }\n return [];\n }).filter(Boolean);\n\n const filteredSignalLabels = allSignals.flatMap(({ leftOperand, rightOperand }) => {\n return [leftOperand, rightOperand].flatMap((operand) => {\n const { intentId, label } = extractIndividualSchemaField(operand);\n if (intentId?.includes(openBasketLabel)) {\n return [label];\n }\n return [];\n });\n }).filter(Boolean);\n\n return [...filteredIntentLabel, ...filteredSignalLabels];\n });\n }\n ).flat().filter(Boolean);\n\n intents.forEach((intent) => {\n const { identifier: { label: intentLabel } } = intent;\n pipeIntentDependencies[intentLabel] = {\n isDependent: dependentLabels.some((label) => extractIdsFromLabel(label).basketId?.includes(intentLabel))\n };\n });\n\n return pipeIntentDependencies;\n};\n\nexport default getPipeIntentDependencies;\n","import React, { useEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport {\n IntentLabelConfig, getDefaultIdentifier, getDefaultIntent\n} from 'v2/modules/withRunForm/configs/index';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport getPipeIntentDependencies from 'v2/modules/withRunForm/hooks/useCase/pipeIntentDependencies';\nimport Intents from 'v2/modules/withRunForm/components/Intents/index';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.arrayOf(\n PropTypes.shape({\n identifier: PropTypes.shape({\n label: PropTypes.string,\n }),\n })\n ).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n pipeConfig: PropTypes.shape({\n name: PropTypes.string,\n }).isRequired,\n errors: PropTypes.shape({}).isRequired,\n control: PropTypes.shape({}).isRequired,\n setError: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n pipeIndex: PropTypes.number,\n};\n\n\nconst defaultProps = {\n pipeIndex: undefined,\n};\n\nconst PipeIntents = ({\n name, value: intents, onUpdatePipeConfig, pipeConfig, errors, control, setError, clearErrors, pipeIndex\n}) => {\n const cases = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.cases'));\n const pipeName = useMemo(() => pipeConfig.name, [pipeConfig]);\n const pipeRef = useRef(pipeName);\n const pipeIntentDependencies = useMemo(\n () => {\n return getPipeIntentDependencies(pipeConfig, cases);\n \n }, []\n );\n\n useEffect(() => {\n if (intents.length === 0) {\n onUpdatePipeConfig(name, [{\n ...getDefaultIntent(),\n identifier: getDefaultIdentifier(pipeName),\n }]);\n }\n \n }, []);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n if (intents?.length !== 0) {\n IntentLabelConfig.setConfigNameAndValue(pipeRef.current, '');\n pipeRef.current = pipeName;\n const lastIntent = intents[intents.length - 1];\n const label = lastIntent?.identifier?.label || '';\n IntentLabelConfig.setConfigNameAndValue(pipeRef.current, label);\n }\n }, 500);\n\n return () => clearTimeout(timeout);\n \n }, [intents.length, pipeName]);\n\n return (\n onUpdatePipeConfig(name, newIntents)}\n />\n );\n};\n\nPipeIntents.propTypes = propTypes;\nPipeIntents.defaultProps = defaultProps;\n\nexport default PipeIntents;\n","import _ from 'lodash';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport StopsInput from 'v2/common/components/StopsInput/index';\nimport { SL_TRAIL_TYPES } from 'v2/common/constants/index';\nimport AddTrailing from 'v2/common/components/TrailingStopLoss/AddTrailing';\nimport TrailingFields from 'v2/common/components/TrailingStopLoss/TrailingFields';\nimport {\n getTrailingStopLossValidationErrors\n} from 'v2/common/components/TrailingStopLoss/errorConfig';\nimport { defaultLinearTrail } from 'v2/modules/withRunForm/configs/index';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.shape({}).isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired\n};\n\nconst StopLossFormField = ({\n name: propsName, value, control, errors, onUpdatePipeConfig\n}) => {\n const uniqueId = useMemo(() => _.uniqueId(`pipe_${propsName}_`), [propsName]);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n const [stopLossConfig, setStopLossConfig] = useState(value);\n const stopLossErrors = _.get(errors, `${uniqueId}.errorConfigs`, {});\n\n const { type, value: stopLossValue, trail } = stopLossConfig;\n const [isTrailingStopLoss, setIsTrailingStopLoss] = useState(\n (!_.isEmpty(trail?.type) && trail?.trailingValue > 0) && stopLossValue > 0\n );\n\n const rulesValidator = useMemo(() => {\n return {\n validate: () => {\n if (!stopLossValue) {\n return 'Please enter the stop loss value';\n }\n\n if (isTrailingStopLoss) {\n const tslErrors = getTrailingStopLossValidationErrors(trail);\n if (tslErrors.length > 0) {\n return tslErrors[0];\n }\n }\n\n return null;\n }\n };\n }, [stopLossValue, isTrailingStopLoss, trail]);\n\n useEffect(() => {\n if (value && value !== stopLossConfig && Object.keys(value).length > 0) {\n onUpdatePipeConfig(propsName, stopLossConfig);\n }\n }, [onUpdatePipeConfig, propsName, stopLossConfig, value, isTrailingStopLoss]);\n\n const renderTsl = () => {\n if (!isTrailingStopLoss) return null;\n\n return (\n \n {\n setStopLossConfig({\n ...stopLossConfig,\n trail: updatedConfig\n });\n }}\n stopLossType={type}\n />\n \n );\n };\n\n const onChangeIsTrailingStopLoss = (isTrailingStopLossEnabled) => {\n const sanitizedConfig = !isTrailingStopLossEnabled\n ? { ...stopLossConfig, trail: defaultLinearTrail }\n : stopLossConfig;\n\n setIsTrailingStopLoss(isTrailingStopLossEnabled);\n setStopLossConfig(sanitizedConfig);\n };\n\n return (\n \n (\n
    \n
    \n {\n onChange(stopLossConfig);\n setStopLossConfig({ ...stopLossConfig, type: newType, value: newValue });\n }}\n shouldIgnorePoints\n shouldIgnoreUnderlyingSpot\n />\n
    \n
    \n 0}\n onShowTrailingStopLoss={(isTrailingStopLossEnabled) => {\n onChangeIsTrailingStopLoss(isTrailingStopLossEnabled);\n }}\n isShowCheckBox\n isTrailingStopLossEnabled={isTrailingStopLoss}\n />\n
    \n {renderTsl()}\n {!_.isEmpty(stopLossErrors) && (\n
    \n {_.map(stopLossErrors, (error, idx) => {\n return
    {error}
    ;\n })}\n
    \n )}\n
    \n )}\n control={control}\n defaultValue={stopLossConfig}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n
    \n );\n};\n\nStopLossFormField.propTypes = propTypes;\n\nexport default StopLossFormField;\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { getTimeValidatorsV2 } from 'common/utils/validators';\nimport TimeSelector from 'common/components/TimeSelector';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired\n};\n\nconst TimeOfDayField = ({\n name: propsName, value, control, errors, onUpdatePipeConfig\n}) => {\n const uniqueId = useMemo(() => _.uniqueId(`time_of_day_field_${propsName}_`), [propsName]);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n return (\n \n (\n {\n onUpdatePipeConfig(propsName, newTime);\n onChange(newTime);\n }}\n selectedTime={value}\n className=\"form-control\"\n format=\"HH:mm\"\n />\n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={getTimeValidatorsV2()}\n />\n \n );\n};\n\nTimeOfDayField.propTypes = propTypes;\n\nexport default TimeOfDayField;\n","import _ from 'lodash';\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { ToggleButtonGroup, ToggleButton } from 'react-bootstrap';\nimport { EXTERNAL_SIGNALS_VENDOR_TYPES } from 'v2/common/constants/index';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired\n};\n\nconst VendorField = ({\n name: propsName, value, onUpdatePipeConfig\n}) => {\n const renderOptions = useCallback((vendorType) => {\n return (\n onUpdatePipeConfig(propsName, vendorType)}\n >\n {vendorType}\n \n\n );\n }, [onUpdatePipeConfig, propsName, value]);\n\n return (\n
    \n \n {_.map(EXTERNAL_SIGNALS_VENDOR_TYPES, renderOptions)}\n \n
    \n );\n};\n\nVendorField.propTypes = propTypes;\n\nexport default VendorField;\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n validator: PropTypes.shape({}).isRequired\n};\n\nconst ReadOnlyField = ({\n name: propsName, value, control, errors, validator\n}) => {\n const uniqueId = useMemo(() => 'read_only__', []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const rulesValidator = useMemo(() => {\n if (!_.isEmpty(validator)) return validator;\n\n return {\n validate: () => {\n if (!value) {\n return `${propsName} field cannot be empty`;\n }\n\n return null;\n }\n };\n }, [value, validator, propsName]);\n\n return (\n \n (\n {}}\n />\n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nReadOnlyField.propTypes = propTypes;\n\nexport default ReadOnlyField;\n","import wrappedFetch from './base';\n\nexport const generateToken = () => {\n return wrappedFetch('/external_signal/create')\n .then((response) => response.json());\n};\n","import React from 'react';\n\nconst TradingView = () => {\n return (\n
    \n
    How to paste External Signal Id in Trading View
    \n
    \n
      \n
    • \n Open the trading view chart and click on the alert button.\n \"Trading\n
    • \n
    • \n \n Copy the External Signal Id and paste it in the Webhook URL box\n and click on the create button.\n \n \"Trading\n
    • \n
    \n
    \n
    \n );\n};\n\nTradingView.propTypes = {};\n\nexport default TradingView;\n","import React from 'react';\n\nconst ChartInk = () => {\n return (\n
    \n
    How to paste External Signal Id in Chart Ink
    \n
    \n
      \n
    • \n Open the chart ink and click on the Premium Real time alert button.\n \"Trading\n
    • \n
    • \n In Dashboard click the alert tab.\n \"Trading\n
    • \n
    • \n Choose any strategy and Click the create alert button.\n \"Trading\n
    • \n
    • \n Paste the copied external signal id in the webhook URL box\n \"Trading\n
    • \n
    \n
    \n
    \n );\n};\n\nChartInk.propTypes = {};\n\nexport default ChartInk;\n","import _ from 'lodash';\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { reactToastify, TOASTIFY_TYPES } from 'common/utils/reactToastify';\nimport { generateToken } from 'common/api/externalSignal';\nimport { EXTERNAL_SIGNALS_VENDOR_TYPES } from 'v2/common/constants/index';\nimport ReadOnlyField from '../ReadOnlyField';\nimport { getExternalSignalUrl } from './url';\nimport TradingView from './TradingView';\nimport ChartInk from './ChartInk';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n clearErrors: PropTypes.func.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired,\n pipeConfig: PropTypes.shape({\n name: PropTypes.string,\n config: PropTypes.shape({\n token: PropTypes.string,\n }),\n }).isRequired,\n};\n\nconst ExternalSignal = (props) => {\n const {\n onUpdatePipeConfig,\n name: propsName,\n value,\n pipeConfig,\n clearErrors\n } = props;\n\n const onGeneratePostback = useCallback(() => {\n clearErrors('read_only__');\n generateToken().then((response) => {\n const { status, token, id: externalSignalId } = response;\n if (!status) {\n reactToastify('Failed to generate postback', TOASTIFY_TYPES.ERROR);\n return;\n }\n onUpdatePipeConfig({ token, [propsName]: externalSignalId });\n reactToastify('Postback generated successfully', TOASTIFY_TYPES.SUCCESS);\n }).catch(() => {\n reactToastify('Failed to generate postback', TOASTIFY_TYPES.ERROR);\n });\n }, [clearErrors, onUpdatePipeConfig, propsName]);\n\n const onValidate = ({\n validate: () => {\n if (!value) {\n return 'External signal cannot be empty';\n }\n return null;\n }\n });\n\n const token = _.get(pipeConfig, 'config.token', '');\n const customValue = token ? getExternalSignalUrl(token) : token;\n const isTradingView = _.get(pipeConfig, 'config.vendor') === EXTERNAL_SIGNALS_VENDOR_TYPES.TradingView;\n\n return (\n <>\n \n \n \n
    \n \n
    \n \n {isTradingView ? : }\n \n );\n};\n\nExternalSignal.propTypes = propTypes;\n\nexport default ExternalSignal;\n","import _ from 'lodash';\nimport React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\nimport { onRegexOnlyNumberAndFloat } from 'common/stringUtils/toPositiveNumberString';\n\nconst propTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired\n};\n\nconst FloatFormField = ({\n name: propsName, value, control, errors, onUpdatePipeConfig, validator\n}) => {\n const uniqueId = useMemo(() => _.uniqueId(`pipe_${propsName}_`), [propsName]);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n const [localValue, setLocalValue] = useState(value === undefined ? '' : (value?.toString() || ''));\n\n const rulesValidator = useMemo(() => {\n if (!_.isEmpty(validator)) return validator;\n\n return {\n validate: () => {\n if (Number(value) === 0) {\n return 'Please enter the valid value';\n }\n\n return null;\n }\n };\n }, [value, validator]);\n\n const onBlur = (event) => {\n onUpdatePipeConfig(propsName, (onRegexOnlyNumberAndFloat(event.target.value) || 0));\n };\n\n return (\n \n (\n onBlur(event)}\n onChange={(event) => {\n setLocalValue(onRegexOnlyNumberAndFloat(event.target.value, true));\n onChange(event.target.value);\n }}\n />\n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nFloatFormField.propTypes = propTypes;\n\nexport default FloatFormField;\n","import _ from 'lodash';\nimport React, { memo, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { CANDLE_INTERVALS } from 'v2/common/quantConfig/index';\nimport { Controller } from 'react-hook-form';\nimport { Form } from 'react-bootstrap';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst propTypes = {\n value: PropTypes.string.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n validator: PropTypes.shape({}).isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n clearErrors: PropTypes.func.isRequired,\n pipeConfig: PropTypes.shape({}).isRequired,\n};\n\nconst defaultProps = {};\n\nconst PipeVolumeInterval = ({\n value, onUpdatePipeConfig, name: propsName, validator, control, errors, clearErrors, pipeConfig\n}) => {\n const chartType = useMemo(() => _.get(pipeConfig, 'chartConfig.type', ''), [pipeConfig]);\n const candleInterval = useMemo(() => _.get(pipeConfig, 'config.candleInterval', ''), [pipeConfig]);\n const isVolumeChartType = useMemo(() => chartType === 'volumeCandle', [chartType]);\n const uniqueId = useMemo(() => _.uniqueId('pipe_volume_interval_'), []);\n const errorMessage = _.get(errors, `${uniqueId}.message`, '');\n\n const candleIntervals = useMemo(() => {\n return _.chain(CANDLE_INTERVALS)\n .findIndex({ value: candleInterval })\n .thru((index) => {\n return _.take(CANDLE_INTERVALS, index + 1);\n })\n .value();\n }, [candleInterval]);\n\n const intervalOptions = useMemo(() => _.map(\n candleIntervals,\n ({ displayValue, value: val }, idx) => \n ), [candleIntervals]);\n\n useEffect(() => {\n if (!isVolumeChartType) clearErrors(uniqueId);\n \n }, [isVolumeChartType]);\n\n useEffect(() => {\n onUpdatePipeConfig(propsName, candleInterval);\n \n }, [candleInterval]);\n\n const rulesValidator = useMemo(() => {\n if (_.isEmpty(validator)) return null;\n\n return {\n ...validator,\n validate: () => {\n if (!value) {\n return 'Volume Interval is required';\n }\n\n return null;\n }\n };\n }, [value, validator]);\n\n if (!isVolumeChartType) return null;\n\n return (\n \n (\n {\n onUpdatePipeConfig(propsName, event.target.value);\n onChange(event.target.value);\n }}\n >\n {intervalOptions}\n \n )}\n control={control}\n defaultValue={value}\n name={uniqueId}\n rules={rulesValidator}\n />\n \n );\n};\n\nPipeVolumeInterval.propTypes = propTypes;\nPipeVolumeInterval.defaultProps = defaultProps;\n\nexport default memo(PipeVolumeInterval);\n","import { pipeInputSchemaTypes } from 'v2/common/quantConfig/pipeDefinitions/config';\nimport NumberFormField from './components/NumberFormField';\nimport SelectFormField from './components/SelectFormField';\nimport ValuePathsFormField from './components/ValuePathsFormField';\nimport SignalFormField from './components/SignalFormField';\nimport PipeCandleInterval from './components/PipeCandleInterval';\nimport PipeIntents from './components/PipeIntents';\nimport StopLossFormField from './components/StopLossFormField';\nimport TimeOfDayField from './components/TimeOfDayField';\nimport VendorField from './components/VendorField';\nimport ReadOnlyField from './components/ReadOnlyField';\nimport ExternalSignal from './components/ExternalSignal/index';\nimport FloatFormField from './components/FloatFormField';\nimport PipeVolumeInterval from './components/PipeVolumeInterval';\n\nconst config = {\n [pipeInputSchemaTypes.number]: {\n component: NumberFormField,\n className: '',\n },\n [pipeInputSchemaTypes.timeOfDay]: {\n component: TimeOfDayField,\n className: '',\n },\n [pipeInputSchemaTypes.float]: {\n component: FloatFormField,\n className: '',\n },\n [pipeInputSchemaTypes.select]: {\n component: SelectFormField,\n className: ''\n },\n [pipeInputSchemaTypes.volumeInterval]: {\n component: PipeVolumeInterval,\n className: '',\n },\n [pipeInputSchemaTypes.valuePaths]: {\n component: ValuePathsFormField,\n className: '',\n },\n [pipeInputSchemaTypes.intents]: {\n component: PipeIntents,\n className: 'full__width',\n },\n [pipeInputSchemaTypes.signal]: {\n component: SignalFormField,\n className: 'full__width',\n },\n [pipeInputSchemaTypes.candleInterval]: {\n component: PipeCandleInterval,\n className: '',\n },\n [pipeInputSchemaTypes.vendor]: {\n component: VendorField,\n className: ''\n },\n [pipeInputSchemaTypes.readOnly]: {\n component: ReadOnlyField,\n className: ''\n },\n [pipeInputSchemaTypes.externalSignalId]: {\n component: ExternalSignal,\n className: 'full__width',\n },\n [pipeInputSchemaTypes.stopLoss]: {\n component: StopLossFormField,\n className: 'full__width pipe_transaction_sl',\n },\n};\n\nexport const PipeUtility = (() => {\n return {\n getComponentByType: (type) => {\n return config[type]?.component;\n },\n getParentClassNameByType: (type) => {\n return config[type]?.className || '';\n }\n };\n})();\n","export const customValidatorConfig = (config) => {\n const maxPeriodAllowed = {\n '1 minutes': 7500,\n '3 minutes': 2500,\n '5 minutes': 1500,\n '15 minutes': 500,\n '30 minutes': 260,\n '1 hours': 140,\n };\n\n return {\n noOfCandles: {\n validate: (value) => {\n if (Number(value) === 0) return 'Please enter the valid value';\n if (Number(value) > maxPeriodAllowed[config.candleInterval]) {\n let error = `Max period allowed for ${config.candleInterval} `;\n error += `candle intervel is ${maxPeriodAllowed[config.candleInterval]}`;\n return error;\n }\n\n return null;\n }\n },\n };\n};\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport { PipeDefinitionUtility, configDisplayNames } from 'v2/common/quantConfig/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport { PipeUtility } from '../utility';\nimport FloatFormField from '../components/FloatFormField';\nimport { customValidatorConfig } from '../customValidation';\nimport { customDisplayConfig } from '../customDisplayConfig';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n validator: PropTypes.shape({}).isRequired,\n pipeIndex: PropTypes.number,\n setError: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n existingPipeNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n inputKeys: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nconst Legacy = ({\n pipeConfig,\n onUpdatePipeConfig,\n control,\n errors,\n validator,\n pipeIndex,\n setError,\n clearErrors,\n existingPipeNames,\n inputKeys\n}) => {\n const { type, config, chartConfig } = pipeConfig;\n\n const inputSchema = useMemo(\n () => PipeDefinitionUtility.getPipeInputSchemaByType(pipeConfig.type),\n [pipeConfig.type]\n );\n const customValidator = useMemo(() => customValidatorConfig(config), [config]);\n\n const renderDeclarativeComponent = (Component, configKey, inputSchemaConfig, inputType) => {\n const configLabel = _.get(\n inputSchemaConfig,\n 'label',\n _.get(configDisplayNames, [configKey], configKey)\n );\n const className = PipeUtility.getParentClassNameByType(inputType);\n const options = _.get(inputSchemaConfig, 'options', []);\n const info = _.get(inputSchemaConfig, 'info', '');\n\n return (\n
    \n \n \n
    \n );\n };\n\n const renderField = (configKey) => {\n const inputSchemaConfig = _.find(inputSchema, { name: configKey }) || {};\n const inputType = _.get(inputSchemaConfig, 'type', configKey);\n const isDisplay = _.get(\n inputSchemaConfig,\n 'isDisplay',\n _.get(customDisplayConfig(pipeConfig), configKey, true)\n );\n if (!isDisplay) return null;\n\n const component = PipeUtility.getComponentByType(inputType);\n if (component) {\n return renderDeclarativeComponent(\n component,\n configKey,\n inputSchemaConfig,\n inputType\n );\n }\n\n return renderDeclarativeComponent(FloatFormField, configKey, inputSchemaConfig);\n };\n\n return _.map(inputKeys, renderField);\n};\n\nLegacy.propTypes = propTypes;\n\nexport default Legacy;\n","import _ from 'lodash';\nimport React, { useMemo, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form } from 'react-bootstrap';\nimport { Controller } from 'react-hook-form';\nimport { validateCustomScript } from 'common/api/quantConfig';\n\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport { getSelectorBasedStoreValue } from 'v2/modules/withRunForm/redux/selector';\nimport { useSelector } from 'react-redux';\nimport ErrorMesssage from 'v2/common/components/ErrorMessage/index';\n\nconst OUTPUT_SCHEMA_VALIDATION = {\n required: {\n value: true,\n message: 'script is required'\n },\n validate: (value) => {\n try {\n JSON.parse(value);\n return null;\n } catch {\n return 'Invalid JSON';\n }\n }\n};\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdate: PropTypes.func.isRequired,\n errors: PropTypes.shape({}).isRequired,\n control: PropTypes.shape({}).isRequired,\n trigger: PropTypes.func.isRequired,\n};\nconst defaultProps = {};\n\nconst renderScriptError = (scriptError) => {\n if (!scriptError) {\n return null;\n }\n return (\n
    \n
    \n        {scriptError.message}\n      
    \n
    \n );\n};\n\nconst ScriptFormField = ({\n pipeConfig, onUpdate, errors, control, trigger\n}) => {\n const pipeConfigs = useSelector((state) => getSelectorBasedStoreValue(state, 'quantConfig.pipeConfigs'));\n const previousPipeConfigs = (() => {\n const index = pipeConfigs.findIndex((config) => config.name === pipeConfig.name);\n return pipeConfigs.slice(0, index === -1 ? pipeConfigs.length : index);\n })();\n const { config: { script, outputJsonSchema } } = pipeConfig;\n const onConfigItemUpdate = useCallback((key, value) => {\n onUpdate(key, value);\n }, [onUpdate]);\n\n const scriptValidation = useMemo(() => ({\n required: {\n value: true,\n message: 'script is required',\n },\n validate: async () => {\n const result = await validateCustomScript(script, previousPipeConfigs);\n const { success, schema, error } = result;\n if (success) {\n onConfigItemUpdate('outputJsonSchema', schema);\n }\n return error && error.join ? error.join('\\n') : error;\n }\n }), [onConfigItemUpdate, previousPipeConfigs, script]);\n\n useEffect(() => {\n const keydownHandler = (e) => {\n if (e.key === 'Enter' && e.ctrlKey) {\n trigger(['script']);\n }\n };\n document.addEventListener('keydown', keydownHandler);\n return () => {\n document.removeEventListener('keydown', keydownHandler);\n };\n }, [trigger]);\n\n return (\n <>\n \n Script\n (\n {\n onConfigItemUpdate('script', event.target.value);\n onChange(event.target.value);\n }}\n value={value}\n ref={ref}\n />\n )}\n name=\"script\"\n defaultValue={script}\n control={control}\n rules={scriptValidation}\n />\n {renderScriptError(_.get(errors, 'script', ''))}\n \n \n \n OutputSchema(Will be autofilled)\n \n (\n {\n onConfigItemUpdate('outputJsonSchema', JSON.parse(event.target.value));\n onChange(event.target.value);\n }}\n value={value}\n ref={ref}\n />\n )}\n name=\"outputJsonSchema\"\n defaultValue={JSON.stringify(outputJsonSchema, null, 2)}\n control={control}\n rules={OUTPUT_SCHEMA_VALIDATION}\n />\n \n \n \n );\n};\n\nScriptFormField.propTypes = propTypes;\nScriptFormField.defaultProps = defaultProps;\n\nexport default ScriptFormField;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport ScriptFormField from '../components/ScriptFormField';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n trigger: PropTypes.func.isRequired,\n};\n\nconst CustomScript = ({\n pipeConfig, onUpdatePipeConfig, control, errors, trigger\n}) => {\n return (\n \n );\n};\n\nCustomScript.propTypes = propTypes;\n\nexport default CustomScript;\n","import _ from 'lodash';\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { PipeDefinitionUtility } from 'v2/common/quantConfig/index';\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport { PipeUtility } from '../utility';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n validator: PropTypes.shape({}).isRequired\n};\n\nconst Snippet = ({\n pipeConfig, onUpdatePipeConfig, control, errors, validator\n}) => {\n const { type: pipeType } = pipeConfig;\n const inputSchema = PipeDefinitionUtility.getPipeInputSchemaByType(pipeType);\n\n const renderSnippetFields = useCallback((parameter, idx) => {\n const {\n type, name, options, label\n } = parameter;\n\n const Component = PipeUtility.getComponentByType(type);\n if (!Component) return null;\n\n const parentClassName = PipeUtility.getParentClassNameByType(type);\n\n return (\n
    \n \n \n
    \n );\n }, [control, errors, onUpdatePipeConfig, pipeConfig, pipeType, validator]);\n\n return _.map(inputSchema, renderSnippetFields);\n};\n\nSnippet.propTypes = propTypes;\n\nexport default Snippet;\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport Legacy from './Legacy/index';\nimport CustomScript from './CustomScript/index';\nimport Snippet from './Snippet/index';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdatePipeConfig: PropTypes.func.isRequired,\n control: PropTypes.shape({}).isRequired,\n errors: PropTypes.shape({}).isRequired,\n trigger: PropTypes.func.isRequired,\n validator: PropTypes.shape({}).isRequired,\n pipeIndex: PropTypes.number,\n setError: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n existingPipeNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nconst defaultProps = {\n pipeIndex: undefined\n};\n\nconst PipeInput = ({\n pipeConfig,\n onUpdatePipeConfig: propsOnUpdatePipeConfig,\n control,\n errors,\n trigger,\n validator,\n pipeIndex,\n setError,\n clearErrors,\n existingPipeNames\n}) => {\n const { category, config, chartConfig } = pipeConfig;\n const inputChartKeys = useMemo(\n () => (_.includes(_.keys(chartConfig), 'volumeInterval') ? ['volumeInterval'] : []),\n [chartConfig]\n );\n const inputConfigKeys = useMemo(() => _.keys(config), [config]);\n const inputKeys = useMemo(() => [\n ...inputChartKeys, ...inputConfigKeys\n ], [inputChartKeys, inputConfigKeys]);\n\n const onUpdatePipeConfig = useCallback((keyOrPartialConfig, value) => {\n const updateConfig = (newConfig) => {\n propsOnUpdatePipeConfig({ config: { ...config, ...newConfig } });\n };\n\n if (_.isObject(keyOrPartialConfig)) {\n updateConfig(keyOrPartialConfig);\n } else if (_.includes(inputChartKeys, keyOrPartialConfig)) {\n propsOnUpdatePipeConfig({ chartConfig: { ...chartConfig, [keyOrPartialConfig]: value } });\n } else {\n updateConfig({ [keyOrPartialConfig]: value });\n }\n }, [propsOnUpdatePipeConfig, config, inputChartKeys, chartConfig]);\n\n switch (category) {\n case 'customScript':\n return (\n \n );\n case 'snippet':\n return (\n \n );\n default:\n return (\n \n );\n }\n};\n\nPipeInput.propTypes = propTypes;\nPipeInput.defaultProps = defaultProps;\n\nexport default PipeInput;\n","import _ from 'lodash';\nimport React, {\n memo,\n useCallback, useEffect, useMemo, useRef, useState\n} from 'react';\nimport { pipeConfigPropTypes } from 'common/propTypes';\nimport { Form } from 'react-bootstrap';\nimport PropTypes from 'prop-types';\nimport ModalComponent from 'v2/common/components/ModalComponent';\nimport { useForm } from 'react-hook-form';\nimport useValidationSchema from 'v2/modules/withRunForm/hooks/useValidationSchema/index';\nimport { intentIdIntializer } from 'v2/modules/withRunForm/sanitizer/onLoad/quantConfig/intentidinitializer';\nimport PipeSelector from './PipeSelector';\nimport PipeName from './PipeName';\nimport PipeChartConfig from './PipeChartConfig';\nimport PipeInput from './PipeInput';\n\nconst propTypes = {\n pipeConfig: pipeConfigPropTypes.isRequired,\n onUpdate: PropTypes.func.isRequired,\n existingPipeNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n isDependent: PropTypes.bool,\n pipeIndex: PropTypes.number,\n getPipeUpdatedNameIfAlreadyPresent: PropTypes.func.isRequired\n};\nconst defaultProps = {\n isDependent: false,\n pipeIndex: undefined\n};\n\nconst PipeConfigForm = ({\n pipeConfig: propsPipeConfig,\n onUpdate, existingPipeNames, isDependent, pipeIndex, getPipeUpdatedNameIfAlreadyPresent\n}) => {\n // must clean up code....\n const [pipeConfig, setPipeConfig] = useState(propsPipeConfig);\n const pipeConfigRef = useRef(propsPipeConfig);\n const { type, name, chartConfig } = pipeConfig;\n const { pipesValidators } = useValidationSchema();\n const pipeValidator = pipesValidators[type?.includes('snippet') ? 'snippet' : type] || {};\n const {\n handleSubmit, trigger, errors, control, clearErrors, setError\n } = useForm();\n\n useEffect(() => {\n setPipeConfig(propsPipeConfig);\n pipeConfigRef.current = propsPipeConfig;\n }, [propsPipeConfig]);\n\n const modalSaveButtonProps = useMemo(() => ({\n 'data-track-category': 'Indicator',\n 'data-track-action': _.get(pipeConfig, 'type', ''),\n 'data-track-label': 'Indicator'\n }), [pipeConfig]);\n\n const onUpdatePipeConfig = useCallback((partialPipeConfig, isSave = false) => {\n const newPipeConfig = { ...pipeConfigRef.current, ...partialPipeConfig };\n setPipeConfig(newPipeConfig);\n pipeConfigRef.current = newPipeConfig;\n if (isSave) {\n intentIdIntializer([], [pipeConfigRef.current]);\n onUpdate(pipeConfigRef.current);\n }\n }, [onUpdate]);\n\n const onSave = async () => {\n setTimeout(() => onUpdatePipeConfig({}, true), 500);\n };\n\n const onClose = useCallback(() => {\n intentIdIntializer([], [propsPipeConfig]);\n onUpdate({});\n }, [onUpdate, propsPipeConfig]);\n\n return (\n \n
    \n {\n const updatedPipeConfig = getPipeUpdatedNameIfAlreadyPresent(newPipeConfig);\n setPipeConfig(updatedPipeConfig);\n pipeConfigRef.current = updatedPipeConfig;\n }}\n validator={_.get(pipeValidator, 'type', {})}\n />\n \n {!_.isEmpty(chartConfig) && (\n \n )}\n \n \n \n );\n};\n\nPipeConfigForm.propTypes = propTypes;\nPipeConfigForm.defaultProps = defaultProps;\n\nexport default memo(PipeConfigForm);\n","import _ from 'lodash';\nimport React, { useCallback, useMemo } from 'react';\nimport usePipeConfigs from 'v2/modules/withRunForm/hooks/usePipeConfigs/index';\nimport HoverMessage from 'common/components/HoverMessage';\nimport PipeConfigForm from './PipeConfigForm/index';\nimport PipeConfigView from './PipeConfigView/index';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst PipeConfigs = () => {\n const {\n pipeConfigs,\n shouldRenderPipeForm,\n currentPipeConfig,\n onUpdatePipeFormConfigs,\n onUpdatePipeConfigsToStore,\n onAddIndicator,\n outputSchema,\n onDeletePipeConfig,\n onEditPipeConfig,\n pipeDependencies,\n existingPipeNames,\n editIndex,\n getPipeUpdatedNameIfAlreadyPresent,\n isHiddenSignal\n } = usePipeConfigs();\n\n const onUpdate = useCallback((newPipeConfig) => {\n if (!_.isEmpty(newPipeConfig)) {\n onUpdatePipeConfigsToStore(newPipeConfig);\n }\n onUpdatePipeFormConfigs({ shouldRenderPipeForm: false, currentPipeConfig: null, editIndex: null });\n }, [onUpdatePipeConfigsToStore, onUpdatePipeFormConfigs]);\n\n const renderPipeView = useCallback((pipeConfig, idx) => {\n return (\n onEditPipeConfig(idx)}\n outputSchema={outputSchema}\n onDeletePipeConfig={() => onDeletePipeConfig(idx)}\n />\n );\n }, [isHiddenSignal, onDeletePipeConfig, onEditPipeConfig, outputSchema, pipeDependencies]);\n\n const renderAddIndicatorButton = useMemo(() => {\n return (\n {\n if (!isHiddenSignal) onAddIndicator();\n }}\n >\n library_add\n Add Indicator\n \n );\n }, [isHiddenSignal, onAddIndicator]);\n\n return (\n
    \n
    \n
    \n Indicators\n
    \n
    \n {_.map(pipeConfigs, renderPipeView)}\n {shouldRenderPipeForm && (\n \n )}\n
    \n {isHiddenSignal ? (\n \n {renderAddIndicatorButton}\n \n ) : (\n renderAddIndicatorButton\n )}\n
    \n
    \n );\n};\n\nPipeConfigs.propTypes = propTypes;\nPipeConfigs.defaultProps = defaultProps;\n\nexport default PipeConfigs;\n","import _ from 'lodash';\nimport React, { useEffect } from 'react';\nimport AdvancedOptions from 'v2/modules/withRunForm/components/AdvancedOptions/index';\nimport Cases from 'v2/modules/withRunForm/components/Cases/index';\nimport ExpiryDetails from 'v2/modules/withRunForm/components/ExpiryDetails/index';\nimport FeatureEnablements from 'v2/modules/withRunForm/components/FeatureEnablements/index';\nimport InstrumentDetails from 'v2/modules/withRunForm/components/InstrumentDetails/index';\nimport OrderExecutionDetails from 'v2/modules/withRunForm/components/OrderExecutionDetails/index';\nimport OverallExitCondition from 'v2/modules/withRunForm/components/OverallExitCondition/index';\nimport PipeConfigs from 'v2/modules/withRunForm/components/PipeConfigs/index';\n\nconst QuantBuilder = () => {\n useEffect(() => {\n function onIntentsScroll() {\n $('.intents-container')\n \n .prop('scrollTop', this.scrollTop)\n \n .prop('scrollLeft', this.scrollLeft);\n }\n const debouncedOnIntentScroll = _.debounce(onIntentsScroll, 100);\n $('.intents-container').on('scroll', debouncedOnIntentScroll);\n return () => {\n $('.intents-container').off('scroll', debouncedOnIntentScroll);\n };\n }, []);\n\n return (\n
    \n \n \n \n \n \n \n \n \n
    \n );\n};\n\nQuantBuilder.propTypes = {};\nQuantBuilder.defaultProps = {};\n\nexport default QuantBuilder;\n","import _ from 'lodash';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport CreditDetails from 'ui/run/RunShow/components/CreditDetails';\n\nconst propTypes = {};\nconst defaultProps = {};\n\nconst RunCreditDetails = () => {\n const runDetails = useSelector((state) => state);\n const {\n runType, startDate, endDate, quantConfig, granularity\n } = runDetails;\n\n return (\n
    \n \n
    \n );\n};\n\nRunCreditDetails.propTypes = propTypes;\nRunCreditDetails.defaultProps = defaultProps;\n\nexport default RunCreditDetails;\n","import SubmitButton from 'v2/modules/withRunForm/components/SubmitButton/index';\nimport RunFormHeader from 'v2/modules/withRunForm/components/RunFormHeader/index';\nimport withRunForm from 'v2/modules/withRunForm/index';\nimport React from 'react';\nimport { useForm, FormProvider } from 'react-hook-form';\nimport QuantBuilder from './QuantBuilder';\nimport RunCreditDetails from './components/RunCreditDetails/index';\n\nconst Main = () => {\n const methods = useForm();\n\n return (\n \n
    \n \n \n \n
    \n
    \n
    \n );\n};\n\nMain.propTypes = {};\n\nexport default withRunForm(Main);\n","import _ from 'lodash';\nimport React, { useMemo } from 'react';\nimport moment from 'moment';\nimport { runPropTypes } from 'common/propTypes';\nimport { RunConfigSanitizer } from 'v2/modules/withRunForm/sanitizer/index';\nimport Main from 'v2/modules/withRunForm/Main';\n\nconst propTypes = runPropTypes.isRequired;\nconst defaultProps = {\n shouldEmitOnSubmit: false\n};\n\nconst RunForm = ({\n endDate: propsEndDate, startDate: propsStartDate, maxEndDate, minStartDate: calendarStartDate,\n runType: propsRunType, folder, orderType: propsOrderType, currentUser,\n granularity: propsGranularity, runName: propsRunName, quantConfig: propsQuantConfig,\n isHistoricRunDisabled: propsIsHistoricRunDisabled,\n isLiveRunDisabled: propsIsLiveRunDisabled,\n engineVersion: propsEngineVersion, strategyId,\n isEditQuant, isHiddenSignal, hiddenByUserId, shouldEmitOnSubmit\n}) => {\n // Manipulating the props to make it compatible with the run form component\n const isUserEnabled = useMemo(() => _.get(currentUser, 'enabled', false), [currentUser]);\n const calendarEndDate = useMemo(() => (\n maxEndDate || moment.utc().subtract(1, 'days').format('YYYY-MM-DD')\n ), [maxEndDate]);\n\n const config = {\n startDate: moment.utc(propsStartDate).format('YYYY-MM-DD'),\n endDate: moment.utc(moment(propsEndDate)\n .isAfter(maxEndDate) ? maxEndDate : propsEndDate).format('YYYY-MM-DD'),\n runType: propsRunType,\n selectedFolder: folder,\n orderType: propsOrderType,\n granularity: propsGranularity,\n runName: propsRunName,\n engineVersion: propsEngineVersion,\n quantConfig: propsQuantConfig,\n calendarEndDate,\n calendarStartDate,\n isUserEnabled,\n isHistoricRunDisabled: propsIsHistoricRunDisabled,\n isLiveRunDisabled: propsIsLiveRunDisabled,\n isEditQuant,\n currentUser,\n strategyId,\n isHiddenSignal,\n hiddenByUserId,\n shouldEmitOnSubmit: shouldEmitOnSubmit || false\n };\n\n const sanitizedRunConfig = RunConfigSanitizer.onLoad(config);\n\n return
    ;\n};\n\nRunForm.propTypes = propTypes;\nRunForm.defaultProps = defaultProps;\n\nexport default RunForm;\n","import _ from 'lodash';\nimport { sendMessageToParent, types } from 'common/utils/iframe';\nimport React, {\n useEffect, useState, useCallback, useMemo\n} from 'react';\nimport RunForm from 'v2/ui/run/RunForm/index';\nimport { runPropTypes } from 'common/propTypes';\nimport { emptyQuantConfig } from 'v2/modules/withRunForm/configs/index';\n\nconst propTypes = { run: runPropTypes };\nconst defaultProps = { run: {} };\n\nconst RunWidget = ({ run }) => {\n const [widgetConfig, setWidgetConfig] = useState({\n isLoading: true,\n quantConfig: {}\n });\n\n const handleMessage = useCallback((event) => {\n const { type, value } = event?.data ?? {};\n\n if (type === types.QUANT_CONFIG) {\n setWidgetConfig(() => ({\n isLoading: false,\n quantConfig: value ?? {}\n }));\n }\n }, []);\n\n useEffect(() => {\n sendMessageToParent({ type: types.RUN_WIDGET_LOADED });\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [handleMessage]);\n\n const quantConfig = useMemo(() => {\n return _.isEmpty(widgetConfig.quantConfig) ? emptyQuantConfig() : widgetConfig.quantConfig;\n }, [widgetConfig]);\n\n if (widgetConfig.isLoading) {\n return null;\n }\n\n return ;\n};\n\nRunWidget.propTypes = propTypes;\nRunWidget.defaultProps = defaultProps;\n\nexport default RunWidget;\n"],"names":["DEBUG_BUILD","GLOBAL_OBJ","SDK_VERSION","getMainCarrier","getSentryCarrier","carrier","__SENTRY__","getGlobalSingleton","name","creator","obj","PREFIX","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","callback","console","wrappedFuncs","wrappedLevels","level","originalConsoleMethod","makeLogger","enabled","logger","args","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","a","b","p","stack","skipFirstLines","framesToPop","frames","lines","i","line","cleanedLine","parser","frame","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","localStack","getLastStackFrame","arr","defaultFunctionName","getFunctionName","fn","getFramesFromEvent","event","exception","value","objectToString","isError","wat","isInstanceOf","isBuiltin","className","isErrorEvent","isDOMError","isDOMException","isString","isParameterizedString","isPrimitive","isPlainObject","isEvent","isElement","isRegExp","isThenable","isSyntheticEvent","base","isVueViewModel","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","options","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","el","keyAttrPairs","keyAttr","keyAttrPair","classes","c","allowedAttrs","k","attr","getLocationHref","getComponentName","truncate","str","max","safeJoin","input","delimiter","output","isMatchingPattern","pattern","requireExactStringMatch","stringMatchesSomePattern","testString","patterns","fill","source","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","proto","getOriginalFunction","func","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","target","extractedProps","property","extractExceptionKeysForMessage","maxLength","keys","firstKey","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","isPojo","memoVal","returnValue","key","item","ONE_SECOND_IN_MS","dateTimestampInSeconds","createUnixTimestampInSecondsFunc","performance","approxStartingTimeOrigin","timeOrigin","timestampInSeconds","cachedTimeOrigin","getBrowserTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","_a","navigationStartDelta","navigationStartIsReliable","browserPerformanceTimeOrigin","getCrypto","gbl","uuid4","crypto","getRandomByte","typedArray","getFirstException","_b","getEventDescription","message","eventId","firstException","addExceptionTypeValue","type","values","addExceptionMechanism","newMechanism","defaultMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","isAlreadyCaptured","States","RESOLVED","REJECTED","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","reason","_","reject","executor","onfulfilled","onrejected","result","e","val","onfinally","isRejected","cachedHandlers","handler","setResult","state","makeSession","context","startingTime","session","sessionToJSON","updateSession","duration","closeSession","status","generateTraceId","generateSpanId","merge","initialObj","mergeObj","levels","SCOPE_SPAN_FIELD","_setSpanForScope","scope","span","_getSpanForScope","DEFAULT_MAX_BREADCRUMBS","Scope","newScope","client","lastEventId","user","tags","extras","extra","fingerprint","captureContext","scopeToMerge","scopeInstance","contexts","propagationContext","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","attachment","newData","hint","syntheticException","getDefaultCurrentScope","getDefaultIsolationScope","AsyncContextStack","isolationScope","assignedScope","assignedIsolationScope","maybePromiseResult","res","getAsyncContextStack","registry","sentry","withScope","withSetScope","withIsolationScope","getStackAsyncContextStrategy","_isolationScope","getAsyncContextStrategy","getCurrentScope","getIsolationScope","getGlobalScope","rest","acs","getClient","getTraceContextFromScope","traceId","parentSpanId","propagationSpanId","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","SPAN_STATUS_UNSET","SPAN_STATUS_OK","SPAN_STATUS_ERROR","getSpanStatusFromHttpCode","httpStatus","setHttpStatus","spanStatus","SCOPE_ON_START_SPAN_FIELD","ISOLATION_SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","parseSampleRate","sampleRate","rate","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","parseBaggageHeader","dynamicSamplingContext","acc","nonPrefixedKey","dynamicSamplingContextToSentryBaggageHeader","sentryPrefixedDSC","dscKey","dscValue","objectToBaggageHeader","curr","currBaggageObject","baggageHeaderToObject","baggageEntry","keyOrValue","object","objectKey","objectValue","currentIndex","newBaggageHeader","TRACEPARENT_REGEXP","extractTraceparentData","traceparent","matches","parentSampled","propagationContextFromHeaders","sentryTrace","baggage","traceparentData","sampleRand","getSampleRandFromTraceparentAndDsc","generateSentryTraceHeader","spanId","sampled","sampledString","dsc","parsedSampleRand","parsedSampleRate","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","hasShownSpanDropWarning","spanToTransactionTraceContext","span_id","trace_id","data","op","parent_span_id","origin","links","spanToJSON","spanToTraceContext","isRemote","spanToTraceHeader","spanIsSampled","convertSpanLinksForEnvelope","traceFlags","restContext","attributes","spanTimeInputToSeconds","ensureTimestampInSeconds","timestamp","spanIsSentrySpan","spanIsOpenTelemetrySdkTraceBaseSpan","startTime","endTime","getStatusMessage","castSpan","CHILD_SPANS_FIELD","ROOT_SPAN_FIELD","addChildSpanToSpan","childSpan","rootSpan","removeChildSpanFromSpan","getSpanDescendants","resultSet","addSpanChildren","childSpans","getRootSpan","getActiveSpan","showSpanDropWarning","hasSpansEnabled","maybeOptions","DEFAULT_ENVIRONMENT","FROZEN_DSC_FIELD","freezeDscOnSpan","getDynamicSamplingContextFromClient","public_key","getDynamicSamplingContextFromScope","getDynamicSamplingContextFromSpan","rootSpanJson","rootSpanAttributes","traceState","rootSpanSampleRate","applyLocalSampleRateToDsc","frozenDsc","traceStateDsc","dscOnTraceState","normalize","depth","maxProperties","visit","err","normalizeToSize","maxSize","normalized","jsonSize","memo","memoBuilder","memoize","unmemoize","stringified","stringifyValue","remainingDepth","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","objName","getConstructorName","prototype","utf8Length","inner","notifyEventProcessors","processors","index","processor","final","parsedStackResults","lastKeysCount","cachedFilenameDebugIds","getFilenameToDebugIdMap","debugIdMap","debugIdKeys","stackKey","parsedStack","stackFrame","filename","debugId","applyScopeDataToEvent","breadcrumbs","sdkProcessingMetadata","applyDataToEvent","applySpanToEvent","applyFingerprintToEvent","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","eventProcessors","attachments","transactionName","mergeAndOverwriteScopeData","prop","mergeVal","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","mergedBreadcrumbs","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","integrations","applyClientOptions","applyIntegrationsMetadata","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","isolationData","finalScopeData","evt","applyDebugMeta","normalizeEvent","environment","release","dist","maxValueLength","request","filenameDebugIdMap","images","debug_id","integrationNames","maxBreadth","captureException","captureEvent","setContext","setTags","setUser","isEnabled","addEventProcessor","startSession","currentScope","userAgent","currentSession","endSession","_sendSessionUpdate","captureSession","end","propTypes","PropTypes","defaultProps","PAGE_RANGE","MARGIN_PAGES","Pagination","props","totalPages","onPageChange","currentPageIndex","jsx","Paginate","LoadingSpinner","children","isLoading","spinnerContainerClassNames","classNames","jsxs","Spinner","Component","error","errorInfo","errorMessage","isShowHeader","Sentry.captureException","ErrorHandler","withErrorBoundary","WrappedComponent","PostCard","post","ReactHtmlParser","moment","PageNotFound","ghostsApi","GhostContentAPI","INITIAL_PAGE_NO","PER_PAGE_LIMIT","Blogs","blogState","setBlogState","useState","posts","tagName","setTagName","pagination","setPagination","setIsLoading","setCurrentPageIndex","useEffect","results","tagsList","renderPostCard","renderTagsList","tag","Fragment","selectedPage","IndividualBlog","propsSlugName","slugName","useMemo","blog","setBlog","relatedPosts","setRelatedPosts","relatedBlogs","bind","thisArg","isBuffer","require$$0","require$$1","toString","isArray","isArrayBuffer","isFormData","isArrayBufferView","isNumber","isUndefined","isObject","isDate","isFile","isBlob","isFunction","isStream","isURLSearchParams","trim","isStandardBrowserEnv","forEach","l","assignValue","extend","utils","normalizeHeaderName","headers","normalizedName","enhanceError","config","code","response","createError","settle","validateStatus","encode","buildURL","url","params","paramsSerializer","serializedParams","parts","v","ignoreDuplicateOf","parseHeaders","parsed","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","href","requestURL","cookies","expires","path","domain","secure","cookie","match","require$$2","require$$3","require$$4","require$$5","xhr","requestData","requestHeaders","username","password","responseHeaders","responseData","require$$6","xsrfValue","cancel","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","adapter","defaults","method","defaults_1","InterceptorManager","fulfilled","rejected","id","h","InterceptorManager_1","transformData","fns","isCancel","isAbsoluteURL","combineURLs","baseURL","relativeURL","throwIfCancellationRequested","dispatchRequest","Axios","instanceConfig","chain","promise","interceptor","Axios_1","Cancel","Cancel_1","CancelToken","resolvePromise","token","CancelToken_1","spread","createInstance","defaultConfig","instance","axios","promises","require$$7","axiosModule","global","factory","exports","this","adapters","_adapters$logger","_len","messages","_key","_typeof","classCallCheck","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","now","secondsSince","time","clamp","number","min","ConnectionMonitor","connection","_this","_constructor$pollInte","multiplier","interval","_this2","INTERNAL","message_types","protocols","supportedProtocols","indexOf","Connection","consumer","_ref","allowReconnect","states","eventName","_JSON$parse","identifier","reconnect","properties","Subscription","mixin","action","SubscriptionGuarantor","subscriptions","subscription","s","Subscriptions","channelName","channel","callbackName","_this3","_len2","_key2","_this4","command","Consumer","createWebSocketURL","createConsumer","getConfig","element","TOASTIFY_TYPES","reactToastify","toast","notificationPropType","BROKERS","XTS_API_VENDOR","QUOTA_FOR_SECOND_WISE_BACKTEST","BFO_INSTRUMENTS","ORDER_TYPES","RUN_TYPES","RUN_GRANULARITY","MAX_HISTORIC_COMBINED_RESULTS","NOTIFICATION_EVENTS","DOMAINS","REMOVE_BACKTEST_CONTENT_ON_BROKER_DOMAINS","CALLBACK_SUPPORTED_ON_BROKER_DOMAINS","QUANT_SCHEMA_CATEGORIES","SEGMENT_CONFIG","STOPS_VALUE_TYPES","SEGMENT_NAMES","SEGMENT_CATEGORY_IN_QUANT","FIXED_AMOUNT","FREE","REQUEST_TYPE","highRiskHighReward","RISK_CATRGORIES","STRATEGY_ACCESS_STATUS","SEGMENT_SUPPORT_CONFIGS","segments","LIVE_ICON","BACK_TEST_ICON","MARKET_PLACE_ICON","MARKET_END_TIME","slippageTypes","TRADINGSYMBOL_REGEX","RunDetailNotificationMessage","notification","details","oneIndentation","statusEvent","runType","fileName","folderName","testType","runFileName","runFolderName","ORDER","EVENTS","ENTRY_ORDERS_FAILED","ENTRY_ORDERS_CANCEL_FAILED","ENTRY_ORDERS_MODIFY_FAILED","EXIT_ORDERS_FAILED","EXIT_ORDERS_MODIFY_FAILED","STOPLOSS_ORDERS_FAILED","STOPLOSS_ORDERS_CANCEL_FAILED","OrderDetailedMessage","signalType","NotificationMessage","notifiables","notifiableType","renderMessage","wrappedFetch","errors","handleApiError","errorResponse","errorContent","runId","jobId","orderConfirmationId","fetchOrdersByOrderId","orderIds","encodedOrderIds","ModalComponent$1","React","__publicField","onClose","shouldConfirmClose","title","onSave","size","customWidth","okBtnTitle","btnClassName","onCancel","cancelBtnTitle","backdrop","onSaveid","modalSaveButtonProps","isOkBtnDisabled","shouldShow","isClosing","modalProps","renderModalFooter","Modal","Button","ModalComponent","oneOfTypes","addonPropTypes","strategyAccessPropTypes","runPropTypes","folderPropTypes","userPropTypes","outputSchemaPropTypes","instrumentGroupsPropTypes","timeBasedSignalPropTypes","expiryHandlingPropsTypes","transactionModePropTypes","optionConfigPropTypes","futureConfigPropTypes","transactionConfigPropTypes","transactionBuilderConfigPropTypes","rightOperandPropTypes","signalConfigPropTypes","orderConfigsPropTypes","chartConfigPropTypes","pipeConfigPropTypes","signalPropTypes","signalsPropTypes","intentPropTypes","intentsPropTypes","quickAdjustmentPropTypes","casePropTypes","pipeConfigsPropTypes","quantConfigPropTypes","ordersPropTypes","validatorProptypes","tagPropTypes","planPropTypes","purchaseItem","purchasePropTypes","jobSummaryPropTypes","runJobPropTypes","runjobsProps","transactionPropTypes","orderTransactionPropTypes","orderModificationPropTypes","strategyPropTypes","pairedOrdersPropTypes","TransactionType","transactionTypeClassName","STATUS_STYLE_CONFIG","BUY","DATE_TIME_FORMAT","IST_TIME_ZONE","getConvertedTime","getformattedTime","getGroupedOrderProfit","entryType","entryPrice","exitPrice","quantity","parsedQuantity","parsedEntryPrice","parsedExitPrice","getCompletedOrders","orders","orderType","automatic","oneclick","paper","isBacktest","isActualLive","entryOrders","order","exitOrders","COMPLETED_STATUSES","shouldExitOrderCompletedBasedOnStatus","exitCompleteOrders","isExitCompletedForActual","isCompleted","shouldCalculateUnrealizedProfit","renderOrderStatus","isEntry","isStopLoss","formattedDateAndTime","statusTextUpdate","statusText","failureMessage","renderPriceAndTime","price","renderOrderRow","isPaperTrade","signalTime","signalPrice","tradedTime","tradedPrice","isWaiting","modifiedOrderType","placedTime","statusConfig","statusTextClassName","alteredStatusText","OrderDetails","OrderDetailsInModal","ViewOrdersPanel","isModal","hasShowModal","setOrders","notifiableIds","notifiableId","runName","fetchOrdersDetails","Notification","onMarkAsOld","onDelete","createdAt","timeFormatShow","monthFormatShow","linkAttrs","run","historic","live","notificationClassNames","NotificationPanel","isOpened","isClickedInsideNotificationPanel","isOrderDetailsModalOpen","newNotification","totalCount","newCount","notifications","eventType","notificationToDelete","newNotifications","n","firstNofitication","offsetNotificationId","olderNotifications","signalConfirmation","isNew","userRoomId","subscriptionParams","callbacks","orderConfirmation","isLoadingMore","markAllAsOldBtnContent","deleteAllBtnContent","DATE_FORMAT","getFormattedDate","date","preloadFiles","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","preloadFiles_1","format","isSaturday","isSunday","subDays","parse","isValid","marketUtility","market","findMarketConfig","symbol","getExpiryDates","expiryType","filterFn","uniqueValue","getSymbolConfig","expiryTypes","attributeFilterFn","d","dateBasedAttributes","selectedDate","actualDate","validDate","formattedDate","marketType","isIndex","nseSymbolConfigs","bseSymbolConfigs","nyseSymbolConfigs","IN","US","markets","zeequantConstants","LocaleUtils","SA_LOCALE","localeConfig","lotSize","expiryDate","formattedExpiryDate","getAllSymbols","getHolidayDates","getWeekendWorkingDates","resolveTimezone","timezone","getTimezone","formatOrdersBasedOnJobs","ordersList","previousListTransactionIds","orderTime","groupOrdersList","groupOrders","groupKey","getAllOrders","jobIds","ordersAccessTokens","queryString","__CJS__import__0__","profitMapBy","getProfit","groupedOrders","mapBy","totalProfit","profit","sum","getProfitSplitups","profitSplitups","group","ordersByInstrument","instrument","getDisplayTransactions","transactions","transactionsPerPage","sortedTransactions","totalTransactions","startOfRange","endOfRange","transactionRange","idx","getOrderProfit","getOrderProfitMax","entryOrder","exitOrder","minPrice","maxPrice","getOrderProfitMin","getOrderData","ignoreInCompleteTransactionUntil","isMarketplaceAuthorRun","stopLossOrder","filteredOrdersBasedOnStopLoss","tradingSymbol","exitType","entryOrderStatus","exitOrderStatus","isManualExitShow","completedOrders","entryTime","exitTime","isPrevOrdersIgnored","profitCalcualtionOrders","individualOrderId","orderProfit","validCaseForCompletedLeg","validateCompletedLeg","checkOrderHasIlliquid","getPlChartTimeStamp","timeStamp","groupByTransactionFormat","orderItem","configuredByGroupedOrders","groupedByTradingSymbol","pairedOrders","groupedBy","filteredValidOrders","instrumentGroupIndex","transactionNumber","instruments","sortedValidOrders","isShowSquareOff","isComplete","groupedOrderSorted","transactionAndRunId","transactionOpenTime","overallMaxProfit","orderProfitMax","overallMinProfit","orderProfitMin","overallProfit","getFormattedTransactions","previousCumulativeProfit","orderTimeMoment","modifiedOrder","modifiedSignalTime","groupedOrder","sortId","transactionCloseTime","cumulativeProfit","calculateWinLossRatioForAmount","avgProfit","avgLoss","calculateCumulativeProfits","cumulativeSum","calculateWinTransactionsCount","calculateLossTransactionsCount","calculateTotalProfits","calculateTotalLoss","calculateWinningProbability","winTransactionsCount","totalTransactionsCount","calculateAverageProfit","totalProfits","calculateAverageLoss","totalLoss","lossTransactionsCount","calculateWinLossRatio","calculateRAC","winningProbability","winProbability","winLossRatio","rac","calculateWinningStreak","transaction","calculateLosingStreak","calculateMaximumProfit","calculateMaximumLoss","calculateDrawdownMetrics","transactionsObject","maxDrawDown","peak","peakIndex","troughIndex","tempPeakIndex","drawDown","maxDrawDownDays","tx","calculateMaxDrawDown","calculateMaxDrawDownDays","optimizeFields","optimizeJobs","field","runs","fieldF","infinity","runIds","optimal","doOptimize","currentIdx","filtered","minimum","currentRunId","without","including","formula","calculateMetrics","prepareMetrics","getIncompleteTransactions","isLiquid","getIlliquidTransactions","overallShowProfit","overallRunProfit","isMatchedIgx","igx","showBy","getContextConfig","rawOrders","completedTransactions","igI","isMarketPlaceAuthorRun","slippage","slippageType","filterConfigs","getTransactionPrice","transactionType","additionalPrice","getProcessedSlippageOrderBasedOnPrice","getProcessedSlippageOrderBasedOnPercentage","getSlippageBasedOrders","slipPageType","BUILDER_QUANT_CONFIG_VERSION","SPECIAL_CHARACTER_REGEX","OPTION_TYPES","TRANSACTION_TYPES","SL_TRAIL_TYPES","PRODUCT_TYPES","POSITION_VALUE_TYPES","INTENT_TYPES","INTENT_CATEGORIES","getIntentCategory","intentType","QUICK_ADJUSTMENT_TRIGGERS","QUICK_ADJUSTMENT_ACTIONS","WAIT_AND_TRADE_TYPES","STRIKE_SELECTION_TYPES","EXPIRY_MONTHLY_DETAILS","EXPIRY_WEEKLY_DETAILS","CHART_PATTERNS","QUANT_CONFIG_ORDER_TYPES","EXTERNAL_SIGNALS_VENDOR_TYPES","INDEX_INSTRUMENTS_ONLY_WEEKLY_EXPIRY","MONTHLY_ONLY_INDEX","ILL_IQUID_INDEX","MAX_CASES_IN_QUANT","INSTAOPTIONS_MODE","INFO_MESSAGE_TYPE","TEMP_MAIL_LIST","Holidays","WeekendWorkingDays","weekdayFormatter","getWeekdayAbbreviation","calculateWeekends","startDay","totalDays","modDays","createAVLTree","dates","tree","AVLTree","holidaysTree","weekendWorkingDaysTree","getNoOfBusinessDays","startDateMoment","endDateMoment","weekends","holidaysInRange","weekendWorkingDaysInRange","getDaysToExpiry","parseSymbolData","orderTimestamp","expiryMoment","getInstrumentType","optionIndex","getParseTradingSymbol","month","year","fullYear","expiryDay","getBackTestFilteredStrategies","weekDays","daysToExpiry","legs","slippageConfig","day","DaysToExpiry","leg","filteredOrders","transformCaseIntentsStructures","cases","intentMapObject","intentArray","caseConfig","caseIndex","entryIntents","adjustmentIntents","entryMap","entryIntentArray","intent","entryIndex","label","caseIdx","adjustmentConfigIndex","optionConfigIndex","adjustmentMap","adjustmentIntentArray","adjustment","adjustmentIndex","intentLabels","getLegLable","instrumentType","caseData","matchCriteria","adjustmentLeg","entryLeg","buildFilterConfig","rangeStart","rangeEnd","marginFilterConfig","purchaseFilterConfig","defaultFilterConfig","defaultBackTestFilterConfig","tagsconfig","OrderContext","createContext","OrderStore","optimizeBy","setCheckedRunIds","setState","quantConfig","intentConfig","onHandleSlippage","newSlippage","newSlippageType","prevState","processOrders","useCallback","transactionsorders","flattenedOrders","hasFilterConfigs","originalContextConfig","optimized","newConfigs","indicatorsTypes","DOUBLE_COL_SPAN","NO_COL_SPAN","SUB_TITLE","INDICATORS_LENGTH","getTradeTypes","months","CENT","roundOff","getOrdersProfits","symbolOrders","computePLAndHM","ordersProfits","totalProfitsCount","profits","losses","hitPercent","totalLosses","profitPercent","getAnalyticsData","analyticsGroupBy","hsh","symbolOrdersList","analyticsKey","getDayOfWeekData","isEntryFlag","getYearWiseData","getInstrumentData","getRunProfits","runProfits","getFormattedMoney","money","shouldAvoidDecimals","Money","shouldColor","color","isAttachCurrency","isAddPercentage","intlFormatter","moneyStyle","MoneyDisplay","SmallInfoCard","leftHeader","leftValue","rightHeader","rightValue","infoAvatar","renderMetrics","metric","recommendedAllocatedCapital","drawdown","winStreak","lossStreak","maxProfit","maxLoss","drawdowndays","winningProbabilityStyle","roundedWinningProbability","racStyle","racElement","runSummayInfoCards","cardProps","MetricsPanel","metrics","getValue","valuePath","getDate","getTipsyHandler","elements","argXScale","yScale","sources","margin","tooltip","xScale","offset","hideTooltip","newXScale","nearestXIndex","nearestSeriesItem","tooltipElem","tooltipAnchor","htmlContent","millisecondsInDay","constructFromSymbol","constructFrom","toDate","argument","getTimezoneOffsetInMilliseconds","_date","utcDate","normalizeDates","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","isSameMonth","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","diff","isSameWeek","isSameDay","dateLeft_","dateRight_","startOfHour","isSameHour","dateLeft","dateRight","getMonth","minNumberOfTicks","tickConfigs","prevDate","currentDate","dateFnsGetMonth","dateFnsGetDate","getTickConfig","minDate","maxDate","tickConfig","getTicksGenerator","dataIndex","previousSeriesItem","seriesItem","createGradient","svgDef","opacity","gradient","initTemplate","chartContainer","svg","chartArea","clipPath","xAxis","yAxis","viewPort","fillGradient","strokeGradient","zoomer","getTemplate","getAreaRenderer","fromZero","repositionElements","dimension","zeroValueYRangePercentage","renderAxis","ticksGenerator","xAxisGenerator","newDomainLine","updateData","area","transition","renderData","filledLines","setupZoom","tipsyHandler","zoom","newArea","renderChart","chartContainerBoundingRect","MARGIN","PLChart","chartData","RunSummaryChart","RunShowSummary","useContext","isEmptyRunProfits","runSummaryClassName","RunSummary","startDate","endDate","description","renderShowCase","renderRunShow","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","booleanValueOf","functionToString","$match","$slice","$replace","$toUpperCase","$toLowerCase","$test","$concat","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","O","addNumericSeparator","num","sepRegex","int","intStr","dec","utilInspect","inspectCustom","inspectSymbol","isSymbol","quotes","quoteREs","objectInspect","inspect_","seen","opts","has","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","indent","getIndent","inspect","from","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","attrs","wrapQuotes","quote","xs","singleLineValues","indentedJoin","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","isBoolean","ys","protoTag","stringTag","toStr","constructorTag","defaultStyle","style","quoteChar","canTrustToString","hasOwn","f","m","x","remaining","trailer","quoteRE","lowbyte","entries","joinedEntries","baseIndent","lineJoiner","isArr","syms","symMap","j","$TypeError","listGetNode","list","isDelete","prev","listGet","objects","node","listSet","listHas","listDelete","sideChannelList","$o","root","deletedNode","GetIntrinsic","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","sideChannelMap","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","sideChannelWeakmap","$wm","getSideChannelList","getSideChannelWeakMap","makeChannel","sideChannel","$channelData","replace","percentTwenties","Format","formats","hexTable","array","compactQueue","queue","compacted","arrayToObject","mergeTarget","targetItem","assign","decode","defaultDecoder","charset","strWithoutPlus","limit","defaultEncoder","kind","string","$0","segment","compact","refs","combine","maybeMap","mapped","getSideChannel","arrayPrefixGenerators","prefix","push","pushToArray","valueOrArray","toISO","defaultFormat","isNonNullishPrimitive","sentinel","stringify","generateArrayPrefix","commaRoundTrip","allowEmptyArrays","strictNullHandling","skipNulls","encodeDotInKeys","encoder","filter","sort","allowDots","serializeDate","formatter","encodeValuesOnly","tmpSc","step","findFlag","pos","keyValue","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","stringify_1","joined","interpretNumericEntities","numberStr","parseArrayValue","currentArrayLength","isoSentinel","charsetSentinel","parseValues","cleanStr","skipIndex","part","bracketEqualsPos","encodedVal","existing","parseObject","valuesParsed","parentKey","leaf","cleanRoot","decodedRoot","parseKeys","givenKey","brackets","child","parent","normalizeParseOptions","duplicates","tempObj","lib","updateUrlQueryParams","isReplaceState","queryParams","getUrlParams","parsedQueryString","qs","toQueryString","getFolders","createFolder","updateFolder","folderId","folder","deleteFolder","ArrowAccordion","onToggle","isOpen","headerRightSectionContent","isInvalid","headerRightIconSection","isDisabledOnClick","headerClassNames","accordionClass","Card","Accordion","TruncateText","text","textRef","useRef","tooltipProps","setTooltipProps","offsetWidth","parentWidth","InlineEdit","currentText","onUpdate","ref","isUpdating","isShowEditIcon","isEditing","SORT_BY","TABLE_HEADER","VIEW_TYPE","DESKTOP_WIDTH","showByOption","RUN_STATUS_CODES","RUN_FINISHED_STATUSES","RUN_IN_PROGRESS_STATUS","RUN_UNFINISHED_STATUSES","runStatusColorCode","getPopover","popClassName","Popover","HoverMessage","getIsShow","OverlayTrigger","DeleteRunBtn","isRunBelongsToUser","onDeleteRun","isShowModal","setIsShowModal","content","isDisabled","renderModal","renderButton","ErrorMesssage","FolderSelector","isUserLoggedIn","selectedFolder","onSelect","selectorId","folders","setFolders","control","useFormContext","selectedOptions","loadingClassNames","fetchedFolders","onSelectFolder","selectedFolderArray","onChange","selectedArrayInitialObj","selectedFolderName","newlyFetchedFolders","selectedNewlyCreatedFolder","Controller","Typeahead","newFolderName","getRuns","createRun","runParams","urlParams","deleteRun","successCallBack","isMinifiedPage","errorMessages","deleteMultipleRuns","deletedRunIds","messageType","updateTradeSkipDates","updateRun","moveRunToAnotherFolder","uri","onReStartRun","getLastTransactionForMultipleRuns","getRunningLiveRuns","getNumerousRuns","onRunForceExit","onLegForceExit","orderId","onStopQuant","callBack","MoveFolderModal","displayName","methods","useForm","setSelectedFolder","setIsValid","FormProvider","newFolder","ActionBtns","onUpdateRun","isStarred","isMarketPlaceSubscribedRun","favoriteIconClassNames","isMoveFolder","setIsMoveFolder","isIndexInstrumentPresentInQuantInstrumentGroups","quantInstrumentGroups","indexInstruments","difference","equityNotPossibleInstruments","checkInstrumentPossibleForEquity","removeExchangeFromInstrument","getQuotaConsumption","granularity","instrumentGroups","numberOfInstruments","numberOfCases","numberOfCreditsForGranularitySecond","years","InstrumentGroupsSentence","instrumentGroup","sanitizeInstrumentGroup","InstrumentGroupsSentence$3","RenderOrderTypeBadge","badgeClass","RunListOrderType","summary","RunListOrderType$1","renderDates","RunListViewBody","onSelectRuns","isFilteredRuns","strategyId","isIndividualDeployedRun","statusClassName","checked","setChecked","getIcon","listClassName","handleRunSelect","newName","RunListView","sortBy","setSortBy","sortOrder","setSortOrder","sortedRun","onSortOptionChange","newSortBy","renderTableHeader","alteredHeaders","header","DeleteMultipleRunsModal","deleteableRuns","setDeletableRuns","onRemoveRun","ignoreRun","alteredRuns","renderRun","iconClassName","renderDeletableRuns","MultipleSelectionActionBtns","isDeleteRuns","setIsDeleteRuns","renderMoveFolderModal","renderDeleteModal","onCombinedResults","historicRunIds","runIdsCount","reDirectUrl","RunGridViewBody","gridClassName","RunGridView","RunList","selectedRunId","isSelected","selectedRunIds","updatedRunIds","ToggleButtonGroup","viewType","ToggleButton","selectedRuns","view","runListClassName","ListComponent","FolderDeleteConfirmation","onDeleteFolder","HEADER_OFFSET","SCROLLING_TIME","Folder$1","toDeleteRun","liveRunsCount","historicRunsCount","toDeleteRunId","newRunCount","toUpdateRun","newRuns","updatedName","onEditFolderName","udpatedFolder","offsetRunId","olderRuns","onChangeCurrentlyOpenFolderId","scrollToSelector","container","scrollTo","defaultOpen","scrollToSearch","isUpdatingFolderName","iconClassNames","isFetchingRuns","Folder","Filter","selectedFilter","onSelectFilter","renderFilterOptions","RUNS_COUNT_FOR_LOADMORE","FilteredRuns","filterSearch","setRuns","setIsLoadingMore","isShowLoadMore","setIsShowLoadMore","getParams","getFilterRuns","resultRuns","loadMore","renderLoadMore","deepLinkFilter","queryStringParams","SearchFilter","onSearchRun","isScrollToSearch","searchValue","setSearchValue","inputRef","handelClearFilter","handelKeyDown","currentValue","SearchFilter$1","propsTypes","FolderList","updatedFolders","newFolderId","currentlyUpdatingNameForFolderId","currentlyOpenedFolderId","userHistoricRunsCount","userLiveRunsCount","subscribeChannel","roomId","onDataReceive","RUN_STARTUP_TIME","INTERVAL","RELOADSECONDS","getETA","start","EstimatedTimeCountDown","reloadUrl","onEtaCompletion","estimatedTime","completionTime","getRemainingSeconds","currentTime","reloadTime","reloadRemainingSeconds","seconds","setSeconds","reloadSeconds","setReloadSeconds","timer","reloadTimer","schemaShouldShowConfigTypes","schemaTypes","pipeInputSchemaTypes","configuration","pipeConfig","resultKeys","resultKey","pipe","numericProperties","booleanProperties","schema","valuePaths","isVolume","buildOutputSchemaFromJsonSchema","jsonSchema","parentPath","itemConfig","outputJsonSchema","isBasketEnabled","schemaType","propertyType","indicatorCodeSnippets","snippets","addPrefixToLabel","buildDefaultConfig","snippet","configs","defaultValue","getChartConfig","parameters","chartConfig","modifiedParameters","parameter","PIPE_CATEGORIES","CANDLE_INTERVALS","DISABLED_INDICATORS","isAdmin","SA_FEATURE_FLAGS","getSanitizedPipeDefinitions","pipeDefinitions","clonedDefinitions","PipeDefinitionUtility","definitions","pipeDefinition","searchTerm","pipeType","configDisplayNames","TRADE_TYPES","QUANT_CONFIG_FIELDS","EXPIRY_TYPES","OPTIONS_EXPIRY","DAYS","getEmptyTimeBasedSignal","getDefaultExpiryHandling","getEmptyExpiryHandling","getDefaultTimeBasedSignalForIntraday","QUANT_CONFIG_ORDER_TYPE","PRODUCT_TYPE","STRIKE_INDEX","getOrderModificationEmptyConfig","defaultMaxInstrumentsInGroup","emptyQuantConfig","getEmptyOrderConfig","groupingOptions","getEmptyOverAllStopGainConfig","getEmptyOverAllTrailingStopLossConfig","getOverAllStopLossConfig","overAllStopsConfig","getAlteredEmptyQuantConfig","currentoneMinuteCandleFuturePrice","STRIKE_KEYS","getQuantityObject","onValidateStrikeBasedOn","strikeBasedOn","waitAndTradeTypesAndNode","getEmptyOptionConfigs","getStrikeValue","strikeKey","getoptionStrategies","basedOn","basedOnValue","emptyOptionConfigs","getOptionConfigStrategies","getEmptyEquityConfig","getEmptyFutureConfig","TRAILING_PERCENTAGE","ADJUST_PERCENTAGE","getEmptyTransactionConfig","getDefaultExistingLegConfig","getEmptyAdjustmentActionConfig","existingLegTypes","existingLegActionTypes","TRANSACTION_TYPE_OPTIONS","getStrikeIndexDisplayName","optionType","getEligibleIndicatorForStrike","outputSchemas","getValuePathOptions","eligibleStrikeIndicators","hasIndexInstruments","transactionIndex","getStrikeRange","getStandardDeviationName","getMaximumOpenInterest","getOptionConfigSettings","transactionConfigIdx","getEmptyTransactionBuilderConfig","TRANSACTION_MODES","applicationDomain","isStrategyCreator","isAllowManualSignals","getStrikeBasedOn","getEmptyStopGainConfig","getEmptyStopLossConfig","stopsConfig","getSegmentStrikeBasedOn","filteredBasedOn","WEEKLY_OPTION_AVAILABLE_FROM","additionalLeftOperandsConfig","adminOnlyLeftOperandsConfig","signalConditionOptions","minute","CONDITION_OPERATORS","getEmptySignalConfig","COMPARISION_TYPE_OPERATORS","SIGNAL_CONFIG","advancedFeatureConfigs","maxInstrumentsInGroup","getLabel","category","INDICATOR","INDIVIDUALSTOP","STRATEGY_STOP","getLabeledHashFromArray","arrayOfObjects","isEnumPresent","removeTagsFromString","operands","operand","getValuePathOptionsForIndicator","outputSchema","isInclude","instrumentOutputSchema","isValueMatchingWithSchema","getSelectedLabelForIndicator","filterLabel","getSelectedOperandLabelForSignal","leftOperand","rightOperand","addedConfigsForValidation","filteredMatchingLeftOperand","selectedLeftOperand","filteredMatchingRightOperand","enumArray","getRightOperandSuggestions","getAddonLeftOperands","isClonedQuant","signalConfigField","additionalLeftOperands","stopGainOrLoss","adminOnlyAdditionalOperands","getLeftOperands","signalVariables","labelForEnumPattern","getOperators","lo","getRightOperands","rightOperandSuggestion","rightOperands","getCustomizedOperator","operator","renderSignalConfig","signalConfig","conditionOperator","sentence","leftOperandConfig","rightOperandConfig","leftOperandLabel","labelHtml","rightOperandLabel","customizedOperator","SignalSentence","signalConfigs","signalSentence","SignalSentence$1","NoOrdersMessage","isFiltersApplied","orderConfigs","entrySignalConfigs","orderConfig","entrySignalsSentences","entrySignalConfig","RunConfig","RunErrorMessage","LOGIN_WATCH_INTERVAL","getWindowProperty","window","propertyName","getLoginWindow","URL","initiateUserAuth","loginWindow","loginWatch","initiateBrokerCallbackLogin","selectedBrokerHref","WebShare","RWebShare","EQUITY_TAG_COLOR","FUTURE_TAG_COLOR","buildClosePriceLabel","instrumentIndex","buildInstrumentLabel","buildDefaultLabel","labelName","buidInstrumentOutputSchema","schemas","equitySchema","INDIVIDUAL_STOP_TAG_COLOR","isDisplay","BASKET_TAG_COLOR","schemasToDisplayNameMap","getIndividualStopSchema","extraArgs","isShow","shouldShowConfigs","getBaseIntentSchema","intents","getAdjustmentIntentSchema","adjustments","getBasketIntentsInPipeConfigs","pipeConfigs","bName","getBasketIntentSchema","basketLabel","basketIntents","intnt","buildIndividualStopOutputSchema","baseIntents","adjustmentBasketIntentSchema","schemaToLabelMap","buildStrategyStopOutputSchema","commonEntryOrExitOutputSchema","buildCommonEntryOrExitOutputSchema","getConfigs","basketIntent","schemaConfig","schemaName","buildBasketOutputSchema","getOutputSchemaForPipe","pipeIndex","getOutputSchema","getEmptySignals","signalTypes","defaultIntentInstrumentExpiry","IntentLabelConfig","newLabel","getDefaultIdentifier","getDefaultTarget","defaultStopGain","defaultLinearTrail","defaultStopLoss","getDefaultIntent","getDefaultModifyOrderIntent","getDefaultBasketIntent","defaultUiBehaviourFlags","getDefaultTimeBasedSignal","getDefaultAdjustment","getDefaultCase","getQuantModes","getDefaultQuantConfigUiConfigs","getOptionBuilderQuantConfig","strategyBuilderConfig","strikeKeys","optionConfigs","timeBasedSignal","optionStrikeCalculationBasedOn","optionsExpiryCycle","defaultQuantConfig","newType","oldStrikePair","newResult","optionConfig","defaultIntent","stopLoss","stopGain","stopLossName","stopGainName","newStrike","defaultCase","getQueryParamsBasedSanitizedQuantConfig","getSanitizedStopLoss","trail","_c","_d","_e","_f","_g","_h","isSegmentMatched","isOptionConfigIndexMatched","isAdjustmentConfigIndexMatched","getFormattedOperand","segmentWithIndex","index1","index2","baseIntent","getSanitizedAdjustmentSignals","signal","isIndividualStopIncludesLeftOperand","isIndividualStopIncludesRightOperand","newLeftOperand","newRightOperand","getSanitizedIntent","getSanitizedPipeConfigs","allIntents","newPipeConfig","snippetId","newLegs","signals","isStrikeIndexBased","isIndexBased","getStrikeIndexBasedOptions","isIndexInstrumentBased","strike","StrikeUtility","comparison","isNewIndicatorBased","strikeObj","comparisonLabel","valueType","comp","shouldShowIndicatorBasedStrikeIndex","shouldShowDeltaBased","shouldShowIntentMultiplier","getSanitizedIntents","newIntent","targetConfig","isStopLossPesent","isStopGainPresent","isOption","IndicatorValueBasedStrikeIndex","isDeltaBased","isIndicatorBased","_i","strikeType","_k","_j","_m","_l","isMultipleCasesEnabled","getSanitizedAdjustments","newAdjustments","adjustmentConfig","getSanitizedCases","caseConfigs","entry","intentIdIntializer","legIds","loopIntents","maxLegId","legId","getDefaultMode","getSanitizedUiConfigs","uiConfigs","newUiConfigs","getSanitizedQuantConfig","queryParamsQuantConfig","adjustmentOptions","executionType","newCases","newPipeConfigs","InstrumentGroupsSentence$1","ConfigDisplayDetails","ViewConfigInstrumentalDetails","groupType","OutputSchemaUtility","types","findName","TypeheadSchemaUtility","getBadge","getLabelString","labelString","backgroundColor","badge","option","filterProps","withHiddenSignal","isHiddenSignal","isPremiumError","DayOfWeek","onChangeRightOperand","selected","validator","daySelectorName","daySelectorInputStyle","onDayChange","selectedDays","Default","isAllowNew","uniqueId","selectedRightOperandSchema","onChangeOrOnBlur","customOption","searchLabel","onBlur","getPriority","menuProps","priorityResult","Menu","MenuItem","toPositiveNumberString","targetValue","onRegexOnlyNumberAndFloat","regxValue","onRegexOnlyNumber","UNITS","Duration","unit","rulesValidator","onDurationChange","newValue","newDuration","onUnitChange","newUnit","renderOptions","Row","Col","Form","TIME_PICKER_FORMAT","TimeSelector","onTimeChange","selectedTime","maxDetail","TimePicker","ValidationError","helpers","makeSuffix","ValidatorResult","ctx","detail","ValidatorResultError","stringizer","SchemaError","msg","SchemaContext","resolveUrl","FORMAT_REGEXPS","deepCompareStrict","aKeys","bKeys","deepMerger","dst","deepMerge","copyist","src","copyistWithDeepMerge","o","pathEncoder","decimalPlaces","decimalParts","to","resolvedUrl","pathname","search","hash","attribute","validators","testSchemaNoThrow","throwError","throwAll","self","valid","count","ifValid","getEnumerableProperty","subschema","testAdditionalProperty","additionalProperties","patternProperties","test","regexp","items","validateMultipleOfOrDivisbleBy","validationType","validationArgument","instanceDecimals","divisorDecimals","maxDecimals","hsp","length","testArrays","dep","childContext","notTypes","schemaId","attribute_1","scan","SchemaScanResult","found","scanSchema","baseuri","resolvedUri","resolvedBase","ourBase","scanArray","scanObject","anonymousBase","Validator","ourUri","urn","sch","shouldResolve","schemaobj","switchSchema","resolved","subctx","skipAttributes","validatorErr","fragment","document","getValidationError","configName","NO_OF_CANDLES","getConfigAndPeriodValidator","configKey","candleInterval","maxPeriodAllowed","serverErrorsToObject","serverErrors","errorObj","propertyPath","getDayOfWeekValidation","days","MARKET_START_TIME","getTimeValidators","minTime","isRequired","newTime","getTimeValidatorsV2","Time","timePickerName","DateSelector","onChangeDate","dateFormat","showTimeSelect","customizedProps","DatePicker","Date","DatePickerName","onDateChange","newDate","validatorConfig","OperandUtility","defaultParentClassName","SignalsView","onEdit","isViewOnly","parentClassName","hiddenSignal","namePairLabel","getModifiedRightOperand","signalContent","renderSignal","leftOperandType","operatorLabel","SignalsViewContentWithHidden","renderSignalsViewEditButton","getStrikeStatement","strikeLabel","multiplierLabel","indicatorLabel","renderType","isSelf","renderTrailingStopLossConfig","renderBookProfitConfig","renderTrail","renderDelayBy","delayBy","delayBySecs","StopConfigView","renderQuickAdjustmentView","quickAdjustment","trigger","targets","triggerItem","actionItem","delayByItem","QuickAdjustmentsView","quickAdjustments","IntentsView","renderWaitAndTrade","waitAndTradeType","waitUntilPremiumToIncreaseInPercentage","waitUntilPremiumToDecreaseInPercentage","renderStopConfig","renderReExecute","reExecuteCount","renderReEntry","reEntryCount","renderQuantity","renderOptionIntent","isIdle","side","cycle","expiry","renderFutureOrEquityIntent","renderBasketIntent","renderModifyOrderIntent","targetLabel","renderIntent","customDisplayConfig","EditOrDeleteButton","onDeletePipeConfig","onEditPipeConfig","isDependent","renderPipeConfigEditButton","getExternalSignalUrl","ExternalSignalView","CUSTOM_LABELS","PipeConfigView","inputSchema","alteredChartConfig","renderLabelAndValue","fieldType","renderValue","getDefaultLabel","renderConfig","inputSchemaConfig","ViewConfigIndicators","renderIndicators","ViewConfigSentences","isSignal","divClassName","ViewConfigCases","renderCase","exitSignal","isMoveToCost","ConfigRunDetails","isLive","runDetails","renderDetails","ViewConfigExpiry","tradingType","expiryHandling","maxTransactionsPerDay","renderExpiry","tradeDuration","exitDaysBefore","stopValidation","ViewConfigStopValues","propsStopLoss","propsStopGain","propsDayStopGain","propsDayStopLoss","dayStopGain","dayStopLoss","ViewConfigOrdersProduct","entryOrderType","exitOrderType","product","entryOrderModification","exitOrderModification","isPlaceOptionsEntryBuyOrdersFirst","slOrderPlaceBasedOnPrice","limitOrderBufferPercentage","isPlaceStoplossOrderToBroker","isSquareOffTransactionIfEntryFailed","renderIsPlaceOptionsEntryBuyOrdersFirst","renderIsSquareOffTransactionIfEntryFailed","getStructuredString","modification","actionTimeInSeconds","shotString","entryShowString","exitShowString","ViewAdjustmentAdvancedOptions","ViewRunConfigs","shouldShowModal","setShowModal","sanitizedQuantConfig","isActualOrder","onChangeOrderType","omitKeysForNotActual","isActual","stopAndLimitPriceDifferenceInPercentage","extractIdsFromLabel","basketId","intentId","extractIndividualSchemaField","position","findIntent","newSegment","getTypeBasedValue","buildLegProperty","locator","moveToCostBasedAdjustmentAdder","lastAdjustmentConfigIndex","moveToCostOptionIndexes","currentAdjustmentConfigIndex","moveToCostOptionIndex","newIndentifer","newTarget","reExecuteBasedAdjutmentAdder","previousIdentifier","reEntryBasedAdjustmentAdder","getBasketOpenLegIntentsBasedOnIntents","remainingIntents","basketBasedOpenLegIntents","when","instrumentConfig","intentTypeFor","intentsFor","labelToReferenceMap","signalFor","reference","adjustmentsForQuickAdjustments","qa","simillarQuickAdjustments","getSyntheticAdjustments","getAdjustmentNewTarget","bIntent","getPositionReferenceForAdjustmentIntent","intentIndex","isReEntryEligible","isReEntry","isReExecuteEligible","isReExecute","isMoveToCostEligible","getMoveToCostOptionIndexes","getIntentsBasedAutoAdjustments","lastAdjustmentIndex","newAutoAdjustments","reEntryAutoAdjustments","reExecuteAutoAdjustments","moveToCostAutoAdjustments","getBeforeSubmitSanitizedAdjustments","openLegIntents","basketLegAddedIntents","newIntents","adjustmentConfigs","oldAdjustmentConfigs","newAdjustmentConfigs","quickAdjustments.getSyntheticAdjustments","isOmitTrailingStopLoss","isOmitAdjustStopLoss","isOmitBookProfitOn","isOmitBookProfit","isOmitTrail","sanitizedTrail","getPositionReferenceForBaseIntent","isTargetEmpty","isOmitStopLoss","isOmitStopGain","newBaseIntents","isIndexInstrumentPresentInInstrumentGroup","isIndexInstrumentWithWeeklyExpiryOnly","isWeeklySupportedIndexInstrument","isIlliquidInstrument","isEnabledCalenderSpread","getIntentsError","openLegAndIntents","optionIntents","optionIntentsWithExpiryDetails","setCalenderSpreadErrors","setExpiryErrors","errorConfigs","isSame","instrumentBasedExpiryErrors","expiryError","defaultIdentifierExtraConfig","throwIntentsError","pipeName","getSanitizedSignals","getSanitizedPipes","sanitizedCases","validateTrailingStopLoss","trailingValue","adjustValue","hasError","AUTO_TRANSACTION_TSL_PIPE_NAME","autoTransactionTSLPipeConfig","slType","slValue","autoTSLAdjustment","addOverallTransactionTSL","isValidSlType","isValidTrail","kase","getSanitizedBounds","bounds","isOmitOverallStopLoss","isOmitOverallStopGain","isOmitOverallDayStopLoss","isOmitOverallDayStopGain","getIntentMoreSanitized","getCaseMoreSanitized","validateCases","trailingStopLossError","uiBehaviourFlags","sanitizedPipes","newQuantConfig","beforeSubmitSanitizer","runConfig","isSecondBySecondEnabledForUser","getBrokersDetails","automaticSupportedBrokers","broker","availableBrokers","oneClickSupportedBrokers","getDefaultOrderType","newOrderType","currentUser","planActiveTill","isInInitialOfferPeriod","onLoadSanitizer","RunConfigSanitizer","permittedKeys","assertIsFunction","assertIsObject","assertIsArrayOfFunctions","itemTypes","ensureIsArray","getDependencies","createSelectorArgs","dependencies","collectInputSelectorResults","inputSelectorArgs","inputSelectorResults","StrongRef","Ref","UNTERMINATED","TERMINATED","createCacheNode","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","arg","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","lastResultValue","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","combinedOptions","memoizeOptions","argsMemoize","argsMemoizeOptions","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","selector","createSelector","createStructuredSelector","inputSelectorsObject","selectorCreator","inputSelectorKeys","composition","getSelectorBasedStoreValue","selectedState","SET_PARTIAL_QUANT_CONFIG","setPartialQuantConfig","partialQuantConfig","SET_INSTRUMENT_GROUPS","SET_RUN_FORM_ROOT_VALUE","setRootValue","runFormConfig","SET_PIPE_CONFIGS","setPipeConfigs","SET_ADJUSTMENT_OPTIONS","setAdjustmentOptions","SET_BOUNDS","SET_PARTIAL_BOUNDS","setPartialBounds","partialBounds","SET_CASES","setCases","SET_CASES_INDEX_BASED","setCasesIndexBased","SET_UI_BEHAVIOUR_FLAGS","OrderType","dispatch","useDispatch","useSelector","onUpdateOrderType","renderSelectOption","orderTypeArg","RunName","onUpdateRunName","formatProdErrorMessage","$$observable","symbol_observable_default","randomString","ActionTypes","actionTypes_default","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","listener","getState","subscribe","isSubscribed","listenerId","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","observerAsObserver","assertReducerShape","reducers","combineReducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","hasChanged","nextState","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","createStore2","store","middlewareAPI","middleware","createThunkMiddleware","extraArgument","next","thunk","withExtraArgument","composeWithDevTools","Tuple","_Tuple","buildGetDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","SHOULD_AUTOBATCH","createQueueWithTimer","timeout","notify","autoBatchEnhancer","notifying","shouldNotifyAtEndOfTick","notificationQueued","listeners","queueCallback","notifyListeners","listener2","wrappedListener","unsubscribe","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","configureStore","getDefaultMiddleware","devTools","enhancers","rootReducer","isPlainObject2","finalMiddleware","finalCompose","compose2","getDefaultEnhancers","storeEnhancers","composedEnhancer","withRunForm","UIComponent","filteredProps","Provider","ProductType","onChangeProduct","renderRadioBtn","OrderTypeSelector","selectedOrderType","isStopLossLimitOrderEnabled","ACTIONS","ActionTypeSelector","propsAction","isHideCancel","modifyOrderActionTypeBtnName","register","clearErrors","validatorProps","actionTypeStyle","inputClassName","ModifyOrCancelOrder","propsActionTimeInSeconds","isExitOrder","setAction","setActionTimeInSeconds","modifySecondsName","onChangeActionTimeInSeconds","onChangeAction","secondsClassNames","renderSeconds","EntryOrExitOrderTypes","orderModification","onHandleTypeAndModification","onChangeOrderModification","orderModificationValue","onChangeOrderTypeConfigs","onHandleEntryTypeAndModification","onHandleExitTypeAndModification","StopLimitPriceDifference","onChangeStopAndLimitPriceDifferenceInPercentage","stopLossLimitPrice","setStopLossLimitPrice","onUpdateState","onChangeLimitOrderBufferPercentage","bufferPercentage","setBufferPercentage","Selector","propsOptionType","MarginBenefit","onChangeIsPlaceOptionsEntryBuyOrdersFirst","booleanValue","PriceSelector","optionTypeBtnName","optionTypeInputId","optionTypeStyle","optionTypeRadioBtns","SlOrderBasedOnPrice","onChangeSlOrderPlaceBasedOnPrice","newSlOrderPlaceBasedOnPrice","useOrderExecutionDetails","quantRunType","quantOrderType","onChangeOrderExecutionConfigs","partialConfigs","newProduct","newLimitOrderBufferPercentage","PlaceOptionsEntryBuyOrdersSelector","onOptionTypeChange","radioBtnStyle","isIndividualStoplossAvailable","checkIntents","isStopLossPresentInCase","isStopLossPresentInPipeConfig","PlaceStoplossOrderToBroker","HtmlParser","PlaceStoplossOrderToBrokerFieldSelector","SquareOffTransactionIfEntryFailedSelector","SquareOffEntireTransactionIfEntryFailed","OrderExecutionDetails","isShowOrderExectionDetails","isShowBufferPercentage","onChangeIsPlaceStoplossOrderToBroker","onChangeIsSquareOffTransactionIfEntryFailed","LimitOrderBuffer","signOut","updateUser","validateBrokerUser","sendOtpToBrokerUser","userCredentials","isResendOtp","validateOtpToBrokerUser","getCurrentUserDetail","getExpiringSoonItems","checkIsValidBrokerAccessToken","updateEmailId","emailId","updateReferralCode","referralCode","updateMandatoryPreferences","preferences","getUserAccountDetails","addonConsumedHistoricRuns","addonConsumedLiveRuns","addonMaxHistoricRuns","addonMaxLiveRuns","quotaConsumedHistoricRuns","quotaConsumedLiveRuns","quotaMaxHistoriRuns","quotaMaxLiveRuns","freeTrialTill","requiredQuota","availableHistoricRuns","availableLiveRuns","isPaidActiveUser","backtestCredits","isBacktestEligibleToRun","isShowAddon","isLiveEligible","isShowLiveRun","modalConditionBasedRender","isShowPlan","strategy","RunningLiveRuns","callbackFunc","runningLiveRuns","setRunningLiveRuns","isEnableDeploy","setIsEnableDeploy","sizeOfLiveRuns","setSizeOfLiveRuns","reducedSizeOfLiveRuns","setReducedSizeOfLiveRuns","onStopRun","renderLiveRuns","fetchAddons","fetchCoupon","fetchPreApplyCoupon","fetchPlans","getPurchases","onCreatePayment","onVerifyPayment","onCreateSubscription","onVerifySubscription","onClaimFreeTrial","PAID_STATUS","SET_TIMEOUT_SECONDS","STATUS","initializeRazorpay","script","razorpayModal","isSubscription","onVerifyPurchase","responseArgs","razorpayKeyId","razorpayPurchaseId","resyncTypes","razorpayNotes","immediateCallBackFunc","resyncType","purchaseStatus","toastMessage","toastFormat","paymentInitialize","isUserSignedIn","isEmailUser","onCreatePurchase","processPurchase","razorpayOrderId","razorpaySubscriptionId","RAZORPAY_KEY_ID","razorpayModalArgs","cyclicPlansPeriods","getContent","brokers","hiddenBrokers","filteredBrokers","applyCredits","credits","getPreFillCouponCode","cyclicFilter","planCycleType","plan","getPercentageValue","percantage","initCurrentNetPrice","priceCalculations","isBothIdsEmpty","discountPercentage","currentHash","currentIds","getAddonsAndPlanGroups","addons","planGroups","addonIds","planIds","alteredAddons","addon","alteredPlanGroups","arrayValue","getCouponConfig","PaymentMoneyDisplay","currentNetPrice","strikePrice","cycleDurationInMonths","shouldHideBillCycle","cycleMonth","renderStrikedPrice","isPriceAndCurrentNetPriceSame","PurchaseSet","purchaseList","handleSelectedPurchase","selectedPurchase","selectedId","renderPurchaseList","addonName","planName","historicLimit","liveLimit","historicLimitStatement","renderAddon","renderPlan","Header","isStepOne","renderHeader","renderSubHeader","PaymentCoupons","couponCode","onChangeCouponCode","isApplied","onCouponUpdate","isMobile","isInValid","messageClassName","renderIconOrContent","refreshCreditBalance","Credits","creditBalance","isCreditApplied","onUpdateCredits","getUpdatedCreditBalance","onChangeCheckbox","QuotaConfirmation","isEmpty","isEmptyStrategy","totalAmount","reducedAmount","renderStrategyRow","renderCycleLable","monthlyLabel","monthlyPeriod","quarterLabel","quarterlyPeriod","yearlyLabel","newCreditBalance","isCreditUsed","StrategyConfirmation","onContinue","BillingCycleFilter","handlePlanCycleType","renderPlanCycleTypes","planConfig","labelClassName","QuotaPurchase","setaddons","setPlanCycleType","setPlanGroups","setCouponCode","setIsApplied","appliedCouponConfig","setAppliedCouponConfig","setMessage","setSelectedPurchase","sendCouponCode","currentCyclicPeriodPlans","planGroup","setStep","setCreditBalance","setIsCreditApplied","filteredResults","onUpdateCouponPricesInPayments","alteredCouponCode","alteredIsApplied","updatedSelectedPurchase","coupon","okPay","purchaseTypeName","purchaseType","isStrategyPresent","isStepTwo","renderModalComponents","renderBacktestCreditDetails","newPurchase","isStrategyDomainUser","QuotaVerification","isStrategyInitialPayment","isCallBackFuncCall","isRenderRunningLiveRuns","quotaVerificationDom","divTag","ReactDOM","createMessage","sendMessageToParent","targetOrigin","useRunSubmit","engineVersion","isEditQuant","hiddenByUserId","shouldEmitOnSubmit","setIsUserLoggedIn","getDefaultFolderId","getSanitizedRunParams","postRunToParent","executeEditRun","executeCreateRun","additionalErrors","handleCreateRun","sanitizedRunParams","defaultFolderId","Main","onCloseModal","goLiveTitle","onSubmit","Main$5","DeployLiveRun","currentUserDefaultFolderId","shouldRenderDeployBtn","setShouldShowModal","sanitizedRunConfig","SocialShare","isPublicRun","onPublicRunChange","isBelongsToCurrentUser","encodedUrl","socialShareIconsClass","renderPublicPrivateSwitchBtn","renderSocialShareBtns","onNameChange","isHideEditRun","ShowcasedRunTag","isShowcased","StopRunbtn","isLiveRun","lastTransaction","isLastTransactionNotCompleted","pairedOrder","validateRunToStop","CloneRunBtn","onCloneRun","StarRunBtn","onStarRunChange","fetchStrategies","onCreateNewStrategy","SuccessFailureMessageModal","isSuccess","defaultStrategyFormConfig","userId","segmentType","getColumnDetails","strategyConfig","getPurchaseDetails","StrategyFormDescription","onUpdateStrategyConfig","descriptionId","textAreaClassName","StrategyInput","strategyKey","StrategyFormTags","StrategyCreateForm","isApproved","isApprovedAccess","setIsApprovedAccess","setStrategyConfig","isShowSuccessModal","setIsSuccessModal","errorResults","renderColumnDetails","renderSegmentTypes","isChecked","renderSuccessMessage","renderSuccessModal","columnDetails","purchaseDetails","EditRun","onEditRun","MultiplierTag","ForceExitConfirmation","onForceExit","isShowText","ForceExitBtn","lastPairedTransactions","isShowBtn","lpt","MarketPlaceAuthorTag","ReStartButton","isValidToRestart","isSkipLastTransaction","setIsSkipLastTransaction","subscriberStrategyCutOffTime","executeRestartRun","onRestart","cutoffTimeMoment","marketEndTimeMoment","isAfterCutoff","isBeforeMarketEnd","delay","ACTIVE_STRATEGY_TYPE","validation","anonymousNumericValue","anonymousArray","anonymousConfig","booleanArray","matchConfig","configValue","getFilteredStrategies","strategies","margins","categories","timePeriods","purchaseTypes","purchaseAmounts","premiums","authorNames","marginAmount","purchaseAmount","riskCategory","isPremium","liveInstrumentGroups","strategyTags","strategyTagsAltered","authorName","getInstrumentOptions","buttonTypesInStrategy","handleDisabledButtonInMarketPlace","strategyUserId","currentUserId","isStrategyBelongsToUser","strategyAccess","isEmptyStrategyAccess","isDeployed","paidTill","strategyAccessCreatedAt","freeTrialDays","isFreeTrialAvailable","isInFreeTrialPeriod","subscribePremiumPlan","disabledReason","getDisplayStrategies","strategiesPerIndex","totalStrategies","strategyRange","buildCategory","icon","Multiplier","onChangeMultiplier","maxMultiplier","MULTIPLIER_LIMIT","LiveRunMultiplier","shouldRenderMultiplierBtn","runMultiplier","setRunMultiplier","isInValidMultiplier","handelSaveModal","RunTitleAndActions","propsRun","strategyDetails","setRun","runDisplayName","isPublic","isMarketPlaceSubscriberRun","publishInMarketPlace","isEmptyQuantConfig","host","isShowMarketPlaceForm","isShowEditRun","isValidToHide","isShowRunBelongsToButtons","marketPlaceStyle","isReload","successCallback","qsConfig","cloneParams","cloneFolderId","editParams","editFolderId","getSymbolType","parseTradingSymbol","symbolType","sizeOfTradingSymbol","instrumentEndIndex","onlyForBetaUsers","component","CUT_OFF_DATE","LinkToIO","additionalClassNames","page","instaOptionsUrl","userRunType","fullClassNames","LinkToIO$1","today","LinkToIOStrategy","legConfigs","actualEntryTimeISO","actualExitTimeISO","lots","legConfig","dateTime","ioHistoricalTime","signalProfitMapBy","tradedProfitMapBy","LiveProfits","TradingSymbol","TransactionOrderDetails","onHandleModal","ordersPair","propsOrderType","runStatus","actualOrders","entryOrderId","orderUserId","isShowLegSquareOffBtn","orderCardClassName","orderPlacementDurationsKeyName","renderOrder","brokerOrderId","cancelledQuantity","slTrailedCount","moveToCostAchieved","isReEntryOrder","orderQuantity","tradedQuantity","orderPlacementDurations","quantmanPlacedTime","renderOrderPlacementDurations","renderOrderPlacementDurationHover","renderSubInformation","listDetails","renderListDetail","leftContent","rightContent","LinkToIOOptionChain","LiveOrderDetails","timeISO","flexClassName","STATUSES","getStatus","slOrders","orderTradingSymbol","slOrder","slOrderTradingSymbol","getClassNamesForProgressCircle","circleIndex","LiveTransactionDetails","isAccordianOpen","isNumerousRuns","getIndex","renderSignals","sl","exit","renderTransaction","entryStatus","slStatus","exitStatus","renderOverallProfit","renderTitle","renderHeaderRightSectionContent","renderPairedOrder","liveStatusIndicator","TransactionCollapsed","isIlliquidTransaction","shouldShowSecondsInTime","renderTime","times","t","TransactionMoreDetails","onHandleModalInParent","TransactionExpanded","isShowStatus","groupedByTradingSymbolSize","rowSpanCount","resetRowSpanCount","renderTransactionId","renderCumulativeProfit","getFormattedTime","renderEntryAndExitFormatters","alteredTime","renderOrders","hasIlliquid","entryFailureMessage","exitFailureMessage","entryStatusConfig","entryStatusText","entryStatusTextClassName","isEntryWaiting","exitStatusConfig","exitStatusText","exitStatusTextClassName","isExitWaiting","Transaction","isExpanded","setIsExpanded","isOpenedModal","setIsOpenedModal","onClick","TransactionComponent","TransactionsList","TransactionHeader","Filters","onFilterChange","specialFilter","onSpecialFilterChange","inCompleteTransactions","newFilter","filterOptionBtns","iconStyle","TransactionsPerPage","onTransactionsPerPageChange","ordersToCsv","isBetaUser","headerData","csvDataFormat","formattedEntryTime","formattedExitTime","rowData","csvContent","encodedUri","link","TransactionsDownload","IoBtns","IoBtns$1","setSpecialFilter","TransactionsFooter","onCurrentPageChange","TRANSACTIONS_PER_PAGE","TransactionTable","reverseTransactions","setTransactionsPerPage","filteredTransactions","setFilteredTransactions","transactionsToDisplay","newTransactions","renderTransactionList","getTradeType","symbolOrder","tradeType","getTradeTypeData","tradeTypeAnalyticsData","tradeTypeOrders","tradeTypeAnalyticsKey","SingleBarChart","fillPercent","chartType","isMoney","BarChart","analyticsData","miss","hit","loss","TradeTypeAnalytics","setAnalyticsData","sanitizedAnalyticsData","symbolCategory","tradeTypeData","InstrumentGroupAnalytics","instrumentGroupsAnalystics","instrumentGroupAnalysticsData","splitedInstruments","sanitizeInstruments","ins","EntryExitSelector","onEntryExitChange","entryExitTypes","renderGroupBtns","INTRADAY","DayOfWeekAnalytics","setIsEntry","dayOfWeekData","setDayOfWeekData","dayOfWeekAnalytics","headingClassName","YearAnalytics","yearAnalyticsData","yearAnalytics","getMaxPlAndHM","monthWiseOrders","heatMapData","PLOrHMValue","maxValue","PLHM","getExactRange","getMonthWiseAnalyticsData","monthWisePLAndHM","maxValues","monthWiseData","monthPLAndHM","yearAndMonth","currentMonthProfitLossValue","PLHMType","PLOrHM","getMonthWiseData","HIT_MISS","HeatMap","renderCells","yearData","monthData","tooltopData","renderMonthLabel","renderHeatMapChart","MonthlyAnalytics","monthlyAnalytics","TransactionsAnalytics","renderAnalyticsProgress","TransactionDetail","isEmptyTransactions","isInCompleteStatus","renderInCompleteContent","renderEmptyTransactionContents","renderTransactionView","RunDetail","profitLossLabel","profitLossTitle","profitLossIconClassName","orderTypeClassName","orderTypeIconClassName","isDarkThemedStatus","statusIconClassName","renderRunTypeIcon","alteredStatus","runShowDetailsPropTypes","fetchV2JobDetails","fetchV2DashboadJobsDetails","V2JobsAction","Table","columns","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","useTable","headerGroup","column","createElement","row","cell","getOpenOrdersData","openOrdersData","latestOrders","openOrderTransactionId","latestOrderTransactionId","isNewTransaction","orderIndex","tradeSymbol","transactionId","isEntryOrder","orderDetails","getRespectiveInstruments","instrumentRepresentName","indicatorValuesOfInstrument","getSubIndicatorsData","indicator","tockGroup","indicatorsType","indicatorValues","isPairIndicators","getSubIndicatorData","getFormattedIndicatorsData","indicators","formatV2QuantMonitorData","tock","lastTick","renderOrderDetails","timeZone","OpenTransactionsCard","liveOrdersData","onOrderReceived","setOpenOrdersData","hasIlliquidOrder","OpenTransactionsCard$1","TIMEOUT","BgBlink","previousValue","blinkStyle","setBlinkStyle","getTdProps","currentDataColKey","getInstrumentsMarketData","marketData","InstrumentsMarketDataTable","instrumentsMarketData","getIndicatorDataTdProps","subIndicatorKey","IndicatorsDataTable","indicatorsData","indicatorData","titleRowSpan","titleColSpan","subIndicatorsData","subIndicatorData","MarketDataMonitorTable","renderIndicatorsData","indicatorType","LiveProfitCard","groupProfit","groupProfitPercent","groupProfitClassName","LIVE_MONITOR_REFRESH_INTERVAL","LiveMonitor","isMarketHrs","renderMarketPlaceContent","tockGroups","setTockGroups","setLiveOrdersData","reloadCount","setReloadCount","LiveOrdersChannelProps","fetchV2JobMonitorDetailsPeriodically","fetchAndSetData","jobDetails","groups","getOrderDataBasedOnShowBy","renderLiveMonitor","currentTockGroup","currentLiveOrderData","renderMarketPlaceTable","formatInstrumentGroups","renderReloadModal","TradeSkipDates","isShowPicker","setIsShowPicker","toDateFormat","tradeSkipStartDate","tradeSkipEndDate","setStartDate","setEndDate","startCalenderDate","endCalenderDate","contentString","isShowClearDate","LiveDetails","CreditDetails","isConsumed","quotaBreakout","breakOutcontent","ValueTypeToggleBtn","onValueTypeChange","isShowPrice","PERCENT","PRICE","SlippageInputDetails","currentSlippage","setCurrentSlippage","currentSlippageType","setCurrentSlippageType","WeekDaysFilter","setFilterConfigs","isWeekDaysFilterActive","isDaysToExpiryFilterActive","toggleWeekDay","weekDay","openFilter","closeFilter","renderedOptions","DaysToExpiryFilter","dteOptions","isToggleOpen","setIsToggleOpen","handleSelectAll","updatedDays","handleOptionChange","renderTooltip","Tooltip","Dropdown","LegsFilter","handleLegsUpdate","selectedLegs","selection","RunShowDetails","shouldRenderLoadingSpinner","shouldShowFilter","isQuarantine","COMPLETED","STARTED","renderQuarantineMessage","renderNoOrderMessage","renderRunConfig","renderBacktestShowPage","renderLiveRunShowPage","getShowByOptions","RunShow","runJobs","ERRORED","showByOptions","setShowBy","setShouldRenderLoadingSpinner","runShowDetailsProps","onStatusChange","newStatus","initializeStatusUpdateListner","getSetting","updateSetting","updatedSetting","getWebPushSubscriptions","deleteWebPushSubscription","webPushSubscriberId","WebPushSubscriptionsList","subscriptionIdToDelete","NOTIFICATION_TYPES","NotificationSettings","settingKey","setting","notificationType","isBrokerUser","currentUserBroker","cancelSubscription","subscriptionId","renderDateInPrettyFormat","dateStr","dateMmt","getActualPlanEnddate","THEMES","THEME_SETTING_KEY","ThemeSettings","theme","defaultTheme","selectorClassNames","sendOtp","phoneNumber","phoneNumberValidator","PhoneNumberForm","onPhoneNumberSubmit","onPhoneNumberChange","handleSubmit","OTP_LENGTH","RESEND_LABELS","OtpForm","onResendOtp","onEditPhoneNumber","routePath","otp","setOtp","resendLabel","setResendLabel","isResendingOtp","setIsResendingOtp","onOtpChange","onClickResendOtp","PhoneNumberVerification","isSessionActive","onCloseModalPresent","setPhoneNumber","isSendingOtp","setIsSendingOtp","MobileNumberDetails","currentUserDetails","isUpdateMobileNumber","setIsUpdateMobileNumber","VALIDITY_CALL_RANGE","AccessTokenInValidMessage","accessTokenCallBack","propsIsValidToken","isValidAccessToken","setIsValidAccessToken","brokerAccessTokenCall","brokerAccessTokenCheckedAt","updatedTime","UserDetails","setCurrentUserDetails","email","foldersCount","runsCount","admin","gstNumber","brokerClientId","brokerClientName","brokerClientEmail","brokerUserId","facebookLink","twitterLink","instagramLink","telegramLink","accountName","accountNumber","ifscCode","youtubeLink","brokerAccessTokenUpdatedAt","getUpdateDetails","userInfoDetails","socialLinkDetails","accountInfoDetails","updateUserDetails","updateDetails","renderAccessTokenButton","checkedAt","renderUserInfoDetails","info","renderInputForm","buttonName","MyProfile","activeSubscriptionId","planDetails","planCycleLabel","planCycle","quarterPeriod","generatePaymentInvoice","purchase","opt","number2words","ones","tens","renderPurchaseItem","purchasable","discount","InvoiceContent","gstPercentage","quantManGstNumber","termsAndConditonsHeading","creditsUsed","MAX_RECORDS_IN_PAGE","renderDatetime","datetimeStr","PurchaseSettings","purchases","setPurchases","showablePurchases","setShowablePurchases","retrievedPurchases","planCycleDurationInMonths","renderRow","rowspan","renderTableBody","SETTING_TYPES","SETTING_COMPONENTS","Settings","settingType","selectedSettingType","tabItemClassNames","tab","CurrentSettingComponent","createUsersDemos","demoId","SiteTour","steps","parsedSteps","Joyride","usePlans","activePlan","activeSubscription","isStrategyDomain","defaultPlanType","isPreFill","activePlanId","activePlanName","currentCyclicPeriodAddons","plansGroupedByCyclicMonths","shouldShowAddons","isSubscriptionActive","planPageNotice","isCouponsAllowedOnStrategyDomain","shouldShowCoupon","AvailableFreeTrialCard","availableFreeTrial","userReferredBy","liveQuota","historicQuota","trialDays","onClickClaimFreeTrialBtn","webAndMobileRootPropTypes","webAndMobileDefaultProps","PlanTypeSelector","onHandlePlanType","cyclicPeriods","renderPlanCycleType","liClassName","PAYMENT_DESCRIPTION","SUBSCRIPTION_DESCRIPTION","PlanPurchaseTypeSelectionModal","onChangePurchaseType","renderPurchaseType","purchaseData","PlanMultiplierModal","onChangeSelectedPlan","onShowPurchaseTypeModal","setMultiplier","yearlyPeriod","getYearlyOnlyPlans","plans","selectedPlan","renderPlanDetails","historicRunLimit","liveRunLimit","PlanButton","couponConfig","isHideIcon","setSelectedPlan","hasPaymentEnabled","currentDomain","coupenCode","isCouponAvailable","setIsUserSignedIn","modalConfigs","setModalConfigs","setPurchaseType","paramCouponCode","isYearlyPlan","isShowPurchaseTypeModal","isShowMultiplierModal","createPayment","onHandlePaymentButton","renderPurchaseTypeComponent","buttonClassName","HoveMessagedBasedOnType","renderNotes","notesHtml","isDefaultDomain","oneClickNotes","automaticNotes","PlanContent","contentList","renderContent","renderSpan","ulClassName","PlanCard","actualPrice","planId","accordionId","planCardClassName","renderPlanButton","MultiplierModal","isLiveCreditsAvailable","creditsConsumptionGuide","AddonCard","isPlanActive","liveLimitStatement","isPositiveCreditBalance","onShowMultiplierModal","setOnShowMultiplierModal","isLiveAddon","renderLimit","statement","Web","freePlanDetails","freeTrailDays","renderAddons","renderFreePlanDetails","freeTrailInDays","renderPlanTypeSelector","renderPlanPageHeaders","headerClass","applicationDomainNotice","isActive","setSelectedPlanId","Mobile","currentTab","setCurrentTab","selectedPlanId","tabConfigs","renderli","liConfig","renderCouponAndCredits","renderPlanContent","renderAddonsContent","isShowCreditAndCoupon","tabConfig","Plans","brokerId","propsArgs","EXCHANGES","getExchangeAndSymbol","exchange","getInstrument","InstrumentInput","ignorableInstruments","newSuggestions","onExchangeChange","newExchange","selectedTradingSymbols","onComplete","alteredExchange","exch","shouldDisableInput","suggestions","alteredSuggestions","suggestion","AsyncTypeahead","isSupportEquity","isSupportFuture","isSupportOption","alteredSegmentNames","segmentNames","newSegments","optionName","onChangeSegment","exchangeFromProps","shouldClearTradeSymbol","currentExchange","propsSymbol","shouldShowExchange","shouldShowSegment","renderInstruments","onRemoveInstrumentGroup","instrumentsContent","ViewInstrumentGroup","MAX_INSTRUMENT_GROUPS_ALLOWED","InstrumentGroupBuilder","onAddInstrumentGroup","titleMdSize","inputMdSize","shouldHideLabel","onChangeExchange","onClearTradeSymbolChange","onChangeInstrumentGroup","lmtReachedMsg","instrumentInputRef","onInstrumentAdd","newInstrument","newInstrumentGroup","numberOfInstrumentsInGroup","instrumentInputs","instrumentToFocus","TemplateFooter","templateConfig","templateName","timeValidate","navigateAdvanceBuilder","toAdvancedBuilder","strikeBasedValues","iteration","strikeArray","isOptionTypePE","strikeIndexes","comparisonTypesTemplates","intervalTemplates","actionTypesTemplates","optionTypesTemplates","movingAverageTypeTemplate","transactionTypesTemplate","daysTemplate","dayArray","monthly","weekly","standardDeviationTemplate","priceAndPercentTemplate","isPercent","getStopGainPercent","amount","isPrice","getStopGainPrice","handleErrors","CURRENT_ONE_MINUTE_CANDLE_NAME","current1minuteCandle","currentCandle","Select","optionItems","disabled","optionIteration","optionValue","Input","numberOrStringPropType","TemplateSentence","handleStrategyChange","strikeIndex","actiontype","isStandardDeviation","stopGainType","stopLossType","optionItemsForStrikeIndex","LabelTags","SUPER_TREND","superTrendDefaultConfig","quantConfigConversionSt","comparisonType","period","emptyConfig","transactionConfigs","optionConfigObj","setOptionConfig","modifiedOrderConfigs","Builder","propSegment","setSegment","setTemplateConfig","setIntruments","onAddInstrument","onDeleteAddedInstrument","newInstruments","colClassName","cardClassName","indexToRemove","toQuantConfig","CLOSE_PRICE_STRATEGY","movingAverageDefaultConfig","quantConfigConversionMcp","movingAverageType","futureConfig","mode","setFutureConfig","transactionIsOption","INTRADAY_STRADDLE","intradyStraddleDefaultConfig","quantConfigConversionIntraday","optionType1","optionType2","strikeIndex1","strikeIndex2","stopLoss1","stopLoss2","stopGain1","stopGain2","actiontype1","actiontype2","quantity1","quantity2","stopGain1Type","stopGain2Type","stopLoss1Type","stopLoss2Type","setOptionConfig1","setOptionConfig2","isTimeValidate","setTimeValidate","RELATIVE_STRENGTH_INDEX","rsiDefaultConfig","quantConfigConversionRsi","isTransactionOption","FUTURE_AND_OPTION","FUTURE_CONFIG","instrumentsWithWeeklyExpiry","NIFTY","hasNiftyInInstrumentGroup","hasWeeklyExpiryInstruments","noOfInstruments","instumentIndex","checkIsFutureConfigAvailable","orderconfigs","isRunEligibleForWeeklyExpiry","isFutureConfigAvailable","isEligibleForMonthly","notEligibleInstrument","IRON_FLY","ironFlyDefaultConfig","quantConfigConversionIronFly","optionType3","optionType4","standardDeviation1","standardDeviation2","stopLoss3","stopLoss4","stopGain3","stopGain4","monthWeek","actiontype3","actiontype4","standardDeviation3","standardDeviation4","quantity3","quantity4","stopLoss3Type","stopLoss4Type","stopGain3Type","stopGain4Type","hasFutureIndexInstruments","futureIndexInstruments","SUPER_TREND_AND_RSI","superTrendAndRsiDefaultConfig","quantConfigConversionStAndRsi","periodRsi","comparisonTypeRsi","templates","superTrend","movingAverageClosePrice","intradyStraddle","ironFly","rsi","superTrendAndRsi","getQuantSupportSegment","RunsTableHeader","onRunViewClick","runShowUrl","RunsTableBody","ICON","RecentRuns","containerClsName","getDifferanceUnit","differenceInDays","getDateDifferance","startDateObj","endDateObj","differenceUnit","dateDifference","MINIMIZED_SHOW_RUNS_COUNT","EXPANDED_SHOW_RUNS_COUNT","onRemoveFavorite","starredRuns","onRunsChange","newStarredRuns","renderStarredRun","starredRun","renderShowMore","onExpandChange","StarredRuns","runsCountToShow","MINIMIZED_SHOW_SIGNAL_COUNT","ReadyMadeTemplates","hasExpandedChange","readyMadeTemplates","renderTemplates","template","emptyStrategyBuilderQuantConfig","categoryName","strategyName","STOPS_KEYS","DISAPPEAR_WAINING_TIME","StrikeBasedOnSelector","onStrikeBasedOnChange","customPropConfigs","isAdvancedStrikeSelectionEnabled","shouldDisableIndicatorValues","INDICATOR_VALUE","shouldShowWarningMessage","setshouldShowWarningMessage","hoverMessageConfig","setHoverMessageConfig","filteredStrikeBasedOn","segmentBasedStrikeBasedOn","onStrikeBasedOnUpdate","newStrikeBasedOn","strikeBasedOnOptions","getDisabledExpiryCycleConfig","shouldDisableExpiryCycle","transactionMode","getDisabledMonthlyExpiryCycleConfig","hasEligibleForMonthly","isSensex","OptionsExpiryCycle","onOptionsExpiryCycleChange","disabledExpiryCycleConfig","disableMonthlyExpiryCycleConfig","renderWeeklyMonthlyBtn","TopSection","onQuantConfigChange","newOptionsExpiryCycle","StrikeIndex","onStrikeChange","isHide","isInvalidStrike","strikeBoxName","setError","formInputProps","strikeIndexOptions","onStrikeUpdate","parsedValue","strikeBoxStyle","renderStrikeSelector","OptionConfigForm","onOptionConfigsChange","STOP_GAIN","STOP_GAIN_PRICE","STOP_LOSS","STOP_LOSS_PRICE","stopGainValueKey","setStopGainValueKey","stopLossValueKey","setStopLossValueKey","onChangeOptionConfigs","newOptionConfig","indexToEdit","newOptionConfigs","editedOptionConfig","onStopGainValueTypeChange","newValueType","onStopLossValueTypeChange","renderOptionConfig","strikeIndexKey","onChangeValue","newOptionType","newEntryType","StopsValueTypeToggleBtn","OptionConfigHeader","changeOptionConfigsBasedOn","getPremiumValue","premiumValue","StrategiesList","onCurrentStrategyChange","StrategyTimeBasedSignal","onSignalTimeChange","getUpdatedQuantConfig","StrategyBuilder","setStrategies","initialTimeBasedSignal","currentStrategy","setCurrentStrategy","initialOptionConfigs","setQuantConfig","signalTiming","patriallyUpdatedQuantConfig","getOptionConfig","newStrategies","renderStrategies","newTimeBasedSignal","renderComponents","getMeetStatus","momentDate","meetingBeginningTime","meetingEndTime","formattedMeetingBeginningTime","formattedMeetingEndTime","getUpcomingEvent","meetConfigs","filterUpComingEvents","meetConfig","sortByDate","languageOptions","MeetBanner","googleMeetConfig","upComingEvent","meetLink","meetingType","isToday","isHideMeeting","renderLiveBubble","renderSessionBubble","renderIcon","MeetBanner$1","getBrokerEnabledContent","isAutomaticSupportUser","isOneClickSupportUser","getStrucutureContent","isCloseSpan","setLocalStorage","localStorage","getLocalStorage","LOCAL_STORAGE_KEY","renderEndDate","purchasableType","classnames","ExpiringSoonPurchasedItems","expiringSoonItems","setExpiringSoonItems","showExpiringSoon","setShowExpiringSoon","hideExpiringSoon","expiringItems","planActiveTillDate","filteredExpiringItems","Alert","nonBrokerTooltipMessage","AccountDetails","periodHeader","renderLiveCreditDetails","renderPlanActiveTill","planActiveTillContent","renderBrokerDetails","brokerBasedIcon","brokerContent","structuredData","renderStructuredData","redisLiveDataSubscribedChannel","redisLiveDataUnSubscribedChannel","getStrikePrice","strikePriceSplit","strikePriceInitial","strikePriceAfterDecimal","getChannelName","firstDigitIndex","indexType","indexInstrument","pairedPropTypes","TableLegRow","priceData","isShowIndividualSquareOff","renderPrice","CardLeg","isUnRealizedProfitCalculation","percentageDiff","initialValue","nextValue","currentExitPrice","percentage","renderExitSide","renderPercentage","PairedOrderData","isCardView","onUpdatePairedOrder","setPriceData","subscribeRef","onReceivedData","ComponentName","OverallTransactionProfit","overAllProfit","renderProfit","PairedOrderTable","renderPairedOrders","updatedPairedOrder","LiveRunCard","jobs","collapseId","innerWidth","isMobileView","newOrder","setNewOrder","setPairedOrders","isMaualExitPresent","updatedPairedOrders","updateOrCreateOrder","newOrUpdateorderId","updatedLastTransaction","groupedByTransactions","socketConnection","renderManualExitButton","emptyPairedOrdersRender","renderLiveBtn","renderConditionalRenderer","renderSignalText","renderRunHeader","LiveTransactions","userPermissions","runningStrategies","setRunningStrategies","getSortId","orderedStrategies","fetchOrders","lastTransactions","modifiedRuns","resultRun","renderRunningStrategies","SHOW_COUNT","DashboardDeployedStrategies","deployedStrategies","setDeployedStrategies","activeStrategy","setActiveStrategy","activeStrategies","isIndividualDeployedrun","isHideMoreStrategiesButton","showStrategies","renderShowMoreStrategiesButton","renderNoStrategiesView","isHideContent","normalContent","marketPlaceContent","isMarketPlaceNoStrategyView","actionClassName","renderHeaders","renderDeployedStrategies","renderEmptyCardToExplore","renderView","InstrumentAndTags","tagClassName","renderTags","tagMap","ProfitableValues","isShowDates","profitableValueParentClassName","deployedRunDetails","deployedUserCount","backtestStartDate","backtestEndDate","deployedRun","deployedOrderType","renderBacktestDates","renderDate","initialColumnData","PaymentButton","purchaseMonth","isPaid","razorpayButton","argsObj","SET_MAX_INSTRUMENTS_IN_GROUP","setMaxInstrumentsInGroup","setInstrumentGroups","SET_CHART_CONFIG","setChartConfig","SET_REPEAT_ORDER","setRepeatOrder","repeatOrder","SET_ORDER_CONFIGS","setOrderConfigs","SET_TRADE_TYPE","setTradeType","SET_OPTIONS_EXPIRY_CYCLE","setOptionsExpiryCycle","SET_TIME_BASED_SIGNAL","setTimeBasedSignal","SET_EXPIRY_HANDLING","setExpiryHandling","SET_QUANT_CONFIG","SET_LIMIT_TRANSACTIONS","setLimitTransactions","SET_ENTRY_ORDER_TYPE","setEntryOrderType","SET_EXIT_ORDER_TYPE","setExitOrderType","SET_PRODUCT_TYPE","setProductType","SET_OPTION_STRIKE_CALCULATION_BASED_ON","setOptionStrikeCalculationBasedOn","SET_GAP_BETWEEN_BUY_AND_SELL_ORDERS_IN_SECONDS","setGapBetweenBuyAndSellOrders","gapBetweenBuyAndSellOrdersInSeconds","STOP_AND_LIMIT_PRICE_DIFFERENCE_IN_PERCENTAGE","setStopAndLimitPriceDifference","SET_ENTRY_ORDER_MODIFICATION","setEntryOrderModification","SET_EXIT_ORDER_MODIFICATION","setExitOrderModification","OMIT_KEY_VALUES","removeKeyValues","omitKeyValues","SET_IS_PLACE_OPTIONS_ENTRY_BUY_ORDERS_FIRST","setIsPlaceOptionsEntryBuyOrdersFirst","SET_SL_ORDER_PLACE_BASED_ON_PRICE","setSlOrderPlaceBasedOnPrice","SET_LIMIT_ORDER_BUFFER_PERCENTAGE","setLimitOrderBufferPercantage","SET_IS_PLACE_STOPLOSS_ORDER_TO_BROKER","setIsPlaceStoplossOrderToBroker","SET_IS_SQUARE_OFF_TRANSACTION_IF_ENTRY_FAILED","setIsSquareOffTransactionIfEntryFailed","LimitTransactions","dispatchSetLimitTransactions","limitTransactionName","typeConversionValue","mapStateToProps","mapDispatchToProps","newMaxTransactionsPerDay","LimitTransactions$1","connect","Intraday","dispatchSetTimeBasedSignal","mis","isShowInfo","onTimeBasedSignalChange","newConfig","startTimeStyle","endTimeStyle","Intraday$2","Positional","dispatchSetExpiryHandling","autoExpiry","rollover","timePickerStyle","onExpiryTypeChange","newExpiryType","onExpiryHandlingChange","renderExpiryTypes","diaplayName","expiryTypeInput","renderDayBeforeExpiryOptions","newExitTime","newExpiry","Positional$2","ExpiryHandler","dispatchSetTradeType","positional","intraday","isInitialLoad","onTradeTypeChange","newTradeType","defaultTimeBasedSignal","defaultExpiryHandling","ExpiryHandler$1","RepeatOrder","dispatchSetRepeatOrder","newRepeatOrder","RepeatOrder$1","isTradeTypeValidate","tradeTypes","configType1","configType2","isConfigType1Present","isConfigType2Present","checkIsFutureAndOption","transactionBuilderConfigs","firstTradeType","isFutureAndOption","isFutureAndEquity","isOptionAndEquity","getTransactionMode","getFutureConfig","transactionBuilderConfig","builderFutureConfig","stopGainPrice","stopLossPrice","trailingPercentage","adjustPercentage","getEquityConfig","equityConfig","builderEquityConfig","getOptionConfigs","builderOptionConfigs","builderOptionConfig","convertToTransactionConfig","transactionConfig","newMode","getTrailingStopLossConfig","trailingStopLoss","getReExecuteConfig","getReEntryConfig","getWaitAndTradeConfig","getTransactionBuilderFutureConfigs","quantityExpression","getTransactionBuilderEquityConfigs","getTransactionBuilderOptionConfigs","transactionConfigToTransactionBuilderConfig","tranactionEquityConfig","futureAndEquity","futureAndOption","transactionFutureConfig","optionAndEquity","transactionoptionConfigs","combinedAllConfigs","isIncludesFuture","isIncludesOption","isIncludesEquity","formattedTransaction","getDuplicateConfigIds","dupconfigKey","AddOptionBtn","onAddOptionClick","TradeTypeSelector","isFutureDisable","isEquityDisable","onRemoveOption","isAdjustment","isEquityEnable","shouldRemoveEquityLegBasedOnIndexInstrument","renderOption","renderFuture","renderEquity","CallOrPutSelector","shouldDisable","Quantity","onQuantityChange","quantityName","inputBoxStyle","BuyOrSellSelector","propsTransactionType","onTransactionTypeChange","transactionTypeInputId","transactionTypeStyle","StopsInput","stopsType","stopsValue","propsValueType","onStopsValueChange","setValueType","emptyStopsValue","setValue","newStopsType","RemoveBtn","isDisable","ValuePathSelector","onValuePathChange","valuePathName","customValuePaths","valuePathOptions","renderValuePathInput","StopValueHint","arrow","EquityQuantityOrAmount","propsQuantity","propsAmount","onUpdateConfig","setConfig","activeType","setActiveType","isQuantity","inputId","onAllowOnlyNumber","onHandleChange","renderToggleBtn","TrailingStopLossInputs","trailingInput","onTrailingValueChange","trailingBtnName","TrailingStopLoss","onTransactionBuilderConfigChange","orderConfigIndex","globalReduxState","currentOrderConfig","advancedFeatures","isTrailingStopLoss","isStopLossValuePresent","isShowTrailingStopLossModal","setIsShowTrailingStopLossModal","isShowHoverMessage","setIsShowHoverMessage","trailingStopLossConfig","setTrailingStopLossConfig","setErrors","onValidate","errorConfig","renderTrailingStopLossValues","renderAddButton","addButton","renderTrailingStopLossView","partiallyUpdatedConfig","ReEntryOrReExecute","isEnabledRetryOrReExecute","propsActiveType","activeCount","onHandleActiveCount","renderNode","WaitAndTrade","WAIT_UNTIL_PREMIUM_TO_DECREASE_IN_PERCENTAGE","WAIT_UNTIL_PREMIUM_TO_INCREASE_IN_PERCENTAGE","isWaitAndTrade","waitValue","setWaitValue","isShowWaitAndTradeForBackTest","WaitAndTrade$3","TransactionBuilderForm","onTransactionBuilderChange","optionConfigsValidator","isDisableRemoveBtn","futureConfigValidator","equityConfigValidator","isEquity","isFuture","getValidator","partiallyNewConfig","renderLot","OptionSubStrategySelector","optionSubStrategy","optionStrategy","onStrategyUpdate","onSubStrategyChange","newSubStrategy","renderSubStrategyOptions","subStrategy","subStrategyKey","OptionStrategySelector","onStrategyChange","newStrategy","renderStrategyOptions","dropDownStyle","EQUITY_PRICE","TableHeader","isIndicatorValue","isEquityPrice","advancedThs","renderAdvancedTh","trailingStopLossBasedReset","newTransactionConfigs","getTrailStopLossResetConfig","reEntryAndReExecuteBasedReset","getReEntryAndReExecuteResetConfig","waitAndTradeReset","adjustmentActionConfigs","getSanitizedConfigs","getWaitAndTradeResetConfig","adjustmentActionConfig","isEligibleToMoveToCostTransactionConfigs","isCeAndStopLossPresent","isPeAndStopLossPresent","getSignalConfigsForAdjustment","buildAdjustmentTransactionsConfigs","transactionConfigIndex","moveToCostIndexes","timesOfAdjustmentConfig","emptyAdjustmentActionConfig","adjustConfig","moveToCostIndex","addAdjustmentConfigsBasedOnParentLegs","onChangeCount","reAssignedCount","optionLeftOperand","addAdjustmentBasedOnMoveToCost","aac","asc","initialCount","adjustmentSignalConfigs","ceIndexes","ceIndex","peIndexes","peIndex","optionSignalConfigs","optionAdjustmentConfigs","reEntryIndex","equityLeftOperand","futureLeftOperand","addAdjustmentBasedOnReEntry","equitySignalConfigs","equityAdjustmentConfigs","futureSignalConfigs","futureAdjustmentConfigs","reExecuteIndex","addAdjustmentBasedOnReExecute","getAdjustmentSignalConfigsWithoutAutoAdjustment","adjustmentSignalConfig","filteredAdjustmentSignalConfig","getAdjustmentActionConfigsWithoutAutoAdjustment","filteredAdjustmentActionConfig","onConfigureAutoAdjustment","featureConfigs","isPermissionToMoveToCost","isPermissionToEnableReEntry","isPermissionToEnableReExecute","filteredAdjustmentSignalConfigs","filteredAdjustmentActionConfigs","newAdjustmentActionConfigs","newAdjustmentSignalConfigs","reEntryasc","reEntryaac","reEntryReAssignedCount","reExecuteasc","reExecuteaac","reExecuteReAssignedCount","moveToCostasc","moveToCostaac","moveToCostReAssignedCount","AdvancedFeaturesEnablement","noOfInstrumentsInGroup","isShowWaitAndTrade","getSanitizedOrderConfig","alteredOrderConfig","onUpdateOrderConfigs","alteredAdvancedFeatures","newOrderConfigs","newCurrentOrderConfig","reEntryAndReExecuteLabel","mtcContent","reEntryReExecuteInfoContent","renderFeatureConfig","isPermissionToShow","updateValues","isdisabled","infoIcon","NewTransactionBuilder","onTransactionConfigChange","transactionConfigsValidator","existingLegConfigs","isAdjustmentBasedWarningLeg","isAdjustmentBasedDisabledAddLegButton","setTransactionBuilderConfigs","duplicateBuilderConfigIds","handleStrikeBasedOn","newTransactionBuilderConfig","updateTransactionConfig","newTransactionBuilderConfigs","newTransactionConfig","onTransactionBuilderConfigsChange","onAddOption","renderTransactionForm","tranIdx","isShowOptionDetails","renderOptionAndStrikes","warningMessage","TransactionsBuilder","onTransactionConfigsChange","transactionConfigsErrors","onTransactionConfigUpdate","sanitizedOutputSchema","cpcOutputSchema","renderTransactionConfig","mapStatetoProps","mapDispatchToProp","newOptionStrikeCalculationBasedOn","TransactionsBuilderWrapper","validatorErrors","isInitailLoad","RemoveSignalConfig","onRemoveSignalConfig","onRemoveConditionClick","updatedSignalConfigs","signalConfigIndex","ConditionOperator","onUpdateSignalConfig","logicalOperatorValidator","radioBtnName","renderConditionRadioBtns","sanitizeOutputSchema","quantIndicatorAndSignal","getValueString","isConstruct","resultArray","changeName","returnString","comparableName","configType","isChange","returnChange","updatedPipeConfigs","updatedValuePaths","getDropdownOptions","TimeOfDay","onRightOperandChange","onOperatorChange","operatorValidator","isHistoricRun","operatorFieldName","onChangeOperator","newOperator","operandStyle","rightOperandOptions","operatorOptions","selectedRightOperand","operatorStyle","operatorsDropDownOptions","RIGHT_OPERAND","sanitizeSignalConfigSchema","isAdjustmentSignal","typeOfOperand","nameSplit","OperatorAndRightOperand","signalValidator","CustomRightOperand","rightOperandTypeHeadName","onCompleteRightOperand","onSelectRightOperand","selectedItem","renderOperator","dropDowns","renderRightOperand","selectedOperand","inputStyle","rightOperandValidator","LeftOperand","leftOperandValidator","leftOperandName","onLeftOperandChange","leftOperandsOptions","SignalConfigBuilder","shouldShowConditionOperator","onSignalConfigChange","partialNewConfig","AddSignalConfig","onAddSignalConfig","SignalConfigsBuilder","onSignalConfigsChange","hasMoreThanOneSignalConfig","newSignalConfig","newSignalConfigs","renderSignalConfigBuilder","signalConditionClassName","SignalConfigsBuilderWrapper","orderConfigsValidators","shouldRenderModal","setShouldRenderModal","initialSignalConfigs","stateSignalConfigs","setStateSignalConfigs","onSignalSave","updateConfig","SignalConfigsBuilderWrapper$1","isIncludeEquityOrFuture","getRemoveConfigs","returnArray","getPipeName","onAddNewConfigs","isFutureClose","validPipeConfig","isValuePathAlreadyPresent","month1Price","newCurrentCandlePipeConfig","updatedCurrentCandlePipeConfig","getValidatedOperand","getSignalSuggestionConfig","leftPipeConfigs","rightPipeConfigs","SuggestionSignals","dispatchSetPipeConfigs","removeConfigs","removeConfigSentence","removeConfig","operandConfig","operandLabel","updatedSignalFields","SuggestionSignals$1","AdjustmentSignalConfig","dispatchSetOrderConfigs","adjustmentSignalConfigIndex","updatedConfig","updatedOrderConfig","newOrderConfig","updatedAdjustmentSignalConfigs","AdjustmentSignalConfig$1","ExistingLegConfigs","actionConfig","onUpdateAdjustmentActionConfigs","isDisabledModifyBtn","isShowWarning","actionOptionConfigs","isOptionPresent","isFuturePresent","isEquityPresent","optionConfigIndexes","sanitizedExistingLegTypes","onUpdateExistingLegActions","existingLegAction","renderSelectBox","selectClasses","finalValue","renderExistingLegAction","legType","selectedLegType","selectedLegTypeArray","selectedLegAction","selectedLegActionArray","selectedLegOptionConfigIndex","selectedLegOptionConfigIndexArray","AdjustmentActionConfig","adjustmentActionConfigIndex","newAdjustmentConfig","orderConfigId","updatedAdjustmentActionConfigs","adjustmentActioncg","adjustmentId","actionConfigIndex","newActionConfig","renderActionConfig","AdjustmentActionConfig$1","Adjustments","adjustmentSignalFields","adjustmentActionFields","withoutAutoAdjustmentSignalConfigs","onAddAdjustment","isAppendOld","onDeleteAdjustmentSignal","adjustmentSignalField","adjustmentActionField","renderAdjustment","Adjustments$1","AdjustmentWrapper","globalState","isPermissionAddManualAdjustment","OrderConfigBuilder","orderConfigErrors","exitSignalConfigs","renderEntrySignal","renderExitSignal","OrderConfigBuilder$1","AddOrderConfig","onAddOrderConfig","AddOrderConfig$1","RemoveOrderConfig","onRemoveOrderConfig","RemoveOrderConfig$1","getOrderConfigsErrors","expiryConfigs","OrderConfigsBuilder","orderConfigsErrors","renderOrderConfig","renderOrderConfigs","addOrderConfigClassName","OrderConfigsBuilder$1","ChartPattern","dispatchSetChartPattern","boxUnitSize","handleChartConfigChange","newChartConfig","renderBoxConfig","onBoxValueChange","chartTypeOptions","chartPattern","newChartPattern","ChartPattern$1","currentErrorRef","getPropertyName","InstrumentGroupInput","dispatchSetInstrumentGroups","dispatchSetMaxInstrumentsInGroup","instrumentGroupsErrors","newInstrumentGroups","_instrumentGroup","onMaxInstrumentsInGroupChange","newGroupingOption","toggleBtns","newMaxInstrumentsInGroup","InstrumentGroupInput$1","getLabelContent","labelArray","valuePathsLabel","fieldContent","valueContent","ViewPipeConfig","renderableConfig","isDisabledPipeName","isPresent","signalArray","updateSignalNameBasedOnPipeName","oldPipeConfig","oldName","oldPipeType","newPipeType","isPipeDiffer","updatedOrderConfigs","updatedArray","newSignalArray","leftOperandFirstName","rightOperandFirstName","isChangeLeftOperand","isChangeRightOperand","getDropDownFieldValues","timeFrame","configOptions","PipesList","pipeConfigIndex","onEditPipe","onRemovePipe","Hints","splittedIndicatorType","onUpdatePipeConfigBasedOnIndicator","indicatorNameChange","indicatorTypeArray","indicatorName","mandatoryMultipleInstrumentForPipes","isInvalidForInstrument","hasDefaultValuePaths","validateCustomScript","previousPipeConfigs","OUTPUT_SCHEMA_VALIDATION","renderScriptError","scriptError","CustomScriptConfigForm","onConfigItemUpdate","scriptValidation","success","keydownHandler","PipeForm","setShouldConfirmClose","reset","indicatorTypeRef","onPipeConfigUpdate","updatedValue","onUpdateConfigInput","isUpdateNormally","getPipeNameValidator","preOccupiedPipeNames","getValuePathValidator","valuePathValidator","minLength","newValuePath","renderValuePathsOptions","isNonEditableValuePaths","selectedArray","renderAccuracy","accuracy","accuracyValues","accuracyValuesStyle","accuracyValue","renderDropDownFields","renderCandleInterval","candleIntervalStyle","candleIntervalOptions","displayValue","renderPipeTypes","onSearchSelect","newIndicatorType","renderPipeName","pipeNameStyle","renderConfigField","configFieldContent","errorClass","renderConfigFields","configFieldsContent","configLabel","PipeForm$1","suggestionPipes","suggestionCandleConfig","lastAddedConfig","suggestionPipeType","currentCandleConfig","currentCandleValueConfig","currentCandleName","currentCandleType","currentCandlesInPipeConfig","pipeCandleInterval","rightOperandSuggestionName","lastPipeName","getIndicatorBasedOnSignalConfig","lastAddedPipeConfig","matchingPipeInSchema","PipeSuggestionAdapter","onUpdatePipeConfigs","onEmptyLastAddedPipeConfig","onUpdateOrderConfig","suggestionConfig","suggestionName","handleUpdateOrderConfig","PipeSuggestionAdapter$1","Pipes","dispatchSetQuantConfig","formTitle","isInEditMode","pipesValidators","pipeErrors","shouldRenderPipeForm","currentIndicatorType","PipesInput","RollupType","isContinuousRollup","onRollUpTypeChange","newRollUp","RollupType$1","StopLimitPriceDifferenceInPercentage","stopAndLimitPrice","setStopAndLimitPrice","GapBetweenBuyAndSellOrdersInSeconds","gapBetweenBuyAndSell","getBuySellDiffAndStopLossDiffErrors","BuySellTimeAndStopLossDiff","dispatchWaitingTimeBetweenBuyAndSellOrdersInSeconds","dispatchStopAndLimitPriceDifferenceInPercentage","newDifference","newWaitingTimeBetween","BuySellTimeAndStopLossDiff$1","overallStopLoss","overallStopGain","DISPLAY_NAME","StopLossOrStopGainInput","dispatchQuantConfig","isCurrentValueInPrice","currentConfigValue","onStopsValueTypeChange","isInputDisabled","inputBox","dispatchStateToProps","StopLossOrStopGainInput$1","OverallStopsInput","StopsBuilder","renderErrorMessage","dispatchSetProductType","ProductTypeSelector","newProductType","ProductType$1","OrderTypeInput","setShouldShowWarningMessage","renderOrderType","renderOrderTypeInput","ModifyOrderSelector","ModifyOrders","actionError","actionsInSecondsError","actionErrorMessage","actionInSecondsMessage","renderSelector","OrderTypeConfiguration","onChangeEntryOrderType","onChangeExitOrderType","isShowExitOrderType","isShowEntryOrderType","onChangeEntryOrderModification","onChangeExitOrderMofication","renderEntryModification","entryAction","entryActionTimeInSeconds","entryActionError","entryActionInSecondsError","renderExitModification","exitAction","exitActionTimeInSeconds","exitActionError","exitActionInSecondsError","getErrors","dispatchSetEntryOrderType","dispatchSetExitOrderType","dispatchEntryOrderModification","dispatchExitOrderModification","newEntryOrderType","newExitOrderType","newEntryOrderModification","newExitOrderModification","OrderType$1","SELL","isEntryBuyOptionsOrdersFirst","optionBuys","optionSells","optionTypeSell","filteredTransactionConfigs","isShowEntryBuyOptionsOrdersFirst","isShowBasedOnAdjustment","isCloseBasedShow","isTransactionHaveMoreThanOneLeg","filteredconfigs","PlaceOptionsEntryBuyOrdersFirst","isPlaceOptionsEntryBuyOrderFirst","handleChange","OptionsEntryBuyOrders","dispatchIsPlaceOptionsEntryBuyOrdersFirst","OptionsEntryBuyOrders$1","SlOrderBasedOnPriceSelector","SlOrderBasedOnPriceWrapper","dispatchSlOrderPlaceBasedOnPrice","SlOrderBasedOnPrice$1","BufferPercentage","setPercentage","LimitOrderBufferPercentage","dispatchLimitOrderBufferPercantage","newPer","LimitOrderBufferPercentage$1","PlaceStoplossOrderToBrokerField","dispatchIsPlaceStoplossOrderToBroker","PlaceStoplossOrderToBroker$1","SquareOffTransactionIfEntryFailed","dispatchIsSquareOffTransactionIfEntryFailed","SquareOffEntireTransactionIfEntryFailed$1","ProfitAndOrdersComponents","dispatchRemoveKeyValues","keyValues","ProfitAndOrdersComponents$1","EXECUTION_TYPES","AdvancedOptions","adjustmentExecutionTypeAdvanceAccess","isInitiaload","defaultExecutionType","isDelaySecondsAvailable","isDelayBy","executionTypeErrorId","formState","onExecutionTypeChange","newExecutionType","onChangeDelay","newDelay","renderToggleButton","QuantBuilder$1","QuantOrderType","currentOrderType","onOrderTypeChange","orderTypes","isShowOrderTypeLabel","orderTypeParentClassName","automaticOrder","oneClickOrder","paperOrder","getOrderTypePermissions","disabledMessage","FreeTrialInfo","initialFreeTrialDays","isStrategyConfirmationModel","StrategyConfirmationModal","onCreateRun","onChangeSelectedOrderType","isAgreed","DeployStrategyButton","isStrategyDetailView","setSelectedOrderType","isDeployedStrategy","onDeployStrategy","onCreateStrategyAccess","onUpdateStrategyAccess","strategyParams","onGetStrategyAccessBasedOnStrategyId","RequestTypeButton","propsStrategy","setStrategy","onRequest","access","getButtonName","AccessTill","isFreeTrial","StrategyFreeButton","Footer","renderConditionBasedButton","StrategyCard","strategyUrl","strategyParentClassName","StrategyCard$1","DashboardMarketPlaceStrategies","renderStrategy","renderStrategyContainer","ReadMore","textCount","isReadMore","setIsReadMore","toggleReadMore","isShowReadMore","ShowCaseRunCard","cloneUrl","executeRun","onHandleDefaultFolderAndExecuteRun","MINIMIZED_SHOW_COUNT","ShowCaseRunCards","showcasedRuns","renderShowCaseRun","GoToMarketPlaceBanner","marketplaceBannerClassNames","GoToCreateStrategyBanner","createStrategyBannerClassNames","Home","historicRuns","liveRuns","isShowMarketplaceInDashboard","activeTab","setActiveTab","homeTabs","renderHomeTabs","returnComponent","UsLogin","setSessionStorage","sessionStorage","getSessionStorage","RenderInfoMessage","infoType","renderBrokerLoginRequiredInfo","renderBacktestPlanInfo","xtsImageSource","brokerStructuredData","loginInModal","AngelOneLogin","signUpFormProps","socialMedias","signInProps","SignIn","renderFormField","fieldProps","transform","processNodes","SignUp","propsRefrredBy","renderFormInputs","formProps","handleSignUp","form","passwordConfirmation","socialProps","reDirectPage","reDirectData","isRedirectToCallbackPath","getBrokerImage","imageWrapper","imageSource","simpleLoginBrokers","shouldHideapisecret","getBrokerNotes","notesContent","IciciDirect","zerodhaSupportLink","step5Content","step7Content","Zerodha","Zebull","Flattrade","Iifl","Upstox","Paytm","KotakNeo","Sharekhan","PhilipCapital","CopyTextButton","onCopy","Hdfcsky","InvestRight","Rupeezy","Fyers","BrokerContent","btnTitle","SecretKeyAuthentication","apiKey","setApiKey","apiSecret","setApiSecret","textFoucs","shouldHideApiSecret","onNavigate","BrokerSimpleLogin","currentBrokerName","handleClick","isValidUser","BrokerIdAuthentication","isOpenBrokerIdAuthenticationModal","setIsOpenBrokerIdAuthenticationModal","brokerDetails","setBrokerDetails","setIsUserValid","isOpenSecretKeyAuthenticationModal","setIsOpenSecretKeyAuthenticationModal","setupGuideOnly","setSetupGuideOnly","isSimpleLoginEnabled","textFocus","navigateBrokerModal","isChangeApiDetails","brokerApiCredientals","renderModalContent","labelContent","UserInput","Bigul","setConfigs","clientId","isSendOtpClicked","setIsSendOtpClicked","isClientAndPasswordPresent","setErrorMessage","onSendOtp","onHandleConfig","Xts","setBroker","xtsSupportedBrokers","brokerConfig","GoodwillDealer","dealerId","setDealerId","dealerPassword","setDealerPassword","setClientId","Finvasia","setpassword","totp","setTotp","secretKey","isValidateClientIdClicked","setIsValidateClientIdClicked","showApiKeyField","setShowApiKeyField","showSecretKeyField","setShowSecretKeyField","showGuideSteps","setShowGuideSteps","onValidateClientId","onLogin","showCredentials","setShowCredentials","Bnrathi","Tradeplus","SkyBroking","setToken","mobileNumber","consumerKey","consumerSecret","stepOne","setStepOne","showApiDetailsField","setShowApiDetailsField","mandatoryDetails","setMandatoryDetails","onValidateOTP","onSaveAction","btnLabel","renderMobileNumberField","renderApiCredentials","AcAgarwal","Samco","yob","IndiraSecurities","JainamBroking","userType","renderUserType","kasat","FairInvest","setIsValidUser","checkedApiKey","setCheckedApiKey","checkExistingUser","authenticateUser","Profitmart","TradeSmart","AuthenticationModal","Kasat","AlicBlueLogin","PaytmLogin","currentBroker","setCurrentBroker","DhanLogin","DhaniStocksLogin","GoodWillLogin","allowGoodwillDealer","renderBrokerImage","renderGoodwillDefaultLoginBtn","renderGoodwillDealerLoginBtn","IciciDirectLogin","NuvamaLogin","BigulLogin","IiflLogin","FlattradeLogin","FinvasiaLogin","RupeezyLogin","EntichMoneyLogin","BrokerAccountLoginModal","brokersConfig","onSetBroker","setFilteredBrokers","onSearch","filteredBrokersBySearchValue","renderFilter","renderBroker","brokerClassName","imagePath","imageClassName","KotakNeoLogin","SharekhanLogin","DROPDOWN_SHOW_EVENT","BrokerSelectionDropDown","selectedBroker","onHandleSelectedBroker","searchBroker","setSearchBroker","dropdownRef","onDropdownShow","selectedBrokerConfig","selectedBrokerName","filteredBrokerStructuredData","sortedBrokerStructuredData","renderDropDownItem","PhilipCapitalLogin","SamcoLogin","UpstoxLogin","InvestRightLogin","HdfcSky","GrowwLogin","FivepaisaLogin","JainamLiteLogin","StoxkartLogin","ZerodhaLogin","ZebuLogin","FyersLogin","ENTRY_MODES","ENTRY_COMPONENTS","CURRENT_MODE","UserAuth","supportedBrokers","allowAlternateLoginMode","defaultMode","currentEntryMode","setCurrentEntryMode","CurrentEntryComponent","setSelectedBroker","showBrokersLoginModal","setShowBrokersLoginModal","isPrimaryDomain","isAllowEmailLoginPlanPurchase","isBacktestPlan","onHandleCurrentEntryMode","renderEntryTabItem","currentComponentDivClassName","renderAlternateLoginContent","sanitizedBrokerStructuredData","onHandleAuthMode","IndiaLogin","EnrichMoneyLogin","locale","HomeSection","isShowBackTestRemovedSubMessage","usersCountMessage","defaultSubMessage","backestRemovedSubMessage","onOpenDropDown","AboutSection","liveTypesClassName","FeaturesSection","RenderQAndA","question","expanded","Faq","ContactSection","blogs","renderBlogsContent","LandingPage","MessageToast","setUserMessagesLocalStorage","userMessages","keysInLocalStorage","getUnreadMessages","isShowEveryDay","messageReadAt","onUserMessageClose","messageIdToClose","unreadMessages","UserMessageToast","unReadMessges","setUnreadMessages","renderToastMessage","initializeConfettiAnimationParty","g","y","S","r","E","z","L","M","C","T","w","FireworksBlast","intensity","canvasRef","fireworks","Fireworks","UserMessageModal","modalMessages","unReadMessage","isShowFireBlast","filterByDomain","showTo","ScriptLoad","scripts","scriptTags","scriptContent","scriptTag","UserMessageBanner","renderBannerMessage","isShowBeforeLoggedIn","isShowBeforeSignedInBasedOnFlag","isInValidCase","BANNERS","MODALS","TOASTS","UserMessages","Content","paraContent","profitLossContent","cookieContent","tradeMarkContent","termsForFintech","productName","strategyDomainContent","TermsAndConditions","isTermsAndConditionsAgreed","hasAgreeTermsAndConditions","renderBackButton","styleClass","aTagClassName","ContentComponent","StrategyDomainContent","ShowCase","Summary","isShare","FilteredTitles","filteredTitles","onHandleFilteredTitles","renderFilteredTitle","filteredTitle","renderClearAll","videoLanguages","LanguageTab","activeLanguage","onChangeLanguage","renderLanguage","language","navLinkClassName","VIDEO_SUBSTRING_ID","VideosDetails","videos","selectedVideoId","currentVideoDetails","setCurrentVideoDetails","selectedVideo","videoLink","alteredLink","renderVideoImage","videoUniqId","renderVideoModal","renderVideoDetails","renderVideo","video","VideoTitleOptionsAndSeachBar","filteredVideos","currentSearchTitle","setCurrentSearchTitle","filteredTitleBasedOnUserSearch","isTitleAlreadyFiltered","renderSeachBar","renderTitles","renderFilterButton","DEFAULT_LANGUAGE","VideoPage","selectedLanguage","setActiveLanguage","setFilteredVideos","setFilteredTitles","languageBasedVideos","filterTitleBasedVideos","onCreateNewCallbackRequest","HelpLineInput","isTextArea","mailformat","messageContent","HelpLine","userPhoneNumber","setIsShow","setEmail","setDescription","setLanguage","isOpenToolTip","setIsOpenToolTip","callbackRef","handleDocumentClick","isClicked","isPopUpOpen","onSendDetails","renderCallBackDetails","updateSiteConfig","Details","onDeleteMeetConfig","keyIndex","MeetingDetails","meetconfigs","renderMeet","meetconfig","Meeting","setMeetConfigs","deletekey","newMeetConfig","onAddNewMeetConfig","updateKey","updateSiteConfigDetails","FilterHeader","onUpdateFilterConfigs","onUpdateModal","setCount","alteredCount","filterConfig","SegmentFilter","onHandleSegments","MarginFilter","onHandleMargin","InstrumentFilter","instrumentOptions","renderInstrumentOption","onHandleInstrument","TagFilter","renderTagOptions","PremiumFilter","onHandleOption","AuthorNameFilter","renderAuthorName","onHandleAuthorNames","StrategyFilters","showModal","structuredFilters","renderStructedFilters","structedFilter","showItem","renderFilters","StrategiesFilterNavTab","currentActiveStrategyType","onhandleCurrentActiveStrategyType","typesOfStrategies","onResetPageIndex","renderTypes","StrategyBanner","TIME_RANGE","StrategyErrorMessage","setIsOpen","handleOpenModal","localStorageTime","StrategieFooter","handleCurrentPageIndex","strategiesPerPage","STRATEGIES_PER_PAGE","Strategies","setTypesOfStrategies","setCurrentActiveStrategyType","pg","filteredStrategies","sortByPriority","strategyArray","setStrategiesPerPage","strategiesToDisplay","isShowEmptyStrategy","handleTypeOfStrategies","renderClearFilterButton","isMarketPlaceOnlyDomain","StrategyDeployedRunDetails","deployedRunJobs","deployedRunJobIds","deployedRunId","renderRunButtons","StrategyBacktestRunDetails","shouldShowBacktest","setShouldShowBacktest","onCreateOrUpdateStrategyAccess","backtestJobs","strategyAccessId","backtestJobIds","backtestRunId","onHandleClick","renderViewBacktestButton","renderBacktest","strategyClassName","StrategyLiveRunDetails","liveJobs","liveRun","liveJobIds","liveRunId","ReactDataTable","globalFilter","pageIndex","pageSize","setGlobalFilter","pageCount","gotoPage","setPageSize","useGlobalFilter","useSortBy","usePagination","sortArrow","currentPageSize","StrategyAccessDetails","accessDetails","strategyAccessDetails","setStrategyAccessDetails","userDetails","brokerEmail","onUpdateStatus","getFormattedData","strateyAccessDetail","isAfter4PM","isAllowedRejectTime","isShowApproveBtn","isShowRejectBtn","showInfoMsgAboutRejectBtn","IndividualStrategyDetails","isShowCampaign","strategyCardClassName","urlPath","fetchStrategyTransactions","fetchTransactionUsers","fetchTransactionLegsForUser","oneOfType","BreadCrumb","particularTransactionDetailsForAllUsers","individualUserTransactionLegs","onTransactionsClick","onUsersClick","onLegsClick","isParticularTransactionDetailsForAllUsers","isIndividualUserTransactionLegs","strategyTransactionHeaders","particularTransactionDetailsForAllUsersHeaders","individualUserTransactionLegsHeaders","renderTable","StrategyAnalytics","strategyTransactions","setStrategyTransactions","setParticularTransactionDetailsForAllUsers","setIndividualUserTransactionLegs","fetchData","setFetchData","handleTransactionsClick","handleUsersClick","handleLegsClick","formatEmptyvalues","filler","formatdate","formatPrice","formatSec","statusIcon","formatOrderStatusByIcon","renderUserTransactionLeg","alteredData","isPaperRun","getTransactionUser","minQuantmanBrokerDelay","maxQuantmanBrokerDelay","avgQuantmanBrokerDelay","minBrokerMarketDelay","maxBrokerMarketDelay","avgBrokerMarketDelay","maxSlippage","getStrategyTransactions","renderActiveTable","Strategy","activeStrategyType","setActiveStrategyType","SA_USER_FLAGS","isOwnerStrategy","goToMarkerPlaceUrl","isStaff","isStaffOrAdmin","isPermitToShow","renderCategories","renderCatrgoryBasedRuns","V2Dashboard","stuckedJobs","setStuckedJobs","totalV2LiveJobsCountInFrontend","setTotalV2LiveJobsCountInFrontend","totalV2StuckedJobsCountInEngine","setTotalV2StuckedJobsCountInEngine","engineJobsCount","frontendJobsCount","stuckedJobDetails","V2JobDetails","setJobId","setJobDetails","errorMsg","setErrorMsg","getJobDetails","V2JobActions","setJobIds","onAction","jobIdsArray","AdminV2JobsDetailsAndActions","tabItems","handleTabClick","tabValue","renderActiveTab","FlashNotice","alert","notice","ToastContainer","LoginButton","pathArray","returnToPath","signInPath","returnToParam","SelectRuns","checkedRunIds","handleCheckboxChange","rowFunc","OptimizeBy","handleOptimizeBy","onClickRefineBtn","optimizeValues","NumerousRuns","initialRunIds","setOptimizeBy","runsWithJobs","setRunsWithJobs","numerousRuns","prevCheckedRunIds","handleOptimizedRunIds","optimizedRunIds","filterCheckedJobs","renderErrorMessages","allRuns","isRunsAvailable","renderOptimizeBy","StrategyAccessDetailsAdminPanel","strategyAccesses","setStrategyAccesses","renderStrategyAccesses","StrategyAdminPanel","liveStatus","updatedAt","fetchLiveTicks","tickParams","fetchTradingSymbolTicks","fetchHistoricAdminTicks","fetchRocksDbData","Params","LiveDataAdminPanel","liveData","setLiveData","setInstruments","tradeSymbols","setTradingSymbols","getLiveData","getTradingSymbolTicks","dataSet","renderCol","renderInstrumentIndividualDetails","instrumentIndividualDetails","instrumentName","renderMarketData","dataFormat","renderLiveDataTable","RocksDBDataAdminPanel","rocksDBData","setRocksDBData","setTradingSymbol","setGranularity","getRocksDBData","renderTradingSymbolBadge","ts","renderInputField","renderDataTable","PaginationFooter","total","perPage","totalLength","historicDefaultConfig","DETAILS_PER_PAGE","HistoricDataAdminPanel","historicData","setHistoricData","activeFilter","setActiveFilter","setFilterConfig","filteredData","setFilteredData","isIncludesOptionTicks","detailsPerPage","detailsToDisplay","getAdminHistoricTicks","instrumentSplits","ticksSet","ticks","renderInstrument","renderCheckBox","renderViewHistoricData","tick","onCreateNewCampaignRegistration","onGetCampaign","CampaignRegistration","campaignId","campaignDetails","setCampaignDetails","renderCampaignDetails","campaignName","campaignHtml","defaultUpgradePlanPropTypes","Plan","currentUpgradePlan","targetPlan","CurrentAndUpgradePlanDetail","currentPlan","isUpgradePlan","UpgradePaymentDetails","upgradeDetails","upgradeAmount","reducedUpgradeAmount","UpgradePlan","upgradeConfigs","setDiscountPercentage","modifiedUpgradeConfigs","setCurrentUpgradePlan","couponDiscountPercentage","updatedCurrentUpgradedPlan","onUpgrade","renderUpgradeToTargetPlan","ChartJsGraph","HeaderDetails","userAndStrategyDetails","groupedByOrdersDates","chartDataSetsForOrders","groupedByOrdersDate","chartDataSetsForStrategies","getDisplayRows","perIndex","totalRows","range","ordersToDisplay","transctionType","paramPageIndex","UserStrategyDetails","userAndStrategyDetail","onUpdateDetail","onUpdateUserAndStrategyDetail","resStrategyAccess","updatedStrategyAccess","onCreateNewAccess","renderStrategyAccessBasedOnStrategy","accessObj","sId","renderRunDetails","runObj","isStarted","onRestartRun","TableBody","propsUserAndStrategyDetail","setUserAndStrategyDetail","renderPermittedStrategyNames","updatedDetail","userAndStrategyDetailsToDisplay","renderUserAndStrategyDetail","OrderAndUserDetails","tabs","renderTab","PrivateGroupMarketPlaceTab","privateMarketPlaceLocalStorageKey","lsValue","setLsValue","storageValue","navigateUrl","referralURL","messageAndReferralURL","whatsappURL","facebookURL","twitterURL","telegramURL","renderSocial","socialName","socialImage","socialUrl","ReferAndEarn","copyBtnText","setCopyBtnText","onCopyReferralLink","tempInput","emailIdValidator","EmailIdForm","onEmailIdSubmit","onEmailIdChange","MandatoryEmailId","redirectPath","setEmailId","TelegramPopUp","lastModalDate","storedDate","lastWeek","handleCloseModal","LANGUAGES","Preferences","selectedLanguages","setSelectedLanguages","getTips","Media","alt","MultiMedia","TIP_LOCAL_STORAGE_KEY","useTipsLocalStorage","Video","allow","Tips","tips","setTips","activeIndex","setActiveIndex","tip","onChangeTip","isBefore","renderTip","leftIconClassName","rightIconClassName","modalTitle","ReferralCollector","setReferralCode","invalidMessage","setInvalidMessage","redirectPage","onUpdateReferralCode","getLinkedUsers","getPurchaseReport","onSubmitFilter","fromDate","setFromDate","setToDate","LinkedUserList","linkedUsers","summaryShape","infoCard","reportConfig","startCase","Dashboard","setLinkedUsers","setSummary","fetchFunction","tabId","filterFromDate","filterToDate","tabData","Referrer","isDashboard","SubmitButton","onError","firstForceScrollElemId","forceScrollTo","firstForceScollElem","RunFormInstructions","onChangeUiBehaviourFlags","onChangeRunType","isGloballyEnabled","isWaitAndTradeEnabledAlready","newUiBehaviourFlags","RunType","isHistoricRunDisabled","isLiveRunDisabled","onUpdateRunType","newRunType","isHistoric","isNonBrokerUser","historicBtnClassName","liveClassName","GranularitySelector","onChangeGranularity","newGranularity","ORDER_EXECUTION_VERSION","OrderExecutionVersionSelector","orderExecutionVersion","onChangeVersion","newVersion","instrumentsWithStartedConfigs","isPresentExpiryCycle","expiryCycle","pipeIntents","adjusments","getValidationErrorInstrumenWithStartDate","quantStartDate","flattenInstrument","instrumentValidationObj","instrumentStartDate","expiryCycles","isBeforeDate","START_DATE","END_DATE","HistoricDateRangePicker","isEndDate","calendarStartDate","calendarEndDate","validationObj","handleDateUpdate","getDatePickerProps","MaxStartDate","onStartDateChange","newStartDate","newEndDate","RunFormHeader","shouldShowGranularity","PropTyps","RenderExecutionType","isPermissionToChoose","selectClassNames","renderSelect","renderHoverMessage","RenderDelayInput","AdjustmentOptions","onUpdateAdjustmentOptions","newAdjustmentOptions","AdjustmentOptions$1","getIntentDependencies","intentDependencies","setDependent","processOperand","processAdjustmentIntents","filteredAdjustments","adjustmentIntent","processAdjustmentSignals","getReplacedLabel","intentIdsMappedNewIds","getClonedCase","cloneCase","entrySignals","intentIds","lastestLabelId","newEntryIntents","newEntrySignals","newAdjustment","newCloneCase","isPermissionToAddManualAdjustment","useCasesError","adjustmentsError","errorCaseIndex","useCases","activeCaseIndex","setActiveCaseIndex","isMaximumCasesExceeded","isShowAddCaseHoverMessage","setIsShowAddCaseHoverMessage","isSimpleMode","onAddCase","onDeleteCase","onCloneCase","newClonedCases","useOutputSchema","isEligibleForMoveToCost","stopLossValue","withoutIntentIds","toRemoveIntentIds","newQuickAdjustments","removeOpenIntentsReferences","useCase","exitSignals","adjustmentPermissionId","adjustmentPermissionErrorMessage","isValidToEnableMoveToCost","onUpdateCase","newCaseConfig","removedOpenIntentIds","onUpdateEntrySignals","newSignals","onUpdateExitSignals","onModifyCaseAndUiConfigsBasedOnNewIntents","newIntens","isValidForMoveToCost","onUpdateIntents","onUpdateUiConfigs","onUpdateAdjustmentSignals","onUpdateAdjustmentIntents","onDeleteAdjustment","getModifyLegsTargetSchema","useSignalsForm","propsSignals","onUpdateSignals","initialSignals","setSignals","newSignal","ConditionalOperator","onUpdateConditionalOperator","onChangeLeftOperand","entrySignal","typeaheadRef","selectedSchema","Operator","leftOperandSchema","renderOperatorOption","RightOperand","suggestionSchema","rightOperandOutputSchema","Signal","shouldShowConditionalOperator","onUpdateSignal","onDeleteSignal","isShowDeleteBtn","trackAndUpdate","callbackFn","onAddNewSignal","SignalsForm","onSaveForm","onDeleteEntirely","signalsRef","signalLabels","Signals","filteredOutputSchema","shouldRenderSignalForm","setShouldRenderSignalForm","renderSignalsForm","useIntentsError","useIntents","isPipeIntent","onUpdateIntent","onAddIntent","onDeleteIntent","toDeleteIntentId","IntentsContext","withIntentsContext","WithIntentsContext","modifyLegsTargetSchema","isAdjustmentIntent","propsErrors","propsControl","propsSetError","propsClearErrors","formContext","useIntent","isIndexInstrumentIntent","isIndexInstrumentWithWeeklyExpiry","createOnChangeHandler","segmentOptionConfigs","isShowInstrumentIndex","onChangeIntentType","newIntentType","oldIntentCategory","newIntentCategory","onUpdateQuickAdjustments","useModifyExistingIntent","isAdvancedMode","TargetSelector","onChangeTarget","IntentTypeSelector","localValue","onLocalChange","ModifyExistingLegsIntent","renderDeleteBtn","intentConfigs","SegmentSelector","renderSegmentOption","Lot","Amount","onChangeQuantity","quantityValue","quantityType","setType","handleTypeChange","waitAndTradeConfigs","onChangeWaitAndTradeConfigs","WaitAndTrade$1","onChangeSide","buy","sell","isBuy","shouldIgnorePoints","shouldIgnoreUnderlyingSpot","Percent","Points","newStopsValueWithOrigin","newStopsValue","newOrigin","commonConfig","staticOrigin","DEFAULT_CONFIG","ReEntryOrExecute","reEntryOrExecuteOptionConfigs","onChangeReEntryorExecute","filteredConfigs","selectedType","setSelectedType","renderTypeSelector","renderValueSelector","renderHoverMessageWithContent","useOpenIntent","isStopLossPresent","isValidStrikeTypeForMultiplier","isShowMultiplier","onChangeStopLossDelayBy","onChangeStopLoss","newStopLoss","trailingAdjustBasedOnStopLoss","trailingConfigs","onUpdateTrailingConfigs","newTrailingConfigs","newWaitAndTradeConfigs","newReEntryorExecuteConfigs","onChangeInstrumentIndex","newInstrumentIndex","onChangeStrike","TRAILING_VALUE","ADJUST_VALUE","BOOK_PROFIT_ON","BOOK_PROFIT","TrailingFields","renderSymbol","symbolMap","isBookProfitEnabled","setIsBookProfitEnabled","renderTrailingStoplossInputs","trailProperty","renderLinear","renderBookAndLinear","AddTrailing","onShowTrailingStopLoss","isShowCheckBox","isTrailingStopLossEnabled","addCheckBox","getTrailingStopLossValidationErrors","isAnyUndefinedInLinear","isAnyUndefinedInBookAndLinear","addTrailingLabel","bookProfitOn","bookProfit","trailType","validateErrors","prevConfig","ONE_SECOND","DelayBy","localDelayBy","setLocalDelayBy","onLocalDelayByChange","valueString","newDelayBy","OptionTypeSelector","onChangeOptionType","CE","PE","isCE","ExpirySelector","onChangeExpiry","isIlliquidInfo","isErrorInExpiry","expiryDetails","selectedValue","renderExpiryOption","expiryDetail","selectClassName","renderCrownImage","renderInfoMessage","IndicatorValuePathSelector","indicatorSchema","renderIndicatorSchema","useStrikeBased","onChangeType","newComparison","newStrikeObj","Selection","propsComparison","selectionErrorId","selections","renderStrikeSelectionType","sst","sstValue","cronImageClassName","StrikeBasedSelector","onChangeValuePath","InstrumentIndexSelector","renderInstrumentIndexOption","multiplierOptions","renderMultiplier","InstrumentBasedDetails","currentIntent","instrumentClassNames","cycleType","useQuickAdjustments","fieldId","TYPES","renderInput","changeValue","QuickAdjustmentDelayBy","changeType","componentClassNames","BLANK_QUICK_ADJUSTMENT","renderTrigger","onUpdateKey","renderAction","renderQuickAdjustment","quickAdjusment","legOptions","selectedTargetOptions","onTargetsUpdate","newSelections","QuickAdjustmentsForm","addQuickAdjustment","onDeleteQuickAdjustment","updateQuickAdjustment","updatedQuickAdjustment","renderQuickAdjustmentText","badgeClassNames","triggerClassNames","targetLabels","renderQuickAdjustmentsText","QuickAdjustments","localQuickAdjustments","setLocalQuickAdjustments","onModalSave","textContainerClassNames","OpenLegIntent","parentDivClassName","stopLossOrigin","stopGainOrigin","useBasketIntent","createOnChangeMultiplierHandler","BasketSelector","onChangeName","pipeNames","basket","BasketIntent","Intent","intentDependency","IntentComponent","renderQuickAdjustments","stopLossDelayByToolTipContent","IntentHeaders","isBookProfitTsl","renderRenTryOrReExecuteLabel","instrumentClassName","slClassNames","Intents","renderMoveToCostCheckbox","renderMoveToCost","addLegClassName","renderIntentHeaders","Intents$1","CaseBasedBehaviourFlags","Case","adjustmentErrorMessage","signalProps","CaseBasedFeatureFlags","adjustIntents","onUpdateIntentsForAdjustment","renderAddAdjustmentButton","Cases","onChangeActiveCaseIndex","renderAddCaseButton","renderCaseIcon","renderCaseIndex","renderBtn","renderCheckbox","renderContentCase","onChangeTradingType","newTradingType","MaxTransactionsPerDay","onChangeMaxTransactionsPerDay","onChangeTimeBasedSignal","startTimeError","endTimeError","ErrorMessage","onChangeExpiryHandling","ExpiryDetails","isIntraday","isNewTradingTypeIntraday","newExpiryHandling","onResetLabels","incrementalLabel","labelMappedConfig","getUpdatedOperand","isIndividualStopIncludes","isIndicatorBasedBasket","updatedLabel","labelId","updatedbasketId","getUpdatedStrike","getUpdatedTargets","getUpdatedQuickAdjustments","newQuickAdjustment","getUpdatedIntents","isQuickAdjustments","updatedTargetLabel","getUpdatedSignal","updatedCases","updatedEntryIntents","updatedAdjustments","signalSchema","newQuantity","onResetQuantity","QuantityReset","isModalOpen","setIsModalOpen","setQuantity","handleValidation","FeatureEnablements","onUpdateUiBehaviourFlags","handelLablesIndexReset","lastLabelIndex","reEntryContent","reExecuteContent","moreFeatures","SingleInstrumentSelector","propsInstrument","onUpdateInstrument","prependLabel","onChangeInstrument","selectedInsArray","selectedIns","ModeSelector","modeStyle","onChangeOrClick","modeRadioBtn","maxInstrumentInGroup","onChangeInstrumentGroups","simple","MAX_INSTRUMENT_GROUPS","getMaxInstrumentsGroups","useInstrumentDetails","maxInstrumentGroups","setMaxInstrumentGroups","onUpdateInstrumentGroups","newMaxInstrumentInGroup","onUpdateInstrumentGroup","flattenInstrumentGroups","onChangeGlobalSegment","supportedSegments","isEmptyValuePath","newSegmentValuePaths","GlobalSegmentSelector","InstrumentDetails","onDeleteInstrumentGroup","onAddInstumentGroup","onChangeMode","renderInstrumentSelector","renderAddBtn","renderAddOrDeleteBtn","renderMaxInstrumentGroupsSelector","renderMaxInstrumentsInGroupSelector","flexClassNameModeBased","maxInstrumentClassName","isShowPoints","isShowPercent","StopLossOrGainInput","defaultType","selectedBound","onUpdateBoundTostate","valueTypeArgs","onValueChange","valueArgs","OverallTransactionTSL","onTrailChange","newTrail","OverallExitCondition","ttContent","dtContent","exitConfigs","buildDependencyGraph","graph","addNode","addDependency","processSignal","regex","processIntent","processPipeConfig","adjustmentSignals","pipeConfigToCheck","getPipesDependencies","oldPipeName","newPipeName","isIncludedCombinedPremium","getChangedName","splitedArray","newExitSignals","newAdjustmentSignals","newAdjustmentIntents","newValuePaths","onChangePipeName","usePipeConfigs","pipeFormConfigs","setPipeFormConfigs","pipeDependencies","existingPipeNames","getPipeUpdatedNameIfAlreadyPresent","onUpdatePipeFormConfigs","partialPipeFormConfigs","onUpdatePipeConfigsToStore","currentPipeConfig","onAddIndicator","fetchValidationSchemas","getPatternRegex","getChartConfigValidator","required","chartConfigValidators","getConfigValidator","configValidators","minItems","maxItems","getPipeValidators","pipesSchema","pipeSchema","useValidationSchema","validationSchema","setValidationSchema","PipeSelector","onSetNewPipe","onChangePipe","PipeName","onUpdateName","PipeChartConfig","onUpdateChartConfig","NumberFormField","propsName","onUpdatePipeConfig","SelectFormField","ValuePathsFormField","pipeConfigOutputSchema","SignalFormField","PipeCandleInterval","intervalOptions","getPipeIntentDependencies","pipeIntentDependencies","dependentLabels","allSignals","openBasketIntent","openBasketLabel","filteredIntentLabel","targetIntentId","filteredSignalLabels","intentLabel","PipeIntents","pipeRef","lastIntent","StopLossFormField","stopLossConfig","setStopLossConfig","stopLossErrors","setIsTrailingStopLoss","tslErrors","renderTsl","onChangeIsTrailingStopLoss","sanitizedConfig","TimeOfDayField","VendorField","vendorType","ReadOnlyField","generateToken","TradingView","ChartInk","ExternalSignal","onGeneratePostback","externalSignalId","customValue","isTradingView","FloatFormField","setLocalValue","PipeVolumeInterval","isVolumeChartType","candleIntervals","PipeUtility","customValidatorConfig","Legacy","inputKeys","customValidator","renderDeclarativeComponent","inputType","renderField","ScriptFormField","CustomScript","Snippet","renderSnippetFields","PipeInput","propsOnUpdatePipeConfig","inputChartKeys","inputConfigKeys","keyOrPartialConfig","PipeConfigForm","propsPipeConfig","setPipeConfig","pipeConfigRef","pipeValidator","partialPipeConfig","isSave","updatedPipeConfig","PipeConfigs","editIndex","renderPipeView","renderAddIndicatorButton","QuantBuilder","onIntentsScroll","debouncedOnIntentScroll","RunCreditDetails","Main$1","RunForm","propsEndDate","propsStartDate","maxEndDate","propsRunType","propsGranularity","propsRunName","propsQuantConfig","propsIsHistoricRunDisabled","propsIsLiveRunDisabled","propsEngineVersion","isUserEnabled","RunWidget","widgetConfig","setWidgetConfig","handleMessage"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,94,95,96,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,139,140,141,142,143,144,145,146,147,148,312,313,314,315,316,366,371,372,373,374,832]}