{
  "version": 3,
  "sources": ["../../javascript/components/on_page_load.js", "../../javascript/components/filter.js", "../../javascript/components/nested_fields.js", "../../javascript/application.js"],
  "sourcesContent": ["// Runs page setup on a full page load and on every Turbo visit (Turbo is\n// bundled with administrate's JS on admin pages, so DOMContentLoaded only\n// fires once there). turbo:render covers pages Turbo renders without a visit,\n// e.g. a form re-rendered with validation errors. Turbo replaces <body> on\n// each render, so tracking the body ensures `fn` runs exactly once per page.\nexport const onPageLoad = (fn) => {\n  const initialised = new WeakSet()\n  const run = () => {\n    if (initialised.has(document.body)) return\n    initialised.add(document.body)\n    fn()\n  }\n  document.addEventListener('DOMContentLoaded', run)\n  document.addEventListener('turbo:load', run)\n  document.addEventListener('turbo:render', run)\n}\n", "import { onPageLoad } from './on_page_load'\n\nonPageLoad(() => {\n  const filterToggles = document.querySelectorAll('.filter-toggle');\n  const filterContainer = document.querySelector('.filters');\n\n  if(filterContainer){\n    filterToggles.forEach((filterToggle) => {\n      filterToggle.addEventListener('click', () => {\n        filterContainer.classList.toggle('active');\n      })\n    })\n  }\n})\n\n// Document-level listeners survive Turbo visits, so register them once and\n// look up the current page's filter container when they fire.\ndocument.addEventListener('keydown', function(event) {\n  const filterContainer = document.querySelector('.filters');\n  const key = event.key;\n  if (filterContainer && key === \"Escape\") {\n    filterContainer.classList.remove('active');\n  }\n});\n\ndocument.addEventListener('click', function(event) {\n  const filterContainer = document.querySelector('.filters');\n  if (!filterContainer) return;\n\n  const isClickInside = filterContainer.contains(event.target) || event.target.classList.value.indexOf('filter-toggle') !== -1;\n\n  if (!isClickInside) {\n    filterContainer.classList.remove('active');\n  }\n});\n", "// Add/remove rows for NestedHasManyField (app/views/fields/nested_has_many).\n// Replaces the cocoon/jQuery behaviour of administrate-field-nested_has_many.\ndocument.addEventListener('click', (e) => {\n  const addLink = e.target.closest('[data-nested-fields-add]')\n  if (addLink) {\n    e.preventDefault()\n    const wrapper = addLink.closest('[data-nested-fields]')\n    const template = wrapper.querySelector('[data-nested-fields-template]')\n    const container = wrapper.querySelector('[data-nested-fields-container]')\n    const html = template.innerHTML.replace(/NEW_RECORD/g, Date.now().toString())\n    container.insertAdjacentHTML('beforeend', html)\n    return\n  }\n\n  const removeLink = e.target.closest('[data-nested-fields-remove]')\n  if (removeLink) {\n    e.preventDefault()\n    const row = removeLink.closest('[data-nested-fields-row]')\n    if (removeLink.classList.contains('existing')) {\n      // persisted record: flag for destruction and hide\n      row.querySelector('[data-nested-fields-destroy]').value = '1'\n      row.style.display = 'none'\n    } else {\n      row.remove()\n    }\n  }\n})\n", "import { onPageLoad } from './components/on_page_load'\nimport './components/filter'\nimport './components/nested_fields'\n\nonPageLoad(() => {\n  document.body.classList.remove('preload')\n\n  const print_buttons = document.querySelectorAll('.print-button')\n  print_buttons.forEach((print_button) => {\n    print_button.addEventListener('click', () => {\n      window.print()\n      return false\n    })\n  })\n\n  if (document.querySelector('.nav-toggle')) {\n    document.querySelector('.nav-toggle').addEventListener('click', (e) => {\n      e.currentTarget.classList.toggle('is-active')\n      document.querySelector('nav.navigation').classList.toggle('open')\n    })\n  }\n\n  const ad_wording = document.querySelector(\n    'input[type=\"checkbox\"][name=\"quote[advertising_wording]\"]'\n  )\n  const pcr = document.querySelector(\n    'input[type=\"checkbox\"][name=\"quote[pcr]\"]'\n  )\n\n  const optional_container = document.querySelector(\n    '.additional_fields_optional'\n  )\n\n  const additional_field_change = () => {\n    if (ad_wording.checked || pcr.checked) {\n      optional_container.classList.remove('hide')\n    } else {\n      optional_container.classList.add('hide')\n    }\n  }\n\n  const rejectModal = document.querySelector('#rejectModal')\n\n  if (rejectModal) {\n    const openRejectModal = document.querySelector('.open-reject-modal')\n    const closeRejectModal = rejectModal.querySelector('.close-button')\n\n    openRejectModal.addEventListener('click', () => {\n      rejectModal.showModal()\n    })\n\n    closeRejectModal.addEventListener('click', () => {\n      rejectModal.close()\n    })\n  }\n\n  if (ad_wording || pcr) {\n    additional_field_change()\n  }\n\n  if (ad_wording) {\n    ad_wording.addEventListener('change', additional_field_change)\n  }\n\n  if (pcr) {\n    pcr.addEventListener('change', additional_field_change)\n  }\n})\n"],
  "mappings": "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",
  "names": []
}
