improve rawvalue handling for lightweightarg input
This commit is contained in:
@@ -96,18 +96,15 @@
|
||||
|
||||
$: render && changeDefaultValue(inputCat, defaultValue)
|
||||
|
||||
$: rawValue && evalRawValueToValue()
|
||||
$: (rawValue || inputCat === 'object') && evalRawValueToValue()
|
||||
|
||||
$: validateInput(pattern, value, required)
|
||||
|
||||
$: {
|
||||
if (inputCat === 'object') {
|
||||
evalValueToRaw()
|
||||
}
|
||||
}
|
||||
|
||||
function evalRawValueToValue() {
|
||||
if (rawValue) {
|
||||
if (!rawValue || rawValue === '') {
|
||||
value = undefined
|
||||
error = ''
|
||||
} else {
|
||||
try {
|
||||
value = JSON.parse(rawValue)
|
||||
error = ''
|
||||
@@ -124,7 +121,7 @@
|
||||
} else {
|
||||
// If value is undefined, set rawValue to empty object
|
||||
// This is to prevent the textarea from being empty
|
||||
rawValue = '{}'
|
||||
rawValue = ''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,8 @@
|
||||
export let overrideAllowKindChange: boolean = true
|
||||
export let originalType: string | undefined = undefined
|
||||
|
||||
let kind: 'none' | 'pattern' | 'enum' | 'resource' | 'format' | 'base64' = computeKind(
|
||||
enum_,
|
||||
contentEncoding,
|
||||
pattern,
|
||||
format
|
||||
)
|
||||
let kind: 'none' | 'pattern' | 'enum' | 'resource' | 'format' | 'base64' | 'date-time' =
|
||||
computeKind(enum_, contentEncoding, pattern, format)
|
||||
|
||||
const allowKindChange = overrideAllowKindChange || originalType === 'string'
|
||||
|
||||
@@ -55,6 +51,15 @@
|
||||
// 'jsonpointer',
|
||||
]
|
||||
|
||||
const FIELD_SETTINGS = [
|
||||
['None', 'none'],
|
||||
['File', 'base64', 'Encoded as Base 64'],
|
||||
['Enum', 'enum'],
|
||||
['Datetime', 'date-time'],
|
||||
['Format', 'format'],
|
||||
['Pattern', 'pattern']
|
||||
]
|
||||
|
||||
$: format =
|
||||
kind == 'resource' ? (resource != undefined ? `resource-${resource}` : 'resource') : format
|
||||
$: pattern = patternStr == '' ? undefined : patternStr
|
||||
@@ -111,6 +116,9 @@
|
||||
if (e.detail != 'enum') {
|
||||
enum_ = undefined
|
||||
}
|
||||
if (e.detail == 'date-time') {
|
||||
format = 'date-time'
|
||||
}
|
||||
if (e.detail == 'none') {
|
||||
pattern = undefined
|
||||
format = undefined
|
||||
@@ -122,7 +130,7 @@
|
||||
}
|
||||
}}
|
||||
>
|
||||
{#each [['None', 'none'], ['File', 'base64', 'Encoded as Base 64'], ['Enum', 'enum'], ['Format', 'format'], ['Pattern', 'pattern']] as x}
|
||||
{#each FIELD_SETTINGS as x}
|
||||
<ToggleButton value={x[1]} label={x[0]} tooltip={x[2]} showTooltipIcon={Boolean(x[2])} />
|
||||
{/each}
|
||||
</ToggleButtonGroup>
|
||||
|
||||
@@ -495,7 +495,7 @@ export function isObject(obj: any) {
|
||||
|
||||
export function debounce(func: (...args: any[]) => any, wait: number) {
|
||||
let timeout: any
|
||||
return function(...args: any[]) {
|
||||
return function (...args: any[]) {
|
||||
// @ts-ignore
|
||||
const context = this
|
||||
clearTimeout(timeout)
|
||||
@@ -505,7 +505,7 @@ export function debounce(func: (...args: any[]) => any, wait: number) {
|
||||
|
||||
export function throttle<T>(func: (...args: any[]) => T, wait: number) {
|
||||
let timeout: any
|
||||
return function(...args: any[]) {
|
||||
return function (...args: any[]) {
|
||||
if (!timeout) {
|
||||
timeout = setTimeout(() => {
|
||||
timeout = null
|
||||
@@ -721,7 +721,7 @@ export async function tryEvery({
|
||||
try {
|
||||
await tryCode()
|
||||
break
|
||||
} catch (err) { }
|
||||
} catch (err) {}
|
||||
i++
|
||||
}
|
||||
if (i >= times) {
|
||||
@@ -883,7 +883,7 @@ export function computeKind(
|
||||
contentEncoding: 'base64' | 'binary' | undefined,
|
||||
pattern: string | undefined,
|
||||
format: string | undefined
|
||||
): 'base64' | 'none' | 'pattern' | 'enum' | 'resource' | 'format' {
|
||||
): 'base64' | 'none' | 'pattern' | 'enum' | 'resource' | 'format' | 'date-time' {
|
||||
if (enum_ != undefined) {
|
||||
return 'enum'
|
||||
}
|
||||
@@ -893,6 +893,9 @@ export function computeKind(
|
||||
if (pattern != undefined) {
|
||||
return 'pattern'
|
||||
}
|
||||
if (format == 'date-time') {
|
||||
return 'date-time'
|
||||
}
|
||||
if (format != undefined && format != '') {
|
||||
if (format?.startsWith('resource')) {
|
||||
return 'resource'
|
||||
@@ -950,10 +953,7 @@ export function isDeployable(
|
||||
return false
|
||||
}
|
||||
|
||||
if (
|
||||
deployUiSettings.include_type != undefined &&
|
||||
!deployUiSettings.include_type.includes(type)
|
||||
) {
|
||||
if (deployUiSettings.include_type != undefined && !deployUiSettings.include_type.includes(type)) {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -972,4 +972,3 @@ export const ALL_DEPLOYABLE: WorkspaceDeployUISettings = {
|
||||
include_path: [],
|
||||
include_type: ['script', 'flow', 'app', 'resource', 'variable', 'secret']
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user