{"version":3,"file":"question-list-multiquestion-client-side.bundle.mjs","sources":["../../../../src/digitalmarketplace/components/question-list-multiquestion-client-side/question-list-multiquestion-client-side.ts"],"sourcesContent":["import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nabstract class QuestionListMultiquestionQuestionInput {\n  $question: JQuery<HTMLElement>\n  canHideQuestion: boolean\n\n  constructor ($question: JQuery<HTMLElement>) {\n    this.$question = $question\n    this.canHideQuestion = this.$question.hasClass('js-hidden')\n  }\n\n  abstract hasValue():  boolean\n\n  abstract focusOnInput(): void\n\n  abstract hideInput(): void\n\n  abstract showInput(): void\n\n  toggleVisibility (isShown: boolean) {\n    if (isShown) {\n      this.showInput()\n    } else {\n      this.hideInput()\n      this.hideQuestion()\n    }\n  }\n\n  hideQuestion () {\n    if (this.canHideQuestion) {\n      this.$question.toggleClass('govuk-visually-hidden', true)\n      this.$question.attr('aria-hidden', 'true')\n      this.$question.attr('hidden', '')\n    }\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputWithField extends QuestionListMultiquestionQuestionInput {\n  $input: JQuery<HTMLInputElement>\n\n  constructor ($question: JQuery<HTMLElement>, $input: JQuery<HTMLInputElement>) {\n    super($question)\n    this.$input = $input\n  }\n\n  hasValue () {\n    return !!this.$input.val()\n  }\n\n  showInput () {\n    this.$input.removeAttr('tabindex')\n  }\n\n  hideInput () {\n    this.$input.val('')\n    this.$input.attr('value', '')\n    this.$input.attr('tabindex', -1)\n  }\n\n  focusOnInput () {\n    this.$input.focus()\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputWithItems extends QuestionListMultiquestionQuestionInput {\n  inputs: JQuery<HTMLInputElement>[]\n\n  constructor ($question: JQuery<HTMLElement>, inputs: JQuery<HTMLInputElement>[]) {\n    super($question)\n    this.inputs = inputs\n  }\n\n  hasValue () {\n    return this.inputs.some($input => $input.is(':checked'))\n  }\n\n  showInput () {\n    this.inputs.forEach($input => $input.removeAttr('tabindex'))\n  }\n  \n  hideInput () {\n    this.inputs.forEach(($input) => {\n      $input.prop('checked', false)\n      $input.attr('tabindex', -1)\n    })\n  }\n\n  focusOnInput () {\n    this.inputs[0].focus()\n  }\n}\n\nclass QuestionListMultiquestionQuestionInputFactory {\n  static getQuestionListMultiquestionQuestionInput($question: JQuery<HTMLElement>): QuestionListMultiquestionQuestionInput {\n    const inputs = $question.find<HTMLInputElement>('input').get().map((input) => $(input))\n\n    if (inputs.length == 1) {\n      return new QuestionListMultiquestionQuestionInputWithField($question, inputs[0])\n    } else {\n      return new QuestionListMultiquestionQuestionInputWithItems($question, inputs)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRow {\n  answerList: QuestionListMultiquestionClientSide\n  $row: JQuery<HTMLElement>\n  answerListRowInputs: QuestionListMultiquestionQuestionInput[]\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $row: JQuery<HTMLElement>) {\n    this.answerList = answerList\n    this.$row = $row\n    this.answerListRowInputs = $row.find('.question').get().map((question) => QuestionListMultiquestionQuestionInputFactory.getQuestionListMultiquestionQuestionInput($(question)))\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$row.toggleClass('govuk-visually-hidden', !isShown)\n    this.answerListRowInputs.forEach((answerListRowInput) => answerListRowInput.toggleVisibility(isShown))\n  }\n\n  isRowVisible () {\n    return !this.$row.hasClass('govuk-visually-hidden')\n  }\n\n  rowHasValues () {\n    return this.answerListRowInputs.some((answerListRowInput) => answerListRowInput.hasValue())\n  }\n}\n\nclass QuestionListMultiquestionButton {\n  answerList: QuestionListMultiquestionClientSide\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, buttonType: 'add' | 'remove') {\n    this.answerList = answerList\n    this.$button = $button\n    this.$buttonCounter = $button.find(`.dm-list-multiquestion__item-${buttonType}-counter`)\n  }\n\n  updateButtonText (numberOfRows: number) {\n    this.$buttonCounter.text(numberOfRows)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRemoveButton extends QuestionListMultiquestionButton {\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>) {\n    super(answerList, $button, 'remove')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.hideRow()\n    })\n\n    this.updateButtonText(numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionAddButton extends QuestionListMultiquestionButton {\n  maxNumberOfItems: number\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, maxNumberOfItems: number) {\n    super(answerList, $button, 'add')\n    this.maxNumberOfItems = maxNumberOfItems\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.addRow()\n    })\n\n    this.updateButtonText(this.maxNumberOfItems - numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionClientSide implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-list-multiquestion-client-side'\n  $answerList: JQuery<HTMLElement>\n  maxNumberOfItems: number\n  answerListRows: QuestionListMultiquestionRow[]\n  answerListAddButton: QuestionListMultiquestionAddButton\n  answerListRemoveButton: QuestionListMultiquestionRemoveButton\n\n  constructor ($answerList: JQuery<HTMLElement>) {\n    this.$answerList = $answerList\n    this.maxNumberOfItems = this.$answerList.data('maxNumberOfItems')\n    this.answerListRows = this.$answerList.find('.dm-list-multiquestion__item').get().map((row) => new QuestionListMultiquestionRow(this, $(row)))\n    this.answerListAddButton = new QuestionListMultiquestionAddButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-add'), this.maxNumberOfItems)\n    this.answerListRemoveButton = new QuestionListMultiquestionRemoveButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-remove'))\n  }\n\n  init () {\n    const rowsVisible = this.answerListRows.map((answerListRow) => answerListRow.rowHasValues())\n    let indexToHideFrom = -1\n\n    if (rowsVisible.every((rowVisible) => !rowVisible)) {\n      indexToHideFrom = 1\n    } else {\n      let previousRowVisible = true\n\n      rowsVisible.forEach((rowVisible, index) => {\n        if (previousRowVisible && !rowVisible) {\n          indexToHideFrom = index\n        }\n        previousRowVisible = rowVisible\n      })\n    }\n\n    if (indexToHideFrom >= 0) {\n      this.answerListRows.slice(indexToHideFrom).forEach((answerListRow) => answerListRow.toggleVisibility(false))\n    }\n\n    const numberOfRows = this.visibleRowsCount()\n\n    this.answerListAddButton.init(numberOfRows)\n    this.answerListRemoveButton.init(numberOfRows)\n\n    this.updateRemoveButton(numberOfRows)\n    this.updateAnswerButton(numberOfRows)\n  }\n\n  hideRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows > 1) {\n      this.answerListRows[numberOfRows - 1].toggleVisibility(false)\n  \n      this.updateRemoveButton(numberOfRows - 1)\n      this.updateAnswerButton(numberOfRows - 1)\n      this.focusOnRow(numberOfRows - 1)\n    }\n  }\n\n  addRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows < this.maxNumberOfItems) {\n      this.answerListRows[numberOfRows].toggleVisibility(true)\n\n      this.updateRemoveButton(numberOfRows + 1)\n      this.updateAnswerButton(numberOfRows + 1)\n      this.focusOnRow(numberOfRows + 1)\n    }\n  }\n\n  visibleRowsCount () {\n    return this.answerListRows.reduce((count, answerListRow) => count += answerListRow.isRowVisible() ? 1 : 0, 0)\n  }\n\n  updateRemoveButton (numberOfRows: number) {\n    if (numberOfRows === 1) {\n      this.answerListRemoveButton.toggleVisibility(false)\n    } else {\n      this.answerListRemoveButton.toggleVisibility(true)\n      this.answerListRemoveButton.updateButtonText(numberOfRows)\n    }\n  }\n\n  updateAnswerButton (numberOfRows: number) {\n    if (numberOfRows === this.maxNumberOfItems) {\n      this.answerListAddButton.toggleVisibility(false)\n    } else {\n      this.answerListAddButton.toggleVisibility(true)\n      this.answerListAddButton.updateButtonText(this.maxNumberOfItems - numberOfRows)\n    }\n  }\n\n  focusOnRow (numberOfRows: number) {\n    this.answerListRows[numberOfRows - 1].answerListRowInputs[0].focusOnInput()\n  }\n}\n\nexport { QuestionListMultiquestionClientSide }\n"],"names":[],"mappings":"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"}