@medusajs/ui 4.0.22-snapshot-20250829134337 → 4.0.22-snapshot-20250901132949
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.d.ts +9 -0
- package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.d.ts.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.js +58 -0
- package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.js.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-filter-bar.d.ts +5 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter-bar.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter-bar.js +71 -9
- package/dist/cjs/blocks/data-table/components/data-table-filter-bar.js.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter-menu.d.ts +5 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter-menu.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter-menu.js +35 -7
- package/dist/cjs/blocks/data-table/components/data-table-filter-menu.js.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter.d.ts +4 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-filter.js +488 -73
- package/dist/cjs/blocks/data-table/components/data-table-filter.js.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts +9 -0
- package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.js +42 -0
- package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.js.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.d.ts +9 -0
- package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.d.ts.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.js +44 -0
- package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.js.map +1 -0
- package/dist/cjs/blocks/data-table/components/data-table-table.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-table.js +132 -4
- package/dist/cjs/blocks/data-table/components/data-table-table.js.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-toolbar.d.ts +12 -0
- package/dist/cjs/blocks/data-table/components/data-table-toolbar.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/components/data-table-toolbar.js +5 -2
- package/dist/cjs/blocks/data-table/components/data-table-toolbar.js.map +1 -1
- package/dist/cjs/blocks/data-table/context/data-table-context-provider.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/context/data-table-context-provider.js +5 -1
- package/dist/cjs/blocks/data-table/context/data-table-context-provider.js.map +1 -1
- package/dist/cjs/blocks/data-table/context/data-table-context.d.ts +2 -0
- package/dist/cjs/blocks/data-table/context/data-table-context.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/context/data-table-context.js.map +1 -1
- package/dist/cjs/blocks/data-table/data-table.d.ts +6 -1
- package/dist/cjs/blocks/data-table/data-table.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/data-table.js +4 -0
- package/dist/cjs/blocks/data-table/data-table.js.map +1 -1
- package/dist/cjs/blocks/data-table/index.d.ts +2 -1
- package/dist/cjs/blocks/data-table/index.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/index.js.map +1 -1
- package/dist/cjs/blocks/data-table/types.d.ts +75 -3
- package/dist/cjs/blocks/data-table/types.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/types.js.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.d.ts +21 -3
- package/dist/cjs/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/use-data-table.js +47 -7
- package/dist/cjs/blocks/data-table/use-data-table.js.map +1 -1
- package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.d.ts.map +1 -1
- package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.js +2 -1
- package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.js.map +1 -1
- package/dist/cjs/blocks/data-table/utils/create-data-table-filter-helper.d.ts +27 -0
- package/dist/cjs/blocks/data-table/utils/create-data-table-filter-helper.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.d.ts +9 -0
- package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.d.ts.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.js +54 -0
- package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.js.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-filter-bar.d.ts +5 -1
- package/dist/esm/blocks/data-table/components/data-table-filter-bar.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-filter-bar.js +71 -9
- package/dist/esm/blocks/data-table/components/data-table-filter-bar.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-filter-menu.d.ts +5 -1
- package/dist/esm/blocks/data-table/components/data-table-filter-menu.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-filter-menu.js +35 -7
- package/dist/esm/blocks/data-table/components/data-table-filter-menu.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-filter.d.ts +4 -1
- package/dist/esm/blocks/data-table/components/data-table-filter.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-filter.js +489 -74
- package/dist/esm/blocks/data-table/components/data-table-filter.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts +9 -0
- package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.js +38 -0
- package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.js.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.d.ts +9 -0
- package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.d.ts.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.js +40 -0
- package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.js.map +1 -0
- package/dist/esm/blocks/data-table/components/data-table-table.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-table.js +132 -4
- package/dist/esm/blocks/data-table/components/data-table-table.js.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-toolbar.d.ts +12 -0
- package/dist/esm/blocks/data-table/components/data-table-toolbar.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/components/data-table-toolbar.js +5 -2
- package/dist/esm/blocks/data-table/components/data-table-toolbar.js.map +1 -1
- package/dist/esm/blocks/data-table/context/data-table-context-provider.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/context/data-table-context-provider.js +5 -1
- package/dist/esm/blocks/data-table/context/data-table-context-provider.js.map +1 -1
- package/dist/esm/blocks/data-table/context/data-table-context.d.ts +2 -0
- package/dist/esm/blocks/data-table/context/data-table-context.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/context/data-table-context.js.map +1 -1
- package/dist/esm/blocks/data-table/data-table.d.ts +6 -1
- package/dist/esm/blocks/data-table/data-table.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/data-table.js +4 -0
- package/dist/esm/blocks/data-table/data-table.js.map +1 -1
- package/dist/esm/blocks/data-table/index.d.ts +2 -1
- package/dist/esm/blocks/data-table/index.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/index.js.map +1 -1
- package/dist/esm/blocks/data-table/types.d.ts +75 -3
- package/dist/esm/blocks/data-table/types.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/types.js.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.d.ts +21 -3
- package/dist/esm/blocks/data-table/use-data-table.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/use-data-table.js +47 -7
- package/dist/esm/blocks/data-table/use-data-table.js.map +1 -1
- package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.d.ts.map +1 -1
- package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.js +2 -1
- package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.js.map +1 -1
- package/dist/esm/blocks/data-table/utils/create-data-table-filter-helper.d.ts +27 -0
- package/dist/esm/blocks/data-table/utils/create-data-table-filter-helper.d.ts.map +1 -1
- package/package.json +6 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-table.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-table.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,qDAA8B;AAE9B,8CAA0C;AAC1C,uDAAkD;AAElD,+FAAwF;AACxF,oDAAgD;AAChD,4CAAwC;AACxC,qCAAiC;AACjC,oCAIiB;AACjB,uEAAgE;AAShE;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,4CAAmB,GAAE,CAAA;IAE1C,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAEpC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAA;IAExC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;IAEzD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;YAChD,mEAAmE;YACnE,MAAM,wBAAwB,GAAG,2BAA2B,EAAE,CAAA;YAE9D,IACE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG;gBAC/B,YAAY;gBACZ,CAAC,SAAS,CAAC,OAAO;gBAClB,CAAC,wBAAwB,EACzB,CAAC;gBACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;gBAExB,MAAM,GAAG,GAAG,QAAQ;qBACjB,WAAW,EAAE;qBACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;gBAElD,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC;oBAC9B,GAAG,CAAC,cAAc,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBACpC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;QAED,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;QACtD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAClD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YACzD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QACvD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE5B,MAAM,sBAAsB,GAAG,CAAC,CAAgC,EAAE,EAAE;QAClE,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,UAAU,CAAA;QAE7C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAA;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,MAAA,aAAa,CAAC,OAAO,0CAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IACpD,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,oBAAC,sBAAsB,IAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAI,CAAA;IAChE,CAAC;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,6CAA6C;QACzD,QAAQ,CAAC,UAAU,KAAK,2BAAmB,CAAC,SAAS,IAAI,CACxD,6BACE,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAC,8DAA8D;YAExE,oBAAC,aAAK,IAAC,SAAS,EAAC,yBAAyB;gBACxC,oBAAC,aAAK,CAAC,MAAM,IACX,SAAS,EAAC,sGAAsG,EAChH,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAEzC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAC/C,oBAAC,aAAK,CAAC,GAAG,IACR,GAAG,EAAE,WAAW,CAAC,EAAE,EACnB,SAAS,EAAE,IAAA,SAAG,EAAC,YAAY,EAAE;wBAC3B,kEAAkE,EAChE,UAAU;wBACZ,oEAAoE,EAClE,SAAS;qBACZ,CAAC,IAED,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;oBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;oBAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;oBACjD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAA;oBAE3D,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAA;oBAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAA;oBAC7C,MAAM,eAAe,GAAG,cAAc,IAAI,cAAc,CAAA;oBAExD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAA;oBAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;oBAEvD,OAAO,CACL,oBAAC,aAAK,CAAC,UAAU,IACf,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,SAAS,EAAE,IAAA,SAAG,EAAC,mBAAmB,EAAE;4BAClC,oFAAoF,EAClF,cAAc;4BAChB,iFAAiF,EAC/E,cAAc;4BAChB,8GAA8G,EAC5G,aAAa;4BACf,yBAAyB,EACvB,gBAAgB,IAAI,aAAa;4BACnC,wBAAwB,EACtB,aAAa,IAAI,cAAc;4BACjC,QAAQ,EACN,cAAc,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC;4BACjD,6BAA6B,EAC3B,aAAa,IAAI,SAAS;yBAC7B,CAAC,EACF,KAAK,EACH,CAAC,eAAe;4BACd,CAAC,CAAC;gCACE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;gCACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;gCACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;6BAC1C;4BACH,CAAC,CAAC,SAAS;wBAGf,oBAAC,OAAO,IACN,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAC1C,SAAS,EAAE,IAAA,SAAG,EACZ,oDAAoD,EACpD;gCACE,gBAAgB,EAAE,OAAO;6BAC1B,CACF;4BAEA,IAAA,wBAAU,EACT,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAC9B,MAAM,CAAC,UAAU,EAAE,CACpB;4BACA,OAAO,IAAI,CACV,oBAAC,8CAAoB,IAAC,SAAS,EAAE,aAAa,GAAI,CACnD,CACO,CACO,CACpB,CAAA;gBACH,CAAC,CAAC,CACQ,CACb,CAAC,CACW;gBACf,oBAAC,aAAK,CAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,IAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACvC,OAAO,CACL,oBAAC,aAAK,CAAC,GAAG,IACR,GAAG,EAAE,GAAG,CAAC,EAAE,EACX,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,EACnD,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,EACjD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,UAAU,yDAAG,CAAC,EAAE,GAAG,CAAC,CAAA,EAAA,EAC7C,SAAS,EAAE,IAAA,SAAG,EAAC,mCAAmC,EAAE;4BAClD,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU;yBACxC,CAAC,IAED,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;wBACvC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAA;wBAChD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAA;wBAChD,MAAM,aAAa,GAAG,YAAY,IAAI,YAAY,CAAA;wBAElD,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;wBAEvD,OAAO,CACL,oBAAC,aAAK,CAAC,IAAI,IACT,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,SAAS,EAAE,IAAA,SAAG,EACZ,0CAA0C,EAC1C;gCACE,oFAAoF,EAClF,YAAY;gCACd,iFAAiF,EAC/E,YAAY;gCACd,+EAA+E,EAC7E,aAAa,IAAI,YAAY;gCAC/B,8GAA8G,EAC5G,aAAa;gCACf,yBAAyB,EACvB,gBAAgB,IAAI,aAAa;gCACnC,QAAQ,EACN,YAAY,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC;gCAC/C,6BAA6B,EAC3B,aAAa,IAAI,SAAS;6BAC7B,CACF,EACD,KAAK,EACH,CAAC,aAAa;gCACZ,CAAC,CAAC;oCACE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;oCACjC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;oCACvC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;iCACxC;gCACH,CAAC,CAAC,SAAS,IAGd,IAAA,wBAAU,EACT,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAC1B,IAAI,CAAC,UAAU,EAAE,CAClB,CACU,CACd,CAAA;oBACH,CAAC,CAAC,CACQ,CACb,CAAA;gBACH,CAAC,CAAC,CACS,CACP,CACJ,CACP;QACD,oBAAC,0BAA0B,IACzB,KAAK,EAAE,QAAQ,CAAC,UAAU,EAC1B,KAAK,EAAE,KAAK,CAAC,UAAU,GACvB,CACE,CACP,CAAA;AACH,CAAC,CAAA;AA0EQ,wCAAc;AAzEvB,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAO9C,MAAM,wBAAwB,GAAG,CAAC,EAChC,OAAO,EACP,WAAW,GACgB,EAAE,EAAE,CAAC,CAChC,6BAAK,SAAS,EAAC,2DAA2D;IACxE,oBAAC,WAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,IAC5B,OAAO,CACH;IACP,oBAAC,WAAI,QAAE,WAAW,CAAQ,CACtB,CACP,CAAA;AAED,MAAM,0BAA0B,GAAG,CAAC,EAClC,KAAK,EACL,KAAK,GAC2B,EAAE,EAAE;;IACpC,IAAI,KAAK,KAAK,2BAAmB,CAAC,SAAS,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GACX,KAAK,KAAK,2BAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAA;IAEtE,OAAO,CACL,6BAAK,SAAS,EAAC,0FAA0F,IACtG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,CAClB,oBAAC,wBAAwB,IACvB,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EACzB,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,GACjC,CACH,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAMD,MAAM,sBAAsB,GAAG,CAAC,EAC9B,QAAQ,GAAG,EAAE,GACe,EAAE,EAAE;IAChC,OAAO,CACL,6BAAK,SAAS,EAAC,6CAA6C;QAC1D,6BAAK,SAAS,EAAC,gDAAgD;YAC7D,6BAAK,SAAS,EAAC,wBAAwB;gBACrC,oBAAC,mBAAQ,IAAC,SAAS,EAAC,aAAa,GAAG;gBACnC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1D,oBAAC,mBAAQ,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,0BAA0B,GAAG,CAC5D,CAAC,CACE,CACF,CACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,SAAS,2BAA2B;IAClC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,MAAM,wBAAwB,GAC5B,aAAa,YAAY,gBAAgB;QACzC,aAAa,YAAY,mBAAmB;QAC5C,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,CAAC,iBAAiB,CAAC,MAAK,MAAM,CAAA;IAE3D,OAAO,wBAAwB,CAAA;AACjC,CAAC","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Table } from \"@/components/table\"\nimport { flexRender } from \"@tanstack/react-table\"\n\nimport { useDataTableContext } from \"@/blocks/data-table/context/use-data-table-context\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport {\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n} from \"../types\"\nimport { DataTableSortingIcon } from \"./data-table-sorting-icon\"\n\ninterface DataTableTableProps {\n /**\n * The empty state to display when the table is empty.\n */\n emptyState?: DataTableEmptyStateProps\n}\n\n/**\n * This component renders the table in a data table, supporting advanced features.\n */\nconst DataTableTable = (props: DataTableTableProps) => {\n const hoveredRowId = React.useRef<string | null>(null)\n const isKeyDown = React.useRef(false)\n\n const [showStickyBorder, setShowStickyBorder] = React.useState(false)\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n\n const { instance } = useDataTableContext()\n\n const pageIndex = instance.pageIndex\n\n const columns = instance.getAllColumns()\n\n const hasSelect = columns.find((c) => c.id === \"select\")\n const hasActions = columns.find((c) => c.id === \"action\")\n\n React.useEffect(() => {\n const onKeyDownHandler = (event: KeyboardEvent) => {\n // If an editable element is focused, we don't want to select a row\n const isEditableElementFocused = getIsEditableElementFocused()\n\n if (\n event.key.toLowerCase() === \"x\" &&\n hoveredRowId &&\n !isKeyDown.current &&\n !isEditableElementFocused\n ) {\n isKeyDown.current = true\n\n const row = instance\n .getRowModel()\n .rows.find((r) => r.id === hoveredRowId.current)\n\n if (row && row.getCanSelect()) {\n row.toggleSelected()\n }\n }\n }\n\n const onKeyUpHandler = (event: KeyboardEvent) => {\n if (event.key.toLowerCase() === \"x\") {\n isKeyDown.current = false\n }\n }\n\n document.addEventListener(\"keydown\", onKeyDownHandler)\n document.addEventListener(\"keyup\", onKeyUpHandler)\n return () => {\n document.removeEventListener(\"keydown\", onKeyDownHandler)\n document.removeEventListener(\"keyup\", onKeyUpHandler)\n }\n }, [hoveredRowId, instance])\n\n const handleHorizontalScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const scrollLeft = e.currentTarget.scrollLeft\n\n if (scrollLeft > 0) {\n setShowStickyBorder(true)\n } else {\n setShowStickyBorder(false)\n }\n }\n\n React.useEffect(() => {\n scrollableRef.current?.scroll({ top: 0, left: 0 })\n }, [pageIndex])\n\n if (instance.showSkeleton) {\n return <DataTableTableSkeleton pageSize={instance.pageSize} />\n }\n\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n {instance.emptyState === DataTableEmptyState.POPULATED && (\n <div\n ref={scrollableRef}\n onScroll={handleHorizontalScroll}\n className=\"min-h-0 w-full flex-1 overflow-auto overscroll-none border-y\"\n >\n <Table className=\"relative isolate w-full\">\n <Table.Header\n className=\"shadow-ui-border-base sticky inset-x-0 top-0 z-[1] w-full border-b-0 border-t-0 shadow-[0_1px_1px_0]\"\n style={{ transform: \"translate3d(0,0,0)\" }}\n >\n {instance.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n key={headerGroup.id}\n className={clx(\"border-b-0\", {\n \"[&_th:last-of-type]:w-[1%] [&_th:last-of-type]:whitespace-nowrap\":\n hasActions,\n \"[&_th:first-of-type]:w-[1%] [&_th:first-of-type]:whitespace-nowrap\":\n hasSelect,\n })}\n >\n {headerGroup.headers.map((header, idx) => {\n const canSort = header.column.getCanSort()\n const sortDirection = header.column.getIsSorted()\n const sortHandler = header.column.getToggleSortingHandler()\n\n const isActionHeader = header.id === \"action\"\n const isSelectHeader = header.id === \"select\"\n const isSpecialHeader = isActionHeader || isSelectHeader\n\n const Wrapper = canSort ? \"button\" : \"div\"\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.HeaderCell\n key={header.id}\n className={clx(\"whitespace-nowrap\", {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectHeader,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionHeader,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"bg-ui-bg-subtle sticky\":\n isFirstColumn || isSelectHeader,\n \"left-0\":\n isSelectHeader || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n })}\n style={\n !isSpecialHeader\n ? {\n width: header.column.columnDef.size,\n maxWidth: header.column.columnDef.maxSize,\n minWidth: header.column.columnDef.minSize,\n }\n : undefined\n }\n >\n <Wrapper\n type={canSort ? \"button\" : undefined}\n onClick={canSort ? sortHandler : undefined}\n className={clx(\n \"group flex w-fit cursor-default items-center gap-2\",\n {\n \"cursor-pointer\": canSort,\n }\n )}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {canSort && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n </Wrapper>\n </Table.HeaderCell>\n )\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body className=\"border-b-0 border-t-0\">\n {instance.getRowModel().rows.map((row) => {\n return (\n <Table.Row\n key={row.id}\n onMouseEnter={() => (hoveredRowId.current = row.id)}\n onMouseLeave={() => (hoveredRowId.current = null)}\n onClick={(e) => instance.onRowClick?.(e, row)}\n className={clx(\"group/row last-of-type:border-b-0\", {\n \"cursor-pointer\": !!instance.onRowClick,\n })}\n >\n {row.getVisibleCells().map((cell, idx) => {\n const isSelectCell = cell.column.id === \"select\"\n const isActionCell = cell.column.id === \"action\"\n const isSpecialCell = isSelectCell || isActionCell\n\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.Cell\n key={cell.id}\n className={clx(\n \"items-stretch truncate whitespace-nowrap\",\n {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectCell,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionCell,\n \"bg-ui-bg-base group-hover/row:bg-ui-bg-base-hover transition-fg sticky h-full\":\n isFirstColumn || isSelectCell,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"left-0\":\n isSelectCell || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n }\n )}\n style={\n !isSpecialCell\n ? {\n width: cell.column.columnDef.size,\n maxWidth: cell.column.columnDef.maxSize,\n minWidth: cell.column.columnDef.minSize,\n }\n : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </Table.Cell>\n )\n })}\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </div>\n )}\n <DataTableEmptyStateDisplay\n state={instance.emptyState}\n props={props.emptyState}\n />\n </div>\n )\n}\nDataTableTable.displayName = \"DataTable.Table\"\n\ninterface DataTableEmptyStateDisplayProps {\n state: DataTableEmptyState\n props?: DataTableEmptyStateProps\n}\n\nconst DefaultEmptyStateContent = ({\n heading,\n description,\n}: DataTableEmptyStateContent) => (\n <div className=\"flex size-full flex-col items-center justify-center gap-2\">\n <Text size=\"base\" weight=\"plus\">\n {heading}\n </Text>\n <Text>{description}</Text>\n </div>\n)\n\nconst DataTableEmptyStateDisplay = ({\n state,\n props,\n}: DataTableEmptyStateDisplayProps) => {\n if (state === DataTableEmptyState.POPULATED) {\n return null\n }\n\n const content =\n state === DataTableEmptyState.EMPTY ? props?.empty : props?.filtered\n\n return (\n <div className=\"flex min-h-[250px] w-full flex-1 flex-col items-center justify-center border-y px-6 py-4\">\n {content?.custom ?? (\n <DefaultEmptyStateContent\n heading={content?.heading}\n description={content?.description}\n />\n )}\n </div>\n )\n}\n\ninterface DataTableTableSkeletonProps {\n pageSize?: number\n}\n\nconst DataTableTableSkeleton = ({\n pageSize = 10,\n}: DataTableTableSkeletonProps) => {\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n <div className=\"min-h-0 w-full flex-1 overscroll-none border-y\">\n <div className=\"flex flex-col divide-y\">\n <Skeleton className=\"h-12 w-full\" />\n {Array.from({ length: pageSize }, (_, i) => i).map((row) => (\n <Skeleton key={row} className=\"h-12 w-full rounded-none\" />\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getIsEditableElementFocused() {\n const activeElement = !!document ? document.activeElement : null\n const isEditableElementFocused =\n activeElement instanceof HTMLInputElement ||\n activeElement instanceof HTMLTextAreaElement ||\n activeElement?.getAttribute(\"contenteditable\") === \"true\"\n\n return isEditableElementFocused\n}\n\nexport { DataTableTable }\nexport type { DataTableEmptyStateProps, DataTableTableProps }\n"]}
|
1
|
+
{"version":3,"file":"data-table-table.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-table.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Table } from \"@/components/table\"\nimport { flexRender } from \"@tanstack/react-table\"\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n DragEndEvent,\n DragStartEvent,\n} from \"@dnd-kit/core\"\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n horizontalListSortingStrategy,\n} from \"@dnd-kit/sortable\"\n\nimport { useDataTableContext } from \"@/blocks/data-table/context/use-data-table-context\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport {\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n} from \"../types\"\nimport { DataTableSortingIcon } from \"./data-table-sorting-icon\"\nimport { DataTableSortableHeaderCell } from \"./data-table-sortable-header-cell\"\nimport { DataTableNonSortableHeaderCell } from \"./data-table-non-sortable-header-cell\"\n\ninterface DataTableTableProps {\n /**\n * The empty state to display when the table is empty.\n */\n emptyState?: DataTableEmptyStateProps\n}\n\n/**\n * This component renders the table in a data table, supporting advanced features.\n */\nconst DataTableTable = (props: DataTableTableProps) => {\n const hoveredRowId = React.useRef<string | null>(null)\n const isKeyDown = React.useRef(false)\n\n const [showStickyBorder, setShowStickyBorder] = React.useState(false)\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n\n const { instance } = useDataTableContext()\n\n const pageIndex = instance.pageIndex\n\n const columns = instance.getAllColumns()\n\n const hasSelect = columns.find((c) => c.id === \"select\")\n const hasActions = columns.find((c) => c.id === \"action\")\n\n // Create list of all column IDs for SortableContext\n // Use current order if available, otherwise use default order\n const sortableItems = React.useMemo(() => {\n if (instance.columnOrder && instance.columnOrder.length > 0) {\n return instance.columnOrder\n }\n return columns.map(col => col.id)\n }, [columns, instance.columnOrder])\n\n // Setup drag-and-drop sensors\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 8,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n\n if (active.id !== over?.id && over?.id) {\n const activeId = active.id as string\n const overId = over.id as string\n\n // Don't allow dragging fixed columns\n if (activeId === \"select\" || activeId === \"action\") {\n return\n }\n\n // Don't allow dropping on fixed columns\n if (overId === \"select\" || overId === \"action\") {\n return\n }\n\n // Use the current column order from the instance\n const currentOrder = instance.columnOrder && instance.columnOrder.length > 0\n ? instance.columnOrder\n : columns.map(col => col.id)\n\n const oldIndex = currentOrder.indexOf(activeId)\n const newIndex = currentOrder.indexOf(overId)\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const newOrder = arrayMove(currentOrder, oldIndex, newIndex)\n instance.setColumnOrderFromArray(newOrder)\n }\n }\n }\n\n React.useEffect(() => {\n const onKeyDownHandler = (event: KeyboardEvent) => {\n // If an editable element is focused, we don't want to select a row\n const isEditableElementFocused = getIsEditableElementFocused()\n\n if (\n event.key.toLowerCase() === \"x\" &&\n hoveredRowId &&\n !isKeyDown.current &&\n !isEditableElementFocused\n ) {\n isKeyDown.current = true\n\n const row = instance\n .getRowModel()\n .rows.find((r) => r.id === hoveredRowId.current)\n\n if (row && row.getCanSelect()) {\n row.toggleSelected()\n }\n }\n }\n\n const onKeyUpHandler = (event: KeyboardEvent) => {\n if (event.key.toLowerCase() === \"x\") {\n isKeyDown.current = false\n }\n }\n\n document.addEventListener(\"keydown\", onKeyDownHandler)\n document.addEventListener(\"keyup\", onKeyUpHandler)\n return () => {\n document.removeEventListener(\"keydown\", onKeyDownHandler)\n document.removeEventListener(\"keyup\", onKeyUpHandler)\n }\n }, [hoveredRowId, instance])\n\n const handleHorizontalScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const scrollLeft = e.currentTarget.scrollLeft\n\n if (scrollLeft > 0) {\n setShowStickyBorder(true)\n } else {\n setShowStickyBorder(false)\n }\n }\n\n React.useEffect(() => {\n scrollableRef.current?.scroll({ top: 0, left: 0 })\n }, [pageIndex])\n\n if (instance.showSkeleton) {\n return <DataTableTableSkeleton pageSize={instance.pageSize} />\n }\n\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n {instance.emptyState === DataTableEmptyState.POPULATED && (\n instance.enableColumnOrder ? (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <div\n ref={scrollableRef}\n onScroll={handleHorizontalScroll}\n className=\"min-h-0 w-full flex-1 overflow-auto overscroll-none border-y\"\n >\n <Table className=\"relative isolate w-full\">\n <Table.Header\n className=\"shadow-ui-border-base sticky inset-x-0 top-0 z-[1] w-full border-b-0 border-t-0 shadow-[0_1px_1px_0]\"\n style={{ transform: \"translate3d(0,0,0)\" }}\n >\n {instance.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n key={headerGroup.id}\n className={clx(\"border-b-0\", {\n \"[&_th:last-of-type]:w-[1%] [&_th:last-of-type]:whitespace-nowrap\":\n hasActions,\n \"[&_th:first-of-type]:w-[1%] [&_th:first-of-type]:whitespace-nowrap\":\n hasSelect,\n })}\n >\n <SortableContext\n items={sortableItems}\n strategy={horizontalListSortingStrategy}\n >\n {headerGroup.headers.map((header, idx) => {\n const canSort = header.column.getCanSort()\n const sortDirection = header.column.getIsSorted()\n const sortHandler = header.column.getToggleSortingHandler()\n\n const isActionHeader = header.id === \"action\"\n const isSelectHeader = header.id === \"select\"\n const isSpecialHeader = isActionHeader || isSelectHeader\n const isDraggable = !isSpecialHeader\n\n const Wrapper = canSort ? \"button\" : \"div\"\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n // Get header alignment from column metadata\n const headerAlign = (header.column.columnDef.meta as any)?.___alignMetaData?.headerAlign || 'left'\n const isRightAligned = headerAlign === 'right'\n const isCenterAligned = headerAlign === 'center'\n\n const HeaderCellComponent = isDraggable ? DataTableSortableHeaderCell : DataTableNonSortableHeaderCell\n\n return (\n <HeaderCellComponent\n key={header.id}\n id={header.id}\n isFirstColumn={isFirstColumn}\n className={clx(\"whitespace-nowrap\", {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectHeader,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionHeader,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"bg-ui-bg-subtle sticky\":\n isFirstColumn || isSelectHeader,\n \"left-0\":\n isSelectHeader || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n })}\n style={\n !isSpecialHeader\n ? {\n width: header.column.columnDef.size,\n maxWidth: header.column.columnDef.maxSize,\n minWidth: header.column.columnDef.minSize,\n }\n : undefined\n }\n >\n <Wrapper\n type={canSort ? \"button\" : undefined}\n onClick={canSort ? sortHandler : undefined}\n onMouseDown={canSort ? (e) => e.stopPropagation() : undefined}\n className={clx(\n \"group flex cursor-default items-center gap-2\",\n {\n \"cursor-pointer\": canSort,\n \"w-full\": isRightAligned || isCenterAligned,\n \"w-fit\": !isRightAligned && !isCenterAligned,\n \"justify-end\": isRightAligned,\n \"justify-center\": isCenterAligned,\n }\n )}\n >\n {canSort && isRightAligned && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {canSort && !isRightAligned && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n </Wrapper>\n </HeaderCellComponent>\n )\n })}\n </SortableContext>\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body className=\"border-b-0 border-t-0\">\n {instance.getRowModel().rows.map((row) => {\n return (\n <Table.Row\n key={row.id}\n onMouseEnter={() => (hoveredRowId.current = row.id)}\n onMouseLeave={() => (hoveredRowId.current = null)}\n onClick={(e) => instance.onRowClick?.(e, row)}\n className={clx(\"group/row last-of-type:border-b-0\", {\n \"cursor-pointer\": !!instance.onRowClick,\n })}\n >\n {row.getVisibleCells().map((cell, idx) => {\n const isSelectCell = cell.column.id === \"select\"\n const isActionCell = cell.column.id === \"action\"\n const isSpecialCell = isSelectCell || isActionCell\n\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.Cell\n key={cell.id}\n className={clx(\n \"items-stretch truncate whitespace-nowrap\",\n {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectCell,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionCell,\n \"bg-ui-bg-base group-hover/row:bg-ui-bg-base-hover transition-fg sticky h-full\":\n isFirstColumn || isSelectCell,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"left-0\":\n isSelectCell || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n }\n )}\n style={\n !isSpecialCell\n ? {\n width: cell.column.columnDef.size,\n maxWidth: cell.column.columnDef.maxSize,\n minWidth: cell.column.columnDef.minSize,\n }\n : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </Table.Cell>\n )\n })}\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </div>\n </DndContext>\n ) : (\n <div\n ref={scrollableRef}\n onScroll={handleHorizontalScroll}\n className=\"min-h-0 w-full flex-1 overflow-auto overscroll-none border-y\"\n >\n <Table className=\"relative isolate w-full\">\n <Table.Header\n className=\"shadow-ui-border-base sticky inset-x-0 top-0 z-[1] w-full border-b-0 border-t-0 shadow-[0_1px_1px_0]\"\n style={{ transform: \"translate3d(0,0,0)\" }}\n >\n {instance.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n key={headerGroup.id}\n className={clx(\"border-b-0\", {\n \"[&_th:last-of-type]:w-[1%] [&_th:last-of-type]:whitespace-nowrap\":\n hasActions,\n \"[&_th:first-of-type]:w-[1%] [&_th:first-of-type]:whitespace-nowrap\":\n hasSelect,\n })}\n >\n {headerGroup.headers.map((header, idx) => {\n const canSort = header.column.getCanSort()\n const sortDirection = header.column.getIsSorted()\n const sortHandler = header.column.getToggleSortingHandler()\n\n const isActionHeader = header.id === \"action\"\n const isSelectHeader = header.id === \"select\"\n const isSpecialHeader = isActionHeader || isSelectHeader\n\n const Wrapper = canSort ? \"button\" : \"div\"\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n // Get header alignment from column metadata\n const headerAlign = (header.column.columnDef.meta as any)?.___alignMetaData?.headerAlign || 'left'\n const isRightAligned = headerAlign === 'right'\n const isCenterAligned = headerAlign === 'center'\n\n return (\n <Table.HeaderCell\n key={header.id}\n className={clx(\"whitespace-nowrap\", {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectHeader,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionHeader,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"bg-ui-bg-subtle sticky\":\n isFirstColumn || isSelectHeader,\n \"left-0\":\n isSelectHeader || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n })}\n style={\n !isSpecialHeader\n ? {\n width: header.column.columnDef.size,\n maxWidth: header.column.columnDef.maxSize,\n minWidth: header.column.columnDef.minSize,\n }\n : undefined\n }\n >\n <Wrapper\n type={canSort ? \"button\" : undefined}\n onClick={canSort ? sortHandler : undefined}\n onMouseDown={canSort ? (e) => e.stopPropagation() : undefined}\n className={clx(\n \"group flex cursor-default items-center gap-2\",\n {\n \"cursor-pointer\": canSort,\n \"w-full\": isRightAligned || isCenterAligned,\n \"w-fit\": !isRightAligned && !isCenterAligned,\n \"justify-end\": isRightAligned,\n \"justify-center\": isCenterAligned,\n }\n )}\n >\n {canSort && isRightAligned && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {canSort && !isRightAligned && (\n <DataTableSortingIcon direction={sortDirection} />\n )}\n </Wrapper>\n </Table.HeaderCell>\n )\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body className=\"border-b-0 border-t-0\">\n {instance.getRowModel().rows.map((row) => {\n return (\n <Table.Row\n key={row.id}\n onMouseEnter={() => (hoveredRowId.current = row.id)}\n onMouseLeave={() => (hoveredRowId.current = null)}\n onClick={(e) => instance.onRowClick?.(e, row)}\n className={clx(\"group/row last-of-type:border-b-0\", {\n \"cursor-pointer\": !!instance.onRowClick,\n })}\n >\n {row.getVisibleCells().map((cell, idx) => {\n const isSelectCell = cell.column.id === \"select\"\n const isActionCell = cell.column.id === \"action\"\n const isSpecialCell = isSelectCell || isActionCell\n\n const isFirstColumn = hasSelect ? idx === 1 : idx === 0\n\n return (\n <Table.Cell\n key={cell.id}\n className={clx(\n \"items-stretch truncate whitespace-nowrap\",\n {\n \"w-[calc(20px+24px+24px)] min-w-[calc(20px+24px+24px)] max-w-[calc(20px+24px+24px)]\":\n isSelectCell,\n \"w-[calc(28px+24px+4px)] min-w-[calc(28px+24px+4px)] max-w-[calc(28px+24px+4px)]\":\n isActionCell,\n \"bg-ui-bg-base group-hover/row:bg-ui-bg-base-hover transition-fg sticky h-full\":\n isFirstColumn || isSelectCell,\n \"after:absolute after:inset-y-0 after:right-0 after:h-full after:w-px after:bg-transparent after:content-['']\":\n isFirstColumn,\n \"after:bg-ui-border-base\":\n showStickyBorder && isFirstColumn,\n \"left-0\":\n isSelectCell || (isFirstColumn && !hasSelect),\n \"left-[calc(20px+24px+24px)]\":\n isFirstColumn && hasSelect,\n }\n )}\n style={\n !isSpecialCell\n ? {\n width: cell.column.columnDef.size,\n maxWidth: cell.column.columnDef.maxSize,\n minWidth: cell.column.columnDef.minSize,\n }\n : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </Table.Cell>\n )\n })}\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </div>\n )\n )}\n <DataTableEmptyStateDisplay\n state={instance.emptyState}\n props={props.emptyState}\n />\n </div>\n )\n}\nDataTableTable.displayName = \"DataTable.Table\"\n\ninterface DataTableEmptyStateDisplayProps {\n state: DataTableEmptyState\n props?: DataTableEmptyStateProps\n}\n\nconst DefaultEmptyStateContent = ({\n heading,\n description,\n}: DataTableEmptyStateContent) => (\n <div className=\"flex size-full flex-col items-center justify-center gap-2\">\n <Text size=\"base\" weight=\"plus\">\n {heading}\n </Text>\n <Text>{description}</Text>\n </div>\n)\n\nconst DataTableEmptyStateDisplay = ({\n state,\n props,\n}: DataTableEmptyStateDisplayProps) => {\n if (state === DataTableEmptyState.POPULATED) {\n return null\n }\n\n const content =\n state === DataTableEmptyState.EMPTY ? props?.empty : props?.filtered\n\n return (\n <div className=\"flex min-h-[250px] w-full flex-1 flex-col items-center justify-center border-y px-6 py-4\">\n {content?.custom ?? (\n <DefaultEmptyStateContent\n heading={content?.heading}\n description={content?.description}\n />\n )}\n </div>\n )\n}\n\ninterface DataTableTableSkeletonProps {\n pageSize?: number\n}\n\nconst DataTableTableSkeleton = ({\n pageSize = 10,\n}: DataTableTableSkeletonProps) => {\n return (\n <div className=\"flex w-full flex-1 flex-col overflow-hidden\">\n <div className=\"min-h-0 w-full flex-1 overscroll-none border-y\">\n <div className=\"flex flex-col divide-y\">\n <Skeleton className=\"h-12 w-full\" />\n {Array.from({ length: pageSize }, (_, i) => i).map((row) => (\n <Skeleton key={row} className=\"h-12 w-full rounded-none\" />\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getIsEditableElementFocused() {\n const activeElement = !!document ? document.activeElement : null\n const isEditableElementFocused =\n activeElement instanceof HTMLInputElement ||\n activeElement instanceof HTMLTextAreaElement ||\n activeElement?.getAttribute(\"contenteditable\") === \"true\"\n\n return isEditableElementFocused\n}\n\nexport { DataTableTable }\nexport type { DataTableEmptyStateProps, DataTableTableProps }\n"]}
|
@@ -5,6 +5,14 @@ interface DataTableToolbarTranslations {
|
|
5
5
|
* @default "Clear all"
|
6
6
|
*/
|
7
7
|
clearAll?: string;
|
8
|
+
/**
|
9
|
+
* The tooltip for the sorting menu
|
10
|
+
*/
|
11
|
+
sort?: string;
|
12
|
+
/**
|
13
|
+
* The tooltip for the columns menu
|
14
|
+
*/
|
15
|
+
columns?: string;
|
8
16
|
}
|
9
17
|
interface DataTableToolbarProps {
|
10
18
|
/**
|
@@ -19,6 +27,10 @@ interface DataTableToolbarProps {
|
|
19
27
|
* The translations of strings in the toolbar.
|
20
28
|
*/
|
21
29
|
translations?: DataTableToolbarTranslations;
|
30
|
+
/**
|
31
|
+
* Custom content to render in the filter bar
|
32
|
+
*/
|
33
|
+
filterBarContent?: React.ReactNode;
|
22
34
|
}
|
23
35
|
/**
|
24
36
|
* Toolbar shown for the data table.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-toolbar.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"data-table-toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,4BAA4B;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,qBAAqB;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,4BAA4B,CAAA;IAC3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,UAAW,qBAAqB,sBAmBrD,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,YAAY,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,CAAA"}
|
@@ -3,16 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DataTableToolbar = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const data_table_filter_bar_1 = require("../../data-table/components/data-table-filter-bar");
|
6
|
+
const use_data_table_context_1 = require("../../data-table/context/use-data-table-context");
|
6
7
|
const clx_1 = require("../../../utils/clx");
|
7
8
|
const React = tslib_1.__importStar(require("react"));
|
8
9
|
/**
|
9
10
|
* Toolbar shown for the data table.
|
10
11
|
*/
|
11
12
|
const DataTableToolbar = (props) => {
|
12
|
-
var _a;
|
13
|
+
var _a, _b, _c;
|
14
|
+
const { instance } = (0, use_data_table_context_1.useDataTableContext)();
|
15
|
+
const hasFilters = instance.getFilters().length > 0;
|
13
16
|
return (React.createElement("div", { className: "flex flex-col divide-y" },
|
14
17
|
React.createElement("div", { className: (0, clx_1.clx)("flex items-center px-6 py-4", props.className) }, props.children),
|
15
|
-
React.createElement(data_table_filter_bar_1.DataTableFilterBar, { clearAllFiltersLabel: (_a = props.translations) === null || _a === void 0 ? void 0 : _a.clearAll })));
|
18
|
+
React.createElement(data_table_filter_bar_1.DataTableFilterBar, { clearAllFiltersLabel: (_a = props.translations) === null || _a === void 0 ? void 0 : _a.clearAll, alwaysShow: hasFilters, sortingTooltip: (_b = props.translations) === null || _b === void 0 ? void 0 : _b.sort, columnsTooltip: (_c = props.translations) === null || _c === void 0 ? void 0 : _c.columns }, props.filterBarContent)));
|
16
19
|
};
|
17
20
|
exports.DataTableToolbar = DataTableToolbar;
|
18
21
|
//# sourceMappingURL=data-table-toolbar.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-toolbar.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-toolbar.tsx"],"names":[],"mappings":";;;;AAAA,gGAAyF;AACzF,qCAAiC;AACjC,qDAA8B;
|
1
|
+
{"version":3,"file":"data-table-toolbar.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/components/data-table-toolbar.tsx"],"names":[],"mappings":";;;;AAAA,gGAAyF;AACzF,+FAAwF;AACxF,qCAAiC;AACjC,qDAA8B;AAqC9B;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;;IACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,4CAAmB,GAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAEnD,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB;QACrC,6BAAK,SAAS,EAAE,IAAA,SAAG,EAAC,6BAA6B,EAAE,KAAK,CAAC,SAAS,CAAC,IAChE,KAAK,CAAC,QAAQ,CACX;QACN,oBAAC,0CAAkB,IACjB,oBAAoB,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,QAAQ,EAClD,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,IAAI,EACxC,cAAc,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,OAAO,IAE1C,KAAK,CAAC,gBAAgB,CACJ,CACjB,CACP,CAAA;AACH,CAAC,CAAA;AAEQ,4CAAgB","sourcesContent":["import { DataTableFilterBar } from \"@/blocks/data-table/components/data-table-filter-bar\"\nimport { useDataTableContext } from \"@/blocks/data-table/context/use-data-table-context\"\nimport { clx } from \"@/utils/clx\"\nimport * as React from \"react\"\n\ninterface DataTableToolbarTranslations {\n /**\n * The label for the clear all filters button\n * @default \"Clear all\"\n */\n clearAll?: string\n /**\n * The tooltip for the sorting menu\n */\n sort?: string\n /**\n * The tooltip for the columns menu \n */\n columns?: string\n}\n\ninterface DataTableToolbarProps {\n /**\n * Additional classes to pass to the wrapper `div` of the component.\n */\n className?: string\n /**\n * The children to show in the toolbar.\n */\n children?: React.ReactNode\n /**\n * The translations of strings in the toolbar.\n */\n translations?: DataTableToolbarTranslations\n /**\n * Custom content to render in the filter bar\n */\n filterBarContent?: React.ReactNode\n}\n\n/**\n * Toolbar shown for the data table.\n */\nconst DataTableToolbar = (props: DataTableToolbarProps) => {\n const { instance } = useDataTableContext()\n const hasFilters = instance.getFilters().length > 0\n\n return (\n <div className=\"flex flex-col divide-y\">\n <div className={clx(\"flex items-center px-6 py-4\", props.className)}>\n {props.children}\n </div>\n <DataTableFilterBar\n clearAllFiltersLabel={props.translations?.clearAll}\n alwaysShow={hasFilters}\n sortingTooltip={props.translations?.sort}\n columnsTooltip={props.translations?.columns}\n >\n {props.filterBarContent}\n </DataTableFilterBar>\n </div>\n )\n}\n\nexport { DataTableToolbar }\nexport type { DataTableToolbarProps, DataTableToolbarTranslations }\n\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-context-provider.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGtD,KAAK,6BAA6B,CAAC,KAAK,IAAI;IAC1C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,QAAA,MAAM,wBAAwB,mCAG3B,8BAA8B,KAAK,CAAC,
|
1
|
+
{"version":3,"file":"data-table-context-provider.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGtD,KAAK,6BAA6B,CAAC,KAAK,IAAI;IAC1C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,QAAA,MAAM,wBAAwB,mCAG3B,8BAA8B,KAAK,CAAC,sBAYtC,CAAA;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
|
@@ -6,7 +6,11 @@ const tslib_1 = require("tslib");
|
|
6
6
|
const React = tslib_1.__importStar(require("react"));
|
7
7
|
const data_table_context_1 = require("./data-table-context");
|
8
8
|
const DataTableContextProvider = ({ instance, children, }) => {
|
9
|
-
return (React.createElement(data_table_context_1.DataTableContext.Provider, { value: {
|
9
|
+
return (React.createElement(data_table_context_1.DataTableContext.Provider, { value: {
|
10
|
+
instance,
|
11
|
+
enableColumnVisibility: instance.enableColumnVisibility,
|
12
|
+
enableColumnOrder: instance.enableColumnOrder
|
13
|
+
} }, children));
|
10
14
|
};
|
11
15
|
exports.DataTableContextProvider = DataTableContextProvider;
|
12
16
|
//# sourceMappingURL=data-table-context-provider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-context-provider.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,qDAA8B;AAG9B,6DAAuD;AAOvD,MAAM,wBAAwB,GAAG,CAAS,EACxC,QAAQ,EACR,QAAQ,GAC6B,EAAE,EAAE;IACzC,OAAO,CACL,oBAAC,qCAAgB,CAAC,QAAQ,
|
1
|
+
{"version":3,"file":"data-table-context-provider.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,qDAA8B;AAG9B,6DAAuD;AAOvD,MAAM,wBAAwB,GAAG,CAAS,EACxC,QAAQ,EACR,QAAQ,GAC6B,EAAE,EAAE;IACzC,OAAO,CACL,oBAAC,qCAAgB,CAAC,QAAQ,IACxB,KAAK,EAAE;YACL,QAAQ;YACR,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;SAC9C,IAEA,QAAQ,CACiB,CAC7B,CAAA;AACH,CAAC,CAAA;AAEQ,4DAAwB","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { UseDataTableReturn } from \"../use-data-table\"\nimport { DataTableContext } from \"./data-table-context\"\n\ntype DataTableContextProviderProps<TData> = {\n instance: UseDataTableReturn<TData>\n children: React.ReactNode\n}\n\nconst DataTableContextProvider = <TData,>({\n instance,\n children,\n}: DataTableContextProviderProps<TData>) => {\n return (\n <DataTableContext.Provider \n value={{ \n instance,\n enableColumnVisibility: instance.enableColumnVisibility,\n enableColumnOrder: instance.enableColumnOrder\n }}\n >\n {children}\n </DataTableContext.Provider>\n )\n}\n\nexport { DataTableContextProvider }\n"]}
|
@@ -2,6 +2,8 @@
|
|
2
2
|
import { UseDataTableReturn } from "../use-data-table";
|
3
3
|
export interface DataTableContextValue<TData> {
|
4
4
|
instance: UseDataTableReturn<TData>;
|
5
|
+
enableColumnVisibility: boolean;
|
6
|
+
enableColumnOrder: boolean;
|
5
7
|
}
|
6
8
|
export declare const DataTableContext: import("react").Context<DataTableContextValue<any> | null>;
|
7
9
|
//# sourceMappingURL=data-table-context.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-context.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"data-table-context.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACnC,sBAAsB,EAAE,OAAO,CAAA;IAC/B,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,gBAAgB,4DAC2B,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table-context.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context.tsx"],"names":[],"mappings":";;;AAAA,iCAAqC;
|
1
|
+
{"version":3,"file":"data-table-context.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/context/data-table-context.tsx"],"names":[],"mappings":";;;AAAA,iCAAqC;AASxB,QAAA,gBAAgB,GAC3B,IAAA,qBAAa,EAAoC,IAAI,CAAC,CAAA","sourcesContent":["import { createContext } from \"react\"\nimport { UseDataTableReturn } from \"../use-data-table\"\n\nexport interface DataTableContextValue<TData> {\n instance: UseDataTableReturn<TData>\n enableColumnVisibility: boolean\n enableColumnOrder: boolean\n}\n\nexport const DataTableContext =\n createContext<DataTableContextValue<any> | null>(null)\n"]}
|
@@ -35,9 +35,14 @@ declare const DataTable: {
|
|
35
35
|
displayName: string;
|
36
36
|
};
|
37
37
|
FilterMenu: {
|
38
|
-
(
|
38
|
+
({ tooltip, onAddFilter }: import("./components/data-table-filter-menu").DataTableFilterMenuProps): React.JSX.Element;
|
39
39
|
displayName: string;
|
40
40
|
};
|
41
|
+
FilterBar: {
|
42
|
+
({ clearAllFiltersLabel, alwaysShow, sortingTooltip, columnsTooltip, children, }: import("./components/data-table-filter-bar").DataTableFilterBarProps): React.JSX.Element | null;
|
43
|
+
displayName: string;
|
44
|
+
};
|
45
|
+
ColumnVisibilityMenu: ({ className, tooltip, }: import("./components/data-table-column-visibility-menu").DataTableColumnVisibilityMenuProps) => React.JSX.Element | null;
|
41
46
|
Pagination: {
|
42
47
|
(props: import("./components/data-table-pagination").DataTablePaginationProps): React.JSX.Element;
|
43
48
|
displayName: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD;;GAEG;AACH,UAAU,cAAc,CAAC,KAAK;IAC5B;;OAEG;IACH,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAsBD,QAAA,MAAM,SAAS;gDAXZ,eAAe,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBtB,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB,YAAY,EAAE,cAAc,EAAE,CAAA"}
|
@@ -6,6 +6,8 @@ const tslib_1 = require("tslib");
|
|
6
6
|
const React = tslib_1.__importStar(require("react"));
|
7
7
|
const clx_1 = require("../../utils/clx");
|
8
8
|
const data_table_command_bar_1 = require("./components/data-table-command-bar");
|
9
|
+
const data_table_column_visibility_menu_1 = require("./components/data-table-column-visibility-menu");
|
10
|
+
const data_table_filter_bar_1 = require("./components/data-table-filter-bar");
|
9
11
|
const data_table_filter_menu_1 = require("./components/data-table-filter-menu");
|
10
12
|
const data_table_pagination_1 = require("./components/data-table-pagination");
|
11
13
|
const data_table_search_1 = require("./components/data-table-search");
|
@@ -29,6 +31,8 @@ const DataTable = Object.assign(Root, {
|
|
29
31
|
Search: data_table_search_1.DataTableSearch,
|
30
32
|
SortingMenu: data_table_sorting_menu_1.DataTableSortingMenu,
|
31
33
|
FilterMenu: data_table_filter_menu_1.DataTableFilterMenu,
|
34
|
+
FilterBar: data_table_filter_bar_1.DataTableFilterBar,
|
35
|
+
ColumnVisibilityMenu: data_table_column_visibility_menu_1.DataTableColumnVisibilityMenu,
|
32
36
|
Pagination: data_table_pagination_1.DataTablePagination,
|
33
37
|
CommandBar: data_table_command_bar_1.DataTableCommandBar,
|
34
38
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/data-table.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,qDAA8B;AAE9B,qCAAiC;AAEjC,gFAAyE;AACzE,gFAAyE;AACzE,8EAAwE;AACxE,sEAAgE;AAChE,kFAA2E;AAC3E,oEAA8D;AAC9D,wEAAkE;AAClE,uFAAgF;AAqBhF;;;;GAIG;AACH,MAAM,IAAI,GAAG,CAAS,EACpB,QAAQ,EACR,QAAQ,EACR,SAAS,GACa,EAAE,EAAE;IAC1B,OAAO,CACL,oBAAC,sDAAwB,IAAC,QAAQ,EAAE,QAAQ;QAC1C,6BAAK,SAAS,EAAE,IAAA,SAAG,EAAC,uCAAuC,EAAE,SAAS,CAAC,IACpE,QAAQ,CACL,CACmB,CAC5B,CAAA;AACH,CAAC,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;AAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,iCAAc;IACrB,OAAO,EAAE,qCAAgB;IACzB,MAAM,EAAE,mCAAe;IACvB,WAAW,EAAE,8CAAoB;IACjC,UAAU,EAAE,4CAAmB;IAC/B,UAAU,EAAE,2CAAmB;IAC/B,UAAU,EAAE,4CAAmB;CAChC,CAAC,CAAA;AAEO,8BAAS","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nimport { DataTableCommandBar } from \"./components/data-table-command-bar\"\nimport { DataTableFilterMenu } from \"./components/data-table-filter-menu\"\nimport { DataTablePagination } from \"./components/data-table-pagination\"\nimport { DataTableSearch } from \"./components/data-table-search\"\nimport { DataTableSortingMenu } from \"./components/data-table-sorting-menu\"\nimport { DataTableTable } from \"./components/data-table-table\"\nimport { DataTableToolbar } from \"./components/data-table-toolbar\"\nimport { DataTableContextProvider } from \"./context/data-table-context-provider\"\nimport { UseDataTableReturn } from \"./use-data-table\"\n\n/**\n * The props of the `DataTable` component.\n */\ninterface DataTableProps<TData> {\n /**\n * The instance returned by the `useDataTable` hook.\n */\n instance: UseDataTableReturn<TData>\n /**\n * The children of the component.\n */\n children?: React.ReactNode\n /**\n * Additional classes to pass to the wrapper `div` of the component.\n */\n className?: string\n}\n\n/**\n * This component creates a data table with filters, pagination, sorting, and more.\n * It's built on top of the `Table` component while expanding its functionality.\n * The `DataTable` is useful to create tables similar to those in the Medusa Admin dashboard.\n */\nconst Root = <TData,>({\n instance,\n children,\n className,\n}: DataTableProps<TData>) => {\n return (\n <DataTableContextProvider instance={instance}>\n <div className={clx(\"relative flex min-h-0 flex-1 flex-col\", className)}>\n {children}\n </div>\n </DataTableContextProvider>\n )\n}\nRoot.displayName = \"DataTable\"\n\nconst DataTable = Object.assign(Root, {\n Table: DataTableTable,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n SortingMenu: DataTableSortingMenu,\n FilterMenu: DataTableFilterMenu,\n Pagination: DataTablePagination,\n CommandBar: DataTableCommandBar,\n})\n\nexport { DataTable }\nexport type { DataTableProps }\n"]}
|
1
|
+
{"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/data-table.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,qDAA8B;AAE9B,qCAAiC;AAEjC,gFAAyE;AACzE,sGAA8F;AAC9F,8EAAuE;AACvE,gFAAyE;AACzE,8EAAwE;AACxE,sEAAgE;AAChE,kFAA2E;AAC3E,oEAA8D;AAC9D,wEAAkE;AAClE,uFAAgF;AAqBhF;;;;GAIG;AACH,MAAM,IAAI,GAAG,CAAS,EACpB,QAAQ,EACR,QAAQ,EACR,SAAS,GACa,EAAE,EAAE;IAC1B,OAAO,CACL,oBAAC,sDAAwB,IAAC,QAAQ,EAAE,QAAQ;QAC1C,6BAAK,SAAS,EAAE,IAAA,SAAG,EAAC,uCAAuC,EAAE,SAAS,CAAC,IACpE,QAAQ,CACL,CACmB,CAC5B,CAAA;AACH,CAAC,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;AAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,iCAAc;IACrB,OAAO,EAAE,qCAAgB;IACzB,MAAM,EAAE,mCAAe;IACvB,WAAW,EAAE,8CAAoB;IACjC,UAAU,EAAE,4CAAmB;IAC/B,SAAS,EAAE,0CAAkB;IAC7B,oBAAoB,EAAE,iEAA6B;IACnD,UAAU,EAAE,2CAAmB;IAC/B,UAAU,EAAE,4CAAmB;CAChC,CAAC,CAAA;AAEO,8BAAS","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nimport { DataTableCommandBar } from \"./components/data-table-command-bar\"\nimport { DataTableColumnVisibilityMenu } from \"./components/data-table-column-visibility-menu\"\nimport { DataTableFilterBar } from \"./components/data-table-filter-bar\"\nimport { DataTableFilterMenu } from \"./components/data-table-filter-menu\"\nimport { DataTablePagination } from \"./components/data-table-pagination\"\nimport { DataTableSearch } from \"./components/data-table-search\"\nimport { DataTableSortingMenu } from \"./components/data-table-sorting-menu\"\nimport { DataTableTable } from \"./components/data-table-table\"\nimport { DataTableToolbar } from \"./components/data-table-toolbar\"\nimport { DataTableContextProvider } from \"./context/data-table-context-provider\"\nimport { UseDataTableReturn } from \"./use-data-table\"\n\n/**\n * The props of the `DataTable` component.\n */\ninterface DataTableProps<TData> {\n /**\n * The instance returned by the `useDataTable` hook.\n */\n instance: UseDataTableReturn<TData>\n /**\n * The children of the component.\n */\n children?: React.ReactNode\n /**\n * Additional classes to pass to the wrapper `div` of the component.\n */\n className?: string\n}\n\n/**\n * This component creates a data table with filters, pagination, sorting, and more.\n * It's built on top of the `Table` component while expanding its functionality.\n * The `DataTable` is useful to create tables similar to those in the Medusa Admin dashboard.\n */\nconst Root = <TData,>({\n instance,\n children,\n className,\n}: DataTableProps<TData>) => {\n return (\n <DataTableContextProvider instance={instance}>\n <div className={clx(\"relative flex min-h-0 flex-1 flex-col\", className)}>\n {children}\n </div>\n </DataTableContextProvider>\n )\n}\nRoot.displayName = \"DataTable\"\n\nconst DataTable = Object.assign(Root, {\n Table: DataTableTable,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n SortingMenu: DataTableSortingMenu,\n FilterMenu: DataTableFilterMenu,\n FilterBar: DataTableFilterBar,\n ColumnVisibilityMenu: DataTableColumnVisibilityMenu,\n Pagination: DataTablePagination,\n CommandBar: DataTableCommandBar,\n})\n\nexport { DataTable }\nexport type { DataTableProps }\n"]}
|
@@ -3,5 +3,6 @@ export * from "./use-data-table";
|
|
3
3
|
export * from "./utils/create-data-table-column-helper";
|
4
4
|
export * from "./utils/create-data-table-command-helper";
|
5
5
|
export * from "./utils/create-data-table-filter-helper";
|
6
|
-
export type { DataTableAction, DataTableCellContext, DataTableColumn, DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableEmptyStateContent, DataTableEmptyStateProps, DataTableFilter, DataTableFilteringState, DataTableHeaderContext, DataTablePaginationState, DataTableRow, DataTableRowData, DataTableRowSelectionState, DataTableSortDirection, DataTableSortingState, } from "./types";
|
6
|
+
export type { DataTableAction, DataTableCellContext, DataTableColumn, DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableNumberComparisonOperator, DataTableEmptyState, DataTableEmptyStateContent, DataTableEmptyStateProps, DataTableFilter, DataTableFilteringState, DataTableHeaderContext, DataTablePaginationState, DataTableRow, DataTableRowData, DataTableRowSelectionState, DataTableSortDirection, DataTableSortingState, } from "./types";
|
7
|
+
export type { VisibilityState, ColumnOrderState } from "@tanstack/react-table";
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA;AAEvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yCAAyC,CAAA;AACvD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA;AAEvD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,+BAA+B,EAC/B,iCAAiC,EACjC,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAGhB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,2DAAgC;AAChC,kFAAuD;AACvD,mFAAwD;AACxD,kFAAuD","sourcesContent":["export * from \"./data-table\"\nexport * from \"./use-data-table\"\nexport * from \"./utils/create-data-table-column-helper\"\nexport * from \"./utils/create-data-table-command-helper\"\nexport * from \"./utils/create-data-table-filter-helper\"\n\nexport type {\n DataTableAction,\n DataTableCellContext,\n DataTableColumn,\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n DataTableFilter,\n DataTableFilteringState,\n DataTableHeaderContext,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowData,\n DataTableRowSelectionState,\n DataTableSortDirection,\n DataTableSortingState,\n} from \"./types\"\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,2DAAgC;AAChC,kFAAuD;AACvD,mFAAwD;AACxD,kFAAuD","sourcesContent":["export * from \"./data-table\"\nexport * from \"./use-data-table\"\nexport * from \"./utils/create-data-table-column-helper\"\nexport * from \"./utils/create-data-table-command-helper\"\nexport * from \"./utils/create-data-table-filter-helper\"\n\nexport type {\n DataTableAction,\n DataTableCellContext,\n DataTableColumn,\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableNumberComparisonOperator,\n DataTableEmptyState,\n DataTableEmptyStateContent,\n DataTableEmptyStateProps,\n DataTableFilter,\n DataTableFilteringState,\n DataTableHeaderContext,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowData,\n DataTableRowSelectionState,\n DataTableSortDirection,\n DataTableSortingState,\n} from \"./types\"\n\n// Re-export types from @tanstack/react-table that are used in the public API\nexport type { VisibilityState, ColumnOrderState } from \"@tanstack/react-table\"\n"]}
|
@@ -36,9 +36,20 @@ export type DataTableSortableColumnDef = {
|
|
36
36
|
*/
|
37
37
|
enableSorting?: boolean;
|
38
38
|
};
|
39
|
+
export type DataTableHeaderAlignment = 'left' | 'center' | 'right';
|
40
|
+
export type DataTableAlignableColumnDef = {
|
41
|
+
/**
|
42
|
+
* The alignment of the header content.
|
43
|
+
* @default 'left'
|
44
|
+
*/
|
45
|
+
headerAlign?: DataTableHeaderAlignment;
|
46
|
+
};
|
39
47
|
export type DataTableSortableColumnDefMeta = {
|
40
48
|
___sortMetaData?: DataTableSortableColumnDef;
|
41
49
|
};
|
50
|
+
export type DataTableAlignableColumnDefMeta = {
|
51
|
+
___alignMetaData?: DataTableAlignableColumnDef;
|
52
|
+
};
|
42
53
|
export type DataTableActionColumnDefMeta<TData> = {
|
43
54
|
___actions?: DataTableAction<TData>[] | DataTableAction<TData>[][] | ((ctx: DataTableCellContext<TData, unknown>) => DataTableAction<TData>[]);
|
44
55
|
};
|
@@ -73,7 +84,7 @@ export interface DataTableColumnHelper<TData> {
|
|
73
84
|
* @param column The column to create for the accessor.
|
74
85
|
* @returns The created accessor.
|
75
86
|
*/
|
76
|
-
accessor: <TAccessor extends AccessorFn<TData> | DeepKeys<TData>, TValue extends TAccessor extends AccessorFn<TData, infer TReturn> ? TReturn : TAccessor extends DeepKeys<TData> ? DeepValue<TData, TAccessor> : never>(accessor: TAccessor, column: TAccessor extends AccessorFn<TData> ? DataTableDisplayColumnDef<TData, TValue> & DataTableSortableColumnDef : DataTableIdentifiedColumnDef<TData, TValue> & DataTableSortableColumnDef) => TAccessor extends AccessorFn<TData> ? AccessorFnColumnDef<TData, TValue> : AccessorKeyColumnDef<TData, TValue>;
|
87
|
+
accessor: <TAccessor extends AccessorFn<TData> | DeepKeys<TData>, TValue extends TAccessor extends AccessorFn<TData, infer TReturn> ? TReturn : TAccessor extends DeepKeys<TData> ? DeepValue<TData, TAccessor> : never>(accessor: TAccessor, column: TAccessor extends AccessorFn<TData> ? DataTableDisplayColumnDef<TData, TValue> & DataTableSortableColumnDef & DataTableAlignableColumnDef : DataTableIdentifiedColumnDef<TData, TValue> & DataTableSortableColumnDef & DataTableAlignableColumnDef) => TAccessor extends AccessorFn<TData> ? AccessorFnColumnDef<TData, TValue> : AccessorKeyColumnDef<TData, TValue>;
|
77
88
|
/**
|
78
89
|
* Create a display column.
|
79
90
|
*
|
@@ -105,7 +116,7 @@ export interface DataTablePaginationState extends PaginationState {
|
|
105
116
|
export type DataTableFilteringState<T extends Record<string, unknown> = Record<string, unknown>> = {
|
106
117
|
[K in keyof T]: T[K];
|
107
118
|
};
|
108
|
-
export type DataTableFilterType = "radio" | "select" | "date";
|
119
|
+
export type DataTableFilterType = "radio" | "select" | "date" | "multiselect" | "string" | "number" | "custom";
|
109
120
|
export type DataTableFilterOption<T = string> = {
|
110
121
|
label: string;
|
111
122
|
value: T;
|
@@ -167,7 +178,46 @@ export interface DataTableDateFilterProps extends DataTableBaseFilterProps {
|
|
167
178
|
*/
|
168
179
|
options: DataTableFilterOption<DataTableDateComparisonOperator>[];
|
169
180
|
}
|
170
|
-
export
|
181
|
+
export interface DataTableMultiselectFilterProps extends DataTableBaseFilterProps {
|
182
|
+
type: "multiselect";
|
183
|
+
options: DataTableFilterOption[];
|
184
|
+
/**
|
185
|
+
* Whether to show a search input for the options.
|
186
|
+
* @default true
|
187
|
+
*/
|
188
|
+
searchable?: boolean;
|
189
|
+
}
|
190
|
+
export interface DataTableStringFilterProps extends DataTableBaseFilterProps {
|
191
|
+
type: "string";
|
192
|
+
/**
|
193
|
+
* Placeholder text for the input.
|
194
|
+
*/
|
195
|
+
placeholder?: string;
|
196
|
+
}
|
197
|
+
export interface DataTableNumberFilterProps extends DataTableBaseFilterProps {
|
198
|
+
type: "number";
|
199
|
+
/**
|
200
|
+
* Placeholder text for the input.
|
201
|
+
*/
|
202
|
+
placeholder?: string;
|
203
|
+
/**
|
204
|
+
* Whether to include comparison operators.
|
205
|
+
* @default true
|
206
|
+
*/
|
207
|
+
includeOperators?: boolean;
|
208
|
+
}
|
209
|
+
export interface DataTableCustomFilterProps extends DataTableBaseFilterProps {
|
210
|
+
type: "custom";
|
211
|
+
/**
|
212
|
+
* Custom render function for the filter.
|
213
|
+
*/
|
214
|
+
render: (props: {
|
215
|
+
value: any;
|
216
|
+
onChange: (value: any) => void;
|
217
|
+
onRemove: () => void;
|
218
|
+
}) => React.ReactNode;
|
219
|
+
}
|
220
|
+
export type DataTableFilterProps = DataTableRadioFilterProps | DataTableSelectFilterProps | DataTableDateFilterProps | DataTableMultiselectFilterProps | DataTableStringFilterProps | DataTableNumberFilterProps | DataTableCustomFilterProps;
|
171
221
|
export type DataTableFilter<T extends DataTableFilterProps = DataTableFilterProps> = T & {
|
172
222
|
id: string;
|
173
223
|
};
|
@@ -194,6 +244,28 @@ export type DataTableDateComparisonOperator = {
|
|
194
244
|
*/
|
195
245
|
$gt?: string;
|
196
246
|
};
|
247
|
+
export type DataTableNumberComparisonOperator = {
|
248
|
+
/**
|
249
|
+
* The filtered number must be greater than or equal to this value.
|
250
|
+
*/
|
251
|
+
$gte?: number;
|
252
|
+
/**
|
253
|
+
* The filtered number must be less than or equal to this value.
|
254
|
+
*/
|
255
|
+
$lte?: number;
|
256
|
+
/**
|
257
|
+
* The filtered number must be less than this value.
|
258
|
+
*/
|
259
|
+
$lt?: number;
|
260
|
+
/**
|
261
|
+
* The filtered number must be greater than this value.
|
262
|
+
*/
|
263
|
+
$gt?: number;
|
264
|
+
/**
|
265
|
+
* The filtered number must be equal to this value.
|
266
|
+
*/
|
267
|
+
$eq?: number;
|
268
|
+
};
|
197
269
|
type DataTableCommandAction = (selection: DataTableRowSelectionState) => void | Promise<void>;
|
198
270
|
export interface DataTableCommand {
|
199
271
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":";;;AAgRA,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,wDAAiC,CAAA;IACjC,8CAAuB,CAAA;AACzB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B","sourcesContent":["import type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n CellContext,\n Column,\n ColumnDef,\n ColumnFilter,\n ColumnSort,\n DeepKeys,\n DeepValue,\n DisplayColumnDef,\n HeaderContext,\n IdentifiedColumnDef,\n IdIdentifier,\n PaginationState,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n StringHeaderIdentifier,\n StringOrTemplateHeader,\n} from \"@tanstack/react-table\"\n\nexport type DataTableRowData = RowData\n\nexport type DataTableRow<TData extends DataTableRowData> = Row<TData>\n\nexport type DataTableAction<TData> = {\n label: string\n onClick: (ctx: CellContext<TData, unknown>) => void\n icon?: React.ReactNode\n}\n\nexport interface DataTableCellContext<TData extends DataTableRowData, TValue>\n extends CellContext<TData, TValue> {}\n\nexport interface DataTableHeaderContext<TData extends DataTableRowData, TValue>\n extends HeaderContext<TData, TValue> {}\n\nexport type DataTableSortDirection = SortDirection\n\nexport interface DataTableActionColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"meta\"> {\n actions:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((\n ctx: DataTableCellContext<TData, unknown>\n ) => DataTableAction<TData>[] | DataTableAction<TData>[][])\n}\n\nexport interface DataTableSelectColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"cell\" | \"header\"> {}\n\nexport type DataTableSortableColumnDef = {\n /**\n * The label to display in the sorting menu.\n */\n sortLabel?: string\n /**\n * The label to display in the sorting menu when sorting in ascending order.\n */\n sortAscLabel?: string\n /**\n * The label to display in the sorting menu when sorting in descending order.\n */\n sortDescLabel?: string\n /**\n * Whether the column is sortable.\n * @default false\n */\n enableSorting?: boolean\n}\n\nexport type DataTableSortableColumnDefMeta = {\n ___sortMetaData?: DataTableSortableColumnDef\n}\n\nexport type DataTableActionColumnDefMeta<TData> = {\n ___actions?:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((ctx: DataTableCellContext<TData, unknown>) => DataTableAction<TData>[])\n}\n\nexport interface DataTableColumn<\n TData extends DataTableRowData,\n TValue = unknown\n> extends Column<TData, TValue> {}\n\nexport type DataTableColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = ColumnDef<TData, TValue>\n\nexport type DataTableColumnSizing = {\n /**\n * The maximum size of the column.\n */\n maxSize?: number\n /**\n * The minimum size of the column.\n */\n minSize?: number\n /**\n * The size of the column.\n */\n size?: number\n}\n\ntype DataTableColumnIdentifiers<TData extends DataTableRowData, TValue> =\n | IdIdentifier<TData, TValue>\n | StringHeaderIdentifier\n\nexport type DataTableDisplayColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = Pick<\n DisplayColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n> &\n DataTableColumnIdentifiers<TData, TValue>\n\nexport interface DataTableIdentifiedColumnDef<\n TData extends DataTableRowData,\n TValue\n> extends Pick<\n IdentifiedColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n > {\n id?: string\n header?: StringOrTemplateHeader<TData, TValue>\n}\n\nexport interface DataTableColumnHelper<TData> {\n /**\n * Create a accessor column.\n *\n * @param accessor The accessor to create the column for.\n * @param column The column to create for the accessor.\n * @returns The created accessor.\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DataTableDisplayColumnDef<TData, TValue> & DataTableSortableColumnDef\n : DataTableIdentifiedColumnDef<TData, TValue> & DataTableSortableColumnDef\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TData, TValue>\n : AccessorKeyColumnDef<TData, TValue>\n /**\n * Create a display column.\n *\n * @param column The column to create the display for.\n * @returns The created display column.\n */\n display: (column: DataTableDisplayColumnDef<TData>) => DisplayColumnDef<TData>\n /**\n * Create an action column.\n *\n * @param props The props to create the action column for.\n * @returns The created action column.\n */\n action: (\n props: DataTableActionColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n /**\n * Create a select column.\n *\n * @param props The props to create the select column for.\n * @returns The created select column.\n */\n select: (\n props?: DataTableSelectColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n}\n\nexport interface DataTableSortingState extends ColumnSort {}\nexport interface DataTableRowSelectionState extends RowSelectionState {}\nexport interface DataTablePaginationState extends PaginationState {}\nexport type DataTableFilteringState<\n T extends Record<string, unknown> = Record<string, unknown>\n> = {\n [K in keyof T]: T[K]\n}\n\nexport type DataTableFilterType = \"radio\" | \"select\" | \"date\"\nexport type DataTableFilterOption<T = string> = {\n label: string\n value: T\n}\n\ninterface DataTableBaseFilterProps {\n type: DataTableFilterType\n label: string\n}\n\nexport interface DataTableRadioFilterProps extends DataTableBaseFilterProps {\n type: \"radio\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableSelectFilterProps extends DataTableBaseFilterProps {\n type: \"select\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableDateFilterProps extends DataTableBaseFilterProps {\n type: \"date\"\n /**\n * The format of the date.\n * @default \"date\"\n */\n format?: \"date\" | \"date-time\"\n /**\n * The label to display for the range option.\n */\n rangeOptionLabel?: string\n /**\n * The label to display for the start of the range option.\n */\n rangeOptionStartLabel?: string\n /**\n * The label to display for the end of the range option.\n */\n rangeOptionEndLabel?: string\n /**\n * Whether to disable the range option.\n */\n disableRangeOption?: boolean\n /**\n * A function to format the date value.\n *\n * @example\n * ```tsx\n * formatDateValue={(value) => value.toLocaleDateString()}\n * ```\n */\n formatDateValue?: (value: Date) => string\n /**\n * The options to display in the filter.\n *\n * @example\n * ```tsx\n * options: [\n * { label: \"Today\", value: { $gte: new Date().toISOString() } },\n * { label: \"Yesterday\", value: { $gte: new Date(new Date().getTime() - 24 * 60 * 60 * 1000).toISOString() } },\n * ]\n * ```\n */\n options: DataTableFilterOption<DataTableDateComparisonOperator>[]\n}\n\nexport type DataTableFilterProps =\n | DataTableRadioFilterProps\n | DataTableSelectFilterProps\n | DataTableDateFilterProps\n\nexport type DataTableFilter<\n T extends DataTableFilterProps = DataTableFilterProps\n> = T & {\n id: string\n}\n\nexport enum DataTableEmptyState {\n EMPTY = \"EMPTY\",\n FILTERED_EMPTY = \"FILTERED_EMPTY\",\n POPULATED = \"POPULATED\",\n}\n\nexport type DataTableDateComparisonOperator = {\n /**\n * The filtered date must be greater than or equal to this value.\n */\n $gte?: string\n /**\n * The filtered date must be less than or equal to this value.\n */\n $lte?: string\n /**\n * The filtered date must be less than this value.\n */\n $lt?: string\n /**\n * The filtered date must be greater than this value.\n */\n $gt?: string\n}\n\ntype DataTableCommandAction = (\n selection: DataTableRowSelectionState\n) => void | Promise<void>\n\nexport interface DataTableCommand {\n /**\n * The label to display in the command bar.\n */\n label: string\n /**\n * The action to perform when the command is selected.\n */\n action: DataTableCommandAction\n /**\n * The shortcut to use for the command.\n *\n * @example \"i\"\n */\n shortcut: string\n}\n\nexport type DataTableEmptyStateContent = {\n /**\n * The heading to display in the empty state.\n */\n heading?: string\n /**\n * The description to display in the empty state.\n */\n description?: string\n /**\n * A custom component to display in the empty state, if provided it will override the heading and description.\n */\n custom?: React.ReactNode\n}\n\nexport type DataTableEmptyStateProps = {\n /**\n * The empty state to display when the table is filtered, but no rows are found.\n */\n filtered?: DataTableEmptyStateContent\n /**\n * The empty state to display when the table is empty.\n */\n empty?: DataTableEmptyStateContent\n}\n\nexport interface DataTableColumnFilter extends ColumnFilter {}\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/types.ts"],"names":[],"mappings":";;;AA6UA,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,wDAAiC,CAAA;IACjC,8CAAuB,CAAA;AACzB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B","sourcesContent":["import type {\n AccessorFn,\n AccessorFnColumnDef,\n AccessorKeyColumnDef,\n CellContext,\n Column,\n ColumnDef,\n ColumnFilter,\n ColumnSort,\n DeepKeys,\n DeepValue,\n DisplayColumnDef,\n HeaderContext,\n IdentifiedColumnDef,\n IdIdentifier,\n PaginationState,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n StringHeaderIdentifier,\n StringOrTemplateHeader,\n} from \"@tanstack/react-table\"\n\nexport type DataTableRowData = RowData\n\nexport type DataTableRow<TData extends DataTableRowData> = Row<TData>\n\nexport type DataTableAction<TData> = {\n label: string\n onClick: (ctx: CellContext<TData, unknown>) => void\n icon?: React.ReactNode\n}\n\nexport interface DataTableCellContext<TData extends DataTableRowData, TValue>\n extends CellContext<TData, TValue> {}\n\nexport interface DataTableHeaderContext<TData extends DataTableRowData, TValue>\n extends HeaderContext<TData, TValue> {}\n\nexport type DataTableSortDirection = SortDirection\n\nexport interface DataTableActionColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"meta\"> {\n actions:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((\n ctx: DataTableCellContext<TData, unknown>\n ) => DataTableAction<TData>[] | DataTableAction<TData>[][])\n}\n\nexport interface DataTableSelectColumnDef<TData>\n extends Pick<DisplayColumnDef<TData>, \"cell\" | \"header\"> {}\n\nexport type DataTableSortableColumnDef = {\n /**\n * The label to display in the sorting menu.\n */\n sortLabel?: string\n /**\n * The label to display in the sorting menu when sorting in ascending order.\n */\n sortAscLabel?: string\n /**\n * The label to display in the sorting menu when sorting in descending order.\n */\n sortDescLabel?: string\n /**\n * Whether the column is sortable.\n * @default false\n */\n enableSorting?: boolean\n}\n\nexport type DataTableHeaderAlignment = 'left' | 'center' | 'right'\n\nexport type DataTableAlignableColumnDef = {\n /**\n * The alignment of the header content.\n * @default 'left'\n */\n headerAlign?: DataTableHeaderAlignment\n}\n\nexport type DataTableSortableColumnDefMeta = {\n ___sortMetaData?: DataTableSortableColumnDef\n}\n\nexport type DataTableAlignableColumnDefMeta = {\n ___alignMetaData?: DataTableAlignableColumnDef\n}\n\nexport type DataTableActionColumnDefMeta<TData> = {\n ___actions?:\n | DataTableAction<TData>[]\n | DataTableAction<TData>[][]\n | ((ctx: DataTableCellContext<TData, unknown>) => DataTableAction<TData>[])\n}\n\nexport interface DataTableColumn<\n TData extends DataTableRowData,\n TValue = unknown\n> extends Column<TData, TValue> {}\n\nexport type DataTableColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = ColumnDef<TData, TValue>\n\nexport type DataTableColumnSizing = {\n /**\n * The maximum size of the column.\n */\n maxSize?: number\n /**\n * The minimum size of the column.\n */\n minSize?: number\n /**\n * The size of the column.\n */\n size?: number\n}\n\ntype DataTableColumnIdentifiers<TData extends DataTableRowData, TValue> =\n | IdIdentifier<TData, TValue>\n | StringHeaderIdentifier\n\nexport type DataTableDisplayColumnDef<\n TData extends DataTableRowData,\n TValue = unknown\n> = Pick<\n DisplayColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n> &\n DataTableColumnIdentifiers<TData, TValue>\n\nexport interface DataTableIdentifiedColumnDef<\n TData extends DataTableRowData,\n TValue\n> extends Pick<\n IdentifiedColumnDef<TData, TValue>,\n \"meta\" | \"header\" | \"cell\" | \"minSize\" | \"maxSize\" | \"size\"\n > {\n id?: string\n header?: StringOrTemplateHeader<TData, TValue>\n}\n\nexport interface DataTableColumnHelper<TData> {\n /**\n * Create a accessor column.\n *\n * @param accessor The accessor to create the column for.\n * @param column The column to create for the accessor.\n * @returns The created accessor.\n */\n accessor: <\n TAccessor extends AccessorFn<TData> | DeepKeys<TData>,\n TValue extends TAccessor extends AccessorFn<TData, infer TReturn>\n ? TReturn\n : TAccessor extends DeepKeys<TData>\n ? DeepValue<TData, TAccessor>\n : never\n >(\n accessor: TAccessor,\n column: TAccessor extends AccessorFn<TData>\n ? DataTableDisplayColumnDef<TData, TValue> & DataTableSortableColumnDef & DataTableAlignableColumnDef\n : DataTableIdentifiedColumnDef<TData, TValue> & DataTableSortableColumnDef & DataTableAlignableColumnDef\n ) => TAccessor extends AccessorFn<TData>\n ? AccessorFnColumnDef<TData, TValue>\n : AccessorKeyColumnDef<TData, TValue>\n /**\n * Create a display column.\n *\n * @param column The column to create the display for.\n * @returns The created display column.\n */\n display: (column: DataTableDisplayColumnDef<TData>) => DisplayColumnDef<TData>\n /**\n * Create an action column.\n *\n * @param props The props to create the action column for.\n * @returns The created action column.\n */\n action: (\n props: DataTableActionColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n /**\n * Create a select column.\n *\n * @param props The props to create the select column for.\n * @returns The created select column.\n */\n select: (\n props?: DataTableSelectColumnDef<TData>\n ) => DisplayColumnDef<TData, unknown>\n}\n\nexport interface DataTableSortingState extends ColumnSort {}\nexport interface DataTableRowSelectionState extends RowSelectionState {}\nexport interface DataTablePaginationState extends PaginationState {}\nexport type DataTableFilteringState<\n T extends Record<string, unknown> = Record<string, unknown>\n> = {\n [K in keyof T]: T[K]\n}\n\nexport type DataTableFilterType = \"radio\" | \"select\" | \"date\" | \"multiselect\" | \"string\" | \"number\" | \"custom\"\nexport type DataTableFilterOption<T = string> = {\n label: string\n value: T\n}\n\ninterface DataTableBaseFilterProps {\n type: DataTableFilterType\n label: string\n}\n\nexport interface DataTableRadioFilterProps extends DataTableBaseFilterProps {\n type: \"radio\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableSelectFilterProps extends DataTableBaseFilterProps {\n type: \"select\"\n options: DataTableFilterOption[]\n}\n\nexport interface DataTableDateFilterProps extends DataTableBaseFilterProps {\n type: \"date\"\n /**\n * The format of the date.\n * @default \"date\"\n */\n format?: \"date\" | \"date-time\"\n /**\n * The label to display for the range option.\n */\n rangeOptionLabel?: string\n /**\n * The label to display for the start of the range option.\n */\n rangeOptionStartLabel?: string\n /**\n * The label to display for the end of the range option.\n */\n rangeOptionEndLabel?: string\n /**\n * Whether to disable the range option.\n */\n disableRangeOption?: boolean\n /**\n * A function to format the date value.\n *\n * @example\n * ```tsx\n * formatDateValue={(value) => value.toLocaleDateString()}\n * ```\n */\n formatDateValue?: (value: Date) => string\n /**\n * The options to display in the filter.\n *\n * @example\n * ```tsx\n * options: [\n * { label: \"Today\", value: { $gte: new Date().toISOString() } },\n * { label: \"Yesterday\", value: { $gte: new Date(new Date().getTime() - 24 * 60 * 60 * 1000).toISOString() } },\n * ]\n * ```\n */\n options: DataTableFilterOption<DataTableDateComparisonOperator>[]\n}\n\nexport interface DataTableMultiselectFilterProps extends DataTableBaseFilterProps {\n type: \"multiselect\"\n options: DataTableFilterOption[]\n /**\n * Whether to show a search input for the options.\n * @default true\n */\n searchable?: boolean\n}\n\nexport interface DataTableStringFilterProps extends DataTableBaseFilterProps {\n type: \"string\"\n /**\n * Placeholder text for the input.\n */\n placeholder?: string\n}\n\nexport interface DataTableNumberFilterProps extends DataTableBaseFilterProps {\n type: \"number\"\n /**\n * Placeholder text for the input.\n */\n placeholder?: string\n /**\n * Whether to include comparison operators.\n * @default true\n */\n includeOperators?: boolean\n}\n\nexport interface DataTableCustomFilterProps extends DataTableBaseFilterProps {\n type: \"custom\"\n /**\n * Custom render function for the filter.\n */\n render: (props: {\n value: any\n onChange: (value: any) => void\n onRemove: () => void\n }) => React.ReactNode\n}\n\nexport type DataTableFilterProps =\n | DataTableRadioFilterProps\n | DataTableSelectFilterProps\n | DataTableDateFilterProps\n | DataTableMultiselectFilterProps\n | DataTableStringFilterProps\n | DataTableNumberFilterProps\n | DataTableCustomFilterProps\n\nexport type DataTableFilter<\n T extends DataTableFilterProps = DataTableFilterProps\n> = T & {\n id: string\n}\n\nexport enum DataTableEmptyState {\n EMPTY = \"EMPTY\",\n FILTERED_EMPTY = \"FILTERED_EMPTY\",\n POPULATED = \"POPULATED\",\n}\n\nexport type DataTableDateComparisonOperator = {\n /**\n * The filtered date must be greater than or equal to this value.\n */\n $gte?: string\n /**\n * The filtered date must be less than or equal to this value.\n */\n $lte?: string\n /**\n * The filtered date must be less than this value.\n */\n $lt?: string\n /**\n * The filtered date must be greater than this value.\n */\n $gt?: string\n}\n\nexport type DataTableNumberComparisonOperator = {\n /**\n * The filtered number must be greater than or equal to this value.\n */\n $gte?: number\n /**\n * The filtered number must be less than or equal to this value.\n */\n $lte?: number\n /**\n * The filtered number must be less than this value.\n */\n $lt?: number\n /**\n * The filtered number must be greater than this value.\n */\n $gt?: number\n /**\n * The filtered number must be equal to this value.\n */\n $eq?: number\n}\n\ntype DataTableCommandAction = (\n selection: DataTableRowSelectionState\n) => void | Promise<void>\n\nexport interface DataTableCommand {\n /**\n * The label to display in the command bar.\n */\n label: string\n /**\n * The action to perform when the command is selected.\n */\n action: DataTableCommandAction\n /**\n * The shortcut to use for the command.\n *\n * @example \"i\"\n */\n shortcut: string\n}\n\nexport type DataTableEmptyStateContent = {\n /**\n * The heading to display in the empty state.\n */\n heading?: string\n /**\n * The description to display in the empty state.\n */\n description?: string\n /**\n * A custom component to display in the empty state, if provided it will override the heading and description.\n */\n custom?: React.ReactNode\n}\n\nexport type DataTableEmptyStateProps = {\n /**\n * The empty state to display when the table is filtered, but no rows are found.\n */\n filtered?: DataTableEmptyStateContent\n /**\n * The empty state to display when the table is empty.\n */\n empty?: DataTableEmptyStateContent\n}\n\nexport interface DataTableColumnFilter extends ColumnFilter {}\n"]}
|