Type EnvDropdown

This commit is contained in:
Adria Navarro 2025-03-21 10:47:43 +01:00
parent c91f3cfb39
commit ed9b12f558
2 changed files with 24 additions and 27 deletions

View File

@ -1,25 +1,25 @@
<script> <script lang="ts">
import "@spectrum-css/textfield/dist/index-vars.css" import "@spectrum-css/textfield/dist/index-vars.css"
import { createEventDispatcher, onMount } from "svelte" import { createEventDispatcher, onMount } from "svelte"
import clickOutside from "../../Actions/click_outside" import clickOutside from "../../Actions/click_outside"
import Divider from "../../Divider/Divider.svelte" import Divider from "../../Divider/Divider.svelte"
export let value = null export let value: string | number | null = null
export let placeholder = null export let placeholder: string | null = null
export let type = "text" export let type: "text" | "number" = "text"
export let disabled = false export let disabled: boolean = false
export let id = null export let id: string | null = null
export let readonly = false export let readonly: boolean = false
export let updateOnChange = true export let updateOnChange: boolean = true
export let align export let align: string | undefined = undefined
export let autofocus = false export let autofocus: boolean = false
export let variables export let variables
export let showModal export let showModal
export let environmentVariablesEnabled export let environmentVariablesEnabled
export let handleUpgradePanel export let handleUpgradePanel
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
let field let field: HTMLInputElement
let focus = false let focus = false
let iconFocused = false let iconFocused = false
let open = false let open = false
@ -30,7 +30,7 @@
// Strips the name out of the value which is {{ env.Variable }} resulting in an array like ["Variable"] // Strips the name out of the value which is {{ env.Variable }} resulting in an array like ["Variable"]
$: hbsValue = String(value)?.match(STRIP_NAME_REGEX) || [] $: hbsValue = String(value)?.match(STRIP_NAME_REGEX) || []
const updateValue = newValue => { const updateValue = (newValue: any) => {
if (readonly) { if (readonly) {
return return
} }
@ -48,7 +48,7 @@
focus = true focus = true
} }
const onBlur = event => { const onBlur = (event: any) => {
if (readonly) { if (readonly) {
return return
} }
@ -56,14 +56,14 @@
updateValue(event.target.value) updateValue(event.target.value)
} }
const onInput = event => { const onInput = (event: any) => {
if (readonly || !updateOnChange) { if (readonly || !updateOnChange) {
return return
} }
updateValue(event.target.value) updateValue(event.target.value)
} }
const handleOutsideClick = event => { const handleOutsideClick = (event: Event) => {
if (open) { if (open) {
event.stopPropagation() event.stopPropagation()
open = false open = false
@ -73,7 +73,7 @@
} }
} }
const handleVarSelect = variable => { const handleVarSelect = (variable: string) => {
open = false open = false
focus = false focus = false
iconFocused = false iconFocused = false
@ -121,7 +121,7 @@
<input <input
bind:this={field} bind:this={field}
disabled={hbsValue.length || disabled} disabled={!!hbsValue.length || disabled}
{readonly} {readonly}
{id} {id}
value={hbsValue.length ? `{{ ${hbsValue[0]} }}` : value} value={hbsValue.length ? `{{ ${hbsValue[0]} }}` : value}

View File

@ -1,26 +1,25 @@
<script> <script lang="ts">
import Field from "./Field.svelte" import Field from "./Field.svelte"
import EnvDropdown from "./Core/EnvDropdown.svelte" import EnvDropdown from "./Core/EnvDropdown.svelte"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
export let value = null export let value: string | undefined = undefined
export let label = null export let label: string | undefined = undefined
export let labelPosition = "above" export let labelPosition = "above"
export let placeholder = null export let placeholder = null
export let type = "text" export let type: "text" | "number" = "text"
export let disabled = false export let disabled = false
export let readonly = false export let readonly = false
export let error = null export let error: string | undefined = undefined
export let updateOnChange = true export let updateOnChange = true
export let quiet = false
export let autofocus export let autofocus
export let variables export let variables
export let showModal export let showModal
export let helpText = null export let helpText: string | undefined = undefined
export let environmentVariablesEnabled export let environmentVariablesEnabled
export let handleUpgradePanel export let handleUpgradePanel
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
const onChange = e => { const onChange = (e: any) => {
value = e.detail value = e.detail
dispatch("change", e.detail) dispatch("change", e.detail)
} }
@ -29,13 +28,11 @@
<Field {helpText} {label} {labelPosition} {error}> <Field {helpText} {label} {labelPosition} {error}>
<EnvDropdown <EnvDropdown
{updateOnChange} {updateOnChange}
{error}
{disabled} {disabled}
{readonly} {readonly}
{value} {value}
{placeholder} {placeholder}
{type} {type}
{quiet}
{autofocus} {autofocus}
{variables} {variables}
{showModal} {showModal}