component PinInput { props { size = "default" color = "primary" label = "Verification code" name = "pin" value = "" length = 4 pattern = "[0-9]" type = "text" inputMode = "numeric" placeholder = "○" autocomplete = "one-time-code" masked = false disabled = false readonly = false required = false autoFocus = false autoSubmit = false allowPaste = true clearable = true clearLabel = "Clear code" separator = "" groupSize = 0 helpText = "" invalid = false validationMessage = "" class = "" @event input = function @event change = function @event complete = function @event paste = function @event clear = function @event error = function } functions { function inputIndexes() { return [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].slice( 0, Math.max(1, Math.min(12, Number(length))) ) } } view {
{label}
{#each inputIndexes() as index} {#if separator && groupSize !== 0 && (index + 1) % groupSize === 0 && index + 1 !== length} {/if} {/each}
{#if helpText && !validationMessage}{helpText}{/if} {validationMessage}
} }