{"version":3,"file":"js/common-aa86a966fc7d90d7d6b5.js","mappings":"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","sources":["webpack://vatatis/./app/packs/channels/ sync _channel\\.js$","webpack://vatatis/./app/packs/controllers/ sync _controller\\.[jt]s$","webpack://vatatis/./app/packs/images/ sync ^\\.\\/.*$","webpack://vatatis/./app/packs/sounds/ sync ^\\.\\/.*$","webpack://vatatis/./app/packs/channels/index.js","webpack://vatatis/./app/packs/controllers/airport_positions/draganddrop_controller.ts","webpack://vatatis/./app/packs/controllers/alert_controller.ts","webpack://vatatis/./app/packs/controllers/atis_format_builder/atc_positions_controller.ts","webpack://vatatis/./app/packs/controllers/atis_format_builder/draganddrop_controller.ts","webpack://vatatis/./app/packs/controllers/atis_format_builder/metar_controller.ts","webpack://vatatis/./app/packs/controllers/configured_airports/form_controller.ts","webpack://vatatis/./app/packs/controllers/configured_runways/form_controller.ts","webpack://vatatis/./app/packs/controllers/flash_controller.ts","webpack://vatatis/./app/packs/controllers/form/autocomplete_controller.ts","webpack://vatatis/./app/packs/controllers/form/select_controller.ts","webpack://vatatis/./app/packs/controllers/height_controller.ts","webpack://vatatis/./app/packs/controllers/materialize_controller.ts","webpack://vatatis/./app/packs/controllers/metar_controller.ts","webpack://vatatis/./app/packs/controllers/modal_controller.ts","webpack://vatatis/./app/packs/controllers/monaco/intellisense.js","webpack://vatatis/./app/packs/controllers/monaco/editor_controller.js","webpack://vatatis/./app/packs/controllers/tabs_controller.ts","webpack://vatatis/./app/packs/src/common/ts/cookies_eu.ts","webpack://vatatis/./app/packs/controllers/index.js","webpack://vatatis/./app/packs/entrypoints/common.js","webpack://vatatis/./app/packs/sounds/notification.mp3"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 9391;\nmodule.exports = webpackEmptyContext;","var map = {\n\t\"./airport_positions/draganddrop_controller.ts\": 2121,\n\t\"./alert_controller.ts\": 4478,\n\t\"./atis_format_builder/atc_positions_controller.ts\": 8697,\n\t\"./atis_format_builder/draganddrop_controller.ts\": 6850,\n\t\"./atis_format_builder/metar_controller.ts\": 7427,\n\t\"./configured_airports/form_controller.ts\": 8748,\n\t\"./configured_runways/form_controller.ts\": 1790,\n\t\"./flash_controller.ts\": 8912,\n\t\"./form/autocomplete_controller.ts\": 2920,\n\t\"./form/select_controller.ts\": 3816,\n\t\"./height_controller.ts\": 4669,\n\t\"./materialize_controller.ts\": 8807,\n\t\"./metar_controller.ts\": 2713,\n\t\"./modal_controller.ts\": 9186,\n\t\"./monaco/editor_controller.js\": 1400,\n\t\"./tabs_controller.ts\": 2934,\n\t\"controllers/airport_positions/draganddrop_controller.ts\": 2121,\n\t\"controllers/alert_controller.ts\": 4478,\n\t\"controllers/atis_format_builder/atc_positions_controller.ts\": 8697,\n\t\"controllers/atis_format_builder/draganddrop_controller.ts\": 6850,\n\t\"controllers/atis_format_builder/metar_controller.ts\": 7427,\n\t\"controllers/configured_airports/form_controller.ts\": 8748,\n\t\"controllers/configured_runways/form_controller.ts\": 1790,\n\t\"controllers/flash_controller.ts\": 8912,\n\t\"controllers/form/autocomplete_controller.ts\": 2920,\n\t\"controllers/form/select_controller.ts\": 3816,\n\t\"controllers/height_controller.ts\": 4669,\n\t\"controllers/materialize_controller.ts\": 8807,\n\t\"controllers/metar_controller.ts\": 2713,\n\t\"controllers/modal_controller.ts\": 9186,\n\t\"controllers/monaco/editor_controller.js\": 1400,\n\t\"controllers/tabs_controller.ts\": 2934\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 977;","var map = {\n\t\"./favicon.ico\": 8556\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8999;","var map = {\n\t\"./notification.mp3\": 207\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7561;","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller {\n static targets = ['draggable', 'remove', 'removeBg', 'removeBorder']\n remove_over = false;\n handlers = [];\n\n draggableTargetConnected(e){\n const self = this;\n e.addEventListener('dragstart', function(e){\n self.drag_start(e, self);\n })\n e.addEventListener('dragend', function(e){\n self.drag_stop(e, self);\n })\n }\n\n connect() {\n const self = this;\n // @ts-ignore\n this.draggableTargets.forEach(t => t.addEventListener('dragstart', function(e){\n self.drag_start(e, self);\n }))\n // @ts-ignore\n this.draggableTargets.forEach(t => t.addEventListener('dragend', function(e){\n self.drag_stop(e, self);\n }))\n // @ts-ignore\n this.removeTarget.addEventListener('dragenter', function(e){\n self.remove_drag_over(e, self);\n })\n // @ts-ignore\n this.removeTarget.addEventListener('dragover',function(e){\n self.remove_drag_over(e, self);\n })\n // @ts-ignore\n this.removeTarget.addEventListener('dragleave', function(e){\n self.remove_drag_leave(e, self);\n })\n // @ts-ignore\n this.removeTarget.addEventListener('drop', function(e){\n self.remove_drag_drop(e, self);\n })\n }\n\n drag_start(e, self){\n e.dataTransfer.setData('application/position', e.target.id);\n document.getElementById('dragged_airport').dataset.airport = e.target.id;\n self.draggableTargets.forEach((target) => {\n target.classList.remove('hover:bg-gray-200')\n });\n e.target.classList.add('bg-gray-200');\n const parent_id = e.target.parentElement.id;\n let position = 0\n const pos_type = parent_id.split('_')[0]\n e.dataTransfer.setData('application/priority', parent_id.split('_')[1]);\n while(true){\n let elem = document.getElementById(`${pos_type}_${position}`)\n if(elem === null){\n break;\n }\n elem.addEventListener('dragenter', self.pos_drag_over)\n elem.addEventListener('dragover',self.pos_drag_over)\n elem.addEventListener('drop',self.drag_drop)\n\n position = position + 1\n }\n }\n\n drag_stop(e, self){\n document.getElementById('dragged_airport').dataset.airport = null;\n self.draggableTargets.forEach((target) => {\n target.classList.add('hover:bg-gray-200')\n });\n e.target.classList.remove('bg-gray-200');\n let position = 0\n const pos_type = e.target.dataset.type\n while(true){\n let elem = document.getElementById(`${pos_type}_${position}`)\n if(elem === null){\n break;\n }\n elem.removeEventListener('dragenter', self.pos_drag_over)\n elem.removeEventListener('dragover',self.pos_drag_over)\n elem.removeEventListener('drop',self.drag_drop)\n\n position = position + 1\n }\n }\n\n drag_drop(e){\n // @ts-ignore\n const new_priority = parseInt(this.id.split('_')[1]);\n const old_priority = parseInt(e.dataTransfer.getData('application/priority'));\n const id = e.dataTransfer.getData('application/position');\n\n if(old_priority == new_priority){\n return;\n }\n\n const elem = this;\n // @ts-ignore\n const elems = elem.parentNode.children;\n const data = {\n positions: []\n }\n Array.from(elems).forEach(position => {\n // @ts-ignore\n if(position.id.endsWith('header')){\n return;\n }\n // @ts-ignore\n const pos = position.id.split('_')[1]\n // @ts-ignore\n const pos_id = position.children[0].id;\n data['positions'].push({\n position: pos,\n id: pos_id\n })\n })\n\n //@ts-ignore\n const token = document.getElementsByName('csrf-token')[0].content;\n fetch(`/airport_positions/${id}/reorder_nodes`, {\n method: 'POST',\n headers: {\n 'X-CSRF-TOKEN': token,\n 'Content-Type': 'application/json',\n 'Accept': 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml'\n },\n body: JSON.stringify(data),\n credentials: 'same-origin'\n }).then(r => {})\n }\n\n pos_drag_over(e){\n e.preventDefault();\n\n const id = document.getElementById('dragged_airport').dataset.airport;\n if(id === null || id === undefined){\n return;\n }\n\n const origin_child = document.getElementById(id)\n const target_parent = e.currentTarget;\n if(target_parent.children[0] == origin_child){\n return;\n }\n const origin_parent = document.getElementById(id).parentElement;\n const target_child = target_parent.children[0];\n\n origin_parent.appendChild(target_child);\n target_parent.appendChild(origin_child);\n }\n\n remove_drag_over(e, self){\n if(e.dataTransfer.types[0] !== 'application/position' && e.dataTransfer.types[0] !== 'application/priority'){\n return false;\n }\n e.preventDefault();\n self.remove_over = true;\n // @ts-ignore\n const bg = self.removeBgTarget;\n\n if(bg !== undefined){\n bg.classList.remove('bg-white')\n bg.classList.add('bg-gray-200')\n }\n\n // @ts-ignore\n const border = self.removeBorderTarget;\n if(bg !== undefined){\n border.classList.remove('border-red-300')\n border.classList.add('border-red-400')\n }\n }\n\n async remove_drag_leave(e, self) {\n // @ts-ignore\n if(e.dataTransfer.types[0] !== 'application/position' && e.dataTransfer.types[0] !== 'application/priority'){\n return false;\n }\n self.remove_over = false;\n\n setTimeout(function (){\n if(self.remove_over){\n return;\n }\n const bg = self.removeBgTarget;\n if (bg !== undefined) {\n bg.classList.add('bg-white')\n bg.classList.remove('bg-gray-200')\n }\n\n // @ts-ignore\n const border = self.removeBorderTarget;\n if (bg !== undefined) {\n border.classList.add('border-red-300')\n border.classList.remove('border-red-400')\n }\n }, 100)\n\n }\n\n remove_drag_drop(e, self){\n const bg = self.removeBgTarget;\n if (bg !== undefined) {\n bg.classList.add('bg-white')\n bg.classList.remove('bg-gray-200')\n }\n\n // @ts-ignore\n const border = self.removeBorderTarget;\n if (bg !== undefined) {\n border.classList.add('border-red-300')\n border.classList.remove('border-red-400')\n }\n\n const id = e.dataTransfer.getData('application/position');\n const elem = document.getElementById(id)\n let parent_elem = elem.parentElement\n const parent_id = parent_elem.id;\n let position = parseInt(parent_id.split('_')[1])\n const pos_type = parent_id.split('_')[0]\n elem.remove();\n while(true){\n const next_parent = document.getElementById(`${pos_type}_${position+1}`)\n if(next_parent === null){\n document.getElementById(`${pos_type}_${position}`).remove();\n break;\n }\n const child = next_parent.children[0];\n parent_elem.appendChild(child);\n\n parent_elem = next_parent\n position = position + 1\n }\n // @ts-ignore\n const token = document.getElementsByName('csrf-token')[0].content;\n fetch(`/airport_positions/${id}/remove`, {\n method: 'POST',\n headers: {\n 'X-CSRF-TOKEN': token,\n 'Accept': 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml'\n },\n credentials: 'same-origin'\n }).then(r => {})\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n// @ts-ignore\nimport notification from '../sounds/notification.mp3';\n\nexport default class extends Controller{\n last_play_time: number = Date.now()-((1000*60)*10);\n audio = new Audio(notification);\n\n connect(){\n const self = this;\n self.audio.volume = 0.5;\n document.documentElement.addEventListener('turbo:before-stream-render', function (e){\n // @ts-ignore\n if(e.target.action == 'replace' && e.target.target.match(/\\w{3,4}\\_stream/)){\n const diff = (1000*60);\n const minute_ago = Date.now() - diff;\n if(self.last_play_time < minute_ago){\n self.last_play_time = Date.now();\n // @ts-ignore\n self.audio.play();\n }\n\n }\n })\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller{\n static targets = ['li']\n\n remove(){\n // @ts-ignore\n this.liTarget.remove();\n }\n\n}","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller {\n static targets = ['draggable', 'ordering', 'dragHandle', 'storage']\n remove_over = false;\n handlers = [];\n\n connect() {\n const self = this;\n // @ts-ignore\n this.dragHandleTargets.forEach(t => t.addEventListener('mousedown', self.mouse_down))\n // @ts-ignore\n this.draggableTargets.forEach(t => t.addEventListener('dragstart', function(e){\n self.drag_start(e, self);\n }))\n // @ts-ignore\n this.draggableTargets.forEach(t => t.addEventListener('dragend', function(e){\n self.drag_stop(e, self);\n }))\n // @ts-ignore\n this.orderingTargets.forEach(t => t.addEventListener('dragenter', function(e){\n self.node_drag_over(e, self);\n }))\n // @ts-ignore\n this.orderingTargets.forEach(t => t.addEventListener('dragover', function(e){\n self.node_drag_over(e, self);\n }))\n // @ts-ignore\n this.orderingTargets.forEach(t => t.addEventListener('drop', self.drag_drop))\n }\n\n mouse_down(e){\n const dragged_elem = e.currentTarget.parentElement;\n dragged_elem.draggable = true;\n }\n\n drag_start(e, self){\n e.dataTransfer.setData('application/node', e.currentTarget.id);\n self.storageTarget.dataset.node = e.currentTarget.id;\n self.draggableTargets.forEach((target) => {\n target.classList.remove('hover:bg-gray-200')\n });\n e.currentTarget.classList.add('bg-gray-200');\n const parent_id = e.currentTarget.parentElement.id;\n e.dataTransfer.setData('application/priority', parent_id.split('_')[1]);\n }\n\n drag_stop(e, self){\n e.currentTarget.draggable = false;\n self.storageTarget.dataset.node = null;\n self.draggableTargets.forEach((target) => {\n target.classList.add('hover:bg-gray-200')\n });\n e.currentTarget.classList.remove('bg-gray-200');\n }\n\n drag_drop(e){\n // @ts-ignore\n const new_priority = parseInt(this.id.split('_')[1]);\n const old_priority = parseInt(e.dataTransfer.getData('application/priority'));\n\n if(old_priority == new_priority){\n return;\n }\n\n const elem = this;\n // @ts-ignore\n const elems = elem.parentNode.children;\n const data = {\n nodes: []\n }\n Array.from(elems).forEach(node => {\n // @ts-ignore\n const node_pos = node.id.split('_')[1]\n // @ts-ignore\n const node_id = node.children[0].id;\n data['nodes'].push({\n node_pos: node_pos,\n node_id: node_id\n })\n const node_name = node_id.split(\"_\")[0];\n const new_id = `${node_name}_${node_pos}`;\n // @ts-ignore\n node.children[0].id = new_id;\n // @ts-ignore\n node.getElementsByTagName('a')[0].href = node.getElementsByTagName('a')[0].href.replace(node_id, new_id)\n // @ts-ignore\n node.getElementsByTagName('button')[0].formAction = node.getElementsByTagName('button')[0].formAction.replace(node_id, new_id)\n })\n\n //@ts-ignore\n const token = document.getElementsByName('csrf-token')[0].content;\n fetch(`/atis_formats/${document.getElementById('format_id').dataset.id}/reorder_nodes`, {\n method: 'POST',\n headers: {\n 'X-CSRF-TOKEN': token,\n 'Content-Type': 'application/json',\n 'Accept': 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml'\n },\n body: JSON.stringify(data),\n credentials: 'same-origin'\n }).then(r => {})\n }\n\n node_drag_over(e, self){\n e.preventDefault();\n\n const id = self.storageTarget.dataset.node;\n if(id === null || id === undefined){\n return;\n }\n\n const origin_child = document.getElementById(id)\n const target_parent = e.currentTarget;\n if(target_parent.children[0] == origin_child){\n return;\n }\n const origin_parent = document.getElementById(id).parentElement;\n const target_child = target_parent.children[0];\n\n origin_parent.appendChild(target_child);\n target_parent.appendChild(origin_child);\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller {\n static targets = ['input']\n\n get_metar() {\n // @ts-ignore\n const icao = this.inputTarget.value\n fetch(`/metars/passthrough?icao=${icao}`)\n .then(r => r.text())\n .then(data => {\n // @ts-ignore\n document.getElementById('parameters_metar_value').value = data.split(/\\r?\\n/)[0]\n })\n\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller {\n static targets = ['main', 'name', 'magVar', 'button', 'form', 'fieldElevation']\n\n\n connect(){\n const self = this;\n // @ts-ignore\n this.mainTarget.addEventListener('autocomplete_select', function(e){\n const id = e.target.value;\n fetch(`/configured_airports/airport_data?id=${id}`, {\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\n mode: 'same-origin', // no-cors, *cors, same-origin\n cache: 'default', // *default, no-cache, reload, force-cache, only-if-cached\n credentials: 'same-origin', // include, *same-origin, omit\n redirect: 'follow', // manual, *follow, error\n referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\n })\n .then(response => {\n if(response.ok){\n response.json().then(json =>{\n // @ts-ignore\n self.nameTarget.value = json.name;\n // @ts-ignore\n self.magVarTarget.value = json.mag_var;\n // @ts-ignore\n self.fieldElevationTarget.value = json.field_elevation;\n });\n } else {\n // @ts-ignore\n self.nameTarget.value = 'Error, try selecting the ICAO again';\n }\n });\n })\n\n // @ts-ignore\n this.formTarget.addEventListener('submit', function(){\n self.submit();\n return true;\n })\n }\n\n submit(){\n // @ts-ignore\n this.buttonTargets.forEach(function(button){\n button.disabled = true;\n button.classList.add('shadow-none', 'hover:shadow-none', 'bg-gray-500', 'hover:bg-gray-500', 'cursor-default')\n })\n return true;\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller {\n static targets = [\"defaults\", \"defaultTemplate\"]\n\n add_default(){\n // @ts-ignore\n const current_default_count = parseInt(this.defaultsTarget.dataset.defaults);\n\n // @ts-ignore\n const html = this.defaultTemplateTarget.content.cloneNode(true);\n html.querySelectorAll('[id=\"default_$$\"]')[0].setAttribute('id', `default_${current_default_count}`)\n html.querySelectorAll('button')[0].setAttribute('data-default', `${current_default_count}`)\n const default_input_div = html.querySelectorAll('[id=\"default___\"]')[0]\n default_input_div.setAttribute('id', `default_${current_default_count}`)\n default_input_div.setAttribute('name', `default_${current_default_count}`)\n const default_label_div = html.querySelectorAll('[for=\"default___\"]')[0]\n default_label_div.setAttribute('for', `default_${current_default_count}`)\n\n const default_heading_input_div = html.querySelectorAll('[id=\"default_letter___\"]')[0]\n default_heading_input_div.setAttribute('id', `default_letter_${current_default_count}`)\n default_heading_input_div.setAttribute('name', `default_letter_${current_default_count}`)\n const default_heading_label_div = html.querySelectorAll('[for=\"default_letter___\"]')[0]\n default_heading_label_div.setAttribute('for', `default_letter_${current_default_count}`)\n\n const remove_button = html.querySelectorAll('[data-default=\"$$\"]')[0]\n remove_button.setAttribute('data-default', `${current_default_count}`)\n\n // @ts-ignore\n this.defaultsTarget.append(html);\n // @ts-ignore\n this.defaultsTarget.dataset.defaults = current_default_count + 1;\n }\n\n remove_default(event){\n let elem = event.target;\n while(elem.tagName != 'BUTTON'){\n elem = elem.parentElement;\n }\n const defa = elem.dataset.default;\n document.getElementById(`default_${defa}`).remove();\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller{\n static targets = [\"flash\"]\n\n connect() {\n // @ts-ignore\n if(this.hasFlashTarget){\n this.flash();\n }\n }\n\n flash(){\n const self = this;\n // @ts-ignore\n this.flashTargets.forEach(function(elem){\n let duration = elem.dataset.duration;\n if(duration === undefined){\n duration = 5000;\n } else {\n duration = parseInt(duration)\n }\n setTimeout(function(){\n elem.classList.replace('translate-y-2', 'translate-y-0');\n elem.classList.replace('opacity-0', 'opacity-100');\n elem.classList.replace('sm:translate-x-2', 'sm:translate-x-0');\n }, 500);\n setTimeout(function(){\n elem.classList.remove('transform', 'ease-out', 'duration-300', 'transition', 'translate-y-0', 'opacity-100', 'sm:translate-x-0', 'sm:translate-y-0');\n }, 1000);\n setTimeout( function(){\n self.remove_flash(elem)\n }, duration);\n })\n }\n\n close_flash(event){\n this.remove_flash(event.currentTarget);\n }\n\n remove_flash(elem){\n elem.classList.remove('translate-y-0', 'opacity-100', 'sm:translate-x-0');\n elem.classList.add('transition', 'ease-in', 'duration-100');\n elem.classList.add('opacity-0');\n setTimeout(function(){\n elem.remove();\n }, 500);\n\n }\n}","import {Controller} from \"@hotwired/stimulus\"\nimport {Turbo} from \"@hotwired/turbo-rails\";\n\nexport default class extends Controller{\n static targets = ['input', 'value', 'selectList']\n\n connect(){\n const self = this;\n window.addEventListener('click', function(e){\n // @ts-ignore\n if(self.selectListTargets.length > 0){\n // @ts-ignore\n if(!(self.inputTarget == e.target || self.inputTarget.contains(e.target))){\n // @ts-ignore\n self.selectListTarget.classList.add('hidden');\n } else {\n // @ts-ignore\n self.selectListTarget.classList.remove('hidden');\n }\n }\n })\n\n // @ts-ignore\n this.inputTarget.addEventListener('input', function(e){\n self.refresh_list()\n });\n\n // @ts-ignore\n const width = self.inputTarget.offsetWidth;\n // @ts-ignore\n self.selectListTarget.style.width = `${width}px`;\n }\n\n refresh_list(hidden = false){\n const self = this;\n // @ts-ignore\n const input = self.inputTarget;\n let url = input.dataset.url;\n const token = input.dataset.token;\n const value = input.value;\n if(value === ''){\n // @ts-ignore\n if(self.selectListTargets.length > 0){\n // @ts-ignore\n self.selectListTarget.classList.add('hidden');\n }\n } else {\n if(input.dataset.asJs == 'true'){\n // @ts-ignore\n Array.from(self.selectListTarget.children).forEach(child => {\n // @ts-ignore\n if(value != '' && !child.getElementsByTagName('span')[0].textContent.trim().split(' - ')[0].startsWith(value)){\n // @ts-ignore\n child.classList.add('hidden');\n } else {\n // @ts-ignore\n child.classList.remove('hidden');\n }\n })\n } else{\n const current_page = window.location.href\n url = url + `?query=${value}&token=${token}&hidden=${hidden}`\n Turbo.visit(url, {action: 'replace'});\n window.history.replaceState({additionalInformation: 'Replacing temp url'}, 'VATATIS', current_page);\n }\n }\n }\n\n select(event: PointerEvent){\n // @ts-ignore\n const target : HTMLElement = event.target;\n\n let name: string;\n let id: string;\n\n if(target.tagName == 'SPAN'){\n name = target.innerText;\n id = target.dataset.id;\n } else {\n const elem = target.getElementsByTagName('span')[0]\n name = elem.innerText;\n id = elem.dataset.id;\n }\n\n // @ts-ignore\n this.inputTarget.value = name;\n // @ts-ignore\n this.valueTarget.value = id;\n this.refresh_list(true)\n\n const evt = new Event('autocomplete_select', {\n bubbles: true,\n cancelable: true,\n composed: false\n });\n\n // @ts-ignore\n this.valueTarget.dispatchEvent(evt);\n\n\n }\n\n select_toggle(){\n // @ts-ignore\n this.selectListTarget.classList.toggle('hidden');\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport {Turbo} from \"@hotwired/turbo-rails\";\n\nexport default class extends Controller{\n static targets = ['selectList', 'selectText', 'selectField', 'selectButton', 'initialSelected']\n active_elem: HTMLElement;\n\n connect(){\n const self = this;\n // @ts-ignore\n if(self.hasInitialSelectedTarget){\n // @ts-ignore\n this.active_elem = this.initialSelectedTarget;\n }\n window.addEventListener('click', function(e){\n // @ts-ignore\n if(!(self.selectButtonTarget == e.target || self.selectButtonTarget.contains(e.target))){\n // @ts-ignore\n self.selectListTarget.classList.add('hidden');\n }\n })\n\n // @ts-ignore\n const width = self.selectButtonTarget.offsetWidth;\n // @ts-ignore\n self.selectListTarget.style.width = `${width}px`;\n }\n\n select(event: PointerEvent){\n // @ts-ignore\n const target : HTMLElement = event.target;\n\n let name: string;\n let id: string;\n\n if(target.tagName == 'SPAN'){\n name = target.innerText;\n id = target.dataset.id;\n } else {\n const elem = target.getElementsByTagName('span')[0]\n name = elem.innerText;\n id = elem.dataset.id;\n }\n\n // @ts-ignore\n this.selectTextTarget.innerText = name;\n // @ts-ignore\n this.selectFieldTarget.value = id;\n // @ts-ignore\n this.selectFieldTarget.dispatchEvent(new Event('change'))\n\n if(this.active_elem !== undefined){\n this.active_elem.getElementsByTagName('span')[1].classList.add('hidden')\n }\n\n if(target.tagName === 'SPAN'){\n target.parentElement.getElementsByTagName('span')[1].classList.remove('hidden');\n this.active_elem = target.parentElement;\n }\n else {\n target.getElementsByTagName('span')[1].classList.remove('hidden');\n this.active_elem = target;\n }\n }\n\n select_toggle(){\n // @ts-ignore\n this.selectListTarget.classList.toggle('hidden');\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\n\nexport default class extends Controller{\n static targets = ['pageFill']\n\n connect(){\n const self = this;\n self.pageFill();\n window.addEventListener('resize', function(){\n self.pageFill();\n })\n\n }\n\n pageFill(){\n // @ts-ignore\n const divs = this.pageFillTargets;\n const nav = document.getElementsByTagName('nav')[0];\n const footer = document.getElementsByClassName('page-footer')[0];\n divs.map(div => div.style.minHeight = 0+'px');\n // @ts-ignore\n let height = window.outerHeight - nav.offsetHeight - footer.offsetHeight;\n if(height < 0){\n height = 0;\n }\n height += divs[0].children[0].offsetHeight;\n divs.map(div => div.style.minHeight = height +'px');\n }\n\n\n\n\n}","import {Controller} from \"@hotwired/stimulus\"\nimport {callable_functions} from \"./support/callable\";\n\nexport default class extends Controller{\n static targets = [\"tabs\", \"sidenav\", \"tooltip\", \"collapsible\", \"fab\", \"dropdown\", \"datepicker\",\n \"timepicker\", \"slider\", \"modal\", \"autocomplete\"]\n\n connect() {\n // @ts-ignore\n if(this.hasTabsTarget){\n this.tabs()\n }\n // @ts-ignore\n if(this.hasSidenavTarget){\n this.sidenav();\n }\n // @ts-ignore\n if(this.hasTooltipTarget){\n this.tooltip();\n }\n // @ts-ignore\n if(this.hasCollapsibleTarget){\n this.collapsible();\n }\n // @ts-ignore\n if(this.hasFabTarget){\n this.fab();\n }\n // @ts-ignore\n if(this.hasDropdownTarget){\n this.dropdown();\n }\n // @ts-ignore\n if(this.hasDatepickerTarget){\n this.datepicker();\n }\n // @ts-ignore\n if(this.hasTimepickerTarget){\n this.timepicker();\n }\n // @ts-ignore\n if(this.hasSliderTarget){\n this.slider();\n }\n // @ts-ignore\n if(this.hasModalTarget){\n this.modal();\n }\n }\n\n modal(){\n var elems = document.querySelectorAll('.modal');\n var instances = M.Modal.init(elems, {});\n }\n slider(){\n // @ts-ignore\n const elems: MElements = this.sliderTargets;\n\n // @ts-ignore\n const sliders = M.Slider.init(elems, {\n indicators: true\n })\n\n sliders.forEach(function(slider){\n slider.start();\n })\n }\n\n timepicker(){\n // @ts-ignore\n this.timepickerTargets.forEach(function(elem){\n const val = elem.value;\n if(val !== undefined){\n // @ts-ignore\n M.Timepicker.init(elem, {\n defaultTime: val\n })\n } else{\n // @ts-ignore\n M.Timepicker.init(elem, {})\n }\n })\n }\n\n datepicker(){\n // @ts-ignore\n this.datepickerTargets.forEach(function(elem){\n const start_year = elem.getAttribute('start_year');\n const end_year = elem.getAttribute('end_year');\n let start_date = undefined;\n let end_date = undefined;\n if(start_year !== undefined){\n start_date = new Date(parseInt(start_year), 0, 1);\n }\n if(end_year !== undefined){\n end_date = new Date(parseInt(end_year), 12, 30)\n }\n\n if(start_date !== undefined && end_date !== undefined){\n // @ts-ignore\n M.Datepicker.init(elem, {\n minDate: start_date,\n maxDate: end_date,\n yearRange: [parseInt(start_year), parseInt(end_year)],\n showDaysInNextAndPreviousMonths: true\n })\n } else if(start_date !== undefined){\n // @ts-ignore\n M.Datepicker.init(elem, {\n minDate: start_date,\n yearRange: (new Date().getFullYear() - parseInt(start_year)),\n showDaysInNextAndPreviousMonths: true\n })\n } else if(end_date !== undefined){\n // @ts-ignore\n M.Datepicker.init(elem, {\n maxDate: end_date,\n yearRange: (parseInt(end_year) - new Date().getFullYear()),\n showDaysInNextAndPreviousMonths: true\n })\n } else {\n // @ts-ignore\n M.Datepicker.init(elem, {\n yearRange: 100,\n showDaysInNextAndPreviousMonths: true\n })\n }\n\n });\n }\n\n dropdown(){\n // @ts-ignore\n this.dropdownTargets.forEach(function(elem){\n // @ts-ignore\n M.Dropdown.init(elem, {\n 'coverTrigger': false,\n 'constrainWidth': false\n });\n })\n }\n\n fab(){\n // @ts-ignore\n this.fabTargets.forEach(function(elem){\n // @ts-ignore\n M.FloatingActionButton.init(elem, {});\n })\n }\n\n tabs(){\n // @ts-ignore\n this.tabsTargets.forEach(function(elem){\n // @ts-ignore\n M.Tabs.init(elem, {});\n })\n }\n\n sidenav(){\n // @ts-ignore\n this.sidenavTargets.forEach(function(elem){\n // @ts-ignore\n M.Sidenav.init(elem, {});\n })\n }\n\n tooltip(){\n // @ts-ignore\n this.tooltipTargets.forEach(function(elem){\n // @ts-ignore\n M.Tooltip.init(elem, {\n exitDelay: 0,\n inDuration: 0,\n outDuration: 0\n });\n })\n }\n\n collapsible(){\n // @ts-ignore\n this.collapsibleTargets.forEach(function(elem){\n // @ts-ignore\n M.Collapsible.init(elem, {});\n })\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller{\n\n search(){\n const elem = document.getElementById(\"result_placeholder\");\n // @ts-ignore\n if(elem !== undefined && elem !== null){\n // @ts-ignore\n elem.remove();\n }\n }\n\n remove(e){\n let airports = document.getElementById('airports');\n // @ts-ignore\n let parent = e.target;\n let id = ''\n while(true){\n parent = parent.parentElement;\n id = parent.id;\n if(id.match(/\\w{3,4}_result/)){\n break;\n }\n }\n let airport = id.match(/(\\w{3,4})_result/)[1]\n let airports_value = airports.getAttribute('value');\n const airports_values_temp = airports_value.split(',');\n let airports_values = []\n while(airports_values_temp.length) airports_values.push(airports_values_temp.splice(0,2));\n airports_values = airports_values.filter(a => a[0] !== airport);\n airports_value = airports_values.join(',');\n airports.setAttribute('value', airports_value);\n parent.remove();\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller{\n static targets = [\"main\", \"modal\", \"background\"]\n\n connect(){\n // @ts-ignore\n const modal = this.modalTarget;\n // @ts-ignore\n const background = this.backgroundTarget;\n\n setTimeout(function(){\n background.classList.replace('opacity-0', 'opacity-100');\n modal.classList.add('opacity-100', 'translate-y-0', 'sm:scale-100')\n modal.classList.remove('opacity-0', 'translate-y-4', 'sm:translate-y-0', 'sm:scale-95');\n }, 200)\n\n }\n\n close(){\n const self = this;\n // @ts-ignore\n const modal = this.modalTarget;\n // @ts-ignore\n const background = this.backgroundTarget;\n\n background.classList.replace('opacity-100', 'opacity-0');\n modal.classList.add('opacity-0', 'translate-y-4', 'sm:translate-y-0', 'sm:scale-95')\n modal.classList.remove('opacity-100', 'translate-y-0', 'sm:scale-100');\n setTimeout(function(){\n background.classList.add('hidden')\n }, 300)\n setTimeout(function(){\n // @ts-ignore\n self.mainTarget.remove();\n }, 300)\n }\n\n}","const liquidTags = [\n 'if',\n 'else',\n 'elseif',\n 'endif',\n 'render',\n 'assign',\n 'capture',\n 'endcapture',\n 'case',\n 'endcase',\n 'comment',\n 'endcomment',\n 'cycle',\n 'decrement',\n 'for',\n 'endfor',\n 'include',\n 'increment',\n 'layout',\n 'raw',\n 'endraw',\n 'render',\n 'tablerow',\n 'endtablerow',\n 'unless',\n 'endunless'\n];\n\nconst liquidFilters = [\n 'to_phonetic',\n 'abs',\n 'append',\n 'at_least',\n 'at_most',\n 'capitalize',\n 'ceil',\n 'compact',\n 'date',\n 'default',\n 'divided_by',\n 'downcase',\n 'escape',\n 'escape_once',\n 'first',\n 'floor',\n 'join',\n 'json',\n 'last',\n 'lstrip',\n 'map',\n 'minus',\n 'modulo',\n 'newline_to_br',\n 'plus',\n 'prepend',\n 'remove',\n 'remove_first',\n 'replace',\n 'replace_first',\n 'reverse',\n 'round',\n 'rstrip',\n 'size',\n 'slice',\n 'sort',\n 'sort_natural',\n 'split',\n 'strip',\n 'strip_html',\n 'strip_newlines',\n 'times',\n 'truncate',\n 'truncatewords',\n 'uniq',\n 'upcase',\n 'url_decode',\n 'url_encode',\n 'where'\n]\n\n// Helper function to return the monaco completion item type of a thing\nfunction getType(thing, isMember) {\n isMember = (isMember === undefined) ? (typeof isMember == \"boolean\") ? isMember : false : false; // Give isMember a default value of false\n\n switch ((typeof thing).toLowerCase()) {\n case \"object\":\n return monaco.languages.CompletionItemKind.Class;\n\n case \"function\":\n return (isMember) ? monaco.languages.CompletionItemKind.Method : monaco.languages.CompletionItemKind.Function;\n\n default:\n return (isMember) ? monaco.languages.CompletionItemKind.Property : monaco.languages.CompletionItemKind.Variable;\n }\n}\n\nfunction getLiquidContextInfo(model, position, triggerCharacter) {\n let inTag;\n let inObject;\n let showTags;\n let showFilters;\n\n const findStart = model.findPreviousMatch('\\\\{(%|\\\\{)', position, true, false, null, true);\n if (findStart && findStart.matches && !position.isBefore(findStart.range.getEndPosition())) {\n if (findStart.matches[1] === '%') {\n inTag = true;\n } else if (findStart.matches[1] === '{') {\n inObject = true\n }\n\n const searchPattern = inTag ? '%}' : '}}';\n const findEnd = model.findNextMatch(searchPattern, position, false, false, null, true);\n const currentRange = findStart.range.plusRange(findEnd.range);\n if (currentRange.containsPosition(position)) {\n if (inTag) {\n const findTagName = model.findNextMatch('\\\\{%\\\\s*([a-zA-Z-_]+)', findStart.range.getStartPosition(), true, false, null, true);\n if (findTagName && currentRange.containsRange(findTagName.range) && findTagName.matches.length > 1) {\n if (findTagName.matches[1] === 'assign') {\n showFilters = true;\n } else {\n showTags = false;\n }\n } else {\n showTags = true;\n }\n } else {\n showFilters = true;\n }\n }\n }\n\n return {\n showFilters,\n showTags,\n inTag,\n inObject\n };\n}\n\nfunction get_var_suggestions(model, position, variables) {\n const last_chars = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: 0,\n endLineNumber: position.lineNumber,\n endColumn: position.column\n });\n const words = last_chars.replace(\"\\t\", \"\").split(\" \");\n const active_typing = words[words.length - 1]; // What the user is currently typing (everything after the last space)\n // If the last character typed is a period then we need to look at member objects of the obj object\n const is_member = active_typing.charAt(active_typing.length - 1) === \".\";\n // Array of autocompletion results\n const result = [];\n // Used for generic handling between member and non-member objects\n let last_token = variables;\n let prefix = '';\n if (is_member) {\n // Is a member, get a list of all members, and the prefix\n const parents = active_typing.substring(0, active_typing.length - 1).split(\".\");\n last_token = variables[parents[0]];\n prefix = parents[0];\n\n // Loop through all the parents the current one will have (to generate prefix)\n for (let i = 1; i < parents.length; i++) {\n let propToLookFor = parents[i];\n\n // Support for arrays\n const isPropAnArray = propToLookFor.charAt(propToLookFor.length - 1) === ']';\n if (isPropAnArray)\n propToLookFor = propToLookFor.split('[')[0];\n\n if (last_token.hasOwnProperty(propToLookFor)) {\n prefix += '.' + propToLookFor;\n last_token = last_token[propToLookFor];\n\n if (isPropAnArray && Array.isArray(last_token))\n {\n last_token = last_token[0];\n }\n } else {\n // Not valid\n return result;\n }\n }\n\n prefix += '.';\n }\n\n // Array properties\n if (Array.isArray(last_token))\n last_token = { length: 0 };\n\n // Get all the child properties of the last token\n for (let prop in last_token) {\n // Do not show properites that begin with \"__\"\n if (last_token.hasOwnProperty(prop) && !prop.startsWith(\"__\")) {\n // Get the detail type (try-catch) incase object does not have prototype\n let details = '';\n\n try {\n details = last_token[prop].__proto__.constructor.name;\n } catch (e) {\n details = typeof last_token[prop];\n }\n\n if(details === 'String'){\n details = last_token[prop];\n }\n\n // Create completion object\n const to_push = {\n label: prefix + prop,\n kind: getType(last_token[prop], is_member),\n detail: details,\n insertText: prop\n };\n\n // Change insertText and documentation for functions\n if (to_push.detail.toLowerCase() === 'function') {\n to_push.insertText += \"(\";\n to_push.documentation = (last_token[prop].toString()).split(\"{\")[0]; // Show function prototype in the documentation popup\n }\n\n // Add to final results\n result.push(to_push);\n }\n }\n\n return {\n suggestions: result\n };\n}\n\nexport function ConfigureIntellisense(monaco, variables) {\n monaco.languages.registerCompletionItemProvider('liquid', {\n triggerCharacters: [' ', '{', '.'],\n provideCompletionItems: (model, position, context, token) => {\n let suggestions = [];\n let items = [];\n\n if (context.triggerCharacter === ' ') {\n const startTrigger = model.getValueInRange(new monaco.Range(position.lineNumber, position.column - 3, position.lineNumber, position.column - 1));\n if (!(startTrigger !== '{%' && !startTrigger.endsWith('|'))) {\n\n const liquidContext = getLiquidContextInfo(model, position, context.triggerCharacter);\n if (liquidContext.showFilters) {\n items = liquidFilters;\n } else if (liquidContext.showTags) {\n items = liquidTags.filter((value) => { return !value.startsWith('end') });\n }\n\n\n suggestions.push(...items.map((value) => {\n return {\n label: value,\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: value,\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.KeepWhitespace\n }\n }));\n\n }\n }\n\n const lastThreeChars = model.getValueInRange(new monaco.Range(position.lineNumber, position.column - 3, position.lineNumber, position.column));\n const command = model.getValueInRange(new monaco.Range(position.lineNumber, position.column - 3, position.lineNumber, position.column - 1));\n const lastChar = model.getValueInRange(new monaco.Range(position.lineNumber, position.column - 1, position.lineNumber, position.column));\n const isIdentifyingVariable = lastThreeChars === '{{ ' || lastChar === '.' || (lastChar === ' ' && liquidTags.includes(command));\n if (isIdentifyingVariable){\n const var_suggestions = get_var_suggestions(model, position, variables)\n if (var_suggestions.suggestions !== undefined){\n suggestions.push(...var_suggestions.suggestions);\n }\n }\n return { suggestions };\n }\n });\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport loader from '@monaco-editor/loader';\nimport * as intellisense from './intellisense';\n\nexport default class extends Controller{\n static targets = [\"editorContainer\"]\n static values = {\n language: String,\n format: String,\n node: String,\n form: String,\n field: String,\n data: String\n }\n connect(){\n\n const self = this;\n if(this.hasEditorContainerTarget){\n loader.init().then(monaco => {\n fetch(`/atis_formats/${this.formatValue}/intellisense_variables`)\n .then(x => x.json())\n .then(data => {\n intellisense.ConfigureIntellisense(monaco, data);\n const editor = monaco.editor.create(this.editorContainerTarget, {\n theme: 'vs-dark',\n model: monaco.editor.createModel(this.dataValue, this.languageValue),\n wordWrap: \"on\",\n automaticLayout: true,\n minimap: {\n enabled: false\n },\n scrollbar: {\n vertical: 'auto'\n },\n codeLens: false\n })\n\n const form = document.getElementById(this.formValue);\n form.addEventListener(\"formdata\", e =>\n {\n e.formData.append(this.fieldValue, editor.getModel().getValue());\n });\n })\n })\n }\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\nexport default class extends Controller{\n static targets = [\"indicator\", \"tabHeader\", \"tab\", \"tabsContainer\"]\n active: Number = 0;\n\n connect(){\n const self = this;\n\n // @ts-ignore\n this.updateTabs(self, this.indicatorTarget.dataset.active)\n\n document.documentElement.addEventListener('turbo:frame-load', function (e){\n setTimeout(function(){\n self.updateTabs(self, self.active);\n }, 1000);\n })\n }\n\n change(event){\n const self = this;\n const event_target = event.currentTarget;\n // @ts-ignore\n self.tabHeaderTargets.forEach((header, index) => {\n if(header === event_target){\n if(self.active !== index){\n self.updateTabs(self, index);\n }\n }\n });\n }\n\n updateTabs(self, index){\n self.active = index;\n if(index === 0){\n self.indicatorTarget.removeAttribute('style');\n self.tabsContainerTarget.removeAttribute('style');\n } else {\n self.indicatorTarget.setAttribute('style', `--tw-translate-x: ${index}00%`);\n self.tabsContainerTarget.setAttribute('style', `--tw-translate-x: -${index}00%`);\n }\n const height = self.tabTargets[index].clientHeight;\n const width = self.tabTargets[index].clientWidth;\n self.tabsContainerTarget.style.height = `${height}px`;\n self.tabsContainerTarget.style.width = `${width}px`;\n }\n\n}","import Cookies from 'js-cookie';\nexport class CookiesEu {\n constructor() {\n const cookiesEuOKButton = document.querySelector('.js-cookies-eu-ok');\n\n if (cookiesEuOKButton) {\n this.addListener(cookiesEuOKButton);\n }\n }\n\n addListener(target) {\n // Support for IE < 9\n if (target.attachEvent) {\n target.attachEvent('onclick', this.setCookie);\n } else {\n target.addEventListener('click', this.setCookie, false);\n }\n }\n\n setCookie() {\n const isSecure = location.protocol === 'https:';\n Cookies.set('cookie_eu_consented', true, { path: '/', expires: 365, secure: isSecure });\n\n const container = document.querySelector('.js-cookies-eu');\n container.parentNode.removeChild(container);\n }\n}\n\n","// Load all the controllers within this directory and all subdirectories. \n// Controller files must be named *_controller.js.\n\nimport { Application } from \"@hotwired/stimulus\"\nimport { definitionsFromContext } from \"@hotwired/stimulus-webpack-helpers\"\nimport { registerFlightLevelTechComponentControllers } from \"@FlightLevelTech/component-library\"\n\nconst application = Application.start()\nconst context = require.context(\"controllers\", true, /_controller\\.[jt]s$/)\nregisterFlightLevelTechComponentControllers(application)\napplication.load(definitionsFromContext(context))\n","import { CookiesEu } from \"src/common/ts/cookies_eu\";\nimport \"controllers\"\nimport { Turbo } from \"@hotwired/turbo-rails\"\nimport '@materializecss/materialize/dist/js/materialize'\nimport * as Sentry from '@sentry/browser'\n\nrequire(\"@rails/activestorage\").start();\nrequire(\"../channels\");\n// @ts-ignore\nconst images = require.context(\"../images\", true);\nconst imagePath = (name) => images(name, true);\n\n// @ts-ignore\nconst sounds = require.context(\"../sounds\", true);\nconst soundPath = (name) => sounds(name, true);\n\ndocument.addEventListener('turbo:load', function () {\n new CookiesEu();\n})\n\nTurbo.start();\n\nconst sentry_run = SENTRY_ON;\nconst sentry_dsn = SENTRY_DSN;\nlet environment = SENTRY_ENV.replace('/', '-');\nif (environment === 'master') {\n environment = 'production'\n}\nif (environment !== 'production' && environment !== 'development') {\n environment = `review-${environment}`;\n}\nconst release = SENTRY_COMMIT;\nconst trace_rate = environment === 'development' ? 0.1 : 0.4\n\nif (sentry_run == '1') {\n Sentry.init({\n dsn: sentry_dsn,\n release: release,\n environment: environment,\n\n // Alternatively, use `process.env.npm_package_version` for a dynamic release version\n // if your build tool supports it.\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.replayIntegration()\n ],\n ignoreErrors: ['AbortError'],\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n // We recommend adjusting this value in production\n tracesSampler: samplingContext => {\n if (samplingContext.parentSampled !== undefined) {\n return samplingContext.parentSampled\n }\n if (samplingContext.transactionContext.name === '/health') {\n // Drop this transaction, by setting its sample rate to 0%\n return 0;\n } else {\n // Default sample rate for all others (replaces tracesSampleRate)\n return trace_rate;\n }\n },\n replaysSessionSampleRate: 0.0,\n replaysOnErrorSampleRate: 1.0,\n tracePropagationTargets: ['localhost', /https:\\/\\/vatatis\\.nz/, /https:\\/\\/www.vatatis\\.nz/]\n });\n}\n","export default __webpack_public_path__ + \"2618a8f33ae1d693d839437c46bb466d.mp3\";"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","map","webpackContext","webpackContextResolve","__webpack_require__","o","Object","channels","require","forEach","_class","Controller","constructor","args","_defineProperty","draggableTargetConnected","self","this","addEventListener","drag_start","drag_stop","connect","draggableTargets","t","removeTarget","remove_drag_over","remove_drag_leave","remove_drag_drop","dataTransfer","setData","target","document","getElementById","dataset","airport","classList","remove","add","parent_id","parentElement","position","pos_type","split","elem","pos_drag_over","drag_drop","type","removeEventListener","new_priority","parseInt","old_priority","getData","elems","parentNode","children","data","positions","Array","from","endsWith","pos","pos_id","push","token","getElementsByName","content","fetch","method","headers","body","JSON","stringify","credentials","then","r","preventDefault","undefined","origin_child","target_parent","currentTarget","origin_parent","target_child","appendChild","types","remove_over","bg","removeBgTarget","border","removeBorderTarget","async","setTimeout","parent_elem","next_parent","child","Date","now","Audio","notification","audio","volume","documentElement","action","match","diff","minute_ago","last_play_time","play","liTarget","dragHandleTargets","mouse_down","orderingTargets","node_drag_over","draggable","storageTarget","node","nodes","node_pos","node_id","new_id","getElementsByTagName","href","replace","formAction","get_metar","icao","inputTarget","value","text","mainTarget","mode","cache","redirect","referrerPolicy","response","ok","json","nameTarget","name","magVarTarget","mag_var","fieldElevationTarget","field_elevation","formTarget","submit","buttonTargets","button","disabled","add_default","current_default_count","defaultsTarget","defaults","html","defaultTemplateTarget","cloneNode","querySelectorAll","setAttribute","default_input_div","default_heading_input_div","append","remove_default","event","tagName","defa","default","hasFlashTarget","flash","flashTargets","duration","remove_flash","close_flash","window","selectListTargets","length","contains","selectListTarget","refresh_list","width","offsetWidth","style","hidden","input","url","asJs","textContent","trim","startsWith","current_page","location","Turbo","history","replaceState","additionalInformation","select","innerText","valueTarget","evt","Event","bubbles","cancelable","composed","dispatchEvent","select_toggle","toggle","hasInitialSelectedTarget","active_elem","initialSelectedTarget","selectButtonTarget","selectTextTarget","selectFieldTarget","pageFill","divs","pageFillTargets","nav","footer","getElementsByClassName","div","minHeight","height","outerHeight","offsetHeight","hasTabsTarget","tabs","hasSidenavTarget","sidenav","hasTooltipTarget","tooltip","hasCollapsibleTarget","collapsible","hasFabTarget","fab","hasDropdownTarget","dropdown","hasDatepickerTarget","datepicker","hasTimepickerTarget","timepicker","hasSliderTarget","slider","hasModalTarget","modal","M","Modal","init","sliderTargets","Slider","indicators","start","timepickerTargets","val","Timepicker","defaultTime","datepickerTargets","start_year","getAttribute","end_year","start_date","end_date","Datepicker","minDate","maxDate","yearRange","showDaysInNextAndPreviousMonths","getFullYear","dropdownTargets","Dropdown","fabTargets","FloatingActionButton","tabsTargets","Tabs","sidenavTargets","Sidenav","tooltipTargets","Tooltip","exitDelay","inDuration","outDuration","collapsibleTargets","Collapsible","search","airports","parent","airports_value","airports_values_temp","airports_values","splice","filter","a","join","modalTarget","background","backgroundTarget","close","liquidTags","liquidFilters","getType","thing","isMember","toLowerCase","monaco","languages","CompletionItemKind","Class","Method","Function","Property","Variable","ConfigureIntellisense","variables","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","context","suggestions","items","triggerCharacter","startTrigger","getValueInRange","Range","lineNumber","column","liquidContext","inTag","inObject","showTags","showFilters","findStart","findPreviousMatch","matches","isBefore","range","getEndPosition","searchPattern","findEnd","findNextMatch","currentRange","plusRange","containsPosition","findTagName","getStartPosition","containsRange","getLiquidContextInfo","label","kind","Keyword","insertText","insertTextRules","CompletionItemInsertTextRule","KeepWhitespace","lastThreeChars","command","lastChar","includes","var_suggestions","words","startLineNumber","startColumn","endLineNumber","endColumn","active_typing","is_member","charAt","result","last_token","prefix","parents","substring","i","propToLookFor","isPropAnArray","hasOwnProperty","isArray","prop","details","__proto__","to_push","detail","documentation","toString","get_var_suggestions","hasEditorContainerTarget","loader","formatValue","x","intellisense","editor","create","editorContainerTarget","theme","createModel","dataValue","languageValue","wordWrap","automaticLayout","minimap","enabled","scrollbar","vertical","codeLens","formValue","formData","fieldValue","getModel","getValue","language","String","format","form","field","updateTabs","indicatorTarget","active","change","event_target","tabHeaderTargets","header","index","removeAttribute","tabsContainerTarget","tabTargets","clientHeight","clientWidth","CookiesEu","cookiesEuOKButton","querySelector","addListener","attachEvent","setCookie","isSecure","protocol","Cookies","set","path","expires","secure","container","removeChild","application","Application","registerFlightLevelTechComponentControllers","load","definitionsFromContext","environment","SENTRY_ENV","trace_rate","Sentry","dsn","SENTRY_DSN","release","SENTRY_COMMIT","integrations","ignoreErrors","tracesSampler","samplingContext","parentSampled","transactionContext","replaysSessionSampleRate","replaysOnErrorSampleRate","tracePropagationTargets"],"sourceRoot":""}