{"version":3,"file":"all.mjs","sources":["../../src/govuk/all.mjs"],"sourcesContent":["import { version } from './common/govuk-frontend-version.mjs'\nimport { nodeListForEach } from './common/index.mjs'\nimport Accordion from './components/accordion/accordion.mjs'\nimport Button from './components/button/button.mjs'\nimport CharacterCount from './components/character-count/character-count.mjs'\nimport Checkboxes from './components/checkboxes/checkboxes.mjs'\nimport Details from './components/details/details.mjs'\nimport ErrorSummary from './components/error-summary/error-summary.mjs'\nimport ExitThisPage from './components/exit-this-page/exit-this-page.mjs'\nimport Header from './components/header/header.mjs'\nimport NotificationBanner from './components/notification-banner/notification-banner.mjs'\nimport Radios from './components/radios/radios.mjs'\nimport SkipLink from './components/skip-link/skip-link.mjs'\nimport Tabs from './components/tabs/tabs.mjs'\n\n/**\n * Initialise all components\n *\n * Use the `data-module` attributes to find, instantiate and init all of the\n * components provided as part of GOV.UK Frontend.\n *\n * @param {Config} [config] - Config for all components\n */\nfunction initAll (config) {\n config = typeof config !== 'undefined' ? config : {}\n\n // Allow the user to initialise GOV.UK Frontend in only certain sections of the page\n // Defaults to the entire document if nothing is set.\n var $scope = config.scope instanceof HTMLElement ? config.scope : document\n\n var $accordions = $scope.querySelectorAll('[data-module=\"govuk-accordion\"]')\n nodeListForEach($accordions, function ($accordion) {\n new Accordion($accordion, config.accordion).init()\n })\n\n var $buttons = $scope.querySelectorAll('[data-module=\"govuk-button\"]')\n nodeListForEach($buttons, function ($button) {\n new Button($button, config.button).init()\n })\n\n var $characterCounts = $scope.querySelectorAll('[data-module=\"govuk-character-count\"]')\n nodeListForEach($characterCounts, function ($characterCount) {\n new CharacterCount($characterCount, config.characterCount).init()\n })\n\n var $checkboxes = $scope.querySelectorAll('[data-module=\"govuk-checkboxes\"]')\n nodeListForEach($checkboxes, function ($checkbox) {\n new Checkboxes($checkbox).init()\n })\n\n var $details = $scope.querySelectorAll('[data-module=\"govuk-details\"]')\n nodeListForEach($details, function ($detail) {\n new Details($detail).init()\n })\n\n // Find first error summary module to enhance.\n var $errorSummary = $scope.querySelector('[data-module=\"govuk-error-summary\"]')\n if ($errorSummary) {\n new ErrorSummary($errorSummary, config.errorSummary).init()\n }\n\n var $exitThisPageButtons = $scope.querySelectorAll('[data-module=\"govuk-exit-this-page\"]')\n nodeListForEach($exitThisPageButtons, function ($button) {\n new ExitThisPage($button, config.exitThisPage).init()\n })\n\n // Find first header module to enhance.\n var $header = $scope.querySelector('[data-module=\"govuk-header\"]')\n if ($header) {\n new Header($header).init()\n }\n\n var $notificationBanners = $scope.querySelectorAll('[data-module=\"govuk-notification-banner\"]')\n nodeListForEach($notificationBanners, function ($notificationBanner) {\n new NotificationBanner($notificationBanner, config.notificationBanner).init()\n })\n\n var $radios = $scope.querySelectorAll('[data-module=\"govuk-radios\"]')\n nodeListForEach($radios, function ($radio) {\n new Radios($radio).init()\n })\n\n // Find first skip link module to enhance.\n var $skipLink = $scope.querySelector('[data-module=\"govuk-skip-link\"]')\n if ($skipLink) {\n new SkipLink($skipLink).init()\n }\n\n var $tabs = $scope.querySelectorAll('[data-module=\"govuk-tabs\"]')\n nodeListForEach($tabs, function ($tabs) {\n new Tabs($tabs).init()\n })\n}\n\nexport {\n initAll,\n version,\n\n // Components\n Accordion,\n Button,\n Details,\n CharacterCount,\n Checkboxes,\n ErrorSummary,\n ExitThisPage,\n Header,\n NotificationBanner,\n Radios,\n SkipLink,\n Tabs\n}\n\n/**\n * Config for all components\n *\n * @typedef {object} Config\n * @property {Element} [scope=document] - Scope to query for components\n * @property {import('./components/accordion/accordion.mjs').AccordionConfig} [accordion] - Accordion config\n * @property {import('./components/button/button.mjs').ButtonConfig} [button] - Button config\n * @property {import('./components/character-count/character-count.mjs').CharacterCountConfig} [characterCount] - Character Count config\n * @property {import('./components/error-summary/error-summary.mjs').ErrorSummaryConfig} [errorSummary] - Error Summary config\n * @property {import('./components/exit-this-page/exit-this-page.mjs').ExitThisPageConfig} [exitThisPage] - Exit This Page config\n * @property {import('./components/notification-banner/notification-banner.mjs').NotificationBannerConfig} [notificationBanner] - Notification Banner config\n */\n"],"names":[],"mappings":"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"}