digitalmarketplace-frontend
Version:
Digital Marketplace Frontend contains assets and components used in Digital Marketplace projects
1 lines • 15.2 kB
Source Map (JSON)
{"version":3,"file":"question-checkbox-tree.bundle.mjs","sources":["../../../../src/digitalmarketplace/components/question-checkbox-tree/question-checkbox-tree.ts"],"sourcesContent":["import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionCheckboxTreeSummary {\n $totalSelected: JQuery<HTMLElement>\n $totalSelectedText: JQuery<HTMLElement>\n itemNameSingular: string\n itemNamePlural: string\n\n constructor ($summary: JQuery<HTMLElement>, itemNameSingular: string, itemNamePlural: string) {\n this.$totalSelected = $summary.find('.dm-checkbox-tree__summary-total-selected')\n this.$totalSelectedText = $summary.find('.dm-checkbox-tree__summary-total-selected-text')\n this.itemNameSingular = itemNameSingular\n this.itemNamePlural = itemNamePlural\n }\n\n updateSelectedCount = (numberSelected: number) => {\n this.$totalSelected.text(numberSelected)\n\n if (numberSelected === 1) {\n this.$totalSelectedText.text(`${this.itemNameSingular} selected.`)\n } else {\n this.$totalSelectedText.text(`${this.itemNamePlural} selected.`)\n }\n }\n}\n\nclass QuestionCheckboxTreeSection {\n checkboxTree: QuestionCheckboxTree\n $section: JQuery<HTMLDetailsElement>\n $summaryTag: JQuery<HTMLElement>\n $summaryTagCount: JQuery<HTMLElement>\n tier: number\n checkboxTreeSections: QuestionCheckboxTreeSection[]\n checkboxes: JQuery<HTMLInputElement>[]\n isParent: boolean\n\n constructor (checkboxTree: QuestionCheckboxTree, $section: JQuery<HTMLDetailsElement>, tier: number) {\n this.checkboxTree = checkboxTree\n this.$section = $section\n this.tier = tier\n this.$summaryTag = this.$section.find('> .dm-checkbox-tree-details__summary .govuk-tag')\n this.$summaryTagCount = this.$summaryTag.find('.dm-checkbox-tree-details__summary-text-count-selected')\n this.checkboxTreeSections = this.$section.find('> .dm-checkbox-tree-details__text > .dm-checkbox-tree-details').get().map((element) => new QuestionCheckboxTreeSection(this.checkboxTree, $(element as HTMLDetailsElement), tier + 1))\n this.checkboxes = this.$section.find<HTMLInputElement>(`${this.$section.prop('tagName') === 'DETAILS' ? '> .dm-checkbox-tree-details__text > .govuk-form-group > .govuk-checkboxes > .govuk-checkboxes__item > ' : ''}.govuk-checkboxes__input`).get().map((element) => $(element))\n this.isParent = this.checkboxTreeSections.length > 0\n }\n\n init = () => {\n this.openSectionIfSelected()\n\n if (this.isParent) {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.init())\n } else {\n this.checkboxes.forEach(($checkbox) => {\n $checkbox.on('click', () => {\n this.checkboxTree.updateTotals($checkbox.val(), $checkbox.is(':checked'))\n })\n })\n }\n\n }\n\n private selectedItems = () => {\n return this.checkboxes.filter(($checkbox) => $checkbox.is(':checked'))\n }\n\n private openSectionIfSelected = () => {\n if (this.countSelected() > 0 && this.$section.attr('open') !== 'open') {\n this.$section.attr('open', 'open')\n }\n }\n\n countSelected = (): number => {\n if (this.isParent) {\n return this.checkboxTreeSections.reduce((total, checkboxTreeSection) => total + checkboxTreeSection.countSelected(), 0)\n } else {\n return this.selectedItems().length\n }\n }\n\n slectedItemValues = (): (string | undefined)[] => {\n if (this.isParent) {\n return this.checkboxTreeSections.map((checkboxTreeSection) => checkboxTreeSection.slectedItemValues()).flat()\n } else {\n return this.selectedItems().map(($checkbox) => $checkbox.val())\n }\n }\n\n updateSelectedCount = () => {\n const numberSelected = this.countSelected()\n\n if (numberSelected > 0) {\n this.$summaryTagCount.text(numberSelected)\n this.$summaryTag.toggleClass('govuk-visually-hidden', false)\n } else {\n this.$summaryTag.toggleClass('govuk-visually-hidden', true)\n this.$summaryTagCount.text('')\n }\n\n if (this.isParent) {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSelectedCount())\n }\n }\n\n updateSectionLocks = (fromTier: number) => {\n if (this.countSelected()) {\n if (this.tier === fromTier) {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleSectionLock(false))\n } else {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSectionLocks(fromTier))\n }\n } else {\n this.toggleSectionLock(true)\n }\n }\n\n toggleSectionLock = (isLocked: boolean) => {\n if (this.isParent) {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleSectionLock(isLocked))\n } else {\n this.checkboxes.forEach((checkbox) => checkbox.prop('disabled', isLocked))\n }\n\n if (isLocked) {\n this.$section.attr('disabled', 'disabled')\n this.$section.attr('tabIndex', -1)\n this.$section.removeAttr('open')\n } else {\n this.$section.removeAttr('disabled')\n this.$section.removeAttr('tabIndex')\n }\n }\n\n toggleCheckbox = (value: string | undefined, isChecked: boolean) => {\n if (this.isParent) {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleCheckbox(value, isChecked))\n } else {\n this.checkboxes.forEach(($checkbox) => {\n if ($checkbox.val() === value) {\n $checkbox.prop('checked', isChecked)\n }\n })\n }\n }\n}\n\nclass QuestionCheckboxTree implements DigitalMarketplaceFrontendComponent {\n static moduleName = 'dm-question-checkbox-tree'\n $checkboxTree: JQuery<HTMLElement>\n checkboxTreeSummary: QuestionCheckboxTreeSummary\n checkboxTreeSections: QuestionCheckboxTreeSection[]\n tierLimit: number\n currentCount: number = 0\n \n constructor ($checkboxTree: JQuery<HTMLElement>) {\n this.$checkboxTree = $checkboxTree\n this.checkboxTreeSummary = new QuestionCheckboxTreeSummary(this.$checkboxTree.find('.dm-checkbox-tree__summary'), this.$checkboxTree.data('itemNameSingular'), this.$checkboxTree.data('itemNamePlural'))\n this.tierLimit = this.$checkboxTree.data('tierRestriction') || 0\n\n const checkboxTreeSections = this.$checkboxTree.find<HTMLDetailsElement>('.dm-checkbox-tree__options > .dm-checkbox-tree-details').get().map((element) => new QuestionCheckboxTreeSection(this, $(element), 1))\n\n if (checkboxTreeSections.length) {\n this.checkboxTreeSections = checkboxTreeSections\n } else {\n this.checkboxTreeSections = [new QuestionCheckboxTreeSection(this, $('.dm-checkbox-tree__options'), 1)]\n }\n }\n\n init = () => {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.init())\n\n this.updateCheckboxTreeSummaryCount()\n this.updateCheckboxTreeSectionSelectedCounts()\n this.updateSectionLocks()\n }\n\n private countSelected = () => {\n return new Set(this.checkboxTreeSections.map((checkboxTreeSection) => checkboxTreeSection.slectedItemValues()).flat()).size\n }\n\n private updateCheckboxTreeSummaryCount = () => {\n this.currentCount = this.countSelected()\n this.checkboxTreeSummary.updateSelectedCount(this.currentCount)\n }\n\n private updateCheckboxTreeSectionSelectedCounts = () => {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSelectedCount())\n }\n\n private updateSectionLocks = () => {\n if (!this.tierLimit) return\n\n this.checkboxTreeSections.forEach((checkboxTreeSection) => {\n if (this.currentCount === 0) {\n checkboxTreeSection.toggleSectionLock(false)\n } else {\n checkboxTreeSection.updateSectionLocks(this.tierLimit)\n }\n })\n }\n\n updateTotals = (value: string | undefined, isChecked: boolean) => {\n this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleCheckbox(value, isChecked))\n\n this.updateCheckboxTreeSummaryCount()\n this.updateCheckboxTreeSectionSelectedCounts()\n this.updateSectionLocks()\n }\n}\n\nexport { QuestionCheckboxTree }\n"],"names":[],"mappings":"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"}