{"version":3,"file":"815.b6c2e3060377f8b4690f.js","mappings":"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","sources":["webpack://data-library-mf-app/./node_modules/react-query/devtools/index.js","webpack://data-library-mf-app/./src/components/details/FundHeader/FundHeader.tsx","webpack://data-library-mf-app/./src/components/details/AdvancedRiskReturnMetrics/RiskVolatilityMeasures.tsx","webpack://data-library-mf-app/./src/components/details/AdvancedRiskReturnMetrics/ComparisonGauge.tsx","webpack://data-library-mf-app/./src/components/details/AdvancedRiskReturnMetrics/AdvancedRiskReturnMetrics.tsx","webpack://data-library-mf-app/./node_modules/react-dom/client.js","webpack://data-library-mf-app/./src/layouts/LayoutCompare/LayoutCompare.tsx","webpack://data-library-mf-app/./src/components/common/MsRating/MsRating.tsx","webpack://data-library-mf-app/./src/components/details/AnnualisedReturns/AnnualisedReturns.tsx","webpack://data-library-mf-app/./src/shared/utils/typesense.util.ts","webpack://data-library-mf-app/./node_modules/axios/index.js","webpack://data-library-mf-app/./src/layouts/LayoutDetail/LayoutDetail.tsx","webpack://data-library-mf-app/./src/components/details/DetailList/DetailList.tsx","webpack://data-library-mf-app/./src/components/details/Dividend/Dividend.tsx","webpack://data-library-mf-app/./src/App.tsx","webpack://data-library-mf-app/./src/bootstrap.tsx"],"sourcesContent":["if (process.env.NODE_ENV !== 'development') {\n module.exports = {\n ReactQueryDevtools: function () {\n return null\n },\n ReactQueryDevtoolsPanel: function () {\n return null\n },\n }\n} else {\n module.exports = require('./development')\n}\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport FundInfo, { IFundInfoProps } from 'components/common/FundInfo/FundInfo';\n// import { formatNumber, formatPercentageWithColor } from 'shared/utils/format.util';\nimport { Typography } from '@newwealth/component-library';\n// import { IFundData, IThemeContext } from 'shared/interfaces';\nimport './FundHeader.scss';\nimport { MsRating } from 'components/screeners';\n\n// interface IFundHeaderProps {\n// nav: string;\n// navPercent: string;\n// description?: string;\n// // currency?: string;\n// }\n\nconst FundHeader: React.FunctionComponent = ({\n fundHouse,\n fundName,\n tags = [],\n isRebateEligible,\n isReadyToTrade,\n esgRating,\n msRating,\n nav,\n navPercent,\n navDate,\n description,\n status,\n // currency,\n id,\n}: IFundInfoProps) => {\n const intl = useIntl();\n // console.log('TESTING:::: ', navPercent, navDate);\n return (\n
\n \n
\n \n \n {`${intl.formatMessage({ id: 'compare.NAV' })}`}\n {`(as of ${navDate}) `}:{' '}\n \n {nav}\n \n }\n />\n {navPercent !== '-' ? navPercent : null}\n {msRating ? (\n
\n Morningstar Rating™ \n \n
\n ) : null}\n
\n
\n \n \n
\n
\n );\n};\n\nexport default FundHeader;\n","import React, { useContext } from 'react';\nimport { useIntl } from 'react-intl';\nimport { ThemeContext, Typography } from '@newwealth/component-library';\n\nexport interface IRiskData {\n trailing: string;\n fund?: string;\n category?: string;\n}\n\nexport interface IRiskVolatilityMeasuresProps {\n data: IRiskData[] | undefined;\n}\n\nconst RiskVolatilityMeasures: React.FunctionComponent = ({\n data = [],\n}) => {\n const intl = useIntl();\n const themeConfig = useContext(ThemeContext);\n\n const renderTableContent = Array.from([...data]).map((item, idx) => (\n \n {intl.formatMessage({ id: item.trailing })}\n \n {item.fund !== '-' ? {item.fund} : {item.fund}}\n {item.fund === '-' ? No value : null}\n \n \n {item.category !== '-' ? (\n {item.category}\n ) : (\n {item.category}\n )}\n {item.category === '-' ? No value : null}\n \n \n ));\n\n return (\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n {renderTableContent}\n
{intl.formatMessage({ id: 'riskReturn.trailing' })}{intl.formatMessage({ id: 'riskReturn.fund' })}{intl.formatMessage({ id: 'riskReturn.category' })}
\n
\n
\n );\n};\n\nexport default RiskVolatilityMeasures;\n","import React from 'react';\nimport { Typography } from '@newwealth/component-library';\nimport classNames from 'classnames';\n\ntype IComparisonGaugeProps = {\n id: string;\n title: string;\n rangeValueArr?: string[];\n value: number;\n isReverse?: boolean;\n};\n\nexport default function ComparisonGauge({\n id,\n title,\n rangeValueArr = ['Low', 'Below average', 'Average', 'Above average', 'High'],\n value,\n isReverse,\n}: IComparisonGaugeProps) {\n const getRangeValue = (val: typeof value) => {\n switch (val) {\n case 1:\n return rangeValueArr[0];\n case 2:\n return rangeValueArr[1];\n case 3:\n return rangeValueArr[2];\n case 4:\n return rangeValueArr[3];\n case 5:\n return rangeValueArr[4];\n default:\n return null;\n }\n };\n\n const lineClasses = classNames({\n 'line-gauge': true,\n 'line-gauge--reverse': isReverse,\n });\n return (\n
\n
\n \n {getRangeValue(value)}} />\n
\n
\n
\n {rangeValueArr.map((item, idx) => (\n \n ))}\n
\n
\n
\n );\n}\n","import React, { useContext } from 'react';\nimport { useIntl } from 'react-intl';\nimport { SectionHeader } from 'components/common';\nimport { ThemeContext, Typography } from '@newwealth/component-library';\nimport RiskVolatilityMeasures from './RiskVolatilityMeasures';\nimport ComparisonGauge from './ComparisonGauge';\nimport type { IRiskVolatilityMeasuresProps } from './RiskVolatilityMeasures';\n// import type { IThemeContext } from 'shared/interfaces';\n\ninterface IPerYearData extends IRiskVolatilityMeasuresProps {\n id: string;\n riskVsCategoryScore: string;\n returnVsCategoryScore: string;\n benchmarkName: string;\n calculationBenchmarkName?: string;\n benchmarkDate: string;\n benchmarkCurrency: string;\n categoryName: string;\n categoryDate: string;\n categoryCurrency?: string;\n ranking?: number;\n // data: IRiskData[];\n}\n\ninterface IRiskReturnMetricsProps {\n data: Array | undefined;\n currentTab?: 'y3' | 'y5' | 'y10';\n}\n\nexport default function AdvancedRiskReturnMetrics({\n data,\n currentTab = 'y3',\n}: IRiskReturnMetricsProps) {\n const intl = useIntl();\n const themeConfig = useContext(ThemeContext);\n const [current, setCurrent] = React.useState(currentTab);\n\n const tabMenu = [\n {\n id: 'y3',\n label: intl.formatMessage({ id: 'riskReturn.y3' }),\n },\n {\n id: 'y5',\n label: intl.formatMessage({ id: 'riskReturn.y5' }),\n },\n {\n id: 'y10',\n label: intl.formatMessage({ id: 'riskReturn.y10' }),\n },\n ];\n\n const onHandleTab = (e: React.BaseSyntheticEvent) => {\n const { id } = e.target;\n setCurrent(id);\n };\n\n const renderButtonTabs = (\n \n {tabMenu.map((item, idx) => (\n \n {item.label}\n \n ))}\n \n );\n\n return (\n
\n \n \n {renderButtonTabs}\n \n \n {data?.map((item, idx) => (\n \n
\n \n {`${item.benchmarkCurrency} | Fund as of ${item.benchmarkDate} | Category: ${item.categoryName} as of ${item.categoryDate} | Calculation Benchmark: ${item.calculationBenchmarkName}`}\n }\n />\n
\n
\n \n \n {`Morningstar Category '${item.categoryCurrency} ${item.categoryName}' | Rankings are out of ${item.ranking} funds.`}\n }\n />\n
\n
\n ))}\n \n );\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/* eslint-disable react/display-name */\nimport React from 'react';\nimport { ThemeContextProvider } from '@newwealth/component-library';\nimport ConnectedIntlProvider from 'shared/utils/ConnectedIntlProvider';\nimport ComparePageHeader from 'components/compare/ComparePageHeader';\n// import { themeConfig } from 'shared/constant/themeConfig';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { ReactQueryDevtools } from 'react-query/devtools';\nimport { FlContextProvider } from 'shared/context';\nimport './LayoutCompare.scss';\nimport { AppNavbar } from 'components/common';\n\n/** Create client */\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\nconst LayoutCompare =\n

(\n Component: React.ComponentType

,\n FooterComponent: React.ComponentType

\n ): React.FC

=>\n ({ ...props }: P) => {\n const ContextWrapper = props?.includeRouterRoot ? React.Fragment : FlContextProvider;\n return (\n \n \n \n \n \n \n \n

\n \n
\n
\n \n
\n \n \n \n \n \n \n );\n };\n\nexport default LayoutCompare;\n","import React from 'react';\nimport Star from 'assets/icons/star.svg';\n\ninterface IMsRatingProps {\n number: number;\n id: string;\n}\n\nconst MsRating = ({ number, id }: IMsRatingProps) => {\n const xArr = Array.from([...Array(number)]);\n if (number === 0 || !number) return null;\n const iconSize = 16;\n\n return (\n
\n {xArr &&\n xArr.map((n, i) => (\n \n ))}\n
\n );\n};\n\nexport default MsRating;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport { DetailContainer } from 'components/details';\n// import { SectionHeader } from 'components/common';\nimport { Typography } from '@newwealth/component-library';\nimport { formatPercentage } from 'shared/utils/format.util';\nimport './AnnualisedReturns.scss';\n\ninterface IAnnualisedReturnsProps {\n y1?: number | string;\n y3?: number | string;\n y5?: number | string;\n y10?: number | string;\n}\n\nconst AnnualisedReturns: React.FunctionComponent = ({\n y1,\n y3,\n y5,\n y10,\n}) => {\n const intl = useIntl();\n const data = [\n {\n id: 'detail.annualisedReturns.y1',\n value: y1,\n },\n {\n id: 'detail.annualisedReturns.y3',\n value: y3,\n },\n {\n id: 'detail.annualisedReturns.y5',\n value: y5,\n },\n {\n id: 'detail.annualisedReturns.y10',\n value: y10,\n },\n ];\n const isValuePositive = (val: string) => parseFloat(val) >= 0;\n\n return (\n \n
\n \n
\n
\n
\n {data.map((item, idx) => (\n
\n \n 0 || item.value === '-' ? 'positive' : 'negative'\n }`}\n >\n {item.value ? (\n formatPercentage(item.value / 100)\n ) : (\n <>\n \n -\n \n No value\n \n )}\n \n {/* */}\n
\n ))}\n
\n \n
\n
\n );\n};\n\nexport default AnnualisedReturns;\n","import Typesense from 'typesense';\nimport { SearchParams } from 'typesense/lib/Typesense/Documents';\n// import { MultiSearchRequestsSchema } from 'typesense/lib/Typesense/MultiSearch';\n// import { loadSessionState } from 'shared/services/local.svc';\n// import { get } from 'lodash';\nimport { ITypesenseConfig } from 'shared/interfaces';\nimport {\n // CommonTypesenseParams,\n CustomSortParam,\n CustomTypesenseParams,\n // FilterParameter,\n} from './params';\n\nexport const buildSortStr = (sort_params: CustomSortParam[]) => {\n return sort_params.map((e) => (e.field_name ? `${e.field_name}:${e.order}` : '')).join(',');\n};\n// type ISearchWithFacets = {\n// collection: string;\n// query: string;\n// common_params: Partial;\n// facets: string[];\n// filters: FilterParameter[];\n// };\n\nlet typesenseClient: any = null;\n\nexport const updateTypesenseClient = (typesenseConfig: ITypesenseConfig) => {\n if (!typesenseClient) {\n typesenseClient = new Typesense.Client(typesenseConfig);\n return typesenseClient;\n }\n return null;\n};\n\nfunction buildExactQuery(collection: string, val: string, fieldName: string) {\n return {\n filter_by: val ? `${fieldName}:=${val}` : '',\n exhaustive_search: true,\n query_by: `${fieldName}`,\n highlight_full_fields: `${fieldName}`,\n collection: `${collection}`,\n q: '*',\n // facet_by: `${fieldName}`,\n max_facet_values: 1000,\n page: 1,\n per_page: 1,\n };\n}\n\nexport const searchWithFacetsMulti = async (\n searchRequests: CustomTypesenseParams[],\n typesenseConfig: ITypesenseConfig,\n collection = 'funds',\n exact_matches = ['SecId']\n) => {\n // let categoryQuery\n let exactQuery = null;\n // let isin = ''\n let isSecId;\n const params = searchRequests.map((item) => {\n const qParts = item.q.split(/(\\s+)/);\n if (qParts.length == 1 && qParts[0] && exact_matches.includes('SecId')) {\n exactQuery = buildExactQuery('funds', qParts[0], 'SecId');\n isSecId = isValidSecId(qParts[0]);\n // categoryQuery = buildCategoryQuery('index', qParts[0], 'ISIN')\n // isin = qParts[0]\n }\n return {\n ...item,\n collection,\n sort_by: buildSortStr(item.sort_by),\n page: item.page,\n per_page: item.per_page,\n // facet_query: item.facet_query,\n max_facet_values: 100000,\n query_by: item.query_by.join(','),\n filter_by: item.filter_by?.length\n ? item.filter_by\n .map((f) => {\n const value_exp = `${f.values.map((v) => `\\`${v}\\``).join()}]`;\n return `${f.field_name}:=[${value_exp}]`;\n })\n .join('&&') +\n '&&' +\n 'Status:=[`Active`,`Sell-tradable`]'\n : 'Status:=[`Active`,`Sell-tradable`]',\n facet_by: item.facet_by.join(','),\n facet_query: item.facet_query\n ? item.facet_query\n .map((e) => {\n if (e.values && e.values.length > 0) {\n return `${e.field_name}:${e.values}`;\n }\n return ``;\n })\n .join(',')\n : '',\n highlight_full_fields: item.query_by.join(','),\n } as SearchParams;\n });\n if (!typesenseClient) {\n updateTypesenseClient(typesenseConfig);\n }\n // if (categoryQuery && exactQuery) {\n // params.push(exactQuery)\n // params.push(categoryQuery)\n // }\n if (isSecId && exactQuery) {\n params.push(exactQuery);\n }\n const resp = await typesenseClient.multiSearch.perform({ searches: params }, {});\n if (resp['results'].length > 1) {\n const exactRs = resp['results'][resp['results'].length - 1];\n // const exactRs = resp['results'][resp['results'].length - 2]\n // const categoryRs = resp['results'][resp['results'].length -1]\n ////check if query is isin\n // if (categoryRs['facet_counts'][0]['counts'].length >= 1) {\n // for (let i =0; i< resp['results'].length - 1; i++) {\n // // replace result with exact ISIN query\n // resp['results'][i] = exactRs\n // }\n // }\n\n // TODO: need to check\n if (isSecId && exactQuery) {\n const approxData = [];\n for (let i = 0; i < resp['results'].length - 1; i++) {\n // replace result with exact ISIN query\n approxData.push(resp['results'][i]);\n // resp['results'][i] = exactRs;\n /** @note only pass exactRs when found result is empty or zero \"0\" */\n if (resp['results'][1].found === 0) {\n resp['results'][i] = exactRs;\n }\n }\n // TODO: sore to props\n console.log(approxData);\n }\n }\n return resp;\n};\n\n// export const searchWithFacets = async ({\n// collection,\n// query,\n// common_params,\n// facets,\n// filters,\n// }: ISearchWithFacets) => {\n// const filter_by = filters\n// .map((f) => {\n// const value_exp = `${f.values.map((v) => `\\`${v}\\``).join()}]`;\n// return `${f.field_name}:=[${value_exp}]`;\n// })\n// .join('&&');\n// const searchRequests = {\n// searches: [\n// {\n// collection,\n// facet_by: facets.join(','),\n// filter_by,\n// },\n// ],\n// } as MultiSearchRequestsSchema;\n// const commonSearchParams = {\n// ...common_params,\n// q: query,\n// query_by:\n// common_params.fields_to_search && common_params.fields_to_search.length > 0\n// ? common_params.fields_to_search.join(',')\n// : common_params.query_by,\n// highlight_full_fields:\n// common_params.fields_to_search && common_params.fields_to_search.length > 0\n// ? common_params.fields_to_search.join(',')\n// : common_params.query_by,\n// };\n// return await typesenseClient.multiSearch.perform(searchRequests, commonSearchParams);\n// };\n\n// export const searchByFields = async (\n// collection: string,\n// q: string,\n// fields: string[],\n// sort_by: string\n// ) => {\n// return await typesenseClient\n// .collections(collection)\n// .documents()\n// .search({\n// q,\n// query_by: fields.join(','),\n// sort_by,\n// per_page: 250,\n// enable_overrides: true,\n// });\n// };\n\n// export const search = async (collection: string, param: any) => {\n// return await typesenseClient.collections(collection).documents().search(param);\n// };\n\n// export const searchWithContext = async (query: string, fields: string, collection: string) => {\n// const contextParam = {\n// q: query,\n// query_by: 'value',\n// sort_by: '',\n// per_page: 250,\n// enable_overrides: true,\n// };\n// const contexts = await search('contexts', contextParam);\n// let filterBy = '';\n// // @ts-ignore\n// new Set(contexts.hits.map((hit: any) => hit.document.type)).forEach((context) => {\n// if (filterBy !== '') {\n// filterBy += '||';\n// }\n// filterBy += `${context}:${query}`;\n// });\n\n// const mainSearchParam = {\n// q: query,\n// query_by: fields,\n// sort_by: '',\n// per_page: 250,\n// enable_overrides: true,\n// filter_by: filterBy,\n// };\n// // @ts-ignore\n// return await search(collection, mainSearchParam);\n// };\n\nfunction isAlphaNumberic(input: string) {\n const regex = /^[a-z0-9]+$/i;\n return regex.test(input);\n}\n\nfunction isValidSecId(current_val: string) {\n const regex = new RegExp(/[a-zA-z]{2,4}/i);\n return (\n current_val &&\n isAlphaNumberic(current_val) && // only alphanumeric characters\n current_val.length == 10 && // 10 characters\n regex.test(current_val) && // start with 2 , 4 alphabet characters\n current_val.replace(/^\\D+/g, '').length >= 2 && // has at least 2 number\n (isAlphaNumberic(current_val[2]) || isAlphaNumberic(current_val[4]))\n );\n}\n","module.exports = require('./lib/axios');","/* eslint-disable react/display-name */\nimport React from 'react';\nimport { ThemeContextProvider } from '@newwealth/component-library';\nimport ConnectedIntlProvider from 'shared/utils/ConnectedIntlProvider';\n// import { themeConfig } from 'shared/constant/themeConfig';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { ReactQueryDevtools } from 'react-query/devtools';\nimport { FlContextProvider } from 'shared/context';\nimport './LayoutDetail.scss';\nimport { AppNavbar, Disclaimer } from 'components/common';\n\n/** Create client */\nexport const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\nconst LayoutDetail =\n

(\n Component: React.ComponentType

,\n FooterComponent: React.ComponentType

\n ): React.FC

=>\n ({ ...props }: P) => {\n const ContextWrapper = props?.includeRouterRoot ? React.Fragment : FlContextProvider;\n return (\n \n \n \n \n

\n \n
\n {/* back to fund universe */}\n \n
\n
\n \n
\n
\n \n\n \n \n \n \n );\n };\n\nexport default LayoutDetail;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport { ISectionHeaderProps } from 'components/common/SectionHeader/SectionHeader';\nimport { DetailContainer } from 'components/details';\nimport { SectionHeader } from 'components/common';\nimport { Typography, ThemeContext } from '@newwealth/component-library';\nimport type { IThemeContext } from 'shared/interfaces';\n\nimport './DetailList.scss';\nimport { icons } from 'shared/constant';\nimport { getProductRangeByCode } from 'shared/utils/helper.util';\nimport { Tooltip } from 'react-tooltip';\n\n// interface IDataProps {\n// key: string;\n// value: string;\n// }\n\nexport interface IDetailListProps {\n id: string;\n isTranslate?: boolean;\n data: Array;\n isFullWidthTitle?: boolean;\n // data: {\n // col1: Array;\n // col2: Array;\n // };\n}\n\n// const internalDocUrl = process.env.REACT_APP_DOC_URL;\n\nconst DetailList: React.FunctionComponent = (props) => {\n const intl = useIntl();\n const themeConfig = React.useContext(ThemeContext);\n // console.log('id ::: ', props.id, props.data);\n const fixedDocs = Array.from([...props.data]).filter(\n (item: any) =>\n item.key.toLowerCase() !== 'annual report' &&\n item.key.toLowerCase() !== 'semi-annual report' &&\n item.key.toLowerCase() !== 'product highlight sheet' &&\n item.key.toLowerCase() !== 'prospectus'\n );\n let newData = Array.from([...fixedDocs]);\n\n if (props.id === 'documents') {\n const iconSize = 20;\n\n const prospectus = Array.from([...props.data]).filter(\n (item: any) => item.key.toLowerCase() === 'prospectus'\n );\n\n const prodRangePHS = Array.from([...props.data])\n .filter((item: any) => item.key.toLowerCase() === 'product highlight sheet')\n .flatMap((item: any) => {\n if (item.value?.data === undefined) return [];\n\n return item.value?.data.map((dItem: any) => ({\n // key: `Product Highlight Sheet
( ${getProductRangeByCode(dItem.key)} )`,\n key: `Product Highlight Sheet ${\n item.value?.data.length > 1 ? `
( ${getProductRangeByCode(dItem.key)} )` : ''\n }`,\n value: (\n \n // window.open(`${internalDocUrl}/${dItem.value}`, '_blank') ||\n // window.location.replace(`${internalDocUrl}/${dItem.value}`)\n window.open(`${dItem.url}`, '_blank') || window.location.replace(`${dItem.url}`)\n }\n disabled={dItem.value === '' || dItem.value === undefined}\n data-tooltip-id=\"listTooltip\"\n data-tooltip-html={`Download Product Highlight Sheet (${getProductRangeByCode(\n dItem.key\n )})`}\n >\n \n \n Download{' '}\n {`Product Highlight Sheet (${getProductRangeByCode(\n dItem.key\n )})`}\n \n \n ),\n isTranslate: false,\n }));\n });\n\n const prodRangeAnnRep = Array.from([...props.data])\n .filter((item: any) => item.key.toLowerCase() === 'annual report')\n .flatMap((item: any) => {\n if (item.value?.data === undefined) return [];\n return item.value?.data.map((dItem: any) => ({\n key: `Annual Report ${\n item.value?.data.length > 1 ? `
( ${getProductRangeByCode(dItem.key)} )` : ''\n }`,\n value: (\n \n // window.open(`${internalDocUrl}/${dItem.value}`, '_blank') ||\n // window.location.replace(`${internalDocUrl}/${dItem.value}`)\n window.open(`${dItem.url}`, '_blank') || window.location.replace(`${dItem.url}`)\n }\n disabled={dItem.value === '' || dItem.value === undefined}\n data-tooltip-id=\"listTooltip\"\n data-tooltip-html={`Download Annual report (${getProductRangeByCode(dItem.key)})`}\n >\n \n \n Download{' '}\n {`Annual report (${getProductRangeByCode(dItem.key)})`}\n \n \n ),\n isTranslate: false,\n }));\n });\n\n const prodRangeSemiAnnRep = Array.from([...props.data])\n .filter((item: any) => item.key.toLowerCase() === 'semi-annual report')\n .flatMap((item: any) => {\n if (item.value?.data === undefined) return [];\n return item.value?.data.map((dItem: any) => ({\n // key: `Semi-Annual Report
( ${getProductRangeByCode(dItem.key)} )`,\n key: `Semi-Annual Report ${\n item.value?.data.length > 1 ? `
( ${getProductRangeByCode(dItem.key)} )` : ''\n }`,\n value: (\n \n window.open(`${dItem.url}`, '_blank') || window.location.replace(`${dItem.url}`)\n // window.open(`${internalDocUrl}/${dItem.value}`, '_blank') ||\n // window.location.replace(`${internalDocUrl}/${dItem.value}`)\n }\n disabled={dItem.value === '' || dItem.value === undefined}\n data-tooltip-id=\"listTooltip\"\n data-tooltip-html={`Download Semi-Annual report (${getProductRangeByCode(\n dItem.key\n )})`}\n >\n \n \n Download\n {`Semi-annual report (${getProductRangeByCode(\n dItem.key\n )})`}\n \n \n ),\n isTranslate: false,\n }));\n });\n\n newData = [\n ...fixedDocs,\n ...prodRangePHS,\n ...prodRangeSemiAnnRep,\n ...prodRangeAnnRep,\n ...prospectus,\n ];\n }\n\n return (\n <>\n {props.isFullWidthTitle ? (\n \n \n \n ) : null}\n \n {!props.isFullWidthTitle ? (\n <>\n {/* */}\n \n {props.isTranslate ? intl.formatMessage({ id: props.title }) : props.title}\n \n \n ) : null}\n\n
\n {newData.length &&\n newData.map((item: any, idx: number) => (\n \n {/* */}\n {/* */}\n {item.isTranslate ? (\n // \n
{intl.formatMessage({ id: item.key })}
\n ) : (\n \n )}\n {/* {item.value}} /> */}\n
\n {item.value === '-' || item.value === '' ? (\n no value\n ) : (\n item.value\n )}\n
\n
\n ))}\n
\n
\n\n \n \n );\n};\n\nexport default DetailList;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport { DetailContainer, DetailList } from 'components/details';\nimport { formatPercentage, formatDateToYearMonthDay } from 'shared/utils/format.util';\nimport { isEmpty } from 'lodash';\n\nexport interface IDividendProps {\n dividendType: string;\n distFreq: string;\n yield12Mo: string;\n exDivDate: string;\n themeConfig?: any;\n}\n\nconst Dividend: React.FunctionComponent = ({\n dividendType,\n distFreq,\n yield12Mo,\n exDivDate,\n themeConfig,\n}: IDividendProps) => {\n const intl = useIntl();\n const parseDividendType = (code: string) => {\n switch (code) {\n case 'acc':\n return intl.formatMessage({ id: 'detail.dividend.acc' });\n case 'inc':\n return intl.formatMessage({ id: 'detail.dividend.inc' });\n default:\n return '-';\n }\n };\n const parseValue = (val: any) => (val ? val : '-');\n const isAccumulating = dividendType === 'acc';\n const data = [\n {\n key: intl.formatMessage({ id: 'detail.dividend.dividendType' }),\n value: parseDividendType(dividendType),\n },\n {\n key: intl.formatMessage({ id: 'detail.dividend.distFreq' }),\n value: !isAccumulating ? parseValue(distFreq) : 'N/A',\n },\n {\n key: intl.formatMessage({ id: 'detail.dividend.yield' }),\n value: isAccumulating\n ? 'N/A'\n : yield12Mo !== ''\n ? yield12Mo === '0'\n ? '0.00%'\n : formatPercentage(Number(yield12Mo) / 100)\n : '-',\n },\n {\n key: intl.formatMessage({ id: 'detail.dividend.date' }),\n value: isAccumulating\n ? 'N/A'\n : exDivDate\n ? formatDateToYearMonthDay(exDivDate, 'dd MMM yyyy')\n : '-',\n },\n ];\n\n return (\n \n
\n \n
\n
\n );\n};\n\nexport default Dividend;\n","/* eslint-disable require-jsdoc */\nimport React from 'react';\n// import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport { BrowserRouter as Router, Route, Routes } from 'react-router-dom';\n// import { PageLoader } from '@newwealth/component-library';\nimport { PageLoader } from 'components/common';\nimport appRoutes from './AppRoutes';\nimport { themeConfig as themeConfigInit } from 'shared/constant/themeConfig';\nimport { FlContextProvider } from 'shared/context';\n// import ConnectedIntlProvider from 'shared/utils/ConnectedIntlProvider';\n\n// import 'styles/index.scss';\nimport 'react-tooltip/dist/react-tooltip.css';\n// import { tempConfig, tempGlobalLabels } from 'pages/Screener/mockConfig';\nimport {\n screenerConfig as configScreener,\n detailConfig as configDetail,\n compareConfig as configCompare,\n APP_INIT as appInit,\n} from 'shared/constant/config';\nimport { IScreenerProps } from 'pages/Screener/Screener';\nimport { ISharedProps } from 'shared/interfaces';\nimport NotFound from 'pages/NotFound/NotFound';\nimport { ToastContainer } from 'react-toastify';\nimport ProtectedRoute from 'components/common/ProtectedRoute/ProtectedRoute';\nimport { AuthProvider } from 'shared/context/AuthProvider';\n\ninterface IFLProps {\n screener?: IScreenerProps;\n // compare?: any; // @Todo update types later\n headerOptions?: any; // @Todo update types later\n themeConfig?: any; // @Todo update types later\n}\n\nconst routes = [...appRoutes];\n\n// const screenerInit = {\n// endpoint:\n// 'https://thai-datahub-api-staging.newwealth.cloud/fund-center/api/v3/thai_fund_center/screener?encrypt=false&lang=th_th&totalFund=300',\n// withCompare: true,\n// screenerConfig: tempConfig,\n// pdfIcon: '/assets/icons/icon-pdf.svg',\n// withPadding: true,\n// globalLabels: tempGlobalLabels,\n// compareMax: 3,\n// };\n\n// const headerOptionInit = {\n// Accept: 'application/json',\n// 'Content-Type': 'application/json',\n// key: 'NWW##&*$@!112369',\n// sample: 'NWW##&*$@!112369',\n// };\n\nfunction App({\n // screener = screenerInit,\n // headerOptions = headerOptionInit,\n themeConfig = themeConfigInit,\n includeRouterRoot = true,\n language = 'en',\n isAuthenticated = false,\n userId,\n sidebarPosition = 'left',\n withBulkSearch = false,\n withSingleFilterButton = false,\n withDynamicMenu = false,\n screenerConfig = configScreener,\n detailConfig = configDetail,\n compareConfig = configCompare,\n appInitConfig = appInit,\n ...props\n}: (IFLProps & ISharedProps) | any) {\n // console.log('themeConfig ::: ', themeConfig);\n const modifiedProps = {\n appInitConfig,\n themeConfig,\n screenerConfig,\n detailConfig,\n compareConfig,\n includeRouterRoot,\n language,\n isAuthenticated,\n userId,\n sidebarPosition,\n withBulkSearch,\n withSingleFilterButton,\n withDynamicMenu,\n ...props,\n };\n const Wrapper = includeRouterRoot ? Router : React.Fragment;\n\n return (\n \n \n \n }>\n \n {routes.map((route) => (\n }\n element={\n route.isPublic ? (\n \n ) : (\n \n \n \n )\n }\n />\n ))}\n } />\n \n \n \n \n \n \n );\n}\n\nexport default App;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport * as React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport App from './App';\n\nconst container = document.getElementById('fundUniverse');\nconst root = createRoot(container!);\nroot.render();\n"],"names":["module","exports","ReactQueryDevtools","ReactQueryDevtoolsPanel","_ref","fundHouse","fundName","tags","isRebateEligible","isReadyToTrade","esgRating","msRating","nav","navPercent","navDate","description","status","id","intl","useIntl","React","className","FundInfo","isFundNameBigger","isForDetail","Typography","type","value","formatMessage","style","fontWeight","MsRating","number","Number","data","themeConfig","useContext","ThemeContext","renderTableContent","Array","from","map","item","idx","key","trailing","fund","category","cellPadding","cellSpacing","fontSize","fontSmallSize","ComparisonGauge","title","rangeValueArr","isReverse","lineClasses","classNames","val","getRangeValue","AdvancedRiskReturnMetrics","currentTab","current","setCurrent","tabMenu","label","onHandleTab","e","target","renderButtonTabs","onClick","borderBottom","borderColor","SectionHeader","isDetail","withStyle","fitButtons","display","RiskVolatilityMeasures","benchmarkCurrency","benchmarkDate","categoryName","categoryDate","calculationBenchmarkName","riskVsCategoryScore","returnVsCategoryScore","categoryCurrency","ranking","m","createRoot","hydrateRoot","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","LayoutCompare","Component","FooterComponent","props","ContextWrapper","includeRouterRoot","FlContextProvider","ThemeContextProvider","config","QueryClientProvider","client","ConnectedIntlProvider","maxWidth","AppNavbar","ComparePageHeader","initialIsOpen","position","xArr","n","i","src","Star","alt","width","height","y1","y3","y5","y10","DetailContainer","color","formatPercentage","typesenseClient","updateTypesenseClient","typesenseConfig","Typesense","searchWithFacetsMulti","async","searchRequests","isSecId","collection","arguments","length","undefined","exact_matches","exactQuery","params","qParts","q","split","includes","fieldName","filter_by","exhaustive_search","query_by","highlight_full_fields","max_facet_values","page","per_page","current_val","regex","RegExp","isAlphaNumberic","test","replace","isValidSecId","sort_by","sort_params","field_name","order","join","f","value_exp","values","v","facet_by","facet_query","push","resp","multiSearch","perform","searches","exactRs","approxData","found","console","log","input","LayoutDetail","fixedDocs","filter","toLowerCase","newData","iconSize","prospectus","prodRangePHS","flatMap","dItem","getProductRangeByCode","window","open","url","location","disabled","icons","pdfIcon","isTranslate","prodRangeAnnRep","prodRangeSemiAnnRep","isFullWidthTitle","withContainerStyle","role","margin","paddingBottom","dangerouslySetInnerHTML","__html","Tooltip","place","variant","wrapper","clickable","dividendType","distFreq","yield12Mo","exDivDate","isAccumulating","code","parseDividendType","formatDateToYearMonthDay","backgroundColor","containerBg","DetailList","routes","appRoutes","themeConfigInit","language","isAuthenticated","userId","sidebarPosition","withBulkSearch","withSingleFilterButton","withDynamicMenu","screenerConfig","configScreener","detailConfig","configDetail","compareConfig","configCompare","appInitConfig","appInit","modifiedProps","Wrapper","Router","AuthProvider","fallback","PageLoader","Routes","route","Route","path","element","isPublic","ProtectedRoute","allowedRoles","NotFound","ToastContainer","container","document","getElementById","render","App"],"sourceRoot":""}