{"version":3,"file":"TablesLib.bundle.js","mappings":"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","sources":["webpack://advfnweb/webpack/runtime/chunk loaded","webpack://advfnweb/./advfn3/content/_common/elements/translator/js/BaseTranslationService.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/TableTranslations.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/TableSettings.js","webpack://advfnweb/./advfn3/content/_common/streaming/src/classes/Formatter.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/TableValueFormatters.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/TableCellRenderers.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/TablesManager.js","webpack://advfnweb/./advfn3/content/_default/stock-market/js/TranslationService.js","webpack://advfnweb/./advfn3/content/_common/tables/src/js/MoreHistorical.js","webpack://advfnweb/./advfn3/content/_common/tables/src/app.js","webpack://advfnweb/./advfn3/content/_common/tables/src/scss/ag-custom.scss?b2dc","webpack://advfnweb/./advfn3/content/_common/tables/src/scss/ag-theme.scss?77b8","webpack://advfnweb/./advfn3/content/_common/tables/src/scss/main.scss?4215","webpack://advfnweb/webpack/bootstrap","webpack://advfnweb/webpack/runtime/compat get default export","webpack://advfnweb/webpack/runtime/define property getters","webpack://advfnweb/webpack/runtime/global","webpack://advfnweb/webpack/runtime/hasOwnProperty shorthand","webpack://advfnweb/webpack/runtime/make namespace object","webpack://advfnweb/webpack/runtime/node module decorator","webpack://advfnweb/webpack/runtime/runtimeId","webpack://advfnweb/webpack/runtime/jsonp chunk loading","webpack://advfnweb/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","const DEFAULT_LOCALE = 'en_GB';\n\nconst FALLBACK_LOCALES = {\n en_CA: ['en_US', 'en_GB'],\n en_AU: ['en_US', 'en_GB'],\n // Add other specific fallbacks for each language as needed\n // Default fallback is en_GB\n};\n\nclass BaseTranslationService\n{\n setLocale(locale)\n {\n this.locale = this.getValidLocale(locale);\n }\n\n setLangFile(file)\n {\n this.lang = file;\n }\n\n getLangFile()\n {\n return this.lang ? this.lang : null;\n }\n\n getResource()\n {\n return this.lang[this.locale];\n }\n\n getValidLocale(locale)\n {\n const localesToCheck = [locale, ...(FALLBACK_LOCALES[locale] || [])];\n const validLocale = localesToCheck.find((fallbackLocale) => (this.lang).hasOwnProperty(fallbackLocale));\n return validLocale || DEFAULT_LOCALE;\n }\n\n getLocale()\n {\n return this.locale ? this.locale : DEFAULT_LOCALE;\n }\n\n getTranslation(txt)\n {\n if ((this.lang[this.locale]).hasOwnProperty(txt))\n {\n return this.lang[this.locale][txt];\n }\n if ((this.lang[this.locale].general).hasOwnProperty(txt))\n {\n return this.lang[this.locale].general[txt];\n }\n\n return txt;\n }\n\n}\n\nexport default BaseTranslationService;\n","import BaseTranslationService from '../../../elements/translator/js/BaseTranslationService';\nimport langFile from '../lang/translations.json';\n\nclass TableTranslations extends BaseTranslationService\n{\n constructor(locale)\n {\n super();\n this.setLangFile(langFile);\n this.setLocale(locale);\n }\n\n getColumnTranslations()\n {\n const translationObject = {};\n\n if (langFile[this.locale])\n {\n return langFile[this.locale];\n }\n return translationObject;\n }\n}\n\nexport default TableTranslations;\n","import TableTranslations from './TableTranslations';\n\n// eslint-disable-next-line no-undef\nconst tableTranslations = new TableTranslations(ADVFN.LOCALE);\nconst translates = tableTranslations.getColumnTranslations();\n\nconst defaultGridOptions = {\n defaultColDef: {\n sortable: true,\n resizable: true,\n autoHeaderHeight: true,\n suppressSizeToFit: false,\n lockVisible: true,\n },\n enableCellTextSelection: true,\n domLayout: 'autoHeight',\n rowHeight: 33,\n suppressMovableColumns: true,\n localeText: translates,\n};\n\nfunction getDefaultOptions(options = {})\n{\n const {\n onFirstDataRendered, onGridReady, isResponsive, ...restOptions\n } = options;\n\n const resizeTable = ({ api }) =>\n {\n if (!isResponsive)\n {\n api.sizeColumnsToFit();\n setTimeout(() =>\n {\n api.sizeColumnsToFit();\n }, 50);\n }\n else\n {\n api.columnModel.autoSizeAllColumns();\n }\n };\n\n return {\n ...defaultGridOptions,\n onFirstDataRendered: (params) =>\n {\n resizeTable(params);\n },\n onGridReady: (params) =>\n {\n window.addEventListener('resize', () =>\n {\n resizeTable(params);\n });\n },\n ...restOptions,\n };\n}\n\nexport default getDefaultOptions;\n","/* eslint no-undef: 0 */\nclass Formatter\n{\n /**\n *\n * @param {*} value\n * @param {*} quoteType\n * @param {abbreviated: boolean, currency?: string} options\n * @returns\n */\n formatNumber(value, quoteType, options = {})\n {\n if (typeof LocaleFormat !== 'undefined')\n {\n const { currency, abbreviated } = options;\n const showCurrency = typeof currency !== 'undefined';\n let schema;\n if (abbreviated)\n {\n schema = 'abbreviated';\n }\n return this._localeFormat(value, quoteType, schema, currency, showCurrency);\n }\n return value;\n }\n\n formatPrice(value, quoteType)\n {\n if (typeof LocaleFormat !== 'undefined')\n {\n return this._localeFormat(value, quoteType, 'price');\n }\n return value;\n }\n\n formatChange(value, quoteType, percentage = false)\n {\n if (typeof LocaleFormat !== 'undefined')\n {\n if (percentage)\n {\n return this._localeFormat(value, quoteType, 'change', 'percent', true);\n }\n return this._localeFormat(value, quoteType, 'change');\n }\n if (percentage)\n {\n return `${value} %`;\n }\n return value;\n }\n\n formatVolume(value, quoteType, currency = null, showCurrency = false)\n {\n if (typeof LocaleFormat !== 'undefined')\n {\n if (currency !== null)\n {\n return this._localeFormat(value, quoteType, 'volume', currency, showCurrency);\n }\n\n return this._localeFormat(value, quoteType, 'volume');\n }\n return value;\n }\n\n formatTradeSizeWide(value, quoteType, currency = null, showCurrency = false)\n {\n if (typeof LocaleFormat !== 'undefined')\n {\n if (currency !== null)\n {\n return this._localeFormat(value, quoteType, 'vwap', currency, showCurrency);\n }\n\n return this._localeFormat(value, quoteType, 'vwap');\n }\n return value;\n }\n\n formatAbbreviated(value, quoteType)\n {\n if (value === null) return '-';\n\n if (typeof LocaleFormat !== 'undefined')\n {\n return this._localeFormat(value, quoteType, 'abbreviated');\n }\n return value;\n }\n\n formatDate(timestamp, locale = null, offset = null, displayTime = false, displayTypeDate = null)\n {\n if (Number.isNaN(timestamp)) return '-';\n\n const date = this._getDateWithOffset(timestamp, offset);\n\n if (date.toUTCString() === 'Invalid Date') return '-';\n\n if (locale === null)\n {\n locale = 'en-GB';\n }\n\n if (displayTypeDate)\n {\n let formattedDate;\n const timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\n const dateOptions = this._getDateType(displayTypeDate);\n\n if (!displayTime)\n {\n formattedDate = date.toLocaleDateString(locale, dateOptions);\n }\n else\n {\n formattedDate = `${date.toLocaleDateString(locale, dateOptions)} ${date.toLocaleTimeString(locale, timeOptions)}`;\n }\n return formattedDate;\n }\n\n const dateDisplay = date.toLocaleDateString(locale);\n if (!displayTime)\n {\n return dateDisplay;\n }\n\n return `${dateDisplay} ${this.formatTime(timestamp, locale, offset)}`;\n }\n\n formatTime(timestamp, offset = null, displaySeconds = false)\n {\n if (Number.isNaN(timestamp)) return '-';\n\n const date = this._getDateWithOffset(timestamp, offset);\n\n let hours = date.getUTCHours();\n let minutes = date.getUTCMinutes();\n let seconds = date.getUTCSeconds();\n\n if (Number.isNaN(hours) || Number.isNaN(minutes) || Number.isNaN(seconds))\n {\n return '-';\n }\n\n if (hours < 10)\n {\n hours = `0${hours}`;\n }\n\n if (minutes < 10)\n {\n minutes = `0${minutes}`;\n }\n\n if (!displaySeconds)\n {\n return `${hours}:${minutes}`;\n }\n\n if (seconds < 10)\n {\n seconds = `0${seconds}`;\n }\n return `${hours}:${minutes}:${seconds}`;\n }\n\n _getDateType(dateType)\n {\n switch (dateType)\n {\n case 'short':\n return { month: 'short', day: 'numeric', year: 'numeric' };\n case 'long':\n return { month: 'long', day: 'numeric', year: 'numeric' };\n default:\n return null;\n }\n }\n\n _getDateWithOffset(timestamp, offset)\n {\n let newTimestamp = parseInt(timestamp, 10);\n if (offset !== null && !Number.isNaN(offset))\n {\n newTimestamp += parseInt(offset, 10);\n }\n return new Date(newTimestamp * 1000);\n }\n\n _localeFormat(value, quoteType, schema, currency = '', showCurrency = false)\n {\n return LocaleFormat.formatForInstrumentType(value, quoteType, schema, currency, showCurrency);\n }\n}\n\nexport default Formatter;\n","import Formatter from '../../../streaming/src/classes/Formatter';\nimport TableTranslations from './TableTranslations';\n\nconst valueFormatter = new Formatter();\n\nconst valueFormatterMapping = {\n emptyValueFormatter: (value) => value || '-',\n percentFormatter: (value, params) =>\n {\n if (value === null || value === undefined || value === '') return value;\n return valueFormatter.formatChange(value, params.data.quoteType, true);\n },\n localeNumberFormatter: (value, params) =>\n {\n if (value === null || value === undefined || value === '')\n {\n return value;\n }\n return valueFormatter.formatVolume(value, params.data.quoteType);\n },\n priceFormatter: (value, params) =>\n {\n if (value === null || value === undefined || value === '') return value;\n return valueFormatter.formatPrice(value, params.data.quoteType);\n },\n dateFormatter: (value) =>\n {\n if (value === null || value === undefined || value === '') return value;\n return valueFormatter.formatDate(value, null, null, null, 'short');\n },\n dateTimeFormatter: (value) =>\n {\n if (value === null || value === undefined || value === '') return value;\n return valueFormatter.formatDate(value, null, null, true, 'short');\n },\n weekPeriodFormatter: (value) =>\n {\n // eslint-disable-next-line no-undef\n const tableTranslations = new TableTranslations(ADVFN.LOCALE);\n const translates = tableTranslations.getColumnTranslations();\n\n if (value === 1)\n {\n return `1 ${translates.week}`;\n } if (value < 4)\n {\n return `${value}${translates.weeks}`;\n } if (value < 26)\n {\n const months = Math.floor(value / 4);\n return `${months} ${months > 1 ? translates.months : translates.month}`;\n } if (value < 52)\n {\n const months = Math.floor(value / 4);\n return `${months} ${translates.months}`;\n }\n const years = Math.floor(value / 52);\n return `${years} ${years > 1 ? translates.years : translates.year}`;\n },\n timestampHourFormatter: (value) =>\n {\n if (!value) return value;\n\n const date = new Date(value * 1000);\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n return `${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n },\n};\n\nfunction setupValueFormatters(colDef)\n{\n const valueFormatterNames = colDef.valueFormatter ? colDef.valueFormatter.split(',') : [];\n const valueFormatters = valueFormatterNames.map((name) => valueFormatterMapping[name]).filter((formatter) => formatter);\n if (valueFormatters.length > 0)\n {\n colDef.valueFormatter = (params) =>\n {\n let { value } = params;\n valueFormatters.forEach((formatter) =>\n {\n value = formatter(value, params);\n });\n return value;\n };\n }\n}\n\nexport default setupValueFormatters;\n","function setupCellRenderers(colDef)\n{\n if (colDef.cellRenderer === 'linkCellRenderer')\n {\n colDef.cellRenderer = (params) =>\n {\n const link = document.createElement('a');\n link.setAttribute('href', params.data.url);\n link.innerHTML = params.value;\n return link;\n };\n }\n\n if (colDef.cellRenderer === 'linkInternalCellRenderer')\n {\n colDef.cellRenderer = (params) =>\n {\n const link = document.createElement('a');\n link.setAttribute('href', params.data.url);\n link.setAttribute('target', '_blank');\n link.setAttribute('rel', 'nofollow noopener noreferrer');\n link.innerHTML = params.value;\n return link;\n };\n }\n\n if (colDef.cellRenderer === 'imageNameCellRenderer')\n {\n colDef.cellRenderer = (params) =>\n {\n const img = document.createElement('img');\n const name = document.createElement('span');\n img.setAttribute('src', `https://advfn.com${params.data.logo}`);\n img.setAttribute('alt', params.value);\n img.setAttribute('title', params.value);\n name.innerHTML = params.value;\n const div = document.createElement('div');\n div.classList.add('image-name-cell');\n div.appendChild(img);\n div.appendChild(name);\n\n return div;\n };\n }\n}\n\nexport default setupCellRenderers;\n","/* global agGrid */\nimport getDefaultOptions from './TableSettings';\nimport setupValueFormatters from './TableValueFormatters';\nimport setupCellRenderers from './TableCellRenderers';\n\nexport default class TablesManager\n{\n constructor()\n {\n this._tablesMap = {};\n this.issetDownloadCsv = false;\n }\n\n _renderTableHeader(tableElement, tableData)\n {\n const {\n title,\n title_link: titleLink,\n title_link_text: titleLinkText,\n } = tableData;\n\n if (!title && !titleLink) return;\n\n const tableHeaderContainer = document.createElement('div');\n tableHeaderContainer.classList.add('table-container-header');\n tableHeaderContainer.classList.add('delight-bordered-container-header');\n tableElement.appendChild(tableHeaderContainer);\n\n if (title)\n {\n const titleElement = document.createElement('h3');\n titleElement.classList.add('table-title', 'heading-xs', 'text-bold');\n titleElement.innerHTML = title;\n tableHeaderContainer.appendChild(titleElement);\n }\n\n if (titleLink)\n {\n const titleLinkElement = document.createElement('a');\n titleLinkElement.classList.add('table-title-link', 'delight-more-button', 'ml-a', 'btn-main', 'btn-32', 'btn-accent-tertiary');\n titleLinkElement.setAttribute('href', titleLink);\n titleLinkElement.innerHTML = titleLinkText;\n tableHeaderContainer.appendChild(titleLinkElement);\n }\n }\n\n _renderTablePanel(tableElement, tableData)\n {\n const { panel_data: panelData } = tableData;\n\n if (panelData.length === 0)\n {\n return;\n }\n\n let issetDateRange = true;\n const tablePanelContainer = document.createElement('div');\n tablePanelContainer.classList.add('table-header-panel');\n tableElement.appendChild(tablePanelContainer);\n\n const leftPartContainer = document.createElement('div');\n leftPartContainer.classList.add('left-part');\n tablePanelContainer.appendChild(leftPartContainer);\n\n if (tableData.symbol !== undefined && tableData.symbol !== null && tableData.is_responsive === true)\n {\n const symbol = tableData.symbol.slice(tableData.symbol.indexOf('^') + 1);\n const titleContainer = document.createElement('div');\n titleContainer.classList.add('title-table');\n leftPartContainer.appendChild(titleContainer);\n\n const titleText = document.createElement('div');\n titleText.classList.add('table-header-title');\n titleText.innerHTML = symbol;\n titleContainer.appendChild(titleText);\n }\n\n if (panelData.time_frame && tableData.is_responsive === false)\n {\n const timeFrameContainer = document.createElement('div');\n timeFrameContainer.classList.add('time-frame');\n leftPartContainer.appendChild(timeFrameContainer);\n\n if (tableData.is_responsive === false)\n {\n const timeFrameText = document.createElement('div');\n timeFrameText.classList.add('table-header-text', 'body-m');\n timeFrameText.innerHTML = panelData.time_frame.name;\n timeFrameContainer.appendChild(timeFrameText);\n }\n\n const dropdownContainer = document.createElement('div');\n dropdownContainer.classList.add('dropdown');\n dropdownContainer.setAttribute('id', 'time-frame-dropdown');\n timeFrameContainer.appendChild(dropdownContainer);\n\n const dropdownButton = document.createElement('button');\n dropdownButton.classList.add('dropdown__button');\n dropdownButton.setAttribute('type', 'button');\n panelData.time_frame.fields.forEach((field) =>\n {\n if (field.selected)\n {\n dropdownButton.innerHTML = field.name;\n }\n });\n dropdownContainer.appendChild(dropdownButton);\n\n const dropdownList = document.createElement('ul');\n dropdownList.classList.add('dropdown__list');\n dropdownContainer.appendChild(dropdownList);\n\n panelData.time_frame.fields.forEach((field) =>\n {\n const dropdownListItem = document.createElement('li');\n dropdownListItem.classList.add('dropdown__list-item');\n dropdownListItem.setAttribute('data-value', field.value);\n dropdownListItem.textContent = field.name;\n\n if (field.selected)\n {\n dropdownListItem.classList.add('dropdown__list-item_active');\n }\n\n dropdownList.appendChild(dropdownListItem);\n });\n\n const dropdownInputHidden = document.createElement('input');\n dropdownInputHidden.classList.add('dropdown__input_hidden');\n dropdownInputHidden.setAttribute('type', 'text');\n dropdownInputHidden.setAttribute('name', 'select-category');\n dropdownInputHidden.setAttribute('value', '');\n dropdownContainer.appendChild(dropdownInputHidden);\n\n const dropdownListItems = dropdownList.querySelectorAll('.dropdown__list-item');\n dropdownListItems.forEach((item) =>\n {\n item.addEventListener('click', (event) =>\n {\n const selectedTimeFrameValue = event.target.getAttribute('data-value');\n issetDateRange = selectedTimeFrameValue !== 'Daily';\n });\n });\n }\n\n const rightPartContainer = document.createElement('div');\n rightPartContainer.classList.add('right-part');\n tablePanelContainer.appendChild(rightPartContainer);\n\n if (panelData.time_frame && tableData.is_responsive === true)\n {\n const timeFrameContainer = document.createElement('div');\n timeFrameContainer.classList.add('time-frame');\n rightPartContainer.appendChild(timeFrameContainer);\n\n const dropdownContainer = document.createElement('div');\n dropdownContainer.classList.add('dropdown');\n dropdownContainer.setAttribute('id', 'time-frame-dropdown');\n timeFrameContainer.appendChild(dropdownContainer);\n\n const dropdownButton = document.createElement('button');\n dropdownButton.classList.add('dropdown__button');\n dropdownButton.setAttribute('type', 'button');\n panelData.time_frame.fields.forEach((field) =>\n {\n if (field.selected)\n {\n dropdownButton.innerHTML = field.name;\n }\n });\n dropdownContainer.appendChild(dropdownButton);\n\n const dropdownList = document.createElement('ul');\n dropdownList.classList.add('dropdown__list');\n dropdownContainer.appendChild(dropdownList);\n\n panelData.time_frame.fields.forEach((field) =>\n {\n const dropdownListItem = document.createElement('li');\n dropdownListItem.classList.add('dropdown__list-item');\n dropdownListItem.setAttribute('data-value', field.value);\n dropdownListItem.textContent = field.name;\n\n if (field.selected)\n {\n dropdownListItem.classList.add('dropdown__list-item_active');\n }\n\n dropdownList.appendChild(dropdownListItem);\n });\n\n const dropdownInputHidden = document.createElement('input');\n dropdownInputHidden.classList.add('dropdown__input_hidden');\n dropdownInputHidden.setAttribute('type', 'text');\n dropdownInputHidden.setAttribute('name', 'select-category');\n dropdownInputHidden.setAttribute('value', '');\n dropdownContainer.appendChild(dropdownInputHidden);\n\n const dropdownListItems = dropdownList.querySelectorAll('.dropdown__list-item');\n dropdownListItems.forEach((item) =>\n {\n item.addEventListener('click', (event) =>\n {\n const selectedTimeFrameValue = event.target.getAttribute('data-value');\n issetDateRange = selectedTimeFrameValue !== 'Daily';\n });\n });\n }\n\n if (panelData.date_range && issetDateRange)\n {\n const dateRangeContainer = document.createElement('div');\n dateRangeContainer.classList.add('date-range');\n rightPartContainer.appendChild(dateRangeContainer);\n\n if (tableData.is_responsive === false)\n {\n const dateRangeText = document.createElement('span');\n dateRangeText.classList.add('table-header-text', 'body-m');\n dateRangeText.innerHTML = panelData.date_range.name;\n dateRangeContainer.appendChild(dateRangeText);\n }\n\n const dateRangeLabel = document.createElement('label');\n dateRangeContainer.appendChild(dateRangeLabel);\n\n const dateRangeIcon = document.createElement('span');\n dateRangeIcon.classList.add('icon-calendar');\n dateRangeLabel.appendChild(dateRangeIcon);\n\n const dateRangeInput = document.createElement('input');\n dateRangeInput.setAttribute('type', 'text');\n dateRangeInput.setAttribute('id', 'datepicker');\n dateRangeInput.classList.add('body-m');\n if (tableData.is_responsive === false)\n {\n dateRangeInput.setAttribute('placeholder', panelData.date_range.value);\n }\n dateRangeLabel.appendChild(dateRangeInput);\n }\n\n if (panelData.download_csv && tableData.is_responsive === false)\n {\n this.issetDownloadCsv = true;\n const downloadCsvContainer = document.createElement('div');\n downloadCsvContainer.classList.add('download-csv');\n rightPartContainer.appendChild(downloadCsvContainer);\n\n const downloadCsvLink = document.createElement('div');\n downloadCsvLink.classList.add('download-csv-link');\n downloadCsvContainer.appendChild(downloadCsvLink);\n\n const downloadCsvIcon = document.createElement('span');\n downloadCsvIcon.classList.add('icon-dropdown');\n downloadCsvLink.appendChild(downloadCsvIcon);\n\n const downloadCsvText = document.createElement('span');\n downloadCsvText.classList.add('body-m', 'text-bold');\n downloadCsvText.innerHTML = panelData.download_csv.name;\n downloadCsvLink.appendChild(downloadCsvText);\n\n downloadCsvContainer.addEventListener('click', () =>\n {\n if (panelData.download_csv.premium)\n {\n this.downloadCSV();\n }\n else\n {\n window.location.href = panelData.download_csv.link;\n }\n });\n }\n }\n\n /**\n * @param {HTMLElement} tableRootEl\n * @param {*} tableData\n */\n _renderTable(tableRootEl, tableData)\n {\n const tableContainer = document.createElement('div');\n tableContainer.classList.add('delight-bordered-content');\n tableRootEl.appendChild(tableContainer);\n\n const defaultPagination = {\n paginationPageSize: 25,\n };\n\n const {\n id, columns, data, pagination, options, is_responsive: isResponsive,\n } = tableData;\n\n columns.forEach((colDef) =>\n {\n setupValueFormatters(colDef);\n setupCellRenderers(colDef);\n });\n\n const defaultGridOptions = getDefaultOptions({\n isResponsive,\n });\n\n if (isResponsive === false)\n {\n this.handleDownloadCsv(tableRootEl, id);\n }\n\n const gridOptions = {\n ...defaultGridOptions,\n columnDefs: columns,\n rowData: data,\n ...options,\n ...(pagination && pagination.pagination === true && {\n pagination: pagination.pagination,\n paginationPageSize: pagination.paginationPageSize || defaultPagination.paginationPageSize,\n paginationPageSizeSelector: false,\n }),\n };\n\n const grid = agGrid.createGrid(tableContainer, gridOptions);\n\n this._tablesMap[id] = {\n el: tableRootEl,\n grid,\n isResponsive,\n };\n }\n\n /**\n * @param {*} tableRootEl\n * @param {*} tableData\n */\n _updateTable(table, tableData)\n {\n const updateGridOptions = (tableToUpdate) =>\n {\n const tableFrequency = tableToUpdate.el.dataset.frequency;\n const { columnDefs } = tableToUpdate.grid.columnModel;\n\n if (tableFrequency === 'INTRADAY')\n {\n columnDefs.forEach((colDef) =>\n {\n if (colDef.field === 'Date')\n {\n if (tableToUpdate.isResponsive === false)\n {\n colDef.flex = 2;\n }\n else\n {\n colDef.width = 150;\n }\n colDef.valueFormatter = 'dateTimeFormatter';\n setupValueFormatters(colDef);\n }\n else\n if (tableToUpdate.isResponsive === false)\n {\n colDef.flex = 1;\n }\n else\n {\n colDef.width = 100;\n }\n });\n }\n else\n {\n columnDefs.forEach((colDef) =>\n {\n if (tableToUpdate.isResponsive === false)\n {\n colDef.flex = 1;\n }\n else\n {\n colDef.width = 100;\n }\n\n if (colDef.field === 'Date')\n {\n colDef.valueFormatter = 'dateFormatter';\n setupValueFormatters(colDef);\n }\n });\n }\n\n const paginationSize = tableToUpdate.grid.paginationPageSize;\n if (tableData.length > paginationSize)\n {\n tableToUpdate.grid.pagination = true;\n }\n else\n {\n tableToUpdate.grid.pagination = false;\n }\n };\n\n updateGridOptions(table);\n\n if (table.isResponsive === false)\n {\n this.handleDownloadCsv(table.el, table.el.id);\n }\n\n table.grid.setGridOption('columnDefs', table.grid.columnModel.columnDefs);\n table.grid.setGridOption('rowData', tableData);\n }\n\n addTable(tableElement, tableData)\n {\n const defaultFrequency = 'DAILY';\n const currentDate = new Date();\n const today = Math.floor(Date.now() / 1000);\n const threeMonthsAgo = new Date();\n threeMonthsAgo.setMonth(currentDate.getMonth() - 3);\n const from = Math.floor(threeMonthsAgo.getTime() / 1000);\n\n tableElement.setAttribute('data-app', 'delight-table');\n tableElement.classList.add('table-bordered-container');\n tableElement.classList.add('delight-bordered-container');\n tableElement.dataset.symbol = tableData.symbol;\n tableElement.dataset.frequency = defaultFrequency;\n tableElement.dataset.from = from;\n tableElement.dataset.to = today;\n\n this._renderTableHeader(tableElement, tableData);\n this._renderTablePanel(tableElement, tableData);\n this._renderTable(tableElement, tableData);\n }\n\n updateTable(tableId, tableData)\n {\n if (this._tablesMap[tableId])\n {\n this._updateTable(this._tablesMap[tableId], tableData);\n }\n }\n\n refreshColumns(tableId)\n {\n const table = this._tablesMap[tableId];\n if (table)\n {\n if (table.el.offsetWidth > 0)\n {\n table.grid.sizeColumnsToFit();\n }\n }\n }\n\n addRowEventListener(tableId, event, callback)\n {\n const table = this._tablesMap[tableId];\n if (table)\n {\n table.grid.addEventListener(event, callback);\n }\n }\n\n getRowData(tableId, rowId)\n {\n const table = this._tablesMap[tableId];\n let data;\n if (table)\n {\n const row = table.grid.getRowNode(rowId);\n if (row)\n {\n data = row.data;\n }\n }\n return data;\n }\n\n selectRow(tableId, rowId)\n {\n const table = this._tablesMap[tableId];\n if (table)\n {\n table.grid.getRenderedNodes()[rowId].setSelected(true);\n }\n }\n\n getFormattedDate(date)\n {\n const year = date.getFullYear();\n const month = (`0${date.getMonth() + 1}`).slice(-2);\n const day = (`0${date.getDate()}`).slice(-2);\n return `${year}${month}${day}`;\n }\n\n handleDownloadCsv(tableRootEl, id)\n {\n if (this.issetDownloadCsv)\n {\n const feedSymbol = tableRootEl.getAttribute('data-symbol');\n this.downloadCsv(id, feedSymbol);\n }\n }\n\n downloadCsv(tableId, symbol)\n {\n const startTimestampInSeconds = 19700101;\n const currentDate = this.getFormattedDate(new Date());\n let fileName = `datadownload-${startTimestampInSeconds}-${currentDate}`;\n\n if (symbol !== undefined && symbol !== null)\n {\n symbol = symbol.slice(symbol.indexOf('^') + 1);\n fileName += `-${symbol}`;\n }\n\n fileName += '.csv';\n\n const csvExportParams = {\n fileName,\n };\n\n this.downloadCSV = () =>\n {\n this._tablesMap[tableId].grid.exportDataAsCsv(csvExportParams);\n };\n }\n}\n","import translations from './translations.json';\nimport BaseTranslationService from '../../../_common/elements/translator/js/BaseTranslationService';\n\nclass TranslationService extends BaseTranslationService\n{\n constructor(locale)\n {\n super();\n this.setLangFile(translations);\n this.setLocale(locale);\n }\n\n getTranslations()\n {\n const translationObject = {};\n\n if (translations[this.locale])\n {\n return translations[this.locale];\n }\n return translationObject;\n }\n}\n\nexport default TranslationService;\n","import axios from 'axios';\n\nimport TranslationService from '../../../../_default/stock-market/js/TranslationService';\n\nconst {\n AmpPlugin, easepick, LockPlugin, PresetPlugin, RangePlugin,\n} = window.easepick;\n\nconst loadMoreHistoricalTable = (moreHistoricalTable) =>\n{\n const tableId = moreHistoricalTable.getAttribute('id');\n const datepicker = document.getElementById('datepicker');\n\n let presetFrom = moreHistoricalTable.getAttribute('data-from') * 1000;\n const presetTo = moreHistoricalTable.getAttribute('data-to') * 1000;\n const symbol = moreHistoricalTable.getAttribute('data-symbol');\n\n const API_ENDPOINT = '/common/api/histo/GetHistoricalData';\n const now = new Date();\n const nowUTC = parseInt(now.getTime() / 1000, 10) + now.getTimezoneOffset() * 60;\n\n const fourteenDayAgo = nowUTC - 14 * 24 * 60 * 60;\n const threeMonthsAgo = nowUTC - 90 * 24 * 60 * 60;\n const yearAgo = nowUTC - 365 * 24 * 60 * 60;\n const threeYearsAgo = nowUTC - 3 * 365 * 24 * 60 * 60;\n const fiveYearsAgo = nowUTC - 5 * 365 * 24 * 60 * 60;\n\n const agLoading = moreHistoricalTable.querySelector('.ag-overlay');\n const overlayWrapper = agLoading.querySelector('.ag-overlay-wrapper');\n const agBody = moreHistoricalTable.querySelector('.ag-body');\n const agPagingPanel = moreHistoricalTable.querySelector('.ag-paging-panel');\n\n // eslint-disable-next-line no-undef\n const translationService = new TranslationService(ADVFN.LOCALE);\n const translationServiceData = translationService.getTranslations();\n const translationToday = translationServiceData.today;\n const translationSevenD = translationServiceData.seven_d;\n const translationThirtyD = translationServiceData.thirty_d;\n const translationThreeM = translationServiceData.three_m;\n const translationOneY = translationServiceData.one_y;\n const translationThreeY = translationServiceData.three_y;\n const translationFiveY = translationServiceData.five_y;\n const translationCancel = translationServiceData.cancel;\n const translationApply = translationServiceData.apply;\n\n // eslint-disable-next-line no-undef\n let locale = ADVFN.LOCALE;\n locale = locale.replace('_', '-');\n\n const defaultDateRanges = {\n INTRADAY: {\n from: fourteenDayAgo,\n showDateRange: false,\n },\n DAILY: {\n from: threeMonthsAgo,\n showDateRange: true,\n },\n WEEKLY: {\n from: yearAgo,\n showDateRange: true,\n },\n MONTHLY: {\n from: threeYearsAgo,\n showDateRange: true,\n },\n YEARLY: {\n from: fiveYearsAgo,\n showDateRange: true,\n },\n };\n\n const fetchAndDisplayData = (endpoint) =>\n {\n agBody.classList.add('hidden');\n agPagingPanel.classList.add('ag-hidden');\n agLoading.classList.add('ag-loading');\n agLoading.classList.remove('ag-hidden');\n overlayWrapper.innerHTML = `\n \n Loading data...\n \n `;\n\n return new Promise((resolve, reject) =>\n {\n axios.get(endpoint)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n if (data.result.rows)\n {\n window.ADVFN_TABLES_MANAGER.updateTable(tableId, data.result.rows);\n window.ADVFN_TABLES_MANAGER.refreshColumns(tableId);\n resolve();\n }\n }\n }\n })\n .catch((error) => reject(error))\n .finally(() =>\n {\n agBody.classList.remove('hidden');\n agPagingPanel.classList.remove('ag-hidden');\n agLoading.classList.remove('ag-loading');\n agLoading.classList.add('ag-hidden');\n overlayWrapper.innerHTML = '';\n });\n });\n };\n\n const lightMode = document.querySelector('body').attributes.getNamedItem('data-theme').value === 'light';\n const darkMode = document.querySelector('body').attributes.getNamedItem('data-theme').value === 'dark';\n let easepickCustom = '';\n if (lightMode)\n {\n easepickCustom = '/common/elements/historical/src/css/easepick-custom.css';\n }\n else if (darkMode)\n {\n easepickCustom = '/common/elements/historical/src/css/easepick-custom-dark.css';\n }\n\n // eslint-disable-next-line new-cap\n new easepick.create({\n element: datepicker,\n css: [\n 'https://cdn.jsdelivr.net/npm/@easepick/core@1.2.1/dist/index.css',\n 'https://cdn.jsdelivr.net/npm/@easepick/range-plugin@1.2.1/dist/index.css',\n 'https://cdn.jsdelivr.net/npm/@easepick/lock-plugin@1.2.1/dist/index.css',\n 'https://cdn.jsdelivr.net/npm/@easepick/preset-plugin@1.2.1/dist/index.css',\n 'https://cdn.jsdelivr.net/npm/@easepick/amp-plugin@1.2.1/dist/index.css',\n easepickCustom,\n ],\n zIndex: 10,\n autoApply: false,\n locale: {\n cancel: translationCancel,\n apply: translationApply,\n },\n lang: locale,\n plugins: [RangePlugin, LockPlugin, PresetPlugin, AmpPlugin],\n LockPlugin: {\n maxDate: new Date(),\n },\n AmpPlugin: {\n dropdown: {\n minYear: 1990,\n months: true,\n years: true,\n },\n resetButton: true,\n darkMode: false,\n },\n PresetPlugin: {\n customPreset: {\n [translationToday]: [now, now],\n [translationSevenD]: [new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000), now],\n [translationThirtyD]: [new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000), now],\n [translationThreeM]: [new Date(now.getFullYear(), now.getMonth() - 3, 1), now],\n [translationOneY]: [new Date(now.getFullYear() - 1, now.getMonth(), now.getDate()), now],\n [translationThreeY]: [new Date(now.getFullYear() - 3, now.getMonth(), now.getDate()), now],\n [translationFiveY]: [new Date(now.getFullYear() - 5, now.getMonth(), now.getDate()), now],\n },\n position: 'left',\n },\n setup(picker)\n {\n // Selecting the date range\n picker.on('select', (e) =>\n {\n let { start, end } = e.detail;\n\n if (start === null)\n {\n start = presetFrom;\n }\n\n if (end === null)\n {\n end = presetTo;\n }\n\n let startTimestamp = Math.floor(new Date(start).getTime() / 1000);\n const endTimestamp = Math.floor(new Date(end).getTime() / 1000);\n\n const frequency = moreHistoricalTable.getAttribute('data-frequency');\n if (frequency === 'INTRADAY')\n {\n startTimestamp = fourteenDayAgo;\n }\n\n moreHistoricalTable.setAttribute('data-from', startTimestamp);\n moreHistoricalTable.setAttribute('data-to', endTimestamp);\n\n fetchAndDisplayData(`${API_ENDPOINT}?symbol=${symbol}&frequency=${frequency}&from=${startTimestamp}&to=${endTimestamp}`)\n .then(() => picker.hide())\n .catch((error) => console.warn(error));\n });\n\n // Handling click actions\n picker.on('click', (e) =>\n {\n const { target } = e;\n if (target.classList.contains('preset-button'))\n {\n if (target.textContent === 'Last month')\n {\n const timestamp = parseInt(target.getAttribute('data-end'), 10);\n const date = new Date(timestamp);\n if (!Number.isNaN(date.getTime()))\n {\n const formattedDate = date.toISOString().slice(0, 10);\n picker.gotoDate(formattedDate);\n }\n }\n else\n {\n picker.gotoDate(target.getAttribute('data-end'));\n }\n }\n if (picker.isCancelButton(target))\n {\n setTimeout(() =>\n {\n picker.hide();\n }, 0);\n }\n });\n\n // Handling clear action\n picker.on('clear', () =>\n {\n picker.trigger('select', { start: null, end: null });\n picker.gotoDate(presetTo);\n });\n },\n });\n\n const dropdownWrapper = document.querySelector('#time-frame-dropdown');\n const dropdownBtn = dropdownWrapper.querySelector('.dropdown__button');\n const dropdownList = dropdownWrapper.querySelector('.dropdown__list');\n const dropdownItems = dropdownList.querySelectorAll('.dropdown__list-item');\n const dropdownInput = dropdownWrapper.querySelector('.dropdown__input_hidden');\n\n dropdownBtn.addEventListener('click', () =>\n {\n dropdownList.classList.toggle('dropdown__list_visible');\n dropdownBtn.classList.toggle('dropdown__button_active');\n });\n\n dropdownItems.forEach((listItem) =>\n {\n listItem.addEventListener('click', (e) =>\n {\n dropdownItems.forEach((el) =>\n {\n el.classList.remove('dropdown__list-item_active');\n });\n\n e.target.classList.add('dropdown__list-item_active');\n dropdownBtn.innerText = listItem.innerText;\n dropdownInput.value = listItem.dataset.value;\n dropdownList.classList.remove('dropdown__list_visible');\n\n let from = moreHistoricalTable.getAttribute('data-from');\n let to = moreHistoricalTable.getAttribute('data-to');\n\n if (dropdownInput.value in defaultDateRanges)\n {\n const selectedRange = defaultDateRanges[dropdownInput.value];\n\n if (!datepicker.value)\n {\n from = selectedRange.from;\n to = Math.floor(now.getTime() / 1000);\n }\n\n if (dropdownInput.value === 'INTRADAY')\n {\n from = fourteenDayAgo;\n to = Math.floor(now.getTime() / 1000);\n }\n\n moreHistoricalTable.setAttribute('data-from', from);\n moreHistoricalTable.setAttribute('data-to', to);\n\n presetFrom = from * 1000;\n\n const dateRangeElement = document.querySelector('.date-range');\n if (selectedRange.showDateRange)\n {\n dateRangeElement.classList.remove('hidden');\n }\n else\n {\n dateRangeElement.classList.add('hidden');\n }\n }\n\n moreHistoricalTable.setAttribute('data-frequency', dropdownInput.value);\n\n fetchAndDisplayData(`${API_ENDPOINT}?symbol=${symbol}&frequency=${dropdownInput.value}&from=${from}&to=${to}`)\n .catch((error) => console.warn(error));\n });\n });\n\n document.addEventListener('click', (e) =>\n {\n if (e.target !== dropdownBtn)\n {\n dropdownBtn.classList.remove('dropdown__button_active');\n dropdownList.classList.remove('dropdown__list_visible');\n }\n });\n\n document.addEventListener('keydown', (e) =>\n {\n if (e.key === 'Tab' || e.key === 'Escape')\n {\n dropdownBtn.classList.remove('dropdown__button_active');\n dropdownList.classList.remove('dropdown__list_visible');\n }\n });\n};\n\nexport default loadMoreHistoricalTable;\n","import './scss/ag-theme.scss';\nimport './scss/ag-custom.scss';\nimport './scss/main.scss';\n\nimport TablesManager from './js/TablesManager';\nimport loadMoreHistoricalTable from './js/MoreHistorical';\n\ndocument.addEventListener('DOMContentLoaded', () =>\n{\n window.ADVFN_TABLES_MANAGER = new TablesManager();\n\n const tables = document.querySelectorAll('[data-element=\"table-panel\"]');\n\n if (tables.length > 0)\n {\n tables.forEach((table) =>\n {\n const tableData = JSON.parse(atob(table.getAttribute('data-options')));\n window.ADVFN_TABLES_MANAGER.addTable(table, tableData);\n });\n }\n\n // More historical Table (if present)\n const moreHistoricalTable = document.getElementById('table_more_historical');\n if (moreHistoricalTable)\n {\n loadMoreHistoricalTable(moreHistoricalTable);\n }\n});\n","// style-loader: Adds some css to the DOM by adding a