@aquera/nile-elements 1.0.1-beta-1.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +30 -0
  2. package/dist/index.js +154 -105
  3. package/dist/internal/resizable-table-styles.cjs.js +1 -1
  4. package/dist/internal/resizable-table-styles.cjs.js.map +1 -1
  5. package/dist/internal/resizable-table-styles.esm.js +32 -17
  6. package/dist/nile-code-editor/extensionSetup.cjs.js +2 -2
  7. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  8. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  9. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  10. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  11. package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
  12. package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
  13. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
  14. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
  15. package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +12 -2
  16. package/dist/nile-filter-chip/nile-filter-chip.esm.js +3 -3
  17. package/dist/nile-input/nile-input.cjs.js +1 -1
  18. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  19. package/dist/nile-input/nile-input.esm.js +2 -2
  20. package/dist/nile-loader/nile-loader.cjs.js +1 -1
  21. package/dist/nile-loader/nile-loader.cjs.js.map +1 -1
  22. package/dist/nile-loader/nile-loader.esm.js +3 -3
  23. package/dist/nile-option/nile-option.cjs.js +1 -1
  24. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  25. package/dist/nile-option/nile-option.esm.js +2 -2
  26. package/dist/nile-option-group/nile-option-group.cjs.js +1 -1
  27. package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -1
  28. package/dist/nile-option-group/nile-option-group.esm.js +1 -1
  29. package/dist/nile-radio/nile-radio.cjs.js +1 -1
  30. package/dist/nile-radio/nile-radio.cjs.js.map +1 -1
  31. package/dist/nile-radio/nile-radio.esm.js +2 -2
  32. package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
  33. package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
  34. package/dist/nile-radio-group/nile-radio-group.esm.js +2 -2
  35. package/dist/nile-select/nile-select.cjs.js +1 -1
  36. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  37. package/dist/nile-select/nile-select.esm.js +11 -9
  38. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  39. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  40. package/dist/nile-select/virtual-scroll-helper.esm.js +21 -0
  41. package/dist/nile-table-body/nile-table-body.css.cjs.js +1 -1
  42. package/dist/nile-table-body/nile-table-body.css.cjs.js.map +1 -1
  43. package/dist/nile-table-body/nile-table-body.css.esm.js +1 -1
  44. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
  45. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
  46. package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +5 -5
  47. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
  48. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
  49. package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +1 -1
  50. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  51. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  52. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  53. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  54. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  55. package/dist/nile-virtual-select/renderer.esm.js +11 -10
  56. package/dist/src/internal/resizable-table-styles.d.ts +2 -1
  57. package/dist/src/internal/resizable-table-styles.js +27 -11
  58. package/dist/src/internal/resizable-table-styles.js.map +1 -1
  59. package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -0
  60. package/dist/src/nile-code-editor/nile-code-editor.js +5 -0
  61. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  62. package/dist/src/nile-filter-chip/nile-filter-chip.css.js +10 -0
  63. package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
  64. package/dist/src/nile-filter-chip/nile-filter-chip.js +1 -1
  65. package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
  66. package/dist/src/nile-input/nile-input.d.ts +1 -0
  67. package/dist/src/nile-input/nile-input.js +4 -1
  68. package/dist/src/nile-input/nile-input.js.map +1 -1
  69. package/dist/src/nile-loader/nile-loader.js +3 -3
  70. package/dist/src/nile-loader/nile-loader.js.map +1 -1
  71. package/dist/src/nile-option/nile-option.js +6 -6
  72. package/dist/src/nile-option/nile-option.js.map +1 -1
  73. package/dist/src/nile-option-group/nile-option-group.js +1 -1
  74. package/dist/src/nile-option-group/nile-option-group.js.map +1 -1
  75. package/dist/src/nile-radio/nile-radio.d.ts +1 -0
  76. package/dist/src/nile-radio/nile-radio.js +8 -1
  77. package/dist/src/nile-radio/nile-radio.js.map +1 -1
  78. package/dist/src/nile-radio-group/nile-radio-group.d.ts +4 -1
  79. package/dist/src/nile-radio-group/nile-radio-group.js +25 -2
  80. package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  81. package/dist/src/nile-select/nile-select.d.ts +11 -1
  82. package/dist/src/nile-select/nile-select.js +59 -1
  83. package/dist/src/nile-select/nile-select.js.map +1 -1
  84. package/dist/src/nile-select/virtual-scroll-helper.js +21 -0
  85. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  86. package/dist/src/nile-table-body/nile-table-body.css.js +2 -2
  87. package/dist/src/nile-table-body/nile-table-body.css.js.map +1 -1
  88. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +4 -4
  89. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
  90. package/dist/src/nile-table-header-item/nile-table-header-item.css.js +2 -2
  91. package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
  92. package/dist/src/nile-virtual-select/nile-virtual-select.js +2 -2
  93. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  94. package/dist/src/nile-virtual-select/renderer.js +3 -2
  95. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/package.json +1 -1
  98. package/src/internal/resizable-table-styles.ts +28 -11
  99. package/src/nile-code-editor/nile-code-editor.ts +6 -0
  100. package/src/nile-filter-chip/nile-filter-chip.css.ts +10 -0
  101. package/src/nile-filter-chip/nile-filter-chip.ts +1 -1
  102. package/src/nile-input/nile-input.ts +5 -1
  103. package/src/nile-loader/nile-loader.ts +3 -3
  104. package/src/nile-option/nile-option.ts +6 -7
  105. package/src/nile-option-group/nile-option-group.ts +1 -1
  106. package/src/nile-radio/nile-radio.ts +7 -1
  107. package/src/nile-radio-group/nile-radio-group.ts +26 -4
  108. package/src/nile-select/nile-select.ts +65 -2
  109. package/src/nile-select/virtual-scroll-helper.ts +21 -0
  110. package/src/nile-table-body/nile-table-body.css.ts +2 -2
  111. package/src/nile-table-cell-item/nile-table-cell-item.css.ts +4 -4
  112. package/src/nile-table-header-item/nile-table-header-item.css.ts +2 -2
  113. package/src/nile-virtual-select/nile-virtual-select.ts +2 -2
  114. package/src/nile-virtual-select/renderer.ts +3 -2
  115. package/vscode-html-custom-data.json +34 -3
@@ -1 +1 @@
1
- {"version":3,"file":"nile-radio-group.cjs.js","sources":["../../../src/nile-radio-group/nile-radio-group.ts"],"sourcesContent":["\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport styles from './nile-radio-group.css';\nimport type { CSSResultGroup } from 'lit';\nimport type NileRadio from '../nile-radio/nile-radio';\n\n/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n *\n * @dependency nile-button-group\n *\n * @slot - The default slot where `<nile-radio>` or `<nile-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n * attribute.\n *\n * @event change - Emitted when the radio group's selected value changes.\n * @event input - Emitted when the radio group receives user input.\n * @event invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @csspart button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */\n@customElement('nile-radio-group')\nexport class NileRadioGroup extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label');\n private customValidityMessage = '';\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @state() private hasButtonGroup = false;\n\n @state() defaultValue = '';\n\n /**\n * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\n * instead.\n */\n @property() label = '';\n\n /** The name of the radio group, submitted as a name/value pair with form data. */\n @property() name = 'option';\n\n /** The current value of the radio group, submitted as a name/value pair with form data. */\n @property({ reflect: true }) value = '';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n\n /** Used to show radio in inline or not */\n @property({ type: Boolean, reflect: true }) labelInline = false;\n\n /** Used to disabled or not */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** The radio's labelborder for whole gp. */\n @property({ type: Boolean, reflect: true }) islabelborder = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.defaultValue = this.value;\n this.handleInitialDisabledState();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n private getAllRadios() {\n return [...this.querySelectorAll<NileRadio>('nile-radio')];\n }\n\n private handleRadioClick(event: MouseEvent) {\n const target = (event.target as HTMLElement).closest<NileRadio>('nile-radio')!;\n const radios = this.getAllRadios();\n const oldValue = this.value;\n\n if (target.disabled || this.disabled) {\n return;\n }\n\n this.value = target.value;\n radios.forEach(radio => (radio.checked = radio === target));\n\n if (this.value !== oldValue) {\n this.emit('change',{value: this.value });\n this.emit('input');\n }\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = this.disabled;\n });\n }\n\n private handleInitialDisabledState() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = radio.hasAttribute('disabled') ? radio.disabled : this.disabled;\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key)) {\n return;\n }\n\n const radios = this.getAllRadios().filter(radio => !radio.disabled);\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0];\n const incr = event.key === ' ' ? 0 : ['ArrowUp', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n const oldValue = this.value;\n let index = radios.indexOf(checkedRadio) + incr;\n\n if (index < 0) {\n index = radios.length - 1;\n }\n\n if (index > radios.length - 1) {\n index = 0;\n }\n\n this.getAllRadios().forEach(radio => {\n radio.checked = false;\n\n if (!this.hasButtonGroup) {\n radio.tabIndex = -1;\n }\n });\n\n this.value = radios[index].value;\n radios[index].checked = true;\n\n if (!this.hasButtonGroup) {\n radios[index].tabIndex = 0;\n radios[index].focus();\n } else {\n radios[index].shadowRoot!.querySelector('button')!.focus();\n }\n\n if (this.value !== oldValue) {\n this.emit('change');\n this.emit('input');\n }\n\n event.preventDefault();\n }\n\n private handleLabelClick() {\n const radios = this.getAllRadios();\n const checked = radios.find(radio => radio.checked);\n const radioToFocus = checked || radios[0];\n\n // Move focus to the checked radio (or the first one if none are checked) when clicking the label\n if (radioToFocus) {\n radioToFocus.focus();\n }\n }\n\n private handleSlotChange() {\n const radios = this.getAllRadios();\n\n radios.forEach(radio => {\n radio.checked = radio.value === this.value;\n if (this.islabelborder) {\n radio.islabelborder=true;\n }\n });\n const nile_radio_check='nile-radio-button';\n this.hasButtonGroup = radios.some(radio => radio.tagName.toLowerCase() === nile_radio_check);\n\n if (!radios.some(radio => radio.checked)) {\n if (this.hasButtonGroup) {\n const buttonRadio = radios[0].shadowRoot!.querySelector('button')!;\n buttonRadio.tabIndex = 0;\n } else {\n radios[0].tabIndex = 0;\n }\n }\n\n if (this.hasButtonGroup) {\n const buttonGroup = this.shadowRoot?.querySelector('nile-button-group');\n }\n }\n\n private updateCheckedRadio() {\n const radios = this.getAllRadios();\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n }\n\n @watch('value')\n handleValueChange() {\n if (this.hasUpdated) {\n this.updateCheckedRadio();\n }\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n const defaultSlot = html`\n <slot\n @click=${this.handleRadioClick}\n @keydown=${this.handleKeyDown}\n @slotchange=${this.handleSlotChange}\n role=\"presentation\"\n ></slot>\n `;\n\n return html`\n <fieldset\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--radio-group': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText\n })}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=\"help-text\"\n aria-errormessage=\"error-message\"\n >\n <label\n part=\"form-control-label\"\n id=\"label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <div class=\"visually-hidden\">\n <label class=\"radio-group__validation\">\n <input\n type=\"text\"\n class=\"radio-group__validation-input\"\n ?required=${this.required}\n tabindex=\"-1\"\n hidden\n />\n </label>\n </div>\n\n ${this.hasButtonGroup\n ? html`\n ${defaultSlot}\n `\n : html`\n <div part=\"options-base\" class=\"${this.labelInline ? `form-control--inline-radio`:``}\"> ${defaultSlot}</div> `}\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text>${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n\n </fieldset>\n `;\n }\n}\n\nexport default NileRadioGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-radio-group': NileRadioGroup;\n }\n}\n"],"names":["NileRadioGroup","c","constructor","this","hasSlotController","HasSlotController","customValidityMessage","hasButtonGroup","defaultValue","label","name","value","form","required","labelInline","disabled","helpText","errorMessage","islabelborder","_this","_inherits","_h","_createClass","key","connectedCallback","super","handleInitialDisabledState","emit","disconnectedCallback","getAllRadios","_toConsumableArray","querySelectorAll","handleRadioClick","event","target","closest","radios","oldValue","forEach","radio","checked","handleDisabledChange","hasAttribute","handleKeyDown","_e$find","_this4","includes","filter","checkedRadio","find","incr","index","indexOf","length","tabIndex","shadowRoot","querySelector","focus","preventDefault","handleLabelClick","radioToFocus","handleSlotChange","_this5","_this$shadowRoot","some","tagName","toLowerCase","updateCheckedRadio","handleValueChange","hasUpdated","render","hasLabelSlot","test","hasLabelSuffixSlot","hasLabel","hasHelpText","hasErrorMessage","defaultSlot","html","_templateObject","_taggedTemplateLiteral","_templateObject2","classMap","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","NileElement","styles","__decorate","query","prototype","state","property","reflect","type","Boolean","attribute","watch","waitUntilFirstUpdate","customElement"],"mappings":"whKA2BaA,CAAAA,uBAAAA,EAAAA,EAAN,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,mCAGYC,EAAAA,KAAAA,CAAiBC,kBAAG,GAAIC,CAAAA,CAAAA,CAAAA,sBAAAA,CAAAA,KAAAA,EAAwB,WAAa,CAAA,OAAA,CAAA,CACtEF,KAAAA,CAAqBG,qBAAAA,CAAG,EAIfH,CAAAA,KAAAA,CAAcI,gBAAG,CAEzBJ,CAAAA,KAAAA,CAAYK,aAAG,EAMZL,CAAAA,KAAAA,CAAKM,MAAG,EAGRN,CAAAA,KAAAA,CAAIO,IAAG,CAAA,QAAA,CAGUP,KAAAA,CAAKQ,KAAAA,CAAG,GAORR,KAAAA,CAAIS,IAAAA,CAAG,GAGQT,KAAAA,CAAQU,QAAAA,CAAAA,CAAG,EAIXV,KAAAA,CAAWW,WAAAA,CAAAA,CAAG,CAGdX,CAAAA,KAAAA,CAAQY,QAAG,CAAA,CAAA,CAAA,CAEFZ,KAAAA,CAAQa,QAAG,CAAA,EAAA,CAEPb,KAAAA,CAAYc,YAAG,CAAA,EAAA,CAG5Bd,KAAAA,CAAae,aAAG,CAAA,CAAA,CAqO7D,QAAAC,KAAA,EAnOCC,SAAA,CAAAnB,CAAA,CAAAoB,EAAA,SAAAC,YAAA,CAAArB,CAAA,GAAAsB,GAAA,qBAAAZ,KAAA,UAAAa,iBAAAA,CAAAA,CACEC,CAAAA,aAAAA,CAAAA,CAAAA,iCACAtB,IAAKK,CAAAA,YAAAA,CAAeL,KAAKQ,KACzBR,CAAAA,IAAAA,CAAKuB,6BACLvB,IAAKwB,CAAAA,IAAAA,CAAK,WACX,CAAA,EAED,GAAAJ,GAAA,wBAAAZ,KAAA,UAAAiB,oBAAAA,CAAAA,CAAAA,CACEH,aAAAA,CAAAA,CAAAA,oCACAtB,IAAAA,CAAKwB,KAAK,cACX,CAAA,EAEO,GAAAJ,GAAA,gBAAAZ,KAAA,UAAAkB,YAAAA,CAAAA,CACN,CAAA,OAAAC,kBAAA,CAAW3B,IAAAA,CAAK4B,gBAA4B,CAAA,YAAA,CAAA,EAC7C,CAEO,GAAAR,GAAA,oBAAAZ,KAAA,UAAAqB,gBAAAA,CAAiBC,GACvB,GAAMC,CAAAA,CAAAA,CAAUD,EAAMC,MAAuBC,CAAAA,OAAAA,CAAmB,YAC1DC,CAAAA,CAAAA,CAAAA,CAASjC,IAAK0B,CAAAA,YAAAA,CAAAA,CAAAA,CACdQ,EAAWlC,IAAKQ,CAAAA,KAAAA,CAElBuB,EAAOnB,QAAYZ,EAAAA,IAAAA,CAAKY,WAI5BZ,IAAKQ,CAAAA,KAAAA,CAAQuB,CAAOvB,CAAAA,KAAAA,CACpByB,CAAOE,CAAAA,OAAAA,CAAQC,SAAAA,SAAUA,CAAAA,CAAMC,CAAAA,OAAAA,CAAUD,IAAUL,CAE/C/B,EAAAA,CAAAA,CAAAA,IAAAA,CAAKQ,QAAU0B,CACjBlC,GAAAA,IAAAA,CAAKwB,IAAK,CAAA,QAAA,CAAS,CAAChB,KAAAA,CAAOR,KAAKQ,KAChCR,CAAAA,CAAAA,CAAAA,IAAAA,CAAKwB,KAAK,OAEb,CAAA,CAAA,CAAA,EAGD,GAAAJ,GAAA,wBAAAZ,KAAA,UAAA8B,oBAAAA,CAAAA,CACEtC,KAAAA,MAAAA,MAAAA,IAAAA,CAAK0B,YAAeS,CAAAA,CAAAA,CAAAA,OAAAA,CAAQC,SAAAA,CAC1BA,CAAAA,CAAAA,CAAAA,CAAMxB,SAAWZ,MAAKY,CAAAA,QAAQ,GAEjC,EAEO,GAAAQ,GAAA,8BAAAZ,KAAA,UAAAe,0BAAAA,CAAAA,kBACNvB,IAAK0B,CAAAA,YAAAA,CAAAA,CAAAA,CAAeS,OAAQC,CAAAA,SAAAA,CAAAA,CAAAA,CAC1BA,CAAMxB,CAAAA,QAAAA,CAAWwB,EAAMG,YAAa,CAAA,UAAA,CAAA,CAAcH,EAAMxB,QAAWZ,CAAAA,MAAAA,CAAKY,QAAQ,EAEnF,CAAA,EAEO,GAAAQ,GAAA,iBAAAZ,KAAA,UAAAgC,aAAAA,CAAcV,CACpB,CAAA,KAAAW,OAAA,CAAAC,MAAA,MAAA,GAAA,CAAK,CAAC,SAAW,CAAA,WAAA,CAAa,YAAa,YAAc,CAAA,GAAA,CAAA,CAAKC,SAASb,CAAMV,CAAAA,GAAAA,CAAAA,CAC3E,OAGF,GAAMa,CAAAA,CAASjC,CAAAA,IAAAA,CAAK0B,eAAekB,MAAOR,CAAAA,SAAAA,CAAAA,QAAAA,CAAUA,CAAMxB,CAAAA,QAAAA,EAAAA,CAAAA,CACpDiC,CAAeZ,EAAAA,OAAAA,CAAAA,CAAAA,CAAOa,KAAKV,SAAAA,CAASA,QAAAA,CAAAA,CAAAA,CAAMC,OAAYJ,EAAAA,CAAAA,UAAAA,OAAAA,UAAAA,OAAAA,CAAAA,CAAAA,CAAO,CAC7Dc,CAAAA,CAAAA,CAAAA,CAAqB,MAAdjB,CAAMV,CAAAA,GAAAA,CAAc,EAAI,CAAC,SAAA,CAAW,aAAauB,QAASb,CAAAA,CAAAA,CAAMV,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAI,CACnFc,CAAAA,CAAAA,CAAWlC,KAAKQ,KACtB,CAAA,GAAIwC,CAAAA,EAAQf,CAAOgB,CAAAA,OAAAA,CAAQJ,GAAgBE,CAEvCC,CAAAA,CAAAA,CAAQ,CACVA,GAAAA,CAAAA,CAAQf,CAAOiB,CAAAA,MAAAA,CAAS,GAGtBF,CAAQf,CAAAA,CAAAA,CAAOiB,OAAS,CAC1BF,GAAAA,CAAAA,CAAQ,GAGVhD,IAAK0B,CAAAA,YAAAA,CAAAA,CAAAA,CAAeS,OAAQC,CAAAA,SAAAA,CAAAA,CAAAA,CAC1BA,CAAMC,CAAAA,OAAAA,CAAAA,CAAU,EAEXrC,MAAKI,CAAAA,cAAAA,GACRgC,EAAMe,QAAY,CAAA,CAAA,CAAA,CACnB,IAGHnD,IAAKQ,CAAAA,KAAAA,CAAQyB,CAAOe,CAAAA,CAAAA,CAAAA,CAAOxC,KAC3ByB,CAAAA,CAAAA,CAAOe,GAAOX,OAAU,CAAA,CAAA,CAAA,CAEnBrC,KAAKI,cAIR6B,CAAAA,CAAAA,CAAOe,GAAOI,UAAYC,CAAAA,aAAAA,CAAc,QAAWC,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAHnDrB,CAAOe,CAAAA,CAAAA,CAAAA,CAAOG,SAAW,CACzBlB,CAAAA,CAAAA,CAAOe,GAAOM,KAKZtD,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKQ,QAAU0B,CACjBlC,GAAAA,IAAAA,CAAKwB,IAAK,CAAA,QAAA,CAAA,CACVxB,IAAKwB,CAAAA,IAAAA,CAAK,UAGZM,CAAMyB,CAAAA,cAAAA,CAAAA,CACP,EAEO,GAAAnC,GAAA,oBAAAZ,KAAA,UAAAgD,gBAAAA,CAAAA,CAAAA,CACN,GAAMvB,CAAAA,CAASjC,CAAAA,IAAAA,CAAK0B,YAEd+B,CAAAA,CAAAA,CAAAA,CAAAA,CADUxB,CAAOa,CAAAA,IAAAA,CAAKV,SAAAA,SAASA,CAAAA,CAAMC,CAAAA,OAAAA,EAAAA,CAAAA,EACXJ,CAAO,CAAA,CAAA,CAAA,CAGnCwB,CACFA,EAAAA,CAAAA,CAAaH,OAEhB,EAEO,GAAAlC,GAAA,oBAAAZ,KAAA,UAAAkD,gBAAAA,CAAAA,CACN,KAAAC,MAAA,MAAAC,gBAAA,CAAA,GAAM3B,CAAAA,CAASjC,CAAAA,IAAAA,CAAK0B,eAEpBO,CAAOE,CAAAA,OAAAA,CAAQC,SAAAA,GACbA,CAAMC,CAAAA,OAAAA,CAAUD,EAAM5B,KAAUR,GAAAA,MAAAA,CAAKQ,KACjCR,CAAAA,MAAAA,CAAKe,aACPqB,GAAAA,CAAAA,CAAMrB,eAAc,CACrB,CAAA,EAAA,CAAA,CAKH,GAFAf,IAAKI,CAAAA,cAAAA,CAAiB6B,EAAO4B,IAAKzB,CAAAA,SAAAA,CAAAA,QADX,mBACoBA,GAAAA,CAAAA,CAAM0B,OAAQC,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAEpD9B,EAAO4B,IAAKzB,CAAAA,SAAAA,CAAAA,QAASA,CAAAA,EAAMC,OAC9B,EAAA,CAAA,CAAA,GAAIrC,KAAKI,cAAgB,CAAA,CACH6B,CAAO,CAAA,CAAA,CAAA,CAAGmB,UAAYC,CAAAA,aAAAA,CAAc,UAC5CF,QAAW,CAAA,CACxB,MACClB,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAGkB,SAAW,CAIrBnD,CAAAA,IAAAA,CAAKI,cACaJ,IAAAA,gBAAAA,CAAAA,IAAAA,CAAKoD,UAAYC,UAAAA,gBAAAA,iBAAjBrD,gBAAAA,CAAiBqD,aAAAA,CAAc,oBAEtD,GAEO,GAAAjC,GAAA,sBAAAZ,KAAA,UAAAwD,kBAAAA,CAAAA,kBACShE,IAAK0B,CAAAA,YAAAA,CAAAA,CAAAA,CACbS,QAAQC,SAAAA,CAAUA,QAAAA,CAAAA,CAAAA,CAAMC,OAAUD,CAAAA,CAAAA,CAAM5B,KAAUR,GAAAA,MAAAA,CAAKQ,QAC/D,EAGD,GAAAY,GAAA,qBAAAZ,KAAA,UAAAyD,iBAAAA,CAAAA,EACMjE,IAAKkE,CAAAA,UAAAA,EACPlE,KAAKgE,kBAER,CAAA,CAAA,EAED,GAAA5C,GAAA,UAAAZ,KAAA,UAAA2D,MAAAA,CAAAA,CAAAA,CACE,GAAMC,CAAAA,CAAAA,CAAepE,KAAKC,iBAAkBoE,CAAAA,IAAAA,CAAK,SACzBrE,IAAKC,CAAAA,iBAAAA,CAAkBoE,KAAK,WACpD,CAAA,CAAA,GAAMC,CAAAA,CAAqBtE,CAAAA,IAAAA,CAAKC,iBAAkBoE,CAAAA,IAAAA,CAAK,gBACjDE,CAAWvE,CAAAA,CAAAA,CAAAA,IAAAA,CAAKM,KAAiB8D,EAAAA,CAAAA,CAAAA,CAAAA,CACjCI,CAAcxE,CAAAA,CAAAA,CAAAA,IAAAA,CAAKa,SACnB4D,CAAkBzE,CAAAA,CAAAA,CAAAA,IAAAA,CAAKc,YAEvB4D,CAAAA,CAAAA,CAAcC,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,6IAEX7E,IAAK6B,CAAAA,gBAAAA,CACH7B,IAAKwC,CAAAA,aAAAA,CACFxC,IAAK0D,CAAAA,gBAAAA,CAKvB,CAAA,MAAOiB,CAAAA,CAAI,CAAAG,gBAAA,GAAAA,gBAAA,CAAAD,sBAAA,++BAGCE,CAAS,CAAA,CACf,gBAAgB,CAChB,CAAA,sBAAA,CAAA,CAAwB,EACxB,2BAA6B,CAAA,CAAA,CAAA,CAC7B,yBAA2BR,CAAAA,CAAAA,CAC3B,6BAA+BC,CAAAA,CAAAA,CAAAA,CAAAA,CAWjBD,CAAAA,CAAW,OAAU,CAAA,MAAA,CAC1BvE,IAAKwD,CAAAA,gBAAAA,CAEOxD,IAAKM,CAAAA,KAAAA,CAG1BgE,CAAAA,CAAqBK,CAAI,CAAAK,gBAAA,GAAAA,gBAAA,CAAAH,sBAAA,8CAAwC,EAAA,CAQ/C7E,IAAKU,CAAAA,QAAAA,CAOrBV,IAAAA,CAAKI,eACHuE,CAAI,CAAAM,gBAAA,GAAAA,gBAAA,CAAAJ,sBAAA,yCACJH,CAAAA,EAECC,CAAI,CAAAO,gBAAA,GAAAA,gBAAA,CAAAL,sBAAA,0EAC2B7E,IAAKW,CAAAA,WAAAA,CAAc,6BAA6B,EAAQ+D,CAAAA,CAAAA,CAAAA,CAI5FF,CAAAA,CACIG,CAAI,CAAAQ,gBAAA,GAAAA,gBAAA,CAAAN,sBAAA,wFACqB7E,IAAKa,CAAAA,QAAAA,EAE9B,EAAA,CAIJ4D,CAAAA,CACIE,CAAI,CAAAS,gBAAA,GAAAA,gBAAA,CAAAP,sBAAA,sIAEG7E,IAAKc,CAAAA,YAAAA,EAGZ,EAAA,EAKX,CAAA,MAlRiCuE,CAAAA,GAC3BxF,CAAMyF,CAAAA,MAAAA,CAAmBA,CAKLC,CAAAA,CAAAA,CAAA,CAA1BC,CAAM,CAAA,kBAAA,CAAA,CAAA,CAAiD3F,CAAA4F,CAAAA,SAAAA,CAAA,kBAAA,EAEvCF,CAAAA,CAAAA,CAAAA,CAAA,CAAhBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAuC7F,EAAA4F,SAAA,CAAA,gBAAA,CAAA,IAAA,EAE/BF,CAAAA,CAAAA,CAAAA,CAAA,CAARG,CAA0B7F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,SAAA,CAAA,cAAA,CAAA,IAAA,IAMfF,CAAA,CAAA,CAAXI,CAAsB9F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,UAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CAGXF,CAAA,CAAA,CAAXI,KAA2B9F,CAAA4F,CAAAA,SAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA,CAGCF,EAAA,CAA5BI,CAAAA,CAAS,CAAEC,OAAAA,CAAAA,CAAS,KAAmB/F,CAAA4F,CAAAA,SAAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CAOXF,EAAA,CAA5BI,CAAAA,CAAS,CAAEC,OAAAA,CAAAA,CAAS,KAAkB/F,CAAA4F,CAAAA,SAAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA,CAGKF,EAAA,CAA3CI,CAAAA,CAAS,CAAEE,IAAAA,CAAMC,QAASF,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB/F,CAAA4F,CAAAA,SAAAA,CAAA,eAAA,EAIjBF,CAAAA,CAAAA,CAAAA,CAAA,CAA3CI,CAAAA,CAAS,CAAEE,IAAMC,CAAAA,OAAAA,CAASF,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B/F,EAAA4F,SAAA,CAAA,aAAA,CAAA,IAAA,EAGpBF,CAAAA,CAAAA,CAAAA,CAAA,CAA3CI,CAAS,CAAA,CAAEE,IAAMC,CAAAA,OAAAA,CAASF,SAAS,CAAyB/F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,SAAA,CAAA,UAAA,CAAA,IAAA,IAERF,CAAA,CAAA,CAApDI,CAAS,CAAA,CAAEI,UAAW,WAAaH,CAAAA,OAAAA,CAAAA,CAAS,CAAsB/F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,UAAA,UAAA,CAAA,IAAA,EAAA,CAAA,CAEVF,CAAA,CAAA,CAAxDI,EAAS,CAAEI,SAAAA,CAAW,eAAiBH,CAAAA,OAAAA,CAAAA,CAAS,KAA0B/F,CAAA4F,CAAAA,SAAAA,CAAA,cAAA,CAAA,IAAA,EAAA,CAAA,CAG/BF,EAAA,CAA3CI,CAAAA,CAAS,CAAEE,IAAAA,CAAMC,QAASF,OAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B/F,CAAA4F,CAAAA,SAAAA,CAAA,oBAAA,EAqClEF,CAAAA,CAAAA,CAAAA,CAAA,CADCS,CAAAA,CAAM,WAAY,CAAEC,oBAAAA,CAAAA,CAAsB,CAK1CpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,UAAA,sBAAA,CAAA,IAAA,CAAA,CAgGDF,CAAA,CAAA,CADCS,EAAM,OAKNnG,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4F,SAAA,CAAA,mBAAA,CAAA,kBA3LU5F,CAAc0F,CAAAA,CAAAA,CAAA,CAD1BW,CAAAA,CAAc,qBACFrG"}
1
+ {"version":3,"file":"nile-radio-group.cjs.js","sources":["../../../src/nile-radio-group/nile-radio-group.ts"],"sourcesContent":["\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport styles from './nile-radio-group.css';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport type NileRadio from '../nile-radio/nile-radio';\n\n/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n *\n * @dependency nile-button-group\n *\n * @slot - The default slot where `<nile-radio>` or `<nile-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n * attribute.\n *\n * @event change - Emitted when the radio group's selected value changes.\n * @event input - Emitted when the radio group receives user input.\n * @event invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @csspart button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */\n@customElement('nile-radio-group')\nexport class NileRadioGroup extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label');\n private customValidityMessage = '';\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @state() private hasButtonGroup = false;\n\n @state() defaultValue = '';\n\n /**\n * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\n * instead.\n */\n @property() label = '';\n\n /** The name of the radio group, submitted as a name/value pair with form data. */\n @property() name = 'option';\n\n /** The current value of the radio group, submitted as a name/value pair with form data. */\n @property({ reflect: true }) value = '';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n\n /** Used to show radio in inline or not */\n @property({ type: Boolean, reflect: true }) labelInline = false;\n\n /** Used to disabled or not */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** The radio's labelborder for whole gp. */\n @property({ type: Boolean, reflect: true }) islabelborder = false;\n\n /** Allow the radio to be unchecked. */\n @property({ type: Boolean, reflect: true, attribute: true }) allowUncheckGroup = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.defaultValue = this.value;\n this.handleInitialDisabledState();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n private getAllRadios() {\n return [...this.querySelectorAll<NileRadio>('nile-radio')];\n }\n\n private handleRadioClick(event: MouseEvent) {\n const target = (event.target as HTMLElement).closest<NileRadio>('nile-radio')!;\n const radios = this.getAllRadios();\n const oldValue = this.value;\n\n if (target.disabled || this.disabled) {\n return;\n }\n\n this.value = target.value;\n if (!this.allowUncheckGroup) {\n radios.forEach(radio => {\n radio.checked = radio === target;\n });\n }\n\n if (!this.allowUncheckGroup && this.value !== oldValue) {\n this.emit('change', { value: this.value});\n this.emit('input');\n } else if (this.allowUncheckGroup) { \n this.emit('change', { value: this.value , checked: target.checked});\n this.emit('input');\n }\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('allowUncheckGroup')) {\n if (this.allowUncheckGroup) {\n this.getAllRadios().forEach(radio => {\n radio.allowUncheck = true;\n });\n }\n }\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = this.disabled;\n });\n }\n\n private handleInitialDisabledState() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = radio.hasAttribute('disabled') ? radio.disabled : this.disabled;\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key)) {\n return;\n }\n\n const radios = this.getAllRadios().filter(radio => !radio.disabled);\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0];\n const incr = event.key === ' ' ? 0 : ['ArrowUp', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n const oldValue = this.value;\n let index = radios.indexOf(checkedRadio) + incr;\n\n if (index < 0) {\n index = radios.length - 1;\n }\n\n if (index > radios.length - 1) {\n index = 0;\n }\n\n this.getAllRadios().forEach(radio => {\n radio.checked = false;\n\n if (!this.hasButtonGroup) {\n radio.tabIndex = -1;\n }\n });\n\n this.value = radios[index].value;\n radios[index].checked = true;\n\n if (!this.hasButtonGroup) {\n radios[index].tabIndex = 0;\n radios[index].focus();\n } else {\n radios[index].shadowRoot!.querySelector('button')!.focus();\n }\n\n if (this.value !== oldValue) {\n this.emit('change');\n this.emit('input');\n }\n\n event.preventDefault();\n }\n\n private handleLabelClick() {\n const radios = this.getAllRadios();\n const checked = radios.find(radio => radio.checked);\n const radioToFocus = checked || radios[0];\n\n // Move focus to the checked radio (or the first one if none are checked) when clicking the label\n if (radioToFocus) {\n radioToFocus.focus();\n }\n }\n\n private handleSlotChange() {\n const radios = this.getAllRadios();\n\n radios.forEach(radio => {\n radio.checked = radio.value === this.value;\n if (this.islabelborder) {\n radio.islabelborder=true;\n }\n });\n const nile_radio_check='nile-radio-button';\n this.hasButtonGroup = radios.some(radio => radio.tagName.toLowerCase() === nile_radio_check);\n\n if (!radios.some(radio => radio.checked)) {\n if (this.hasButtonGroup) {\n const buttonRadio = radios[0].shadowRoot!.querySelector('button')!;\n buttonRadio.tabIndex = 0;\n } else {\n radios[0].tabIndex = 0;\n }\n }\n\n if (this.hasButtonGroup) {\n const buttonGroup = this.shadowRoot?.querySelector('nile-button-group');\n }\n }\n\n private updateCheckedRadio() {\n const radios = this.getAllRadios();\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n }\n\n @watch('value')\n handleValueChange() {\n if (this.hasUpdated) {\n this.updateCheckedRadio();\n }\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n const defaultSlot = html`\n <slot\n @click=${this.handleRadioClick}\n @keydown=${this.handleKeyDown}\n @slotchange=${this.handleSlotChange}\n role=\"presentation\"\n ></slot>\n `;\n\n return html`\n <fieldset\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--radio-group': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText\n })}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=\"help-text\"\n aria-errormessage=\"error-message\"\n >\n <label\n part=\"form-control-label\"\n id=\"label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <div class=\"visually-hidden\">\n <label class=\"radio-group__validation\">\n <input\n type=\"text\"\n class=\"radio-group__validation-input\"\n ?required=${this.required}\n tabindex=\"-1\"\n hidden\n />\n </label>\n </div>\n\n ${this.hasButtonGroup\n ? html`\n ${defaultSlot}\n `\n : html`\n <div part=\"options-base\" class=\"${this.labelInline ? `form-control--inline-radio`:``}\"> ${defaultSlot}</div> `}\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text>${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n\n </fieldset>\n `;\n }\n}\n\nexport default NileRadioGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-radio-group': NileRadioGroup;\n }\n}\n"],"names":["NileRadioGroup","c","constructor","this","hasSlotController","HasSlotController","customValidityMessage","hasButtonGroup","defaultValue","label","name","value","form","required","labelInline","disabled","helpText","errorMessage","islabelborder","allowUncheckGroup","_this","_inherits","_n","_createClass","key","connectedCallback","super","handleInitialDisabledState","emit","disconnectedCallback","getAllRadios","_toConsumableArray","querySelectorAll","handleRadioClick","event","target","closest","radios","oldValue","forEach","radio","checked","updated","changedProperties","has","allowUncheck","handleDisabledChange","hasAttribute","handleKeyDown","_e$find","_this4","includes","filter","checkedRadio","find","incr","index","indexOf","length","tabIndex","shadowRoot","querySelector","focus","preventDefault","handleLabelClick","radioToFocus","handleSlotChange","some","tagName","toLowerCase","updateCheckedRadio","handleValueChange","hasUpdated","render","hasLabelSlot","test","hasLabelSuffixSlot","hasLabel","hasHelpText","hasErrorMessage","defaultSlot","html","_templateObject","_taggedTemplateLiteral","_templateObject2","classMap","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","NileElement","styles","__decorate","query","prototype","state","property","reflect","type","Boolean","attribute","watch","waitUntilFirstUpdate","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{__decorate as t}from"tslib";import{classMap as e}from"lit/directives/class-map.js";import{query as i,state as s,property as l,customElement as o}from"lit/decorators.js";import{H as r}from"../internal/slot.esm.js";import{html as a}from"lit";import{w as n}from"../internal/watch.esm.js";import{N as h}from"../internal/nile-element.esm.js";import{s as d}from"./nile-radio-group.css.esm.js";let c=class extends h{constructor(){super(...arguments),this.hasSlotController=new r(this,"help-text","label"),this.customValidityMessage="",this.hasButtonGroup=!1,this.defaultValue="",this.label="",this.name="option",this.value="",this.form="",this.required=!1,this.labelInline=!1,this.disabled=!1,this.helpText="",this.errorMessage="",this.islabelborder=!1}connectedCallback(){super.connectedCallback(),this.defaultValue=this.value,this.handleInitialDisabledState(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}getAllRadios(){return[...this.querySelectorAll("nile-radio")]}handleRadioClick(t){const e=t.target.closest("nile-radio"),i=this.getAllRadios(),s=this.value;e.disabled||this.disabled||(this.value=e.value,i.forEach((t=>t.checked=t===e)),this.value!==s&&(this.emit("change",{value:this.value}),this.emit("input")))}handleDisabledChange(){this.getAllRadios().forEach((t=>{t.disabled=this.disabled}))}handleInitialDisabledState(){this.getAllRadios().forEach((t=>{t.disabled=t.hasAttribute("disabled")?t.disabled:this.disabled}))}handleKeyDown(t){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"," "].includes(t.key))return;const e=this.getAllRadios().filter((t=>!t.disabled)),i=e.find((t=>t.checked))??e[0],s=" "===t.key?0:["ArrowUp","ArrowLeft"].includes(t.key)?-1:1,l=this.value;let o=e.indexOf(i)+s;o<0&&(o=e.length-1),o>e.length-1&&(o=0),this.getAllRadios().forEach((t=>{t.checked=!1,this.hasButtonGroup||(t.tabIndex=-1)})),this.value=e[o].value,e[o].checked=!0,this.hasButtonGroup?e[o].shadowRoot.querySelector("button").focus():(e[o].tabIndex=0,e[o].focus()),this.value!==l&&(this.emit("change"),this.emit("input")),t.preventDefault()}handleLabelClick(){const t=this.getAllRadios(),e=t.find((t=>t.checked))||t[0];e&&e.focus()}handleSlotChange(){const t=this.getAllRadios();t.forEach((t=>{t.checked=t.value===this.value,this.islabelborder&&(t.islabelborder=!0)}));if(this.hasButtonGroup=t.some((t=>"nile-radio-button"===t.tagName.toLowerCase())),!t.some((t=>t.checked)))if(this.hasButtonGroup){t[0].shadowRoot.querySelector("button").tabIndex=0}else t[0].tabIndex=0;this.hasButtonGroup&&this.shadowRoot?.querySelector("nile-button-group")}updateCheckedRadio(){this.getAllRadios().forEach((t=>t.checked=t.value===this.value))}handleValueChange(){this.hasUpdated&&this.updateCheckedRadio()}render(){const t=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const i=this.hasSlotController.test("label-suffix"),s=!!this.label||!!t,l=!!this.helpText,o=!!this.errorMessage,r=a`
1
+ import{__decorate as t}from"tslib";import{classMap as e}from"lit/directives/class-map.js";import{query as i,state as s,property as l,customElement as o}from"lit/decorators.js";import{H as r}from"../internal/slot.esm.js";import{html as a}from"lit";import{w as h}from"../internal/watch.esm.js";import{N as n}from"../internal/nile-element.esm.js";import{s as d}from"./nile-radio-group.css.esm.js";let c=class extends n{constructor(){super(...arguments),this.hasSlotController=new r(this,"help-text","label"),this.customValidityMessage="",this.hasButtonGroup=!1,this.defaultValue="",this.label="",this.name="option",this.value="",this.form="",this.required=!1,this.labelInline=!1,this.disabled=!1,this.helpText="",this.errorMessage="",this.islabelborder=!1,this.allowUncheckGroup=!1}connectedCallback(){super.connectedCallback(),this.defaultValue=this.value,this.handleInitialDisabledState(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}getAllRadios(){return[...this.querySelectorAll("nile-radio")]}handleRadioClick(t){const e=t.target.closest("nile-radio"),i=this.getAllRadios(),s=this.value;e.disabled||this.disabled||(this.value=e.value,this.allowUncheckGroup||i.forEach((t=>{t.checked=t===e})),this.allowUncheckGroup||this.value===s?this.allowUncheckGroup&&(this.emit("change",{value:this.value,checked:e.checked}),this.emit("input")):(this.emit("change",{value:this.value}),this.emit("input")))}updated(t){super.updated(t),t.has("allowUncheckGroup")&&this.allowUncheckGroup&&this.getAllRadios().forEach((t=>{t.allowUncheck=!0}))}handleDisabledChange(){this.getAllRadios().forEach((t=>{t.disabled=this.disabled}))}handleInitialDisabledState(){this.getAllRadios().forEach((t=>{t.disabled=t.hasAttribute("disabled")?t.disabled:this.disabled}))}handleKeyDown(t){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"," "].includes(t.key))return;const e=this.getAllRadios().filter((t=>!t.disabled)),i=e.find((t=>t.checked))??e[0],s=" "===t.key?0:["ArrowUp","ArrowLeft"].includes(t.key)?-1:1,l=this.value;let o=e.indexOf(i)+s;o<0&&(o=e.length-1),o>e.length-1&&(o=0),this.getAllRadios().forEach((t=>{t.checked=!1,this.hasButtonGroup||(t.tabIndex=-1)})),this.value=e[o].value,e[o].checked=!0,this.hasButtonGroup?e[o].shadowRoot.querySelector("button").focus():(e[o].tabIndex=0,e[o].focus()),this.value!==l&&(this.emit("change"),this.emit("input")),t.preventDefault()}handleLabelClick(){const t=this.getAllRadios(),e=t.find((t=>t.checked))||t[0];e&&e.focus()}handleSlotChange(){const t=this.getAllRadios();t.forEach((t=>{t.checked=t.value===this.value,this.islabelborder&&(t.islabelborder=!0)}));if(this.hasButtonGroup=t.some((t=>"nile-radio-button"===t.tagName.toLowerCase())),!t.some((t=>t.checked)))if(this.hasButtonGroup){t[0].shadowRoot.querySelector("button").tabIndex=0}else t[0].tabIndex=0;this.hasButtonGroup&&this.shadowRoot?.querySelector("nile-button-group")}updateCheckedRadio(){this.getAllRadios().forEach((t=>t.checked=t.value===this.value))}handleValueChange(){this.hasUpdated&&this.updateCheckedRadio()}render(){const t=this.hasSlotController.test("label");this.hasSlotController.test("help-text");const i=this.hasSlotController.test("label-suffix"),s=!!this.label||!!t,l=!!this.helpText,o=!!this.errorMessage,r=a`
2
2
  <slot
3
3
  @click=${this.handleRadioClick}
4
4
  @keydown=${this.handleKeyDown}
@@ -56,4 +56,4 @@ import{__decorate as t}from"tslib";import{classMap as e}from"lit/directives/clas
56
56
  `:""}
57
57
 
58
58
  </fieldset>
59
- `}};c.styles=d,t([i("slot:not([name])")],c.prototype,"defaultSlot",void 0),t([s()],c.prototype,"hasButtonGroup",void 0),t([s()],c.prototype,"defaultValue",void 0),t([l()],c.prototype,"label",void 0),t([l()],c.prototype,"name",void 0),t([l({reflect:!0})],c.prototype,"value",void 0),t([l({reflect:!0})],c.prototype,"form",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"required",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"labelInline",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"disabled",void 0),t([l({attribute:"help-text",reflect:!0})],c.prototype,"helpText",void 0),t([l({attribute:"error-message",reflect:!0})],c.prototype,"errorMessage",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"islabelborder",void 0),t([n("disabled",{waitUntilFirstUpdate:!0})],c.prototype,"handleDisabledChange",null),t([n("value")],c.prototype,"handleValueChange",null),c=t([o("nile-radio-group")],c);export{c as N};
59
+ `}};c.styles=d,t([i("slot:not([name])")],c.prototype,"defaultSlot",void 0),t([s()],c.prototype,"hasButtonGroup",void 0),t([s()],c.prototype,"defaultValue",void 0),t([l()],c.prototype,"label",void 0),t([l()],c.prototype,"name",void 0),t([l({reflect:!0})],c.prototype,"value",void 0),t([l({reflect:!0})],c.prototype,"form",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"required",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"labelInline",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"disabled",void 0),t([l({attribute:"help-text",reflect:!0})],c.prototype,"helpText",void 0),t([l({attribute:"error-message",reflect:!0})],c.prototype,"errorMessage",void 0),t([l({type:Boolean,reflect:!0})],c.prototype,"islabelborder",void 0),t([l({type:Boolean,reflect:!0,attribute:!0})],c.prototype,"allowUncheckGroup",void 0),t([h("disabled",{waitUntilFirstUpdate:!0})],c.prototype,"handleDisabledChange",null),t([h("value")],c.prototype,"handleValueChange",null),c=t([o("nile-radio-group")],c);export{c as N};