{"version":3,"sources":["webpack:///./node_modules/@irishlife/ilgroupdesignsystem.atoms.checkbox/dist/checkbox.js","webpack:///./src/common/components/organisms/FundsTable/index.tsx","webpack:///./node_modules/@irishlife/ilgroupdesignsystem.atoms.checkbox/dist/index.js"],"names":["__rest","this","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__importDefault","mod","__esModule","defineProperty","exports","value","Checkbox","IndeterminateIcon","CheckedIconMIL","CheckedIcon","react_1","react_2","ilgroupdesignsystem_atoms_text_1","createIcon","displayName","viewBox","path","default","createElement","key","x","width","height","rx","fill","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","checkboxBaseStyles","variant","variantMIL","transition","borderWidth","borderColor","rounded","bg","_hover","CustomIcon","props","isIndeterminate","isChecked","color","Icon","as","fontSize","forwardRef","ref","_props$variant","children","rest","assign","display","alignItems","size","sx","icon","Text","pl","months","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","ratingColourMap","1","2","3","4","5","6","7","headers","label","styles","article8","borderLeft","borderRight","borderBottom","position","verticalAlign","marginRight","article9","FundsTable","data","defaultSelected","onSelect","React","useState","selectedFunds","setSelectedFunds","tableDataSorted","setTableDataSorted","type","sortBy","setSortBy","useEffect","isSortInitiated","useRef","multiAssetFunds","useMemo","current","filter","FundName","includes","getMultiAssetFunds","handleSortFunds","useCallback","isNumeric","newSortBy","getNewSortByProps","showMultiAssetPortfolioFundsAtTop","priorityFunds","result","some","f","sort","sortFunds","FundRiskRating","FundStartDate","a","b","split","Aday","Amonth","Ayear","A","Date","getTime","Bday","Bmonth","Byear","B","getSortedFunds","handleSortSelectedFunds","sortedSelected","slice","sortSelectedFunds","onTableHeadClick","headIndex","handler","0","overflowX","top","left","TableHeader","maxH","minW","w","overflowY","td","border-collapse","FundsTableHead","FundsTableBody","tableData","target","prev","item","prevSortBy","justifyContent","zIndex","mb","mr","textTransform","fontWeight","map","index","shouldShowArrow","isDesc","shadow","boxShadow","pt","px","borderBottomWidth","borderBottomColor","onClick","whiteSpace","_active","_focus","rightIcon","mt","FundId","TableBodyRowMemoized","isSelected","fund","TableBodyRow","date","dd","mm","yyyy","FundFactsheet","SfdrArticleRating","OneMonthGrowthPercent","SixMonthGrowthPercent","OneYearGrowthPercent","ThreeYearGrowthPercent","FiveYearGrowthPercent","TenYearGrowthPercent","PerformanceTo","fundDetailUrl","useFundCentreUrls","downloadFactSheet","window","open","spacing","style","to","placement","maxWidth","aria-label","textAlign","py","visibility","onChange","formatRowValue","rowPropsAreEqual","next","memo","checkbox_1","enumerable","get"],"mappings":"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","file":"6589d7293930351123cfc7a270ba1adef3bf701f-dc92a11a0020ff920d67.js","sourcesContent":["\"use strict\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkbox = exports.IndeterminateIcon = exports.CheckedIconMIL = exports.CheckedIcon = void 0;\n\nvar react_1 = __importDefault(require(\"react\"));\n\nvar react_2 = require(\"@chakra-ui/react\");\n\nvar ilgroupdesignsystem_atoms_text_1 = require(\"@irishlife/ilgroupdesignsystem.atoms.text\");\n\nexports.CheckedIcon = (0, react_2.createIcon)({\n displayName: 'CheckedIcon',\n viewBox: '0 0 25 24',\n path: [react_1.default.createElement(\"rect\", {\n key: \"1\",\n x: \".5\",\n width: \"24\",\n height: \"24\",\n rx: \"4\",\n fill: \"#50C9B5\"\n }), react_1.default.createElement(\"path\", {\n key: \"2\",\n d: \"m19.5 8-9 9-5-5\",\n stroke: \"#fff\",\n fill: \"#50C9B5\",\n strokeWidth: \"3\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })]\n});\nexports.CheckedIconMIL = (0, react_2.createIcon)({\n displayName: 'CheckedIcon',\n viewBox: '0 0 25 24',\n path: [react_1.default.createElement(\"rect\", {\n key: \"1\",\n x: \".5\",\n width: \"24\",\n height: \"24\",\n rx: \"4\",\n fill: \"#5E6CDA\"\n }), react_1.default.createElement(\"path\", {\n key: \"2\",\n d: \"m19.5 8-9 9-5-5\",\n stroke: \"#fff\",\n fill: \"#5E6CDA\",\n strokeWidth: \"3\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })]\n});\nexports.IndeterminateIcon = (0, react_2.createIcon)({\n displayName: 'IndeterminateIcon',\n viewBox: '0 0 25 24',\n path: [react_1.default.createElement(\"rect\", {\n key: \"1\",\n x: \".5\",\n width: \"24\",\n height: \"24\",\n rx: \"4\",\n fill: \"currentColor\"\n }), react_1.default.createElement(\"path\", {\n key: \"2\",\n d: \"M19.5 12h-14\",\n stroke: \"#717FE2\",\n fill: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })]\n});\n\nvar checkboxBaseStyles = function checkboxBaseStyles(variant, variantMIL) {\n return {\n '.chakra-checkbox__control': {\n transition: 'all 0.2s',\n borderWidth: variantMIL ? '1px' : '2px',\n borderColor: variantMIL ? 'brand.400' : 'transparent',\n rounded: '4px',\n bg: variant === 'outline' ? 'white' : 'brand.200',\n _hover: {\n borderColor: variant === 'outline' ? 'brand.200' : 'brand.300'\n }\n }\n };\n};\n\nfunction CustomIcon(props) {\n var variant = props.variant,\n isIndeterminate = props.isIndeterminate,\n isChecked = props.isChecked,\n variantMIL = props.variantMIL;\n var color = variant === 'filled' ? 'brand.200' : 'white';\n if (isIndeterminate) return react_1.default.createElement(react_2.Icon, {\n as: exports.IndeterminateIcon,\n color: color,\n fontSize: 22\n });\n if (isChecked && variantMIL) return react_1.default.createElement(react_2.Icon, {\n as: exports.CheckedIconMIL,\n fontSize: 22\n });\n if (isChecked) return react_1.default.createElement(react_2.Icon, {\n as: exports.CheckedIcon,\n fontSize: 22\n });\n return null;\n}\n\nexports.Checkbox = react_1.default.forwardRef(function (props, ref) {\n var _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'filled' : _props$variant,\n children = props.children,\n variantMIL = props.variantMIL,\n rest = __rest(props, [\"variant\", \"children\", \"variantMIL\"]);\n\n return react_1.default.createElement(react_2.Checkbox, Object.assign({\n \"data-testid\": \"Checkbox\",\n ref: ref\n }, rest, {\n display: \"flex\",\n alignItems: \"center\",\n size: \"lg\",\n sx: checkboxBaseStyles(variant, variantMIL),\n icon: react_1.default.createElement(CustomIcon, {\n variant: variant,\n variantMIL: variantMIL\n })\n }), children && react_1.default.createElement(ilgroupdesignsystem_atoms_text_1.Text, {\n pl: 1,\n as: \"span\",\n fontSize: \"16px\"\n }, children));\n});","import {\n Box,\n HStack,\n Table,\n TableContainer,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n} from '@chakra-ui/react'\nimport { Button } from '@irishlife/ilgroupdesignsystem.atoms.button'\nimport { Checkbox } from '@irishlife/ilgroupdesignsystem.atoms.checkbox'\nimport { IconButton } from '@irishlife/ilgroupdesignsystem.atoms.icon-button'\nimport { Text } from '@irishlife/ilgroupdesignsystem.atoms.text'\nimport { Tooltip } from '@irishlife/ilgroupdesignsystem.atoms.tooltip'\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n DocumentDownloadIcon,\n} from '@irishlife/ilgroupdesignsystem.icons'\nimport { Link } from '@reach/router'\nimport { useFundCentreUrls } from 'common/hooks/useFundCentreUrls'\nimport React from 'react'\n\nconst months = {\n Jan: 0,\n Feb: 1,\n Mar: 2,\n Apr: 3,\n May: 4,\n Jun: 5,\n Jul: 6,\n Aug: 7,\n Sep: 8,\n Oct: 9,\n Nov: 10,\n Dec: 11,\n}\n\nconst ratingColourMap: Record = {\n 1: '#222E65',\n 2: '#5158A2',\n 3: '#009ED1',\n 4: '#C9D52C',\n 5: '#F8B613',\n 6: '#E45A25',\n 7: '#AB1F2C',\n}\n\nconst headers = [\n { label: 'fund name', key: 'FundName' },\n { label: 'risk', key: 'FundRiskRating' },\n { label: 'SFDR category', key: 'SfdrArticleRating' },\n { label: 'launch date', key: 'FundStartDate' },\n { label: 'select', key: 'SelectedFund' },\n { label: '1 month', key: 'OneMonthGrowthPercent' },\n { label: '6 months', key: 'SixMonthGrowthPercent' },\n { label: '1 year', key: 'OneYearGrowthPercent' },\n { label: '3 years', key: 'ThreeYearGrowthPercent' },\n { label: '5 years', key: 'FiveYearGrowthPercent' },\n { label: '10 years', key: 'TenYearGrowthPercent' },\n { label: 'performance to', key: 'SinceLaunchPercent' },\n]\n\nconst styles = {\n article8: {\n width: 0,\n height: 0,\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderBottom: '10px solid limegreen',\n position: 'relative',\n verticalAlign: 'top',\n marginRight: '5px',\n },\n article9: {\n width: 0,\n height: 0,\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderBottom: '10px solid darkgreen',\n position: 'relative',\n verticalAlign: 'top',\n marginRight: '5px',\n },\n}\n\nexport function FundsTable(props: FundsTableProps) {\n const { data, defaultSelected = [], onSelect } = props\n const [selectedFunds, setSelectedFunds] = React.useState(defaultSelected)\n const [tableDataSorted, setTableDataSorted] = React.useState([])\n const [sortBy, setSortBy] = React.useState({\n type: 'desc',\n key: 'FundName',\n })\n\n React.useEffect(() => {\n onSelect(selectedFunds)\n }, [onSelect, selectedFunds])\n\n let isSortInitiated = React.useRef(false)\n\n const multiAssetFunds = React.useMemo(() => {\n if (!data || isSortInitiated.current) return []\n return getMultiAssetFunds(data)\n }, [data, isSortInitiated])\n\n const handleSortFunds = React.useCallback(\n ({ key, isNumeric }) => {\n const newSortBy = getNewSortByProps(sortBy, key, isNumeric)\n if (!data || newSortBy.key === 'SelectedFund') return\n // we want to show the multiAssetFunds at the top only on the first render\n const showMultiAssetPortfolioFundsAtTop = !isSortInitiated.current\n let priorityFunds = showMultiAssetPortfolioFundsAtTop\n ? multiAssetFunds\n : []\n let result = data\n if (showMultiAssetPortfolioFundsAtTop) {\n // filter out multiAssetFunds\n result = data.filter(\n ({ FundName }) =>\n !priorityFunds.some((f) => f.FundName === FundName)\n )\n }\n result = getSortedFunds({ data: result, sortBy: newSortBy })\n setTableDataSorted([...priorityFunds, ...result])\n setSortBy(newSortBy)\n },\n [data, multiAssetFunds, sortBy]\n )\n\n const handleSortSelectedFunds = React.useCallback(() => {\n if (\n selectedFunds.length === 0 ||\n selectedFunds.length === tableDataSorted.length\n )\n return\n const newSortBy = getNewSortByProps(sortBy, 'SelectedFund')\n const sortedSelected = tableDataSorted\n .slice()\n .sort(sortSelectedFunds({ ...newSortBy, selectedFunds }))\n setTableDataSorted(sortedSelected)\n setSortBy(newSortBy)\n }, [sortBy, selectedFunds, tableDataSorted])\n\n React.useMemo(() => {\n if (data) handleSortFunds({ type: 'desc', key: 'FundName' })\n // run only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data])\n\n const onTableHeadClick = React.useCallback(\n (headIndex: number) => {\n isSortInitiated.current = true\n const sortHandlers: Record = {\n 0: () => handleSortFunds({ key: 'FundName' }),\n 1: () =>\n handleSortFunds({ key: 'FundRiskRating', isNumeric: true }),\n 2: () => handleSortFunds({ key: 'FundStartDate' }),\n 3: () => handleSortSelectedFunds(),\n }\n const handler = sortHandlers[headIndex]\n if (handler) handler()\n },\n [handleSortFunds, handleSortSelectedFunds]\n )\n\n const onSelectFund = (e: React.ChangeEvent) => {\n const { value } = e.target\n const isChecked = selectedFunds.includes(value)\n if (isChecked) {\n setSelectedFunds((prev) => prev.filter((item) => item !== value))\n } else {\n setSelectedFunds((prev) => [...prev, value])\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction getMultiAssetFunds(data: Fund[]) {\n return data.filter(({ FundName }) =>\n (FundName as string).includes('Multi Asset Portfolio Fund')\n )\n}\n\ntype FundsTableProps = {\n data: Record[]\n defaultSelected: string[]\n onSelect: (values: string[]) => void\n children?: React.ReactNode\n}\n\nfunction getNewSortByProps(\n prevSortBy: SortBy,\n key: SortKey,\n isNumeric = false\n) {\n const hasBeenSorted = prevSortBy.key === key\n const newType = hasBeenSorted && prevSortBy.type === 'asc' ? 'desc' : 'asc'\n return { key, isNumeric, type: newType } as SortBy\n}\n\nfunction TableHeader() {\n return (\n \n \n \n Fund Performance - Cumulative\n \n \n \n )\n}\n\ntype FundsTableHeadProps = {\n sortBy: SortBy\n onTableHeadClick: (index: number) => void\n}\n\nfunction FundsTableHead(props: FundsTableHeadProps) {\n const { sortBy, onTableHeadClick } = props\n return (\n \n \n {headers.map(({ label, key }, index) => {\n const shouldShowArrow = index <= 3\n const isDesc = sortBy.type === 'desc' && sortBy.key === key\n return (\n \n \n onTableHeadClick(index)}\n bg='inherit'\n whiteSpace='normal'\n color='#6E6893'\n _hover={{}}\n _active={{}}\n width='full'\n textTransform='uppercase'\n rounded='none'\n display='flex'\n justifyContent={\n index >= 2 ? 'center' : 'start'\n }\n px={3}\n // px={0}\n fontSize={12}\n fontWeight='bold'\n _focus={{\n shadow: shouldShowArrow\n ? 'outline'\n : 'none',\n }}\n // @ts-ignore\n rightIcon={\n shouldShowArrow &&\n (isDesc ? (\n \n ) : (\n \n ))\n }\n >\n {label}\n \n \n \n )\n })}\n \n \n )\n}\n\ntype FundsTableBodyProps = {\n tableData: Fund[]\n onSelect: (e: React.ChangeEvent) => void\n selectedFunds: string[]\n}\n\nfunction FundsTableBody(props: FundsTableBodyProps) {\n const { tableData, onSelect, selectedFunds } = props\n return (\n \n {tableData.map((item: Fund) => {\n const isChecked = selectedFunds.includes(`${item.FundId}`)\n return (\n \n )\n })}\n \n )\n}\n\ntype TableBodyRowProps = {\n isSelected: boolean\n onSelect: (e: React.ChangeEvent) => void\n fund: Fund\n}\n\nfunction TableBodyRow(props: TableBodyRowProps) {\n const { isSelected, onSelect, fund } = props\n const {\n FundFactsheet,\n FundName,\n FundRiskRating,\n SfdrArticleRating,\n FundId,\n FundStartDate,\n OneMonthGrowthPercent,\n SixMonthGrowthPercent,\n OneYearGrowthPercent,\n ThreeYearGrowthPercent,\n FiveYearGrowthPercent,\n TenYearGrowthPercent,\n PerformanceTo,\n } = fund\n\n const { fundDetailUrl } = useFundCentreUrls()\n\n const downloadFactSheet = React.useCallback(() => {\n window.open(FundFactsheet as string, '_blank')\n }, [FundFactsheet])\n\n return (\n \n \n \n \n \n \n {FundName}\n \n \n \n \n \n \n }\n />\n \n \n \n \n \n \n IL{FundRiskRating}\n \n \n \n {' '}\n \n \n {SfdrArticleRating === '8' ? (\n \n ) : SfdrArticleRating === '9' ? (\n \n ) : (\n ''\n )}\n \n \n \n \n {formatDate(FundStartDate as string)}\n \n \n \n \n \n \n \n {formatRowValue(OneMonthGrowthPercent as string)}\n \n \n {formatRowValue(SixMonthGrowthPercent as string)}\n \n \n {formatRowValue(OneYearGrowthPercent as string)}\n \n \n {formatRowValue(ThreeYearGrowthPercent as string)}\n \n \n {formatRowValue(FiveYearGrowthPercent as string)}\n \n \n {formatRowValue(TenYearGrowthPercent as string)}\n \n \n {PerformanceTo}\n \n \n )\n}\n\n// @ts-ignore\nfunction rowPropsAreEqual(prev, next) {\n return prev.isSelected === next.isSelected\n}\n\nconst TableBodyRowMemoized = React.memo(TableBodyRow, rowPropsAreEqual)\n\ntype Month = keyof typeof months\nfunction sortFundsByDate({ type, key }: SortBy) {\n return (a: Fund, b: Fund) => {\n const [Aday, Amonth, Ayear] = (a[key] as string).split(' ')\n const A = new Date(+Ayear, months[Amonth as Month], +Aday).getTime()\n const [Bday, Bmonth, Byear] = (b[key] as string).split(' ')\n const B = new Date(+Byear, months[Bmonth as Month], +Bday).getTime()\n if (type === 'asc') return A - B\n return B - A\n }\n}\n\ntype Fund = Record\n\nfunction sortSelectedFunds({\n type,\n selectedFunds,\n}: SortBy & { selectedFunds: string[] }) {\n return (a: Fund, b: Fund) => {\n const A = a['FundId'] as string\n const B = b['FundId'] as string\n if (type === 'asc') {\n if (selectedFunds.includes(A)) return -1\n if (selectedFunds.includes(B)) return 1\n return 0\n }\n if (type === 'desc') {\n if (selectedFunds.includes(A)) return 1\n if (selectedFunds.includes(B)) return -1\n return 0\n }\n return 0\n }\n}\n\nfunction formatDate(date: string) {\n const [dd, mm, yyyy] = date.split(' ')\n return `${dd} ${mm} ${yyyy}`\n}\n\ntype GetSortedFunds = {\n data: Fund[]\n sortBy: SortBy\n}\n\nfunction getSortedFunds(props: GetSortedFunds) {\n const { data, sortBy } = props\n const sortFundsFnMap: Record = {\n FundName: () => [...data].sort(sortFunds(sortBy)),\n FundRiskRating: () => [...data].sort(sortFunds(sortBy)),\n FundStartDate: () => [...data].sort(sortFundsByDate(sortBy)),\n }\n return sortFundsFnMap[sortBy.key]()\n}\n\nfunction formatRowValue(value: string) {\n return value === 'N/A' ? '-' : value + '%'\n}\n\ntype SortKey = 'FundName' | 'FundRiskRating' | 'FundStartDate' | 'SelectedFund'\ntype SortBy = {\n type: 'desc' | 'asc'\n key: SortKey\n isNumeric?: boolean\n}\n\nfunction sortFunds({ type, key, isNumeric }: SortBy) {\n return (a: Fund, b: Fund) => {\n const A = isNumeric ? +a[key] : a[key]\n const B = isNumeric ? +b[key] : b[key]\n if (type === 'asc') {\n if (A < B) return -1\n if (B < A) return 1\n return 0\n }\n if (type === 'desc') {\n if (A > B) return -1\n if (B > A) return 1\n return 0\n }\n return 0\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkbox = void 0;\n\nvar checkbox_1 = require(\"./checkbox\");\n\nObject.defineProperty(exports, \"Checkbox\", {\n enumerable: true,\n get: function get() {\n return checkbox_1.Checkbox;\n }\n});"],"sourceRoot":""}