@ayasofyazilim/ui 0.0.4 → 0.0.6
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/components/accordion.js +1 -1
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.js +2 -2
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +2 -5
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js +2 -2
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/command.js +2 -2
- package/dist/components/command.js.map +1 -1
- package/dist/components/context-menu.js +1 -1
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/field.js +3 -3
- package/dist/components/field.js.map +1 -1
- package/dist/components/form.js +2 -2
- package/dist/components/form.js.map +1 -1
- package/dist/components/hover-card.js +1 -1
- package/dist/components/hover-card.js.map +1 -1
- package/dist/components/input-group.js +4 -4
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input-otp.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/item.js +2 -2
- package/dist/components/item.js.map +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/menubar.js +1 -1
- package/dist/components/menubar.js.map +1 -1
- package/dist/components/navigation-menu.js +1 -1
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/pagination.js +2 -4
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.js +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toggle-group.js +2 -2
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/custom/action-button.js +2 -4
- package/dist/custom/action-button.js.map +1 -1
- package/dist/custom/async-select.js +7 -7
- package/dist/custom/async-select.js.map +1 -1
- package/dist/custom/awesome-not-found.js +3 -3
- package/dist/custom/awesome-not-found.js.map +1 -1
- package/dist/custom/charts/area-chart.js +2 -2
- package/dist/custom/charts/area-chart.js.map +1 -1
- package/dist/custom/charts/bar-chart.js +2 -2
- package/dist/custom/charts/bar-chart.js.map +1 -1
- package/dist/custom/charts/chart-card.js +3 -3
- package/dist/custom/charts/chart-card.js.map +1 -1
- package/dist/custom/charts/pie-chart.js +2 -2
- package/dist/custom/charts/pie-chart.js.map +1 -1
- package/dist/custom/charts/radar-chart.js +2 -2
- package/dist/custom/charts/radar-chart.js.map +1 -1
- package/dist/custom/combobox.js +8 -8
- package/dist/custom/combobox.js.map +1 -1
- package/dist/custom/confirm-dialog.js +3 -3
- package/dist/custom/confirm-dialog.js.map +1 -1
- package/dist/custom/country-selector.js +6 -6
- package/dist/custom/country-selector.js.map +1 -1
- package/dist/custom/date-picker/calendar-rac.js +1 -1
- package/dist/custom/date-picker/calendar-rac.js.map +1 -1
- package/dist/custom/date-picker/datefield-rac.js +1 -1
- package/dist/custom/date-picker/datefield-rac.js.map +1 -1
- package/dist/custom/date-picker/index.js +3 -3
- package/dist/custom/date-picker/index.js.map +1 -1
- package/dist/custom/date-picker-old.js +4 -4
- package/dist/custom/date-picker-old.js.map +1 -1
- package/dist/custom/date-tooltip.js +1 -1
- package/dist/custom/date-tooltip.js.map +1 -1
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js +1 -1
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js.map +1 -1
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js +1 -1
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js.map +1 -1
- package/dist/custom/document-scanner/index.js +2 -2
- package/dist/custom/document-scanner/index.js.map +1 -1
- package/dist/custom/document-viewer/controllers.js +3 -3
- package/dist/custom/document-viewer/controllers.js.map +1 -1
- package/dist/custom/document-viewer/index.js +1 -1
- package/dist/custom/document-viewer/index.js.map +1 -1
- package/dist/custom/document-viewer/renderers/pdf.js +1 -1
- package/dist/custom/document-viewer/renderers/pdf.js.map +1 -1
- package/dist/custom/email-input/email.js +4 -4
- package/dist/custom/email-input/email.js.map +1 -1
- package/dist/custom/file-uploader.js +6 -6
- package/dist/custom/file-uploader.js.map +1 -1
- package/dist/custom/filter-component/fields/async-select.js +1 -1
- package/dist/custom/filter-component/fields/async-select.js.map +1 -1
- package/dist/custom/filter-component/fields/date.js +3 -3
- package/dist/custom/filter-component/fields/date.js.map +1 -1
- package/dist/custom/filter-component/fields/multi-select.js +1 -1
- package/dist/custom/filter-component/fields/multi-select.js.map +1 -1
- package/dist/custom/filter-component/index.js +4 -4
- package/dist/custom/filter-component/index.js.map +1 -1
- package/dist/custom/image-canvas.js +1 -1
- package/dist/custom/image-canvas.js.map +1 -1
- package/dist/custom/master-data-grid/components/filters/client-filter.js +2 -2
- package/dist/custom/master-data-grid/components/filters/client-filter.js.map +1 -1
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js +2 -2
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js.map +1 -1
- package/dist/custom/master-data-grid/components/filters/server-filter.js +5 -5
- package/dist/custom/master-data-grid/components/filters/server-filter.js.map +1 -1
- package/dist/custom/master-data-grid/components/table/cell-renderer.js +1 -1
- package/dist/custom/master-data-grid/components/table/cell-renderer.js.map +1 -1
- package/dist/custom/master-data-grid/hooks/use-columns.js +1 -1
- package/dist/custom/master-data-grid/hooks/use-columns.js.map +1 -1
- package/dist/custom/multi-select.js +6 -6
- package/dist/custom/multi-select.js.map +1 -1
- package/dist/custom/password-input.js +1 -1
- package/dist/custom/password-input.js.map +1 -1
- package/dist/custom/phone-input.js +2 -2
- package/dist/custom/phone-input.js.map +1 -1
- package/dist/custom/schema-form/custom/label.js +3 -3
- package/dist/custom/schema-form/custom/label.js.map +1 -1
- package/dist/custom/schema-form/fields/base-input-field.js +2 -2
- package/dist/custom/schema-form/fields/base-input-field.js.map +1 -1
- package/dist/custom/schema-form/fields/field.js +2 -2
- package/dist/custom/schema-form/fields/field.js.map +1 -1
- package/dist/custom/schema-form/fields/table-array/array-field-item.js +5 -5
- package/dist/custom/schema-form/fields/table-array/array-field-item.js.map +1 -1
- package/dist/custom/schema-form/fields/table-array/array-field-template.js +3 -3
- package/dist/custom/schema-form/fields/table-array/array-field-template.js.map +1 -1
- package/dist/custom/schema-form/index.js +1 -1
- package/dist/custom/schema-form/index.js.map +1 -1
- package/dist/custom/schema-form/templates/description.js +1 -1
- package/dist/custom/schema-form/templates/description.js.map +1 -1
- package/dist/custom/schema-form/templates/submit.js +2 -2
- package/dist/custom/schema-form/templates/submit.js.map +1 -1
- package/dist/custom/schema-form/utils/schemas.js +1 -1
- package/dist/custom/schema-form/utils/schemas.js.map +1 -1
- package/dist/custom/schema-form/widgets/boolean.js +4 -4
- package/dist/custom/schema-form/widgets/boolean.js.map +1 -1
- package/dist/custom/schema-form/widgets/combobox.js +7 -7
- package/dist/custom/schema-form/widgets/combobox.js.map +1 -1
- package/dist/custom/schema-form/widgets/date.js +1 -1
- package/dist/custom/schema-form/widgets/date.js.map +1 -1
- package/dist/custom/schema-form/widgets/email.js +2 -2
- package/dist/custom/schema-form/widgets/email.js.map +1 -1
- package/dist/custom/schema-form/widgets/password.js +1 -1
- package/dist/custom/schema-form/widgets/password.js.map +1 -1
- package/dist/custom/schema-form/widgets/phone.js +1 -1
- package/dist/custom/schema-form/widgets/phone.js.map +1 -1
- package/dist/custom/schema-form/widgets/select.js +3 -3
- package/dist/custom/schema-form/widgets/select.js.map +1 -1
- package/dist/custom/schema-form/widgets/selectable.js +1 -1
- package/dist/custom/schema-form/widgets/selectable.js.map +1 -1
- package/dist/custom/schema-form/widgets/string-array.js +3 -3
- package/dist/custom/schema-form/widgets/string-array.js.map +1 -1
- package/dist/custom/schema-form/widgets/url.js +2 -2
- package/dist/custom/schema-form/widgets/url.js.map +1 -1
- package/dist/custom/section-layout-v2.js +3 -3
- package/dist/custom/section-layout-v2.js.map +1 -1
- package/dist/custom/select-tabs.js +2 -2
- package/dist/custom/select-tabs.js.map +1 -1
- package/dist/custom/stepper.js +2 -2
- package/dist/custom/stepper.js.map +1 -1
- package/dist/custom/tab-layout.js +2 -2
- package/dist/custom/tab-layout.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js +3 -3
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js +4 -4
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js +6 -6
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js +5 -8
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js +3 -3
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js +3 -3
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js.map +1 -1
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js +2 -2
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js.map +1 -1
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js +3 -3
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js.map +1 -1
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js +5 -5
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js.map +1 -1
- package/dist/custom/timeline.js +1 -1
- package/dist/custom/timeline.js.map +1 -1
- package/dist/custom/tree.js +1 -1
- package/dist/custom/tree.js.map +1 -1
- package/dist/custom/webcam.js +2 -2
- package/dist/custom/webcam.js.map +1 -1
- package/package.json +13 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-plain-table.tsx"],"sourcesContent":["\"use no memo\";\r\nimport {\r\n ColumnDef,\r\n flexRender,\r\n Table as TableType,\r\n} from \"@tanstack/react-table\";\r\nimport { Fragment, JSX } from \"react\";\r\nimport { cn } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-plain-table.tsx"],"sourcesContent":["\"use no memo\";\r\nimport {\r\n ColumnDef,\r\n flexRender,\r\n Table as TableType,\r\n} from \"@tanstack/react-table\";\r\nimport { Fragment, JSX } from \"react\";\r\nimport { cn } from \"@ayasofyazilim/ui/lib/utils\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from \"@ayasofyazilim/ui/components/table\";\r\nimport { getCommonPinningStyles } from \"../utils\";\r\n\r\nexport function TanstackTablePlainTable<TData, TValue>({\r\n table,\r\n columns,\r\n fillerColumn,\r\n editable,\r\n resizeable,\r\n expandedRowComponent,\r\n}: {\r\n columns: ColumnDef<TData, TValue>[];\r\n fillerColumn?: keyof TData;\r\n editable?: boolean;\r\n expandedRowComponent?: (\r\n row: TData,\r\n toggleExpanded: () => void,\r\n ) => JSX.Element;\r\n table: TableType<TData>;\r\n resizeable?: boolean;\r\n}) {\r\n return (\r\n <Table style={{ width: table.getCenterTotalSize(), minWidth: \"100%\" }}>\r\n <TableHeader>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <TableRow key={headerGroup.id} className=\"group\">\r\n {headerGroup.headers.map((header) => {\r\n if (header.id === \"actions\") return null;\r\n return (\r\n <TableHead\r\n key={header.id}\r\n colSpan={header.colSpan}\r\n className={cn(\r\n \" relative group/th border-r border-gray-200\",\r\n header.column.getIsResizing() &&\r\n \"border-dashed border-black border-r\",\r\n )}\r\n style={{\r\n ...getCommonPinningStyles({\r\n column: header.column,\r\n withBorder: true,\r\n fillerColumn,\r\n resizeable,\r\n }),\r\n }}\r\n >\r\n <div\r\n className={cn(\r\n header.column.getIsResizing() && \"resizing\",\r\n \"group-has-[.resizing]:pointer-events-none group-has-[.resizing]:select-none\",\r\n )}\r\n >\r\n {header.isPlaceholder\r\n ? null\r\n : flexRender(\r\n header.column.columnDef.header,\r\n header.getContext(),\r\n )}\r\n </div>\r\n {resizeable && (\r\n <div\r\n onDoubleClick={() => header.column.resetSize()}\r\n onMouseDown={header.getResizeHandler()}\r\n onTouchStart={header.getResizeHandler()}\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-label=\"Resize column\"\r\n className=\"resizer w-0.5 hidden group-hover:flex absolute right-0 bg-muted-foreground top-0 h-10 z-10 items-center cursor-col-resize select-none touch-none\"\r\n />\r\n )}\r\n </TableHead>\r\n );\r\n })}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {table.getRowModel().rows?.length ? (\r\n table.getRowModel().rows.map((row) => (\r\n <Fragment key={row.id}>\r\n <TableRow\r\n data-state={row.getIsSelected() && \"selected\"}\r\n className={cn(editable && \"[&>td:last-child]:border-r-0\")}\r\n >\r\n {row.getVisibleCells().map((cell) => (\r\n <TableCell\r\n key={cell.id}\r\n className={cn(\r\n (editable || cell.column.id === \"actions\") &&\r\n \"p-0 border border-b-0 border-r-0\",\r\n )}\r\n style={{\r\n ...getCommonPinningStyles({\r\n column: cell.column,\r\n fillerColumn,\r\n resizeable,\r\n withBorder: true,\r\n }),\r\n }}\r\n >\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n {row.getIsExpanded() && expandedRowComponent && (\r\n <TableRow>\r\n <TableCell colSpan={row.getAllCells().length}>\r\n {expandedRowComponent(\r\n row.original,\r\n row.getToggleExpandedHandler(),\r\n )}\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </Fragment>\r\n ))\r\n ) : (\r\n <TableRow>\r\n <TableCell colSpan={columns.length} className=\"h-auto text-center\">\r\n No data results\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n );\r\n}\r\n"],"mappings":";AA4CgB,SAiBE,KAjBF;AA3ChB;AAAA,EAEE;AAAA,OAEK;AACP,SAAS,gBAAqB;AAC9B,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,8BAA8B;AAEhC,SAAS,wBAAuC;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUG;AACD,SACE,qBAAC,SAAM,OAAO,EAAE,OAAO,MAAM,mBAAmB,GAAG,UAAU,OAAO,GAClE;AAAA,wBAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,CAAC,gBAC5B,oBAAC,YAA8B,WAAU,SACtC,sBAAY,QAAQ,IAAI,CAAC,WAAW;AACnC,UAAI,OAAO,OAAO,UAAW,QAAO;AACpC,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,SAAS,OAAO;AAAA,UAChB,WAAW;AAAA,YACT;AAAA,YACA,OAAO,OAAO,cAAc,KAC1B;AAAA,UACJ;AAAA,UACA,OAAO;AAAA,YACL,GAAG,uBAAuB;AAAA,cACxB,QAAQ,OAAO;AAAA,cACf,YAAY;AAAA,cACZ;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UAEA;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW;AAAA,kBACT,OAAO,OAAO,cAAc,KAAK;AAAA,kBACjC;AAAA,gBACF;AAAA,gBAEC,iBAAO,gBACJ,OACA;AAAA,kBACE,OAAO,OAAO,UAAU;AAAA,kBACxB,OAAO,WAAW;AAAA,gBACpB;AAAA;AAAA,YACN;AAAA,YACC,cACC;AAAA,cAAC;AAAA;AAAA,gBACC,eAAe,MAAM,OAAO,OAAO,UAAU;AAAA,gBAC7C,aAAa,OAAO,iBAAiB;AAAA,gBACrC,cAAc,OAAO,iBAAiB;AAAA,gBACtC,MAAK;AAAA,gBACL,UAAU;AAAA,gBACV,cAAW;AAAA,gBACX,WAAU;AAAA;AAAA,YACZ;AAAA;AAAA;AAAA,QAtCG,OAAO;AAAA,MAwCd;AAAA,IAEJ,CAAC,KA/CY,YAAY,EAgD3B,CACD,GACH;AAAA,IACA,oBAAC,aACE,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,CAAC,QAC5B,qBAAC,YACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,cAAY,IAAI,cAAc,KAAK;AAAA,UACnC,WAAW,GAAG,YAAY,8BAA8B;AAAA,UAEvD,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAC1B;AAAA,YAAC;AAAA;AAAA,cAEC,WAAW;AAAA,iBACR,YAAY,KAAK,OAAO,OAAO,cAC9B;AAAA,cACJ;AAAA,cACA,OAAO;AAAA,gBACL,GAAG,uBAAuB;AAAA,kBACxB,QAAQ,KAAK;AAAA,kBACb;AAAA,kBACA;AAAA,kBACA,YAAY;AAAA,gBACd,CAAC;AAAA,cACH;AAAA,cAEC,qBAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA;AAAA,YAdpD,KAAK;AAAA,UAeZ,CACD;AAAA;AAAA,MACH;AAAA,MACC,IAAI,cAAc,KAAK,wBACtB,oBAAC,YACC,8BAAC,aAAU,SAAS,IAAI,YAAY,EAAE,QACnC;AAAA,QACC,IAAI;AAAA,QACJ,IAAI,yBAAyB;AAAA,MAC/B,GACF,GACF;AAAA,SAjCW,IAAI,EAmCnB,CACD,IAED,oBAAC,YACC,8BAAC,aAAU,SAAS,QAAQ,QAAQ,WAAU,sBAAqB,6BAEnE,GACF,GAEJ;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Loader } from "lucide-react";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { Button } from "@
|
|
5
|
+
import { Button } from "@ayasofyazilim/ui/components/button";
|
|
6
6
|
import {
|
|
7
7
|
Dialog,
|
|
8
8
|
DialogClose,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
DialogFooter,
|
|
12
12
|
DialogHeader,
|
|
13
13
|
DialogTitle
|
|
14
|
-
} from "@
|
|
14
|
+
} from "@ayasofyazilim/ui/components/dialog";
|
|
15
15
|
function TanstackTableConfirmationDialog({
|
|
16
16
|
row,
|
|
17
17
|
title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@ayasofyazilim/ui/components/button\";\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@ayasofyazilim/ui/components/dialog\";\r\nimport { TanstackTableRowActionsConfirmationDialog } from \"../types\";\r\n\r\ntype TanstackTableConfirmationDialogProps<TData> = {\r\n row: TData;\r\n setDialogOpen: () => void;\r\n} & TanstackTableRowActionsConfirmationDialog<TData>;\r\nexport function TanstackTableConfirmationDialog<TData>({\r\n row,\r\n title,\r\n confirmationText,\r\n onCancel,\r\n onConfirm,\r\n cancelText,\r\n description,\r\n setDialogOpen,\r\n}: TanstackTableConfirmationDialogProps<TData>) {\r\n const dialogTitle = typeof title === \"function\" ? title(row) : title;\r\n\r\n const [isDeletePending, startDeleteTransition] = React.useTransition();\r\n\r\n const handleOnConfirmClick = () => {\r\n startDeleteTransition(() => {\r\n onConfirm(row);\r\n setDialogOpen();\r\n });\r\n };\r\n const handleOnCancelClick = () => {\r\n startDeleteTransition(() => {\r\n onCancel?.(row);\r\n setDialogOpen();\r\n });\r\n };\r\n\r\n return (\r\n <Dialog open onOpenChange={setDialogOpen}>\r\n <DialogContent>\r\n <DialogHeader>\r\n <DialogTitle>{dialogTitle}</DialogTitle>\r\n <DialogDescription>{description}</DialogDescription>\r\n </DialogHeader>\r\n <DialogFooter className=\"gap-2 sm:space-x-0\">\r\n <DialogClose asChild>\r\n <Button variant=\"outline\" onClick={handleOnCancelClick}>\r\n {cancelText}\r\n </Button>\r\n </DialogClose>\r\n <Button\r\n aria-label={confirmationText}\r\n variant=\"destructive\"\r\n onClick={handleOnConfirmClick}\r\n disabled={isDeletePending}\r\n >\r\n {isDeletePending && (\r\n <Loader className=\"mr-2 size-4 animate-spin\" aria-hidden=\"true\" />\r\n )}\r\n {confirmationText}\r\n </Button>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n"],"mappings":";AAmDQ,SACE,KADF;AAjDR,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOA,SAAS,gCAAuC;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,QAAM,cAAc,OAAO,UAAU,aAAa,MAAM,GAAG,IAAI;AAE/D,QAAM,CAAC,iBAAiB,qBAAqB,IAAI,MAAM,cAAc;AAErE,QAAM,uBAAuB,MAAM;AACjC,0BAAsB,MAAM;AAC1B,gBAAU,GAAG;AACb,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,MAAM;AAChC,0BAAsB,MAAM;AAC1B,iBAAW,GAAG;AACd,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,SACE,oBAAC,UAAO,MAAI,MAAC,cAAc,eACzB,+BAAC,iBACC;AAAA,yBAAC,gBACC;AAAA,0BAAC,eAAa,uBAAY;AAAA,MAC1B,oBAAC,qBAAmB,uBAAY;AAAA,OAClC;AAAA,IACA,qBAAC,gBAAa,WAAU,sBACtB;AAAA,0BAAC,eAAY,SAAO,MAClB,8BAAC,UAAO,SAAQ,WAAU,SAAS,qBAChC,sBACH,GACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,cAAY;AAAA,UACZ,SAAQ;AAAA,UACR,SAAS;AAAA,UACT,UAAU;AAAA,UAET;AAAA,+BACC,oBAAC,UAAO,WAAU,4BAA2B,eAAY,QAAO;AAAA,YAEjE;AAAA;AAAA;AAAA,MACH;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Loader } from "lucide-react";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { Button } from "@
|
|
5
|
+
import { Button } from "@ayasofyazilim/ui/components/button";
|
|
6
6
|
import {
|
|
7
7
|
Dialog,
|
|
8
8
|
DialogClose,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
DialogFooter,
|
|
11
11
|
DialogHeader,
|
|
12
12
|
DialogTitle
|
|
13
|
-
} from "@
|
|
13
|
+
} from "@ayasofyazilim/ui/components/dialog";
|
|
14
14
|
function TanstackTableCustomDialog({
|
|
15
15
|
row,
|
|
16
16
|
title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@ayasofyazilim/ui/components/button\";\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@ayasofyazilim/ui/components/dialog\";\r\nimport { TanstackTableRowActionsCustomDialog } from \"../types\";\r\n\r\ntype TanstackTableCustomDialogProps<TData> = {\r\n row: TData;\r\n setDialogOpen: () => void;\r\n} & TanstackTableRowActionsCustomDialog<TData>;\r\nexport function TanstackTableCustomDialog<TData>({\r\n row,\r\n title,\r\n confirmationText,\r\n onCancel,\r\n onConfirm,\r\n cancelText,\r\n content,\r\n setDialogOpen,\r\n}: TanstackTableCustomDialogProps<TData>) {\r\n const [isDeletePending, startDeleteTransition] = React.useTransition();\r\n\r\n const dialogTitle = typeof title === \"function\" ? title(row) : title;\r\n const jsxContent =\r\n typeof content === \"function\" ? content(row, setDialogOpen) : content;\r\n\r\n const handleOnConfirmClick = () => {\r\n startDeleteTransition(() => {\r\n onConfirm?.(row);\r\n setDialogOpen();\r\n });\r\n };\r\n const handleOnCancelClick = () => {\r\n startDeleteTransition(() => {\r\n onCancel?.(row);\r\n setDialogOpen();\r\n });\r\n };\r\n\r\n return (\r\n <Dialog open onOpenChange={setDialogOpen}>\r\n <DialogContent>\r\n <DialogHeader>\r\n <DialogTitle>{dialogTitle}</DialogTitle>\r\n </DialogHeader>\r\n {jsxContent}\r\n {(cancelText || confirmationText) && (\r\n <DialogFooter className=\"gap-2 sm:space-x-0\">\r\n {cancelText && (\r\n <DialogClose asChild>\r\n <Button variant=\"outline\" onClick={handleOnCancelClick}>\r\n {cancelText}\r\n </Button>\r\n </DialogClose>\r\n )}\r\n {confirmationText && (\r\n <Button\r\n aria-label={confirmationText}\r\n variant=\"destructive\"\r\n onClick={handleOnConfirmClick}\r\n disabled={isDeletePending}\r\n >\r\n {isDeletePending && (\r\n <Loader\r\n className=\"mr-2 size-4 animate-spin\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n {confirmationText}\r\n </Button>\r\n )}\r\n </DialogFooter>\r\n )}\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n"],"mappings":";AAqDU,cAaI,YAbJ;AAnDV,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOA,SAAS,0BAAiC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0C;AACxC,QAAM,CAAC,iBAAiB,qBAAqB,IAAI,MAAM,cAAc;AAErE,QAAM,cAAc,OAAO,UAAU,aAAa,MAAM,GAAG,IAAI;AAC/D,QAAM,aACJ,OAAO,YAAY,aAAa,QAAQ,KAAK,aAAa,IAAI;AAEhE,QAAM,uBAAuB,MAAM;AACjC,0BAAsB,MAAM;AAC1B,kBAAY,GAAG;AACf,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,MAAM;AAChC,0BAAsB,MAAM;AAC1B,iBAAW,GAAG;AACd,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,SACE,oBAAC,UAAO,MAAI,MAAC,cAAc,eACzB,+BAAC,iBACC;AAAA,wBAAC,gBACC,8BAAC,eAAa,uBAAY,GAC5B;AAAA,IACC;AAAA,KACC,cAAc,qBACd,qBAAC,gBAAa,WAAU,sBACrB;AAAA,oBACC,oBAAC,eAAY,SAAO,MAClB,8BAAC,UAAO,SAAQ,WAAU,SAAS,qBAChC,sBACH,GACF;AAAA,MAED,oBACC;AAAA,QAAC;AAAA;AAAA,UACC,cAAY;AAAA,UACZ,SAAQ;AAAA,UACR,SAAS;AAAA,UACT,UAAU;AAAA,UAET;AAAA,+BACC;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,eAAY;AAAA;AAAA,YACd;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OAEJ;AAAA,KAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { ArrowDown, ArrowUp, Copy, Trash2 } from "lucide-react";
|
|
4
|
-
import { Button } from "@
|
|
4
|
+
import { Button } from "@ayasofyazilim/ui/components/button";
|
|
5
5
|
import {
|
|
6
6
|
DropdownMenu,
|
|
7
7
|
DropdownMenuContent,
|
|
8
8
|
DropdownMenuItem,
|
|
9
9
|
DropdownMenuTrigger
|
|
10
|
-
} from "@
|
|
11
|
-
import { cn } from "@
|
|
10
|
+
} from "@ayasofyazilim/ui/components/dropdown-menu";
|
|
11
|
+
import { cn } from "@ayasofyazilim/ui/lib/utils";
|
|
12
12
|
const TanstackTableRowActions = ({
|
|
13
13
|
row,
|
|
14
14
|
setRowAction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ArrowDown, ArrowUp, Copy, Trash2 } from \"lucide-react\";\r\nimport { Row, Table } from \"@tanstack/react-table\";\r\nimport { Button } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-row-actions.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ArrowDown, ArrowUp, Copy, Trash2 } from \"lucide-react\";\r\nimport { Row, Table } from \"@tanstack/react-table\";\r\nimport { Button } from \"@ayasofyazilim/ui/components/button\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from \"@ayasofyazilim/ui/components/dropdown-menu\";\r\nimport { cn } from \"@ayasofyazilim/ui/lib/utils\";\r\nimport { TanstackTableRowActionsType } from \"../types\";\r\n\r\ninterface TanstackTableRowActionsProps<TData> {\r\n actions: TanstackTableRowActionsType<TData>[];\r\n row: Row<TData>;\r\n setRowAction: (\r\n actions: TanstackTableRowActionsType<TData> & { row: TData },\r\n ) => void;\r\n table: Table<TData>;\r\n}\r\n\r\nexport const TanstackTableRowActions = <TData,>({\r\n row,\r\n setRowAction,\r\n actions,\r\n table,\r\n}: TanstackTableRowActionsProps<TData>) => {\r\n const availableActions = actions.filter(\r\n (i) => !i.condition || (i.condition && i.condition?.(row.original)),\r\n );\r\n if (availableActions.length === 0) return null;\r\n\r\n if (availableActions.length === 1) {\r\n return (\r\n <ActionButton\r\n action={availableActions[0] as TanstackTableRowActionsType<TData>}\r\n className=\"h-9 justify-center rounded-none\"\r\n setRowAction={setRowAction}\r\n table={table}\r\n row={row}\r\n />\r\n );\r\n }\r\n return (\r\n <DropdownMenu>\r\n <DropdownMenuTrigger className=\"w-full justify-start\" asChild>\r\n <Button\r\n variant=\"ghost\"\r\n type=\"button\"\r\n className=\"flex bg-background rounded-none\"\r\n >\r\n Actions\r\n <span className=\"sr-only\">Open Menu</span>\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\">\r\n {availableActions.map((action) => {\r\n if (action.condition && !action.condition?.(row.original))\r\n return null;\r\n if (\r\n (action.type === \"move-row-down\" &&\r\n row.index === table.getRowCount() - 1) ||\r\n (action.type === \"move-row-up\" && row.index === 0)\r\n )\r\n return null;\r\n return (\r\n <DropdownMenuItem key={action.cta}>\r\n <ActionButton\r\n action={action}\r\n table={table}\r\n row={row}\r\n setRowAction={setRowAction}\r\n />\r\n </DropdownMenuItem>\r\n );\r\n })}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n );\r\n};\r\n\r\nfunction ActionButton<TData>({\r\n row,\r\n setRowAction,\r\n table,\r\n action,\r\n className,\r\n}: {\r\n action: TanstackTableRowActionsType<TData>;\r\n className?: string;\r\n row: Row<TData>;\r\n setRowAction: (\r\n actions: TanstackTableRowActionsType<TData> & { row: TData },\r\n ) => void;\r\n table: Table<TData>;\r\n}) {\r\n function handleOnActionClick(action: TanstackTableRowActionsType<TData>) {\r\n if (action.type === \"simple\") {\r\n action.onClick(row.original);\r\n return;\r\n }\r\n if (action.type === \"delete-row\") {\r\n table.options.meta?.removeRow(row.index, \"\", null);\r\n return;\r\n }\r\n if (action.type === \"duplicate-row\") {\r\n table.options.meta?.duplicateRow(row.index + 1, row.original);\r\n return;\r\n }\r\n if (action.type === \"move-row-up\") {\r\n table.options.meta?.orderRow(row.index, row.index - 1);\r\n return;\r\n }\r\n if (action.type === \"move-row-down\") {\r\n table.options.meta?.orderRow(row.index, row.index + 1);\r\n return;\r\n }\r\n setRowAction({ ...action, row: row.original });\r\n }\r\n if (action.type === \"move-row-down\" && row.index === table.getRowCount() - 1)\r\n return null;\r\n if (action.type === \"move-row-up\" && row.index === 0) return null;\r\n return (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n type=\"button\"\r\n className={cn(\"justify-start w-full\", className)}\r\n onClick={() => handleOnActionClick(action)}\r\n >\r\n {action.icon && <action.icon className=\"w-4 h-4\" />}\r\n {!action.icon && action.type === \"move-row-down\" && (\r\n <ArrowDown className=\"w-4 h-4\" />\r\n )}\r\n {!action.icon && action.type === \"move-row-up\" && (\r\n <ArrowUp className=\"w-4 h-4\" />\r\n )}\r\n {!action.icon && action.type === \"duplicate-row\" && (\r\n <Copy className=\"w-4 h-4\" />\r\n )}\r\n {!action.icon && action.type === \"delete-row\" && (\r\n <Trash2 className=\"w-4 h-4\" />\r\n )}\r\n <span className=\"md:ml-2 in-data-[slot=dropdown-menu-item]:block hidden md:block\">\r\n {action.cta}\r\n </span>\r\n </Button>\r\n );\r\n}\r\n"],"mappings":";AAoCM,cAYE,YAZF;AAlCN,SAAS,WAAW,SAAS,MAAM,cAAc;AAEjD,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,UAAU;AAYZ,MAAM,0BAA0B,CAAS;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2C;AACzC,QAAM,mBAAmB,QAAQ;AAAA,IAC/B,CAAC,MAAM,CAAC,EAAE,aAAc,EAAE,aAAa,EAAE,YAAY,IAAI,QAAQ;AAAA,EACnE;AACA,MAAI,iBAAiB,WAAW,EAAG,QAAO;AAE1C,MAAI,iBAAiB,WAAW,GAAG;AACjC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ,iBAAiB,CAAC;AAAA,QAC1B,WAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,SACE,qBAAC,gBACC;AAAA,wBAAC,uBAAoB,WAAU,wBAAuB,SAAO,MAC3D;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,WAAU;AAAA,QACX;AAAA;AAAA,UAEC,oBAAC,UAAK,WAAU,WAAU,uBAAS;AAAA;AAAA;AAAA,IACrC,GACF;AAAA,IACA,oBAAC,uBAAoB,OAAM,OACxB,2BAAiB,IAAI,CAAC,WAAW;AAChC,UAAI,OAAO,aAAa,CAAC,OAAO,YAAY,IAAI,QAAQ;AACtD,eAAO;AACT,UACG,OAAO,SAAS,mBACf,IAAI,UAAU,MAAM,YAAY,IAAI,KACrC,OAAO,SAAS,iBAAiB,IAAI,UAAU;AAEhD,eAAO;AACT,aACE,oBAAC,oBACC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF,KANqB,OAAO,GAO9B;AAAA,IAEJ,CAAC,GACH;AAAA,KACF;AAEJ;AAEA,SAAS,aAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,WAAS,oBAAoBA,SAA4C;AACvE,QAAIA,QAAO,SAAS,UAAU;AAC5B,MAAAA,QAAO,QAAQ,IAAI,QAAQ;AAC3B;AAAA,IACF;AACA,QAAIA,QAAO,SAAS,cAAc;AAChC,YAAM,QAAQ,MAAM,UAAU,IAAI,OAAO,IAAI,IAAI;AACjD;AAAA,IACF;AACA,QAAIA,QAAO,SAAS,iBAAiB;AACnC,YAAM,QAAQ,MAAM,aAAa,IAAI,QAAQ,GAAG,IAAI,QAAQ;AAC5D;AAAA,IACF;AACA,QAAIA,QAAO,SAAS,eAAe;AACjC,YAAM,QAAQ,MAAM,SAAS,IAAI,OAAO,IAAI,QAAQ,CAAC;AACrD;AAAA,IACF;AACA,QAAIA,QAAO,SAAS,iBAAiB;AACnC,YAAM,QAAQ,MAAM,SAAS,IAAI,OAAO,IAAI,QAAQ,CAAC;AACrD;AAAA,IACF;AACA,iBAAa,EAAE,GAAGA,SAAQ,KAAK,IAAI,SAAS,CAAC;AAAA,EAC/C;AACA,MAAI,OAAO,SAAS,mBAAmB,IAAI,UAAU,MAAM,YAAY,IAAI;AACzE,WAAO;AACT,MAAI,OAAO,SAAS,iBAAiB,IAAI,UAAU,EAAG,QAAO;AAC7D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW,GAAG,wBAAwB,SAAS;AAAA,MAC/C,SAAS,MAAM,oBAAoB,MAAM;AAAA,MAExC;AAAA,eAAO,QAAQ,oBAAC,OAAO,MAAP,EAAY,WAAU,WAAU;AAAA,QAChD,CAAC,OAAO,QAAQ,OAAO,SAAS,mBAC/B,oBAAC,aAAU,WAAU,WAAU;AAAA,QAEhC,CAAC,OAAO,QAAQ,OAAO,SAAS,iBAC/B,oBAAC,WAAQ,WAAU,WAAU;AAAA,QAE9B,CAAC,OAAO,QAAQ,OAAO,SAAS,mBAC/B,oBAAC,QAAK,WAAU,WAAU;AAAA,QAE3B,CAAC,OAAO,QAAQ,OAAO,SAAS,gBAC/B,oBAAC,UAAO,WAAU,WAAU;AAAA,QAE9B,oBAAC,UAAK,WAAU,mEACb,iBAAO,KACV;AAAA;AAAA;AAAA,EACF;AAEJ;","names":["action"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Loader } from "lucide-react";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { Button } from "@
|
|
5
|
+
import { Button } from "@ayasofyazilim/ui/components/button";
|
|
6
6
|
import {
|
|
7
7
|
Dialog,
|
|
8
8
|
DialogClose,
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
DialogFooter,
|
|
11
11
|
DialogHeader,
|
|
12
12
|
DialogTitle
|
|
13
|
-
} from "@
|
|
14
|
-
import { cn } from "@
|
|
13
|
+
} from "@ayasofyazilim/ui/components/dialog";
|
|
14
|
+
import { cn } from "@ayasofyazilim/ui/lib/utils";
|
|
15
15
|
function TanstackTableTableCustomDialog({
|
|
16
16
|
title,
|
|
17
17
|
confirmationText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Loader } from \"lucide-react\";\r\nimport * as React from \"react\";\r\n\r\nimport { Button } from \"@ayasofyazilim/ui/components/button\";\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@ayasofyazilim/ui/components/dialog\";\r\nimport { TanstackTableActionsCustomDialog } from \"../types\";\r\nimport { cn } from \"@ayasofyazilim/ui/lib/utils\";\r\n\r\ntype TanstackTableCustomDialogProps = {\r\n setDialogOpen: () => void;\r\n} & TanstackTableActionsCustomDialog;\r\nexport function TanstackTableTableCustomDialog({\r\n title,\r\n confirmationText,\r\n onCancel,\r\n onConfirm,\r\n cancelText,\r\n content,\r\n setDialogOpen,\r\n dialogClassNames,\r\n}: TanstackTableCustomDialogProps) {\r\n const [isDeletePending, startDeleteTransition] = React.useTransition();\r\n\r\n const jsxContent =\r\n typeof content === \"function\" ? content(setDialogOpen) : content;\r\n\r\n const handleOnConfirmClick = () => {\r\n startDeleteTransition(() => {\r\n onConfirm?.();\r\n setDialogOpen();\r\n });\r\n };\r\n const handleOnCancelClick = () => {\r\n startDeleteTransition(() => {\r\n onCancel?.();\r\n setDialogOpen();\r\n });\r\n };\r\n\r\n return (\r\n <Dialog open onOpenChange={setDialogOpen}>\r\n <DialogContent className={dialogClassNames?.content}>\r\n <DialogHeader className={dialogClassNames?.header}>\r\n <DialogTitle className={dialogClassNames?.title}>{title}</DialogTitle>\r\n </DialogHeader>\r\n {jsxContent}\r\n {(confirmationText || cancelText) && (\r\n <DialogFooter\r\n className={cn(\"gap-2 sm:space-x-0\", dialogClassNames?.footer)}\r\n >\r\n {cancelText && (\r\n <DialogClose asChild>\r\n <Button variant=\"outline\" onClick={handleOnCancelClick}>\r\n {cancelText}\r\n </Button>\r\n </DialogClose>\r\n )}\r\n {confirmationText && (\r\n <Button\r\n aria-label={confirmationText}\r\n variant=\"destructive\"\r\n onClick={handleOnConfirmClick}\r\n disabled={isDeletePending}\r\n >\r\n {isDeletePending && (\r\n <Loader\r\n className=\"mr-2 size-4 animate-spin\"\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n {confirmationText}\r\n </Button>\r\n )}\r\n </DialogFooter>\r\n )}\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n"],"mappings":";AAoDU,cAeI,YAfJ;AAlDV,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,UAAU;AAKZ,SAAS,+BAA+B;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmC;AACjC,QAAM,CAAC,iBAAiB,qBAAqB,IAAI,MAAM,cAAc;AAErE,QAAM,aACJ,OAAO,YAAY,aAAa,QAAQ,aAAa,IAAI;AAE3D,QAAM,uBAAuB,MAAM;AACjC,0BAAsB,MAAM;AAC1B,kBAAY;AACZ,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,MAAM;AAChC,0BAAsB,MAAM;AAC1B,iBAAW;AACX,oBAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,SACE,oBAAC,UAAO,MAAI,MAAC,cAAc,eACzB,+BAAC,iBAAc,WAAW,kBAAkB,SAC1C;AAAA,wBAAC,gBAAa,WAAW,kBAAkB,QACzC,8BAAC,eAAY,WAAW,kBAAkB,OAAQ,iBAAM,GAC1D;AAAA,IACC;AAAA,KACC,oBAAoB,eACpB;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,sBAAsB,kBAAkB,MAAM;AAAA,QAE3D;AAAA,wBACC,oBAAC,eAAY,SAAO,MAClB,8BAAC,UAAO,SAAQ,WAAU,SAAS,qBAChC,sBACH,GACF;AAAA,UAED,oBACC;AAAA,YAAC;AAAA;AAAA,cACC,cAAY;AAAA,cACZ,SAAQ;AAAA,cACR,SAAS;AAAA,cACT,UAAU;AAAA,cAET;AAAA,mCACC;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,eAAY;AAAA;AAAA,gBACd;AAAA,gBAED;AAAA;AAAA;AAAA,UACH;AAAA;AAAA;AAAA,IAEJ;AAAA,KAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
DialogContent,
|
|
6
6
|
DialogHeader,
|
|
7
7
|
DialogTitle
|
|
8
|
-
} from "@
|
|
9
|
-
import { SchemaForm } from "@
|
|
8
|
+
} from "@ayasofyazilim/ui/components/dialog";
|
|
9
|
+
import { SchemaForm } from "@ayasofyazilim/ui/custom/schema-form";
|
|
10
10
|
import { useCallback, useState } from "react";
|
|
11
11
|
function TanstackTableTableSchemaFormDialog(props) {
|
|
12
12
|
const { title, setDialogOpen, onSubmit } = props;
|
package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@ayasofyazilim/ui/components/dialog\";\r\nimport { SchemaForm } from \"@ayasofyazilim/ui/custom/schema-form\";\r\nimport { TanstackTableActionsSchemaFormDialog } from \"../types\";\r\nimport { useCallback, useState } from \"react\";\r\n\r\ntype TanstackTableSchemaFormDialogProps<TData> = {\r\n setDialogOpen: () => void;\r\n} & TanstackTableActionsSchemaFormDialog<TData>;\r\nexport function TanstackTableTableSchemaFormDialog<TData>(\r\n props: TanstackTableSchemaFormDialogProps<TData>,\r\n) {\r\n const { title, setDialogOpen, onSubmit } = props;\r\n const [formData, setFormData] = useState<TData>(props.formData as TData);\r\n const handleFormChange = useCallback(\r\n ({ formData: editedFormData }: { formData?: TData }) => {\r\n if (editedFormData) {\r\n setFormData(editedFormData);\r\n }\r\n },\r\n [],\r\n );\r\n return (\r\n <Dialog open onOpenChange={setDialogOpen}>\r\n <DialogContent>\r\n <DialogHeader>\r\n <DialogTitle>{title}</DialogTitle>\r\n </DialogHeader>\r\n <SchemaForm<TData>\r\n {...props}\r\n formData={formData}\r\n onChange={handleFormChange}\r\n onSubmit={({ formData: editedFormData }) => {\r\n onSubmit(editedFormData);\r\n setDialogOpen();\r\n }}\r\n />\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n"],"mappings":";AA8BM,SAEI,KAFJ;AA5BN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAE3B,SAAS,aAAa,gBAAgB;AAK/B,SAAS,mCACd,OACA;AACA,QAAM,EAAE,OAAO,eAAe,SAAS,IAAI;AAC3C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAgB,MAAM,QAAiB;AACvE,QAAM,mBAAmB;AAAA,IACvB,CAAC,EAAE,UAAU,eAAe,MAA4B;AACtD,UAAI,gBAAgB;AAClB,oBAAY,cAAc;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AACA,SACE,oBAAC,UAAO,MAAI,MAAC,cAAc,eACzB,+BAAC,iBACC;AAAA,wBAAC,gBACC,8BAAC,eAAa,iBAAM,GACtB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,UAAU;AAAA,QACV,UAAU,CAAC,EAAE,UAAU,eAAe,MAAM;AAC1C,mBAAS,cAAc;AACvB,wBAAc;AAAA,QAChB;AAAA;AAAA,IACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -5,7 +5,7 @@ import { TanstackTableDateFilter } from "./tanstack-table-filter-date";
|
|
|
5
5
|
import { TanstackTableFacetedFilter } from "./tanstack-table-filter-faceted";
|
|
6
6
|
import { TanstackTableTextFilter } from "./tanstack-table-filter-text";
|
|
7
7
|
import { TanstackTableViewOptions } from "./tanstack-table-view-options";
|
|
8
|
-
import { Label } from "@
|
|
8
|
+
import { Label } from "@ayasofyazilim/ui/components/label";
|
|
9
9
|
const TanstackTableToolbar = ({
|
|
10
10
|
title,
|
|
11
11
|
table,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-toolbar.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Table } from \"@tanstack/react-table\";\r\nimport { usePathname, useRouter, useSearchParams } from \"next/navigation\";\r\nimport {\r\n TanstackTableFiltersType,\r\n TanstackTableSelectedRowActionType,\r\n TanstackTableTableActionsType,\r\n} from \"../types\";\r\nimport { TanstackTableDateFilter } from \"./tanstack-table-filter-date\";\r\nimport { TanstackTableFacetedFilter } from \"./tanstack-table-filter-faceted\";\r\nimport { TanstackTableTextFilter } from \"./tanstack-table-filter-text\";\r\nimport { TanstackTableViewOptions } from \"./tanstack-table-view-options\";\r\nimport { Label } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-toolbar.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { Table } from \"@tanstack/react-table\";\r\nimport { usePathname, useRouter, useSearchParams } from \"next/navigation\";\r\nimport {\r\n TanstackTableFiltersType,\r\n TanstackTableSelectedRowActionType,\r\n TanstackTableTableActionsType,\r\n} from \"../types\";\r\nimport { TanstackTableDateFilter } from \"./tanstack-table-filter-date\";\r\nimport { TanstackTableFacetedFilter } from \"./tanstack-table-filter-faceted\";\r\nimport { TanstackTableTextFilter } from \"./tanstack-table-filter-text\";\r\nimport { TanstackTableViewOptions } from \"./tanstack-table-view-options\";\r\nimport { Label } from \"@ayasofyazilim/ui/components/label\";\r\n\r\ninterface TanstackTableToolbarProps<TData> {\r\n title?: string;\r\n editable?: boolean;\r\n filters?: TanstackTableFiltersType;\r\n selectedRowAction?: TanstackTableSelectedRowActionType<TData>;\r\n setTableAction: (actions: TanstackTableTableActionsType<TData>) => void;\r\n table: Table<TData>;\r\n tableActions?: TanstackTableTableActionsType<TData>[];\r\n tableData: TData[];\r\n}\r\n\r\nexport const TanstackTableToolbar = <TData,>({\r\n title,\r\n table,\r\n filters,\r\n tableData,\r\n selectedRowAction,\r\n tableActions,\r\n setTableAction,\r\n editable,\r\n}: TanstackTableToolbarProps<TData>) => {\r\n const router = useRouter();\r\n const pathname = usePathname();\r\n const searchParams = useSearchParams();\r\n const params = new URLSearchParams(searchParams.toString());\r\n const columnNames = table.getAllColumns().map((column) => column.id);\r\n function onFilter(accessorKey: string, selectedValues: string) {\r\n const newParams = new URLSearchParams(searchParams.toString());\r\n if (selectedValues) {\r\n newParams.set(accessorKey, selectedValues);\r\n } else {\r\n newParams.delete(accessorKey);\r\n }\r\n if (newParams.get(accessorKey) !== searchParams.get(accessorKey)) {\r\n router.replace(`${pathname}?${newParams.toString()}`);\r\n }\r\n }\r\n function onFilterMultiple(\r\n filter: { accessorKey: string; selectedValues: string }[],\r\n ) {\r\n const newParams = new URLSearchParams(searchParams.toString());\r\n filter.forEach(({ accessorKey, selectedValues }) => {\r\n if (selectedValues) {\r\n newParams.set(accessorKey, selectedValues);\r\n } else {\r\n newParams.delete(accessorKey);\r\n }\r\n });\r\n if (newParams.toString() !== searchParams.toString()) {\r\n router.replace(`${pathname}?${newParams.toString()}`);\r\n }\r\n }\r\n if (!editable && !tableActions && !title && !filters) return null;\r\n return (\r\n <div className=\"flex w-full items-center justify-between p-px\">\r\n <div className=\"flex flex-1 h-full flex-wrap items-center gap-x-2\">\r\n {title && (\r\n <Label className=\"mt-auto text-slate-600\" asChild>\r\n <p>{title}</p>\r\n </Label>\r\n )}\r\n {filters?.textFilters &&\r\n filters.textFilters.map((accessorKey) => (\r\n <TanstackTableTextFilter\r\n title={filters?.filterTitles?.[accessorKey]}\r\n key={accessorKey}\r\n column={\r\n columnNames.includes(accessorKey)\r\n ? table.getColumn(accessorKey)\r\n : undefined\r\n }\r\n accessorKey={accessorKey}\r\n params={params}\r\n onFilter={(accessorKey, selectedValues) =>\r\n onFilter(accessorKey, selectedValues)\r\n }\r\n />\r\n ))}\r\n\r\n {filters?.dateFilters &&\r\n filters.dateFilters.map((dateItem) => (\r\n <TanstackTableDateFilter\r\n key={dateItem.label}\r\n accessorKey={dateItem.label}\r\n column={\r\n columnNames.includes(dateItem.label)\r\n ? table.getColumn(dateItem.label)\r\n : undefined\r\n }\r\n dateItem={dateItem}\r\n params={params}\r\n onFilter={(accessorKey, selectedValues) =>\r\n onFilter(accessorKey, selectedValues)\r\n }\r\n onFilterMultiple={(filter) => onFilterMultiple(filter)}\r\n />\r\n ))}\r\n\r\n {filters?.facetedFilters &&\r\n Object.keys(filters.facetedFilters)?.map((column) => (\r\n <TanstackTableFacetedFilter\r\n key={column}\r\n column={\r\n columnNames.includes(column)\r\n ? table.getColumn(column)\r\n : undefined\r\n }\r\n accessorKey={column}\r\n params={params}\r\n onFilter={(accessorKey, selectedValues) => {\r\n onFilter(accessorKey, selectedValues);\r\n }}\r\n title={filters?.facetedFilters?.[column]?.title ?? column}\r\n options={filters?.facetedFilters?.[column]?.options ?? []}\r\n />\r\n ))}\r\n </div>\r\n <TanstackTableViewOptions\r\n table={table}\r\n selectedRowAction={selectedRowAction}\r\n tableActions={tableActions}\r\n setTableAction={setTableAction}\r\n tableData={tableData}\r\n editable={editable}\r\n />\r\n </div>\r\n );\r\n};\r\n"],"mappings":"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","names":["accessorKey"]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu";
|
|
4
4
|
import { ChevronDownIcon } from "lucide-react";
|
|
5
|
-
import { Button } from "@
|
|
5
|
+
import { Button } from "@ayasofyazilim/ui/components/button";
|
|
6
6
|
import {
|
|
7
7
|
DropdownMenu,
|
|
8
8
|
DropdownMenuContent,
|
|
9
9
|
DropdownMenuItem
|
|
10
|
-
} from "@
|
|
10
|
+
} from "@ayasofyazilim/ui/components/dropdown-menu";
|
|
11
11
|
function TablePrimaryActionButton({
|
|
12
12
|
table,
|
|
13
13
|
action,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-view-options.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\r\nimport { Table } from \"@tanstack/react-table\";\r\n\r\nimport { ChevronDownIcon } from \"lucide-react\";\r\nimport { Button } from \"@
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/fields/tanstack-table-view-options.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\r\nimport { Table } from \"@tanstack/react-table\";\r\n\r\nimport { ChevronDownIcon } from \"lucide-react\";\r\nimport { Button } from \"@ayasofyazilim/ui/components/button\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n} from \"@ayasofyazilim/ui/components/dropdown-menu\";\r\nimport {\r\n TanstackTableSelectedRowActionType,\r\n TanstackTableTableActionsType,\r\n} from \"../types\";\r\n\r\ninterface TanstackTableViewOptionsProps<TData> {\r\n editable?: boolean;\r\n selectedRowAction?: TanstackTableSelectedRowActionType<TData>;\r\n setTableAction: (actions: TanstackTableTableActionsType<TData>) => void;\r\n table: Table<TData>;\r\n tableActions?: TanstackTableTableActionsType<TData>[];\r\n tableData: TData[];\r\n}\r\n\r\nfunction TablePrimaryActionButton<TData>({\r\n table,\r\n action,\r\n setRowAction,\r\n}: {\r\n action: TanstackTableTableActionsType<TData>;\r\n setRowAction: (actions: TanstackTableTableActionsType<TData>) => void;\r\n table: Table<TData>;\r\n}) {\r\n return (\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n type=\"button\"\r\n onClick={() => handleActionOnClick(table, action, setRowAction)}\r\n >\r\n {action?.icon && <action.icon className=\"mr-2 h-4 w-4\" />}\r\n {action.cta?.toString()}\r\n </Button>\r\n );\r\n}\r\nfunction handleActionOnClick<TData>(\r\n table: Table<TData>,\r\n action: TanstackTableTableActionsType<TData>,\r\n setRowAction: (actions: TanstackTableTableActionsType<TData>) => void,\r\n) {\r\n if (action.type === \"simple\") {\r\n action.onClick();\r\n return;\r\n }\r\n if (action.type === \"create-row\") {\r\n table.options.meta?.addRow(-1, \"\", null);\r\n action?.onClick?.();\r\n return;\r\n }\r\n setRowAction(action);\r\n}\r\n\r\nexport function TanstackTableViewOptions<TData>(\r\n props: TanstackTableViewOptionsProps<TData>,\r\n) {\r\n const {\r\n table,\r\n tableActions,\r\n selectedRowAction,\r\n setTableAction: setRowAction,\r\n tableData,\r\n editable,\r\n } = props;\r\n\r\n // Filter actions based on condition, keeping backward compatibility\r\n const filteredActions =\r\n tableActions?.filter(\r\n (action) => !action.condition || action.condition(tableData),\r\n ) ?? [];\r\n\r\n const primaryAction = filteredActions[0];\r\n const secondaryAction = filteredActions[1];\r\n const otherActions = filteredActions.slice(2);\r\n const selectedRowCount = Object.keys(table.getState().rowSelection).length;\r\n\r\n return (\r\n <>\r\n {selectedRowAction && selectedRowCount > 0 && (\r\n <div\r\n className={\r\n primaryAction &&\r\n ((primaryAction.condition &&\r\n primaryAction.condition?.(tableData)) ||\r\n true) &&\r\n otherActions &&\r\n \"mr-2\"\r\n }\r\n >\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n type=\"button\"\r\n className=\"ml-2\"\r\n onClick={() => {\r\n const selectedRowIds = table.getState().rowSelection;\r\n selectedRowAction.onClick(Object.keys(selectedRowIds), tableData);\r\n }}\r\n >\r\n {selectedRowAction?.icon && (\r\n <selectedRowAction.icon className=\"mr-2 h-4 w-4\" />\r\n )}\r\n {`${selectedRowAction.cta?.toString()} (${selectedRowCount})`}\r\n </Button>\r\n </div>\r\n )}\r\n\r\n {editable && null}\r\n\r\n <div className=\"space-x-2\">\r\n {primaryAction && (\r\n <TablePrimaryActionButton\r\n table={table}\r\n action={primaryAction}\r\n setRowAction={setRowAction}\r\n />\r\n )}\r\n {secondaryAction && (\r\n <TablePrimaryActionButton\r\n table={table}\r\n action={secondaryAction}\r\n setRowAction={setRowAction}\r\n />\r\n )}\r\n {otherActions && otherActions.length > 0 && (\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n size=\"sm\"\r\n type=\"button\"\r\n variant=\"outline\"\r\n className=\"px-2\"\r\n >\r\n <ChevronDownIcon className=\"size-4\" />\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\" className=\"w-40\">\r\n {otherActions?.map((action) => (\r\n <DropdownMenuItem key={action.cta}>\r\n <Button\r\n variant=\"ghost\"\r\n type=\"button\"\r\n size=\"sm\"\r\n className=\"justify-start w-full\"\r\n onClick={() =>\r\n handleActionOnClick(table, action, setRowAction)\r\n }\r\n >\r\n {action.icon && <action.icon className=\"w-4 h-4\" />}\r\n <span className=\"ml-2\">{action.cta}</span>\r\n </Button>\r\n </DropdownMenuItem>\r\n ))}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n )}\r\n </div>\r\n </>\r\n );\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import Link from "next/link";
|
|
4
|
-
import { Badge } from "@
|
|
5
|
-
import { Checkbox } from "@
|
|
6
|
-
import { cn } from "@
|
|
4
|
+
import { Badge } from "@ayasofyazilim/ui/components/badge";
|
|
5
|
+
import { Checkbox } from "@ayasofyazilim/ui/components/checkbox";
|
|
6
|
+
import { cn } from "@ayasofyazilim/ui/lib/utils";
|
|
7
7
|
import { tanstackTableCreateTitleWithLanguageData, testConditions } from ".";
|
|
8
8
|
import DateTooltip from "../../date-tooltip";
|
|
9
9
|
import { TanstackTableColumnHeader } from "../fields";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef, Row } from \"@tanstack/react-table\";\r\nimport Link from \"next/link\";\r\nimport { Badge } from \"@repo/ayasofyazilim-ui/components/badge\";\r\nimport { Checkbox } from \"@repo/ayasofyazilim-ui/components/checkbox\";\r\nimport { cn } from \"@repo/ayasofyazilim-ui/lib/utils\";\r\nimport { tanstackTableCreateTitleWithLanguageData, testConditions } from \".\";\r\nimport DateTooltip, { Localization } from \"../../date-tooltip\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableColumCell,\r\n TanstackTableColumnBadge,\r\n TanstackTableColumnClassNames,\r\n TanstackTableColumnIcon,\r\n TanstackTableColumnLink,\r\n TanstackTableConfig,\r\n TanstackTableCreateColumnsByRowId,\r\n TanstackTableFacetedFilterType,\r\n} from \"../types\";\r\nimport { JSX } from \"react\";\r\n\r\nexport function createCell<T>(props: {\r\n accessorKey: keyof T;\r\n row: Row<T>;\r\n link?: TanstackTableColumnLink;\r\n faceted?: TanstackTableFacetedFilterType[];\r\n badge?: TanstackTableColumnBadge;\r\n icon?: TanstackTableColumnIcon;\r\n className?: TanstackTableColumnClassNames[];\r\n expandRowTrigger?: boolean;\r\n format?: string;\r\n custom?: TanstackTableColumCell<T>;\r\n config?: TanstackTableConfig;\r\n localization: Localization;\r\n}) {\r\n const {\r\n accessorKey,\r\n row,\r\n link,\r\n badge,\r\n icon,\r\n className,\r\n expandRowTrigger,\r\n format,\r\n custom,\r\n config,\r\n faceted,\r\n localization,\r\n } = props;\r\n\r\n let content: JSX.Element | string | null =\r\n row.getValue(accessorKey.toString())?.toString() || \"\";\r\n if (format) {\r\n if (format === \"date\" || format === \"date-time\") {\r\n content = content ? (\r\n <DateTooltip\r\n date={content}\r\n dateOptions={config?.dateOptions}\r\n localization={localization}\r\n />\r\n ) : (\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n if (icon) {\r\n const position = icon.position || \"before\";\r\n content = (\r\n <div className=\"inline-flex\">\r\n {icon.icon && position === \"before\" && (\r\n <icon.icon className={cn(\"w-4 h-4 mr-2\", icon.iconClassName)} />\r\n )}\r\n {row.getValue(accessorKey.toString())}\r\n {icon.icon && position === \"after\" && (\r\n <icon.icon className={cn(\"w-4 h-4 ml-2\", icon.iconClassName)} />\r\n )}\r\n </div>\r\n );\r\n }\r\n if (badge) {\r\n const position: { before: JSX.Element[]; after: JSX.Element[] } = {\r\n before: [],\r\n after: [],\r\n };\r\n badge.values.forEach((item) => {\r\n const itemPosition = item.position || \"before\";\r\n item.conditions?.forEach((condition) => {\r\n if (condition.when(row.getValue(condition.conditionAccessorKey))) {\r\n position[itemPosition].push(\r\n <Badge\r\n variant=\"outline\"\r\n className={item.badgeClassName}\r\n key={item.label}\r\n >\r\n {item.label}\r\n </Badge>\r\n );\r\n }\r\n return null;\r\n });\r\n });\r\n content = (\r\n <>\r\n {position.before}\r\n {!badge.hideColumnValue && content}\r\n {position.after}\r\n </>\r\n );\r\n }\r\n if (faceted) {\r\n const facetedItem = faceted.find(\r\n (item) =>\r\n item.when?.(row.getValue(accessorKey.toString())) ||\r\n row.getValue(accessorKey.toString()) === item.value\r\n );\r\n if (facetedItem) {\r\n content = (\r\n <div className={cn(\"flex items-center\", facetedItem.className)}>\r\n {facetedItem.icon && (\r\n <facetedItem.icon\r\n className={cn(\r\n \"text-muted-foreground mr-2 h-4 w-4\",\r\n facetedItem.iconClassName\r\n )}\r\n />\r\n )}\r\n {facetedItem.hideColumnValue ? \"\" : <span>{facetedItem.label}</span>}\r\n </div>\r\n );\r\n }\r\n }\r\n const containerClassName = className\r\n ?.map((item) => {\r\n if (testConditions(item.conditions, row)) {\r\n return item.className;\r\n }\r\n return null;\r\n })\r\n .join(\" \");\r\n\r\n if (custom) content = custom.content(row.original, row);\r\n if (!link || !testConditions(link.conditions, row)) {\r\n if (expandRowTrigger) {\r\n return (\r\n <button\r\n type=\"button\"\r\n onClick={row.getToggleExpandedHandler()}\r\n data-testid={`expand-row-${accessorKey.toString()}`}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2 cursor-pointer\",\r\n containerClassName\r\n )}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n return (\r\n <div className={cn(\" flex items-center gap-2\", containerClassName)}>\r\n {content}\r\n </div>\r\n );\r\n }\r\n let url = link.prefix;\r\n if (link.targetAccessorKey) {\r\n url += `/${row._getAllCellsByColumnId()?.[link.targetAccessorKey || \"\"]?.getValue()?.toString()}`;\r\n }\r\n if (link.suffix) {\r\n url += `/${link.suffix}`;\r\n }\r\n return (\r\n <Link\r\n href={url}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2\",\r\n containerClassName\r\n )}\r\n >\r\n {content}\r\n </Link>\r\n );\r\n}\r\nexport function tanstackTableCreateColumnsByRowData<T>(\r\n params: TanstackTableCreateColumnsByRowId<T>\r\n) {\r\n const { rows, config } = params;\r\n\r\n const {\r\n excludeColumns,\r\n languageData,\r\n links,\r\n faceted,\r\n badges,\r\n classNames,\r\n icons,\r\n expandRowTrigger,\r\n custom,\r\n localization,\r\n onSelectedRowChange,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n if (params.selectableRows) {\r\n columns.push({\r\n size: 64,\r\n id: \"select\",\r\n header: ({ table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={\r\n table\r\n .getRowModel()\r\n .rows.filter((row) => !params.disabledRowIds?.includes(row.id))\r\n .every((row) => row.getIsSelected()) &&\r\n table\r\n .getRowModel()\r\n .rows.some(\r\n (row) =>\r\n !params.disabledRowIds?.includes(row.id) &&\r\n row.getIsSelected()\r\n )\r\n }\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getRowModel().rows.forEach((row) => {\r\n if (!params.disabledRowIds?.includes(row.id)) {\r\n row.toggleSelected(!!value);\r\n if (value) {\r\n selectedRows.push(row.original);\r\n }\r\n }\r\n });\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n aria-label=\"Select all\"\r\n className=\"translate-y-0.5 align-middle\"\r\n />\r\n </div>\r\n ),\r\n\r\n cell: ({ row, table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getSelectedRowModel().rows.forEach((row) => {\r\n selectedRows.push(row.original);\r\n });\r\n if (value) {\r\n selectedRows.push(row.original);\r\n } else {\r\n selectedRows.splice(selectedRows.indexOf(row.original), 1);\r\n }\r\n row.toggleSelected(!!value);\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n disabled={params.disabledRowIds?.some((id) => id === row.id)}\r\n aria-label=\"Select row\"\r\n className=\"translate-y-0.5 align-top\"\r\n />\r\n </div>\r\n ),\r\n enableSorting: false,\r\n enableHiding: false,\r\n });\r\n }\r\n const rowKeys = Object.keys(rows) as (keyof T)[];\r\n rowKeys\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey: accessorKey.toString(),\r\n });\r\n const link = links?.[accessorKey as keyof T];\r\n const { format } = rows[accessorKey];\r\n const column: ColumnDef<T> = {\r\n id: accessorKey.toString(),\r\n accessorKey,\r\n meta: title,\r\n header:\r\n !custom?.[accessorKey] || custom?.[accessorKey]?.showHeader\r\n ? ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n )\r\n : undefined,\r\n cell: ({ row }) =>\r\n createCell<T>({\r\n accessorKey,\r\n row,\r\n link,\r\n faceted: faceted?.[accessorKey]?.options,\r\n badge: badges?.[accessorKey],\r\n icon: icons?.[accessorKey],\r\n className: classNames?.[accessorKey],\r\n expandRowTrigger: expandRowTrigger === accessorKey,\r\n format,\r\n custom: custom?.[accessorKey],\r\n config,\r\n localization,\r\n }),\r\n };\r\n if (faceted?.[accessorKey]) {\r\n column.filterFn = (row, id, value) => value.includes(row.getValue(id));\r\n }\r\n columns.push(column);\r\n });\r\n\r\n return columns;\r\n}\r\n"],"mappings":"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","names":["row","column"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef, Row } from \"@tanstack/react-table\";\r\nimport Link from \"next/link\";\r\nimport { Badge } from \"@ayasofyazilim/ui/components/badge\";\r\nimport { Checkbox } from \"@ayasofyazilim/ui/components/checkbox\";\r\nimport { cn } from \"@ayasofyazilim/ui/lib/utils\";\r\nimport { tanstackTableCreateTitleWithLanguageData, testConditions } from \".\";\r\nimport DateTooltip, { Localization } from \"../../date-tooltip\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableColumCell,\r\n TanstackTableColumnBadge,\r\n TanstackTableColumnClassNames,\r\n TanstackTableColumnIcon,\r\n TanstackTableColumnLink,\r\n TanstackTableConfig,\r\n TanstackTableCreateColumnsByRowId,\r\n TanstackTableFacetedFilterType,\r\n} from \"../types\";\r\nimport { JSX } from \"react\";\r\n\r\nexport function createCell<T>(props: {\r\n accessorKey: keyof T;\r\n row: Row<T>;\r\n link?: TanstackTableColumnLink;\r\n faceted?: TanstackTableFacetedFilterType[];\r\n badge?: TanstackTableColumnBadge;\r\n icon?: TanstackTableColumnIcon;\r\n className?: TanstackTableColumnClassNames[];\r\n expandRowTrigger?: boolean;\r\n format?: string;\r\n custom?: TanstackTableColumCell<T>;\r\n config?: TanstackTableConfig;\r\n localization: Localization;\r\n}) {\r\n const {\r\n accessorKey,\r\n row,\r\n link,\r\n badge,\r\n icon,\r\n className,\r\n expandRowTrigger,\r\n format,\r\n custom,\r\n config,\r\n faceted,\r\n localization,\r\n } = props;\r\n\r\n let content: JSX.Element | string | null =\r\n row.getValue(accessorKey.toString())?.toString() || \"\";\r\n if (format) {\r\n if (format === \"date\" || format === \"date-time\") {\r\n content = content ? (\r\n <DateTooltip\r\n date={content}\r\n dateOptions={config?.dateOptions}\r\n localization={localization}\r\n />\r\n ) : (\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n if (icon) {\r\n const position = icon.position || \"before\";\r\n content = (\r\n <div className=\"inline-flex\">\r\n {icon.icon && position === \"before\" && (\r\n <icon.icon className={cn(\"w-4 h-4 mr-2\", icon.iconClassName)} />\r\n )}\r\n {row.getValue(accessorKey.toString())}\r\n {icon.icon && position === \"after\" && (\r\n <icon.icon className={cn(\"w-4 h-4 ml-2\", icon.iconClassName)} />\r\n )}\r\n </div>\r\n );\r\n }\r\n if (badge) {\r\n const position: { before: JSX.Element[]; after: JSX.Element[] } = {\r\n before: [],\r\n after: [],\r\n };\r\n badge.values.forEach((item) => {\r\n const itemPosition = item.position || \"before\";\r\n item.conditions?.forEach((condition) => {\r\n if (condition.when(row.getValue(condition.conditionAccessorKey))) {\r\n position[itemPosition].push(\r\n <Badge\r\n variant=\"outline\"\r\n className={item.badgeClassName}\r\n key={item.label}\r\n >\r\n {item.label}\r\n </Badge>,\r\n );\r\n }\r\n return null;\r\n });\r\n });\r\n content = (\r\n <>\r\n {position.before}\r\n {!badge.hideColumnValue && content}\r\n {position.after}\r\n </>\r\n );\r\n }\r\n if (faceted) {\r\n const facetedItem = faceted.find(\r\n (item) =>\r\n item.when?.(row.getValue(accessorKey.toString())) ||\r\n row.getValue(accessorKey.toString()) === item.value,\r\n );\r\n if (facetedItem) {\r\n content = (\r\n <div className={cn(\"flex items-center\", facetedItem.className)}>\r\n {facetedItem.icon && (\r\n <facetedItem.icon\r\n className={cn(\r\n \"text-muted-foreground mr-2 h-4 w-4\",\r\n facetedItem.iconClassName,\r\n )}\r\n />\r\n )}\r\n {facetedItem.hideColumnValue ? \"\" : <span>{facetedItem.label}</span>}\r\n </div>\r\n );\r\n }\r\n }\r\n const containerClassName = className\r\n ?.map((item) => {\r\n if (testConditions(item.conditions, row)) {\r\n return item.className;\r\n }\r\n return null;\r\n })\r\n .join(\" \");\r\n\r\n if (custom) content = custom.content(row.original, row);\r\n if (!link || !testConditions(link.conditions, row)) {\r\n if (expandRowTrigger) {\r\n return (\r\n <button\r\n type=\"button\"\r\n onClick={row.getToggleExpandedHandler()}\r\n data-testid={`expand-row-${accessorKey.toString()}`}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2 cursor-pointer\",\r\n containerClassName,\r\n )}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n return (\r\n <div className={cn(\" flex items-center gap-2\", containerClassName)}>\r\n {content}\r\n </div>\r\n );\r\n }\r\n let url = link.prefix;\r\n if (link.targetAccessorKey) {\r\n url += `/${row._getAllCellsByColumnId()?.[link.targetAccessorKey || \"\"]?.getValue()?.toString()}`;\r\n }\r\n if (link.suffix) {\r\n url += `/${link.suffix}`;\r\n }\r\n return (\r\n <Link\r\n href={url}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2\",\r\n containerClassName,\r\n )}\r\n >\r\n {content}\r\n </Link>\r\n );\r\n}\r\nexport function tanstackTableCreateColumnsByRowData<T>(\r\n params: TanstackTableCreateColumnsByRowId<T>,\r\n) {\r\n const { rows, config } = params;\r\n\r\n const {\r\n excludeColumns,\r\n languageData,\r\n links,\r\n faceted,\r\n badges,\r\n classNames,\r\n icons,\r\n expandRowTrigger,\r\n custom,\r\n localization,\r\n onSelectedRowChange,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n if (params.selectableRows) {\r\n columns.push({\r\n size: 64,\r\n id: \"select\",\r\n header: ({ table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={\r\n table\r\n .getRowModel()\r\n .rows.filter((row) => !params.disabledRowIds?.includes(row.id))\r\n .every((row) => row.getIsSelected()) &&\r\n table\r\n .getRowModel()\r\n .rows.some(\r\n (row) =>\r\n !params.disabledRowIds?.includes(row.id) &&\r\n row.getIsSelected(),\r\n )\r\n }\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getRowModel().rows.forEach((row) => {\r\n if (!params.disabledRowIds?.includes(row.id)) {\r\n row.toggleSelected(!!value);\r\n if (value) {\r\n selectedRows.push(row.original);\r\n }\r\n }\r\n });\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n aria-label=\"Select all\"\r\n className=\"translate-y-0.5 align-middle\"\r\n />\r\n </div>\r\n ),\r\n\r\n cell: ({ row, table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getSelectedRowModel().rows.forEach((row) => {\r\n selectedRows.push(row.original);\r\n });\r\n if (value) {\r\n selectedRows.push(row.original);\r\n } else {\r\n selectedRows.splice(selectedRows.indexOf(row.original), 1);\r\n }\r\n row.toggleSelected(!!value);\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n disabled={params.disabledRowIds?.some((id) => id === row.id)}\r\n aria-label=\"Select row\"\r\n className=\"translate-y-0.5 align-top\"\r\n />\r\n </div>\r\n ),\r\n enableSorting: false,\r\n enableHiding: false,\r\n });\r\n }\r\n const rowKeys = Object.keys(rows) as (keyof T)[];\r\n rowKeys\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey: accessorKey.toString(),\r\n });\r\n const link = links?.[accessorKey as keyof T];\r\n const { format } = rows[accessorKey];\r\n const column: ColumnDef<T> = {\r\n id: accessorKey.toString(),\r\n accessorKey,\r\n meta: title,\r\n header:\r\n !custom?.[accessorKey] || custom?.[accessorKey]?.showHeader\r\n ? ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n )\r\n : undefined,\r\n cell: ({ row }) =>\r\n createCell<T>({\r\n accessorKey,\r\n row,\r\n link,\r\n faceted: faceted?.[accessorKey]?.options,\r\n badge: badges?.[accessorKey],\r\n icon: icons?.[accessorKey],\r\n className: classNames?.[accessorKey],\r\n expandRowTrigger: expandRowTrigger === accessorKey,\r\n format,\r\n custom: custom?.[accessorKey],\r\n config,\r\n localization,\r\n }),\r\n };\r\n if (faceted?.[accessorKey]) {\r\n column.filterFn = (row, id, value) => value.includes(row.getValue(id));\r\n }\r\n columns.push(column);\r\n });\r\n\r\n return columns;\r\n}\r\n"],"mappings":"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","names":["row","column"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
|
-
import { Input } from "@
|
|
4
|
+
import { Input } from "@ayasofyazilim/ui/components/input";
|
|
5
5
|
import {
|
|
6
6
|
Select,
|
|
7
7
|
SelectContent,
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
SelectItem,
|
|
10
10
|
SelectTrigger,
|
|
11
11
|
SelectValue
|
|
12
|
-
} from "@
|
|
13
|
-
import { Switch } from "@
|
|
14
|
-
import { cn } from "@
|
|
12
|
+
} from "@ayasofyazilim/ui/components/select";
|
|
13
|
+
import { Switch } from "@ayasofyazilim/ui/components/switch";
|
|
14
|
+
import { cn } from "@ayasofyazilim/ui/lib/utils";
|
|
15
15
|
import { createCell, tanstackTableCreateTitleWithLanguageData } from ".";
|
|
16
16
|
import { TanstackTableColumnHeader } from "../fields";
|
|
17
|
-
import { DatePicker } from "@
|
|
17
|
+
import { DatePicker } from "@ayasofyazilim/ui/custom/date-picker";
|
|
18
18
|
function tanstackTableEditableColumnsByRowData(params) {
|
|
19
19
|
const {
|
|
20
20
|
rows,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/editable-columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef } from \"@tanstack/react-table\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Input } from \"@repo/ayasofyazilim-ui/components/input\";\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@repo/ayasofyazilim-ui/components/select\";\r\nimport { Switch } from \"@repo/ayasofyazilim-ui/components/switch\";\r\nimport { cn } from \"@repo/ayasofyazilim-ui/lib/utils\";\r\nimport { createCell, tanstackTableCreateTitleWithLanguageData } from \".\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableCreateColumnsByRowId,\r\n TanstacktableEditableColumnsByRowId,\r\n} from \"../types\";\r\nimport { DatePicker } from \"@repo/ayasofyazilim-ui/custom/date-picker\";\r\n\r\nexport function tanstackTableEditableColumnsByRowData<T>(\r\n params: TanstacktableEditableColumnsByRowId<T> &\r\n Omit<TanstackTableCreateColumnsByRowId<T>, \"rows\" | \"selectableRows\">\r\n) {\r\n const {\r\n rows,\r\n excludeColumns,\r\n languageData,\r\n editableColumns,\r\n config,\r\n faceted,\r\n links,\r\n badges,\r\n classNames,\r\n custom,\r\n expandRowTrigger,\r\n icons,\r\n localization,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n\r\n Object.keys(rows)\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey,\r\n });\r\n const column: ColumnDef<T> = {\r\n id: accessorKey,\r\n accessorKey,\r\n meta: title,\r\n header: ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n ),\r\n cell: ({ getValue, row, column: { id }, table }) => {\r\n const _accesorKey = accessorKey as keyof T;\r\n if (editableColumns && !editableColumns.includes(_accesorKey)) {\r\n return createCell<T>({\r\n accessorKey: _accesorKey,\r\n row,\r\n link: links?.[_accesorKey],\r\n faceted: faceted?.[_accesorKey]?.options,\r\n badge: badges?.[_accesorKey],\r\n icon: icons?.[_accesorKey],\r\n className: classNames?.[_accesorKey],\r\n expandRowTrigger: expandRowTrigger === _accesorKey,\r\n format: rows[accessorKey]?.format,\r\n custom: custom?.[_accesorKey],\r\n config,\r\n localization,\r\n });\r\n }\r\n const initialValue = (getValue() as string)?.toString() || \"\";\r\n const [value, setValue] = useState(initialValue);\r\n const rowId = row.index.toString();\r\n const isRowSelected = table.getRow(rowId)?.getIsSelected();\r\n\r\n // When the input is blurred, we'll call our table meta's updateData function\r\n const onBlur = () => {\r\n let $value: string | number | boolean;\r\n switch (rows[accessorKey]?.type) {\r\n case \"number\":\r\n $value = Number(value);\r\n break;\r\n case \"boolean\":\r\n $value = value === \"true\";\r\n break;\r\n default:\r\n $value = value;\r\n }\r\n table.options.meta?.updateData(row.index, id, $value);\r\n };\r\n\r\n function handleValueChange(newValue: string) {\r\n setValue(newValue);\r\n if (isRowSelected && newValue === initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: false,\r\n }));\r\n return;\r\n }\r\n\r\n if (!isRowSelected && newValue !== initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: true,\r\n }));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(initialValue);\r\n }, [initialValue]);\r\n\r\n if (rows[accessorKey]?.enum) {\r\n return (\r\n <Select\r\n value={value as string}\r\n onValueChange={(_value) => {\r\n handleValueChange(_value);\r\n const $value =\r\n rows[accessorKey]?.type === \"number\"\r\n ? Number(_value)\r\n : _value;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n >\r\n <SelectTrigger\r\n className={cn(\r\n \"w-[180px] min-w-max border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <SelectValue\r\n placeholder={\r\n (languageData?.[\r\n accessorKey as keyof typeof languageData\r\n ] as string) || accessorKey\r\n }\r\n />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectGroup>\r\n {rows[accessorKey]?.enum?.map((item) => (\r\n <SelectItem key={item.value} value={item.value}>\r\n {item.label}\r\n </SelectItem>\r\n ))}\r\n </SelectGroup>\r\n </SelectContent>\r\n </Select>\r\n );\r\n }\r\n if (rows[accessorKey]?.type === \"boolean\") {\r\n return (\r\n <div className=\"text-center\">\r\n <Switch\r\n className=\"align-middle\"\r\n checked={value === \"true\"}\r\n onBlur={onBlur}\r\n onCheckedChange={(_value) => {\r\n handleValueChange(String(value));\r\n table.options.meta?.updateData(row.index, id, _value);\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n if (rows[accessorKey]?.format === \"date-time\") {\r\n const date = new Date(value);\r\n return (\r\n <div className=\"text-center\">\r\n <DatePicker\r\n id={`${accessorKey}_date`}\r\n defaultValue={\r\n date instanceof Date && !Number.isNaN(date.getTime())\r\n ? date\r\n : undefined\r\n }\r\n onChange={(date) => {\r\n const $value =\r\n rows[accessorKey]?.format === \"date-time\"\r\n ? date?.toISOString()\r\n : date;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n classNames={{\r\n dateInput: \"border-none rounded-none\",\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n return (\r\n <Input\r\n value={value as string}\r\n className={cn(\r\n \"w-full border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\"\r\n )}\r\n placeholder={accessorKey}\r\n onChange={(e) => {\r\n handleValueChange(e.target.value);\r\n }}\r\n onBlur={onBlur}\r\n />\r\n );\r\n },\r\n };\r\n columns.push(column);\r\n });\r\n return columns;\r\n}\r\n"],"mappings":"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","names":["column","date"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/editable-columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef } from \"@tanstack/react-table\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Input } from \"@ayasofyazilim/ui/components/input\";\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@ayasofyazilim/ui/components/select\";\r\nimport { Switch } from \"@ayasofyazilim/ui/components/switch\";\r\nimport { cn } from \"@ayasofyazilim/ui/lib/utils\";\r\nimport { createCell, tanstackTableCreateTitleWithLanguageData } from \".\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableCreateColumnsByRowId,\r\n TanstacktableEditableColumnsByRowId,\r\n} from \"../types\";\r\nimport { DatePicker } from \"@ayasofyazilim/ui/custom/date-picker\";\r\n\r\nexport function tanstackTableEditableColumnsByRowData<T>(\r\n params: TanstacktableEditableColumnsByRowId<T> &\r\n Omit<TanstackTableCreateColumnsByRowId<T>, \"rows\" | \"selectableRows\">,\r\n) {\r\n const {\r\n rows,\r\n excludeColumns,\r\n languageData,\r\n editableColumns,\r\n config,\r\n faceted,\r\n links,\r\n badges,\r\n classNames,\r\n custom,\r\n expandRowTrigger,\r\n icons,\r\n localization,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n\r\n Object.keys(rows)\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey,\r\n });\r\n const column: ColumnDef<T> = {\r\n id: accessorKey,\r\n accessorKey,\r\n meta: title,\r\n header: ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n ),\r\n cell: ({ getValue, row, column: { id }, table }) => {\r\n const _accesorKey = accessorKey as keyof T;\r\n if (editableColumns && !editableColumns.includes(_accesorKey)) {\r\n return createCell<T>({\r\n accessorKey: _accesorKey,\r\n row,\r\n link: links?.[_accesorKey],\r\n faceted: faceted?.[_accesorKey]?.options,\r\n badge: badges?.[_accesorKey],\r\n icon: icons?.[_accesorKey],\r\n className: classNames?.[_accesorKey],\r\n expandRowTrigger: expandRowTrigger === _accesorKey,\r\n format: rows[accessorKey]?.format,\r\n custom: custom?.[_accesorKey],\r\n config,\r\n localization,\r\n });\r\n }\r\n const initialValue = (getValue() as string)?.toString() || \"\";\r\n const [value, setValue] = useState(initialValue);\r\n const rowId = row.index.toString();\r\n const isRowSelected = table.getRow(rowId)?.getIsSelected();\r\n\r\n // When the input is blurred, we'll call our table meta's updateData function\r\n const onBlur = () => {\r\n let $value: string | number | boolean;\r\n switch (rows[accessorKey]?.type) {\r\n case \"number\":\r\n $value = Number(value);\r\n break;\r\n case \"boolean\":\r\n $value = value === \"true\";\r\n break;\r\n default:\r\n $value = value;\r\n }\r\n table.options.meta?.updateData(row.index, id, $value);\r\n };\r\n\r\n function handleValueChange(newValue: string) {\r\n setValue(newValue);\r\n if (isRowSelected && newValue === initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: false,\r\n }));\r\n return;\r\n }\r\n\r\n if (!isRowSelected && newValue !== initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: true,\r\n }));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(initialValue);\r\n }, [initialValue]);\r\n\r\n if (rows[accessorKey]?.enum) {\r\n return (\r\n <Select\r\n value={value as string}\r\n onValueChange={(_value) => {\r\n handleValueChange(_value);\r\n const $value =\r\n rows[accessorKey]?.type === \"number\"\r\n ? Number(_value)\r\n : _value;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n >\r\n <SelectTrigger\r\n className={cn(\r\n \"w-[180px] min-w-max border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\",\r\n !value && \"text-muted-foreground\",\r\n )}\r\n >\r\n <SelectValue\r\n placeholder={\r\n (languageData?.[\r\n accessorKey as keyof typeof languageData\r\n ] as string) || accessorKey\r\n }\r\n />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectGroup>\r\n {rows[accessorKey]?.enum?.map((item) => (\r\n <SelectItem key={item.value} value={item.value}>\r\n {item.label}\r\n </SelectItem>\r\n ))}\r\n </SelectGroup>\r\n </SelectContent>\r\n </Select>\r\n );\r\n }\r\n if (rows[accessorKey]?.type === \"boolean\") {\r\n return (\r\n <div className=\"text-center\">\r\n <Switch\r\n className=\"align-middle\"\r\n checked={value === \"true\"}\r\n onBlur={onBlur}\r\n onCheckedChange={(_value) => {\r\n handleValueChange(String(value));\r\n table.options.meta?.updateData(row.index, id, _value);\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n if (rows[accessorKey]?.format === \"date-time\") {\r\n const date = new Date(value);\r\n return (\r\n <div className=\"text-center\">\r\n <DatePicker\r\n id={`${accessorKey}_date`}\r\n defaultValue={\r\n date instanceof Date && !Number.isNaN(date.getTime())\r\n ? date\r\n : undefined\r\n }\r\n onChange={(date) => {\r\n const $value =\r\n rows[accessorKey]?.format === \"date-time\"\r\n ? date?.toISOString()\r\n : date;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n classNames={{\r\n dateInput: \"border-none rounded-none\",\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n return (\r\n <Input\r\n value={value as string}\r\n className={cn(\r\n \"w-full border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\",\r\n )}\r\n placeholder={accessorKey}\r\n onChange={(e) => {\r\n handleValueChange(e.target.value);\r\n }}\r\n onBlur={onBlur}\r\n />\r\n );\r\n },\r\n };\r\n columns.push(column);\r\n });\r\n return columns;\r\n}\r\n"],"mappings":"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","names":["column","date"]}
|
package/dist/custom/timeline.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Slot } from "radix-ui";
|
|
5
|
-
import { cn } from "@
|
|
5
|
+
import { cn } from "@ayasofyazilim/ui/lib/utils";
|
|
6
6
|
const TimelineContext = React.createContext(
|
|
7
7
|
void 0
|
|
8
8
|
);
|