{"version":3,"file":"7655de57aa6fa0afda50.bundle.js","mappings":"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","sources":["webpack://vaneckreact/./FundPages/Components/CommonBlocks/FundTable.tsx","webpack://vaneckreact/./FundPages/blocks/Links.tsx","webpack://vaneckreact/./FundPages/blocks/Tooltips.tsx"],"sourcesContent":["import './FundTable.scss';\r\nimport React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\r\nimport {LinkItem, Links} from '../../blocks/Links';\r\nimport parse from \"html-react-parser\";\r\nimport { Tooltip } from '../../blocks/Tooltips';\r\n\r\nexport type HeaderProperties = {\r\n  title: string;\r\n  subTitle?: string;\r\n  ticker?: string;\r\n  asOfDateText?: string;\r\n  asOfDate?: string;\r\n  links?: LinkItem[];\r\n  tooltipText?: string;\r\n    asOfDateInSameLine?: Boolean;\r\n    ignoreWidowInTitle?: Boolean;\r\n};\r\n\r\nexport type TableColumn = {\r\n    css?: string,\r\n    value: string,\r\n    columnName?:string,\r\n    colSpan?:number\r\n    rowSpan?:number\r\n    multipleRows?: TableColumn[][]\r\n    tooltipText?: string | null;\r\n}\r\n\r\nexport type TableProperties = {\r\n    tableCssClass?: string,\r\n    tableTitle?: HeaderProperties | null,\r\n    tableColumns?: TableColumn[],\r\n    tableRows?: any[],\r\n    footerText?: string\r\n}\r\n\r\nexport type FundTableBlockDataProperties = {\r\n    blockID: Number,\r\n    pageID: Number,\r\n    setMarkup: Function\r\n}\r\n\r\n\r\nexport const FundTable = ({tableData}:{tableData?: TableProperties | null}) => {\r\n    return (\r\n      <>\r\n        <FundTableTitle headerData={tableData?.tableTitle}/>\r\n        <FundTableWithoutTitle tableData={tableData}/>\r\n      </>\r\n    )\r\n};\r\nexport const drawSvgMobileIcon = () =>{\r\n  return (\r\n    <svg\r\n      width=\"90px\"\r\n      height=\"90px\"\r\n      viewBox=\"0 0 90 90\"\r\n      version=\"1.1\"\r\n      xmlns=\"http://www.w3.org/2000/svg\"\r\n      xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n    >\r\n      <title>Scroll Icon</title>\r\n      <g\r\n        id=\"Fund-Pages\"\r\n        stroke=\"none\"\r\n        stroke-width=\"1\"\r\n        fill=\"none\"\r\n        fill-rule=\"evenodd\"\r\n      >\r\n        <g\r\n          id=\"DIG42--Mobile-375px\"\r\n          transform=\"translate(-143.000000, -475.000000)\"\r\n        >\r\n          <g id=\"Scroll-Icon\" transform=\"translate(143.000000, 475.000000)\">\r\n            <circle\r\n              id=\"Oval\"\r\n              fill=\"#17468F\"\r\n              opacity=\"0.85\"\r\n              cx=\"45\"\r\n              cy=\"45\"\r\n              r=\"45\"\r\n            ></circle>\r\n            <g\r\n              id=\"Mouse-Scroll-Icon\"\r\n              transform=\"translate(29.000000, 12.000000)\"\r\n              fill=\"#FFFFFF\"\r\n            >\r\n              <path\r\n                d=\"M7.3025,12.1 C6.9625,12.1 6.6405,11.969 6.3965,11.73 L1.6385,6.973 C1.4635,6.804 1.3375,6.58 1.2815,6.334 C1.1845,5.896 1.3235,5.433 1.6445,5.121 L6.3925,0.373 C6.6405,0.131 6.9625,0 7.3045,0 C7.6625,0.004 7.9865,0.142 8.2295,0.389 C8.4685,0.633 8.6025,0.969 8.5995,1.309 C8.5945,1.658 8.4565,1.981 8.2105,2.223 L5.6755,4.758 L9.6485,4.758 C9.9995,4.758 10.3215,4.89 10.5655,5.129 C10.8115,5.371 10.9515,5.706 10.9515,6.05 C10.9515,6.394 10.8105,6.73 10.5665,6.971 C10.3225,7.21 9.9995,7.343 9.6575,7.343 L5.6755,7.343 L8.2135,9.881 C8.4565,10.119 8.5945,10.442 8.5995,10.788 C8.6025,11.137 8.4715,11.463 8.2305,11.71 C7.9865,11.959 7.6615,12.097 7.3165,12.1 L7.3025,12.1 Z\"\r\n                id=\"Fill-1\"\r\n              ></path>\r\n              <path\r\n                d=\"M1.7694,6.2236 C1.8034,6.3746 1.8814,6.5116 1.9924,6.6196 L6.7454,11.3726 C6.8964,11.5206 7.1004,11.6026 7.3114,11.6006357 C7.5224,11.5976 7.7244,11.5116 7.8724,11.3606 C8.0204,11.2096 8.1024,11.0066 8.0994,10.7946 C8.0974,10.5836 8.0104,10.3826 7.8604,10.2336 L4.4674,6.8426 L9.6484,6.8426 C9.8604,6.8456 10.0644,6.7626 10.2154,6.6146 C10.3664,6.4656 10.4514,6.2626 10.4514,6.0496 C10.4514,5.8376 10.3664,5.6346 10.2154,5.4856 C10.0644,5.3376 9.8604,5.2546 9.6484,5.2576 L4.4674,5.2576 L7.8604,1.8656 C8.0104,1.7176 8.0974,1.5166 8.0994,1.3056 C8.1024,1.0936 8.0204,0.8906 7.8724,0.7396 C7.7244,0.5886 7.5224,0.5026 7.3114,0.499564255 C7.1004,0.4976 6.8964,0.5796 6.7454,0.7276 L1.9924,5.4806 C1.7934,5.6726 1.7094,5.9536 1.7694,6.2236 Z\"\r\n                id=\"Fill-3\"\r\n              ></path>\r\n              <path\r\n                d=\"M15.5657,8.1342 C14.4167,8.1342 13.4807,7.1992 13.4807,6.0502 C13.4807,4.9012 14.4167,3.9662 15.5657,3.9662 C16.7147,3.9662 17.6497,4.9012 17.6497,6.0502 C17.6497,7.1992 16.7147,8.1342 15.5657,8.1342\"\r\n                id=\"Fill-5\"\r\n              ></path>\r\n              <path\r\n                d=\"M13.9809,6.05 C13.9809,6.925 14.6909,7.634 15.5659,7.634 C16.4409,7.634 17.1499,6.925 17.1499,6.05 C17.1499,5.175 16.4409,4.466 15.5659,4.466 C14.6909,4.466 13.9809,5.175 13.9809,6.05\"\r\n                id=\"Fill-7\"\r\n              ></path>\r\n              <path\r\n                d=\"M23.7879,12.1181 C23.6439,12.1181 23.5019,12.0941 23.3659,12.0471 C22.8899,11.8831 22.5509,11.4531 22.5009,10.9511 C22.4569,10.5541 22.6079,10.1461 22.9049,9.8681 L25.4319,7.3431 L21.4819,7.3431 C20.8019,7.3431 20.2509,6.8561 20.1699,6.2111 C20.1219,5.8341 20.2429,5.4571 20.4989,5.1771 C20.7439,4.9101 21.0909,4.7571 21.4519,4.7571 L25.4309,4.7581 L22.8929,2.2201 C22.6479,1.9791 22.5109,1.6551 22.5069,1.3091 C22.5019,0.9701 22.6379,0.6341 22.8769,0.3891 C23.1189,0.1421 23.4419,0.0041 23.7889,0.0001 C24.1439,0.0001 24.4659,0.1311 24.7099,0.3691 L29.4679,5.1271 C29.7119,5.3631 29.8559,5.7011 29.8559,6.0501 C29.8559,6.3981 29.7119,6.7371 29.4609,6.9791 L24.7139,11.7261 C24.4799,11.9721 24.1399,12.1181 23.7879,12.1181\"\r\n                id=\"Fill-9\"\r\n              ></path>\r\n              <path\r\n                d=\"M22.9988,10.9027 C23.0288,11.2107 23.2358,11.4737 23.5288,11.5747 C23.8218,11.6757 24.1468,11.5977 24.3608,11.3727 L29.1138,6.6197 C29.2688,6.4697 29.3558,6.2647 29.3558,6.0497 C29.3558,5.8357 29.2688,5.6297 29.1138,5.4807 L24.3608,0.7267 C24.2098,0.5797 24.0058,0.4977 23.7948,0.499664254 C23.5838,0.5017 23.3818,0.5887 23.2338,0.7397 C23.0858,0.8897 23.0048,1.0937 23.0068,1.3047 C23.0088,1.5167 23.0958,1.7177 23.2468,1.8657 L26.6388,5.2577 L21.4828,5.2577 C21.2508,5.2487 21.0258,5.3427 20.8678,5.5137 C20.7108,5.6857 20.6368,5.9177 20.6658,6.1487 C20.7178,6.5577 21.0728,6.8587 21.4828,6.8427 L26.6388,6.8427 L23.2468,10.2337 C23.0628,10.4057 22.9708,10.6527 22.9988,10.9027 Z\"\r\n                id=\"Fill-11\"\r\n              ></path>\r\n              <path\r\n                d=\"M15.553,19.0492 C8.402,19.0492 2.585,24.8662 2.585,32.0172 L2.585,49.4462 C2.585,56.5972 8.402,62.4152 15.553,62.4152 C22.703,62.4152 28.521,56.5972 28.521,49.4462 L28.521,32.0172 C28.521,24.8662 22.703,19.0492 15.553,19.0492 M15.553,65.0002 C6.977,65.0002 0,58.0232 0,49.4472 L0,32.0182 C0,23.4422 6.977,16.4652 15.553,16.4652 C24.129,16.4652 31.106,23.4422 31.106,32.0182 L31.106,49.4472 C31.106,58.0232 24.129,65.0002 15.553,65.0002\"\r\n                id=\"Fill-13\"\r\n              ></path>\r\n              <path\r\n                d=\"M29.0211,49.4469 C29.0211,56.9219 23.0281,62.9159 15.5531,62.9159 C8.0781,62.9159 2.0851,56.9219 2.0851,49.4469 L2.0851,32.0179 C2.0851,24.5429 8.0781,18.5499 15.5531,18.5499 L15.5531,18.5499 C23.0281,18.5499 29.0211,24.5429 29.0211,32.0179 L29.0211,49.4469 Z M15.5531,16.9649 L15.5531,16.9649 C7.2281,16.9649 0.5001,23.6919 0.5001,32.0179 L0.5001,49.4469 C0.5001,57.7729 7.2271,64.4999 15.5531,64.4999 C23.8781,64.4999 30.6061,57.7729 30.6061,49.4469 L30.6061,32.0179 C30.6061,23.6919 23.8781,16.9649 15.5531,16.9649 L15.5531,16.9649 Z\"\r\n                id=\"Fill-16\"\r\n              ></path>\r\n              <path\r\n                d=\"M15.553,25.3876 C14.935,25.3876 14.469,25.8536 14.469,26.4716 L14.469,32.8096 C14.469,33.4286 14.935,33.8946 15.553,33.8946 C16.171,33.8946 16.637,33.4286 16.637,32.8096 L16.637,26.4716 C16.637,25.8536 16.171,25.3876 15.553,25.3876 M15.553,36.4786 C13.53,36.4786 11.884,34.8326 11.884,32.8096 L11.884,26.4716 C11.884,24.4496 13.53,22.8036 15.553,22.8036 C17.576,22.8036 19.221,24.4496 19.221,26.4716 L19.221,32.8096 C19.221,34.8326 17.576,36.4786 15.553,36.4786\"\r\n                id=\"Fill-18\"\r\n              ></path>\r\n              <path\r\n                d=\"M17.1374,32.81 C17.1374,33.701 16.4444,34.394 15.5534,34.394 C14.6614,34.394 13.9684,33.701 13.9684,32.81 L13.9684,26.472 C13.9684,25.581 14.6614,24.888 15.5534,24.888 C16.4444,24.888 17.1374,25.581 17.1374,26.472 L17.1374,32.81 Z M15.5534,23.303 C13.8114,23.303 12.3844,24.73 12.3844,26.472 L12.3844,32.81 C12.3844,34.552 13.8114,35.979 15.5534,35.979 C17.2944,35.979 18.7214,34.552 18.7214,32.81 L18.7214,26.472 C18.7214,24.73 17.2944,23.303 15.5534,23.303 L15.5534,23.303 Z\"\r\n                id=\"Fill-20\"\r\n              ></path>\r\n            </g>\r\n          </g>\r\n        </g>\r\n      </g>\r\n    </svg>\r\n  );\r\n}\r\nexport const drawSvgDesktop = () =>{\r\n  var scrollText = document.getElementsByTagName(\"ve-scroll-text\")[0]?.innerHTML ? document.getElementsByTagName(\"ve-scroll-text\")[0]?.innerHTML : \"Scroll\";\r\n  \r\n  var scrollTag = <tspan x=\"297\" y=\"26\">{scrollText}</tspan>\r\n  return(\r\n    <svg\r\n  width=\"690px\"\r\n  height=\"41px\"\r\n  viewBox=\"0 0 690 41\"\r\n  version=\"1.1\"\r\n  xmlns=\"http://www.w3.org/2000/svg\"\r\n  xmlnsXlink=\"http://www.w3.org/1999/xlink\"\r\n  >\r\n  <defs>\r\n    <filter x=\"0\" y=\"0\" width=\"1\" height=\"1\" id=\"solid\">\r\n      <feFlood flood-color=\"#17468f\" result=\"bg\" />\r\n      <feMerge>\r\n        <feMergeNode in=\"bg\"/>\r\n        <feMergeNode in=\"SourceGraphic\"/>\r\n      </feMerge>\r\n    </filter>\r\n  </defs>\r\n  s<title>Scroll Indicator</title>\r\n  <g\r\n    id=\"Fund-Pages\"\r\n    stroke=\"none\"\r\n    strokeWidth=\"1\"\r\n    fill=\"none\"\r\n    fillRule=\"evenodd\"\r\n  >\r\n    <g\r\n      id=\"DIG42-Performance-Tablet-768px\"\r\n      transform=\"translate(-39.000000, -624.000000)\"\r\n    >\r\n      <g\r\n        id=\"Scroll-Indicator\"\r\n        transform=\"translate(39.000000, 624.000000)\"\r\n      >\r\n        <rect\r\n          id=\"Rectangle\"\r\n          fill=\"#17468F\"\r\n          opacity=\"0.9\"\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"690\"\r\n          height=\"41\"\r\n        ></rect>\r\n        <g\r\n          id=\"Group\"\r\n          transform=\"translate(43.000000, 15.000000)\"\r\n          stroke=\"#E1E1E1\"\r\n          strokeLinecap=\"round\"\r\n          strokeLinejoin=\"round\"\r\n        >\r\n          <polyline\r\n            id=\"Path\"\r\n            strokeWidth=\"2\"\r\n            points=\"4.8 0 0 6 4.8 12\"\r\n          ></polyline>\r\n          <line\r\n            x1=\"290\"\r\n            y1=\"5.5\"\r\n            x2=\"5\"\r\n            y2=\"5.5\"\r\n            id=\"Path\"\r\n            strokeWidth=\"3\"\r\n            strokeDasharray=\"2,6\"\r\n          ></line>\r\n          <polyline\r\n            id=\"Path\"\r\n            strokeWidth=\"2\"\r\n            points=\"600 12 604.8 6 600 0\"\r\n          ></polyline>\r\n          <line\r\n            x1=\"290\"\r\n            y1=\"5.99897753\"\r\n            x2=\"600\"\r\n            y2=\"5.00102247\"\r\n            id=\"Path\"\r\n            strokeWidth=\"3\"\r\n            strokeDasharray=\"2,6\"\r\n          ></line>\r\n        </g>\r\n        <text\r\n          id=\"Scroll\"\r\n          fontFamily=\"OpenSans-Semibold, Open Sans\"\r\n          fontSize=\"14\"\r\n          fontWeight=\"500\"\r\n          line-spacing=\"18\"\r\n          letterSpacing=\"2.15384615\"\r\n          fill=\"#FFFFFF\"\r\n          filter=\"url(#solid)\"\r\n        >\r\n          {scrollTag}\r\n        </text>\r\n      </g>\r\n    </g>\r\n  </g>\r\n</svg>\r\n  )\r\n}\r\n// export default FundTable;\r\n\r\nexport const drawSvgDropdownButton = (mainItem: string) =>{\r\n  return(\r\n      <button\r\n        type=\"button\"\r\n        aria-haspopup=\"true\"\r\n        aria-expanded=\"false\"\r\n        className=\"dropdown__button dropdown__button-simple-toggle dropdown__button-default\"\r\n        data-toggle=\"dropdown\"\r\n      >\r\n        <span className=\"text-util-md dropdown-label\">{parse(mainItem)}</span>\r\n        <svg\r\n          aria-hidden=\"true\"\r\n          focusable=\"false\"\r\n          data-prefix=\"far\"\r\n          data-icon=\"chevron-down\"\r\n          className=\"svg-inline--fa fa-chevron-down fa-w-16 fa-2x dropdown__icon dropdown__icon-default\"\r\n          role=\"img\"\r\n          xmlns=\"http://www.w3.org/2000/svg\"\r\n          viewBox=\"0 0 18 18\"\r\n        >\r\n          <path\r\n            fill=\"currentColor\"\r\n            d=\"M2.26 4.88a.75.75 0 00-.54.21.75.75 0 000 1.07l6.75 6.75a.75.75 0 001.06 0l6.75-6.75a.75.75 0 000-1.07.75.75 0 00-1.06 0L9 11.31 2.78 5.1a.75.75 0 00-.52-.21z\"\r\n          ></path>\r\n        </svg>\r\n      </button>\r\n  )\r\n}\r\n\r\nexport const FundTableWithoutTitle = ({tableData, isFirstRender, isSortable, setTableInfo, originalTableData }: { tableData?: TableProperties | null; isFirstRender?: boolean; isSortable?: boolean; setTableInfo?: React.Dispatch<React.SetStateAction<TableProperties | undefined>>; originalTableData?: TableProperties } ) => {\r\n    isFirstRender = (isFirstRender === undefined) ? true: isFirstRender;\r\n    const [isScrollableTable, setIsScrollableTable] = useState<boolean>(false)\r\n    const [showScrollItems, setShowScrollItems] = useState<boolean>(false)\r\n    const scrollableClass = 'scrollable';\r\n    const outerTable = useRef<HTMLDivElement | null>(null);\r\n    const mainTable = useRef<HTMLTableElement | null>(null);\r\n    useEffect(()=>{\r\n        var outerTableWidth = outerTable.current?.offsetWidth;\r\n        var mainTableWidth = mainTable.current?.clientWidth;\r\n        if(outerTable.current !== null && !isSortable){\r\n            outerTable.current.scrollLeft = 0;\r\n        }\r\n        if(mainTableWidth && outerTableWidth){\r\n            if(mainTableWidth > outerTableWidth) {\r\n                setIsScrollableTable(true)\r\n                setShowScrollItems(true)\r\n                if(!isFirstRender && !showScrollItems){\r\n                    setShowScrollItems(false)\r\n                }\r\n            } else{\r\n                setIsScrollableTable(false)\r\n            }\r\n        }\r\n    },[tableData])\r\n\r\n    return (\r\n      <div\r\n        onScroll={() => {\r\n          setShowScrollItems(false);\r\n        }}\r\n        className={`table-container-m fund-explorer-table ${\r\n          isScrollableTable ? scrollableClass : \"\"\r\n        } ${showScrollItems && !isSortable? \"scroll-shadow\" : \"\"}`}\r\n        ref={outerTable}\r\n      >\r\n        <table\r\n          ref={mainTable}\r\n          style={{\r\n            borderWidth: \"0px\",\r\n            borderCollapse: \"collapse\",\r\n          }}\r\n          className={`table fund-listing-table w-100 ${\r\n            tableData?.tableCssClass ?? \"\"\r\n          } ${showScrollItems ? \"mb-0\" : \"\"}`}\r\n        >\r\n                {tableData?.tableColumns && <FundTableHeading tableData={tableData} columns={tableData?.tableColumns} isSortable={isSortable} setTableInfo={setTableInfo} originalTableData={originalTableData} />}\r\n            {tableData?.tableRows && <FundTableBody rowData={tableData?.tableRows} />}\r\n        </table>\r\n        {isScrollableTable && showScrollItems ? (\r\n          <div className=\"scrollable-section\">\r\n            <span className=\"d-none d-md-block\">\r\n              {drawSvgDesktop()}\r\n            </span>\r\n            <span className=\"d-md-none mobile-scroll\">\r\n              {drawSvgMobileIcon()}\r\n            </span>\r\n          </div>\r\n        ) : (\r\n          <></>\r\n        )}\r\n      </div>\r\n    );\r\n}\r\n\r\nexport const FundTableTitle = ({headerData}: {headerData?: HeaderProperties | null}) =>{\r\n    if(!headerData) return <></>\r\n  const { ticker, title, subTitle, asOfDate, asOfDateText, links, asOfDateInSameLine, tooltipText, ignoreWidowInTitle } = headerData;\r\n    const asOfClass = asOfDateInSameLine ? \"\" : \"d-block\";\r\n    const h3CssClass = ignoreWidowInTitle ? \"ignore-widow\" : \"\";\r\n\r\n    return (\r\n        <h3 className={h3CssClass}>\r\n        {parse(title)}{tooltipText && <Tooltip tooltipItem={{ Text: tooltipText }} />}\r\n        {/* @ts-ignore */}\r\n        {asOfDate && asOfDateText ? (\r\n          parse(`&nbsp;<span class=\"${asOfClass} mt-2\" vaneck_dtp=${ticker}> \r\n                ${asOfDateText}&nbsp;\r\n                ${asOfDate}\r\n            </span>`)\r\n        ) : (\r\n          <></>\r\n        )}\r\n      {subTitle ? (\r\n          parse(`<span class=\"${asOfClass} mt-2\"> \r\n                ${subTitle}\r\n            </span>`)\r\n      ) : (\r\n          <></>\r\n      )}\r\n      <Links links={links} cssClass=\"download\" gtm=\"content-item\" />\r\n      </h3>\r\n    );\r\n}\r\n\r\n\r\nexport const FundTableHeading = ({ tableData, columns, isSortable, setTableInfo, originalTableData }: { tableData?: TableProperties, columns?: TableColumn[], isSortable?: boolean, setTableInfo?: React.Dispatch<React.SetStateAction<TableProperties | undefined>>, originalTableData?: TableProperties  }) => {\r\n    const [selectedColumn, setSelectedColumn] = useState<TableColumn>()\r\n    const [sortStatus, setSortStatus] = useState<number>(0)   /** 0 = unsorted  1 = ascending order  2 = descending order*/\r\n    \r\n    useEffect(() => {\r\n        if (selectedColumn) { handleSorting(selectedColumn, tableData, setTableInfo, originalTableData, sortStatus) }\r\n    }, [sortStatus]);\r\n\r\n    if (typeof columns === \"undefined\" || columns.length <= 0) return <></>;\r\n    if (isSortable === true && isSortable && tableData) {\r\n        return (\r\n            <thead>\r\n                <tr>\r\n                    {columns.map((column: TableColumn, i: number) => {\r\n                        return (\r\n                            <th key={i} onClick={() => { setSelectedColumn(column); setSortStatus(sortStatus < 2 ? (sortStatus + 1) : 0) }} className={`sortable ${ selectedColumn?.columnName === column.columnName? \"underlined\": \"\"}`}>\r\n                                <div className={`align-items-center sort-table-thead ${column.columnName === \"SubAssetClass\" ? 'justify-items-center' : ''}`}>\r\n                                    <span className=\"table-thead\"> {typeof column.value == \"string\"\r\n                                        ? parse(column.value)\r\n                                        : column.value}\r\n                                        <div className=\"table-thead-icon\">\r\n                                            <svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"exchange-v\" className=\"svg-inline--fa fa-exchange-v fa-w-19 fa-sm icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 12\">\r\n                                                <path fill=\"currentColor\" d=\"M10.25 11.25a.5.5 0 00.5.5.5.5 0 00.5-.5V.75a.5.5 0 00-.5-.5.5.5 0 00-.5.5zm-2.7-7.78a.5.5 0 00.15.33.5.5 0 00.7 0l2.35-2.34L13.1 3.8a.5.5 0 00.7 0 .5.5 0 000-.7L11.1.4a.5.5 0 00-.7 0L7.7 3.1a.5.5 0 00-.15.37zm-4.8 7.78a.5.5 0 00.5.5.5.5 0 00.5-.5V.75a.5.5 0 00-.5-.5.5.5 0 00-.5.5zM.05 8.57a.5.5 0 00.15.33l2.7 2.7a.5.5 0 00.7 0l2.7-2.7a.5.5 0 000-.7.5.5 0 00-.7 0l-2.35 2.34L.9 8.2a.5.5 0 00-.7 0 .5.5 0 00-.15.37z\">\r\n                                                </path>\r\n                                            </svg>\r\n                                        </div>\r\n                                    </span>\r\n                                </div>\r\n                            </th>\r\n                        );\r\n                    })}\r\n                </tr>\r\n            </thead>\r\n        );\r\n    } else{\r\n        if (columns[0].multipleRows && columns[0].multipleRows.length > 0) {\r\n            return (\r\n                <thead>\r\n                    {columns[0].multipleRows.map((rowItems: TableColumn[], key: number) => {\r\n                        return (\r\n                            <tr key={key}>\r\n                                {rowItems.map((column: TableColumn, i: number) => {\r\n                                    return (\r\n                                        <th key={i} className={column.css ?? \"\"} colSpan={column.colSpan ?? 1} rowSpan={column.rowSpan ?? 1}>\r\n                                            {typeof column.value == \"string\"\r\n                                                ? parse(column.value)\r\n                                                : column.value}\r\n                                        </th>\r\n                                    );\r\n                                })}\r\n                            </tr>\r\n                        );\r\n                    })}\r\n                </thead>\r\n            );\r\n        } else {\r\n            return (\r\n                <thead>\r\n                    <tr>\r\n                        {columns.map((column: TableColumn, i: number) => {\r\n                            return (\r\n                                <th key={i} className={column.css ?? \"\"}>\r\n                                    {typeof column.value == \"string\"\r\n                                        ? parse(column.value)\r\n                                        : column.value}\r\n                                </th>\r\n                            );\r\n                        })}\r\n                    </tr>\r\n                </thead>\r\n            );\r\n        }\r\n    } \r\n};\r\n\r\nexport const FundTableBody = ({rowData}: {rowData?: any}) =>{\r\n    if(!rowData) return <></>\r\n    return(\r\n        <tbody>\r\n            {rowData.map((row: TableColumn[], i:number)=>{\r\n              const rowClass = row.find(x => x.css?.includes(\"highlight-row\")) ? \"highlight-row\":\"\";\r\n                return(\r\n                    <tr key={i} className={rowClass}>\r\n                        {row.map((item: TableColumn, j:number)=>{\r\n                            return(\r\n                              <td className={item.css} key={j} rowSpan={item.rowSpan ?? 1} colSpan={item.colSpan ?? 1}>\r\n                                {typeof (item.value) == \"string\" ? parse(item.value) : item.value}\r\n                                {typeof (item.tooltipText) == \"string\" && item.tooltipText != \"\" && <Tooltip tooltipItem={{ Text: item.tooltipText }} /> }\r\n                              </td>\r\n                            )\r\n                        })}\r\n                    </tr>\r\n                )\r\n            })}\r\n        </tbody>\r\n    )\r\n}\r\n\r\nexport interface IFundTableFooter {\r\n  footer?: string | null,\r\n  cssClass?: string,\r\n  alwaysExpandFooter?: boolean\r\n}\r\n\r\nexport const FundTableFooter = ({footer, cssClass, alwaysExpandFooter = false}: IFundTableFooter) =>{\r\n    if(footer === null) return <></>\r\n    \r\n    const isEuFund = document.getElementsByTagName(\"ve-is-eu-ticker\")[0]?.innerHTML === \"true\" ?? false;\r\n    //The footer is always expanded (not collapsible) for EU pages.\r\n    alwaysExpandFooter = alwaysExpandFooter || isEuFund;\r\n  \r\n    const footerLength = footer && footer.length;\r\n    const [footerCollapsedClass, setFooterCollapsedClass] = useState('');\r\n    const expandText = useMemo(() => document.getElementsByTagName(\"ve-disclosure-expand\")[0]?.innerHTML, [])\r\n    const collapseText = useMemo(() => document.getElementsByTagName(\"ve-disclosure-collapse\")[0]?.innerHTML, [])\r\n    const [footerTogglelabel, setFooterTogglelabel] = useState(expandText)\r\n\r\n    const footerElement = useRef<HTMLDivElement | null>(null);\r\n\r\n    useLayoutEffect(() => {\r\n        if (alwaysExpandFooter) return;\r\n        // if footer line count < 5 make it alwaysexpandedmenu\r\n        let lineCount = getLineCount(footerElement.current);\r\n        if (lineCount && lineCount > 5) {\r\n            setFooterCollapsedClass('collapsed-footer');\r\n        } else {\r\n            setFooterCollapsedClass('');\r\n        }\r\n    }, [footer]);\r\n\r\n    return (\r\n      <div ref={footerElement} className={`chart-disclaimer ${cssClass} ${footerCollapsedClass}`} onClick={!alwaysExpandFooter ? ()=>handleFooterclick(footerCollapsedClass, expandText, collapseText, setFooterCollapsedClass, setFooterTogglelabel) : undefined}>\r\n        {parse(footer ?? \"\")}\r\n        {(footerCollapsedClass.length !== 0 && !alwaysExpandFooter)?\r\n          <span className='collapse-text'>{footerTogglelabel}<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chevron-down\" className=\"svg-inline--fa fa-chevron-down fa-w-16 fa-lg gateway__toggle-icon\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"> <path fill=\"currentColor\" d=\"M2.26 4.88a.75.75 0 00-.54.21.75.75 0 000 1.07l6.75 6.75a.75.75 0 001.06 0l6.75-6.75a.75.75 0 000-1.07.75.75 0 00-1.06 0L9 11.31 2.78 5.1a.75.75 0 00-.52-.21z\"></path> </svg></span>\r\n        :<></>}\r\n      </div>\r\n    );\r\n}\r\n\r\nfunction handleFooterclick(tableClass: string, expandText: string, collapseText: string, setTableClass: React.Dispatch<React.SetStateAction<string>>, setFooterTogglelabel: React.Dispatch<React.SetStateAction<string>>): void {\r\n  if (tableClass === \"\") return;\r\n\r\n  if (tableClass === \"collapsed-footer\") {\r\n    setTableClass(\"expanded-footer\");\r\n    setFooterTogglelabel(collapseText)\r\n    return;\r\n\r\n  }\r\n    setTableClass(\"collapsed-footer\");\r\n    setFooterTogglelabel(expandText)\r\n}\r\n\r\nfunction getLineCount(element: HTMLDivElement | null) {\r\n\r\n    if (element != null) {\r\n        let footerElementHeight = element.getBoundingClientRect().height;\r\n        let lineHeight = parseFloat(getComputedStyle(element, null).getPropertyValue(\"line-height\"));\r\n\r\n        if (footerElementHeight == undefined) return null;\r\n\r\n        return footerElementHeight / lineHeight;\r\n    }\r\n    return null;\r\n}\r\n\r\nfunction handleSorting(selectedColumn?: TableColumn, tableData?: TableProperties, setTableInfo?: React.Dispatch<React.SetStateAction<TableProperties | undefined>>, originalTableData?: TableProperties, sortCounter?: Number) {\r\n\r\n    if (tableData && tableData.tableRows && selectedColumn) {\r\n        const sortingData = [...tableData.tableRows];\r\n\r\n        const filteredRowData = sortingData.map(item =>\r\n            item.filter((obj: TableColumn) => !obj.css?.includes('total'))\r\n        );\r\n        const removedEmptyRowData = filteredRowData.filter(item =>\r\n            item.length > 0);\r\n\r\n\r\n        const filteredDataWithTotal = sortingData.map(item =>\r\n            item.filter((obj: TableColumn) => obj.css?.includes('total'))\r\n        );\r\n        const removedEmptyWithTotal = filteredDataWithTotal.filter(item =>\r\n            item.length > 0);\r\n\r\n        if (sortCounter === 1) {\r\n            var sortAscending = []\r\n            if (removedEmptyWithTotal && removedEmptyWithTotal.length > 0) {\r\n                sortAscending = removedEmptyRowData.sort((a: any, b: any) => {\r\n                    const testNumber = /^-?\\d+(,\\d{3})*(\\.\\d+)?$/;\r\n\r\n                    const itemA = a.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testA = testNumber.test(itemA.value)\r\n\r\n                    const itemB = b.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testB = testNumber.test(itemB.value)\r\n\r\n                    if (testA && testB) {\r\n                        const numberA = testA ? Number(itemA?.value.replace(/,/g, '')) : itemA?.value;\r\n                        const numberB = testB ? Number(itemB?.value.replace(/,/g, '')) : itemB?.value;\r\n                        return numberA - numberB;\r\n                    } else {\r\n                        const stringA = itemA?.value || '';\r\n                        const stringB = itemB?.value || '';\r\n                        return stringA.localeCompare(stringB);\r\n                    }\r\n                });\r\n\r\n                const newArray = removedEmptyWithTotal[0]\r\n                sortAscending.push(newArray)\r\n\r\n            } else {\r\n                sortAscending = sortingData.sort((a: any, b: any) => {\r\n                    const testNumber = /^-?\\d+(,\\d{3})*(\\.\\d+)?$/;\r\n\r\n                    const itemA = a.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testA = testNumber.test(itemA.value)\r\n\r\n                    const itemB = b.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testB = testNumber.test(itemB.value)\r\n\r\n                    if (testA && testB) {\r\n                        const numberA = testA ? Number(itemA?.value.replace(/,/g, '')) : itemA?.value;\r\n                        const numberB = testB ? Number(itemB?.value.replace(/,/g, '')) : itemB?.value;\r\n                        return numberA - numberB;\r\n                    } else {\r\n                        const stringA = itemA?.value || '';\r\n                        const stringB = itemB?.value || '';\r\n                        return stringA.localeCompare(stringB);\r\n                    }\r\n                });\r\n            }\r\n            const updatedTableData = { ...tableData, tableRows: sortAscending }\r\n            setTableInfo?.(updatedTableData)\r\n\r\n        } else if (sortCounter === 2) {\r\n\r\n            var sortDescending = []\r\n            if (removedEmptyWithTotal && removedEmptyWithTotal.length > 0) {\r\n                sortDescending = removedEmptyRowData.sort((a: any, b: any) => {\r\n                    const testNumber = /^-?\\d+(,\\d{3})*(\\.\\d+)?$/;\r\n\r\n                    const itemA = a.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testA = testNumber.test(itemA.value)\r\n\r\n                    const itemB = b.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testB = testNumber.test(itemB.value)\r\n\r\n                    if (testA && testB) {\r\n                        const numberA = testA ? Number(itemA?.value.replace(/,/g, '')) : itemA?.value;\r\n                        const numberB = testB ? Number(itemB?.value.replace(/,/g, '')) : itemB?.value;\r\n                        return numberB - numberA;\r\n                    } else {\r\n                        const stringA = itemA?.value || '';\r\n                        const stringB = itemB?.value || '';\r\n                        return stringB.localeCompare(stringA);\r\n                    }\r\n                });\r\n\r\n                const newArray = removedEmptyWithTotal[0]\r\n                sortDescending.push(newArray)\r\n\r\n            } else {\r\n                sortDescending = sortingData.sort((a: any, b: any) => {\r\n                    const testNumber = /^-?\\d+(,\\d{3})*(\\.\\d+)?$/;\r\n\r\n                    const itemA = a.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testA = testNumber.test(itemA.value)\r\n\r\n                    const itemB = b.find((item: TableColumn) => item.columnName === selectedColumn.columnName)\r\n                    const testB = testNumber.test(itemB.value)\r\n\r\n                    if (testA && testB) {\r\n                        const numberA = testA ? Number(itemA?.value.replace(/,/g, '')) : itemA?.value;\r\n                        const numberB = testB ? Number(itemB?.value.replace(/,/g, '')) : itemB?.value;\r\n                        return numberB - numberA;\r\n                    } else {\r\n                        const stringA = itemA?.value || '';\r\n                        const stringB = itemB?.value || '';\r\n                        return stringB.localeCompare(stringA);\r\n                    }\r\n                });\r\n            }\r\n            const updatedTableData = { ...tableData, tableRows: sortDescending }\r\n            setTableInfo?.(updatedTableData)\r\n\r\n        } else if (sortCounter === 0) {\r\n\r\n            setTableInfo?.(originalTableData)\r\n        }\r\n    }\r\n}","import React from \"react\";\r\n\r\nexport type LinkItem = {\r\n    Link: string,\r\n    Text: string,\r\n    DateText: string,\r\n    Type: string,\r\n    Target: string,\r\n    IconUrl?: string\r\n}\r\n\r\nexport const Links = ({links, wrapperClass, cssClass, gtm, iconUrl}:{links: LinkItem[] | undefined, wrapperClass?: string, cssClass: string, gtm: string, iconUrl?: string | undefined}) => {\r\n  if (!links || typeof links === \"undefined\" || links.length <= 0) return <></>;\r\n\r\n    if (wrapperClass) {\r\n        return (\r\n            <div className={wrapperClass}>\r\n                {links.map((link, index) => {\r\n                    return (\r\n                        <Link cssClass={cssClass} link={link} gtm={gtm} index={index} iconUrl={iconUrl} key={index} />\r\n                    );\r\n                })}\r\n            </div>\r\n        );\r\n    } else {\r\n        return (\r\n            <>\r\n                {links.map((link, index) => {\r\n                    return (\r\n                        <Link cssClass={cssClass} link={link} gtm={gtm} index={index} iconUrl={iconUrl} key={index} />\r\n                    );\r\n                })}\r\n            </>\r\n        ); \r\n    }\r\n}\r\n\r\nfunction Link({ cssClass, link, gtm, index, iconUrl }: { cssClass: string; link: LinkItem; gtm: string; index: number; iconUrl: string | undefined; }): JSX.Element {\r\n    return <a\r\n        className={`${cssClass} ${link.Type ?? \"\"}`}\r\n        data-ve-gtm={`${gtm ?? \"\"}`}\r\n        href={link.Link}\r\n        target={link.Target}\r\n        key={index}\r\n    >\r\n        {link.Text}\r\n        {iconUrl && <><img className=\"px-1\" src={iconUrl}></img>{link.Type}</>}\r\n    </a>;\r\n}\r\n","import HTMLReactParser from \"html-react-parser\";\r\nimport React, { useEffect, useRef } from \"react\";\r\n\r\nconst isTouchDevice = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\r\n\r\nexport type TooltipItem = {\r\n  Heading?: string;\r\n  Text: string;\r\n};\r\n\r\ndeclare global {\r\n  interface Window {\r\n    $: Function | any;\r\n    clearTooltips?: Function[]\r\n  }\r\n}\r\n\r\nexport const Tooltip = ({ tooltipItem }: { tooltipItem: TooltipItem }) => {\r\n  const { Text, Heading } = tooltipItem;\r\n  const tooltipIconRef = useRef<HTMLSpanElement | null>(null);\r\n  const tooltipContentRef = useRef<HTMLDivElement | null>(null);\r\n\r\n  useEffect(() => {\r\n    if (tooltipIconRef.current && tooltipContentRef.current) {\r\n      const $ele = window.$(tooltipIconRef.current),\r\n        content = tooltipContentRef.current.innerHTML;\r\n\r\n      const containerElements = $ele.closest(\".popover-root-container\");\r\n      const containerElement =\r\n        containerElements.length > 0 ? containerElements[0] : \"body\";\r\n\r\n      const trigger = isTouchDevice ? \"click\" : \"hover\";\r\n\r\n      $ele.popover({\r\n        html: true,\r\n        trigger: trigger,\r\n        container: containerElement,\r\n        content: function () {\r\n          return content;\r\n        },\r\n        popperConfig: {\r\n          placement: \"right\",\r\n        },\r\n      });\r\n\r\n      const clickEventListener = (e: MouseEvent) => {\r\n        $ele.popover(\"hide\");\r\n        document.removeEventListener(\"click\", clickEventListener);\r\n      };\r\n      if (isTouchDevice) {\r\n        $ele.on(\"shown.bs.popover\", () => {\r\n          document.addEventListener(\"click\", clickEventListener);\r\n        });\r\n\r\n        $ele.on(\"hidden.bs.popover\", () => {\r\n          document.removeEventListener(\"click\", clickEventListener);\r\n        });\r\n      }\r\n\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <TootipIcon ref={tooltipIconRef} />\r\n      <div\r\n        className=\"subscription-tooltip-content\"\r\n        ref={tooltipContentRef}\r\n        style={{ display: \"none\" }}\r\n      >\r\n        <div className=\"fund-explorer-block w-100\">\r\n          {Heading && <h5>{HTMLReactParser(Heading)}</h5>}\r\n          {HTMLReactParser(Text)}\r\n        </div>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nconst TootipIcon = React.forwardRef<HTMLSpanElement>((props, ref) => {\r\n  return (\r\n    <span ref={ref} className=\"more-info-icon-svg\">\r\n      <svg\r\n        width=\"15px\"\r\n        height=\"15px\"\r\n        viewBox=\"0 0 15 15\"\r\n        version=\"1.1\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n      >\r\n        <g\r\n          id=\"Fund-Explorer\"\r\n          stroke=\"none\"\r\n          strokeWidth=\"1\"\r\n          fill=\"none\"\r\n          fillRule=\"evenodd\"\r\n        >\r\n          <g\r\n            id=\"Utility_Screener_Default\"\r\n            transform=\"translate(-353.000000, -570.000000)\"\r\n          >\r\n            <g\r\n              id=\"More-Info-Icon\"\r\n              transform=\"translate(353.000000, 570.000000)\"\r\n            >\r\n              <circle\r\n                id=\"Oval\"\r\n                stroke=\"#17468F\"\r\n                strokeWidth=\"1.25\"\r\n                cx=\"7.5\"\r\n                cy=\"7.5\"\r\n                r=\"6.875\"\r\n              ></circle>\r\n              <path\r\n                d=\"M7.50549316,5.35949707 C8.27087402,5.35949707 8.65356445,5.04455566 8.65356445,4.41467285 C8.65356445,4.09973145 8.56201172,3.86169434 8.37890625,3.70056152 C8.19580078,3.53942871 7.90466309,3.4588623 7.50549316,3.4588623 C7.10632324,3.4588623 6.8170166,3.53759766 6.63757324,3.69506836 C6.45812988,3.85253906 6.3684082,4.09240723 6.3684082,4.41467285 C6.3684082,5.04455566 6.74743652,5.35949707 7.50549316,5.35949707 Z M8.57116699,11.9637451 L8.57116699,5.96374512 L6.42333984,5.96374512 L6.42333984,11.9637451 L8.57116699,11.9637451 Z\"\r\n                id=\"i\"\r\n                fill=\"#17468F\"\r\n                fillRule=\"nonzero\"\r\n                transform=\"translate(7.510986, 7.711304) scale(-1, 1) translate(-7.510986, -7.711304) \"\r\n              ></path>\r\n            </g>\r\n          </g>\r\n        </g>\r\n      </svg>\r\n    </span>\r\n  );\r\n});\r\n"],"names":["FundTable","tableData","FundTableTitle","headerData","tableTitle","FundTableWithoutTitle","drawSvgMobileIcon","width","height","viewBox","version","xmlns","xmlnsXlink","id","stroke","fill","transform","opacity","cx","cy","r","d","drawSvgDesktop","scrollText","document","getElementsByTagName","innerHTML","scrollTag","x","y","result","in","strokeWidth","fillRule","strokeLinecap","strokeLinejoin","points","x1","y1","x2","y2","strokeDasharray","fontFamily","fontSize","fontWeight","letterSpacing","filter","drawSvgDropdownButton","mainItem","type","className","focusable","role","isFirstRender","isSortable","setTableInfo","originalTableData","undefined","isScrollableTable","setIsScrollableTable","useState","showScrollItems","setShowScrollItems","outerTable","useRef","mainTable","useEffect","outerTableWidth","current","offsetWidth","mainTableWidth","clientWidth","scrollLeft","onScroll","ref","style","borderWidth","borderCollapse","tableCssClass","tableColumns","FundTableHeading","columns","tableRows","FundTableBody","rowData","ticker","title","subTitle","asOfDate","asOfDateText","links","asOfDateInSameLine","tooltipText","ignoreWidowInTitle","asOfClass","h3CssClass","tooltipItem","Text","cssClass","gtm","selectedColumn","setSelectedColumn","sortStatus","setSortStatus","sortCounter","sortingData","removedEmptyRowData","map","item","obj","css","includes","length","removedEmptyWithTotal","sortAscending","sort","a","b","testNumber","itemA","find","columnName","testA","test","value","itemB","testB","Number","replace","stringA","stringB","localeCompare","newArray","push","updatedTableData","sortDescending","numberA","handleSorting","column","i","onClick","multipleRows","rowItems","key","colSpan","rowSpan","row","rowClass","j","FundTableFooter","footer","alwaysExpandFooter","isEuFund","footerCollapsedClass","setFooterCollapsedClass","expandText","useMemo","collapseText","footerTogglelabel","setFooterTogglelabel","footerElement","useLayoutEffect","lineCount","element","footerElementHeight","getBoundingClientRect","lineHeight","parseFloat","getComputedStyle","getPropertyValue","getLineCount","tableClass","setTableClass","handleFooterclick","Links","wrapperClass","iconUrl","link","index","Link","Type","href","target","Target","src","isTouchDevice","window","navigator","maxTouchPoints","Tooltip","Heading","tooltipIconRef","tooltipContentRef","$ele","$","content","containerElements","closest","containerElement","trigger","popover","html","container","popperConfig","placement","clickEventListener","e","removeEventListener","on","addEventListener","TootipIcon","display","props"],"sourceRoot":""}