@ayasofyazilim/ui 0.0.0 → 0.0.2
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/aria/index.js +2 -0
- package/dist/aria/index.js.map +1 -0
- package/dist/aria/number-field.js +46 -0
- package/dist/aria/number-field.js.map +1 -0
- package/dist/components/accordion.js +66 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.js +148 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.js +69 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.js +12 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.js +55 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.js +62 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.js +104 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button-group.js +77 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +56 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.js +196 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.js +91 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.js +200 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.js +250 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.js +33 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.js +36 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/command.js +178 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.js +225 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.js +139 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.js +130 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.js +234 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty.js +100 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.js +231 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/form.js +124 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/hover-card.js +40 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.js +156 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.js +68 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.js +22 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/item.js +188 -0
- package/dist/components/item.js.map +1 -0
- package/dist/components/kbd.js +32 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.js +24 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menubar.js +253 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/navigation-menu.js +171 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.js +125 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.js +82 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.js +33 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.js +47 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.js +50 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.js +62 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.js +173 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.js +28 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.js +129 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.js +759 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.js +16 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.js +65 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.js +40 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/spinner.js +18 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stepper.js +220 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.js +33 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.js +131 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.js +69 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.js +19 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toggle-group.js +70 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.js +45 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.js +65 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/custom/action-button.js +38 -0
- package/dist/custom/action-button.js.map +1 -0
- package/dist/custom/async-select.js +249 -0
- package/dist/custom/async-select.js.map +1 -0
- package/dist/custom/awesome-not-found.js +113 -0
- package/dist/custom/awesome-not-found.js.map +1 -0
- package/dist/custom/charts/area-chart.js +125 -0
- package/dist/custom/charts/area-chart.js.map +1 -0
- package/dist/custom/charts/bar-chart.js +232 -0
- package/dist/custom/charts/bar-chart.js.map +1 -0
- package/dist/custom/charts/chart-card.js +71 -0
- package/dist/custom/charts/chart-card.js.map +1 -0
- package/dist/custom/charts/index.js +5 -0
- package/dist/custom/charts/index.js.map +1 -0
- package/dist/custom/charts/pie-chart.js +153 -0
- package/dist/custom/charts/pie-chart.js.map +1 -0
- package/dist/custom/charts/radar-chart.js +112 -0
- package/dist/custom/charts/radar-chart.js.map +1 -0
- package/dist/custom/checkbox-tree.js +70 -0
- package/dist/custom/checkbox-tree.js.map +1 -0
- package/dist/custom/combobox.js +233 -0
- package/dist/custom/combobox.js.map +1 -0
- package/dist/custom/confirm-dialog.js +90 -0
- package/dist/custom/confirm-dialog.js.map +1 -0
- package/dist/custom/country-selector.js +151 -0
- package/dist/custom/country-selector.js.map +1 -0
- package/dist/custom/date-picker/calendar-rac.js +91 -0
- package/dist/custom/date-picker/calendar-rac.js.map +1 -0
- package/dist/custom/date-picker/datefield-rac.js +77 -0
- package/dist/custom/date-picker/datefield-rac.js.map +1 -0
- package/dist/custom/date-picker/index.js +251 -0
- package/dist/custom/date-picker/index.js.map +1 -0
- package/dist/custom/date-picker/types/index.js +1 -0
- package/dist/custom/date-picker/types/index.js.map +1 -0
- package/dist/custom/date-picker/utils/index.js +30 -0
- package/dist/custom/date-picker/utils/index.js.map +1 -0
- package/dist/custom/date-picker-old.js +46 -0
- package/dist/custom/date-picker-old.js.map +1 -0
- package/dist/custom/date-tooltip.js +89 -0
- package/dist/custom/date-tooltip.js.map +1 -0
- package/dist/custom/document-scanner/consts.js +13 -0
- package/dist/custom/document-scanner/consts.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js +24 -0
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js +44 -0
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.js +60 -0
- package/dist/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/index.js +124 -0
- package/dist/custom/document-scanner/corner-adjustment/index.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/types.js +1 -0
- package/dist/custom/document-scanner/corner-adjustment/types.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/utils/clip-path.js +16 -0
- package/dist/custom/document-scanner/corner-adjustment/utils/clip-path.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/zoom-magnifier.js +85 -0
- package/dist/custom/document-scanner/corner-adjustment/zoom-magnifier.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-document-capture.js +61 -0
- package/dist/custom/document-scanner/hooks/use-document-capture.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-document-scanner.js +59 -0
- package/dist/custom/document-scanner/hooks/use-document-scanner.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-perspective-crop.js +31 -0
- package/dist/custom/document-scanner/hooks/use-perspective-crop.js.map +1 -0
- package/dist/custom/document-scanner/index.js +229 -0
- package/dist/custom/document-scanner/index.js.map +1 -0
- package/dist/custom/document-scanner/lib.js +289 -0
- package/dist/custom/document-scanner/lib.js.map +1 -0
- package/dist/custom/document-scanner/types.js +1 -0
- package/dist/custom/document-scanner/types.js.map +1 -0
- package/dist/custom/document-scanner/utils/perspective-correction.js +100 -0
- package/dist/custom/document-scanner/utils/perspective-correction.js.map +1 -0
- package/dist/custom/document-viewer/controllers.js +76 -0
- package/dist/custom/document-viewer/controllers.js.map +1 -0
- package/dist/custom/document-viewer/index.js +36 -0
- package/dist/custom/document-viewer/index.js.map +1 -0
- package/dist/custom/document-viewer/renderers/image.js +40 -0
- package/dist/custom/document-viewer/renderers/image.js.map +1 -0
- package/dist/custom/document-viewer/renderers/index.js +3 -0
- package/dist/custom/document-viewer/renderers/index.js.map +1 -0
- package/dist/custom/document-viewer/renderers/pdf.js +95 -0
- package/dist/custom/document-viewer/renderers/pdf.js.map +1 -0
- package/dist/custom/email-input/email.js +184 -0
- package/dist/custom/email-input/email.js.map +1 -0
- package/dist/custom/email-input/index.js +8 -0
- package/dist/custom/email-input/index.js.map +1 -0
- package/dist/custom/email-input/types.js +13 -0
- package/dist/custom/email-input/types.js.map +1 -0
- package/dist/custom/file-uploader.js +389 -0
- package/dist/custom/file-uploader.js.map +1 -0
- package/dist/custom/filter-component/fields/async-select.js +31 -0
- package/dist/custom/filter-component/fields/async-select.js.map +1 -0
- package/dist/custom/filter-component/fields/date.js +56 -0
- package/dist/custom/filter-component/fields/date.js.map +1 -0
- package/dist/custom/filter-component/fields/multi-select.js +28 -0
- package/dist/custom/filter-component/fields/multi-select.js.map +1 -0
- package/dist/custom/filter-component/index.js +149 -0
- package/dist/custom/filter-component/index.js.map +1 -0
- package/dist/custom/image-canvas.js +193 -0
- package/dist/custom/image-canvas.js.map +1 -0
- package/dist/custom/json-editor.js +30 -0
- package/dist/custom/json-editor.js.map +1 -0
- package/dist/custom/master-data-grid/components/dialogs/column-settings-dialog.js +84 -0
- package/dist/custom/master-data-grid/components/dialogs/column-settings-dialog.js.map +1 -0
- package/dist/custom/master-data-grid/components/dialogs/index.js +5 -0
- package/dist/custom/master-data-grid/components/dialogs/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/client-filter.js +310 -0
- package/dist/custom/master-data-grid/components/filters/client-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/filter-input.js +209 -0
- package/dist/custom/master-data-grid/components/filters/filter-input.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/index.js +9 -0
- package/dist/custom/master-data-grid/components/filters/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/inline-column-filter.js +188 -0
- package/dist/custom/master-data-grid/components/filters/inline-column-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js +65 -0
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/server-filter.js +213 -0
- package/dist/custom/master-data-grid/components/filters/server-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/master-data-grid.js +421 -0
- package/dist/custom/master-data-grid/components/master-data-grid.js.map +1 -0
- package/dist/custom/master-data-grid/components/pagination/index.js +5 -0
- package/dist/custom/master-data-grid/components/pagination/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/pagination/pagination.js +159 -0
- package/dist/custom/master-data-grid/components/pagination/pagination.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/cell-renderer.js +442 -0
- package/dist/custom/master-data-grid/components/table/cell-renderer.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/header-cell.js +116 -0
- package/dist/custom/master-data-grid/components/table/header-cell.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/index.js +5 -0
- package/dist/custom/master-data-grid/components/table/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/table-body-renderer.js +79 -0
- package/dist/custom/master-data-grid/components/table/table-body-renderer.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/virtual-body.js +86 -0
- package/dist/custom/master-data-grid/components/table/virtual-body.js.map +1 -0
- package/dist/custom/master-data-grid/components/toolbar/index.js +5 -0
- package/dist/custom/master-data-grid/components/toolbar/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/toolbar/toolbar.js +238 -0
- package/dist/custom/master-data-grid/components/toolbar/toolbar.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/index.js +7 -0
- package/dist/custom/master-data-grid/hooks/index.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-columns.js +278 -0
- package/dist/custom/master-data-grid/hooks/use-columns.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-editing.js +75 -0
- package/dist/custom/master-data-grid/hooks/use-editing.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-table-state-reducer.js +96 -0
- package/dist/custom/master-data-grid/hooks/use-table-state-reducer.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-table-state.js +25 -0
- package/dist/custom/master-data-grid/hooks/use-table-state.js.map +1 -0
- package/dist/custom/master-data-grid/index.js +5 -0
- package/dist/custom/master-data-grid/index.js.map +1 -0
- package/dist/custom/master-data-grid/types.js +1 -0
- package/dist/custom/master-data-grid/types.js.map +1 -0
- package/dist/custom/master-data-grid/utils/column-generator.js +203 -0
- package/dist/custom/master-data-grid/utils/column-generator.js.map +1 -0
- package/dist/custom/master-data-grid/utils/export-utils.js +46 -0
- package/dist/custom/master-data-grid/utils/export-utils.js.map +1 -0
- package/dist/custom/master-data-grid/utils/filter-fns.js +218 -0
- package/dist/custom/master-data-grid/utils/filter-fns.js.map +1 -0
- package/dist/custom/master-data-grid/utils/index.js +16 -0
- package/dist/custom/master-data-grid/utils/index.js.map +1 -0
- package/dist/custom/master-data-grid/utils/pinning-utils.js +70 -0
- package/dist/custom/master-data-grid/utils/pinning-utils.js.map +1 -0
- package/dist/custom/master-data-grid/utils/translation-utils.js +33 -0
- package/dist/custom/master-data-grid/utils/translation-utils.js.map +1 -0
- package/dist/custom/multi-select.js +339 -0
- package/dist/custom/multi-select.js.map +1 -0
- package/dist/custom/password-input.js +158 -0
- package/dist/custom/password-input.js.map +1 -0
- package/dist/custom/phone-input.js +127 -0
- package/dist/custom/phone-input.js.map +1 -0
- package/dist/custom/schema-form/custom/index.js +2 -0
- package/dist/custom/schema-form/custom/index.js.map +1 -0
- package/dist/custom/schema-form/custom/label.js +39 -0
- package/dist/custom/schema-form/custom/label.js.map +1 -0
- package/dist/custom/schema-form/fields/base-input-field.js +73 -0
- package/dist/custom/schema-form/fields/base-input-field.js.map +1 -0
- package/dist/custom/schema-form/fields/field.js +72 -0
- package/dist/custom/schema-form/fields/field.js.map +1 -0
- package/dist/custom/schema-form/fields/index.js +6 -0
- package/dist/custom/schema-form/fields/index.js.map +1 -0
- package/dist/custom/schema-form/fields/object.js +9 -0
- package/dist/custom/schema-form/fields/object.js.map +1 -0
- package/dist/custom/schema-form/fields/table-array/array-field-item.js +58 -0
- package/dist/custom/schema-form/fields/table-array/array-field-item.js.map +1 -0
- package/dist/custom/schema-form/fields/table-array/array-field-template.js +104 -0
- package/dist/custom/schema-form/fields/table-array/array-field-template.js.map +1 -0
- package/dist/custom/schema-form/index.js +219 -0
- package/dist/custom/schema-form/index.js.map +1 -0
- package/dist/custom/schema-form/templates/description.js +19 -0
- package/dist/custom/schema-form/templates/description.js.map +1 -0
- package/dist/custom/schema-form/templates/index.js +3 -0
- package/dist/custom/schema-form/templates/index.js.map +1 -0
- package/dist/custom/schema-form/templates/submit.js +31 -0
- package/dist/custom/schema-form/templates/submit.js.map +1 -0
- package/dist/custom/schema-form/types.js +1 -0
- package/dist/custom/schema-form/types.js.map +1 -0
- package/dist/custom/schema-form/utils/index.js +10 -0
- package/dist/custom/schema-form/utils/index.js.map +1 -0
- package/dist/custom/schema-form/utils/schema-dependency.js +349 -0
- package/dist/custom/schema-form/utils/schema-dependency.js.map +1 -0
- package/dist/custom/schema-form/utils/schemas.js +190 -0
- package/dist/custom/schema-form/utils/schemas.js.map +1 -0
- package/dist/custom/schema-form/utils/validation.js +19 -0
- package/dist/custom/schema-form/utils/validation.js.map +1 -0
- package/dist/custom/schema-form/widgets/boolean.js +73 -0
- package/dist/custom/schema-form/widgets/boolean.js.map +1 -0
- package/dist/custom/schema-form/widgets/combobox.js +222 -0
- package/dist/custom/schema-form/widgets/combobox.js.map +1 -0
- package/dist/custom/schema-form/widgets/date.js +56 -0
- package/dist/custom/schema-form/widgets/date.js.map +1 -0
- package/dist/custom/schema-form/widgets/email.js +37 -0
- package/dist/custom/schema-form/widgets/email.js.map +1 -0
- package/dist/custom/schema-form/widgets/index.js +11 -0
- package/dist/custom/schema-form/widgets/index.js.map +1 -0
- package/dist/custom/schema-form/widgets/password.js +42 -0
- package/dist/custom/schema-form/widgets/password.js.map +1 -0
- package/dist/custom/schema-form/widgets/phone.js +39 -0
- package/dist/custom/schema-form/widgets/phone.js.map +1 -0
- package/dist/custom/schema-form/widgets/select.js +78 -0
- package/dist/custom/schema-form/widgets/select.js.map +1 -0
- package/dist/custom/schema-form/widgets/selectable.js +25 -0
- package/dist/custom/schema-form/widgets/selectable.js.map +1 -0
- package/dist/custom/schema-form/widgets/string-array.js +237 -0
- package/dist/custom/schema-form/widgets/string-array.js.map +1 -0
- package/dist/custom/schema-form/widgets/url.js +53 -0
- package/dist/custom/schema-form/widgets/url.js.map +1 -0
- package/dist/custom/section-layout-v2.js +150 -0
- package/dist/custom/section-layout-v2.js.map +1 -0
- package/dist/custom/select-tabs.js +66 -0
- package/dist/custom/select-tabs.js.map +1 -0
- package/dist/custom/selectable.js +231 -0
- package/dist/custom/selectable.js.map +1 -0
- package/dist/custom/stepper.js +166 -0
- package/dist/custom/stepper.js.map +1 -0
- package/dist/custom/tab-layout.js +182 -0
- package/dist/custom/tab-layout.js.map +1 -0
- package/dist/custom/tanstack-table/fields/index.js +13 -0
- package/dist/custom/tanstack-table/fields/index.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-action-dialogs.js +76 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-action-dialogs.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js +47 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js +132 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js +131 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js +64 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js +135 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js +111 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js +65 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js +69 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js +119 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js +75 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js +41 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js +106 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js +132 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js.map +1 -0
- package/dist/custom/tanstack-table/index.js +217 -0
- package/dist/custom/tanstack-table/index.js.map +1 -0
- package/dist/custom/tanstack-table/types/index.js +1 -0
- package/dist/custom/tanstack-table/types/index.js.map +1 -0
- package/dist/custom/tanstack-table/utils/cell-with-actions.js +16 -0
- package/dist/custom/tanstack-table/utils/cell-with-actions.js.map +1 -0
- package/dist/custom/tanstack-table/utils/column-names.js +15 -0
- package/dist/custom/tanstack-table/utils/column-names.js.map +1 -0
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js +246 -0
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js.map +1 -0
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js +187 -0
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js.map +1 -0
- package/dist/custom/tanstack-table/utils/faceted-boolean-options.js +25 -0
- package/dist/custom/tanstack-table/utils/faceted-boolean-options.js.map +1 -0
- package/dist/custom/tanstack-table/utils/index.js +10 -0
- package/dist/custom/tanstack-table/utils/index.js.map +1 -0
- package/dist/custom/tanstack-table/utils/pinning-styles.js +38 -0
- package/dist/custom/tanstack-table/utils/pinning-styles.js.map +1 -0
- package/dist/custom/tanstack-table/utils/table.js +66 -0
- package/dist/custom/tanstack-table/utils/table.js.map +1 -0
- package/dist/custom/tanstack-table/utils/test-conditions.js +10 -0
- package/dist/custom/tanstack-table/utils/test-conditions.js.map +1 -0
- package/dist/custom/timeline.js +165 -0
- package/dist/custom/timeline.js.map +1 -0
- package/dist/custom/tree.js +130 -0
- package/dist/custom/tree.js.map +1 -0
- package/dist/custom/tscanify/browser.js +36 -0
- package/dist/custom/tscanify/browser.js.map +1 -0
- package/dist/custom/tscanify/index.js +34 -0
- package/dist/custom/tscanify/index.js.map +1 -0
- package/dist/custom/tscanify/tscanify-browser.js +363 -0
- package/dist/custom/tscanify/tscanify-browser.js.map +1 -0
- package/dist/custom/tscanify/tscanify.js +197 -0
- package/dist/custom/tscanify/tscanify.js.map +1 -0
- package/dist/custom/tscanify/types.js +1 -0
- package/dist/custom/tscanify/types.js.map +1 -0
- package/dist/custom/webcam.js +519 -0
- package/dist/custom/webcam.js.map +1 -0
- package/dist/hooks/use-callback-ref.js +15 -0
- package/dist/hooks/use-callback-ref.js.map +1 -0
- package/dist/hooks/use-controllable-state.js +49 -0
- package/dist/hooks/use-controllable-state.js.map +1 -0
- package/dist/hooks/use-debounce.js +18 -0
- package/dist/hooks/use-debounce.js.map +1 -0
- package/dist/hooks/use-is-visible.js +22 -0
- package/dist/hooks/use-is-visible.js.map +1 -0
- package/dist/hooks/use-media-query.js +19 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-mobile.js +21 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-on-window-resize.js +15 -0
- package/dist/hooks/use-on-window-resize.js.map +1 -0
- package/dist/hooks/use-scroll.js +20 -0
- package/dist/hooks/use-scroll.js.map +1 -0
- package/dist/lib/utils.js +48 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/zod.js +7 -0
- package/dist/lib/zod.js.map +1 -0
- package/package.json +34 -8
- package/src/aria/index.tsx +1 -1
- package/src/aria/number-field.tsx +41 -41
- package/src/components/accordion.tsx +66 -66
- package/src/components/alert-dialog.tsx +157 -157
- package/src/components/alert.tsx +70 -70
- package/src/components/aspect-ratio.tsx +11 -11
- package/src/components/avatar.tsx +53 -53
- package/src/components/badge.tsx +74 -67
- package/src/components/breadcrumb.tsx +109 -109
- package/src/components/button-group.tsx +83 -83
- package/src/components/button.tsx +69 -68
- package/src/components/calendar.tsx +216 -219
- package/src/components/card.tsx +92 -92
- package/src/components/carousel.tsx +241 -241
- package/src/components/chart.tsx +363 -363
- package/src/components/checkbox.tsx +32 -32
- package/src/components/collapsible.tsx +33 -33
- package/src/components/command.tsx +184 -184
- package/src/components/context-menu.tsx +252 -252
- package/src/components/dialog.tsx +144 -144
- package/src/components/drawer.tsx +135 -135
- package/src/components/dropdown-menu.tsx +258 -258
- package/src/components/empty.tsx +100 -100
- package/src/components/field.tsx +248 -248
- package/src/components/form.tsx +169 -169
- package/src/components/hover-card.tsx +44 -44
- package/src/components/input-group.tsx +170 -170
- package/src/components/input-otp.tsx +77 -77
- package/src/components/input.tsx +21 -21
- package/src/components/item.tsx +193 -193
- package/src/components/kbd.tsx +28 -28
- package/src/components/label.tsx +24 -24
- package/src/components/menubar.tsx +276 -276
- package/src/components/navigation-menu.tsx +168 -168
- package/src/components/pagination.tsx +127 -130
- package/src/components/popover.tsx +88 -88
- package/src/components/progress.tsx +31 -31
- package/src/components/radio-group.tsx +45 -45
- package/src/components/resizable.tsx +56 -56
- package/src/components/scroll-area.tsx +58 -58
- package/src/components/select.tsx +189 -189
- package/src/components/separator.tsx +28 -28
- package/src/components/sheet.tsx +140 -140
- package/src/components/sidebar.tsx +862 -862
- package/src/components/skeleton.tsx +13 -13
- package/src/components/slider.tsx +63 -63
- package/src/components/sonner.tsx +40 -40
- package/src/components/spinner.tsx +16 -16
- package/src/components/stepper.tsx +290 -291
- package/src/components/switch.tsx +31 -31
- package/src/components/table.tsx +133 -133
- package/src/components/tabs.tsx +66 -66
- package/src/components/textarea.tsx +18 -18
- package/src/components/toggle-group.tsx +83 -83
- package/src/components/toggle.tsx +47 -47
- package/src/components/tooltip.tsx +66 -66
- package/src/custom/action-button.tsx +45 -48
- package/src/custom/async-select.tsx +287 -287
- package/src/custom/awesome-not-found.tsx +116 -116
- package/src/custom/charts/area-chart.tsx +147 -147
- package/src/custom/charts/bar-chart.tsx +233 -233
- package/src/custom/charts/chart-card.tsx +103 -103
- package/src/custom/charts/index.tsx +16 -16
- package/src/custom/charts/pie-chart.tsx +168 -168
- package/src/custom/charts/radar-chart.tsx +126 -126
- package/src/custom/checkbox-tree.tsx +100 -100
- package/src/custom/combobox.tsx +296 -296
- package/src/custom/confirm-dialog.tsx +114 -102
- package/src/custom/country-selector.tsx +204 -204
- package/src/custom/date-picker/calendar-rac.tsx +109 -109
- package/src/custom/date-picker/datefield-rac.tsx +84 -84
- package/src/custom/date-picker/index.tsx +273 -273
- package/src/custom/date-picker/types/index.ts +4 -4
- package/src/custom/date-picker/utils/index.ts +42 -42
- package/src/custom/date-picker-old.tsx +50 -50
- package/src/custom/date-tooltip.tsx +98 -98
- package/src/custom/document-scanner/consts.ts +5 -5
- package/src/custom/document-scanner/corner-adjustment/action-buttons.tsx +33 -33
- package/src/custom/document-scanner/corner-adjustment/corner-handle.tsx +43 -43
- package/src/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.ts +85 -85
- package/src/custom/document-scanner/corner-adjustment/index.tsx +125 -125
- package/src/custom/document-scanner/corner-adjustment/types.ts +53 -53
- package/src/custom/document-scanner/corner-adjustment/utils/clip-path.ts +22 -22
- package/src/custom/document-scanner/corner-adjustment/zoom-magnifier.tsx +115 -115
- package/src/custom/document-scanner/hooks/use-document-capture.ts +81 -81
- package/src/custom/document-scanner/hooks/use-document-scanner.ts +80 -80
- package/src/custom/document-scanner/hooks/use-perspective-crop.ts +38 -38
- package/src/custom/document-scanner/index.tsx +255 -255
- package/src/custom/document-scanner/lib.ts +407 -407
- package/src/custom/document-scanner/types.ts +205 -205
- package/src/custom/document-scanner/utils/perspective-correction.ts +139 -139
- package/src/custom/document-viewer/controllers.tsx +98 -98
- package/src/custom/document-viewer/index.tsx +43 -43
- package/src/custom/document-viewer/renderers/image.tsx +37 -37
- package/src/custom/document-viewer/renderers/index.tsx +2 -2
- package/src/custom/document-viewer/renderers/pdf.tsx +105 -105
- package/src/custom/email-input/domains.json +159 -159
- package/src/custom/email-input/email.tsx +231 -229
- package/src/custom/email-input/index.tsx +4 -4
- package/src/custom/email-input/types.ts +104 -104
- package/src/custom/file-uploader.tsx +541 -541
- package/src/custom/filter-component/fields/async-select.tsx +33 -33
- package/src/custom/filter-component/fields/date.tsx +60 -60
- package/src/custom/filter-component/fields/multi-select.tsx +30 -30
- package/src/custom/filter-component/index.tsx +217 -217
- package/src/custom/image-canvas.tsx +260 -260
- package/src/custom/json-editor.tsx +22 -22
- package/src/custom/master-data-grid/components/dialogs/column-settings-dialog.tsx +100 -100
- package/src/custom/master-data-grid/components/dialogs/index.ts +1 -1
- package/src/custom/master-data-grid/components/filters/client-filter.tsx +369 -368
- package/src/custom/master-data-grid/components/filters/filter-input.tsx +256 -256
- package/src/custom/master-data-grid/components/filters/index.ts +3 -3
- package/src/custom/master-data-grid/components/filters/inline-column-filter.tsx +233 -233
- package/src/custom/master-data-grid/components/filters/multi-filter-dialog.tsx +91 -90
- package/src/custom/master-data-grid/components/filters/server-filter.tsx +265 -255
- package/src/custom/master-data-grid/components/master-data-grid.tsx +472 -472
- package/src/custom/master-data-grid/components/pagination/index.ts +1 -1
- package/src/custom/master-data-grid/components/pagination/pagination.tsx +178 -178
- package/src/custom/master-data-grid/components/table/cell-renderer.tsx +621 -634
- package/src/custom/master-data-grid/components/table/header-cell.tsx +162 -162
- package/src/custom/master-data-grid/components/table/index.ts +4 -4
- package/src/custom/master-data-grid/components/table/table-body-renderer.tsx +113 -113
- package/src/custom/master-data-grid/components/table/virtual-body.tsx +138 -138
- package/src/custom/master-data-grid/components/toolbar/index.ts +1 -1
- package/src/custom/master-data-grid/components/toolbar/toolbar.tsx +314 -314
- package/src/custom/master-data-grid/hooks/index.ts +3 -3
- package/src/custom/master-data-grid/hooks/use-columns.tsx +353 -332
- package/src/custom/master-data-grid/hooks/use-editing.ts +106 -106
- package/src/custom/master-data-grid/hooks/use-table-state-reducer.ts +157 -157
- package/src/custom/master-data-grid/hooks/use-table-state.ts +31 -31
- package/src/custom/master-data-grid/index.ts +16 -16
- package/src/custom/master-data-grid/types.ts +487 -466
- package/src/custom/master-data-grid/utils/column-generator.tsx +324 -306
- package/src/custom/master-data-grid/utils/export-utils.ts +67 -67
- package/src/custom/master-data-grid/utils/filter-fns.ts +310 -290
- package/src/custom/master-data-grid/utils/index.ts +8 -8
- package/src/custom/master-data-grid/utils/pinning-utils.ts +88 -88
- package/src/custom/master-data-grid/utils/translation-utils.ts +42 -42
- package/src/custom/multi-select.tsx +434 -432
- package/src/custom/password-input.tsx +194 -194
- package/src/custom/phone-input.tsx +172 -172
- package/src/custom/schema-form/custom/index.tsx +1 -1
- package/src/custom/schema-form/custom/label.tsx +53 -53
- package/src/custom/schema-form/fields/base-input-field.tsx +82 -82
- package/src/custom/schema-form/fields/field.tsx +67 -67
- package/src/custom/schema-form/fields/index.tsx +5 -5
- package/src/custom/schema-form/fields/object.tsx +12 -12
- package/src/custom/schema-form/fields/table-array/array-field-item.tsx +90 -90
- package/src/custom/schema-form/fields/table-array/array-field-template.tsx +115 -115
- package/src/custom/schema-form/index.tsx +259 -259
- package/src/custom/schema-form/templates/description.tsx +20 -20
- package/src/custom/schema-form/templates/index.tsx +2 -2
- package/src/custom/schema-form/templates/submit.tsx +32 -32
- package/src/custom/schema-form/types.ts +64 -64
- package/src/custom/schema-form/utils/index.ts +4 -4
- package/src/custom/schema-form/utils/schema-dependency.ts +655 -655
- package/src/custom/schema-form/utils/schemas.ts +289 -289
- package/src/custom/schema-form/utils/validation.ts +23 -23
- package/src/custom/schema-form/widgets/boolean.tsx +77 -77
- package/src/custom/schema-form/widgets/combobox.tsx +274 -274
- package/src/custom/schema-form/widgets/date.tsx +59 -59
- package/src/custom/schema-form/widgets/email.tsx +34 -34
- package/src/custom/schema-form/widgets/index.tsx +10 -10
- package/src/custom/schema-form/widgets/password.tsx +40 -40
- package/src/custom/schema-form/widgets/phone.tsx +40 -40
- package/src/custom/schema-form/widgets/select.tsx +105 -105
- package/src/custom/schema-form/widgets/selectable.tsx +25 -25
- package/src/custom/schema-form/widgets/string-array.tsx +296 -296
- package/src/custom/schema-form/widgets/url.tsx +56 -56
- package/src/custom/section-layout-v2.tsx +212 -212
- package/src/custom/select-tabs.tsx +109 -109
- package/src/custom/selectable.tsx +316 -316
- package/src/custom/stepper.tsx +236 -236
- package/src/custom/tab-layout.tsx +213 -213
- package/src/custom/tanstack-table/fields/index.tsx +12 -12
- package/src/custom/tanstack-table/fields/tanstack-table-action-dialogs.tsx +89 -89
- package/src/custom/tanstack-table/fields/tanstack-table-column-header.tsx +68 -66
- package/src/custom/tanstack-table/fields/tanstack-table-filter-date.tsx +180 -180
- package/src/custom/tanstack-table/fields/tanstack-table-filter-faceted.tsx +158 -158
- package/src/custom/tanstack-table/fields/tanstack-table-filter-text.tsx +73 -76
- package/src/custom/tanstack-table/fields/tanstack-table-pagination.tsx +136 -136
- package/src/custom/tanstack-table/fields/tanstack-table-plain-table.tsx +142 -142
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.tsx +77 -77
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.tsx +87 -87
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions.tsx +151 -151
- package/src/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.tsx +88 -88
- package/src/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.tsx +47 -47
- package/src/custom/tanstack-table/fields/tanstack-table-toolbar.tsx +143 -143
- package/src/custom/tanstack-table/fields/tanstack-table-view-options.tsx +171 -171
- package/src/custom/tanstack-table/index.tsx +244 -244
- package/src/custom/tanstack-table/types/index.ts +328 -328
- package/src/custom/tanstack-table/utils/cell-with-actions.tsx +21 -21
- package/src/custom/tanstack-table/utils/column-names.ts +26 -26
- package/src/custom/tanstack-table/utils/columns-by-row-data.tsx +312 -312
- package/src/custom/tanstack-table/utils/editable-columns-by-row-data.tsx +219 -219
- package/src/custom/tanstack-table/utils/faceted-boolean-options.tsx +22 -22
- package/src/custom/tanstack-table/utils/index.tsx +10 -10
- package/src/custom/tanstack-table/utils/pinning-styles.ts +57 -57
- package/src/custom/tanstack-table/utils/table.tsx +83 -83
- package/src/custom/tanstack-table/utils/test-conditions.ts +17 -17
- package/src/custom/timeline.tsx +208 -208
- package/src/custom/tree.tsx +202 -200
- package/src/custom/tscanify/browser.ts +66 -66
- package/src/custom/tscanify/index.ts +51 -51
- package/src/custom/tscanify/tscanify-browser.ts +522 -522
- package/src/custom/tscanify/tscanify.ts +262 -262
- package/src/custom/tscanify/types.ts +22 -22
- package/src/custom/webcam.tsx +737 -737
- package/src/hooks/use-callback-ref.ts +27 -27
- package/src/hooks/use-controllable-state.ts +67 -67
- package/src/hooks/use-debounce.ts +19 -19
- package/src/hooks/use-is-visible.ts +23 -23
- package/src/hooks/use-media-query.ts +21 -21
- package/src/hooks/use-mobile.ts +21 -21
- package/src/hooks/use-on-window-resize.ts +15 -15
- package/src/hooks/use-scroll.tsx +22 -22
- package/src/lib/utils.ts +61 -61
- package/src/lib/zod.ts +2 -2
- package/src/styles/core.css +57 -57
- package/src/test/email-input.test.tsx +217 -217
- package/src/test/password-input.test.tsx +92 -92
- package/src/test/select-tabs.test.tsx +302 -302
- package/src/test/selectable.test.tsx +1093 -1093
- package/__mocks__/canvas.ts +0 -8
- package/components.json +0 -21
- package/eslint.config.js +0 -4
- package/jest-environment.js +0 -37
- package/jest.config.ts +0 -47
- package/jest.setup.ts +0 -69
- package/postcss.config.mjs +0 -6
- package/tsconfig.json +0 -13
- package/tsconfig.lint.json +0 -8
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Switch } from "@repo/ayasofyazilim-ui/components/switch";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { Badge } from "../../../../components/badge";
|
|
6
|
+
import { Input } from "../../../../components/input";
|
|
7
|
+
import {
|
|
8
|
+
Select,
|
|
9
|
+
SelectContent,
|
|
10
|
+
SelectItem,
|
|
11
|
+
SelectTrigger,
|
|
12
|
+
SelectValue
|
|
13
|
+
} from "../../../../components/select";
|
|
14
|
+
import {
|
|
15
|
+
Tooltip,
|
|
16
|
+
TooltipContent,
|
|
17
|
+
TooltipTrigger
|
|
18
|
+
} from "../../../../components/tooltip";
|
|
19
|
+
import { DatePicker } from "../../../date-picker";
|
|
20
|
+
import DateTooltip from "../../../date-tooltip";
|
|
21
|
+
import { cn } from "../../../../lib/utils";
|
|
22
|
+
import { getTranslations } from "../../utils/translation-utils";
|
|
23
|
+
const DEBOUNCE_DELAY = 150;
|
|
24
|
+
const MAX_STRING_LENGTH = 100;
|
|
25
|
+
const BADGE_VARIANT_MAP = {
|
|
26
|
+
active: "default",
|
|
27
|
+
inactive: "secondary",
|
|
28
|
+
pending: "outline",
|
|
29
|
+
success: "default",
|
|
30
|
+
warning: "destructive",
|
|
31
|
+
error: "destructive"
|
|
32
|
+
};
|
|
33
|
+
function createZodSchema(schemaProperty, t) {
|
|
34
|
+
if (!schemaProperty) return z.unknown();
|
|
35
|
+
let schema;
|
|
36
|
+
switch (schemaProperty.type) {
|
|
37
|
+
case "string":
|
|
38
|
+
schema = z.string({
|
|
39
|
+
message: getTranslations("validation.invalidString", t)
|
|
40
|
+
});
|
|
41
|
+
if (schemaProperty.minLength !== void 0) {
|
|
42
|
+
schema = schema.min(
|
|
43
|
+
schemaProperty.minLength,
|
|
44
|
+
t?.["validation.min_length"] ? (t["validation.min_length"] ?? "").replace(
|
|
45
|
+
"{min}",
|
|
46
|
+
String(schemaProperty.minLength)
|
|
47
|
+
) : `Must be at least ${schemaProperty.minLength} characters`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
if (schemaProperty.maxLength !== void 0) {
|
|
51
|
+
schema = schema.max(
|
|
52
|
+
schemaProperty.maxLength,
|
|
53
|
+
t?.["validation.max_length"] ? (t["validation.max_length"] ?? "").replace(
|
|
54
|
+
"{max}",
|
|
55
|
+
String(schemaProperty.maxLength)
|
|
56
|
+
) : `Must be at most ${schemaProperty.maxLength} characters`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
if (schemaProperty.format === "email") {
|
|
60
|
+
schema = schema.email(
|
|
61
|
+
t?.["validation.invalid_email"] || "Must be a valid email address"
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
if (schemaProperty.format === "uri" || schemaProperty.format === "url") {
|
|
65
|
+
schema = z.url(t?.["validation.invalid_url"] || "Must be a valid URL");
|
|
66
|
+
}
|
|
67
|
+
if (schemaProperty.format === "uuid") {
|
|
68
|
+
schema = z.uuid(
|
|
69
|
+
t?.["validation.invalid_uuid"] || "Must be a valid UUID"
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case "number":
|
|
74
|
+
schema = z.number({
|
|
75
|
+
message: t?.["validation.invalid_number"] || "Must be a valid number"
|
|
76
|
+
});
|
|
77
|
+
if (schemaProperty.minimum !== void 0) {
|
|
78
|
+
schema = schema.min(
|
|
79
|
+
schemaProperty.minimum,
|
|
80
|
+
t?.["validation.min_value"] ? (t["validation.min_value"] ?? "").replace(
|
|
81
|
+
"{min}",
|
|
82
|
+
String(schemaProperty.minimum)
|
|
83
|
+
) : `Must be at least ${schemaProperty.minimum}`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
if (schemaProperty.maximum !== void 0) {
|
|
87
|
+
schema = schema.max(
|
|
88
|
+
schemaProperty.maximum,
|
|
89
|
+
t?.["validation.max_value"] ? (t["validation.max_value"] ?? "").replace(
|
|
90
|
+
"{max}",
|
|
91
|
+
String(schemaProperty.maximum)
|
|
92
|
+
) : `Must be at most ${schemaProperty.maximum}`
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
case "integer":
|
|
97
|
+
schema = z.number({
|
|
98
|
+
message: t?.["validation.invalid_integer"] || "Must be a valid integer"
|
|
99
|
+
}).int(t?.["validation.must_be_integer"] || "Must be an integer");
|
|
100
|
+
if (schemaProperty.minimum !== void 0) {
|
|
101
|
+
schema = schema.min(
|
|
102
|
+
schemaProperty.minimum,
|
|
103
|
+
t?.["validation.min_value"] ? (t["validation.min_value"] ?? "").replace(
|
|
104
|
+
"{min}",
|
|
105
|
+
String(schemaProperty.minimum)
|
|
106
|
+
) : `Must be at least ${schemaProperty.minimum}`
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
if (schemaProperty.maximum !== void 0) {
|
|
110
|
+
schema = schema.max(
|
|
111
|
+
schemaProperty.maximum,
|
|
112
|
+
t?.["validation.max_value"] ? (t["validation.max_value"] ?? "").replace(
|
|
113
|
+
"{max}",
|
|
114
|
+
String(schemaProperty.maximum)
|
|
115
|
+
) : `Must be at most ${schemaProperty.maximum}`
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
case "boolean":
|
|
120
|
+
schema = z.boolean({
|
|
121
|
+
message: t?.["validation.invalid_boolean"] || "Must be true or false"
|
|
122
|
+
});
|
|
123
|
+
break;
|
|
124
|
+
default:
|
|
125
|
+
schema = z.unknown();
|
|
126
|
+
}
|
|
127
|
+
if (schemaProperty.enum && Array.isArray(schemaProperty.enum)) {
|
|
128
|
+
schema = z.enum(
|
|
129
|
+
schemaProperty.enum,
|
|
130
|
+
t?.["validation.invalid_enum"] || "Invalid value"
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
if (!schemaProperty.required) {
|
|
134
|
+
schema = schema.optional().nullable();
|
|
135
|
+
}
|
|
136
|
+
return schema;
|
|
137
|
+
}
|
|
138
|
+
function ErrorWrapper({ error, mode, children }) {
|
|
139
|
+
if (!error) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
140
|
+
const showTooltip = mode === "tooltip" || mode === "both";
|
|
141
|
+
const showInline = mode === "inline" || mode === "both";
|
|
142
|
+
const inlineError = showInline && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-destructive px-2 py-0.5 leading-tight animate-in fade-in slide-in-from-top-1", children: error });
|
|
143
|
+
if (showTooltip && !showInline) {
|
|
144
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
145
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children }),
|
|
146
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "bottom", className: "max-w-xs", children: error })
|
|
147
|
+
] });
|
|
148
|
+
}
|
|
149
|
+
if (showInline && !showTooltip) {
|
|
150
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full h-full", children: [
|
|
151
|
+
children,
|
|
152
|
+
inlineError
|
|
153
|
+
] });
|
|
154
|
+
}
|
|
155
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
156
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full h-full", children: [
|
|
157
|
+
children,
|
|
158
|
+
inlineError
|
|
159
|
+
] }) }),
|
|
160
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "bottom", className: "max-w-xs", children: error })
|
|
161
|
+
] });
|
|
162
|
+
}
|
|
163
|
+
function CellRenderer({
|
|
164
|
+
value,
|
|
165
|
+
row,
|
|
166
|
+
column,
|
|
167
|
+
schemaProperty,
|
|
168
|
+
editable = false,
|
|
169
|
+
onUpdate,
|
|
170
|
+
t,
|
|
171
|
+
error,
|
|
172
|
+
className,
|
|
173
|
+
dateOptions,
|
|
174
|
+
localization,
|
|
175
|
+
fieldName,
|
|
176
|
+
customRenderers,
|
|
177
|
+
errorDisplayMode = "tooltip"
|
|
178
|
+
}) {
|
|
179
|
+
const [localValue, setLocalValue] = useState(value);
|
|
180
|
+
const [validationError, setValidationError] = useState(
|
|
181
|
+
error || null
|
|
182
|
+
);
|
|
183
|
+
const inputRef = useRef(null);
|
|
184
|
+
const updateTimeoutRef = useRef(null);
|
|
185
|
+
const datePickerIdRef = useRef(
|
|
186
|
+
`date-${schemaProperty?.title || "field"}-${Date.now()}`
|
|
187
|
+
);
|
|
188
|
+
const datePickerMountedRef = useRef(false);
|
|
189
|
+
const handleDateChangeRef = useRef(null);
|
|
190
|
+
const validationSchema = useMemo(
|
|
191
|
+
() => schemaProperty ? createZodSchema(schemaProperty, t) : null,
|
|
192
|
+
[schemaProperty, t]
|
|
193
|
+
);
|
|
194
|
+
useEffect(() => {
|
|
195
|
+
if (!editable) {
|
|
196
|
+
setLocalValue(value);
|
|
197
|
+
datePickerMountedRef.current = false;
|
|
198
|
+
}
|
|
199
|
+
}, [value, editable]);
|
|
200
|
+
useEffect(() => {
|
|
201
|
+
return () => {
|
|
202
|
+
if (updateTimeoutRef.current) {
|
|
203
|
+
clearTimeout(updateTimeoutRef.current);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
}, []);
|
|
207
|
+
const debouncedUpdate = useCallback(
|
|
208
|
+
(newValue) => {
|
|
209
|
+
if (updateTimeoutRef.current) {
|
|
210
|
+
clearTimeout(updateTimeoutRef.current);
|
|
211
|
+
}
|
|
212
|
+
updateTimeoutRef.current = setTimeout(() => {
|
|
213
|
+
if (onUpdate) {
|
|
214
|
+
onUpdate(newValue);
|
|
215
|
+
}
|
|
216
|
+
}, DEBOUNCE_DELAY);
|
|
217
|
+
},
|
|
218
|
+
[onUpdate]
|
|
219
|
+
);
|
|
220
|
+
const handleChange = useCallback(
|
|
221
|
+
(newValue) => {
|
|
222
|
+
setLocalValue(newValue);
|
|
223
|
+
const err = validationSchema ? (() => {
|
|
224
|
+
const result = validationSchema.safeParse(newValue);
|
|
225
|
+
return result.success ? null : result.error.issues[0]?.message || "Invalid value";
|
|
226
|
+
})() : null;
|
|
227
|
+
setValidationError(err);
|
|
228
|
+
if (!err) {
|
|
229
|
+
debouncedUpdate(newValue);
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
[validationSchema, debouncedUpdate]
|
|
233
|
+
);
|
|
234
|
+
const inputClassName = useMemo(
|
|
235
|
+
() => cn(
|
|
236
|
+
"h-full px-2 shadow-none border-0 rounded-none focus-visible:ring-0 focus-visible:ring-offset-0",
|
|
237
|
+
validationError && "border border-destructive"
|
|
238
|
+
),
|
|
239
|
+
[validationError]
|
|
240
|
+
);
|
|
241
|
+
if (editable && !schemaProperty?.readOnly) {
|
|
242
|
+
if (fieldName && customRenderers?.[fieldName]) {
|
|
243
|
+
const customRenderer = customRenderers?.[fieldName];
|
|
244
|
+
return /* @__PURE__ */ jsx(Fragment, { children: customRenderer({
|
|
245
|
+
value: localValue,
|
|
246
|
+
row,
|
|
247
|
+
column,
|
|
248
|
+
onUpdate: handleChange,
|
|
249
|
+
error: validationError || void 0,
|
|
250
|
+
schemaProperty,
|
|
251
|
+
t
|
|
252
|
+
}) });
|
|
253
|
+
}
|
|
254
|
+
if (schemaProperty?.type === "boolean" || typeof value === "boolean") {
|
|
255
|
+
return /* @__PURE__ */ jsx(ErrorWrapper, { error: validationError, mode: errorDisplayMode, children: /* @__PURE__ */ jsx("div", { className: "flex items-center px-2", children: /* @__PURE__ */ jsx(
|
|
256
|
+
Switch,
|
|
257
|
+
{
|
|
258
|
+
checked: !!localValue,
|
|
259
|
+
onCheckedChange: handleChange,
|
|
260
|
+
className: validationError ? "border-destructive" : ""
|
|
261
|
+
}
|
|
262
|
+
) }) });
|
|
263
|
+
}
|
|
264
|
+
if (schemaProperty?.enum && Array.isArray(schemaProperty.enum)) {
|
|
265
|
+
return /* @__PURE__ */ jsx(ErrorWrapper, { error: validationError, mode: errorDisplayMode, children: /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center", children: /* @__PURE__ */ jsxs(Select, { value: String(localValue), onValueChange: handleChange, children: [
|
|
266
|
+
/* @__PURE__ */ jsx(
|
|
267
|
+
SelectTrigger,
|
|
268
|
+
{
|
|
269
|
+
size: "sm",
|
|
270
|
+
className: cn(
|
|
271
|
+
"h-[35px]! px-2 w-full shadow-none border-0 rounded-none focus:ring-0 focus:ring-offset-0",
|
|
272
|
+
validationError && "border border-destructive"
|
|
273
|
+
),
|
|
274
|
+
children: /* @__PURE__ */ jsx(SelectValue, {})
|
|
275
|
+
}
|
|
276
|
+
),
|
|
277
|
+
/* @__PURE__ */ jsx(SelectContent, { children: schemaProperty.enum.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: String(option), children: String(option) }, String(option))) })
|
|
278
|
+
] }) }) });
|
|
279
|
+
}
|
|
280
|
+
if (schemaProperty?.type === "number" || schemaProperty?.type === "integer") {
|
|
281
|
+
const handleNumberChange = (e) => {
|
|
282
|
+
const val = schemaProperty.type === "integer" ? parseInt(e.target.value) : parseFloat(e.target.value);
|
|
283
|
+
handleChange(isNaN(val) ? e.target.value : val);
|
|
284
|
+
};
|
|
285
|
+
return /* @__PURE__ */ jsx(ErrorWrapper, { error: validationError, mode: errorDisplayMode, children: /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center", children: /* @__PURE__ */ jsx(
|
|
286
|
+
Input,
|
|
287
|
+
{
|
|
288
|
+
ref: inputRef,
|
|
289
|
+
type: "number",
|
|
290
|
+
value: String(localValue ?? ""),
|
|
291
|
+
onChange: handleNumberChange,
|
|
292
|
+
className: inputClassName
|
|
293
|
+
}
|
|
294
|
+
) }) });
|
|
295
|
+
}
|
|
296
|
+
if (schemaProperty?.format === "date" || schemaProperty?.format === "date-time") {
|
|
297
|
+
const dateValue = localValue instanceof Date ? localValue : localValue ? new Date(String(localValue)) : void 0;
|
|
298
|
+
const isDateTime = schemaProperty?.format === "date-time";
|
|
299
|
+
if (!handleDateChangeRef.current) {
|
|
300
|
+
handleDateChangeRef.current = (date) => {
|
|
301
|
+
if (!datePickerMountedRef.current) {
|
|
302
|
+
datePickerMountedRef.current = true;
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (schemaProperty?.format === "date-time") {
|
|
306
|
+
handleChange(date?.toISOString());
|
|
307
|
+
} else {
|
|
308
|
+
const isoDate = date?.toISOString().split("T")[0];
|
|
309
|
+
handleChange(isoDate);
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return /* @__PURE__ */ jsx(ErrorWrapper, { error: validationError, mode: errorDisplayMode, children: /* @__PURE__ */ jsx(
|
|
314
|
+
DatePicker,
|
|
315
|
+
{
|
|
316
|
+
id: datePickerIdRef.current,
|
|
317
|
+
showIcon: false,
|
|
318
|
+
defaultValue: dateValue instanceof Date && !Number.isNaN(dateValue.getTime()) ? dateValue : void 0,
|
|
319
|
+
onChange: handleDateChangeRef.current,
|
|
320
|
+
classNames: {
|
|
321
|
+
dateInput: cn(
|
|
322
|
+
"shadow-none border-0 h-8! rounded-none",
|
|
323
|
+
validationError && "border border-destructive"
|
|
324
|
+
)
|
|
325
|
+
},
|
|
326
|
+
useTime: isDateTime
|
|
327
|
+
}
|
|
328
|
+
) });
|
|
329
|
+
}
|
|
330
|
+
const inputType = schemaProperty?.format === "email" ? "email" : "text";
|
|
331
|
+
return /* @__PURE__ */ jsx(ErrorWrapper, { error: validationError, mode: errorDisplayMode, children: /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center", children: /* @__PURE__ */ jsx(
|
|
332
|
+
Input,
|
|
333
|
+
{
|
|
334
|
+
ref: inputRef,
|
|
335
|
+
type: inputType,
|
|
336
|
+
value: String(localValue ?? ""),
|
|
337
|
+
onChange: (e) => handleChange(e.target.value),
|
|
338
|
+
className: inputClassName
|
|
339
|
+
}
|
|
340
|
+
) }) });
|
|
341
|
+
}
|
|
342
|
+
if (fieldName && customRenderers?.[fieldName]) {
|
|
343
|
+
const customRenderer = customRenderers?.[fieldName];
|
|
344
|
+
return /* @__PURE__ */ jsx(Fragment, { children: customRenderer({
|
|
345
|
+
value: localValue,
|
|
346
|
+
row,
|
|
347
|
+
column,
|
|
348
|
+
onUpdate: handleChange,
|
|
349
|
+
error: validationError || void 0,
|
|
350
|
+
schemaProperty,
|
|
351
|
+
t
|
|
352
|
+
}) });
|
|
353
|
+
}
|
|
354
|
+
if (value === null || value === void 0) {
|
|
355
|
+
return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground italic", className), children: "\u2014" });
|
|
356
|
+
}
|
|
357
|
+
if (schemaProperty?.type === "boolean" || typeof value === "boolean") {
|
|
358
|
+
const yesLabel = t?.["cell.boolean.yes"] ?? "Yes";
|
|
359
|
+
const noLabel = t?.["cell.boolean.no"] ?? "No";
|
|
360
|
+
return /* @__PURE__ */ jsx(Badge, { variant: value ? "default" : "secondary", className, children: value ? yesLabel : noLabel });
|
|
361
|
+
}
|
|
362
|
+
if (schemaProperty?.format === "date" || schemaProperty?.format === "date-time") {
|
|
363
|
+
try {
|
|
364
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
365
|
+
const defaultLocalization = localization || {
|
|
366
|
+
locale: "en-US",
|
|
367
|
+
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
368
|
+
lang: "en"
|
|
369
|
+
};
|
|
370
|
+
const defaultDateOptions = dateOptions || (schemaProperty.format === "date" ? {
|
|
371
|
+
day: "2-digit",
|
|
372
|
+
month: "short",
|
|
373
|
+
year: "numeric"
|
|
374
|
+
} : {
|
|
375
|
+
day: "2-digit",
|
|
376
|
+
month: "short",
|
|
377
|
+
year: "numeric",
|
|
378
|
+
hour: "2-digit",
|
|
379
|
+
minute: "2-digit",
|
|
380
|
+
hour12: false
|
|
381
|
+
});
|
|
382
|
+
return /* @__PURE__ */ jsx(
|
|
383
|
+
DateTooltip,
|
|
384
|
+
{
|
|
385
|
+
date,
|
|
386
|
+
localization: defaultLocalization,
|
|
387
|
+
dateOptions: defaultDateOptions
|
|
388
|
+
}
|
|
389
|
+
);
|
|
390
|
+
} catch {
|
|
391
|
+
return /* @__PURE__ */ jsx("span", { className, children: String(value) });
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (schemaProperty?.enum && Array.isArray(schemaProperty.enum)) {
|
|
395
|
+
const label = String(value);
|
|
396
|
+
return /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn("font-normal", className), children: t?.[`column.${fieldName}.${label}`] || label });
|
|
397
|
+
}
|
|
398
|
+
if (schemaProperty?.format === "badge") {
|
|
399
|
+
const variant = BADGE_VARIANT_MAP[String(value).toLowerCase()] || "outline";
|
|
400
|
+
const label = String(value);
|
|
401
|
+
return /* @__PURE__ */ jsx(Badge, { variant, className, children: t?.[`column.${fieldName}.${label}`] || label });
|
|
402
|
+
}
|
|
403
|
+
if (schemaProperty?.format === "uri") {
|
|
404
|
+
return /* @__PURE__ */ jsx(
|
|
405
|
+
"a",
|
|
406
|
+
{
|
|
407
|
+
href: String(value),
|
|
408
|
+
target: "_blank",
|
|
409
|
+
rel: "noopener noreferrer",
|
|
410
|
+
className: cn("text-primary hover:underline", className),
|
|
411
|
+
onClick: (e) => e.stopPropagation(),
|
|
412
|
+
children: String(value)
|
|
413
|
+
}
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
if (schemaProperty?.format === "uuid") {
|
|
417
|
+
const uuid = String(value);
|
|
418
|
+
return /* @__PURE__ */ jsxs("code", { className: cn("text-xs bg-muted 5 rounded", className), children: [
|
|
419
|
+
uuid.slice(0, 8),
|
|
420
|
+
"..."
|
|
421
|
+
] });
|
|
422
|
+
}
|
|
423
|
+
if (Array.isArray(value)) {
|
|
424
|
+
const arrayString = value.map((item) => String(item)).join(", ");
|
|
425
|
+
return /* @__PURE__ */ jsx("span", { className, children: arrayString });
|
|
426
|
+
}
|
|
427
|
+
if (typeof value === "object") {
|
|
428
|
+
return /* @__PURE__ */ jsx("code", { className: cn("text-xs bg-muted rounded", className), children: JSON.stringify(value) });
|
|
429
|
+
}
|
|
430
|
+
const strValue = String(value);
|
|
431
|
+
if (strValue.length > MAX_STRING_LENGTH) {
|
|
432
|
+
return /* @__PURE__ */ jsxs("span", { title: strValue, className, children: [
|
|
433
|
+
strValue.slice(0, MAX_STRING_LENGTH),
|
|
434
|
+
"..."
|
|
435
|
+
] });
|
|
436
|
+
}
|
|
437
|
+
return /* @__PURE__ */ jsx("span", { className, children: strValue });
|
|
438
|
+
}
|
|
439
|
+
export {
|
|
440
|
+
CellRenderer
|
|
441
|
+
};
|
|
442
|
+
//# sourceMappingURL=cell-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/custom/master-data-grid/components/table/cell-renderer.tsx"],"sourcesContent":["import { Switch } from \"@repo/ayasofyazilim-ui/components/switch\";\r\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { z } from \"zod\";\r\nimport { Badge } from \"../../../../components/badge\";\r\nimport { Input } from \"../../../../components/input\";\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"../../../../components/select\";\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n} from \"../../../../components/tooltip\";\r\nimport { DatePicker } from \"../../../date-picker\";\r\nimport DateTooltip from \"../../../date-tooltip\";\r\nimport { cn } from \"../../../../lib/utils\";\r\nimport type {\r\n CellRendererProps,\r\n JSONSchemaProperty,\r\n MasterDataGridResources,\r\n} from \"../../types\";\r\nimport { getTranslations } from \"../../utils/translation-utils\";\r\n\r\nconst DEBOUNCE_DELAY = 150;\r\nconst MAX_STRING_LENGTH = 100;\r\n\r\nconst BADGE_VARIANT_MAP: Record<\r\n string,\r\n \"default\" | \"secondary\" | \"outline\" | \"destructive\"\r\n> = {\r\n active: \"default\",\r\n inactive: \"secondary\",\r\n pending: \"outline\",\r\n success: \"default\",\r\n warning: \"destructive\",\r\n error: \"destructive\",\r\n};\r\n\r\nfunction createZodSchema(\r\n schemaProperty?: JSONSchemaProperty,\r\n t?: MasterDataGridResources\r\n): z.ZodType {\r\n if (!schemaProperty) return z.unknown();\r\n\r\n let schema: z.ZodType;\r\n\r\n switch (schemaProperty.type) {\r\n case \"string\":\r\n schema = z.string({\r\n message: getTranslations(\"validation.invalidString\", t),\r\n });\r\n\r\n if (schemaProperty.minLength !== undefined) {\r\n schema = (schema as z.ZodString).min(\r\n schemaProperty.minLength,\r\n t?.[\"validation.min_length\"]\r\n ? (t[\"validation.min_length\"] ?? \"\").replace(\r\n \"{min}\",\r\n String(schemaProperty.minLength)\r\n )\r\n : `Must be at least ${schemaProperty.minLength} characters`\r\n );\r\n }\r\n if (schemaProperty.maxLength !== undefined) {\r\n schema = (schema as z.ZodString).max(\r\n schemaProperty.maxLength,\r\n t?.[\"validation.max_length\"]\r\n ? (t[\"validation.max_length\"] ?? \"\").replace(\r\n \"{max}\",\r\n String(schemaProperty.maxLength)\r\n )\r\n : `Must be at most ${schemaProperty.maxLength} characters`\r\n );\r\n }\r\n\r\n if (schemaProperty.format === \"email\") {\r\n schema = (schema as z.ZodString).email(\r\n t?.[\"validation.invalid_email\"] || \"Must be a valid email address\"\r\n );\r\n }\r\n if (schemaProperty.format === \"uri\" || schemaProperty.format === \"url\") {\r\n schema = z.url(t?.[\"validation.invalid_url\"] || \"Must be a valid URL\");\r\n }\r\n if (schemaProperty.format === \"uuid\") {\r\n schema = z.uuid(\r\n t?.[\"validation.invalid_uuid\"] || \"Must be a valid UUID\"\r\n );\r\n }\r\n break;\r\n\r\n case \"number\":\r\n schema = z.number({\r\n message: t?.[\"validation.invalid_number\"] || \"Must be a valid number\",\r\n });\r\n\r\n if (schemaProperty.minimum !== undefined) {\r\n schema = (schema as z.ZodNumber).min(\r\n schemaProperty.minimum,\r\n t?.[\"validation.min_value\"]\r\n ? (t[\"validation.min_value\"] ?? \"\").replace(\r\n \"{min}\",\r\n String(schemaProperty.minimum)\r\n )\r\n : `Must be at least ${schemaProperty.minimum}`\r\n );\r\n }\r\n if (schemaProperty.maximum !== undefined) {\r\n schema = (schema as z.ZodNumber).max(\r\n schemaProperty.maximum,\r\n t?.[\"validation.max_value\"]\r\n ? (t[\"validation.max_value\"] ?? \"\").replace(\r\n \"{max}\",\r\n String(schemaProperty.maximum)\r\n )\r\n : `Must be at most ${schemaProperty.maximum}`\r\n );\r\n }\r\n break;\r\n\r\n case \"integer\":\r\n schema = z\r\n .number({\r\n message:\r\n t?.[\"validation.invalid_integer\"] || \"Must be a valid integer\",\r\n })\r\n .int(t?.[\"validation.must_be_integer\"] || \"Must be an integer\");\r\n\r\n if (schemaProperty.minimum !== undefined) {\r\n schema = (schema as z.ZodNumber).min(\r\n schemaProperty.minimum,\r\n t?.[\"validation.min_value\"]\r\n ? (t[\"validation.min_value\"] ?? \"\").replace(\r\n \"{min}\",\r\n String(schemaProperty.minimum)\r\n )\r\n : `Must be at least ${schemaProperty.minimum}`\r\n );\r\n }\r\n if (schemaProperty.maximum !== undefined) {\r\n schema = (schema as z.ZodNumber).max(\r\n schemaProperty.maximum,\r\n t?.[\"validation.max_value\"]\r\n ? (t[\"validation.max_value\"] ?? \"\").replace(\r\n \"{max}\",\r\n String(schemaProperty.maximum)\r\n )\r\n : `Must be at most ${schemaProperty.maximum}`\r\n );\r\n }\r\n break;\r\n\r\n case \"boolean\":\r\n schema = z.boolean({\r\n message: t?.[\"validation.invalid_boolean\"] || \"Must be true or false\",\r\n });\r\n break;\r\n\r\n default:\r\n schema = z.unknown();\r\n }\r\n\r\n if (schemaProperty.enum && Array.isArray(schemaProperty.enum)) {\r\n schema = z.enum(\r\n schemaProperty.enum as [string, ...string[]],\r\n t?.[\"validation.invalid_enum\"] || \"Invalid value\"\r\n );\r\n }\r\n\r\n if (!schemaProperty.required) {\r\n schema = schema.optional().nullable();\r\n }\r\n\r\n return schema;\r\n}\r\n\r\ninterface ErrorWrapperProps {\r\n error: string | null;\r\n mode: \"tooltip\" | \"inline\" | \"both\";\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction ErrorWrapper({ error, mode, children }: ErrorWrapperProps) {\r\n if (!error) return <>{children}</>;\r\n\r\n const showTooltip = mode === \"tooltip\" || mode === \"both\";\r\n const showInline = mode === \"inline\" || mode === \"both\";\r\n\r\n const inlineError = showInline && (\r\n <span className=\"text-[10px] text-destructive px-2 py-0.5 leading-tight animate-in fade-in slide-in-from-top-1\">\r\n {error}\r\n </span>\r\n );\r\n\r\n if (showTooltip && !showInline) {\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{children}</TooltipTrigger>\r\n <TooltipContent side=\"bottom\" className=\"max-w-xs\">\r\n {error}\r\n </TooltipContent>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n if (showInline && !showTooltip) {\r\n return (\r\n <div className=\"flex flex-col w-full h-full\">\r\n {children}\r\n {inlineError}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <div className=\"flex flex-col w-full h-full\">\r\n {children}\r\n {inlineError}\r\n </div>\r\n </TooltipTrigger>\r\n <TooltipContent side=\"bottom\" className=\"max-w-xs\">\r\n {error}\r\n </TooltipContent>\r\n </Tooltip>\r\n );\r\n}\r\n\r\nexport function CellRenderer<TData = unknown>({\r\n value,\r\n row,\r\n column,\r\n schemaProperty,\r\n editable = false,\r\n onUpdate,\r\n t,\r\n error,\r\n className,\r\n dateOptions,\r\n localization,\r\n fieldName,\r\n customRenderers,\r\n errorDisplayMode = \"tooltip\",\r\n}: CellRendererProps<TData>) {\r\n const [localValue, setLocalValue] = useState(value);\r\n const [validationError, setValidationError] = useState<string | null>(\r\n error || null\r\n );\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const updateTimeoutRef = useRef<NodeJS.Timeout>(null);\r\n const datePickerIdRef = useRef<string>(\r\n `date-${schemaProperty?.title || \"field\"}-${Date.now()}`\r\n );\r\n const datePickerMountedRef = useRef<boolean>(false);\r\n const handleDateChangeRef = useRef<((date: Date) => void) | null>(null);\r\n\r\n const validationSchema = useMemo(\r\n () => (schemaProperty ? createZodSchema(schemaProperty, t) : null),\r\n [schemaProperty, t]\r\n );\r\n\r\n useEffect(() => {\r\n if (!editable) {\r\n setLocalValue(value);\r\n datePickerMountedRef.current = false;\r\n }\r\n }, [value, editable]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (updateTimeoutRef.current) {\r\n clearTimeout(updateTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const debouncedUpdate = useCallback(\r\n (newValue: unknown) => {\r\n if (updateTimeoutRef.current) {\r\n clearTimeout(updateTimeoutRef.current);\r\n }\r\n updateTimeoutRef.current = setTimeout(() => {\r\n if (onUpdate) {\r\n onUpdate(newValue);\r\n }\r\n }, DEBOUNCE_DELAY);\r\n },\r\n [onUpdate]\r\n );\r\n\r\n const handleChange = useCallback(\r\n (newValue: unknown) => {\r\n setLocalValue(newValue);\r\n\r\n const err = validationSchema\r\n ? (() => {\r\n const result = validationSchema.safeParse(newValue);\r\n return result.success\r\n ? null\r\n : result.error.issues[0]?.message || \"Invalid value\";\r\n })()\r\n : null;\r\n\r\n setValidationError(err);\r\n\r\n if (!err) {\r\n debouncedUpdate(newValue);\r\n }\r\n },\r\n [validationSchema, debouncedUpdate]\r\n );\r\n\r\n const inputClassName = useMemo(\r\n () =>\r\n cn(\r\n \"h-full px-2 shadow-none border-0 rounded-none focus-visible:ring-0 focus-visible:ring-offset-0\",\r\n validationError && \"border border-destructive\"\r\n ),\r\n [validationError]\r\n );\r\n\r\n if (editable && !schemaProperty?.readOnly) {\r\n if (fieldName && customRenderers?.[fieldName]) {\r\n const customRenderer = customRenderers?.[fieldName]!;\r\n return (\r\n <>\r\n {customRenderer({\r\n value: localValue,\r\n row,\r\n column,\r\n onUpdate: handleChange,\r\n error: validationError || undefined,\r\n schemaProperty,\r\n t,\r\n })}\r\n </>\r\n );\r\n }\r\n\r\n if (schemaProperty?.type === \"boolean\" || typeof value === \"boolean\") {\r\n return (\r\n <ErrorWrapper error={validationError} mode={errorDisplayMode}>\r\n <div className=\"flex items-center px-2\">\r\n <Switch\r\n checked={!!localValue}\r\n onCheckedChange={handleChange}\r\n className={validationError ? \"border-destructive\" : \"\"}\r\n />\r\n </div>\r\n </ErrorWrapper>\r\n );\r\n }\r\n\r\n if (schemaProperty?.enum && Array.isArray(schemaProperty.enum)) {\r\n return (\r\n <ErrorWrapper error={validationError} mode={errorDisplayMode}>\r\n <div className=\"w-full h-full flex items-center\">\r\n <Select value={String(localValue)} onValueChange={handleChange}>\r\n <SelectTrigger\r\n size=\"sm\"\r\n className={cn(\r\n \"h-[35px]! px-2 w-full shadow-none border-0 rounded-none focus:ring-0 focus:ring-offset-0\",\r\n validationError && \"border border-destructive\"\r\n )}\r\n >\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {schemaProperty.enum.map((option) => (\r\n <SelectItem key={String(option)} value={String(option)}>\r\n {String(option)}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n </ErrorWrapper>\r\n );\r\n }\r\n\r\n if (\r\n schemaProperty?.type === \"number\" ||\r\n schemaProperty?.type === \"integer\"\r\n ) {\r\n const handleNumberChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const val =\r\n schemaProperty.type === \"integer\"\r\n ? parseInt(e.target.value)\r\n : parseFloat(e.target.value);\r\n handleChange(isNaN(val) ? e.target.value : val);\r\n };\r\n\r\n return (\r\n <ErrorWrapper error={validationError} mode={errorDisplayMode}>\r\n <div className=\"w-full h-full flex items-center\">\r\n <Input\r\n ref={inputRef}\r\n type=\"number\"\r\n value={String(localValue ?? \"\")}\r\n onChange={handleNumberChange}\r\n className={inputClassName}\r\n />\r\n </div>\r\n </ErrorWrapper>\r\n );\r\n }\r\n\r\n if (\r\n schemaProperty?.format === \"date\" ||\r\n schemaProperty?.format === \"date-time\"\r\n ) {\r\n const dateValue =\r\n localValue instanceof Date\r\n ? localValue\r\n : localValue\r\n ? new Date(String(localValue))\r\n : undefined;\r\n\r\n const isDateTime = schemaProperty?.format === \"date-time\";\r\n\r\n if (!handleDateChangeRef.current) {\r\n handleDateChangeRef.current = (date: Date) => {\r\n if (!datePickerMountedRef.current) {\r\n datePickerMountedRef.current = true;\r\n return;\r\n }\r\n\r\n if (schemaProperty?.format === \"date-time\") {\r\n handleChange(date?.toISOString());\r\n } else {\r\n const isoDate = date?.toISOString().split(\"T\")[0];\r\n handleChange(isoDate);\r\n }\r\n };\r\n }\r\n\r\n return (\r\n <ErrorWrapper error={validationError} mode={errorDisplayMode}>\r\n <DatePicker\r\n id={datePickerIdRef.current}\r\n showIcon={false}\r\n defaultValue={\r\n dateValue instanceof Date && !Number.isNaN(dateValue.getTime())\r\n ? dateValue\r\n : undefined\r\n }\r\n onChange={handleDateChangeRef.current}\r\n classNames={{\r\n dateInput: cn(\r\n \"shadow-none border-0 h-8! rounded-none\",\r\n validationError && \"border border-destructive\"\r\n ),\r\n }}\r\n useTime={isDateTime}\r\n />\r\n </ErrorWrapper>\r\n );\r\n }\r\n\r\n const inputType = schemaProperty?.format === \"email\" ? \"email\" : \"text\";\r\n\r\n return (\r\n <ErrorWrapper error={validationError} mode={errorDisplayMode}>\r\n <div className=\"w-full h-full flex items-center\">\r\n <Input\r\n ref={inputRef}\r\n type={inputType}\r\n value={String(localValue ?? \"\")}\r\n onChange={(e) => handleChange(e.target.value)}\r\n className={inputClassName}\r\n />\r\n </div>\r\n </ErrorWrapper>\r\n );\r\n }\r\n\r\n if (fieldName && customRenderers?.[fieldName]) {\r\n const customRenderer = customRenderers?.[fieldName]!;\r\n return (\r\n <>\r\n {customRenderer({\r\n value: localValue,\r\n row,\r\n column,\r\n onUpdate: handleChange,\r\n error: validationError || undefined,\r\n schemaProperty,\r\n t,\r\n })}\r\n </>\r\n );\r\n }\r\n if (value === null || value === undefined) {\r\n return (\r\n <span className={cn(\"text-muted-foreground italic\", className)}>—</span>\r\n );\r\n }\r\n\r\n if (schemaProperty?.type === \"boolean\" || typeof value === \"boolean\") {\r\n const yesLabel = t?.[\"cell.boolean.yes\"] ?? \"Yes\";\r\n const noLabel = t?.[\"cell.boolean.no\"] ?? \"No\";\r\n return (\r\n <Badge variant={value ? \"default\" : \"secondary\"} className={className}>\r\n {value ? yesLabel : noLabel}\r\n </Badge>\r\n );\r\n }\r\n\r\n if (\r\n schemaProperty?.format === \"date\" ||\r\n schemaProperty?.format === \"date-time\"\r\n ) {\r\n try {\r\n const date = value instanceof Date ? value : new Date(value as string);\r\n\r\n const defaultLocalization = localization || {\r\n locale: \"en-US\",\r\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n lang: \"en\",\r\n };\r\n\r\n const defaultDateOptions =\r\n dateOptions ||\r\n (schemaProperty.format === \"date\"\r\n ? {\r\n day: \"2-digit\",\r\n month: \"short\",\r\n year: \"numeric\",\r\n }\r\n : {\r\n day: \"2-digit\",\r\n month: \"short\",\r\n year: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n hour12: false,\r\n });\r\n\r\n return (\r\n <DateTooltip\r\n date={date}\r\n localization={defaultLocalization}\r\n dateOptions={defaultDateOptions}\r\n />\r\n );\r\n } catch {\r\n return <span className={className}>{String(value)}</span>;\r\n }\r\n }\r\n\r\n if (schemaProperty?.enum && Array.isArray(schemaProperty.enum)) {\r\n const label = String(value);\r\n return (\r\n <Badge variant=\"outline\" className={cn(\"font-normal\", className)}>\r\n {t?.[`column.${fieldName}.${label}`] || label}\r\n </Badge>\r\n );\r\n }\r\n\r\n if (schemaProperty?.format === \"badge\") {\r\n const variant = BADGE_VARIANT_MAP[String(value).toLowerCase()] || \"outline\";\r\n const label = String(value);\r\n return (\r\n <Badge variant={variant} className={className}>\r\n {t?.[`column.${fieldName}.${label}`] || label}\r\n </Badge>\r\n );\r\n }\r\n\r\n if (schemaProperty?.format === \"uri\") {\r\n return (\r\n <a\r\n href={String(value)}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className={cn(\"text-primary hover:underline\", className)}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n {String(value)}\r\n </a>\r\n );\r\n }\r\n\r\n if (schemaProperty?.format === \"uuid\") {\r\n const uuid = String(value);\r\n return (\r\n <code className={cn(\"text-xs bg-muted 5 rounded\", className)}>\r\n {uuid.slice(0, 8)}...\r\n </code>\r\n );\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n const arrayString = value.map((item) => String(item)).join(\", \");\r\n return <span className={className}>{arrayString}</span>;\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n return (\r\n <code className={cn(\"text-xs bg-muted rounded\", className)}>\r\n {JSON.stringify(value)}\r\n </code>\r\n );\r\n }\r\n\r\n const strValue = String(value);\r\n\r\n if (strValue.length > MAX_STRING_LENGTH) {\r\n return (\r\n <span title={strValue} className={className}>\r\n {strValue.slice(0, MAX_STRING_LENGTH)}...\r\n </span>\r\n );\r\n }\r\n\r\n return <span className={className}>{strValue}</span>;\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use no memo";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
ArrowDown,
|
|
5
|
+
ArrowUp,
|
|
6
|
+
ChevronDown,
|
|
7
|
+
EyeOff,
|
|
8
|
+
FilterIcon,
|
|
9
|
+
PinIcon,
|
|
10
|
+
PinOffIcon,
|
|
11
|
+
Undo2
|
|
12
|
+
} from "lucide-react";
|
|
13
|
+
import { Button } from "../../../../components/button";
|
|
14
|
+
import {
|
|
15
|
+
DropdownMenu,
|
|
16
|
+
DropdownMenuContent,
|
|
17
|
+
DropdownMenuGroup,
|
|
18
|
+
DropdownMenuItem,
|
|
19
|
+
DropdownMenuLabel,
|
|
20
|
+
DropdownMenuSeparator,
|
|
21
|
+
DropdownMenuTrigger
|
|
22
|
+
} from "../../../../components/dropdown-menu";
|
|
23
|
+
import { getTranslations } from "../../utils/translation-utils";
|
|
24
|
+
import { InlineColumnFilter } from "../filters";
|
|
25
|
+
function HeaderCell({
|
|
26
|
+
column,
|
|
27
|
+
header,
|
|
28
|
+
label,
|
|
29
|
+
t
|
|
30
|
+
}) {
|
|
31
|
+
const isSorted = column.getIsSorted();
|
|
32
|
+
const isPinned = column.getIsPinned();
|
|
33
|
+
const hasAnyAction = column.getCanSort() || column.getCanPin() || column.getCanFilter() || column.getCanResize() || column.getCanHide();
|
|
34
|
+
if (!hasAnyAction) {
|
|
35
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center size-full", children: /* @__PURE__ */ jsx("span", { className: "font-semibold truncate", children: label }) });
|
|
36
|
+
}
|
|
37
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center size-full relative", children: [
|
|
38
|
+
/* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
39
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
40
|
+
Button,
|
|
41
|
+
{
|
|
42
|
+
variant: "ghost",
|
|
43
|
+
className: "data-[state=open]:bg-accent w-full rounded-none",
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold mr-auto truncate", children: label }),
|
|
46
|
+
isSorted === "asc" ? /* @__PURE__ */ jsx(ArrowUp, { className: "ml-2 h-4 w-4" }) : isSorted === "desc" ? /* @__PURE__ */ jsx(ArrowDown, { className: "ml-2 h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "ml-2 h-4 w-4" })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
) }),
|
|
50
|
+
/* @__PURE__ */ jsxs(DropdownMenuContent, { align: "start", children: [
|
|
51
|
+
column.getCanSort() && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(false), children: [
|
|
53
|
+
/* @__PURE__ */ jsx(ArrowUp, { className: "mr-2 h-4 w-4" }),
|
|
54
|
+
getTranslations("column.sortAsc", t)
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(true), children: [
|
|
57
|
+
/* @__PURE__ */ jsx(ArrowDown, { className: "mr-2 h-4 w-4" }),
|
|
58
|
+
getTranslations("column.sortDesc", t)
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {})
|
|
61
|
+
] }),
|
|
62
|
+
column.getCanPin() && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
63
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.pin("left"), children: [
|
|
64
|
+
/* @__PURE__ */ jsx(PinIcon, { className: "mr-2 h-4 w-4" }),
|
|
65
|
+
getTranslations("column.pinLeft", t)
|
|
66
|
+
] }),
|
|
67
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.pin("right"), children: [
|
|
68
|
+
/* @__PURE__ */ jsx(PinIcon, { className: "mr-2 h-4 w-4" }),
|
|
69
|
+
getTranslations("column.pinRight", t)
|
|
70
|
+
] }),
|
|
71
|
+
isPinned && /* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.pin(false), children: [
|
|
72
|
+
/* @__PURE__ */ jsx(PinOffIcon, { className: "mr-2 h-4 w-4" }),
|
|
73
|
+
getTranslations("column.unpin", t)
|
|
74
|
+
] }),
|
|
75
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {})
|
|
76
|
+
] }),
|
|
77
|
+
column.getCanFilter() && /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
|
|
78
|
+
/* @__PURE__ */ jsxs(DropdownMenuLabel, { className: "flex items-center gap-4 font-normal", children: [
|
|
79
|
+
/* @__PURE__ */ jsx(FilterIcon, { className: "h-4 w-4 text-muted-foreground" }),
|
|
80
|
+
getTranslations("column.filter", t)
|
|
81
|
+
] }),
|
|
82
|
+
/* @__PURE__ */ jsx(DropdownMenuItem, { className: "p-0", asChild: true, children: /* @__PURE__ */ jsx(InlineColumnFilter, { column, t }) })
|
|
83
|
+
] }),
|
|
84
|
+
header && column.getCanResize() && column.getSize() !== column.columnDef.size && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
85
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
86
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => header.column.resetSize(), children: [
|
|
87
|
+
/* @__PURE__ */ jsx(Undo2, { className: "mr-2 h-4 w-4" }),
|
|
88
|
+
getTranslations("column.resetSize", t)
|
|
89
|
+
] })
|
|
90
|
+
] }),
|
|
91
|
+
column.getCanHide() && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
92
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
93
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: () => column.toggleVisibility(false), children: [
|
|
94
|
+
/* @__PURE__ */ jsx(EyeOff, { className: "mr-2 h-4 w-4" }),
|
|
95
|
+
getTranslations("column.hide", t)
|
|
96
|
+
] })
|
|
97
|
+
] })
|
|
98
|
+
] })
|
|
99
|
+
] }),
|
|
100
|
+
header && column.getCanResize() && /* @__PURE__ */ jsx(
|
|
101
|
+
"div",
|
|
102
|
+
{
|
|
103
|
+
onMouseDown: header.getResizeHandler(),
|
|
104
|
+
onTouchStart: header.getResizeHandler(),
|
|
105
|
+
className: `absolute right-0 top-0 h-full w-1 cursor-col-resize select-none touch-none hover:bg-primary transition-opacity ${column.getIsResizing() ? "bg-primary opacity-100" : "opacity-0 hover:opacity-50"}`,
|
|
106
|
+
style: {
|
|
107
|
+
transform: column.getIsResizing() ? "translateX(0)" : void 0
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
)
|
|
111
|
+
] });
|
|
112
|
+
}
|
|
113
|
+
export {
|
|
114
|
+
HeaderCell
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=header-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/custom/master-data-grid/components/table/header-cell.tsx"],"sourcesContent":["\"use no memo\";\r\nimport type { Column, Header } from \"@tanstack/react-table\";\r\nimport {\r\n ArrowDown,\r\n ArrowUp,\r\n ChevronDown,\r\n EyeOff,\r\n FilterIcon,\r\n PinIcon,\r\n PinOffIcon,\r\n Undo2,\r\n} from \"lucide-react\";\r\nimport { Button } from \"../../../../components/button\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from \"../../../../components/dropdown-menu\";\r\nimport { getTranslations } from \"../../utils/translation-utils\";\r\nimport { InlineColumnFilter } from \"../filters\";\r\nimport { MasterDataGridResources } from \"../../types\";\r\n\r\ninterface HeaderCellProps<TData> {\r\n column: Column<TData>;\r\n header?: Header<TData, unknown>;\r\n label: string;\r\n t?: MasterDataGridResources;\r\n}\r\nexport function HeaderCell<TData>({\r\n column,\r\n header,\r\n label,\r\n t,\r\n}: HeaderCellProps<TData>) {\r\n const isSorted = column.getIsSorted();\r\n const isPinned = column.getIsPinned();\r\n\r\n const hasAnyAction =\r\n column.getCanSort() ||\r\n column.getCanPin() ||\r\n column.getCanFilter() ||\r\n column.getCanResize() ||\r\n column.getCanHide();\r\n\r\n if (!hasAnyAction) {\r\n return (\r\n <div className=\"flex items-center size-full\">\r\n <span className=\"font-semibold truncate\">{label}</span>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"flex items-center size-full relative\">\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n className=\"data-[state=open]:bg-accent w-full rounded-none\"\r\n >\r\n <span className=\"font-semibold mr-auto truncate\">{label}</span>\r\n {isSorted === \"asc\" ? (\r\n <ArrowUp className=\"ml-2 h-4 w-4\" />\r\n ) : isSorted === \"desc\" ? (\r\n <ArrowDown className=\"ml-2 h-4 w-4\" />\r\n ) : (\r\n <ChevronDown className=\"ml-2 h-4 w-4\" />\r\n )}\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"start\">\r\n {column.getCanSort() && (\r\n <>\r\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\r\n <ArrowUp className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.sortAsc\", t)}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\r\n <ArrowDown className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.sortDesc\", t)}\r\n </DropdownMenuItem>\r\n <DropdownMenuSeparator />\r\n </>\r\n )}\r\n\r\n {column.getCanPin() && (\r\n <>\r\n <DropdownMenuItem onClick={() => column.pin(\"left\")}>\r\n <PinIcon className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.pinLeft\", t)}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem onClick={() => column.pin(\"right\")}>\r\n <PinIcon className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.pinRight\", t)}\r\n </DropdownMenuItem>\r\n {isPinned && (\r\n <DropdownMenuItem onClick={() => column.pin(false)}>\r\n <PinOffIcon className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.unpin\", t)}\r\n </DropdownMenuItem>\r\n )}\r\n <DropdownMenuSeparator />\r\n </>\r\n )}\r\n\r\n {column.getCanFilter() && (\r\n <DropdownMenuGroup>\r\n <DropdownMenuLabel className=\"flex items-center gap-4 font-normal\">\r\n <FilterIcon className=\"h-4 w-4 text-muted-foreground\" />\r\n {getTranslations(\"column.filter\", t)}\r\n </DropdownMenuLabel>\r\n <DropdownMenuItem className=\"p-0\" asChild>\r\n <InlineColumnFilter column={column} t={t} />\r\n </DropdownMenuItem>\r\n </DropdownMenuGroup>\r\n )}\r\n\r\n {header &&\r\n column.getCanResize() &&\r\n column.getSize() !== column.columnDef.size && (\r\n <>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem onClick={() => header.column.resetSize()}>\r\n <Undo2 className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.resetSize\", t)}\r\n </DropdownMenuItem>\r\n </>\r\n )}\r\n\r\n {column.getCanHide() && (\r\n <>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\r\n <EyeOff className=\"mr-2 h-4 w-4\" />\r\n {getTranslations(\"column.hide\", t)}\r\n </DropdownMenuItem>\r\n </>\r\n )}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n\r\n {header && column.getCanResize() && (\r\n <div\r\n onMouseDown={header.getResizeHandler()}\r\n onTouchStart={header.getResizeHandler()}\r\n className={`absolute right-0 top-0 h-full w-1 cursor-col-resize select-none touch-none hover:bg-primary transition-opacity ${\r\n column.getIsResizing()\r\n ? \"bg-primary opacity-100\"\r\n : \"opacity-0 hover:opacity-50\"\r\n }`}\r\n style={{\r\n transform: column.getIsResizing() ? \"translateX(0)\" : undefined,\r\n }}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/custom/master-data-grid/components/table/index.ts"],"sourcesContent":["export * from \"./cell-renderer\";\r\nexport * from \"./table-body-renderer\";\r\nexport * from \"./virtual-body\";\r\nexport * from \"./header-cell\";\r\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|