diff --git a/packages/nc-gui/components.d.ts b/packages/nc-gui/components.d.ts
index 27bc7d0255..4b394ef476 100644
--- a/packages/nc-gui/components.d.ts
+++ b/packages/nc-gui/components.d.ts
@@ -27,6 +27,7 @@ declare module '@vue/runtime-core' {
AForm: typeof import('ant-design-vue/es')['Form']
AFormItem: typeof import('ant-design-vue/es')['FormItem']
AInput: typeof import('ant-design-vue/es')['Input']
+ AInputGroup: typeof import('ant-design-vue/es')['InputGroup']
AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
AInputSearch: typeof import('ant-design-vue/es')['InputSearch']
diff --git a/packages/nc-gui/components/cell/GeoData.vue b/packages/nc-gui/components/cell/GeoData.vue
new file mode 100644
index 0000000000..0e827b3a78
--- /dev/null
+++ b/packages/nc-gui/components/cell/GeoData.vue
@@ -0,0 +1,46 @@
+
+
+
+
+ TEST
+
+
+
+
+
{{ vModel }}
+
+
+
+
diff --git a/packages/nc-gui/components/smartsheet/Cell.vue b/packages/nc-gui/components/smartsheet/Cell.vue
index 2ed187af22..d3907e7f6b 100644
--- a/packages/nc-gui/components/smartsheet/Cell.vue
+++ b/packages/nc-gui/components/smartsheet/Cell.vue
@@ -71,6 +71,7 @@ const {
isURL,
isEmail,
isJSON,
+ isGeoData,
isDate,
isYear,
isDateTime,
@@ -130,6 +131,9 @@ const syncAndNavigate = (dir: NavigateDir, e: KeyboardEvent) => {
@keydown.shift.enter.exact="syncAndNavigate(NavigateDir.PREV, $event)"
>
+
+
@@ -151,6 +155,7 @@ const syncAndNavigate = (dir: NavigateDir, e: KeyboardEvent) => {
+
diff --git a/packages/nc-gui/components/smartsheet/header/CellIcon.vue b/packages/nc-gui/components/smartsheet/header/CellIcon.vue
index bf15561afa..b0ffaa7396 100644
--- a/packages/nc-gui/components/smartsheet/header/CellIcon.vue
+++ b/packages/nc-gui/components/smartsheet/header/CellIcon.vue
@@ -24,6 +24,7 @@ import PercentIcon from '~icons/mdi/percent-outline'
import DecimalIcon from '~icons/mdi/decimal'
import SpecificDBTypeIcon from '~icons/mdi/database-settings'
import DurationIcon from '~icons/mdi/timer-outline'
+import GeoDataIcon from '~icons/mdi/map-marker'
const props = defineProps<{ columnMeta?: ColumnType }>()
@@ -38,6 +39,8 @@ const icon = computed(() => {
return KeyIcon
} else if (additionalColMeta.isJSON.value) {
return JSONIcon
+ } else if (additionalColMeta.isGeoData.value) {
+ return GeoDataIcon
} else if (additionalColMeta.isDate.value) {
return CalendarIcon
} else if (additionalColMeta.isDateTime.value) {
diff --git a/packages/nc-gui/composables/useColumn.ts b/packages/nc-gui/composables/useColumn.ts
index a481e227a0..8ac74fcdbf 100644
--- a/packages/nc-gui/composables/useColumn.ts
+++ b/packages/nc-gui/composables/useColumn.ts
@@ -28,6 +28,7 @@ export function useColumn(column: Ref) {
const isTime = computed(() => abstractType.value === 'time' || uiDatatype.value === UITypes.Time)
const isDateTime = computed(() => abstractType.value === 'datetime' || uiDatatype.value === UITypes.DateTime)
const isJSON = computed(() => uiDatatype.value === UITypes.JSON)
+ const isGeoData = computed(() => uiDatatype.value === UITypes.GeoData)
const isEnum = computed(() => uiDatatype.value === UITypes.SingleSelect)
const isSingleSelect = computed(() => uiDatatype.value === UITypes.SingleSelect)
const isSet = computed(() => uiDatatype.value === UITypes.MultiSelect)
@@ -56,6 +57,7 @@ export function useColumn(column: Ref) {
UITypes.AutoNumber,
UITypes.SpecificDBType,
UITypes.Geometry,
+ UITypes.GeoData,
UITypes.Duration,
].includes(uiDatatype.value),
)
@@ -76,6 +78,7 @@ export function useColumn(column: Ref) {
isTime,
isDateTime,
isJSON,
+ isGeoData,
isEnum,
isSet,
isURL,
diff --git a/packages/nc-gui/lang/en.json b/packages/nc-gui/lang/en.json
index 4eae80a370..300dcc88b2 100644
--- a/packages/nc-gui/lang/en.json
+++ b/packages/nc-gui/lang/en.json
@@ -130,6 +130,7 @@
"Currency": "Currency",
"Percent": "Percent",
"Duration": "Duration",
+ "GeoData": "GeoData",
"Rating": "Rating",
"Formula": "Formula",
"Rollup": "Rollup",
diff --git a/packages/nc-gui/utils/columnUtils.ts b/packages/nc-gui/utils/columnUtils.ts
index e6dbf29861..922056ae95 100644
--- a/packages/nc-gui/utils/columnUtils.ts
+++ b/packages/nc-gui/utils/columnUtils.ts
@@ -7,6 +7,7 @@ import TextSubject from '~icons/mdi/text-subject'
import JSONIcon from '~icons/mdi/code-json'
import SpecificDBTypeIcon from '~icons/mdi/database-settings'
import Attachment from '~icons/mdi/attachment'
+import Marker from '~icons/mdi/map-marker'
import CheckboxMarkedOutline from '~icons/mdi/checkbox-marked-outline'
import FormatListBulletedSquare from '~icons/mdi/format-list-bulleted-square'
import ArrowDownDropCircle from '~icons/mdi/arrow-down-drop-circle'
@@ -138,6 +139,11 @@ const uiTypes = [
name: UITypes.Geometry,
icon: RulerSquareCompass,
},
+
+ {
+ name: UITypes.GeoData,
+ icon: Marker,
+ },
{
name: UITypes.JSON,
icon: JSONIcon,
diff --git a/packages/nocodb-sdk/src/lib/Api.ts b/packages/nocodb-sdk/src/lib/Api.ts
index 3334615873..af4f34e42e 100644
--- a/packages/nocodb-sdk/src/lib/Api.ts
+++ b/packages/nocodb-sdk/src/lib/Api.ts
@@ -595,6 +595,7 @@ export type ColumnReqType =
| 'Year'
| 'Time'
| 'PhoneNumber'
+ | 'GeoData'
| 'Email'
| 'URL'
| 'Number'
diff --git a/packages/nocodb-sdk/src/lib/UITypes.ts b/packages/nocodb-sdk/src/lib/UITypes.ts
index d2834416fe..f65dfe666d 100644
--- a/packages/nocodb-sdk/src/lib/UITypes.ts
+++ b/packages/nocodb-sdk/src/lib/UITypes.ts
@@ -16,6 +16,7 @@ enum UITypes {
Year = 'Year',
Time = 'Time',
PhoneNumber = 'PhoneNumber',
+ GeoData = 'GeoData',
Email = 'Email',
URL = 'URL',
Number = 'Number',
diff --git a/packages/nocodb-sdk/src/lib/XcUIBuilder.ts b/packages/nocodb-sdk/src/lib/XcUIBuilder.ts
index b01ad80362..b272b8debc 100644
--- a/packages/nocodb-sdk/src/lib/XcUIBuilder.ts
+++ b/packages/nocodb-sdk/src/lib/XcUIBuilder.ts
@@ -22,6 +22,7 @@ enum XcType {
Year = 'Year',
Time = 'Time',
PhoneNumber = 'PhoneNumber',
+ GeoData = 'GeoData',
Email = 'Email',
URL = 'URL',
Number = 'Number',
diff --git a/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts b/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts
index 3f2f84b26f..de8dd5de53 100644
--- a/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts
+++ b/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts
@@ -1095,6 +1095,9 @@ export class MssqlUi {
case 'Collaborator':
colProp.dt = 'varchar';
break;
+ case 'GeoData':
+ colProp.dt = 'varchar';
+ break;
case 'Date':
colProp.dt = 'varchar';
@@ -1249,6 +1252,9 @@ export class MssqlUi {
case 'Decimal':
return ['decimal', 'float'];
+ case 'GeoData':
+ return ['decimal', 'float'];
+
case 'Currency':
return [
'int',
diff --git a/scripts/sdk/swagger.json b/scripts/sdk/swagger.json
index d218fa9b28..c2861be9bb 100644
--- a/scripts/sdk/swagger.json
+++ b/scripts/sdk/swagger.json
@@ -8726,6 +8726,7 @@
"Year",
"Time",
"PhoneNumber",
+ "GeoData",
"Email",
"URL",
"Number",