{"version":3,"file":"phoenix.js","sources":["../../../src/js/utils.js","../../../src/js/theme/node.js","../../../src/js/theme/bulk-select.js","../../../src/js/theme/charts/echarts/echarts-utils.js","../../../src/js/theme/dropzone.js","../../../src/js/theme/googleMap.js","../../../src/js/theme/theme-control.js","../../../src/js/theme/mapbox.js","../../../src/js/theme/flight-map.js","../../../src/js/theme/mapbox-cluster.js","../../../src/js/phoenix.js"],"sourcesContent":["/* -------------------------------------------------------------------------- */\r\n/* Utils */\r\n/* -------------------------------------------------------------------------- */\r\nexport const docReady = fn => {\r\n // see if DOM is already available\r\n if (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', fn);\r\n } else {\r\n setTimeout(fn, 1);\r\n }\r\n};\r\n\r\nexport const toggleColor = (lightColor, darkColor) => {\r\n const currentMode = getItemFromStore('phoenixTheme');\r\n const mode = currentMode === 'auto' ? getSystemTheme() : currentMode;\r\n return mode === 'light' ? lightColor : darkColor;\r\n};\r\n\r\nexport const resize = fn => window.addEventListener('resize', fn);\r\n\r\nexport const isIterableArray = array => Array.isArray(array) && !!array.length;\r\n\r\nexport const camelize = str => {\r\n const text = str.replace(/[-_\\s.]+(.)?/g, (_, c) =>\r\n c ? c.toUpperCase() : ''\r\n );\r\n return `${text.substr(0, 1).toLowerCase()}${text.substr(1)}`;\r\n};\r\n\r\nexport const getData = (el, data) => {\r\n try {\r\n return JSON.parse(el.dataset[camelize(data)]);\r\n } catch (e) {\r\n return el.dataset[camelize(data)];\r\n }\r\n};\r\n\r\n/* ----------------------------- Colors function ---------------------------- */\r\n\r\nexport const hexToRgb = hexValue => {\r\n let hex;\r\n hexValue.indexOf('#') === 0\r\n ? (hex = hexValue.substring(1))\r\n : (hex = hexValue);\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\r\n hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b)\r\n );\r\n return result\r\n ? [\r\n parseInt(result[1], 16),\r\n parseInt(result[2], 16),\r\n parseInt(result[3], 16)\r\n ]\r\n : null;\r\n};\r\n\r\nexport const rgbaColor = (color = '#fff', alpha = 0.5) =>\r\n `rgba(${hexToRgb(color)}, ${alpha})`;\r\n\r\n/* --------------------------------- Colors --------------------------------- */\r\n\r\nexport const getColor = (name, dom = document.documentElement) => {\r\n return getComputedStyle(dom).getPropertyValue(`--phoenix-${name}`).trim();\r\n};\r\n\r\nexport const hasClass = (el, className) => {\r\n !el && false;\r\n return el.classList.value.includes(className);\r\n};\r\n\r\nexport const addClass = (el, className) => {\r\n el.classList.add(className);\r\n};\r\n\r\nexport const getOffset = el => {\r\n const rect = el.getBoundingClientRect();\r\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\r\n};\r\n\r\nexport const isScrolledIntoView = el => {\r\n let top = el.offsetTop;\r\n let left = el.offsetLeft;\r\n const width = el.offsetWidth;\r\n const height = el.offsetHeight;\r\n\r\n while (el.offsetParent) {\r\n // eslint-disable-next-line no-param-reassign\r\n el = el.offsetParent;\r\n top += el.offsetTop;\r\n left += el.offsetLeft;\r\n }\r\n\r\n return {\r\n all:\r\n top >= window.pageYOffset &&\r\n left >= window.pageXOffset &&\r\n top + height <= window.pageYOffset + window.innerHeight &&\r\n left + width <= window.pageXOffset + window.innerWidth,\r\n partial:\r\n top < window.pageYOffset + window.innerHeight &&\r\n left < window.pageXOffset + window.innerWidth &&\r\n top + height > window.pageYOffset &&\r\n left + width > window.pageXOffset\r\n };\r\n};\r\n\r\nexport const breakpoints = {\r\n xs: 0,\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1540\r\n};\r\n\r\nexport const getBreakpoint = el => {\r\n const classes = el && el.classList.value;\r\n let breakpoint;\r\n if (classes) {\r\n breakpoint =\r\n breakpoints[\r\n classes\r\n .split(' ')\r\n .filter(cls => cls.includes('navbar-expand-'))\r\n .pop()\r\n .split('-')\r\n .pop()\r\n ];\r\n }\r\n return breakpoint;\r\n};\r\n\r\n/* --------------------------------- Cookie --------------------------------- */\r\n\r\nexport const setCookie = (name, value, seconds) => {\r\n const expires = window.dayjs().add(seconds, 'second').toDate();\r\n document.cookie = `${name}=${value};expires=${expires}`;\r\n};\r\n\r\nexport const getCookie = name => {\r\n const keyValue = document.cookie.match(`(^|;) ?${name}=([^;]*)(;|$)`);\r\n return keyValue ? keyValue[2] : keyValue;\r\n};\r\n\r\nexport const settings = {\r\n tinymce: {\r\n theme: 'oxide'\r\n },\r\n chart: {\r\n borderColor: 'rgba(255, 255, 255, 0.8)'\r\n }\r\n};\r\n\r\n/* -------------------------- Chart Initialization -------------------------- */\r\n\r\nexport const newChart = (chart, config) => {\r\n const ctx = chart.getContext('2d');\r\n return new window.Chart(ctx, config);\r\n};\r\n\r\n/* ---------------------------------- Store --------------------------------- */\r\n\r\nexport const getItemFromStore = (key, defaultValue, store = localStorage) => {\r\n try {\r\n return JSON.parse(store.getItem(key)) || defaultValue;\r\n } catch {\r\n return store.getItem(key) || defaultValue;\r\n }\r\n};\r\n\r\nexport const setItemToStore = (key, payload, store = localStorage) =>\r\n store.setItem(key, payload);\r\nexport const getStoreSpace = (store = localStorage) =>\r\n parseFloat(\r\n (\r\n escape(encodeURIComponent(JSON.stringify(store))).length /\r\n (1024 * 1024)\r\n ).toFixed(2)\r\n );\r\n\r\n/* get Dates between */\r\n\r\nexport const getDates = (\r\n startDate,\r\n endDate,\r\n interval = 1000 * 60 * 60 * 24\r\n) => {\r\n const duration = endDate - startDate;\r\n const steps = duration / interval;\r\n return Array.from(\r\n { length: steps + 1 },\r\n (v, i) => new Date(startDate.valueOf() + interval * i)\r\n );\r\n};\r\n\r\nexport const getPastDates = duration => {\r\n let days;\r\n\r\n switch (duration) {\r\n case 'week':\r\n days = 7;\r\n break;\r\n case 'month':\r\n days = 30;\r\n break;\r\n case 'year':\r\n days = 365;\r\n break;\r\n\r\n default:\r\n days = duration;\r\n }\r\n\r\n const date = new Date();\r\n const endDate = date;\r\n const startDate = new Date(new Date().setDate(date.getDate() - (days - 1)));\r\n return getDates(startDate, endDate);\r\n};\r\n\r\n/* Get Random Number */\r\nexport const getRandomNumber = (min, max) => {\r\n return Math.floor(Math.random() * (max - min) + min);\r\n};\r\n\r\nexport const getSystemTheme = () =>\r\n window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n\r\n// export const handleThemeDropdownIcon = value => {\r\n// document.querySelectorAll('[data-theme-dropdown-toggle-icon]').forEach(el => {\r\n// const theme = getData(el, 'theme-dropdown-toggle-icon');\r\n\r\n// if (value === theme) {\r\n// el.classList.remove('d-none');\r\n// } else {\r\n// el.classList.add('d-none');\r\n// }\r\n// });\r\n// };\r\n// handleThemeDropdownIcon(getItemFromStore('phoenixTheme'));\r\n\r\nexport default {\r\n docReady,\r\n toggleColor,\r\n resize,\r\n isIterableArray,\r\n camelize,\r\n getData,\r\n hasClass,\r\n addClass,\r\n hexToRgb,\r\n rgbaColor,\r\n getColor,\r\n breakpoints,\r\n // getGrays,\r\n getOffset,\r\n isScrolledIntoView,\r\n getBreakpoint,\r\n setCookie,\r\n getCookie,\r\n newChart,\r\n settings,\r\n getItemFromStore,\r\n setItemToStore,\r\n getStoreSpace,\r\n getDates,\r\n getPastDates,\r\n getRandomNumber,\r\n getSystemTheme\r\n // handleThemeDropdownIcon\r\n};\r\n","/* eslint-disable no-unused-expressions */\r\n/*-----------------------------------------------\r\n| DomNode\r\n-----------------------------------------------*/\r\nclass DomNode {\r\n constructor(node) {\r\n this.node = node;\r\n }\r\n\r\n addClass(className) {\r\n this.isValidNode() && this.node.classList.add(className);\r\n }\r\n\r\n removeClass(className) {\r\n this.isValidNode() && this.node.classList.remove(className);\r\n }\r\n\r\n toggleClass(className) {\r\n this.isValidNode() && this.node.classList.toggle(className);\r\n }\r\n\r\n hasClass(className) {\r\n this.isValidNode() && this.node.classList.contains(className);\r\n }\r\n\r\n data(key) {\r\n if (this.isValidNode()) {\r\n try {\r\n return JSON.parse(this.node.dataset[this.camelize(key)]);\r\n } catch (e) {\r\n return this.node.dataset[this.camelize(key)];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n attr(name) {\r\n return this.isValidNode() && this.node[name];\r\n }\r\n\r\n setAttribute(name, value) {\r\n this.isValidNode() && this.node.setAttribute(name, value);\r\n }\r\n\r\n removeAttribute(name) {\r\n this.isValidNode() && this.node.removeAttribute(name);\r\n }\r\n\r\n setProp(name, value) {\r\n this.isValidNode() && (this.node[name] = value);\r\n }\r\n\r\n on(event, cb) {\r\n this.isValidNode() && this.node.addEventListener(event, cb);\r\n }\r\n\r\n isValidNode() {\r\n return !!this.node;\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n camelize(str) {\r\n const text = str.replace(/[-_\\s.]+(.)?/g, (_, c) =>\r\n c ? c.toUpperCase() : ''\r\n );\r\n return `${text.substr(0, 1).toLowerCase()}${text.substr(1)}`;\r\n }\r\n}\r\n\r\nexport default DomNode;\r\n","import { getData } from '../utils';\r\nimport DomNode from './node';\r\n\r\n/*-----------------------------------------------\r\n| Bulk Select\r\n-----------------------------------------------*/\r\n\r\nconst elementMap = new Map();\r\n\r\nexport class BulkSelect {\r\n constructor(element, option) {\r\n this.element = element;\r\n this.option = {\r\n displayNoneClassName: 'd-none',\r\n ...option\r\n };\r\n elementMap.set(this.element, this);\r\n }\r\n\r\n // Static\r\n static getInstance(element) {\r\n if (elementMap.has(element)) {\r\n return elementMap.get(element);\r\n }\r\n return null;\r\n }\r\n\r\n init() {\r\n this.attachNodes();\r\n this.clickBulkCheckbox();\r\n this.clickRowCheckbox();\r\n }\r\n\r\n getSelectedRows() {\r\n return Array.from(this.bulkSelectRows)\r\n .filter(row => row.checked)\r\n .map(row => getData(row, 'bulk-select-row'));\r\n }\r\n\r\n attachNodes() {\r\n const { body, actions, replacedElement } = getData(\r\n this.element,\r\n 'bulk-select'\r\n );\r\n\r\n this.actions = new DomNode(document.getElementById(actions));\r\n this.replacedElement = new DomNode(\r\n document.getElementById(replacedElement)\r\n );\r\n this.bulkSelectRows = document\r\n .getElementById(body)\r\n .querySelectorAll('[data-bulk-select-row]');\r\n }\r\n\r\n attachRowNodes(elms) {\r\n this.bulkSelectRows = elms;\r\n }\r\n\r\n clickBulkCheckbox() {\r\n // Handle click event in bulk checkbox\r\n this.element.addEventListener('click', () => {\r\n if (this.element.indeterminate === 'indeterminate') {\r\n this.actions.addClass(this.option.displayNoneClassName);\r\n this.replacedElement.removeClass(this.option.displayNoneClassName);\r\n\r\n this.removeBulkCheck();\r\n\r\n this.bulkSelectRows.forEach(el => {\r\n const rowCheck = new DomNode(el);\r\n rowCheck.checked = false;\r\n rowCheck.setAttribute('checked', false);\r\n });\r\n return;\r\n }\r\n\r\n this.toggleDisplay();\r\n this.bulkSelectRows.forEach(el => {\r\n el.checked = this.element.checked;\r\n });\r\n });\r\n }\r\n\r\n clickRowCheckbox() {\r\n // Handle click event in checkbox of each row\r\n this.bulkSelectRows.forEach(el => {\r\n const rowCheck = new DomNode(el);\r\n rowCheck.on('click', () => {\r\n if (this.element.indeterminate !== 'indeterminate') {\r\n this.element.indeterminate = true;\r\n this.element.setAttribute('indeterminate', 'indeterminate');\r\n this.element.checked = true;\r\n this.element.setAttribute('checked', true);\r\n\r\n this.actions.removeClass(this.option.displayNoneClassName);\r\n this.replacedElement.addClass(this.option.displayNoneClassName);\r\n }\r\n\r\n if ([...this.bulkSelectRows].every(element => element.checked)) {\r\n this.element.indeterminate = false;\r\n this.element.setAttribute('indeterminate', false);\r\n }\r\n\r\n if ([...this.bulkSelectRows].every(element => !element.checked)) {\r\n this.removeBulkCheck();\r\n this.toggleDisplay();\r\n }\r\n });\r\n });\r\n }\r\n\r\n removeBulkCheck() {\r\n this.element.indeterminate = false;\r\n this.element.removeAttribute('indeterminate');\r\n this.element.checked = false;\r\n this.element.setAttribute('checked', false);\r\n }\r\n\r\n toggleDisplay() {\r\n this.actions.toggleClass(this.option.displayNoneClassName);\r\n this.replacedElement.toggleClass(this.option.displayNoneClassName);\r\n }\r\n}\r\n\r\nconst bulkSelectInit = () => {\r\n const bulkSelects = document.querySelectorAll('[data-bulk-select]');\r\n\r\n if (bulkSelects.length) {\r\n bulkSelects.forEach(el => {\r\n const bulkSelect = new BulkSelect(el);\r\n bulkSelect.init();\r\n });\r\n }\r\n};\r\n\r\nexport default bulkSelectInit;\r\n","// import * as echarts from 'echarts';\r\nconst { merge } = window._;\r\n\r\n// form config.js\r\nexport const echartSetOption = (\r\n chart,\r\n userOptions,\r\n getDefaultOptions,\r\n responsiveOptions\r\n) => {\r\n const { breakpoints, resize } = window.phoenix.utils;\r\n const handleResize = options => {\r\n Object.keys(options).forEach(item => {\r\n if (window.innerWidth > breakpoints[item]) {\r\n chart.setOption(options[item]);\r\n }\r\n });\r\n };\r\n\r\n const themeController = document.body;\r\n // Merge user options with lodash\r\n chart.setOption(merge(getDefaultOptions(), userOptions));\r\n\r\n const navbarVerticalToggle = document.querySelector(\r\n '.navbar-vertical-toggle'\r\n );\r\n if (navbarVerticalToggle) {\r\n navbarVerticalToggle.addEventListener('navbar.vertical.toggle', () => {\r\n chart.resize();\r\n if (responsiveOptions) {\r\n handleResize(responsiveOptions);\r\n }\r\n });\r\n }\r\n\r\n resize(() => {\r\n chart.resize();\r\n if (responsiveOptions) {\r\n handleResize(responsiveOptions);\r\n }\r\n });\r\n if (responsiveOptions) {\r\n handleResize(responsiveOptions);\r\n }\r\n\r\n themeController.addEventListener(\r\n 'clickControl',\r\n ({ detail: { control } }) => {\r\n if (control === 'phoenixTheme') {\r\n chart.setOption(window._.merge(getDefaultOptions(), userOptions));\r\n }\r\n if (responsiveOptions) {\r\n handleResize(responsiveOptions);\r\n }\r\n }\r\n );\r\n};\r\n// -------------------end config.js--------------------\r\n\r\nconst echartTabs = document.querySelectorAll('[data-tab-has-echarts]');\r\nif (echartTabs) {\r\n echartTabs.forEach(tab => {\r\n tab.addEventListener('shown.bs.tab', e => {\r\n const el = e.target;\r\n const { hash } = el;\r\n const id = hash || el.dataset.bsTarget;\r\n const content = document.getElementById(id.substring(1));\r\n const chart = content?.querySelector('[data-echart-tab]');\r\n if (chart) {\r\n window.echarts.init(chart).resize();\r\n }\r\n });\r\n });\r\n}\r\n\r\nexport const tooltipFormatter = (params, dateFormatter = 'MMM DD') => {\r\n let tooltipItem = ``;\r\n params.forEach(el => {\r\n tooltipItem += `
\r\n
\r\n ${el.seriesName} : ${\r\n typeof el.value === 'object' ? el.value[1] : el.value\r\n }\r\n
\r\n
`;\r\n });\r\n return `
\r\n

\r\n ${\r\n window.dayjs(params[0].axisValue).isValid()\r\n ? window.dayjs(params[0].axisValue).format(dateFormatter)\r\n : params[0].axisValue\r\n }\r\n

\r\n ${tooltipItem}\r\n
`;\r\n};\r\n\r\nexport const handleTooltipPosition = ([pos, , dom, , size]) => {\r\n // only for mobile device\r\n if (window.innerWidth <= 540) {\r\n const tooltipHeight = dom.offsetHeight;\r\n const obj = { top: pos[1] - tooltipHeight - 20 };\r\n obj[pos[0] < size.viewSize[0] / 2 ? 'left' : 'right'] = 5;\r\n return obj;\r\n }\r\n return null; // else default behaviour\r\n};\r\n","/* eslint-disable */\r\nconst { merge } = window._;\r\n\r\n/*-----------------------------------------------\r\n| Dropzone\r\n-----------------------------------------------*/\r\n\r\nwindow.Dropzone ? (window.Dropzone.autoDiscover = false) : '';\r\n\r\nconst dropzoneInit = () => {\r\n const { getData } = window.phoenix.utils;\r\n const Selector = {\r\n DROPZONE: '[data-dropzone]',\r\n DZ_ERROR_MESSAGE: '.dz-error-message',\r\n DZ_PREVIEW: '.dz-preview',\r\n DZ_PROGRESS: '.dz-preview .dz-preview-cover .dz-progress',\r\n DZ_PREVIEW_COVER: '.dz-preview .dz-preview-cover'\r\n };\r\n\r\n const ClassName = {\r\n DZ_FILE_PROCESSING: 'dz-file-processing',\r\n DZ_FILE_COMPLETE: 'dz-file-complete',\r\n DZ_COMPLETE: 'dz-complete',\r\n DZ_PROCESSING: 'dz-processing'\r\n };\r\n\r\n const DATA_KEY = {\r\n OPTIONS: 'options'\r\n };\r\n\r\n const Events = {\r\n ADDED_FILE: 'addedfile',\r\n REMOVED_FILE: 'removedfile',\r\n COMPLETE: 'complete'\r\n };\r\n\r\n const dropzones = document.querySelectorAll(Selector.DROPZONE);\r\n\r\n !!dropzones.length &&\r\n dropzones.forEach(item => {\r\n let userOptions = getData(item, DATA_KEY.OPTIONS);\r\n userOptions = userOptions ? userOptions : {};\r\n const data = userOptions.data ? userOptions.data : {};\r\n const options = merge(\r\n {\r\n url: '/assets/php/',\r\n addRemoveLinks: false,\r\n previewsContainer: item.querySelector(Selector.DZ_PREVIEW),\r\n previewTemplate: item.querySelector(Selector.DZ_PREVIEW).innerHTML,\r\n thumbnailWidth: null,\r\n thumbnailHeight: null,\r\n maxFilesize: 2,\r\n autoProcessQueue: false,\r\n filesizeBase: 1000,\r\n init: function init() {\r\n const thisDropzone = this;\r\n\r\n if (data.length) {\r\n data.forEach(v => {\r\n const mockFile = { name: v.name, size: v.size };\r\n thisDropzone.options.addedfile.call(thisDropzone, mockFile);\r\n thisDropzone.options.thumbnail.call(\r\n thisDropzone,\r\n mockFile,\r\n `${v.url}/${v.name}`\r\n );\r\n });\r\n }\r\n\r\n thisDropzone.on(Events.ADDED_FILE, function addedfile() {\r\n if ('maxFiles' in userOptions) {\r\n if (\r\n userOptions.maxFiles === 1 &&\r\n item.querySelectorAll(Selector.DZ_PREVIEW_COVER).length > 1\r\n ) {\r\n item.querySelector(Selector.DZ_PREVIEW_COVER).remove();\r\n }\r\n if (userOptions.maxFiles === 1 && this.files.length > 1) {\r\n this.removeFile(this.files[0]);\r\n }\r\n }\r\n });\r\n },\r\n error(file, message) {\r\n if (file.previewElement) {\r\n file.previewElement.classList.add('dz-error');\r\n if (typeof message !== 'string' && message.error) {\r\n message = message.error;\r\n }\r\n for (let node of file.previewElement.querySelectorAll(\r\n '[data-dz-errormessage]'\r\n )) {\r\n node.textContent = message;\r\n }\r\n }\r\n }\r\n },\r\n userOptions\r\n );\r\n // eslint-disable-next-line\r\n item.querySelector(Selector.DZ_PREVIEW).innerHTML = '';\r\n\r\n const dropzone = new window.Dropzone(item, options);\r\n\r\n dropzone.on(Events.ADDED_FILE, () => {\r\n if (item.querySelector(Selector.DZ_PREVIEW_COVER)) {\r\n item\r\n .querySelector(Selector.DZ_PREVIEW_COVER)\r\n .classList.remove(ClassName.DZ_FILE_COMPLETE);\r\n }\r\n item.classList.add(ClassName.DZ_FILE_PROCESSING);\r\n // Kanban custom bg radio select\r\n document\r\n .querySelector('.kanban-custom-bg-radio')\r\n .setAttribute('checked', true);\r\n });\r\n dropzone.on(Events.REMOVED_FILE, () => {\r\n if (item.querySelector(Selector.DZ_PREVIEW_COVER)) {\r\n item\r\n .querySelector(Selector.DZ_PREVIEW_COVER)\r\n .classList.remove(ClassName.DZ_PROCESSING);\r\n }\r\n item.classList.add(ClassName.DZ_FILE_COMPLETE);\r\n });\r\n dropzone.on(Events.COMPLETE, () => {\r\n if (item.querySelector(Selector.DZ_PREVIEW_COVER)) {\r\n item\r\n .querySelector(Selector.DZ_PREVIEW_COVER)\r\n .classList.remove(ClassName.DZ_PROCESSING);\r\n }\r\n\r\n item.classList.add(ClassName.DZ_FILE_COMPLETE);\r\n });\r\n });\r\n};\r\n\r\nexport default dropzoneInit;\r\n","/*-----------------------------------------------\r\n| Gooogle Map\r\n-----------------------------------------------*/\r\n\r\nfunction initMap() {\r\n const { getData } = window.phoenix.utils;\r\n const themeController = document.body;\r\n const $googlemaps = document.querySelectorAll('[data-googlemap]');\r\n if ($googlemaps.length && window.google) {\r\n const createControlBtn = (map, type) => {\r\n const controlButton = document.createElement('button');\r\n controlButton.classList.add(type);\r\n controlButton.innerHTML =\r\n type === 'zoomIn'\r\n ? ''\r\n : '';\r\n\r\n controlButton.addEventListener('click', () => {\r\n const zoom = map.getZoom();\r\n if (type === 'zoomIn') {\r\n map.setZoom(zoom + 1);\r\n }\r\n if (type === 'zoomOut') {\r\n map.setZoom(zoom - 1);\r\n }\r\n });\r\n\r\n return controlButton;\r\n };\r\n const mapStyles = {\r\n SnazzyCustomLight: [\r\n {\r\n featureType: 'administrative',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#525b75'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative.country',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#ffffff'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative.province',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#E3E6ED'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'landscape.natural',\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n color: '#eff2f6'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#eff2f6'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#9fa6bc'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#eff2f6'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#9fa6bc'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit.line',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit.line',\r\n elementType: 'labels.text',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit.station.airport',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit.station.airport',\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#F5F7FA'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n }\r\n ],\r\n SnazzyCustomDark: [\r\n {\r\n featureType: 'administrative',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels',\r\n stylers: [{ visibility: 'on' }]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#8a94ad'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative.country',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n { visibility: 'on' },\r\n {\r\n color: '#000000'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'administrative.province',\r\n elementType: 'geometry.stroke',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [{ visibility: 'on' }, { color: '#222834' }]\r\n },\r\n {\r\n featureType: 'landscape.natural',\r\n elementType: 'labels',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'all',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'all',\r\n stylers: [{ color: '#141824' }]\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'labels',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'all',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#141824'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#525b75'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#141824'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n visibility: 'on'\r\n },\r\n {\r\n color: '#67718A'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n visibility: 'off'\r\n }\r\n ]\r\n },\r\n {\r\n featureType: 'transit',\r\n elementType: 'labels.icon',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'transit.line',\r\n elementType: 'geometry',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'transit.line',\r\n elementType: 'labels.text',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'transit.station.airport',\r\n elementType: 'geometry',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'transit.station.airport',\r\n elementType: 'labels',\r\n stylers: [{ visibility: 'off' }]\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{ color: '#0f111a' }]\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'labels',\r\n stylers: [{ visibility: 'off' }]\r\n }\r\n ]\r\n };\r\n\r\n $googlemaps.forEach(itm => {\r\n const latLng = getData(itm, 'latlng').split(',');\r\n const markerPopup = itm.innerHTML;\r\n const zoom = getData(itm, 'zoom');\r\n const mapElement = itm;\r\n const mapStyle = getData(itm, 'phoenixTheme');\r\n\r\n if (getData(itm, 'phoenixTheme') === 'streetview') {\r\n const pov = getData(itm, 'pov');\r\n const mapOptions = {\r\n position: { lat: Number(latLng[0]), lng: Number(latLng[1]) },\r\n pov,\r\n zoom,\r\n gestureHandling: 'none',\r\n scrollwheel: false\r\n };\r\n\r\n return new window.google.maps.StreetViewPanorama(\r\n mapElement,\r\n mapOptions\r\n );\r\n }\r\n\r\n const mapOptions = {\r\n zoom,\r\n minZoom: 1.2,\r\n clickableIcons: false,\r\n zoomControl: false,\r\n zoomControlOptions: {\r\n position: window.google.maps.ControlPosition.LEFT\r\n },\r\n scrollwheel: getData(itm, 'scrollwheel'),\r\n disableDefaultUI: true,\r\n center: new window.google.maps.LatLng(latLng[0], latLng[1]),\r\n styles:\r\n window.config.config.phoenixTheme === 'dark'\r\n ? mapStyles.SnazzyCustomDark\r\n : mapStyles[mapStyle || 'SnazzyCustomLight']\r\n };\r\n\r\n const map = new window.google.maps.Map(mapElement, mapOptions);\r\n const infoWindow = new window.google.maps.InfoWindow({\r\n content: markerPopup\r\n });\r\n\r\n // Create the DIV to hold the control.\r\n const controlDiv = document.createElement('div');\r\n controlDiv.classList.add('google-map-control-btn');\r\n // Create the control.\r\n const zoomInBtn = createControlBtn(map, 'zoomIn');\r\n const zoomOutBtn = createControlBtn(map, 'zoomOut');\r\n // Append the control to the DIV.\r\n controlDiv.appendChild(zoomInBtn);\r\n controlDiv.appendChild(zoomOutBtn);\r\n\r\n map.controls[window.google.maps.ControlPosition.LEFT].push(controlDiv);\r\n\r\n const marker = new window.google.maps.Marker({\r\n position: new window.google.maps.LatLng(latLng[0], latLng[1]),\r\n // icon,\r\n map\r\n });\r\n\r\n marker.addListener('click', () => {\r\n infoWindow.open(map, marker);\r\n });\r\n\r\n themeController &&\r\n themeController.addEventListener(\r\n 'clickControl',\r\n ({ detail: { control, value } }) => {\r\n if (control === 'phoenixTheme') {\r\n map.set(\r\n 'styles',\r\n value === 'dark'\r\n ? mapStyles.SnazzyCustomDark\r\n : mapStyles.SnazzyCustomLight\r\n );\r\n }\r\n }\r\n );\r\n\r\n // return null;\r\n });\r\n }\r\n}\r\n\r\nexport default initMap;\r\n","import DomNode from './node';\r\n\r\n/* -------------------------------------------------------------------------- */\r\n/* Theme Control */\r\n/* -------------------------------------------------------------------------- */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable */\r\nconst { config } = window.config;\r\n\r\nconst initialDomSetup = element => {\r\n const { getData, getItemFromStore, getSystemTheme } = window.phoenix.utils;\r\n if (!element) return;\r\n\r\n element.querySelectorAll('[data-theme-control]').forEach(el => {\r\n const inputDataAttributeValue = getData(el, 'theme-control');\r\n const localStorageValue = getItemFromStore(inputDataAttributeValue);\r\n\r\n // diable horizontal navbar shape for dual nav\r\n if (\r\n inputDataAttributeValue === 'phoenixNavbarTopShape' &&\r\n getItemFromStore('phoenixNavbarPosition') === 'dual-nav'\r\n ) {\r\n el.setAttribute('disabled', true);\r\n }\r\n\r\n // diable navbar vertical style for horizontal & dual navbar\r\n const currentNavbarPosition = getItemFromStore('phoenixNavbarPosition');\r\n const isHorizontalOrDualNav =\r\n currentNavbarPosition === 'horizontal' ||\r\n currentNavbarPosition === 'dual-nav';\r\n if (\r\n inputDataAttributeValue === 'phoenixNavbarVerticalStyle' &&\r\n isHorizontalOrDualNav\r\n ) {\r\n el.setAttribute('disabled', true);\r\n }\r\n\r\n if (el.type === 'checkbox') {\r\n if (inputDataAttributeValue === 'phoenixTheme') {\r\n if (\r\n localStorageValue === 'auto'\r\n ? getSystemTheme() === 'dark'\r\n : localStorageValue === 'dark'\r\n ) {\r\n el.setAttribute('checked', true);\r\n }\r\n } else {\r\n localStorageValue && el.setAttribute('checked', true);\r\n }\r\n } else if (\r\n el.type === 'radio' &&\r\n inputDataAttributeValue === 'phoenixNavbarVerticalStyle'\r\n ) {\r\n localStorageValue === 'darker' &&\r\n el.value === 'darker' &&\r\n el.setAttribute('checked', true);\r\n localStorageValue === 'default' &&\r\n el.value === 'default' &&\r\n el.setAttribute('checked', true);\r\n } else if (\r\n el.type === 'radio' &&\r\n inputDataAttributeValue === 'phoenixNavbarTopShape'\r\n ) {\r\n localStorageValue === 'slim' &&\r\n el.value === 'slim' &&\r\n el.setAttribute('checked', true);\r\n localStorageValue === 'default' &&\r\n el.value === 'default' &&\r\n el.setAttribute('checked', true);\r\n } else if (\r\n el.type === 'radio' &&\r\n inputDataAttributeValue === 'phoenixNavbarTopStyle'\r\n ) {\r\n localStorageValue === 'darker' &&\r\n el.value === 'darker' &&\r\n el.setAttribute('checked', true);\r\n localStorageValue === 'default' &&\r\n el.value === 'default' &&\r\n el.setAttribute('checked', true);\r\n } else if (\r\n el.type === 'radio' &&\r\n inputDataAttributeValue === 'phoenixTheme'\r\n ) {\r\n const isChecked = localStorageValue === el.value;\r\n isChecked && el.setAttribute('checked', true);\r\n } else if (\r\n el.type === 'radio' &&\r\n inputDataAttributeValue === 'phoenixNavbarPosition'\r\n ) {\r\n const isChecked = localStorageValue === el.value;\r\n isChecked && el.setAttribute('checked', true);\r\n } else {\r\n const isActive = localStorageValue === el.value;\r\n isActive && el.classList.add('active');\r\n }\r\n });\r\n};\r\n\r\nconst changeTheme = element => {\r\n const { getData, getItemFromStore, getSystemTheme } = window.phoenix.utils;\r\n\r\n element\r\n .querySelectorAll('[data-theme-control = \"phoenixTheme\"]')\r\n .forEach(el => {\r\n const inputDataAttributeValue = getData(el, 'theme-control');\r\n const localStorageValue = getItemFromStore(inputDataAttributeValue);\r\n\r\n if (el.type === 'checkbox') {\r\n if (localStorageValue === 'auto') {\r\n getSystemTheme() === 'dark'\r\n ? (el.checked = true)\r\n : (el.checked = false);\r\n } else {\r\n localStorageValue === 'dark'\r\n ? (el.checked = true)\r\n : (el.checked = false);\r\n }\r\n } else if (el.type === 'radio') {\r\n localStorageValue === el.value\r\n ? (el.checked = true)\r\n : (el.checked = false);\r\n } else {\r\n localStorageValue === el.value\r\n ? el.classList.add('active')\r\n : el.classList.remove('active');\r\n }\r\n });\r\n};\r\n\r\nconst handleThemeDropdownIcon = value => {\r\n document.querySelectorAll('[data-theme-dropdown-toggle-icon]').forEach(el => {\r\n el.classList.toggle(\r\n 'd-none',\r\n value !== el.getAttribute('data-theme-dropdown-toggle-icon')\r\n // value !== getData(el, 'theme-dropdown-toggle-icon')\r\n );\r\n });\r\n};\r\n\r\nhandleThemeDropdownIcon(localStorage.getItem('phoenixTheme'));\r\n\r\nconst themeControl = () => {\r\n const { getData, getItemFromStore, getSystemTheme } = window.phoenix.utils;\r\n // handleThemeDropdownIcon(\r\n // window.phoenix.utils.getItemFromStore('phoenixTheme'),\r\n // getData\r\n // );\r\n\r\n const handlePageUrl = el => {\r\n const pageUrl = getData(el, 'page-url');\r\n if (pageUrl) {\r\n window.location.replace(pageUrl);\r\n } else {\r\n window.location.reload();\r\n }\r\n };\r\n\r\n const themeController = new DomNode(document.body);\r\n\r\n const navbarVertical = document.querySelector('.navbar-vertical');\r\n const navbarTop = document.querySelector('.navbar-top');\r\n const supportChat = document.querySelector('.support-chat-container');\r\n initialDomSetup(themeController.node);\r\n\r\n themeController.on('click', e => {\r\n const target = new DomNode(e.target);\r\n\r\n if (target.data('theme-control')) {\r\n const control = target.data('theme-control');\r\n\r\n let value = e.target[e.target.type === 'checkbox' ? 'checked' : 'value'];\r\n\r\n if (control === 'phoenixTheme') {\r\n typeof value === 'boolean' && (value = value ? 'dark' : 'light');\r\n }\r\n\r\n // config.hasOwnProperty(control) && setItemToStore(control, value);\r\n config.hasOwnProperty(control) &&\r\n window.config.set({\r\n [control]: value\r\n });\r\n\r\n window.history.replaceState(null, null, window.location.pathname);\r\n switch (control) {\r\n case 'phoenixTheme': {\r\n document.documentElement.setAttribute(\r\n 'data-bs-theme',\r\n value === 'auto' ? getSystemTheme() : value\r\n );\r\n // document.documentElement.classList[\r\n // value === 'dark' ? 'add' : 'remove'\r\n // ]('dark');\r\n const clickControl = new CustomEvent('clickControl', {\r\n detail: { control, value }\r\n });\r\n e.currentTarget.dispatchEvent(clickControl);\r\n changeTheme(themeController.node);\r\n break;\r\n }\r\n case 'phoenixNavbarVerticalStyle': {\r\n navbarVertical.setAttribute('data-navbar-appearance', 'default');\r\n if (value !== 'default') {\r\n navbarVertical.setAttribute('data-navbar-appearance', 'darker');\r\n }\r\n break;\r\n }\r\n case 'phoenixNavbarTopStyle': {\r\n navbarTop.setAttribute('data-navbar-appearance', 'default');\r\n if (value !== 'default') {\r\n navbarTop.setAttribute('data-navbar-appearance', 'darker');\r\n }\r\n break;\r\n }\r\n case 'phoenixNavbarTopShape':\r\n {\r\n if (getItemFromStore('phoenixNavbarPosition') === 'dual-nav') {\r\n el.setAttribute('disabled', true);\r\n // document.documentElement.setAttribute(\"data-bs-theme\", value);\r\n } else handlePageUrl(target.node);\r\n }\r\n break;\r\n case 'phoenixNavbarPosition':\r\n {\r\n handlePageUrl(target.node);\r\n }\r\n\r\n break;\r\n case 'phoenixIsRTL':\r\n {\r\n // localStorage.setItem('phoenixIsRTL', target.node.checked);\r\n window.config.set({\r\n phoenixIsRTL: target.node.checked\r\n });\r\n window.location.reload();\r\n }\r\n break;\r\n\r\n case 'phoenixSupportChat': {\r\n supportChat?.classList.remove('show');\r\n if (value) {\r\n supportChat?.classList.add('show');\r\n }\r\n break;\r\n }\r\n\r\n case 'reset': {\r\n window.config.reset();\r\n window.location.reload();\r\n break;\r\n }\r\n\r\n default: {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n });\r\n\r\n themeController.on('clickControl', ({ detail: { control, value } }) => {\r\n if (control === 'phoenixTheme') {\r\n handleThemeDropdownIcon(value);\r\n }\r\n });\r\n};\r\n\r\nexport default themeControl;\r\n","import { getColor } from '../utils';\r\n\r\n/* -------------------------------------------------------------------------- */\r\n/* mapbox */\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst mapboxInit = () => {\r\n const { getData } = window.phoenix.utils;\r\n const mapboxContainers = document.querySelectorAll('.mapbox-container');\r\n const mapContainerTab = document.querySelectorAll('[data-tab-map-container]');\r\n if (mapboxContainers) {\r\n mapboxContainers.forEach(mapboxContainer => {\r\n window.mapboxgl.accessToken =\r\n 'pk.eyJ1IjoidGhlbWV3YWdvbiIsImEiOiJjbGhmNW5ybzkxcmoxM2RvN2RmbW1nZW90In0.hGIvQ890TYkZ948MVrsMIQ';\r\n\r\n const mapbox = mapboxContainer.querySelector('[data-mapbox]');\r\n if (mapbox) {\r\n const options = getData(mapbox, 'mapbox');\r\n\r\n const zoomIn = document.querySelector('.zoomIn');\r\n const zoomOut = document.querySelector('.zoomOut');\r\n const fullScreen = document.querySelector('.fullScreen');\r\n\r\n const styles = {\r\n default: 'mapbox://styles/mapbox/light-v11',\r\n light: 'mapbox://styles/themewagon/clj57pads001701qo25756jtw',\r\n dark: 'mapbox://styles/themewagon/cljzg9juf007x01pk1bepfgew'\r\n };\r\n\r\n const map = new window.mapboxgl.Map({\r\n ...options,\r\n container: 'mapbox',\r\n style: styles[window.config.config.phoenixTheme]\r\n });\r\n\r\n if (options.center) {\r\n new window.mapboxgl.Marker({\r\n color: getColor('danger')\r\n })\r\n .setLngLat(options.center)\r\n .addTo(map);\r\n }\r\n\r\n if (zoomIn && zoomOut) {\r\n zoomIn.addEventListener('click', () => map.zoomIn());\r\n zoomOut.addEventListener('click', () => map.zoomOut());\r\n }\r\n if (fullScreen) {\r\n fullScreen.addEventListener('click', () =>\r\n map.getContainer().requestFullscreen()\r\n );\r\n }\r\n\r\n mapContainerTab.forEach(ele => {\r\n ele.addEventListener('shown.bs.tab', () => {\r\n map.resize();\r\n });\r\n });\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst themeController = document.body;\r\nif (themeController) {\r\n themeController.addEventListener('clickControl', () => {\r\n mapboxInit();\r\n });\r\n}\r\n\r\nexport default mapboxInit;\r\n","import { getColor, getItemFromStore } from '../utils';\r\n\r\nconst flightMapInit = () => {\r\n const flightMap = document.querySelector('#flightMap');\r\n if (flightMap) {\r\n window.mapboxgl.accessToken =\r\n 'pk.eyJ1IjoidGhlbWV3YWdvbiIsImEiOiJjbGhmNW5ybzkxcmoxM2RvN2RmbW1nZW90In0.hGIvQ890TYkZ948MVrsMIQ';\r\n\r\n const zoomIn = document.querySelector('.zoomIn');\r\n const zoomOut = document.querySelector('.zoomOut');\r\n const fullScreen = document.querySelector('.fullScreen');\r\n\r\n const styles = {\r\n default: 'mapbox://styles/mapbox/light-v11',\r\n light: 'mapbox://styles/themewagon/clj57pads001701qo25756jtw',\r\n dark: 'mapbox://styles/themewagon/cljzg9juf007x01pk1bepfgew'\r\n };\r\n\r\n const map = new window.mapboxgl.Map({\r\n container: 'flightMap',\r\n style: styles[window.config.config.phoenixTheme],\r\n center: [-73.102712, 7.102257],\r\n zoom: 5,\r\n pitch: 40,\r\n attributionControl: false\r\n });\r\n\r\n zoomIn.addEventListener('click', () => map.zoomIn());\r\n zoomOut.addEventListener('click', () => map.zoomOut());\r\n fullScreen.addEventListener('click', () =>\r\n map.getContainer().requestFullscreen()\r\n );\r\n\r\n const origin = [-61.100583, 5.044713];\r\n const currentPosition = [-74.2139449434892, 8.136553550752552];\r\n const destination = [-84.913785, 10.325774];\r\n\r\n const originToCurrentRoute = {\r\n type: 'FeatureCollection',\r\n features: [\r\n {\r\n type: 'Feature',\r\n geometry: {\r\n type: 'LineString',\r\n coordinates: [origin, currentPosition]\r\n }\r\n }\r\n ]\r\n };\r\n const currentToDestinationRoute = {\r\n type: 'FeatureCollection',\r\n features: [\r\n {\r\n type: 'Feature',\r\n geometry: {\r\n type: 'LineString',\r\n coordinates: [currentPosition, destination]\r\n }\r\n }\r\n ]\r\n };\r\n\r\n const points = {\r\n type: 'FeatureCollection',\r\n features: [\r\n {\r\n type: 'Feature',\r\n properties: {},\r\n geometry: {\r\n type: 'Point',\r\n coordinates: origin\r\n }\r\n },\r\n {\r\n type: 'Feature',\r\n properties: {},\r\n geometry: {\r\n type: 'Point',\r\n coordinates: currentPosition\r\n }\r\n },\r\n {\r\n type: 'Feature',\r\n properties: {},\r\n geometry: {\r\n type: 'Point',\r\n coordinates: destination\r\n }\r\n }\r\n ]\r\n };\r\n\r\n let count = 1;\r\n points.features.forEach(feature => {\r\n const el = document.createElement('div');\r\n el.className = `marker-${count}`;\r\n new window.mapboxgl.Marker(el)\r\n .setLngLat(feature.geometry.coordinates)\r\n .addTo(map);\r\n count += 1;\r\n });\r\n\r\n const lineDistance = window.turf.length(originToCurrentRoute.features[0]);\r\n const lineDistance2 = window.turf.length(originToCurrentRoute.features[0]);\r\n\r\n const arc = [];\r\n const arc2 = [];\r\n\r\n const steps = 500;\r\n\r\n for (let i = 0; i < lineDistance; i += lineDistance / steps) {\r\n const segment = window.turf.along(originToCurrentRoute.features[0], i);\r\n arc.push(segment.geometry.coordinates);\r\n }\r\n for (let i = 0; i < lineDistance2; i += lineDistance2 / steps) {\r\n const segment = window.turf.along(\r\n currentToDestinationRoute.features[0],\r\n i\r\n );\r\n arc2.push(segment.geometry.coordinates);\r\n }\r\n\r\n originToCurrentRoute.features[0].geometry.coordinates = arc;\r\n currentToDestinationRoute.features[0].geometry.coordinates = arc2;\r\n\r\n map.on('load', () => {\r\n map.addSource('route', {\r\n type: 'geojson',\r\n data: originToCurrentRoute.features[0]\r\n });\r\n map.addSource('route2', {\r\n type: 'geojson',\r\n data: currentToDestinationRoute.features[0]\r\n });\r\n\r\n map.addLayer({\r\n id: 'route',\r\n source: 'route',\r\n type: 'line',\r\n paint: {\r\n 'line-width': 2,\r\n 'line-color':\r\n getItemFromStore('phoenixTheme') === 'dark'\r\n ? getColor('primary')\r\n : getColor('primary-light')\r\n }\r\n });\r\n map.addLayer({\r\n id: 'route2',\r\n source: 'route2',\r\n type: 'line',\r\n paint: {\r\n 'line-width': 1,\r\n 'line-color': getColor('warning')\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst themeController = document.body;\r\nif (themeController) {\r\n themeController.addEventListener('clickControl', () => {\r\n flightMapInit();\r\n });\r\n}\r\n\r\nexport default flightMapInit;\r\n","import { getColor } from '../utils';\r\n\r\n/* -------------------------------------------------------------------------- */\r\n/* mapbox cluster */\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst mapboxClusterInit = () => {\r\n const mapboxCluster = document.querySelectorAll('#mapbox-cluster');\r\n if (mapboxCluster) {\r\n mapboxCluster.forEach(() => {\r\n window.mapboxgl.accessToken =\r\n 'pk.eyJ1IjoidGhlbWV3YWdvbiIsImEiOiJjbGhmNW5ybzkxcmoxM2RvN2RmbW1nZW90In0.hGIvQ890TYkZ948MVrsMIQ';\r\n\r\n const styles = {\r\n default: 'mapbox://styles/mapbox/light-v11',\r\n light: 'mapbox://styles/themewagon/clj57pads001701qo25756jtw',\r\n dark: 'mapbox://styles/themewagon/cljzg9juf007x01pk1bepfgew'\r\n };\r\n\r\n const map = new window.mapboxgl.Map({\r\n container: 'mapbox-cluster',\r\n style: styles[window.config.config.phoenixTheme],\r\n center: [-73.102712, 7.102257],\r\n zoom: 3.5,\r\n pitch: 40,\r\n attributionControl: false\r\n });\r\n\r\n map.on('load', () => {\r\n map.addSource('earthquakes', {\r\n type: 'geojson',\r\n data: 'https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson',\r\n cluster: true,\r\n clusterMaxZoom: 14,\r\n clusterRadius: 50\r\n });\r\n\r\n map.addLayer({\r\n id: 'clusters',\r\n type: 'circle',\r\n source: 'earthquakes',\r\n filter: ['has', 'point_count'],\r\n paint: {\r\n 'circle-color': [\r\n 'step',\r\n ['get', 'point_count'],\r\n getColor('secondary'),\r\n 100,\r\n getColor('info'),\r\n 750,\r\n getColor('warning')\r\n ],\r\n 'circle-radius': [\r\n 'step',\r\n ['get', 'point_count'],\r\n 20,\r\n 100,\r\n 30,\r\n 750,\r\n 40\r\n ]\r\n }\r\n });\r\n\r\n map.addLayer({\r\n id: 'cluster-count',\r\n type: 'symbol',\r\n source: 'earthquakes',\r\n filter: ['has', 'point_count'],\r\n layout: {\r\n 'text-field': ['get', 'point_count_abbreviated'],\r\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\r\n 'text-size': 12\r\n },\r\n paint: {\r\n 'text-color': getColor('white')\r\n }\r\n });\r\n\r\n map.addLayer({\r\n id: 'unclustered-point',\r\n type: 'circle',\r\n source: 'earthquakes',\r\n filter: ['!', ['has', 'point_count']],\r\n paint: {\r\n 'circle-color': getColor('primary-light'),\r\n 'circle-radius': 4,\r\n 'circle-stroke-width': 1,\r\n 'circle-stroke-color': getColor('emphasis-bg')\r\n }\r\n });\r\n\r\n map.on('click', 'clusters', e => {\r\n const features = map.queryRenderedFeatures(e.point, {\r\n layers: ['clusters']\r\n });\r\n const clusterId = features[0].properties.cluster_id;\r\n map\r\n .getSource('earthquakes')\r\n .getClusterExpansionZoom(clusterId, (err, zoom) => {\r\n if (err) return;\r\n\r\n map.easeTo({\r\n center: features[0].geometry.coordinates,\r\n zoom\r\n });\r\n });\r\n });\r\n\r\n map.on('click', 'unclustered-point', e => {\r\n const coordinates = e.features[0].geometry.coordinates.slice();\r\n const { mag } = e.features[0].properties;\r\n const tsunami = e.features[0].properties.tsunami === 1 ? 'yes' : 'no';\r\n\r\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n }\r\n\r\n new window.mapboxgl.Popup()\r\n .setLngLat(coordinates)\r\n .setHTML(`magnitude: ${mag}
Was there a tsunami?: ${tsunami}`)\r\n .addTo(map);\r\n });\r\n\r\n map.on('mouseenter', 'clusters', () => {\r\n map.getCanvas().style.cursor = 'pointer';\r\n });\r\n map.on('mouseleave', 'clusters', () => {\r\n map.getCanvas().style.cursor = '';\r\n });\r\n });\r\n });\r\n }\r\n};\r\n\r\nconst themeController = document.body;\r\nif (themeController) {\r\n themeController.addEventListener('clickControl', () => {\r\n mapboxClusterInit();\r\n });\r\n}\r\n\r\nexport default mapboxClusterInit;\r\n","/* eslint-disable no-new */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport utils, { docReady } from './utils';\r\n\r\nimport docComponentInit from './docs';\r\nimport advanceAjaxTableInit from './theme/advance-ajax-table';\r\nimport anchorJSInit from './theme/anchor';\r\nimport bigPictureInit from './theme/bigPicture';\r\nimport bulkSelectInit, { BulkSelect } from './theme/bulk-select';\r\nimport basicEchartsInit from './theme/charts/echarts/basic-echarts';\r\nimport reportsDetailsChartInit from './theme/charts/echarts/reports-details-chart';\r\nimport chatInit from './theme/chat';\r\nimport choicesInit from './theme/choices';\r\nimport copyLink from './theme/copyLink';\r\nimport countupInit from './theme/countUp';\r\nimport createBoardInit from './theme/create-board';\r\nimport detectorInit from './theme/detector';\r\nimport dropdownOnHover from './theme/dropdown-on-hover';\r\nimport dropzoneInit from './theme/dropzone';\r\nimport featherIconsInit from './theme/featherIcons';\r\nimport flatpickrInit from './theme/flatpickr';\r\nimport formValidationInit from './theme/form-validation';\r\nimport { fullCalendarInit } from './theme/fullcalendar';\r\nimport glightboxInit from './theme/glightbox';\r\nimport initMap from './theme/googleMap';\r\nimport iconCopiedInit from './theme/icons';\r\nimport isotopeInit from './theme/isotope';\r\nimport listInit from './theme/list';\r\nimport lottieInit from './theme/lottie';\r\nimport modalInit from './theme/modal';\r\nimport navbarComboInit from './theme/navbar-combo';\r\nimport navbarShadowOnScrollInit from './theme/navbar-shadow-on-scroll';\r\nimport navbarInit from './theme/navbar-soft-on-scroll';\r\nimport handleNavbarVerticalCollapsed from './theme/navbar-vertical';\r\nimport phoenixOffcanvasInit from './theme/phoenix-offcanvas';\r\nimport picmoInit from './theme/picmo';\r\nimport popoverInit from './theme/popover';\r\nimport productDetailsInit from './theme/product-details';\r\nimport quantityInit from './theme/quantity';\r\nimport randomColorInit from './theme/randomColor';\r\nimport ratingInit from './theme/rater';\r\nimport responsiveNavItemsInit from './theme/responsiveNavItems';\r\nimport searchInit from './theme/search';\r\nimport simplebarInit from './theme/simplabar';\r\nimport sortableInit from './theme/sortable';\r\nimport supportChatInit from './theme/support-chat';\r\nimport swiperInit from './theme/swiper';\r\nimport themeControl from './theme/theme-control';\r\nimport tinymceInit from './theme/tinymce';\r\nimport toastInit from './theme/toast';\r\nimport todoOffcanvasInit from './theme/todoOffCanvas';\r\nimport tooltipInit from './theme/tooltip';\r\nimport wizardInit from './theme/wizard';\r\nimport faqTabInit from './theme/faq-tab';\r\nimport kanbanInit from './theme/kanban';\r\nimport towFAVerificarionInit from './theme/2fa-verification';\r\nimport mapboxInit from './theme/mapbox';\r\nimport flightMapInit from './theme/flight-map';\r\nimport typedTextInit from './theme/typed';\r\nimport priceTierFormInit from './theme/price-tier-form';\r\nimport nouisliderInit from './theme/nouislider';\r\nimport collapseAllInit from './theme/collapse-all';\r\nimport leafletInit from './theme/leaflet';\r\nimport mapboxClusterInit from './theme/mapbox-cluster';\r\nimport tripReviewChartInit from './theme/charts/echarts/trip-review-chart';\r\nimport playOnHoverInit from './theme/play-on-hover';\r\nimport passwordToggleInit from './theme/password-toggle';\r\n\r\nwindow.initMap = initMap;\r\n// docReady(detectorInit);\r\n// docReady(simplebarInit);\r\n// docReady(toastInit);\r\n// docReady(tooltipInit);\r\n// docReady(featherIconsInit);\r\n// docReady(basicEchartsInit);\r\n// docReady(bulkSelectInit);\r\n// docReady(listInit);\r\n// docReady(anchorJSInit);\r\n// docReady(popoverInit);\r\n// docReady(formValidationInit);\r\n// docReady(docComponentInit);\r\n// docReady(swiperInit);\r\n// docReady(productDetailsInit);\r\n// docReady(ratingInit);\r\n// docReady(quantityInit);\r\n// docReady(dropzoneInit);\r\n// docReady(choicesInit);\r\n// docReady(tinymceInit);\r\n// docReady(responsiveNavItemsInit);\r\n// docReady(flatpickrInit);\r\n// docReady(iconCopiedInit);\r\n// docReady(isotopeInit);\r\n// docReady(bigPictureInit);\r\n// docReady(countupInit);\r\n// docReady(phoenixOffcanvasInit);\r\n// docReady(todoOffcanvasInit);\r\n// docReady(wizardInit);\r\n// docReady(reportsDetailsChartInit);\r\n// docReady(glightboxInit);\r\n// docReady(themeControl);\r\n// docReady(searchInit);\r\n// docReady(handleNavbarVerticalCollapsed);\r\n// docReady(navbarInit);\r\n// docReady(navbarComboInit);\r\n// docReady(fullCalendarInit);\r\n// docReady(picmoInit);\r\n\r\n// docReady(chatInit);\r\n// docReady(modalInit);\r\n// docReady(lottieInit);\r\n// docReady(navbarShadowOnScrollInit);\r\n// docReady(dropdownOnHover);\r\n// docReady(supportChatInit);\r\n// docReady(sortableInit);\r\n\r\n// docReady(copyLink);\r\n// docReady(randomColorInit);\r\n// docReady(faqTabInit);\r\n// docReady(createBoardInit);\r\n// docReady(advanceAjaxTableInit);\r\n// docReady(kanbanInit);\r\n// docReady(towFAVerificarionInit);\r\n// docReady(mapboxInit);\r\n// docReady(flightMapInit);\r\n// docReady(typedTextInit);\r\n// docReady(priceTierFormInit);\r\n// docReady(nouisliderInit);\r\n// docReady(collapseAllInit);\r\n// docReady(leafletInit);\r\n// docReady(mapboxClusterInit);\r\n// docReady(tripReviewChartInit);\r\n// docReady(playOnHoverInit);\r\n// docReady(passwordToggleInit);\r\n\r\ndocReady(() => {\r\n const selectedRowsBtn = document.querySelector('[data-selected-rows]');\r\n const selectedRows = document.getElementById('selectedRows');\r\n if (selectedRowsBtn) {\r\n const bulkSelectEl = document.getElementById('bulk-select-example');\r\n const bulkSelectInstance =\r\n window.phoenix.BulkSelect.getInstance(bulkSelectEl);\r\n selectedRowsBtn.addEventListener('click', () => {\r\n selectedRows.innerHTML = JSON.stringify(\r\n bulkSelectInstance.getSelectedRows(),\r\n undefined,\r\n 2\r\n );\r\n });\r\n }\r\n});\r\n\r\nexport default {\r\n utils,\r\n BulkSelect\r\n};\r\n"],"names":["docReady","fn","document","readyState","addEventListener","setTimeout","toggleColor","lightColor","darkColor","currentMode","getItemFromStore","getSystemTheme","resize","window","isIterableArray","array","Array","isArray","length","camelize","str","text","replace","_","c","toUpperCase","substr","toLowerCase","getData","el","data","JSON","parse","dataset","e","hexToRgb","hexValue","hex","indexOf","substring","result","exec","m","r","g","b","parseInt","rgbaColor","color","alpha","getColor","name","dom","documentElement","getComputedStyle","getPropertyValue","trim","hasClass","className","classList","value","includes","addClass","add","getOffset","rect","getBoundingClientRect","scrollLeft","pageXOffset","scrollTop","pageYOffset","top","left","isScrolledIntoView","offsetTop","offsetLeft","width","offsetWidth","height","offsetHeight","offsetParent","all","innerHeight","innerWidth","partial","breakpoints","xs","sm","md","lg","xl","xxl","getBreakpoint","classes","breakpoint","split","filter","cls","pop","setCookie","seconds","expires","dayjs","toDate","cookie","getCookie","keyValue","match","settings","tinymce","theme","chart","borderColor","newChart","config","ctx","getContext","Chart","key","defaultValue","store","localStorage","getItem","setItemToStore","payload","setItem","getStoreSpace","parseFloat","escape","encodeURIComponent","stringify","toFixed","getDates","startDate","endDate","interval","steps","from","v","i","Date","valueOf","getPastDates","duration","days","date","setDate","getDate","getRandomNumber","min","max","Math","floor","random","matchMedia","matches","DomNode","constructor","node","this","isValidNode","removeClass","remove","toggleClass","toggle","contains","attr","setAttribute","removeAttribute","setProp","on","event","cb","elementMap","Map","BulkSelect","element","option","displayNoneClassName","set","static","has","get","init","attachNodes","clickBulkCheckbox","clickRowCheckbox","getSelectedRows","bulkSelectRows","row","checked","map","body","actions","replacedElement","getElementById","querySelectorAll","attachRowNodes","elms","indeterminate","removeBulkCheck","forEach","rowCheck","toggleDisplay","every","echartTabs","tab","target","hash","id","bsTarget","querySelector","echarts","Dropzone","autoDiscover","initMap","phoenix","utils","themeController","$googlemaps","google","createControlBtn","type","controlButton","createElement","innerHTML","zoom","getZoom","setZoom","mapStyles","SnazzyCustomLight","featureType","elementType","stylers","visibility","SnazzyCustomDark","itm","latLng","markerPopup","mapElement","mapStyle","pov","mapOptions","position","lat","Number","lng","gestureHandling","scrollwheel","maps","StreetViewPanorama","minZoom","clickableIcons","zoomControl","zoomControlOptions","ControlPosition","LEFT","disableDefaultUI","center","LatLng","styles","phoenixTheme","infoWindow","InfoWindow","content","controlDiv","zoomInBtn","zoomOutBtn","appendChild","controls","push","marker","Marker","addListener","open","detail","control","handleThemeDropdownIcon","getAttribute","mapboxInit","mapboxContainers","mapContainerTab","mapboxContainer","mapboxgl","accessToken","mapbox","options","zoomIn","zoomOut","fullScreen","default","light","dark","container","style","setLngLat","addTo","getContainer","requestFullscreen","ele","flightMapInit","pitch","attributionControl","origin","currentPosition","destination","originToCurrentRoute","features","geometry","coordinates","currentToDestinationRoute","count","properties","feature","lineDistance","turf","lineDistance2","arc","arc2","segment","along","addSource","addLayer","source","paint","mapboxClusterInit","mapboxCluster","cluster","clusterMaxZoom","clusterRadius","layout","queryRenderedFeatures","point","layers","clusterId","cluster_id","getSource","getClusterExpansionZoom","err","easeTo","slice","mag","tsunami","abs","lngLat","Popup","setHTML","getCanvas","cursor","selectedRowsBtn","selectedRows","bulkSelectEl","bulkSelectInstance","getInstance","undefined"],"mappings":"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"}