diff --git a/src/govuk/all.mjs b/src/govuk/all.mjs index 4d60dab45b..84c6b9232a 100644 --- a/src/govuk/all.mjs +++ b/src/govuk/all.mjs @@ -21,8 +21,9 @@ import Tabs from './components/tabs/tabs.mjs' * @param {HTMLElement} [config.scope=document] - scope to query for components * @param {Object} [config.accordion] - accordion config * @param {Object} [config.button] - button config - * @param {Object} [config.notificationBanner] - notification banner config + * @param {Object} [config.characterCount] - character count config * @param {Object} [config.errorSummary] - error summary config + * @param {Object} [config.notificationBanner] - notification banner config */ function initAll (config) { config = typeof config !== 'undefined' ? config : {} @@ -43,7 +44,7 @@ function initAll (config) { var $characterCounts = $scope.querySelectorAll('[data-module="govuk-character-count"]') nodeListForEach($characterCounts, function ($characterCount) { - new CharacterCount($characterCount).init() + new CharacterCount($characterCount, config.characterCount).init() }) var $checkboxes = $scope.querySelectorAll('[data-module="govuk-checkboxes"]') diff --git a/src/govuk/components/character-count/character-count.mjs b/src/govuk/components/character-count/character-count.mjs index 846157a68b..4b4f01f897 100644 --- a/src/govuk/components/character-count/character-count.mjs +++ b/src/govuk/components/character-count/character-count.mjs @@ -1,8 +1,71 @@ import '../../vendor/polyfills/Function/prototype/bind.mjs' import '../../vendor/polyfills/Event.mjs' // addEventListener and event.target normalisation import '../../vendor/polyfills/Element/prototype/classList.mjs' +import { mergeConfigs, normaliseDataset } from '../../common.mjs' + +/** + * JavaScript enhancements for the CharacterCount component + * + * Tracks the number of characters or words in the `.govuk-js-character-count` + * `