mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-26 00:01:37 +00:00
fix subgrids final
This commit is contained in:
@@ -396,7 +396,7 @@
|
||||
bind:error={pathError}
|
||||
bind:path
|
||||
initialPath=""
|
||||
namePlaceholder="my_{resource_type}"
|
||||
namePlaceholder="{resource_type}"
|
||||
kind="resource"
|
||||
/>
|
||||
|
||||
@@ -433,7 +433,7 @@
|
||||
{:else}
|
||||
<Path
|
||||
initialPath=""
|
||||
namePlaceholder="my_{resource_type}"
|
||||
namePlaceholder="{resource_type}"
|
||||
bind:error={pathError}
|
||||
bind:path
|
||||
kind="resource"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
import Tooltip from './Tooltip.svelte'
|
||||
import FolderEditor from './FolderEditor.svelte'
|
||||
import GroupEditor from './GroupEditor.svelte'
|
||||
import { random_adj } from './random_positive_adjetive'
|
||||
|
||||
type PathKind = 'resource' | 'script' | 'variable' | 'flow' | 'schedule' | 'app'
|
||||
let meta: Meta | undefined = undefined
|
||||
@@ -69,15 +70,23 @@
|
||||
|
||||
export async function reset() {
|
||||
if (path == '' || path == 'u//') {
|
||||
meta = { ownerKind: 'user', name: namePlaceholder, owner: '' }
|
||||
meta = {
|
||||
ownerKind: 'user',
|
||||
name: random_adj() + '_' + namePlaceholder,
|
||||
owner: ''
|
||||
}
|
||||
|
||||
meta.owner = $userStore!.username.split('@')[0]
|
||||
|
||||
let i = 1
|
||||
while (await pathExists(metaToPath(meta), kind)) {
|
||||
meta.name = `${namePlaceholder}_${i}`
|
||||
i += 1
|
||||
let newMeta = { ...meta }
|
||||
while (await pathExists(metaToPath(newMeta), kind)) {
|
||||
disabled = true
|
||||
error = 'finding an available name...'
|
||||
newMeta.name = random_adj() + '_' + namePlaceholder
|
||||
}
|
||||
error = ''
|
||||
disabled = false
|
||||
meta = newMeta
|
||||
path = metaToPath(meta)
|
||||
} else {
|
||||
meta = pathToMeta(path)
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
disabled={!can_write}
|
||||
bind:path
|
||||
{initialPath}
|
||||
namePlaceholder="my_resource"
|
||||
namePlaceholder="resource"
|
||||
kind="resource"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
bind:error={pathError}
|
||||
bind:path
|
||||
{initialPath}
|
||||
namePlaceholder={'my_schedule'}
|
||||
namePlaceholder="schedule"
|
||||
kind="schedule"
|
||||
/>
|
||||
<div class="mb-8" />
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
bind:path={script.path}
|
||||
{initialPath}
|
||||
on:enter={() => changeStep(2)}
|
||||
namePlaceholder="my_script"
|
||||
namePlaceholder="script"
|
||||
kind="script"
|
||||
/>
|
||||
<h2 class="border-b pb-1 mt-12 mb-4">Summary</h2>
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
bind:error={pathError}
|
||||
bind:path
|
||||
{initialPath}
|
||||
namePlaceholder="my_variable"
|
||||
namePlaceholder="variable"
|
||||
kind="variable"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
$: selectedIndex = tabs?.indexOf(selected) ?? -1
|
||||
|
||||
$: if (tabs && selected === '') {
|
||||
$: if ((tabs && selected === '') || !tabs.includes(selected)) {
|
||||
selected = tabs[0]
|
||||
}
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
bind:error={pathError}
|
||||
bind:path={newPath}
|
||||
initialPath=""
|
||||
namePlaceholder="my_app"
|
||||
namePlaceholder="app"
|
||||
kind="app"
|
||||
/>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
export let tabs: string[]
|
||||
export let subGrids: GridItem[][]
|
||||
|
||||
const { runnableComponents, staticOutputs, app } =
|
||||
const { runnableComponents, staticOutputs, app, focusedGrid } =
|
||||
getContext<AppEditorContext>('AppEditorContext')
|
||||
|
||||
function addTab() {
|
||||
@@ -18,6 +18,7 @@
|
||||
}
|
||||
|
||||
function deleteSubgrid(index: number) {
|
||||
$focusedGrid = undefined
|
||||
subGrids[index].forEach((x) => {
|
||||
deleteComponent(undefined, x.data, $app, $staticOutputs, $runnableComponents)
|
||||
})
|
||||
@@ -25,22 +26,13 @@
|
||||
subGrids.splice(index, 1)
|
||||
tabs = tabs
|
||||
subGrids = subGrids
|
||||
$app = $app
|
||||
$app.grid = $app.grid
|
||||
$staticOutputs = $staticOutputs
|
||||
$runnableComponents = $runnableComponents
|
||||
}
|
||||
</script>
|
||||
|
||||
<PanelSection title={`Tabs ${tabs.length > 0 ? `(${tabs.length})` : ''}`}>
|
||||
<svelte:fragment slot="action">
|
||||
<Button
|
||||
size="xs"
|
||||
color="light"
|
||||
variant="border"
|
||||
startIcon={{ icon: faPlus }}
|
||||
on:click={addTab}
|
||||
iconOnly
|
||||
/>
|
||||
</svelte:fragment>
|
||||
|
||||
{#if tabs.length == 0}
|
||||
<span class="text-xs text-gray-500">No Tabs</span>
|
||||
{/if}
|
||||
@@ -64,5 +56,13 @@
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
<Button
|
||||
size="xs"
|
||||
color="light"
|
||||
variant="border"
|
||||
startIcon={{ icon: faPlus }}
|
||||
on:click={addTab}
|
||||
iconOnly
|
||||
/>
|
||||
</div>
|
||||
</PanelSection>
|
||||
|
||||
@@ -95,17 +95,28 @@
|
||||
}}
|
||||
on:keypress
|
||||
>
|
||||
<Badge color="dark-indigo">
|
||||
{component.id}
|
||||
</Badge>
|
||||
|
||||
<div>
|
||||
<TableActionLabel componentInput={component.configuration.label} />
|
||||
</div>
|
||||
<div>
|
||||
<Button variant="border" color="red" on:click={() => deleteComponent(component.id)}>
|
||||
<Icon class="h-3" data={faTrashAlt} />
|
||||
</Button>
|
||||
</div>
|
||||
<div>
|
||||
<TableActionLabel componentInput={component.configuration.label} />
|
||||
</div>
|
||||
<Badge color="dark-indigo">
|
||||
{component.id}
|
||||
</Badge>
|
||||
</div>
|
||||
{/each}
|
||||
<div class="w-full">
|
||||
<Button
|
||||
btnClasses="w-full"
|
||||
color="light"
|
||||
variant="border"
|
||||
startIcon={{ icon: faPlus }}
|
||||
on:click={addComponent}
|
||||
iconOnly
|
||||
/>
|
||||
</div>
|
||||
</PanelSection>
|
||||
|
||||
@@ -20,13 +20,14 @@ export function deleteComponent(parentItems: GridItem[] | undefined, component:
|
||||
(component.subGrids ?? []).forEach((subgrid) => {
|
||||
if (subgrid) {
|
||||
subgrid.forEach((item) => {
|
||||
console.log(item)
|
||||
if (item.data) {
|
||||
console.log(item.data)
|
||||
deleteComponent(undefined, item.data, app, staticOutputs, runnableComponents)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
if (parentItems) {
|
||||
let index = parentItems.findIndex((item) => item.data?.id === component.id)
|
||||
if (index != -1) {
|
||||
@@ -345,7 +346,7 @@ export function createNewGridItem(grid: GridItem[], id: string, data: AppCompone
|
||||
export function recursiveGetIds(gridItem: GridItem): string[] {
|
||||
const subGrids = gridItem.data.subGrids ?? []
|
||||
const subGridIds = subGrids
|
||||
.map((subGrid: GridItem[]) => subGrid.map(recursiveGetIds))
|
||||
.map((subGrid: GridItem[]) => subGrid?.map(recursiveGetIds) ?? [])
|
||||
.flat(Infinity)
|
||||
return [gridItem.data.id, ...subGridIds]
|
||||
}
|
||||
|
||||
@@ -42,12 +42,7 @@
|
||||
<svelte:fragment slot="content">
|
||||
<TabContent value="settings-metadata" class="p-4 h-full">
|
||||
<div class="overflow-auto h-full">
|
||||
<Path
|
||||
bind:path={$flowStore.path}
|
||||
{initialPath}
|
||||
namePlaceholder="my_flow"
|
||||
kind="flow"
|
||||
/>
|
||||
<Path bind:path={$flowStore.path} {initialPath} namePlaceholder="flow" kind="flow" />
|
||||
|
||||
<label class="block my-4">
|
||||
<span class="text-gray-700 text-sm">Summary <Required required={false} /></span>
|
||||
|
||||
@@ -0,0 +1,962 @@
|
||||
const adjectives = ["abundant",
|
||||
"accessible",
|
||||
"accommodative",
|
||||
"accomplished",
|
||||
"accurate",
|
||||
"achievable",
|
||||
"adaptable",
|
||||
"adaptive",
|
||||
"adequate",
|
||||
"adjustable",
|
||||
"admirable",
|
||||
"admiring",
|
||||
"adorable",
|
||||
"adored",
|
||||
"adoring",
|
||||
"adroit",
|
||||
"adulatory",
|
||||
"advanced",
|
||||
"advantageous",
|
||||
"adventuresome",
|
||||
"adventurous",
|
||||
"affable",
|
||||
"affectionate",
|
||||
"affirmative",
|
||||
"affluent",
|
||||
"affordable",
|
||||
"agile",
|
||||
"agreeable",
|
||||
"alluring",
|
||||
"altruistic",
|
||||
"amazed",
|
||||
"amazing",
|
||||
"ambitious",
|
||||
"amenable",
|
||||
"amiable",
|
||||
"amicable",
|
||||
"ample",
|
||||
"amusing",
|
||||
"angelic",
|
||||
"appealing",
|
||||
"appreciable",
|
||||
"appreciated",
|
||||
"appreciative",
|
||||
"appropriate",
|
||||
"ardent",
|
||||
"articulate",
|
||||
"artistic",
|
||||
"assuring",
|
||||
"astonished",
|
||||
"astonishing",
|
||||
"astounded",
|
||||
"astounding",
|
||||
"athletic",
|
||||
"attentive",
|
||||
"attractive",
|
||||
"audible",
|
||||
"auspicious",
|
||||
"authentic",
|
||||
"authoritative",
|
||||
"autonomous",
|
||||
"available",
|
||||
"avid",
|
||||
"awed",
|
||||
"awesome",
|
||||
"awestruck",
|
||||
"balanced",
|
||||
"beauteous",
|
||||
"beautiful",
|
||||
"believable",
|
||||
"beloved",
|
||||
"beneficent",
|
||||
"beneficial",
|
||||
"beneficiary",
|
||||
"benevolent",
|
||||
"best",
|
||||
"best_known",
|
||||
"best_performing",
|
||||
"best_selling",
|
||||
"better",
|
||||
"better_known",
|
||||
"better_than_expected",
|
||||
"blameless",
|
||||
"blissful",
|
||||
"blithe",
|
||||
"bonny",
|
||||
"booming",
|
||||
"boundless",
|
||||
"bountiful",
|
||||
"brainiest",
|
||||
"brainy",
|
||||
"brand_new",
|
||||
"brave",
|
||||
"breathtaking",
|
||||
"bright",
|
||||
"brighter",
|
||||
"brightest",
|
||||
"brilliant",
|
||||
"brisk",
|
||||
"brotherly",
|
||||
"bullish",
|
||||
"buoyant",
|
||||
"calm",
|
||||
"calming",
|
||||
"capable",
|
||||
"captivating",
|
||||
"carefree",
|
||||
"catchy",
|
||||
"celebrated",
|
||||
"celebratory",
|
||||
"champion",
|
||||
"charismatic",
|
||||
"charitable",
|
||||
"charming",
|
||||
"chaste",
|
||||
"cheaper",
|
||||
"cheapest",
|
||||
"cheerful",
|
||||
"cheery",
|
||||
"cherished",
|
||||
"chivalrous",
|
||||
"classic",
|
||||
"classy",
|
||||
"clean",
|
||||
"cleaner",
|
||||
"cleanest",
|
||||
"cleanly",
|
||||
"clear",
|
||||
"clear_cut",
|
||||
"cleared",
|
||||
"clearer",
|
||||
"clever",
|
||||
"coherent",
|
||||
"cohesive",
|
||||
"colorful",
|
||||
"comely",
|
||||
"comfortable",
|
||||
"comforting",
|
||||
"comfy",
|
||||
"commendable",
|
||||
"commodious",
|
||||
"compact",
|
||||
"compassionate",
|
||||
"compatible",
|
||||
"competitive",
|
||||
"complementary",
|
||||
"compliant",
|
||||
"complimentary",
|
||||
"comprehensive",
|
||||
"conciliatory",
|
||||
"concise",
|
||||
"confident",
|
||||
"congenial",
|
||||
"congratulatory",
|
||||
"conscientious",
|
||||
"considerate",
|
||||
"consistent",
|
||||
"constructive",
|
||||
"consummate",
|
||||
"contrasty",
|
||||
"convenient",
|
||||
"convincing",
|
||||
"cool",
|
||||
"coolest",
|
||||
"cooperative",
|
||||
"correct",
|
||||
"cost_effective",
|
||||
"cost_saving",
|
||||
"courageous",
|
||||
"courteous",
|
||||
"courtly",
|
||||
"cozy",
|
||||
"creative",
|
||||
"credible",
|
||||
"crisp",
|
||||
"crisper",
|
||||
"cure_all",
|
||||
"cushy",
|
||||
"cute",
|
||||
"daring",
|
||||
"darling",
|
||||
"dashing",
|
||||
"dauntless",
|
||||
"dazzled",
|
||||
"dazzling",
|
||||
"dead_cheap",
|
||||
"dead_on",
|
||||
"decent",
|
||||
"decisive",
|
||||
"dedicated",
|
||||
"defeated",
|
||||
"deft",
|
||||
"delectable",
|
||||
"delicate",
|
||||
"delicious",
|
||||
"delighted",
|
||||
"delightful",
|
||||
"dependable",
|
||||
"deserving",
|
||||
"desirable",
|
||||
"desirous",
|
||||
"detachable",
|
||||
"devout",
|
||||
"dexterous",
|
||||
"dextrous",
|
||||
"dignified",
|
||||
"diligent",
|
||||
"diplomatic",
|
||||
"dirt_cheap",
|
||||
"distinctive",
|
||||
"distinguished",
|
||||
"diversified",
|
||||
"divine",
|
||||
"dominated",
|
||||
"dumbfounded",
|
||||
"dumbfounding",
|
||||
"dummy_proof",
|
||||
"durable",
|
||||
"dynamic",
|
||||
"eager",
|
||||
"earnest",
|
||||
"eased",
|
||||
"easier",
|
||||
"easiest",
|
||||
"easy",
|
||||
"easy_to_use",
|
||||
"easygoing",
|
||||
"ebullient",
|
||||
"economical",
|
||||
"ecstatic",
|
||||
"educated",
|
||||
"effective",
|
||||
"effectual",
|
||||
"efficacious",
|
||||
"efficient",
|
||||
"effortless",
|
||||
"effusive",
|
||||
"elated",
|
||||
"elegant",
|
||||
"elite",
|
||||
"eloquent",
|
||||
"eminent",
|
||||
"enchanted",
|
||||
"enchanting",
|
||||
"encouraging",
|
||||
"endearing",
|
||||
"endorsed",
|
||||
"energetic",
|
||||
"energy_efficient",
|
||||
"energy_saving",
|
||||
"engaging",
|
||||
"engrossing",
|
||||
"enhanced",
|
||||
"enjoyable",
|
||||
"enough",
|
||||
"enraptured",
|
||||
"enterprising",
|
||||
"entertaining",
|
||||
"enthralled",
|
||||
"enthusiastic",
|
||||
"enticing",
|
||||
"entranced",
|
||||
"entrancing",
|
||||
"enviable",
|
||||
"envious",
|
||||
"equitable",
|
||||
"err_free",
|
||||
"erudite",
|
||||
"ethical",
|
||||
"euphoric",
|
||||
"evaluative",
|
||||
"eventful",
|
||||
"everlasting",
|
||||
"evocative",
|
||||
"exalted",
|
||||
"exalting",
|
||||
"exceeding",
|
||||
"excellent",
|
||||
"exceptional",
|
||||
"excited",
|
||||
"exciting",
|
||||
"exemplary",
|
||||
"exhilarating",
|
||||
"expansive",
|
||||
"exquisite",
|
||||
"extraordinary",
|
||||
"exuberant",
|
||||
"exultant",
|
||||
"eye_catching",
|
||||
"fabulous",
|
||||
"fair",
|
||||
"faithful",
|
||||
"famed",
|
||||
"famous",
|
||||
"fancier",
|
||||
"fancy",
|
||||
"fantastic",
|
||||
"fascinating",
|
||||
"fashionable",
|
||||
"fast",
|
||||
"fast_growing",
|
||||
"fast_paced",
|
||||
"faster",
|
||||
"fastest",
|
||||
"fastest_growing",
|
||||
"faultless",
|
||||
"favorable",
|
||||
"favored",
|
||||
"favorite",
|
||||
"fearless",
|
||||
"feasible",
|
||||
"feature_rich",
|
||||
"feisty",
|
||||
"felicitous",
|
||||
"fertile",
|
||||
"fervent",
|
||||
"fervid",
|
||||
"festive",
|
||||
"fiery",
|
||||
"fine",
|
||||
"fine_looking",
|
||||
"finer",
|
||||
"finest",
|
||||
"firmer",
|
||||
"first_class",
|
||||
"first_in_class",
|
||||
"first_rate",
|
||||
"flashy",
|
||||
"flatter",
|
||||
"flattering",
|
||||
"flawless",
|
||||
"flexible",
|
||||
"flourishing",
|
||||
"fluent",
|
||||
"fond",
|
||||
"foolproof",
|
||||
"foremost",
|
||||
"formidable",
|
||||
"fortuitous",
|
||||
"fortunate",
|
||||
"fragrant",
|
||||
"free",
|
||||
"freed",
|
||||
"fresh",
|
||||
"fresher",
|
||||
"freshest",
|
||||
"friendly",
|
||||
"frugal",
|
||||
"fruitful",
|
||||
"fun",
|
||||
"funny",
|
||||
"futuristic",
|
||||
"gainful",
|
||||
"gallant",
|
||||
"galore",
|
||||
"generous",
|
||||
"genial",
|
||||
"gentle",
|
||||
"gentlest",
|
||||
"genuine",
|
||||
"gifted",
|
||||
"glad",
|
||||
"glamorous",
|
||||
"gleeful",
|
||||
"glimmering",
|
||||
"glistening",
|
||||
"glorious",
|
||||
"glowing",
|
||||
"god_given",
|
||||
"godlike",
|
||||
"gold",
|
||||
"golden",
|
||||
"good",
|
||||
"goodly",
|
||||
"gorgeous",
|
||||
"graceful",
|
||||
"gracious",
|
||||
"grand",
|
||||
"grateful",
|
||||
"gratified",
|
||||
"gratifying",
|
||||
"great",
|
||||
"greatest",
|
||||
"groundbreaking",
|
||||
"guiltless",
|
||||
"gutsy",
|
||||
"halcyon",
|
||||
"hale",
|
||||
"hallowed",
|
||||
"handier",
|
||||
"hands_down",
|
||||
"handsome",
|
||||
"handy",
|
||||
"happier",
|
||||
"happy",
|
||||
"hard_working",
|
||||
"hardier",
|
||||
"hardy",
|
||||
"harmless",
|
||||
"harmonious",
|
||||
"healthful",
|
||||
"healthy",
|
||||
"heartening",
|
||||
"heartfelt",
|
||||
"heartwarming",
|
||||
"heavenly",
|
||||
"helpful",
|
||||
"heroic",
|
||||
"high_quality",
|
||||
"high_spirited",
|
||||
"hilarious",
|
||||
"holy",
|
||||
"honest",
|
||||
"honorable",
|
||||
"honored",
|
||||
"hopeful",
|
||||
"hospitable",
|
||||
"hot",
|
||||
"hottest",
|
||||
"humane",
|
||||
"humble",
|
||||
"humorous",
|
||||
"humourous",
|
||||
"ideal",
|
||||
"idolized",
|
||||
"idyllic",
|
||||
"illuminating",
|
||||
"illustrious",
|
||||
"imaginative",
|
||||
"immaculate",
|
||||
"immense",
|
||||
"impartial",
|
||||
"impassioned",
|
||||
"impeccable",
|
||||
"important",
|
||||
"impressed",
|
||||
"impressive",
|
||||
"improved",
|
||||
"improving",
|
||||
"incredible",
|
||||
"indebted",
|
||||
"individualized",
|
||||
"indulgent",
|
||||
"industrious",
|
||||
"inestimable",
|
||||
"inexpensive",
|
||||
"infallible",
|
||||
"influential",
|
||||
"ingenious",
|
||||
"ingenuous",
|
||||
"innocuous",
|
||||
"innovative",
|
||||
"insightful",
|
||||
"inspirational",
|
||||
"inspiring",
|
||||
"instructive",
|
||||
"instrumental",
|
||||
"integral",
|
||||
"integrated",
|
||||
"intelligent",
|
||||
"intelligible",
|
||||
"interesting",
|
||||
"intimate",
|
||||
"intricate",
|
||||
"intriguing",
|
||||
"intuitive",
|
||||
"invaluable",
|
||||
"inventive",
|
||||
"invigorating",
|
||||
"invincible",
|
||||
"inviolable",
|
||||
"inviolate",
|
||||
"invulnerable",
|
||||
"irreplaceable",
|
||||
"irreproachable",
|
||||
"irresistible",
|
||||
"issue_free",
|
||||
"jaw_dropping",
|
||||
"jolly",
|
||||
"jovial",
|
||||
"joyful",
|
||||
"joyous",
|
||||
"jubilant",
|
||||
"judicious",
|
||||
"keen",
|
||||
"kid_friendly",
|
||||
"kindly",
|
||||
"knowledgeable",
|
||||
"large_capacity",
|
||||
"laudable",
|
||||
"lavish",
|
||||
"law_abiding",
|
||||
"lawful",
|
||||
"leading",
|
||||
"lean",
|
||||
"legendary",
|
||||
"light_hearted",
|
||||
"lighter",
|
||||
"likable",
|
||||
"like",
|
||||
"liked",
|
||||
"lionhearted",
|
||||
"lively",
|
||||
"logical",
|
||||
"long_lasting",
|
||||
"lovable",
|
||||
"loved",
|
||||
"lovely",
|
||||
"loving",
|
||||
"low_cost",
|
||||
"low_price",
|
||||
"low_priced",
|
||||
"low_risk",
|
||||
"lower_priced",
|
||||
"loyal",
|
||||
"lucid",
|
||||
"luckier",
|
||||
"luckiest",
|
||||
"lucky",
|
||||
"lucrative",
|
||||
"luminous",
|
||||
"lush",
|
||||
"lustrous",
|
||||
"luxuriant",
|
||||
"luxurious",
|
||||
"luxury",
|
||||
"lyrical",
|
||||
"magic",
|
||||
"magical",
|
||||
"magnanimous",
|
||||
"magnificent",
|
||||
"majestic",
|
||||
"manageable",
|
||||
"maneuverable",
|
||||
"marvellous",
|
||||
"marvelous",
|
||||
"masterful",
|
||||
"matchless",
|
||||
"mature",
|
||||
"meaningful",
|
||||
"memorable",
|
||||
"merciful",
|
||||
"meritorious",
|
||||
"merry",
|
||||
"mesmerized",
|
||||
"mesmerizing",
|
||||
"meticulous",
|
||||
"mighty",
|
||||
"mind_blowing",
|
||||
"miraculous",
|
||||
"modern",
|
||||
"modest",
|
||||
"momentous",
|
||||
"monumental",
|
||||
"motivated",
|
||||
"multi_purpose",
|
||||
"navigable",
|
||||
"neat",
|
||||
"neatest",
|
||||
"nice",
|
||||
"nicer",
|
||||
"nicest",
|
||||
"nifty",
|
||||
"nimble",
|
||||
"noble",
|
||||
"noiseless",
|
||||
"non_violent",
|
||||
"noteworthy",
|
||||
"nourishing",
|
||||
"observant",
|
||||
"obtainable",
|
||||
"optimal",
|
||||
"optimistic",
|
||||
"opulent",
|
||||
"orderly",
|
||||
"organized",
|
||||
"outstanding",
|
||||
"overjoyed",
|
||||
"pain_free",
|
||||
"painless",
|
||||
"palatial",
|
||||
"pampered",
|
||||
"panoramic",
|
||||
"paramount",
|
||||
"passionate",
|
||||
"patient",
|
||||
"patri",
|
||||
"otic",
|
||||
"peaceable",
|
||||
"peaceful",
|
||||
"peerless",
|
||||
"peppy",
|
||||
"perfect",
|
||||
"permissible",
|
||||
"personalized",
|
||||
"phenomenal",
|
||||
"picturesque",
|
||||
"playful",
|
||||
"pleasant",
|
||||
"pleased",
|
||||
"pleasing",
|
||||
"pleasurable",
|
||||
"plentiful",
|
||||
"plush",
|
||||
"poetic",
|
||||
"poignant",
|
||||
"poised",
|
||||
"polished",
|
||||
"polite",
|
||||
"popular",
|
||||
"portable",
|
||||
"posh",
|
||||
"positive",
|
||||
"powerful",
|
||||
"praiseworthy",
|
||||
"praising",
|
||||
"pre_eminent",
|
||||
"precious",
|
||||
"precise",
|
||||
"preeminent",
|
||||
"preferable",
|
||||
"premier",
|
||||
"prestigious",
|
||||
"pretty",
|
||||
"priceless",
|
||||
"principled",
|
||||
"privileged",
|
||||
"prize",
|
||||
"proactive",
|
||||
"problem_free",
|
||||
"prodigious",
|
||||
"productive",
|
||||
"proficient",
|
||||
"profound",
|
||||
"profuse",
|
||||
"progressive",
|
||||
"prolific",
|
||||
"prominent",
|
||||
"promised",
|
||||
"promising",
|
||||
"prompt",
|
||||
"proper",
|
||||
"propitious",
|
||||
"prosperous",
|
||||
"protective",
|
||||
"proud",
|
||||
"proven",
|
||||
"prudent",
|
||||
"punctual",
|
||||
"pure",
|
||||
"purposeful",
|
||||
"quaint",
|
||||
"qualified",
|
||||
"quicker",
|
||||
"quiet",
|
||||
"quieter",
|
||||
"radiant",
|
||||
"rapid",
|
||||
"rapt",
|
||||
"rapturous",
|
||||
"rational",
|
||||
"razor_sharp",
|
||||
"reachable",
|
||||
"readable",
|
||||
"ready",
|
||||
"realistic",
|
||||
"realizable",
|
||||
"reasonable",
|
||||
"reasoned",
|
||||
"receptive",
|
||||
"recommended",
|
||||
"record_setting",
|
||||
"redeeming",
|
||||
"refined",
|
||||
"reformed",
|
||||
"refreshed",
|
||||
"refreshing",
|
||||
"regal",
|
||||
"rejoicing",
|
||||
"relaxed",
|
||||
"reliable",
|
||||
"remarkable",
|
||||
"renewed",
|
||||
"renowned",
|
||||
"replaceable",
|
||||
"reputable",
|
||||
"resilient",
|
||||
"resolute",
|
||||
"resounding",
|
||||
"resourceful",
|
||||
"respectable",
|
||||
"respectful",
|
||||
"resplendent",
|
||||
"responsive",
|
||||
"restful",
|
||||
"restored",
|
||||
"retractable",
|
||||
"reverent",
|
||||
"revolutionary",
|
||||
"rewarding",
|
||||
"rich",
|
||||
"richer",
|
||||
"right",
|
||||
"righteous",
|
||||
"rightful",
|
||||
"risk_free",
|
||||
"robust",
|
||||
"rock_star",
|
||||
"romantic",
|
||||
"roomier",
|
||||
"roomy",
|
||||
"rosy",
|
||||
"safe",
|
||||
"saintly",
|
||||
"salutary",
|
||||
"sane",
|
||||
"satisfactory",
|
||||
"satisfied",
|
||||
"satisfying",
|
||||
"scenic",
|
||||
"seamless",
|
||||
"seasoned",
|
||||
"secure",
|
||||
"selective",
|
||||
"self_determination",
|
||||
"self_respect",
|
||||
"self_satisfaction",
|
||||
"self_sufficiency",
|
||||
"self_sufficient",
|
||||
"sensational",
|
||||
"sensible",
|
||||
"sensitive",
|
||||
"serene",
|
||||
"sexy",
|
||||
"sharp",
|
||||
"sharper",
|
||||
"sharpest",
|
||||
"shiny",
|
||||
"significant",
|
||||
"silent",
|
||||
"simpler",
|
||||
"simplest",
|
||||
"simplified",
|
||||
"sincere",
|
||||
"skilled",
|
||||
"skillful",
|
||||
"sleek",
|
||||
"slick",
|
||||
"smart",
|
||||
"smarter",
|
||||
"smartest",
|
||||
"smiling",
|
||||
"smitten",
|
||||
"smooth",
|
||||
"smoother",
|
||||
"smoothest",
|
||||
"snappy",
|
||||
"snazzy",
|
||||
"sociable",
|
||||
"soft",
|
||||
"softer",
|
||||
"solicitous",
|
||||
"solid",
|
||||
"sophisticated",
|
||||
"soulful",
|
||||
"spacious",
|
||||
"sparkling",
|
||||
"spectacular",
|
||||
"speedy",
|
||||
"spellbinding",
|
||||
"spellbound",
|
||||
"spirited",
|
||||
"spiritual",
|
||||
"splendid",
|
||||
"spontaneous",
|
||||
"sporty",
|
||||
"spotless",
|
||||
"sprightly",
|
||||
"stable",
|
||||
"stainless",
|
||||
"state_of_the_art",
|
||||
"stately",
|
||||
"statuesque",
|
||||
"staunch",
|
||||
"steadfast",
|
||||
"steadiest",
|
||||
"steady",
|
||||
"stellar",
|
||||
"stimulating",
|
||||
"stimulative",
|
||||
"straightforward",
|
||||
"streamlined",
|
||||
"striking",
|
||||
"strong",
|
||||
"stronger",
|
||||
"strongest",
|
||||
"stunned",
|
||||
"stunning",
|
||||
"stupendous",
|
||||
"sturdier",
|
||||
"sturdy",
|
||||
"stylish",
|
||||
"stylized",
|
||||
"suave",
|
||||
"sublime",
|
||||
"subsidized",
|
||||
"substantive",
|
||||
"succeeding",
|
||||
"successful",
|
||||
"sufficient",
|
||||
"suitable",
|
||||
"sumptuous",
|
||||
"super",
|
||||
"superb",
|
||||
"superior",
|
||||
"supple",
|
||||
"supported",
|
||||
"supporting",
|
||||
"supportive",
|
||||
"supreme",
|
||||
"surreal",
|
||||
"sustainable",
|
||||
"swank",
|
||||
"swankier",
|
||||
"swankiest",
|
||||
"swanky",
|
||||
"sweeping",
|
||||
"sweet",
|
||||
"sweetheart",
|
||||
"swift",
|
||||
"talented",
|
||||
"tantalizing",
|
||||
"tempting",
|
||||
"tenacious",
|
||||
"tender",
|
||||
"terrific",
|
||||
"thankful",
|
||||
"thinner",
|
||||
"thoughtful",
|
||||
"thrifty",
|
||||
"thrilled",
|
||||
"thrilling",
|
||||
"thriving",
|
||||
"thumb_up",
|
||||
"thumbs_up",
|
||||
"tidy",
|
||||
"time_honored",
|
||||
"timely",
|
||||
"titillating",
|
||||
"tolerable",
|
||||
"toll_free",
|
||||
"top",
|
||||
"top_notch",
|
||||
"top_quality",
|
||||
"topnotch",
|
||||
"tops",
|
||||
"tough",
|
||||
"tougher",
|
||||
"toughest",
|
||||
"tranquil",
|
||||
"transparent",
|
||||
"trendy",
|
||||
"triumphal",
|
||||
"triumphant",
|
||||
"trouble_free",
|
||||
"trusted",
|
||||
"trusting",
|
||||
"trustworthy",
|
||||
"trusty",
|
||||
"truthful",
|
||||
"twinkly",
|
||||
"ultra_crisp",
|
||||
"unabashed",
|
||||
"unaffected",
|
||||
"unassailable",
|
||||
"unbeatable",
|
||||
"unbiased",
|
||||
"unbound",
|
||||
"uncomplicated",
|
||||
"unconditional",
|
||||
"undamaged",
|
||||
"undaunted",
|
||||
"understandable",
|
||||
"undisputable",
|
||||
"undisputed",
|
||||
"unencumbered",
|
||||
"unequivocal",
|
||||
"unfettered",
|
||||
"unforgettable",
|
||||
"unlimited",
|
||||
"unmatched",
|
||||
"unparalleled",
|
||||
"unquestionable",
|
||||
"unreal",
|
||||
"unrestricted",
|
||||
"unrivaled",
|
||||
"unselfish",
|
||||
"unwavering",
|
||||
"upbeat",
|
||||
"upscale",
|
||||
"usable",
|
||||
"useable",
|
||||
"useful",
|
||||
"user_friendly",
|
||||
"user_replaceable",
|
||||
"valiant",
|
||||
"valuable",
|
||||
"verifiable",
|
||||
"veritable",
|
||||
"versatile",
|
||||
"vibrant",
|
||||
"victorious",
|
||||
"viewable",
|
||||
"vigilant",
|
||||
"virtuous",
|
||||
"visionary",
|
||||
"vivacious",
|
||||
"vivid",
|
||||
"warm",
|
||||
"warmer",
|
||||
"warmhearted",
|
||||
"wealthy",
|
||||
"welcome",
|
||||
"well",
|
||||
"well_backlit",
|
||||
"well_balanced",
|
||||
"well_behaved",
|
||||
"well_being",
|
||||
"well_bred",
|
||||
"well_connected",
|
||||
"well_educated",
|
||||
"well_established",
|
||||
"well_informed",
|
||||
"well_intentioned",
|
||||
"well_known",
|
||||
"well_made",
|
||||
"well_managed",
|
||||
"well_mannered",
|
||||
"well_positioned",
|
||||
"well_received",
|
||||
"well_regarded",
|
||||
"well_rounded",
|
||||
"well_run",
|
||||
"well_wishers",
|
||||
"wholesome",
|
||||
"wieldy",
|
||||
"willing",
|
||||
"winning",
|
||||
"wise",
|
||||
"witty",
|
||||
"won",
|
||||
"wonderful",
|
||||
"wondrous",
|
||||
"workable",
|
||||
"world_famous",
|
||||
"worth",
|
||||
"worthwhile",
|
||||
"worthy",
|
||||
"young",
|
||||
"youthful",
|
||||
"zippy"]
|
||||
|
||||
export function random_adj() { return adjectives[Math.floor(Math.random() * adjectives.length)] }
|
||||
Reference in New Issue
Block a user