From 6b0570dbff4fa22b683f757306abe1e59f7034cb Mon Sep 17 00:00:00 2001 From: poirazis Date: Wed, 31 Jul 2024 21:33:05 +0300 Subject: [PATCH] v2.0.28-alpha --- bun.lockb | Bin 302942 -> 302942 bytes package.json | 10 +-- schema.json | 202 +++++++++++++++++++++++++++---------------- src/Component.svelte | 19 +++- 4 files changed, 150 insertions(+), 81 deletions(-) diff --git a/bun.lockb b/bun.lockb index 183cd0bc6a597197896bbdd56222fccfff4c5f8e..98248aaf53a4fb381dd0d49315b782fa2d3e982c 100755 GIT binary patch delta 745 zcmcb&Pw3u0p$U2lrw>I;FjF}6xU)jOYWdNtE9JxuDlH>_PS5=Dwo8xYoZ&`4t6E0s z$r}ySH*ct&!31GW-cZZAxw65Z5z75wz_Iy9qX07!*P?X-FI3-$NfMk;rokNE_YMdC z+FcHPv0~0lmGlEbUANc$zr#4k@RxQ){e)@vq9z(vEM0t4;z`hs-N$!kcBqz{etKcW z8vB4Lncewuq{@Q$>#w%gb~AP`JNy=yz_)N$q;R(XOjY$qzWo=&eO>Rn^_CqhTQzwW zSIXz>Rrg{WS9WigGm4#k)3WEuF$3%C0=83TPp$LsGuza7VY_QT;{`^C*I7!xI=0*| zWoH&^`Db-tv5VkA$A|3=R*(L_E{m>ur2OoYe2{0NL`Hs$pz_jkPXi%x)J+R^Mo0@$L09P4*{LZR=miqWJRI z`7%AOxtv88>!jaC=yP3}`f0+)W52rh&eS$IUcde9RK^uT4vgm`3iruvEuL?tUvy%_ zzcnvw=UM$P3f4o|^-A`;EFNn2zuCx5k`jvrt`F@;HOPE-@UZ2#A+CAHA z!S<~y7%O-jG=v2WXJ5S!M)T<((}2?E)6b`XsO>LPm=&3TT<&x*S2dmatS~~Bx0<o+#Mj?ta5aN?!s>a`pFtZEr0 zCvP-R-@KuA1`~uic|$Gd=E??tMkx1#0mtSajRMR_T#METyik1~CP{EYnFe!s-#bjN zKGGI5W1Fw1@HAQXw3}Tyk{birw}f~sc*DDrKr?7k4 zvroIZ%xHmv49NXS~4Za9(6->`p=9 z$e-Ii{=Glv_r~J%1eXTxd#AP-6v^dO=_{W4d~(k6=dR5WXVc}b%H2_#|KnTLm5VIi z{P}TLJqs+EM#6^GAyc>ddKf* zZ~5cmiRQf$+ro^W827$yoOSv))0GU%+%?Nz#vLn3u6-|f`V!NYzdm7c`yVbWQtNtK z^nUx+6^s=;4hLE?d`d!BiwbgnZ(6&lX7jB%~+V_k{SI;V`! zvAvr1^Wu(u8au-@QY+uzw&LXM+<$#eV0-RX#_hRVnf4T#8t5`GFz_)jG~5=rIy1$| z;xh+hoROZ9rJj+2HBd$zC?n*Y!TL-yG65koJx-ljlF?v#g*x+DCS%L(?i$Qztr$(W zizYMAXJj;;{xJI%WO=KZOJ)L9HHokYG6U%; u;w(3SW^B)uWLXR1OUtr&3$vQ)m84fq4>V$t+1_rz!pH@b=(J+FngRgpSURf! diff --git a/package.json b/package.json index 9f40c85..30fd484 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bb-component-SuperTable", - "version": "2.0.27-alpha", + "version": "2.0.28-alpha", "description": "A Fully Customizable Budibase Table Component", "author": "Michael Poirazi", "license": "MIT", @@ -18,10 +18,10 @@ "svelte-legos": "^0.2.3" }, "devDependencies": { - "@budibase/backend-core": "^2.29.25", - "@budibase/bbui": "^2.29.25", - "@budibase/frontend-core": "^2.29.25", - "@budibase/shared-core": "^2.29.25", + "@budibase/backend-core": "^2.29.27", + "@budibase/bbui": "^2.29.27", + "@budibase/frontend-core": "^2.29.27", + "@budibase/shared-core": "^2.29.27", "@rollup/plugin-commonjs": "^25.0.8", "@rollup/plugin-image": "^3.0.3", "@rollup/plugin-json": "^6.1.0", diff --git a/schema.json b/schema.json index bfb135a..0ca7ee3 100644 --- a/schema.json +++ b/schema.json @@ -64,6 +64,12 @@ "label": "Data Source", "required": true }, + { + "type": "boolean", + "key": "isTable", + "label": "Is Table", + "hidden": true + }, { "type": "field", "key": "idColumn", @@ -98,6 +104,13 @@ "key": "limit", "defaultValue": 50 }, + { + "type": "columns", + "key": "columnList", + "resetOn": "datasource", + "label": "Columns", + "nested": "true" + }, { "type": "boolean", "key": "fetchOnScroll", @@ -133,27 +146,9 @@ }, { "section": true, - "name": "Column Settings", + "name": "Table Features", + "collapsed": true, "settings": [ - { - "type": "columns", - "key": "columnList", - "resetOn": "datasource", - "label": "Columns", - "nested": "true" - }, - { - "type": "boolean", - "key": "autocolumns", - "label": "Auto Columns", - "defaultValue": false - }, - { - "type": "boolean", - "key": "jsoncolumns", - "label": "JSON Columns", - "defaultValue": false - }, { "type": "select", "key": "superColumnsPos", @@ -177,38 +172,6 @@ ], "defaultValue": "first" }, - { - "type": "boolean", - "key": "showHeader", - "label": "Column Headers", - "defaultValue": true - }, - { - "type": "boolean", - "key": "showFooter", - "label": "Column Footers", - "defaultValue": false - }, - { - "type": "boolean", - "key": "canResize", - "label": "Resize Columns", - "defaultValue": true - }, - { - "type": "boolean", - "key": "selectionColumn", - "label": "Selection Column", - "resetOn": "rowSelectMode", - "defaultValue": true - } - ] - }, - { - "section": true, - "name": "Table Settings", - "collapsed": true, - "settings": [ { "type": "select", "key": "rowSelectMode", @@ -276,18 +239,59 @@ }, { "type": "select", + "key": "canInsert", + "label": "Add Row", + "showInBar": true, + "barStyle": "buttons", + "barTitle": "Add Row", + "options": [ + { "label": "Off", "value": false, "barIcon": "Close" }, + { + "label": "Insert Inline", + "value": "simple", + "barIcon": "FlashAuto" + }, + { + "label": "Insert Custom", + "value": "advanced", + "barIcon": "Events" + } + ], + "defaultValue": false + }, + { + "type": "select", + "dependsOn": "isTable", "key": "canEdit", - "label": "Editing", + "label": "Edit Row", "showInBar": true, "barStyle": "buttons", "barTitle": "Editing", "options": [ { "label": "Off", "value": false, "barIcon": "Close" }, - { "label": "Simple", "value": "simple", "barIcon": "Edit" }, + { "label": "Simple", "value": "simple", "barIcon": "FlashAuto" }, + { + "label": "Advanced", + "value": "advanced", + "barIcon": "Events" + } + ], + "defaultValue": false + }, + { + "type": "select", + "key": "canDelete", + "label": "Delete Row", + "showInBar": true, + "barStyle": "buttons", + "barTitle": "Delete Row", + "options": [ + { "label": "Off", "value": false, "barIcon": "Close" }, + { "label": "Simple", "value": "simple", "barIcon": "FlashAuto" }, { "label": "Advanced", "value": "advanced", - "barIcon": "GearsEdit" + "barIcon": "Events" } ], "defaultValue": false @@ -305,36 +309,59 @@ ], "defaultValue": "horizontal" }, - { "type": "boolean", - "key": "canInsert", - "label": "Insert", - "defaultValue": false, + "key": "canSort", + "label": "Sort", + "defaultValue": true, "showInBar": true, "barStyle": "buttons", - "barIcon": "Add", - "barTitle": "Add New Row" + "barIcon": "SortOrderDown", + "barTitle": "Sortable" + } + ] + }, + { + "section": true, + "name": "Column Settings", + "collapsed": true, + "settings": [ + { + "type": "boolean", + "key": "autocolumns", + "label": "Auto Columns", + "defaultValue": false }, { "type": "boolean", - "key": "canDelete", - "label": "Delete", - "defaultValue": false, - "showInBar": true, - "barStyle": "buttons", - "barIcon": "Delete", - "barTitle": "Delete Rows" + "key": "jsoncolumns", + "label": "JSON Columns", + "defaultValue": false }, { "type": "boolean", - "key": "canSort", - "label": "Sort", - "defaultValue": true, - "showInBar": true, - "barStyle": "buttons", - "barIcon": "SortOrderDown", - "barTitle": "Sortable" + "key": "showHeader", + "label": "Column Headers", + "defaultValue": true + }, + { + "type": "boolean", + "key": "showFooter", + "label": "Column Footers", + "defaultValue": false + }, + { + "type": "boolean", + "key": "canResize", + "label": "Resize Columns", + "defaultValue": true + }, + { + "type": "boolean", + "key": "selectionColumn", + "label": "Selection Column", + "resetOn": "rowSelectMode", + "defaultValue": true } ] }, @@ -610,6 +637,11 @@ "type": "event", "label": "On Row Select", "key": "onRowSelect", + "dependsOn": { + "setting": "rowSelectMode", + "value": "off", + "invert": true + }, "context": [ { "label": "Selected Rows", @@ -644,6 +676,26 @@ "key": "value" } ] + }, + { + "type": "event", + "key": "onDelete", + "label": "On Delete", + "nested": true, + "dependsOn": "canDelete", + "context": [ + { + "label": "RowID", + "key": "rowID" + } + ] + }, + { + "type": "event", + "key": "onInsert", + "label": "On New Row", + "nested": true, + "dependsOn": "canInsert" } ] } diff --git a/src/Component.svelte b/src/Component.svelte index a553ca8..32ee774 100644 --- a/src/Component.svelte +++ b/src/Component.svelte @@ -2,10 +2,12 @@ import { getContext } from "svelte"; import SuperTable from "../../bb_super_components_shared/src/lib/SuperTable/SuperTable.svelte"; - const { styleable } = getContext("sdk"); + const { styleable, memo, builderStore } = getContext("sdk"); const component = getContext("component"); export let datasource; + export let isTable; + export let idColumn; export let sortColumn; export let sortOrder; @@ -25,6 +27,7 @@ export let showHeader; export let size; export let canInsert, canDelete, canEdit, canSort, canResize, canFilter; + export let deleteIconPosition = "left"; export let showFilterOperators; export let superColumnsPos; @@ -75,6 +78,17 @@ export let onCellChange; export let onRowClick; export let onRowDblClick; + export let onInsert; + export let onDelete; + + $: localIsTable = datasource?.type == "table" || datasource?.tableId; + $: if ( + $builderStore.inBuilder && + $component.selected && + isTable != localIsTable + ) { + builderStore.actions.updateProp("isTable", localIsTable); + }
@@ -99,6 +113,7 @@ {size} {canInsert} {canDelete} + {deleteIconPosition} {canEdit} {canSort} {canResize} @@ -148,6 +163,8 @@ {onCellChange} {onRowClick} {onRowDblClick} + {onInsert} + {onDelete} >