component TogglePassword { props { size = "default" color = "primary" label = "Password" name = "password" value = "" placeholder = "Enter your password" autocomplete = "current-password" minlength = "" maxlength = "" pattern = "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}" fields = [] visible = false toggleable = true toggleMode = "button" checkboxLabel = "Show password" showLabel = "Show password" hideLabel = "Hide password" disabled = false readonly = false required = false invalid = false helpText = "" validationMessage = "" class = "" @event input = function @event change = function @event toggle = function } state revealed = visible functions { function toggleVisibility() { if (disabled || readonly || !toggleable) { return } revealed = !revealed } function fieldId(field, index) { return field.id || field.name || name + "-" + index } function fieldName(field, index) { return field.name || name + "-" + index } } view {
{#if fields.length}
{#each fields as field, index}
{#if toggleable && toggleMode === "button"} {/if}
{/each}
{:else}
{#if toggleable && toggleMode === "button"} {/if}
{/if} {#if toggleable && toggleMode === "checkbox"} {/if} {#if helpText && !validationMessage}{helpText}{/if} {validationMessage}
} }