1import { 2 isOptionSelected 3} from "./chunk-JLRU7REN.js"; 4import { 5 createColorClasses, 6 hostContext 7} from "./chunk-O5S42IXR.js"; 8import { 9 getIonMode 10} from "./chunk-C46CB72A.js"; 11import { 12 Host, 13 createEvent, 14 getElement, 15 h, 16 registerInstance 17} from "./chunk-SRPSML5O.js"; 18import { 19 addEventListener, 20 removeEventListener, 21 renderHiddenInput 22} from "./chunk-NRSVX4KN.js"; 23import { 24 __async 25} from "./chunk-CO64IJQE.js"; 26 27// node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js 28var radioIosCss = ':host{--inner-border-radius:50%;display:inline-block;position:relative;max-width:100%;min-height:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.radio-disabled){pointer-events:none}.radio-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{-webkit-box-sizing:border-box;box-sizing:border-box}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.radio-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.radio-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.radio-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host(.radio-justify-space-between) .radio-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.radio-justify-start) .radio-wrapper{-ms-flex-pack:start;justify-content:start}:host(.radio-justify-end) .radio-wrapper{-ms-flex-pack:end;justify-content:end}:host(.radio-alignment-start) .radio-wrapper{-ms-flex-align:start;align-items:start}:host(.radio-alignment-center) .radio-wrapper{-ms-flex-align:center;align-items:center}:host(.radio-justify-space-between),:host(.radio-justify-start),:host(.radio-justify-end),:host(.radio-alignment-start),:host(.radio-alignment-center){display:block}:host(.radio-label-placement-start) .radio-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.radio-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.radio-label-placement-end) .radio-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.radio-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.radio-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.radio-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px}:host(.radio-label-placement-stacked) .radio-wrapper{-ms-flex-direction:column;flex-direction:column}:host(.radio-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.radio-label-placement-stacked.radio-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.radio-label-placement-stacked.radio-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).radio-label-placement-stacked.radio-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.radio-label-placement-stacked.radio-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.radio-label-placement-stacked.radio-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}
28:host-context([dir=rtl]):host(.radio-label-placement-stacked.radio-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).radio-label-placement-stacked.radio-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.radio-label-placement-stacked.radio-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host{--color-checked:var(--ion-color-primary, #0054e9)}:host(.ion-color.radio-checked) .radio-inner{border-color:var(--ion-color-base)}.item-radio.item-ios ion-label{-webkit-margin-start:0;margin-inline-start:0}.radio-inner{width:33%;height:50%}:host(.radio-checked) .radio-inner{-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--color-checked)}:host(.radio-disabled){opacity:0.3}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);top:-8px;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #1a65eb);content:"";opacity:0.2}:host(.ion-focused) .radio-icon::after{inset-inline-start:-9px}.native-wrapper .radio-icon{width:0.9375rem;height:1.5rem}'; 29var IonRadioIosStyle0 = radioIosCss; 30var radioMdCss = ':host{--inner-border-radius:50%;display:inline-block;position:relative;max-width:100%;min-height:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.radio-disabled){pointer-events:none}.radio-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{-webkit-box-sizing:border-box;box-sizing:border-box}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.radio-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.radio-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.radio-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host(.radio-justify-space-between) .radio-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.radio-justify-start) .radio-wrapper{-ms-flex-pack:start;justify-content:start}:host(.radio-justify-end) .radio-wrapper{-ms-flex-pack:end;justify-content:end}:host(.radio-alignment-start) .radio-wrapper{-ms-flex-align:start;align-items:start}:host(.radio-alignment-center) .radio-wrapper{-ms-flex-align:center;align-items:center}:host(.radio-justify-space-between),:host(.radio-justify-start),:host(.radio-justify-end),:host(.radio-alignment-start),:host(.radio-alignment-center){display:block}:host(.radio-label-placement-start) .radio-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.radio-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.radio-label-placement-end) .radio-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.radio-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.radio-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.radio-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px}:host(.radio-label-placement-stacked) .radio-wrapper{-ms-flex-direction:column;flex-direction:column}:host(.radio-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;
30max-width:calc(100% / 0.75)}:host(.radio-label-placement-stacked.radio-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.radio-label-placement-stacked.radio-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).radio-label-placement-stacked.radio-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.radio-label-placement-stacked.radio-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.radio-label-placement-stacked.radio-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.radio-label-placement-stacked.radio-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).radio-label-placement-stacked.radio-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.radio-label-placement-stacked.radio-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host{--color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--color-checked:var(--ion-color-primary, #0054e9);--border-width:0.125rem;--border-style:solid;--border-radius:50%}:host(.ion-color) .radio-inner{background:var(--ion-color-base)}:host(.ion-color.radio-checked) .radio-icon{border-color:var(--ion-color-base)}.radio-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--color)}.radio-inner{border-radius:var(--inner-border-radius);width:calc(50% + var(--border-width));height:calc(50% + var(--border-width));-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background:var(--color-checked)}:host(.radio-checked) .radio-icon{border-color:var(--color-checked)}:host(.radio-checked) .radio-inner{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}:host(.radio-disabled) .label-text-wrapper{opacity:0.38}:host(.radio-disabled) .native-wrapper{opacity:0.63}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #1a65eb);content:"";opacity:0.2}.native-wrapper .radio-icon{width:1.25rem;height:1.25rem}'; 31var IonRadioMdStyle0 = radioMdCss; 32var Radio = class { 33 constructor(hostRef) { 34 registerInstance(this, hostRef); 35 this.ionFocus = createEvent(this, "ionFocus", 7); 36 this.ionBlur = createEvent(this, "ionBlur", 7); 37 this.inputId = `ion-rb-${radioButtonIds++}`; 38 this.radioGroup = null; 39 this.updateState = () => { 40 if (this.radioGroup) { 41 const { 42 compareWith, 43 value: radioGroupValue 44 } = this.radioGroup; 45 this.checked = isOptionSelected(radioGroupValue, this.value, compareWith); 46 } 47 }; 48 this.onClick = () => { 49 const { 50 radioGroup, 51 checked, 52 disabled 53 } = this; 54 if (disabled) { 55 return; 56 } 57 if (checked && (radioGroup === null || radioGroup === void 0 ? void 0 : radioGroup.allowEmptySelection)) { 58 this.checked = false; 59 } else { 60 this.checked = true; 61 } 62 }; 63 this.onFocus = () => { 64 this.ionFocus.emit(); 65 }; 66 this.onBlur = () => { 67 this.ionBlur.emit(); 68 }; 69 this.checked = false; 70 this.buttonTabindex = -1; 71 this.color = void 0; 72 this.name = this.inputId; 73 this.disabled = false; 74 this.value = void 0; 75 this.labelPlacement = "start"; 76 this.justify = void 0; 77 this.alignment = void 0; 78 } 79 valueChanged() { 80 this.updateState(); 81 } 82 componentDidLoad() { 83 this.updateState(); 84 } 85 /** @internal */ 86 setFocus(ev) { 87 return __async(this, null, function* () { 88 if (ev !== void 0) { 89 ev.stopPropagation(); 90 ev.preventDefault(); 91 } 92 this.el.focus(); 93 }); 94 } 95 /** @internal */ 96 setButtonTabindex(value) { 97 return __async(this, null, function* () { 98 this.buttonTabindex = value; 99 }); 100 } 101 connectedCallback() { 102 if (this.value === void 0) { 103 this.value = this.inputId; 104 } 105 const radioGroup = this.radioGroup = this.el.closest("ion-radio-group"); 106 if (radioGroup) { 107 this.updateState(); 108 addEventListener(radioGroup, "ionValueChange", this.updateState); 109 } 110 } 111 disconnectedCallback() { 112 const radioGroup = this.radioGroup; 113 if (radioGroup) { 114 removeEventListener(radioGroup, "ionValueChange", this.updateState); 115 this.radioGroup = null; 116 } 117 } 118 get hasLabel() { 119 return this.el.textContent !== ""; 120 } 121 renderRadioControl() { 122 return h("div", { 123 class: "radio-icon", 124 part: "container" 125 }, h("div", { 126 class: "radio-inner", 127 part: "mark" 128 }), h("div", { 129 class: "radio-ripple" 130 })); 131 } 132 render() { 133 const { 134 checked, 135 disabled, 136 color, 137 el, 138 justify, 139 labelPlacement, 140 hasLabel, 141 buttonTabindex, 142 alignment 143 } = this; 144 const mode = getIonMode(this); 145 const inItem = hostContext("ion-item", el); 146 return h(Host, { 147 key: "8badd4aec277addc0793e14df21f73bb345e99b7", 148 onFocus: this.onFocus, 149 onBlur: this.onBlur, 150 onClick: this.onClick, 151 class: createColorClasses(color, { 152 [mode]: true, 153 "in-item": inItem, 154 "radio-checked": checked, 155 "radio-disabled": disabled, 156 [`radio-justify-${justify}`]: justify !== void 0, 157 [`radio-alignment-${alignment}`]: alignment !== void 0, 158 [`radio-label-placement-${labelPlacement}`]: true, 159 // Focus and active styling should not apply when the radio is in an item 160 "ion-activatable": !inItem, 161 "ion-focusable": !inItem 162 }), 163 role: "radio", 164 "aria-checked": checked ? "true" : "false", 165 "aria-disabled": disabled ? "true" : null, 166 tabindex: buttonTabindex 167 }, h("label", { 168 key: "8765b847edc93a1b5a16506e155ed03da807bb10", 169 class: "radio-wrapper" 170 }, h("div", { 171 key: "3d568a0192a32d4f0b8a920019c79ff02639b5c9", 172 class: { 173 "label-text-wrapper": true, 174 "label-text-wrapper-hidden": !hasLabel 175 }, 176 part: "label" 177 }, h("slot", { 178 key: "331f3dc2ce5f6ed8f124fc4560f92e0f7c668a85" 179 })), h("div", { 180 key: "473bd4aaf448753e385f2dda3fddc9f56379aa19", 181 class: "native-wrapper" 182 }, this.renderRadioControl()))); 183 } 184 get el() { 185 return getElement(this); 186 } 187 static get watchers() { 188 return { 189 "value": ["valueChanged"] 190 }; 191 } 192}; 193var radioButtonIds = 0; 194Radio.style = { 195 ios: IonRadioIosStyle0, 196 md: IonRadioMdStyle0 197}; 198var radioGroupIosCss = "ion-radio-group{vertical-align:top}.radio-group-wrapper{display:inline}.radio-group-top{line-height:1.5}.radio-group-top .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid .radio-group-top .error-text{display:block}.ion-touched.ion-invalid .radio-group-top .helper-text{display:none}ion-list .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}"; 199var IonRadioGroupIosStyle0 = radioGroupIosCss; 200var radioGroupMdCss = "ion-radio-group{vertical-align:top}.radio-group-wrapper{display:inline}.radio-group-top{line-height:1.5}.radio-group-top .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid .radio-group-top .error-text{display:block}.ion-touched.ion-invalid .radio-group-top .helper-text{display:none}ion-list .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}"; 201var IonRadioGroupMdStyle0 = radioGroupMdCss; 202var RadioGroup = class { 203 constructor(hostRef) { 204 registerInstance(this, hostRef); 205 this.ionChange = createEvent(this, "ionChange", 7); 206 this.ionValueChange = createEvent(this, "ionValueChange", 7); 207 this.inputId = `ion-rg-${radioGroupIds++}`; 208 this.helperTextId = `${this.inputId}-helper-text`; 209 this.errorTextId = `${this.inputId}-error-text`; 210 this.labelId = `${this.inputId}-lbl`; 211 this.setRadioTabindex = (value) => { 212 const radios = this.getRadios(); 213 const first = radios.find((radio) => !radio.disabled); 214 const checked = radios.find((radio) => radio.value === value && !radio.disabled); 215 if (!first && !checked) { 216 return; 217 } 218 const focusable = checked || first; 219 for (const radio of radios) { 220 const tabindex = radio === focusable ? 0 : -1; 221 radio.setButtonTabindex(tabindex); 222 } 223 }; 224 this.onClick = (ev) => { 225 ev.preventDefault(); 226 const selectedRadio = ev.target && ev.target.closest("ion-radio"); 227 if (selectedRadio && !selectedRadio.disabled) { 228 const currentValue = this.value; 229 const newValue = selectedRadio.value; 230 if (newValue !== currentValue) { 231 this.value = newValue; 232 this.emitValueChange(ev); 233 } else if (this.allowEmptySelection) { 234 this.value = void 0; 235 this.emitValueChange(ev); 236 } 237 } 238 }; 239 this.allowEmptySelection = false;
240 this.compareWith = void 0; 241 this.name = this.inputId; 242 this.value = void 0; 243 this.helperText = void 0; 244 this.errorText = void 0; 245 } 246 valueChanged(value) { 247 this.setRadioTabindex(value); 248 this.ionValueChange.emit({ 249 value 250 }); 251 } 252 componentDidLoad() { 253 this.valueChanged(this.value); 254 } 255 connectedCallback() { 256 return __async(this, null, function* () { 257 const header = this.el.querySelector("ion-list-header") || this.el.querySelector("ion-item-divider"); 258 if (header) { 259 const label = this.label = header.querySelector("ion-label"); 260 if (label) { 261 this.labelId = label.id = this.name + "-lbl"; 262 } 263 } 264 }); 265 } 266 getRadios() { 267 return Array.from(this.el.querySelectorAll("ion-radio")); 268 } 269 /** 270 * Emits an `ionChange` event. 271 * 272 * This API should be called for user committed changes. 273 * This API should not be used for external value changes. 274 */ 275 emitValueChange(event) { 276 const { 277 value 278 } = this; 279 this.ionChange.emit({ 280 value, 281 event 282 }); 283 } 284 onKeydown(ev) { 285 const inSelectInterface = !!this.el.closest("ion-select-popover") || !!this.el.closest("ion-select-modal"); 286 if (ev.target && !this.el.contains(ev.target)) { 287 return; 288 } 289 const radios = this.getRadios().filter((radio) => !radio.disabled); 290 if (ev.target && radios.includes(ev.target)) { 291 const index = radios.findIndex((radio) => radio === ev.target); 292 const current = radios[index]; 293 let next; 294 if (["ArrowDown", "ArrowRight"].includes(ev.key)) { 295 next = index === radios.length - 1 ? radios[0] : radios[index + 1]; 296 } 297 if (["ArrowUp", "ArrowLeft"].includes(ev.key)) { 298 next = index === 0 ? radios[radios.length - 1] : radios[index - 1]; 299 } 300 if (next && radios.includes(next)) { 301 next.setFocus(ev); 302 if (!inSelectInterface) { 303 this.value = next.value; 304 this.emitValueChange(ev); 305 } 306 } 307 if ([" "].includes(ev.key)) { 308 const previousValue = this.value; 309 this.value = this.allowEmptySelection && this.value !== void 0 ? void 0 : current.value; 310 if (previousValue !== this.value || this.allowEmptySelection) { 311 this.emitValueChange(ev); 312 } 313 ev.preventDefault(); 314 } 315 } 316 } 317 /** @internal */ 318 setFocus() { 319 return __async(this, null, function* () { 320 const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1); 321 radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus(); 322 }); 323 } 324 /** 325 * Renders the helper text or error text values 326 */ 327 renderHintText() { 328 const { 329 helperText, 330 errorText, 331 helperTextId, 332 errorTextId 333 } = this; 334 const hasHintText = !!helperText || !!errorText; 335 if (!hasHintText) { 336 return; 337 } 338 return h("div", { 339 class: "radio-group-top" 340 }, h("div", { 341 id: helperTextId, 342 class: "helper-text" 343 }, helperText), h("div", { 344 id: errorTextId, 345 class: "error-text" 346 }, errorText)); 347 } 348 getHintTextID() { 349 const { 350 el, 351 helperText, 352 errorText, 353 helperTextId, 354 errorTextId 355 } = this; 356 if (el.classList.contains("ion-touched") && el.classList.contains("ion-invalid") && errorText) { 357 return errorTextId; 358 } 359 if (helperText) { 360 return helperTextId; 361 } 362 return void 0; 363 } 364 render() { 365 const { 366 label, 367 labelId, 368 el, 369 name, 370 value 371 } = this; 372 const mode = getIonMode(this); 373 renderHiddenInput(true, el, name, value, false); 374 return h(Host, { 375 key: "cac92777297029d7fd1b6af264d92850e35dfbba", 376 role: "radiogroup", 377 "aria-labelledby": label ? labelId : null, 378 "aria-describedby": this.getHintTextID(), 379 "aria-invalid": this.getHintTextID() === this.errorTextId, 380 onClick: this.onClick, 381 class: mode 382 }, this.renderHintText(), h("div", { 383 key: "6b5c634dba30d54eedc031b077863f3d6a9d9e9b", 384 class: "radio-group-wrapper" 385 }, h("slot", { 386 key: "443edb3ff6f4c59d4c4324c8a19f2d6def47a322" 387 }
387))); 388 } 389 get el() { 390 return getElement(this); 391 } 392 static get watchers() { 393 return { 394 "value": ["valueChanged"] 395 }; 396 } 397}; 398var radioGroupIds = 0; 399RadioGroup.style = { 400 ios: IonRadioGroupIosStyle0, 401 md: IonRadioGroupMdStyle0 402}; 403export { 404 Radio as ion_radio, 405 RadioGroup as ion_radio_group 406};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.