diff --git a/src/lib/elements/forms/index.ts b/src/lib/elements/forms/index.ts
index bae2ceff5..8dcb7e5aa 100644
--- a/src/lib/elements/forms/index.ts
+++ b/src/lib/elements/forms/index.ts
@@ -33,3 +33,4 @@ export { default as InputFilePicker } from './inputFilePicker.svelte';
export { default as Seekbar } from './Seekbar.svelte';
export { default as InputPoint } from './inputPoint.svelte';
export { default as InputLine } from './inputLine.svelte';
+export { default as InputPolygon } from './inputPolygon.svelte';
diff --git a/src/lib/elements/forms/inputLine.svelte b/src/lib/elements/forms/inputLine.svelte
index a89af29b6..5fc0089e7 100644
--- a/src/lib/elements/forms/inputLine.svelte
+++ b/src/lib/elements/forms/inputLine.svelte
@@ -6,28 +6,29 @@
export let values: number[][];
export let nullable: boolean;
- export let onAddPoint: () => void;
- export let onDeletePoint: () => void = undefined;
+ export let disableDeletePointsCountPerLine: number = 2;
+ export let onAddPoint: (index: number) => void;
+ export let onDeletePoint: (index: number) => void = undefined;
let required = true;
$: required = nullable;
-
- $: disableDeletePoints = !values || values.length <= 2;
+ let disableDeletePoints = false;
+ $: disableDeletePoints = !values || values.length <= disableDeletePointsCountPerLine;
- {#each values as value}
+ {#each values as value, index}
+ onDeletePoint={() => onDeletePoint(index)} />
{/each}
-
diff --git a/src/lib/elements/forms/inputPolygon.svelte b/src/lib/elements/forms/inputPolygon.svelte
index 169c09d0c..e21cfb01c 100644
--- a/src/lib/elements/forms/inputPolygon.svelte
+++ b/src/lib/elements/forms/inputPolygon.svelte
@@ -7,9 +7,10 @@
export let values: NestedNumberArray;
export let nullable;
- export let onAddPoint: () => void;
- export let onAddLine: () => void;
- export let onDeletePoint: () => void = undefined;
+ export let onAddPoint: (index: number) => void;
+ export let onAddLine: (index: number) => void;
+ export let onDeletePoint: (index: number) => void = undefined;
+ export let disableDeletePointsCountPerLine: number = 4;
let required = true;
@@ -17,12 +18,17 @@
- {#each values as value}
-
+ {#each values as value, index}
+ onAddPoint(index)}
+ nullable={required}
+ onDeletePoint={() => onDeletePoint(index)}
+ {disableDeletePointsCountPerLine} />
{/each}
-
+ onAddLine(-1)}>
Add line
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/line.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/line.svelte
index 4d1233264..b811f07c3 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/line.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/line.svelte
@@ -35,19 +35,23 @@
+ onDeletePoint={deleteCoordinate}
+ {disableDeletePoints} />
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/point.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/point.svelte
index 663a5b2fb..503e930ed 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/point.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/point.svelte
@@ -39,12 +39,13 @@
import { getDefaultSpatialData } from '../store';
import { createConservative } from '$lib/helpers/stores';
import { Selector, Typography, Layout } from '@appwrite.io/pink-svelte';
+ import { onMount } from 'svelte';
const defaultData = getDefaultSpatialData('point') as number[];
export let data: Partial = {
required: false,
- default: defaultData
+ default: null
};
let savedDefault = data.default;
@@ -68,6 +69,10 @@
});
$: listen(data);
+ onMount(() => {
+ data.default = data.required ? null : defaultData;
+ });
+
$: handleDefaultState($required);
$: showDefaultPointDummyData = $required ? true : false;
@@ -86,5 +91,5 @@
Default
Optional
-
+
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/polygon.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/polygon.svelte
index cde0ede51..6f3f7bbfc 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/polygon.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/polygon.svelte
@@ -37,13 +37,14 @@
@@ -34,5 +36,10 @@
>optional
{/if}
-
+
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/polygon.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/polygon.svelte
new file mode 100644
index 000000000..216394c00
--- /dev/null
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/columns/types/polygon.svelte
@@ -0,0 +1,27 @@
+
+
+
+
+ {label}
+ {#if nullable}
+ optional
+ {/if}
+
+
+