{"version":3,"file":"DatePickerComponents.bundle.js","mappings":"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","sources":["webpack://advfnweb/./advfn3/content/_common/elements/translator/js/BaseTranslationService.js","webpack://advfnweb/./advfn3/content/_default/stock-market/js/TranslationService.js","webpack://advfnweb/./advfn3/content/_common/elements/datepicker/src/js/datepicker-elements.js"],"sourcesContent":["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 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 TranslationService from '../../../../../_default/stock-market/js/TranslationService';\n\ndocument.addEventListener('DOMContentLoaded', () =>\n{\n const {\n AmpPlugin, easepick, LockPlugin, PresetPlugin, RangePlugin,\n } = window.easepick;\n\n function getFormattedDate(format, date)\n {\n const chunks = format.split('/');\n const formattedDate = [];\n for (let i = 0; i < chunks.length; i++)\n {\n switch (chunks[i])\n {\n case 'MM':\n formattedDate.push(`${(`0${date.getMonth() + 1}`).slice(-2)}`);\n break;\n case 'DD':\n formattedDate.push(`${(`0${date.getDate()}`).slice(-2)}`);\n break;\n case 'YYYY':\n formattedDate.push(`${date.getFullYear()}`);\n break;\n }\n }\n return formattedDate.join('-');\n }\n\n const tradeBarDatepicker = document.getElementById('trade-bar-datepicker');\n if (tradeBarDatepicker)\n {\n const format = tradeBarDatepicker.getAttribute('data-format');\n const url = new URL(window.location.href);\n const dtSelect = url.searchParams.get('dt_select');\n const preDate = dtSelect || new Date();\n\n const today = getFormattedDate(format, new Date());\n\n const currentDate = new Date();\n const minDate = new Date(currentDate.setDate(currentDate.getDate() - 30));\n\n // eslint-disable-next-line new-cap\n new easepick.create({\n element: tradeBarDatepicker,\n css: [\n 'https://cdn.jsdelivr.net/npm/@easepick/core@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/amp-plugin@1.2.1/dist/index.css',\n '/common/elements/historical/src/css/easepick-custom.css',\n ],\n zIndex: 10,\n autoApply: false,\n date: preDate,\n plugins: [LockPlugin, AmpPlugin],\n LockPlugin: {\n minDate,\n maxDate: new Date(),\n filter(date)\n {\n return [0, 6].includes(date.getDay());\n },\n },\n format,\n AmpPlugin: {\n dropdown: {\n months: false,\n years: false,\n },\n resetButton: true,\n darkMode: false,\n },\n setup(picker)\n {\n picker.on('select', (e) =>\n {\n const { date } = e.detail;\n let selectedDate;\n if (date === undefined)\n {\n selectedDate = today;\n }\n else\n {\n selectedDate = getFormattedDate(format, date);\n }\n const currentURL = new URL(window.location.href);\n currentURL.searchParams.delete('dt_select');\n currentURL.searchParams.set('dt_select', selectedDate);\n window.history.replaceState({}, document.title, currentURL.toString());\n\n // // Refresh the page\n window.location.reload();\n });\n picker.on('clear', () =>\n {\n picker.trigger('select');\n picker.gotoDate(today);\n });\n },\n });\n }\n\n const datepicker = document.getElementById('news-datepicker');\n\n if (datepicker)\n {\n const now = new Date();\n const url = new URL(window.location.href);\n const df = url.searchParams.get('df');\n const dt = url.searchParams.get('dt');\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 // TODO: need to fix easepick-custom.css import to be general\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 '/common/elements/historical/src/css/easepick-custom.css',\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 RangePlugin: {\n startDate: df && dt ? df : null,\n endDate: df && dt ? dt : null,\n },\n setup(picker)\n {\n picker.on('select', (e) =>\n {\n const { start, end } = e.detail;\n\n // eslint-disable-next-line max-len\n const startDate = `${start.getFullYear()}-${(`0${start.getMonth() + 1}`).slice(-2)}-${(`0${start.getDate()}`).slice(-2)}`;\n const endDate = `${end.getFullYear()}-${(`0${end.getMonth() + 1}`).slice(-2)}-${(`0${end.getDate()}`).slice(-2)}`;\n\n const currentURL = new URL(window.location.href);\n currentURL.searchParams.delete('page');\n currentURL.searchParams.set('df', startDate);\n currentURL.searchParams.set('dt', endDate);\n window.history.replaceState({}, document.title, currentURL.toString());\n\n // Refresh the page\n window.location.reload();\n });\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 picker.on('clear', () =>\n {\n const currentURL = new URL(window.location.href);\n currentURL.searchParams.delete('page');\n currentURL.searchParams.delete('df');\n currentURL.searchParams.delete('dt');\n window.history.replaceState({}, document.title, currentURL.toString());\n\n // Refresh the page\n window.location.reload();\n });\n },\n });\n }\n});\n"],"names":["const","DEFAULT_LOCALE","FALLBACK_LOCALES","en_CA","en_AU","BaseTranslationService","setLocale","locale","this","getValidLocale","setLangFile","file","lang","getLangFile","getResource","find","fallbackLocale","hasOwnProperty","getLocale","getTranslation","txt","general","TranslationService","super","getTranslations","document","addEventListener","window","easepick","AmpPlugin","LockPlugin","PresetPlugin","RangePlugin","getFormattedDate","format","date","chunks","split","formattedDate","i","length","push","getMonth","slice","getDate","getFullYear","join","tradeBarDatepicker","getElementById","getAttribute","preDate","URL","location","href","searchParams","get","Date","today","currentDate","minDate","setDate","create","element","css","zIndex","autoApply","plugins","maxDate","filter","includes","getDay","dropdown","months","years","resetButton","darkMode","setup","picker","on","e","selectedDate","detail","undefined","currentURL","delete","set","history","replaceState","title","toString","reload","trigger","gotoDate","datepicker","now","url","df","dt","translationServiceData","ADVFN","LOCALE","translationToday","translationSevenD","seven_d","translationThirtyD","thirty_d","translationThreeM","three_m","translationOneY","one_y","translationThreeY","three_y","translationFiveY","five_y","translationCancel","cancel","translationApply","apply","replace","minYear","customPreset","getTime","position","startDate","endDate","start","end","target","classList","contains","textContent","timestamp","parseInt","Number","isNaN","toISOString","isCancelButton","setTimeout","hide"],"sourceRoot":""}