@gcsa/console-react 0.1.0
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/ConsoleHeader.d.ts +9 -0
- package/dist/ConsoleHeader.js +21 -0
- package/dist/ConsoleHeader.js.map +1 -0
- package/dist/ConsolePage.d.ts +8 -0
- package/dist/ConsolePage.js +14 -0
- package/dist/ConsolePage.js.map +1 -0
- package/dist/ConsoleShell.d.ts +23 -0
- package/dist/ConsoleShell.js +133 -0
- package/dist/ConsoleShell.js.map +1 -0
- package/dist/ConsoleSidebar.d.ts +11 -0
- package/dist/ConsoleSidebar.js +52 -0
- package/dist/ConsoleSidebar.js.map +1 -0
- package/dist/GcsaAlert.d.ts +9 -0
- package/dist/GcsaAlert.js +24 -0
- package/dist/GcsaAlert.js.map +1 -0
- package/dist/GcsaAutoComplete.d.ts +15 -0
- package/dist/GcsaAutoComplete.js +106 -0
- package/dist/GcsaAutoComplete.js.map +1 -0
- package/dist/GcsaAvatar.d.ts +8 -0
- package/dist/GcsaAvatar.js +13 -0
- package/dist/GcsaAvatar.js.map +1 -0
- package/dist/GcsaBadge.d.ts +7 -0
- package/dist/GcsaBadge.js +8 -0
- package/dist/GcsaBadge.js.map +1 -0
- package/dist/GcsaBrandMark.d.ts +4 -0
- package/dist/GcsaBrandMark.js +21 -0
- package/dist/GcsaBrandMark.js.map +1 -0
- package/dist/GcsaBreadcrumb.d.ts +9 -0
- package/dist/GcsaBreadcrumb.js +20 -0
- package/dist/GcsaBreadcrumb.js.map +1 -0
- package/dist/GcsaButton.d.ts +8 -0
- package/dist/GcsaButton.js +38 -0
- package/dist/GcsaButton.js.map +1 -0
- package/dist/GcsaCalendar.d.ts +11 -0
- package/dist/GcsaCalendar.js +35 -0
- package/dist/GcsaCalendar.js.map +1 -0
- package/dist/GcsaCard.d.ts +8 -0
- package/dist/GcsaCard.js +11 -0
- package/dist/GcsaCard.js.map +1 -0
- package/dist/GcsaCascader.d.ts +14 -0
- package/dist/GcsaCascader.js +91 -0
- package/dist/GcsaCascader.js.map +1 -0
- package/dist/GcsaChatPanel.d.ts +43 -0
- package/dist/GcsaChatPanel.js +180 -0
- package/dist/GcsaChatPanel.js.map +1 -0
- package/dist/GcsaCheckbox.d.ts +11 -0
- package/dist/GcsaCheckbox.js +45 -0
- package/dist/GcsaCheckbox.js.map +1 -0
- package/dist/GcsaCollapse.d.ts +16 -0
- package/dist/GcsaCollapse.js +20 -0
- package/dist/GcsaCollapse.js.map +1 -0
- package/dist/GcsaConfigProvider.d.ts +13 -0
- package/dist/GcsaConfigProvider.js +68 -0
- package/dist/GcsaConfigProvider.js.map +1 -0
- package/dist/GcsaDataTable.d.ts +119 -0
- package/dist/GcsaDataTable.js +508 -0
- package/dist/GcsaDataTable.js.map +1 -0
- package/dist/GcsaDatePicker.d.ts +16 -0
- package/dist/GcsaDatePicker.js +211 -0
- package/dist/GcsaDatePicker.js.map +1 -0
- package/dist/GcsaDateRangePicker.d.ts +17 -0
- package/dist/GcsaDateRangePicker.js +222 -0
- package/dist/GcsaDateRangePicker.js.map +1 -0
- package/dist/GcsaDateTimePicker.d.ts +13 -0
- package/dist/GcsaDateTimePicker.js +300 -0
- package/dist/GcsaDateTimePicker.js.map +1 -0
- package/dist/GcsaDescriptions.d.ts +9 -0
- package/dist/GcsaDescriptions.js +11 -0
- package/dist/GcsaDescriptions.js.map +1 -0
- package/dist/GcsaDivider.d.ts +4 -0
- package/dist/GcsaDivider.js +8 -0
- package/dist/GcsaDivider.js.map +1 -0
- package/dist/GcsaDrawer.d.ts +15 -0
- package/dist/GcsaDrawer.js +68 -0
- package/dist/GcsaDrawer.js.map +1 -0
- package/dist/GcsaDropdown.d.ts +20 -0
- package/dist/GcsaDropdown.js +46 -0
- package/dist/GcsaDropdown.js.map +1 -0
- package/dist/GcsaEmpty.d.ts +9 -0
- package/dist/GcsaEmpty.js +16 -0
- package/dist/GcsaEmpty.js.map +1 -0
- package/dist/GcsaField.d.ts +11 -0
- package/dist/GcsaField.js +26 -0
- package/dist/GcsaField.js.map +1 -0
- package/dist/GcsaForm.d.ts +13 -0
- package/dist/GcsaForm.js +60 -0
- package/dist/GcsaForm.js.map +1 -0
- package/dist/GcsaFormField.d.ts +16 -0
- package/dist/GcsaFormField.js +39 -0
- package/dist/GcsaFormField.js.map +1 -0
- package/dist/GcsaIcon.d.ts +7 -0
- package/dist/GcsaIcon.js +17 -0
- package/dist/GcsaIcon.js.map +1 -0
- package/dist/GcsaImagePreview.d.ts +8 -0
- package/dist/GcsaImagePreview.js +18 -0
- package/dist/GcsaImagePreview.js.map +1 -0
- package/dist/GcsaInput.d.ts +13 -0
- package/dist/GcsaInput.js +76 -0
- package/dist/GcsaInput.js.map +1 -0
- package/dist/GcsaInputGroup.d.ts +11 -0
- package/dist/GcsaInputGroup.js +27 -0
- package/dist/GcsaInputGroup.js.map +1 -0
- package/dist/GcsaInputNumber.d.ts +18 -0
- package/dist/GcsaInputNumber.js +108 -0
- package/dist/GcsaInputNumber.js.map +1 -0
- package/dist/GcsaLoading.d.ts +24 -0
- package/dist/GcsaLoading.js +101 -0
- package/dist/GcsaLoading.js.map +1 -0
- package/dist/GcsaLoadingMask.d.ts +8 -0
- package/dist/GcsaLoadingMask.js +39 -0
- package/dist/GcsaLoadingMask.js.map +1 -0
- package/dist/GcsaMarkdownRenderer.d.ts +6 -0
- package/dist/GcsaMarkdownRenderer.js +32 -0
- package/dist/GcsaMarkdownRenderer.js.map +1 -0
- package/dist/GcsaMenu.d.ts +16 -0
- package/dist/GcsaMenu.js +241 -0
- package/dist/GcsaMenu.js.map +1 -0
- package/dist/GcsaModal.d.ts +10 -0
- package/dist/GcsaModal.js +45 -0
- package/dist/GcsaModal.js.map +1 -0
- package/dist/GcsaMultiSelect.d.ts +23 -0
- package/dist/GcsaMultiSelect.js +149 -0
- package/dist/GcsaMultiSelect.js.map +1 -0
- package/dist/GcsaPagination.d.ts +17 -0
- package/dist/GcsaPagination.js +108 -0
- package/dist/GcsaPagination.js.map +1 -0
- package/dist/GcsaPopconfirm.d.ts +18 -0
- package/dist/GcsaPopconfirm.js +68 -0
- package/dist/GcsaPopconfirm.js.map +1 -0
- package/dist/GcsaPopover.d.ts +30 -0
- package/dist/GcsaPopover.js +65 -0
- package/dist/GcsaPopover.js.map +1 -0
- package/dist/GcsaPopoverClose.d.ts +6 -0
- package/dist/GcsaPopoverClose.js +9 -0
- package/dist/GcsaPopoverClose.js.map +1 -0
- package/dist/GcsaProgress.d.ts +5 -0
- package/dist/GcsaProgress.js +18 -0
- package/dist/GcsaProgress.js.map +1 -0
- package/dist/GcsaRadioGroup.d.ts +9 -0
- package/dist/GcsaRadioGroup.js +37 -0
- package/dist/GcsaRadioGroup.js.map +1 -0
- package/dist/GcsaResult.d.ts +9 -0
- package/dist/GcsaResult.js +14 -0
- package/dist/GcsaResult.js.map +1 -0
- package/dist/GcsaRow.d.ts +7 -0
- package/dist/GcsaRow.js +8 -0
- package/dist/GcsaRow.js.map +1 -0
- package/dist/GcsaSelect.d.ts +20 -0
- package/dist/GcsaSelect.js +117 -0
- package/dist/GcsaSelect.js.map +1 -0
- package/dist/GcsaSkeleton.d.ts +6 -0
- package/dist/GcsaSkeleton.js +19 -0
- package/dist/GcsaSkeleton.js.map +1 -0
- package/dist/GcsaSpace.d.ts +7 -0
- package/dist/GcsaSpace.js +14 -0
- package/dist/GcsaSpace.js.map +1 -0
- package/dist/GcsaSpin.d.ts +7 -0
- package/dist/GcsaSpin.js +16 -0
- package/dist/GcsaSpin.js.map +1 -0
- package/dist/GcsaStatistic.d.ts +8 -0
- package/dist/GcsaStatistic.js +11 -0
- package/dist/GcsaStatistic.js.map +1 -0
- package/dist/GcsaSteps.d.ts +10 -0
- package/dist/GcsaSteps.js +54 -0
- package/dist/GcsaSteps.js.map +1 -0
- package/dist/GcsaSwitch.d.ts +11 -0
- package/dist/GcsaSwitch.js +36 -0
- package/dist/GcsaSwitch.js.map +1 -0
- package/dist/GcsaTabs.d.ts +15 -0
- package/dist/GcsaTabs.js +39 -0
- package/dist/GcsaTabs.js.map +1 -0
- package/dist/GcsaTag.d.ts +7 -0
- package/dist/GcsaTag.js +9 -0
- package/dist/GcsaTag.js.map +1 -0
- package/dist/GcsaTextarea.d.ts +13 -0
- package/dist/GcsaTextarea.js +76 -0
- package/dist/GcsaTextarea.js.map +1 -0
- package/dist/GcsaTimePicker.d.ts +12 -0
- package/dist/GcsaTimePicker.js +221 -0
- package/dist/GcsaTimePicker.js.map +1 -0
- package/dist/GcsaTimeline.d.ts +5 -0
- package/dist/GcsaTimeline.js +19 -0
- package/dist/GcsaTimeline.js.map +1 -0
- package/dist/GcsaToastStack.d.ts +11 -0
- package/dist/GcsaToastStack.js +45 -0
- package/dist/GcsaToastStack.js.map +1 -0
- package/dist/GcsaTooltip.d.ts +17 -0
- package/dist/GcsaTooltip.js +43 -0
- package/dist/GcsaTooltip.js.map +1 -0
- package/dist/GcsaTransfer.d.ts +11 -0
- package/dist/GcsaTransfer.js +95 -0
- package/dist/GcsaTransfer.js.map +1 -0
- package/dist/GcsaTree.d.ts +17 -0
- package/dist/GcsaTree.js +38 -0
- package/dist/GcsaTree.js.map +1 -0
- package/dist/GcsaTypography.d.ts +8 -0
- package/dist/GcsaTypography.js +14 -0
- package/dist/GcsaTypography.js.map +1 -0
- package/dist/GcsaUpload.d.ts +24 -0
- package/dist/GcsaUpload.js +146 -0
- package/dist/GcsaUpload.js.map +1 -0
- package/dist/hooks/gcsaFormTypes.d.ts +7 -0
- package/dist/hooks/useDocumentThemeSync.d.ts +3 -0
- package/dist/hooks/useDocumentThemeSync.js +7 -0
- package/dist/hooks/useDocumentThemeSync.js.map +1 -0
- package/dist/hooks/useGcsaComponentSize.d.ts +5 -0
- package/dist/hooks/useGcsaComponentSize.js +21 -0
- package/dist/hooks/useGcsaComponentSize.js.map +1 -0
- package/dist/hooks/useGcsaFormField.d.ts +26 -0
- package/dist/hooks/useGcsaFormField.js +47 -0
- package/dist/hooks/useGcsaFormField.js.map +1 -0
- package/dist/hooks/useGcsaFormSchema.d.ts +7 -0
- package/dist/hooks/useGcsaFormSchema.js +6 -0
- package/dist/hooks/useGcsaFormSchema.js.map +1 -0
- package/dist/hooks/useGcsaLocale.d.ts +4 -0
- package/dist/hooks/useGcsaLocale.js +15 -0
- package/dist/hooks/useGcsaLocale.js.map +1 -0
- package/dist/hooks/useGcsaPopupZIndex.d.ts +6 -0
- package/dist/hooks/useGcsaPopupZIndex.js +18 -0
- package/dist/hooks/useGcsaPopupZIndex.js.map +1 -0
- package/dist/hooks/useGcsaTextCount.d.ts +16 -0
- package/dist/hooks/useGcsaTextCount.js +16 -0
- package/dist/hooks/useGcsaTextCount.js.map +1 -0
- package/dist/hooks/useGcsaTheme.d.ts +7 -0
- package/dist/hooks/useGcsaTheme.js +19 -0
- package/dist/hooks/useGcsaTheme.js.map +1 -0
- package/dist/hooks/useGcsaZIndex.d.ts +13 -0
- package/dist/hooks/useGcsaZIndex.js +37 -0
- package/dist/hooks/useGcsaZIndex.js.map +1 -0
- package/dist/hooks/useMessage.d.ts +6 -0
- package/dist/hooks/useOverlayZIndex.d.ts +8 -0
- package/dist/hooks/useOverlayZIndex.js +14 -0
- package/dist/hooks/useOverlayZIndex.js.map +1 -0
- package/dist/hooks/usePreventHiddenInputScroll.d.ts +13 -0
- package/dist/hooks/usePreventHiddenInputScroll.js +124 -0
- package/dist/hooks/usePreventHiddenInputScroll.js.map +1 -0
- package/dist/icons/iconNames.d.ts +7 -0
- package/dist/icons/iconNames.js +24 -0
- package/dist/icons/iconNames.js.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/registry.d.ts +3 -0
- package/dist/icons/registry.js +58 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons/svg/alert.svg.js +9 -0
- package/dist/icons/svg/alert.svg.js.map +1 -0
- package/dist/icons/svg/assets.svg.js +9 -0
- package/dist/icons/svg/assets.svg.js.map +1 -0
- package/dist/icons/svg/chat.svg.js +8 -0
- package/dist/icons/svg/chat.svg.js.map +1 -0
- package/dist/icons/svg/check.svg.js +8 -0
- package/dist/icons/svg/check.svg.js.map +1 -0
- package/dist/icons/svg/chevron-down.svg.js +8 -0
- package/dist/icons/svg/chevron-down.svg.js.map +1 -0
- package/dist/icons/svg/chevron-left.svg.js +8 -0
- package/dist/icons/svg/chevron-left.svg.js.map +1 -0
- package/dist/icons/svg/chevron-right.svg.js +8 -0
- package/dist/icons/svg/chevron-right.svg.js.map +1 -0
- package/dist/icons/svg/chevron-up.svg.js +8 -0
- package/dist/icons/svg/chevron-up.svg.js.map +1 -0
- package/dist/icons/svg/close.svg.js +6 -0
- package/dist/icons/svg/close.svg.js.map +1 -0
- package/dist/icons/svg/dashboard.svg.js +8 -0
- package/dist/icons/svg/dashboard.svg.js.map +1 -0
- package/dist/icons/svg/menu.svg.js +8 -0
- package/dist/icons/svg/menu.svg.js.map +1 -0
- package/dist/icons/svg/plus.svg.js +6 -0
- package/dist/icons/svg/plus.svg.js.map +1 -0
- package/dist/icons/svg/result-empty.svg.js +6 -0
- package/dist/icons/svg/result-empty.svg.js.map +1 -0
- package/dist/icons/svg/settings.svg.js +8 -0
- package/dist/icons/svg/settings.svg.js.map +1 -0
- package/dist/icons/svg/users.svg.js +11 -0
- package/dist/icons/svg/users.svg.js.map +1 -0
- package/dist/index.d.ts +151 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +8028 -0
- package/dist/utils/gcsaDateValue.d.ts +25 -0
- package/dist/utils/gcsaDateValue.js +60 -0
- package/dist/utils/gcsaDateValue.js.map +1 -0
- package/dist/utils/gcsaTableColumns.d.ts +19 -0
- package/dist/utils/gcsaTableColumns.js +43 -0
- package/dist/utils/gcsaTableColumns.js.map +1 -0
- package/dist/utils/preserveDrawerScroll.d.ts +2 -0
- package/dist/utils/preserveDrawerScroll.js +13 -0
- package/dist/utils/preserveDrawerScroll.js.map +1 -0
- package/dist/utils/zodValidators.d.ts +21 -0
- package/dist/utils/zodValidators.js +35 -0
- package/dist/utils/zodValidators.js.map +1 -0
- package/package.json +58 -0
- package/src/ConsoleHeader.tsx +24 -0
- package/src/ConsolePage.tsx +22 -0
- package/src/ConsoleShell.tsx +248 -0
- package/src/ConsoleSidebar.tsx +61 -0
- package/src/GcsaAlert.tsx +29 -0
- package/src/GcsaAutoComplete.tsx +163 -0
- package/src/GcsaAvatar.tsx +21 -0
- package/src/GcsaBadge.tsx +15 -0
- package/src/GcsaBrandMark.tsx +18 -0
- package/src/GcsaBreadcrumb.tsx +35 -0
- package/src/GcsaButton.tsx +44 -0
- package/src/GcsaCalendar.tsx +14 -0
- package/src/GcsaCard.tsx +21 -0
- package/src/GcsaCascader.tsx +121 -0
- package/src/GcsaChatPanel.tsx +320 -0
- package/src/GcsaCheckbox.tsx +55 -0
- package/src/GcsaCollapse.tsx +23 -0
- package/src/GcsaConfigProvider.tsx +121 -0
- package/src/GcsaDataTable.tsx +779 -0
- package/src/GcsaDatePicker.tsx +284 -0
- package/src/GcsaDateRangePicker.tsx +310 -0
- package/src/GcsaDateTimePicker.tsx +407 -0
- package/src/GcsaDescriptions.tsx +22 -0
- package/src/GcsaDivider.tsx +7 -0
- package/src/GcsaDrawer.tsx +87 -0
- package/src/GcsaDropdown.tsx +84 -0
- package/src/GcsaEmpty.tsx +27 -0
- package/src/GcsaField.tsx +50 -0
- package/src/GcsaForm.tsx +82 -0
- package/src/GcsaFormField.tsx +67 -0
- package/src/GcsaIcon.tsx +21 -0
- package/src/GcsaImagePreview.tsx +30 -0
- package/src/GcsaInput.tsx +87 -0
- package/src/GcsaInputGroup.tsx +32 -0
- package/src/GcsaInputNumber.tsx +155 -0
- package/src/GcsaLoading.ts +206 -0
- package/src/GcsaLoadingMask.tsx +53 -0
- package/src/GcsaMarkdownRenderer.tsx +40 -0
- package/src/GcsaMenu.tsx +340 -0
- package/src/GcsaModal.tsx +68 -0
- package/src/GcsaMultiSelect.tsx +246 -0
- package/src/GcsaPagination.tsx +194 -0
- package/src/GcsaPopconfirm.tsx +104 -0
- package/src/GcsaPopover.tsx +131 -0
- package/src/GcsaPopoverClose.tsx +11 -0
- package/src/GcsaProgress.tsx +18 -0
- package/src/GcsaRadioGroup.tsx +42 -0
- package/src/GcsaResult.tsx +23 -0
- package/src/GcsaRow.tsx +13 -0
- package/src/GcsaSelect.tsx +186 -0
- package/src/GcsaSkeleton.tsx +19 -0
- package/src/GcsaSpace.tsx +17 -0
- package/src/GcsaSpin.tsx +25 -0
- package/src/GcsaStatistic.tsx +17 -0
- package/src/GcsaSteps.tsx +73 -0
- package/src/GcsaSwitch.tsx +45 -0
- package/src/GcsaTabs.tsx +53 -0
- package/src/GcsaTag.tsx +16 -0
- package/src/GcsaTextarea.tsx +87 -0
- package/src/GcsaTimePicker.tsx +298 -0
- package/src/GcsaTimeline.tsx +27 -0
- package/src/GcsaToastStack.tsx +67 -0
- package/src/GcsaTooltip.tsx +75 -0
- package/src/GcsaTransfer.tsx +129 -0
- package/src/GcsaTree.tsx +43 -0
- package/src/GcsaTypography.tsx +24 -0
- package/src/GcsaUpload.tsx +206 -0
- package/src/hooks/gcsaFormTypes.ts +23 -0
- package/src/hooks/useDocumentThemeSync.ts +6 -0
- package/src/hooks/useGcsaComponentSize.ts +24 -0
- package/src/hooks/useGcsaFormField.ts +49 -0
- package/src/hooks/useGcsaFormSchema.ts +6 -0
- package/src/hooks/useGcsaLocale.ts +16 -0
- package/src/hooks/useGcsaPopupZIndex.ts +23 -0
- package/src/hooks/useGcsaTextCount.ts +44 -0
- package/src/hooks/useGcsaTheme.ts +19 -0
- package/src/hooks/useGcsaZIndex.ts +60 -0
- package/src/hooks/useMessage.ts +7 -0
- package/src/hooks/useOverlayZIndex.ts +23 -0
- package/src/hooks/usePreventHiddenInputScroll.ts +233 -0
- package/src/icons/iconNames.ts +27 -0
- package/src/icons/index.ts +8 -0
- package/src/icons/registry.ts +38 -0
- package/src/icons/svg/alert.svg +4 -0
- package/src/icons/svg/assets.svg +4 -0
- package/src/icons/svg/chat.svg +3 -0
- package/src/icons/svg/check.svg +3 -0
- package/src/icons/svg/chevron-down.svg +3 -0
- package/src/icons/svg/chevron-left.svg +3 -0
- package/src/icons/svg/chevron-right.svg +3 -0
- package/src/icons/svg/chevron-up.svg +3 -0
- package/src/icons/svg/close.svg +1 -0
- package/src/icons/svg/dashboard.svg +3 -0
- package/src/icons/svg/menu.svg +3 -0
- package/src/icons/svg/plus.svg +1 -0
- package/src/icons/svg/result-empty.svg +1 -0
- package/src/icons/svg/settings.svg +3 -0
- package/src/icons/svg/users.svg +6 -0
- package/src/index.ts +166 -0
- package/src/utils/gcsaDateValue.ts +99 -0
- package/src/utils/gcsaTableColumns.ts +97 -0
- package/src/utils/preserveDrawerScroll.ts +20 -0
- package/src/utils/zodValidators.ts +45 -0
- package/src/vite-env.d.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDataTable.js","sources":["../src/GcsaDataTable.tsx"],"sourcesContent":["import { Fragment, useEffect, useMemo, useRef, useState, type CSSProperties, type MouseEvent as ReactMouseEvent, type MutableRefObject, type PointerEvent as ReactPointerEvent, type ReactNode } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type ColumnDef,\n type ColumnFiltersState,\n type ExpandedState,\n type Row,\n type SortingState\n} from '@tanstack/react-table';\nimport type {\n GcsaLegacyTableColumn,\n GcsaPaginationAlign,\n GcsaPaginationLayoutPart,\n GcsaTableColumn,\n GcsaTableColumnFixed,\n GcsaTableColumnInfo\n} from '@gcsa/console-core';\nimport {\n GCSA_TABLE_DEFAULT_COLUMN_MIN_WIDTH,\n GCSA_TABLE_EXPAND_COLUMN_WIDTH,\n GCSA_TABLE_SELECTION_COLUMN_WIDTH,\n formatGcsaLocaleMessage,\n getGcsaTableFixedOffset,\n getGcsaTableDefaultExpandedKeys,\n getGcsaTableMinWidth,\n getGcsaTableRowId,\n getGcsaTableSortChange,\n getGcsaTableSorting,\n normalizeGcsaTableColumns\n} from '@gcsa/console-core';\nimport { GcsaCheckbox } from './GcsaCheckbox';\nimport { GcsaEmpty } from './GcsaEmpty';\nimport { GcsaIcon } from './GcsaIcon';\nimport { GcsaInput } from './GcsaInput';\nimport { GcsaPagination } from './GcsaPagination';\nimport { GcsaSelect } from './GcsaSelect';\nimport { GcsaSpin } from './GcsaSpin';\nimport { formatGcsaTableCellValue, resolveGcsaTableColumns } from './utils/gcsaTableColumns';\nimport { useGcsaLocaleMessages } from './hooks/useGcsaLocale';\nimport { useGcsaComponentSize } from './hooks/useGcsaComponentSize';\n\ntype TableMeta = {\n width?: string;\n minWidth?: string;\n align?: 'left' | 'center' | 'right';\n slotKey?: string;\n fixed?: GcsaTableColumnFixed;\n hidden?: boolean;\n showOverflowTooltip?: boolean;\n filter?: { type: 'text' | 'select'; placeholder?: string; options?: Array<{ label: string; value: string; disabled?: boolean }> };\n};\n\nfunction childColumns<T extends Record<string, unknown>>(column: ColumnDef<T, unknown>): ColumnDef<T, unknown>[] {\n return 'columns' in column && Array.isArray(column.columns)\n ? column.columns as ColumnDef<T, unknown>[]\n : [];\n}\n\nfunction flattenColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): ColumnDef<T, unknown>[] {\n return columns.flatMap(column => {\n const children = childColumns(column);\n return children.length ? flattenColumns(children) : [column];\n });\n}\n\nfunction filterColumnTree<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[], visibility: Record<string, boolean>): ColumnDef<T, unknown>[] {\n return columns.flatMap(column => {\n const meta = metaOf(column);\n if (meta.hidden || visibility[column.id ?? ''] === false) return [];\n const columnChildren = childColumns(column);\n if (!columnChildren.length) return [column];\n const children = filterColumnTree(columnChildren, visibility);\n return children.length ? [{ ...column, columns: children }] : [];\n });\n}\n\nfunction TableLoadingState({ label }: { label: string }) {\n return (\n <div className=\"gcsa-data-table__state gcsa-data-table__state--loading\" role=\"status\" aria-live=\"polite\">\n <div className=\"gcsa-data-table__loading-label\">\n <GcsaSpin spinning />\n <span>{label}</span>\n </div>\n </div>\n );\n}\n\nexport type GcsaDataTableProps<T extends Record<string, unknown>> = {\n data: T[];\n columns?: Array<GcsaTableColumn<T> | ColumnDef<T, unknown>>;\n legacyColumns?: GcsaLegacyTableColumn<T>[];\n total?: number;\n pageSize?: number;\n pageSizeOptions?: number[];\n showPageSize?: boolean;\n showJumper?: boolean;\n pageSizeLabel?: string;\n jumperLabel?: string;\n paginationLayout?: string | GcsaPaginationLayoutPart[];\n paginationAlign?: GcsaPaginationAlign;\n showTotal?: boolean;\n page?: number;\n pagination?: boolean;\n showToolbar?: boolean;\n /** 工具栏是否显示总条数 */\n showCount?: boolean;\n size?: 'sm' | 'md';\n serverSide?: boolean;\n sorting?: SortingState;\n filters?: Record<string, string>;\n defaultSorting?: SortingState;\n defaultFilters?: Record<string, string>;\n loading?: boolean;\n error?: string;\n retryLabel?: string;\n selectable?: boolean | ((row: T, index: number) => boolean);\n selectedRowKeys?: string[];\n columnVisibility?: Record<string, boolean>;\n resizable?: boolean;\n columnWidths?: Record<string, number>;\n treeData?: boolean;\n childrenKey?: keyof T & string;\n treeLazy?: boolean;\n treeHasChildrenKey?: keyof T & string;\n treeHasChildren?: (row: T, index: number) => boolean;\n loadChildren?: (row: T, index: number) => Promise<T[]> | T[];\n treeLoadingText?: string;\n treeLoadErrorText?: string;\n expandedRowKeys?: string[];\n mobileMode?: 'scroll' | 'cards';\n stripe?: boolean;\n bordered?: boolean;\n highlightCurrentRow?: boolean;\n currentRowKey?: string;\n rowClassName?: string | ((row: T, index: number) => string | undefined);\n summary?: (rows: T[]) => Record<string, string | number | null | undefined>;\n summaryLabel?: string;\n apiRef?: MutableRefObject<GcsaDataTableApi<T> | null>;\n rowKey?: keyof T & string | ((row: T, index: number) => string);\n height?: string | number;\n maxHeight?: string | number;\n expandable?: boolean;\n defaultExpandAll?: boolean;\n fixedSelection?: boolean;\n selectionColumnWidth?: number;\n expandColumnWidth?: number;\n renderExpandedRow?: (row: T, index: number) => ReactNode;\n toolbar?: ReactNode;\n onPageChange?: (page: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n onSortingChange?: (sorting: SortingState) => void;\n /** Element-style sort event payload for migration from el-table. */\n onSortChange?: (change: ReturnType<typeof getGcsaTableSortChange>) => void;\n onFiltersChange?: (filters: Record<string, string>) => void;\n onFilterChange?: (filters: Record<string, string>) => void;\n onSelectionChange?: (rows: T[]) => void;\n onSelect?: (rows: T[], row: T) => void;\n onSelectAll?: (rows: T[]) => void;\n onSelectedRowKeysChange?: (keys: string[]) => void;\n onColumnVisibilityChange?: (visibility: Record<string, boolean>) => void;\n onColumnWidthsChange?: (widths: Record<string, number>) => void;\n onExpandedRowKeysChange?: (keys: string[]) => void;\n onCurrentRowKeyChange?: (key: string | undefined) => void;\n onRowClick?: (row: T, index: number, event: ReactMouseEvent<HTMLTableRowElement>) => void;\n onRowDoubleClick?: (row: T, index: number, event: ReactMouseEvent<HTMLTableRowElement>) => void;\n onCellClick?: (row: T, column: string, value: unknown, index: number, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onCellDoubleClick?: (row: T, column: string, value: unknown, index: number, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onHeaderClick?: (column: GcsaTableColumnInfo, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onRowContextMenu?: (row: T, index: number, event: ReactMouseEvent<HTMLTableRowElement>) => void;\n onCellContextMenu?: (row: T, column: string, value: unknown, index: number, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onLegacyRowClick?: (row: T, column: GcsaTableColumnInfo, event: ReactMouseEvent<HTMLTableRowElement>) => void;\n onLegacyCellClick?: (row: T, column: GcsaTableColumnInfo, cell: HTMLTableCellElement, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onLegacyRowContextMenu?: (row: T, column: GcsaTableColumnInfo, event: ReactMouseEvent<HTMLTableRowElement>) => void;\n onLegacyCellContextMenu?: (row: T, column: GcsaTableColumnInfo, cell: HTMLTableCellElement, event: ReactMouseEvent<HTMLTableCellElement>) => void;\n onCurrentChange?: (current: T | undefined, previous: T | undefined) => void;\n onExpandChange?: (row: T, expanded: boolean, expandedRows: T[]) => void;\n columnSelector?: (columns: Array<{ id: string; title: string; visible: boolean }>, toggle: (id: string) => void) => ReactNode;\n onRetry?: () => void;\n onTreeLoadError?: (error: unknown, row: T, index: number) => void;\n};\n\nexport type GcsaDataTableApi<T extends Record<string, unknown>> = {\n clearSorting: () => void;\n clearFilters: () => void;\n clearSelection: () => void;\n clearExpanded: () => void;\n setRowSelected: (key: string, selected?: boolean) => void;\n setRowExpanded: (key: string, expanded?: boolean) => Promise<void>;\n clearSort: () => void;\n clearFilter: (columnKeys?: string | string[]) => void;\n sort: (prop: string, order: 'ascending' | 'descending' | null) => void;\n toggleRowSelection: (row: T, selected?: boolean) => void;\n toggleAllSelection: () => void;\n toggleRowExpansion: (row: T, expanded?: boolean) => Promise<void>;\n setCurrentRow: (row?: T) => void;\n getSelectionRows: () => T[];\n setScrollTop: (top: number) => void;\n scrollTo: (options: ScrollToOptions | number, y?: number) => void;\n};\n\nfunction metaOf<T>(column: ColumnDef<T, unknown>): TableMeta {\n return (column.meta ?? {}) as TableMeta;\n}\n\nfunction toColumnFilters(filters?: Record<string, string>): ColumnFiltersState {\n return Object.entries(filters ?? {}).filter(([, value]) => value !== '').map(([id, value]) => ({ id, value }));\n}\n\nfunction filterRecord(filters: ColumnFiltersState) {\n return Object.fromEntries(filters.map(filter => [filter.id, String(filter.value)]));\n}\n\nfunction fixedStyle<T extends Record<string, unknown>>(\n columns: ColumnDef<T, unknown>[],\n id: string,\n meta: TableMeta,\n widths: Record<string, number> = {},\n controls: { expandable: boolean; selectable: boolean; fixedSelection: boolean; expandColumnWidth?: number; selectionColumnWidth?: number }\n): CSSProperties | undefined {\n const override = widths[id];\n const sizing = override\n ? { width: `${override}px`, minWidth: `${override}px` }\n : meta.width || meta.minWidth\n ? { width: meta.width, minWidth: meta.minWidth ?? meta.width }\n : { minWidth: `${GCSA_TABLE_DEFAULT_COLUMN_MIN_WIDTH}px` };\n if (!meta.fixed) return Object.keys(sizing).length ? sizing : undefined;\n const fixedDirection = meta.fixed === true ? 'left' : meta.fixed;\n const offset = getGcsaTableFixedOffset(\n columns.map(column => ({ id: column.id ?? '', ...metaOf(column) })),\n id,\n fixedDirection,\n { ...controls, columnWidths: widths }\n );\n return { ...sizing, position: 'sticky', [fixedDirection]: offset } as CSSProperties;\n}\n\nfunction collectExpandedRows<T extends Record<string, unknown>>(\n rows: T[],\n expanded: ExpandedState,\n getRowId: (row: T, index: number, parent?: Row<T>) => string,\n treeData: boolean,\n childrenKey: keyof T & string\n) {\n const expandedKeys = expanded === true ? undefined : new Set(Object.keys(expanded).filter(key => expanded[key]));\n const result: T[] = [];\n const visit = (items: T[], parent?: Row<T>) => items.forEach((row, index) => {\n const key = getRowId(row, index, parent);\n if (!expandedKeys || expandedKeys.has(key)) result.push(row);\n if (treeData) {\n const children = (row as Record<string, unknown>)[childrenKey];\n if (Array.isArray(children)) visit(children as T[], { id: key } as Row<T>);\n }\n });\n visit(rows);\n return result;\n}\n\nexport function GcsaDataTable<T extends Record<string, unknown>>({\n data,\n columns,\n legacyColumns,\n total = data.length,\n pageSize: pageSizeProp = 10,\n pageSizeOptions = [10, 20, 50, 100],\n showPageSize = false,\n showJumper = false,\n pageSizeLabel,\n jumperLabel,\n paginationLayout,\n paginationAlign,\n showTotal = true,\n page = 1,\n pagination = true,\n showToolbar = true,\n showCount = true,\n size,\n serverSide = false,\n sorting: controlledSorting,\n filters: controlledFilters,\n defaultSorting = [],\n defaultFilters = {},\n loading = false,\n error,\n retryLabel,\n selectable,\n selectedRowKeys,\n columnVisibility: controlledColumnVisibility,\n resizable = false,\n columnWidths: controlledColumnWidths,\n treeData = false,\n childrenKey = 'children' as keyof T & string,\n treeLazy = false,\n treeHasChildrenKey = 'hasChildren' as keyof T & string,\n treeHasChildren,\n loadChildren,\n treeLoadingText,\n treeLoadErrorText,\n expandedRowKeys,\n mobileMode = 'scroll',\n stripe = false,\n bordered = false,\n highlightCurrentRow = false,\n currentRowKey: controlledCurrentRowKey,\n rowClassName,\n summary,\n summaryLabel,\n apiRef,\n rowKey,\n expandable,\n height,\n maxHeight,\n defaultExpandAll = false,\n fixedSelection,\n selectionColumnWidth,\n expandColumnWidth,\n renderExpandedRow,\n toolbar,\n onPageChange,\n onPageSizeChange,\n onSortingChange,\n onSortChange,\n onFiltersChange,\n onFilterChange,\n onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectedRowKeysChange,\n onColumnVisibilityChange,\n onColumnWidthsChange,\n onExpandedRowKeysChange,\n onCurrentRowKeyChange,\n onRowClick,\n onRowDoubleClick,\n onCellClick,\n onCellDoubleClick,\n onHeaderClick,\n onRowContextMenu,\n onCellContextMenu,\n onLegacyRowClick,\n onLegacyCellClick,\n onLegacyRowContextMenu,\n onLegacyCellContextMenu,\n onCurrentChange,\n onExpandChange,\n columnSelector,\n onRetry,\n onTreeLoadError\n}: GcsaDataTableProps<T>) {\n const messages = useGcsaLocaleMessages();\n const resolvedPageSizeLabel = pageSizeLabel ?? messages.paginationPageSize;\n const resolvedJumperLabel = jumperLabel ?? messages.paginationJumper;\n const resolvedRetryLabel = retryLabel ?? messages.retry;\n const resolvedTreeLoadingText = treeLoadingText ?? messages.dataTableTreeLoading;\n const resolvedTreeLoadErrorText = treeLoadErrorText ?? messages.dataTableTreeLoadError;\n const resolvedSummaryLabel = summaryLabel ?? messages.dataTableSummary;\n const resolvedSize = useGcsaComponentSize(size);\n const getRowId = (row: T, index: number, parent?: Row<T>) => getGcsaTableRowId(row, index, rowKey, parent?.id);\n const [pageSize, setPageSize] = useState(pageSizeProp);\n const [sorting, setSorting] = useState<SortingState>(() => [...(controlledSorting ?? defaultSorting)]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>(() => toColumnFilters(controlledFilters ?? defaultFilters));\n const [rowSelection, setRowSelection] = useState<Record<string, boolean>>(() => Object.fromEntries((selectedRowKeys ?? []).map(key => [key, true])));\n const [columnVisibility, setColumnVisibility] = useState<Record<string, boolean>>(controlledColumnVisibility ?? {});\n const [columnWidths, setColumnWidths] = useState<Record<string, number>>(controlledColumnWidths ?? {});\n const [expandedKeys, setExpandedKeys] = useState<ExpandedState>(() => Object.fromEntries((expandedRowKeys ?? (defaultExpandAll ? getGcsaTableDefaultExpandedKeys(data, treeData, childrenKey, rowKey) : [])).map(key => [key, true])));\n const [currentRowKey, setCurrentRowKey] = useState(controlledCurrentRowKey);\n const [treeChildren, setTreeChildren] = useState<Record<string, T[]>>({});\n const [treeLoadingKeys, setTreeLoadingKeys] = useState<Record<string, boolean>>({});\n const [treeErrors, setTreeErrors] = useState<Record<string, unknown>>({});\n const tableWrapRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n setPageSize(pageSizeProp);\n }, [pageSizeProp]);\n const treeObjectIds = useMemo(() => new WeakMap<object, string>(), []);\n const treeObjectSequence = useRef(0);\n const legacyMigration = useMemo(() => legacyColumns?.length\n ? normalizeGcsaTableColumns(legacyColumns, { page, pageSize })\n : undefined, [legacyColumns, page, pageSize]);\n const effectiveSelectable = legacyMigration?.selectable ?? selectable ?? false;\n const effectiveExpandable = legacyMigration?.expandable ?? expandable ?? false;\n const effectiveFixedSelection = fixedSelection ?? legacyMigration?.fixedSelection ?? false;\n const effectiveSelectionColumnWidth = selectionColumnWidth ?? legacyMigration?.selectionColumnWidth ?? GCSA_TABLE_SELECTION_COLUMN_WIDTH;\n const effectiveExpandColumnWidth = expandColumnWidth ?? legacyMigration?.expandColumnWidth ?? GCSA_TABLE_EXPAND_COLUMN_WIDTH;\n const allColumns = useMemo(() => resolveGcsaTableColumns(legacyMigration?.columns ?? columns ?? []), [legacyMigration, columns]);\n const resolvedColumns = useMemo(() => filterColumnTree(allColumns, columnVisibility), [allColumns, columnVisibility]);\n const leafColumns = useMemo(() => flattenColumns(resolvedColumns), [resolvedColumns]);\n const columnOptions = useMemo(() => flattenColumns(allColumns).filter(column => !metaOf(column).hidden).map(column => ({ id: column.id ?? '', title: typeof column.header === 'string' ? column.header : column.id ?? '', visible: columnVisibility[column.id ?? ''] !== false })), [allColumns, columnVisibility]);\n const treeNodeKey = (row: T, index: number) => {\n const objectRow = row as object;\n const existing = treeObjectIds.get(objectRow);\n if (existing) return existing;\n const key = rowKey ? getRowId(row, index) : `tree-${treeObjectSequence.current++}`;\n treeObjectIds.set(objectRow, key);\n return key;\n };\n const canExpandTreeRow = (row: T, index: number) => {\n const key = treeNodeKey(row, index);\n if (Object.prototype.hasOwnProperty.call(treeChildren, key)) return treeChildren[key].length > 0;\n const children = (row as Record<string, unknown>)[childrenKey as string];\n if (Array.isArray(children) && children.length) return true;\n if (!treeLazy) return false;\n return treeHasChildren ? treeHasChildren(row, index) : (row as Record<string, unknown>)[treeHasChildrenKey as string] === true;\n };\n const tableData = useMemo(() => {\n if (!treeData || !Object.keys(treeChildren).length) return data;\n const merge = (rows: T[]): T[] => rows.map((row, index) => {\n const key = treeNodeKey(row, index);\n const loaded = treeChildren[key];\n const inline = (row as Record<string, unknown>)[childrenKey as string] as T[] | undefined;\n const children = loaded ?? inline;\n if (!children) return row;\n const clone = { ...row, [childrenKey]: merge(children) } as T;\n treeObjectIds.set(clone as object, key);\n return clone;\n });\n return merge(data);\n }, [data, treeChildren, treeData, childrenKey]);\n const getSubRows = (row: T) => treeData ? (((row as Record<string, unknown>)[childrenKey as string] as T[] | undefined) ?? []) : undefined;\n const table = useReactTable({\n data: tableData,\n columns: resolvedColumns,\n state: { pagination: { pageIndex: page - 1, pageSize }, sorting, columnFilters, rowSelection, columnVisibility, expanded: expandedKeys },\n getRowId,\n getSubRows,\n getRowCanExpand: row => treeData ? canExpandTreeRow(row.original, row.index) : false,\n enableRowSelection: row => typeof effectiveSelectable === 'function' ? effectiveSelectable(row.original, row.index) : effectiveSelectable,\n manualPagination: serverSide,\n manualSorting: serverSide,\n manualFiltering: serverSide,\n pageCount: serverSide ? Math.ceil(total / pageSize) : undefined,\n onPaginationChange: updater => { const next = typeof updater === 'function' ? updater({ pageIndex: page - 1, pageSize }) : updater; onPageChange?.(next.pageIndex + 1); },\n onSortingChange: updater => { const next = typeof updater === 'function' ? updater(sorting) : updater; setSorting(next); onSortingChange?.(next); onSortChange?.(getGcsaTableSortChange(next)); },\n onColumnFiltersChange: updater => { const next = typeof updater === 'function' ? updater(columnFilters) : updater; setColumnFilters(next); onFiltersChange?.(filterRecord(next)); },\n onColumnVisibilityChange: updater => { const next = typeof updater === 'function' ? updater(columnVisibility) : updater; setColumnVisibility(next); onColumnVisibilityChange?.(next); },\n onRowSelectionChange: updater => {\n const next = typeof updater === 'function' ? updater(rowSelection) : updater;\n setRowSelection(next);\n onSelectedRowKeysChange?.(Object.keys(next).filter(key => next[key]));\n onSelectionChange?.(selectedRowsForState(next));\n },\n onExpandedChange: updater => {\n const next = typeof updater === 'function' ? updater(expandedKeys) : updater;\n setExpandedKeys(next);\n onExpandedRowKeysChange?.(next === true ? table.getRowModel().flatRows.map(row => row.id) : Object.keys(next).filter(key => next[key]));\n },\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: serverSide ? undefined : getFilteredRowModel(),\n getSortedRowModel: serverSide ? undefined : getSortedRowModel(),\n getPaginationRowModel: serverSide ? undefined : getPaginationRowModel(),\n getExpandedRowModel: treeData ? getExpandedRowModel() : undefined\n });\n useEffect(() => {\n if (controlledSorting) setSorting([...controlledSorting]);\n }, [controlledSorting]);\n useEffect(() => {\n if (defaultExpandAll && !expandedRowKeys) {\n setExpandedKeys(Object.fromEntries(getGcsaTableDefaultExpandedKeys(data, treeData, childrenKey, rowKey).map(key => [key, true])));\n }\n }, [data, treeData, defaultExpandAll, expandedRowKeys, childrenKey, rowKey]);\n useEffect(() => {\n if (controlledFilters) setColumnFilters(toColumnFilters(controlledFilters));\n }, [controlledFilters]);\n useEffect(() => {\n if (selectedRowKeys) setRowSelection(Object.fromEntries(selectedRowKeys.map(key => [key, true])));\n }, [selectedRowKeys]);\n useEffect(() => {\n if (controlledColumnVisibility) setColumnVisibility(controlledColumnVisibility);\n }, [controlledColumnVisibility]);\n useEffect(() => {\n if (controlledColumnWidths) setColumnWidths(controlledColumnWidths);\n }, [controlledColumnWidths]);\n useEffect(() => {\n if (expandedRowKeys) setExpandedKeys(Object.fromEntries(expandedRowKeys.map(key => [key, true])));\n }, [expandedRowKeys]);\n useEffect(() => {\n setCurrentRowKey(controlledCurrentRowKey);\n }, [controlledCurrentRowKey]);\n const selectedCount = table.getSelectedRowModel().rows.length;\n const totalCountText = formatGcsaLocaleMessage(messages.dataTableTotal, { count: total });\n const selectedCountText = formatGcsaLocaleMessage(messages.dataTableSelected, { count: selectedCount });\n const selectableRows = table.getRowModel().rows.filter(row => row.getCanSelect());\n const visibleColumnCount = leafColumns.length + (effectiveSelectable ? 1 : 0) + (effectiveExpandable || treeData ? 1 : 0);\n const fixedControls = Boolean(effectiveSelectable && effectiveFixedSelection);\n const fixedLayout = { expandable: effectiveExpandable || treeData, selectable: Boolean(effectiveSelectable), fixedSelection: effectiveFixedSelection, expandColumnWidth: effectiveExpandColumnWidth, selectionColumnWidth: effectiveSelectionColumnWidth };\n const tableMinWidth = useMemo(\n () => getGcsaTableMinWidth(\n leafColumns.map(column => ({ id: column.id ?? '', ...metaOf(column) })),\n {\n expandable: effectiveExpandable || treeData,\n selectable: Boolean(effectiveSelectable),\n expandColumnWidth: effectiveExpandColumnWidth,\n selectionColumnWidth: effectiveSelectionColumnWidth,\n columnWidths\n }\n ),\n [\n columnWidths,\n effectiveExpandColumnWidth,\n effectiveExpandable,\n effectiveSelectionColumnWidth,\n effectiveSelectable,\n leafColumns,\n treeData\n ]\n );\n const expandColumnStyle: CSSProperties = {\n width: effectiveExpandColumnWidth,\n minWidth: effectiveExpandColumnWidth,\n maxWidth: effectiveExpandColumnWidth,\n ...(fixedControls ? { position: 'sticky', left: 0 } : {})\n };\n const selectionColumnStyle: CSSProperties = {\n width: effectiveSelectionColumnWidth,\n minWidth: effectiveSelectionColumnWidth,\n maxWidth: effectiveSelectionColumnWidth,\n ...(fixedControls ? { position: 'sticky', left: effectiveExpandable || treeData ? effectiveExpandColumnWidth : 0 } : {})\n };\n const filterValue = (id: string) => String(columnFilters.find(filter => filter.id === id)?.value ?? '');\n const updateFilter = (id: string, value: string) => {\n const next = columnFilters.filter(filter => filter.id !== id);\n if (value) next.push({ id, value });\n setColumnFilters(next);\n const filters = filterRecord(next);\n onFiltersChange?.(filters);\n onFilterChange?.(filters);\n };\n const rangeStart = total ? (page - 1) * pageSize + 1 : 0;\n const rangeEnd = Math.min(page * pageSize, total);\n const rangeText = formatGcsaLocaleMessage(messages.dataTableRange, {\n start: rangeStart,\n end: rangeEnd,\n total\n });\n const toggleColumn = (id: string) => {\n const visibleCount = leafColumns.length;\n const next = { ...columnVisibility, [id]: columnVisibility[id] === false };\n if (!next[id] && visibleCount <= 1) return;\n setColumnVisibility(next);\n onColumnVisibilityChange?.(next);\n };\n const startColumnResize = (event: ReactPointerEvent<HTMLSpanElement>, id: string) => {\n const cell = event.currentTarget.parentElement;\n const sourceColumn = leafColumns.find(column => column.id === id) as ColumnDef<T, unknown> | undefined;\n const sourceMeta = sourceColumn ? metaOf(sourceColumn) : {};\n const initialWidth = cell?.getBoundingClientRect().width ?? Number.parseFloat(String(sourceMeta.width ?? '0'));\n const minWidth = Math.max(64, Number.parseFloat(String(sourceMeta.minWidth ?? sourceMeta.width ?? '64')) || 64);\n const startX = event.clientX;\n const move = (moveEvent: PointerEvent) => {\n const next = Math.max(minWidth, Math.round(initialWidth + moveEvent.clientX - startX));\n setColumnWidths(current => ({ ...current, [id]: next }));\n };\n const up = () => {\n setColumnWidths(current => { onColumnWidthsChange?.(current); return current; });\n document.removeEventListener('pointermove', move);\n document.removeEventListener('pointerup', up);\n };\n document.addEventListener('pointermove', move);\n document.addEventListener('pointerup', up, { once: true });\n };\n\n const tableRows = table.getRowModel().rows;\n const expandedRowsFor = (expanded: ExpandedState) => collectExpandedRows(tableData, expanded, (row, index, parent) => getRowId(row, index, parent), treeData, childrenKey);\n const summaryValues = summary?.(data);\n const isRowExpanded = (rowIdValue: string) => expandedKeys === true ? true : expandedKeys[rowIdValue] === true;\n const treeLoading = (row: Row<T>) => Boolean(treeLoadingKeys[treeNodeKey(row.original, row.index)]);\n const treeError = (row: Row<T>) => Boolean(treeErrors[treeNodeKey(row.original, row.index)]);\n const applyExpanded = (row: Row<T>, expanded: boolean) => {\n const nextExpanded = { ...(expandedKeys === true ? {} : expandedKeys), [row.id]: expanded };\n setExpandedKeys(nextExpanded);\n onExpandedRowKeysChange?.(Object.keys(nextExpanded).filter(key => nextExpanded[key]));\n onExpandChange?.(row.original, expanded, expandedRowsFor(nextExpanded));\n };\n const toggleExpanded = async (row: Row<T>) => {\n if (treeData && treeLazy && !isRowExpanded(row.id)) {\n const key = treeNodeKey(row.original, row.index);\n if (!Object.prototype.hasOwnProperty.call(treeChildren, key) && loadChildren && canExpandTreeRow(row.original, row.index)) {\n setTreeLoadingKeys(current => ({ ...current, [key]: true }));\n setTreeErrors(current => { const next = { ...current }; delete next[key]; return next; });\n try {\n const children = await loadChildren(row.original, row.index);\n setTreeChildren(current => ({ ...current, [key]: children ?? [] }));\n if (children?.length) {\n applyExpanded(row, true);\n }\n } catch (error) {\n setTreeErrors(current => ({ ...current, [key]: error }));\n onTreeLoadError?.(error, row.original, row.index);\n } finally {\n setTreeLoadingKeys(current => { const next = { ...current }; delete next[key]; return next; });\n }\n } else if (Object.prototype.hasOwnProperty.call(treeChildren, key)) {\n applyExpanded(row, !isRowExpanded(row.id));\n }\n return;\n }\n if (treeData) {\n applyExpanded(row, !isRowExpanded(row.id));\n } else {\n const expanded = !isRowExpanded(row.id);\n applyExpanded(row, expanded);\n }\n };\n const tableClassName = ['gcsa-table', resolvedSize === 'sm' ? 'gcsa-table--sm' : undefined, stripe ? 'gcsa-table--striped' : undefined, bordered ? 'gcsa-table--bordered' : undefined].filter(Boolean).join(' ');\n const getRowClassName = (row: T, index: number) => typeof rowClassName === 'function' ? rowClassName(row, index) : rowClassName;\n const getColumnInfo = (id: string): GcsaTableColumnInfo => {\n const column = leafColumns.find(candidate => candidate.id === id);\n const meta = column ? metaOf(column) : {};\n return { id, prop: id, label: typeof column?.header === 'string' ? column.header : id, width: meta.width, minWidth: meta.minWidth, fixed: meta.fixed };\n };\n const selectCurrentRow = (row: T, index: number) => {\n if (!highlightCurrentRow) return;\n const key = getRowId(row, index);\n setCurrentRowKey(key);\n onCurrentRowKeyChange?.(key);\n };\n const emitSelection = (next: Record<string, boolean>) => {\n setRowSelection(next);\n const keys = Object.keys(next).filter(key => next[key]);\n onSelectedRowKeysChange?.(keys);\n onSelectionChange?.(selectedRowsForState(next));\n };\n const clearSorting = () => { setSorting([]); onSortingChange?.([]); onSortChange?.(getGcsaTableSortChange([])); };\n const clearFilters = () => { setColumnFilters([]); onFiltersChange?.({}); onFilterChange?.({}); };\n const clearFilter = (columnKeys?: string | string[]) => {\n if (columnKeys === undefined) {\n clearFilters();\n return;\n }\n const keys = new Set(Array.isArray(columnKeys) ? columnKeys : [columnKeys]);\n const next = columnFilters.filter(filter => !keys.has(filter.id));\n setColumnFilters(next);\n const filters = filterRecord(next);\n onFiltersChange?.(filters);\n onFilterChange?.(filters);\n };\n const sort = (prop: string, order: 'ascending' | 'descending' | null) => {\n const next = getGcsaTableSorting(prop, order);\n setSorting(next);\n onSortingChange?.(next);\n onSortChange?.(getGcsaTableSortChange(next));\n };\n const clearSelection = () => emitSelection({});\n const clearExpanded = () => { setExpandedKeys({}); onExpandedRowKeysChange?.([]); };\n const setRowSelected = (key: string, selected = true) => {\n const row = table.getCoreRowModel().flatRows.find(candidate => candidate.id === key);\n if (!row || !row.getCanSelect()) return;\n emitSelection({ ...rowSelection, [key]: selected });\n };\n const toggleRowSelection = (row: T, selected?: boolean) => {\n const tableRow = findTableRow(row);\n if (!tableRow || !tableRow.getCanSelect()) return;\n setRowSelected(tableRow.id, selected ?? !tableRow.getIsSelected());\n };\n const rowsForSelection = (selection: Record<string, boolean>) => table.getCoreRowModel().flatRows\n .filter(row => selection[row.id] && row.getCanSelect())\n .map(row => row.original);\n const selectedRowsForState = rowsForSelection;\n const toggleRowSelectionValue = (row: Row<T>, selected: boolean) => {\n const next = { ...rowSelection, [row.id]: selected };\n row.toggleSelected(selected);\n onSelect?.(rowsForSelection(next), row.original);\n };\n const toggleAllSelection = (checked?: boolean) => {\n const allSelected = selectableRows.length > 0 && selectableRows.every(row => row.getIsSelected());\n const nextChecked = checked ?? !allSelected;\n table.toggleAllPageRowsSelected(nextChecked);\n const next = { ...rowSelection };\n selectableRows.forEach(row => { next[row.id] = nextChecked; });\n onSelectAll?.(rowsForSelection(next));\n };\n const setRowExpanded = async (key: string, expanded = true) => {\n const row = table.getCoreRowModel().flatRows.find(candidate => candidate.id === key);\n if (!row) return;\n if (treeData) {\n if (isRowExpanded(key) === expanded) return;\n if (expanded) await toggleExpanded(row);\n else applyExpanded(row, false);\n return;\n }\n const next = { ...(expandedKeys === true ? {} : expandedKeys), [key]: expanded };\n setExpandedKeys(next);\n onExpandedRowKeysChange?.(Object.keys(next).filter(value => next[value]));\n };\n const toggleRowExpansion = async (row: T, expanded?: boolean) => {\n const tableRow = findTableRow(row);\n if (!tableRow) return;\n await setRowExpanded(tableRow.id, expanded ?? !isRowExpanded(tableRow.id));\n };\n const setCurrentRow = (row?: T) => {\n const tableRow = row ? findTableRow(row) : undefined;\n setCurrentRowKey(tableRow?.id);\n onCurrentRowKeyChange?.(tableRow?.id);\n };\n const findTableRow = (row: T) => {\n const rows = table.getCoreRowModel().flatRows;\n const byReference = rows.find(candidate => candidate.original === row);\n if (byReference) return byReference;\n if (rowKey) {\n const key = getRowId(row, 0);\n return rows.find(candidate => candidate.id === key);\n }\n return undefined;\n };\n const getSelectionRows = () => table.getCoreRowModel().flatRows.filter(row => row.getIsSelected()).map(row => row.original);\n const setScrollTop = (top: number) => tableWrapRef.current?.scrollTo({ top });\n const scrollTo = (options: ScrollToOptions | number, y?: number) => {\n if (typeof options === 'number') tableWrapRef.current?.scrollTo(options, y ?? 0);\n else tableWrapRef.current?.scrollTo(options);\n };\n if (apiRef) {\n apiRef.current = {\n clearSorting,\n clearFilters,\n clearSelection,\n clearExpanded,\n setRowSelected,\n setRowExpanded,\n clearSort: clearSorting,\n clearFilter,\n sort,\n toggleRowSelection,\n toggleAllSelection,\n toggleRowExpansion,\n setCurrentRow,\n getSelectionRows,\n setScrollTop,\n scrollTo\n };\n }\n return <div className={`gcsa-data-table${mobileMode === 'cards' ? ' gcsa-data-table--cards' : ''}`}>\n {showToolbar && (toolbar || columnSelector) ? <div className=\"gcsa-data-table__toolbar\"><div className=\"gcsa-data-table__toolbar-meta\">{showCount && !loading ? <span className=\"gcsa-data-table__count\">{totalCountText}</span> : null}{selectedCount ? <span className=\"gcsa-data-table__selected\">{selectedCountText}</span> : null}</div><div className=\"gcsa-data-table__toolbar-actions\">{toolbar}{columnSelector ? <div className=\"gcsa-data-table__columns-control\">{columnSelector(columnOptions, toggleColumn)}</div> : null}</div></div> : null}\n <div ref={tableWrapRef} className=\"gcsa-table-wrap gcsa-ui-surface\" style={{ height: height === undefined ? undefined : typeof height === 'number' ? `${height}px` : height, maxHeight: maxHeight === undefined ? undefined : typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight }}>\n {loading ? <TableLoadingState label={messages.dataTableLoading} /> : null}\n {error ? <div className=\"gcsa-data-table__state gcsa-data-table__state--error\" role=\"alert\"><span>{error}</span><button type=\"button\" className=\"gcsa-btn gcsa-btn--sm gcsa-btn--secondary\" onClick={onRetry}>{resolvedRetryLabel}</button></div> : null}\n {!loading && !error ? <table className={tableClassName} style={{ minWidth: tableMinWidth }}>\n <thead className=\"gcsa-table__head\">\n {table.getHeaderGroups().map((headerGroup, groupIndex) => <tr key={headerGroup.id}>\n {groupIndex === 0 && (effectiveExpandable || treeData) ? <th className=\"gcsa-table__col-expand\" style={expandColumnStyle} rowSpan={table.getHeaderGroups().length} /> : null}\n {groupIndex === 0 && effectiveSelectable ? <th className=\"gcsa-table__col-check\" style={selectionColumnStyle} rowSpan={table.getHeaderGroups().length}><GcsaCheckbox checked={selectableRows.length > 0 && selectableRows.every(row => row.getIsSelected())} disabled={!selectableRows.length} label=\"\" ariaLabel={messages.dataTableSelectAll} onCheckedChange={checked => toggleAllSelection(checked)} /></th> : null}\n {headerGroup.headers.map(header => {\n const meta = metaOf(header.column.columnDef);\n const isLeaf = !header.column.columns.length;\n return <th key={header.id} colSpan={header.colSpan} rowSpan={header.rowSpan > 1 ? header.rowSpan : undefined} style={fixedStyle(leafColumns, header.column.id, meta, columnWidths, fixedLayout)} className={meta.align === 'center' ? 'gcsa-table__align-center' : meta.align === 'right' ? 'gcsa-table__align-right' : undefined} onClick={event => onHeaderClick?.(getColumnInfo(header.column.id), event)}>\n {header.isPlaceholder ? null : isLeaf && header.column.getCanSort() ? <button type=\"button\" className={`gcsa-table__sort${header.column.getIsSorted() ? ' gcsa-table__sort--active' : ''}`} onClick={header.column.getToggleSortingHandler()}><span className=\"gcsa-table__sort-label\">{flexRender(header.column.columnDef.header, header.getContext())}</span><span className=\"gcsa-table__sort-icon\" aria-hidden=\"true\"><GcsaIcon name=\"chevronUp\" size=\"sm\" /><GcsaIcon name=\"chevronDown\" size=\"sm\" /></span></button> : isLeaf ? <span className=\"gcsa-table__head-text\">{flexRender(header.column.columnDef.header, header.getContext())}</span> : <span className=\"gcsa-table__head-text\">{flexRender(header.column.columnDef.header, header.getContext())}</span>}\n {isLeaf && meta.filter ? <div className=\"gcsa-table__filter\">{meta.filter.type === 'text' ? <GcsaInput value={filterValue(header.column.id)} placeholder={meta.filter.placeholder ?? messages.dataTableFilter} onValueChange={value => updateFilter(header.column.id, value)} /> : <GcsaSelect value={filterValue(header.column.id)} options={meta.filter.options ?? []} placeholder={meta.filter.placeholder ?? messages.dataTableFilter} onValueChange={value => updateFilter(header.column.id, value)} />}</div> : null}\n {resizable && isLeaf ? <span className=\"gcsa-table__resize-handle\" role=\"separator\" aria-label={messages.dataTableResizeColumn} onPointerDown={event => { event.stopPropagation(); event.preventDefault(); startColumnResize(event, header.column.id); }} /> : null}\n </th>;\n })}\n </tr>)}\n </thead>\n <tbody className=\"gcsa-table__body\">\n {table.getRowModel().rows.map(row => { const rowExpanded = isRowExpanded(row.id); return <Fragment key={row.id}>\n <tr key={row.id} className={`gcsa-table__row${row.index % 2 === 1 ? ' gcsa-table__row--striped' : ''}${getRowClassName(row.original, row.index) ? ` ${getRowClassName(row.original, row.index)}` : ''}`} data-selected={row.getIsSelected() || undefined} data-current={highlightCurrentRow && currentRowKey === getRowId(row.original, row.index) ? true : undefined} onClick={event => { const previous = highlightCurrentRow ? table.getCoreRowModel().flatRows.find(candidate => candidate.id === currentRowKey)?.original : undefined; selectCurrentRow(row.original, row.index); if (highlightCurrentRow) onCurrentChange?.(row.original, previous); onRowClick?.(row.original, row.index, event); onLegacyRowClick?.(row.original, getColumnInfo(row.getVisibleCells()[0]?.column.id ?? ''), event); }} onDoubleClick={event => onRowDoubleClick?.(row.original, row.index, event)} onContextMenu={event => { event.preventDefault(); onRowContextMenu?.(row.original, row.index, event); onLegacyRowContextMenu?.(row.original, getColumnInfo(row.getVisibleCells()[0]?.column.id ?? ''), event); }}>\n {effectiveExpandable || treeData ? <td className=\"gcsa-table__col-expand\" style={expandColumnStyle} onClick={event => event.stopPropagation()}>{(!treeData || row.getCanExpand()) ? <><button type=\"button\" className=\"gcsa-table__expand gcsa-focus-ring\" disabled={treeLoading(row)} aria-label={treeLoading(row) ? messages.dataTableLoadChildren : treeError(row) ? messages.dataTableRetryChildren : rowExpanded ? messages.dataTableCollapseRow : messages.dataTableExpandRow} aria-expanded={rowExpanded} onClick={() => toggleExpanded(row)}><GcsaIcon name=\"chevronDown\" size=\"sm\" className={rowExpanded ? 'gcsa-table__expand-icon--open' : undefined} /></button>{treeLoading(row) ? <span className=\"gcsa-table__tree-state\" role=\"status\">{resolvedTreeLoadingText}</span> : treeError(row) ? <button type=\"button\" className=\"gcsa-table__tree-retry\" onClick={() => toggleExpanded(row)}>{resolvedTreeLoadErrorText}</button> : null}</> : null}</td> : null}\n {effectiveSelectable ? <td className=\"gcsa-table__col-check\" onClick={event => event.stopPropagation()} style={selectionColumnStyle}><GcsaCheckbox checked={row.getIsSelected()} disabled={!row.getCanSelect()} label=\"\" ariaLabel={messages.dataTableSelectRow} onCheckedChange={checked => toggleRowSelectionValue(row, checked)} /></td> : null}\n {row.getVisibleCells().map((cell, cellIndex) => { const cellMeta = metaOf(cell.column.columnDef); const cellValue = cell.getValue(); return <td key={cell.id} data-label={typeof cell.column.columnDef.header === 'string' ? cell.column.columnDef.header : cell.column.id} title={cellMeta.showOverflowTooltip ? formatGcsaTableCellValue(cellValue) : undefined} className={`${cellMeta.align === 'center' ? 'gcsa-table__align-center' : cellMeta.align === 'right' ? 'gcsa-table__align-right' : ''}${cellMeta.showOverflowTooltip ? ' gcsa-table__cell--overflow' : ''}`} style={fixedStyle(leafColumns, cell.column.id, cellMeta, columnWidths, fixedLayout)} onClick={event => { event.stopPropagation(); selectCurrentRow(row.original, row.index); onCellClick?.(row.original, cell.column.id, cellValue, row.index, event); onLegacyCellClick?.(row.original, getColumnInfo(cell.column.id), event.currentTarget, event); }} onDoubleClick={event => { event.stopPropagation(); onCellDoubleClick?.(row.original, cell.column.id, cellValue, row.index, event); }} onContextMenu={event => { event.stopPropagation(); event.preventDefault(); onCellContextMenu?.(row.original, cell.column.id, cellValue, row.index, event); onLegacyCellContextMenu?.(row.original, getColumnInfo(cell.column.id), event.currentTarget, event); }}><div className=\"gcsa-table__cell\" style={treeData && cellIndex === 0 ? { paddingInlineStart: `${row.depth * 18}px` } : undefined}>{cell.column.columnDef.cell ? flexRender(cell.column.columnDef.cell, cell.getContext()) : formatGcsaTableCellValue(cellValue)}</div></td>; })}\n </tr>\n {!treeData && rowExpanded && renderExpandedRow ? <tr key={`${row.id}-expanded`} className=\"gcsa-table__expanded-row\"><td colSpan={visibleColumnCount}>{renderExpandedRow(row.original, row.index)}</td></tr> : null}\n </Fragment>; })}\n </tbody>\n {summaryValues ? <tfoot className=\"gcsa-table__foot\"><tr className=\"gcsa-table__summary-row\">\n {effectiveExpandable || treeData ? <th className=\"gcsa-table__col-expand\" scope=\"row\" style={expandColumnStyle} /> : null}\n {effectiveSelectable ? <th className=\"gcsa-table__col-check\" scope=\"row\" style={selectionColumnStyle} /> : null}\n {leafColumns.map((column, summaryIndex) => {\n const columnMeta = metaOf(column);\n return <td key={column.id} className={columnMeta.align === 'center' ? 'gcsa-table__align-center' : columnMeta.align === 'right' ? 'gcsa-table__align-right' : undefined} style={fixedStyle(leafColumns, column.id ?? '', columnMeta, columnWidths, fixedLayout)}>{summaryValues[column.id ?? ''] ?? (summaryIndex === 0 ? resolvedSummaryLabel : '')}</td>;\n })}\n </tr></tfoot> : null}\n </table> : null}\n {!loading && !error && tableRows.length === 0 ? <div className=\"gcsa-data-table__empty\"><GcsaEmpty title={messages.dataTableEmpty} /></div> : null}\n </div>\n {pagination && total > 0 && !loading && !error ? <div className=\"gcsa-data-table__footer\">{showTotal ? <div className=\"gcsa-data-table__footer-meta\">{rangeText}</div> : null}<GcsaPagination page={page} total={total} pageSize={pageSize} pageSizeOptions={pageSizeOptions} showPageSize={showPageSize} showJumper={showJumper} pageSizeLabel={resolvedPageSizeLabel} jumperLabel={resolvedJumperLabel} layout={paginationLayout} align={paginationAlign} onPageChange={onPageChange} onPageSizeChange={next => { setPageSize(next); onPageSizeChange?.(next); }} /></div> : null}\n </div>;\n}\n"],"names":["childColumns","column","flattenColumns","columns","children","filterColumnTree","visibility","metaOf","columnChildren","TableLoadingState","label","jsx","jsxs","GcsaSpin","toColumnFilters","filters","value","id","filterRecord","filter","fixedStyle","meta","widths","controls","override","sizing","GCSA_TABLE_DEFAULT_COLUMN_MIN_WIDTH","fixedDirection","offset","getGcsaTableFixedOffset","collectExpandedRows","rows","expanded","getRowId","treeData","childrenKey","expandedKeys","key","result","visit","items","parent","row","index","GcsaDataTable","data","legacyColumns","total","pageSizeProp","pageSizeOptions","showPageSize","showJumper","pageSizeLabel","jumperLabel","paginationLayout","paginationAlign","showTotal","page","pagination","showToolbar","showCount","size","serverSide","controlledSorting","controlledFilters","defaultSorting","defaultFilters","loading","error","retryLabel","selectable","selectedRowKeys","controlledColumnVisibility","resizable","controlledColumnWidths","treeLazy","treeHasChildrenKey","treeHasChildren","loadChildren","treeLoadingText","treeLoadErrorText","expandedRowKeys","mobileMode","stripe","bordered","highlightCurrentRow","controlledCurrentRowKey","rowClassName","summary","summaryLabel","apiRef","rowKey","expandable","height","maxHeight","defaultExpandAll","fixedSelection","selectionColumnWidth","expandColumnWidth","renderExpandedRow","toolbar","onPageChange","onPageSizeChange","onSortingChange","onSortChange","onFiltersChange","onFilterChange","onSelectionChange","onSelect","onSelectAll","onSelectedRowKeysChange","onColumnVisibilityChange","onColumnWidthsChange","onExpandedRowKeysChange","onCurrentRowKeyChange","onRowClick","onRowDoubleClick","onCellClick","onCellDoubleClick","onHeaderClick","onRowContextMenu","onCellContextMenu","onLegacyRowClick","onLegacyCellClick","onLegacyRowContextMenu","onLegacyCellContextMenu","onCurrentChange","onExpandChange","columnSelector","onRetry","onTreeLoadError","messages","useGcsaLocaleMessages","resolvedPageSizeLabel","resolvedJumperLabel","resolvedRetryLabel","resolvedTreeLoadingText","resolvedTreeLoadErrorText","resolvedSummaryLabel","resolvedSize","useGcsaComponentSize","getGcsaTableRowId","pageSize","setPageSize","useState","sorting","setSorting","columnFilters","setColumnFilters","rowSelection","setRowSelection","columnVisibility","setColumnVisibility","columnWidths","setColumnWidths","setExpandedKeys","getGcsaTableDefaultExpandedKeys","currentRowKey","setCurrentRowKey","treeChildren","setTreeChildren","treeLoadingKeys","setTreeLoadingKeys","treeErrors","setTreeErrors","tableWrapRef","useRef","useEffect","treeObjectIds","useMemo","treeObjectSequence","legacyMigration","normalizeGcsaTableColumns","effectiveSelectable","effectiveExpandable","effectiveFixedSelection","effectiveSelectionColumnWidth","GCSA_TABLE_SELECTION_COLUMN_WIDTH","effectiveExpandColumnWidth","GCSA_TABLE_EXPAND_COLUMN_WIDTH","allColumns","resolveGcsaTableColumns","resolvedColumns","leafColumns","columnOptions","treeNodeKey","objectRow","existing","canExpandTreeRow","tableData","merge","loaded","inline","clone","getSubRows","table","useReactTable","updater","next","getGcsaTableSortChange","selectedRowsForState","getCoreRowModel","getFilteredRowModel","getSortedRowModel","getPaginationRowModel","getExpandedRowModel","selectedCount","totalCountText","formatGcsaLocaleMessage","selectedCountText","selectableRows","visibleColumnCount","fixedControls","fixedLayout","tableMinWidth","getGcsaTableMinWidth","expandColumnStyle","selectionColumnStyle","filterValue","_a","updateFilter","rangeStart","rangeEnd","rangeText","toggleColumn","visibleCount","startColumnResize","event","cell","sourceColumn","sourceMeta","initialWidth","minWidth","startX","move","moveEvent","current","up","tableRows","expandedRowsFor","summaryValues","isRowExpanded","rowIdValue","treeLoading","treeError","applyExpanded","nextExpanded","toggleExpanded","tableClassName","getRowClassName","getColumnInfo","candidate","selectCurrentRow","emitSelection","keys","clearSorting","clearFilters","clearFilter","columnKeys","sort","prop","order","getGcsaTableSorting","clearSelection","clearExpanded","setRowSelected","selected","toggleRowSelection","tableRow","findTableRow","rowsForSelection","selection","toggleRowSelectionValue","toggleAllSelection","checked","allSelected","nextChecked","setRowExpanded","toggleRowExpansion","setCurrentRow","byReference","getSelectionRows","setScrollTop","top","scrollTo","options","y","_b","headerGroup","groupIndex","GcsaCheckbox","header","isLeaf","flexRender","GcsaIcon","GcsaInput","GcsaSelect","rowExpanded","Fragment","previous","cellIndex","cellMeta","cellValue","formatGcsaTableCellValue","summaryIndex","columnMeta","GcsaEmpty","GcsaPagination"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GcsaConsoleLocale, GcsaDatePickerMode } from '@gcsa/console-core';
|
|
2
|
+
export type GcsaDatePickerProps = {
|
|
3
|
+
value?: string;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
/** 选择粒度:`date` 为 YYYY-MM-DD,`month` 为 YYYY-MM */
|
|
6
|
+
picker?: GcsaDatePickerMode;
|
|
7
|
+
/** 语言;未传时读取 GcsaConfigProvider */
|
|
8
|
+
locale?: GcsaConsoleLocale;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
invalid?: boolean;
|
|
11
|
+
min?: string;
|
|
12
|
+
max?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
onValueChange?: (value: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare function GcsaDatePicker({ value, placeholder, picker, locale: localeProp, disabled, invalid, min, max, className, onValueChange }: GcsaDatePickerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { jsxs as t, jsx as e, Fragment as V } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as v, useCallback as T } from "react";
|
|
3
|
+
import { parseDate as x, DatePicker as a } from "@ark-ui/react/date-picker";
|
|
4
|
+
import { Portal as W } from "@ark-ui/react/portal";
|
|
5
|
+
import { getGcsaLocaleMessages as O, getGcsaStartOfWeek as Y, createGcsaPopupPositioning as z } from "@gcsa/console-core";
|
|
6
|
+
import { GcsaIcon as m } from "./GcsaIcon.js";
|
|
7
|
+
import { GcsaSelect as k } from "./GcsaSelect.js";
|
|
8
|
+
import { useGcsaLocale as B } from "./hooks/useGcsaLocale.js";
|
|
9
|
+
import { gcsaStringToDateValues as R, gcsaNormalizeDateBoundary as P, gcsaDatePickerFormat as j, gcsaDatePickerParse as F, gcsaDateValueToOutputString as I, gcsaDatePickerCellsToOptions as N } from "./utils/gcsaDateValue.js";
|
|
10
|
+
function $({
|
|
11
|
+
dp: r,
|
|
12
|
+
messages: l
|
|
13
|
+
}) {
|
|
14
|
+
const c = r.getMonthsGrid({ columns: 3 });
|
|
15
|
+
return /* @__PURE__ */ t(V, { children: [
|
|
16
|
+
/* @__PURE__ */ t("div", { className: "gcsa-date-picker__header", children: [
|
|
17
|
+
/* @__PURE__ */ e(
|
|
18
|
+
a.PrevTrigger,
|
|
19
|
+
{
|
|
20
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
21
|
+
"aria-label": l.prevYear,
|
|
22
|
+
children: /* @__PURE__ */ e(m, { name: "chevronLeft", size: "sm" })
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ e("div", { className: "gcsa-date-picker__selects", children: /* @__PURE__ */ e("div", { className: "gcsa-date-picker__filter gcsa-date-picker__filter--year", children: /* @__PURE__ */ e(
|
|
26
|
+
k,
|
|
27
|
+
{
|
|
28
|
+
value: String(r.focusedValue.year),
|
|
29
|
+
options: N(r.getYears()),
|
|
30
|
+
portalled: !1,
|
|
31
|
+
sameWidth: !1,
|
|
32
|
+
listMaxHeight: 240,
|
|
33
|
+
listHintThreshold: 100,
|
|
34
|
+
onValueChange: (s) => r.focusYear(Number(s))
|
|
35
|
+
}
|
|
36
|
+
) }) }),
|
|
37
|
+
/* @__PURE__ */ e(
|
|
38
|
+
a.NextTrigger,
|
|
39
|
+
{
|
|
40
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
41
|
+
"aria-label": l.nextYear,
|
|
42
|
+
children: /* @__PURE__ */ e(m, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ e(a.Table, { className: "gcsa-date-picker__table gcsa-date-picker__table--month", columns: 3, children: /* @__PURE__ */ e(a.TableBody, { children: c.map((s, o) => /* @__PURE__ */ e(a.TableRow, { children: s.map((d) => /* @__PURE__ */ e(
|
|
47
|
+
a.TableCell,
|
|
48
|
+
{
|
|
49
|
+
value: d.value,
|
|
50
|
+
className: "gcsa-date-picker__cell",
|
|
51
|
+
children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__month gcsa-focus-ring", children: d.label })
|
|
52
|
+
},
|
|
53
|
+
d.value
|
|
54
|
+
)) }, o)) }) })
|
|
55
|
+
] });
|
|
56
|
+
}
|
|
57
|
+
function q({
|
|
58
|
+
dp: r,
|
|
59
|
+
messages: l
|
|
60
|
+
}) {
|
|
61
|
+
return /* @__PURE__ */ t(V, { children: [
|
|
62
|
+
/* @__PURE__ */ t("div", { className: "gcsa-date-picker__header", children: [
|
|
63
|
+
/* @__PURE__ */ e(
|
|
64
|
+
a.PrevTrigger,
|
|
65
|
+
{
|
|
66
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
67
|
+
"aria-label": l.prevMonth,
|
|
68
|
+
children: /* @__PURE__ */ e(m, { name: "chevronLeft", size: "sm" })
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
/* @__PURE__ */ t("div", { className: "gcsa-date-picker__selects", children: [
|
|
72
|
+
/* @__PURE__ */ e("div", { className: "gcsa-date-picker__filter gcsa-date-picker__filter--month", children: /* @__PURE__ */ e(
|
|
73
|
+
k,
|
|
74
|
+
{
|
|
75
|
+
value: String(r.focusedValue.month),
|
|
76
|
+
options: N(r.getMonths()),
|
|
77
|
+
portalled: !1,
|
|
78
|
+
sameWidth: !1,
|
|
79
|
+
listMaxHeight: 240,
|
|
80
|
+
listHintThreshold: 100,
|
|
81
|
+
onValueChange: (c) => r.focusMonth(Number(c))
|
|
82
|
+
}
|
|
83
|
+
) }),
|
|
84
|
+
/* @__PURE__ */ e("div", { className: "gcsa-date-picker__filter gcsa-date-picker__filter--year", children: /* @__PURE__ */ e(
|
|
85
|
+
k,
|
|
86
|
+
{
|
|
87
|
+
value: String(r.focusedValue.year),
|
|
88
|
+
options: N(r.getYears()),
|
|
89
|
+
portalled: !1,
|
|
90
|
+
sameWidth: !1,
|
|
91
|
+
listMaxHeight: 240,
|
|
92
|
+
listHintThreshold: 100,
|
|
93
|
+
onValueChange: (c) => r.focusYear(Number(c))
|
|
94
|
+
}
|
|
95
|
+
) })
|
|
96
|
+
] }),
|
|
97
|
+
/* @__PURE__ */ e(
|
|
98
|
+
a.NextTrigger,
|
|
99
|
+
{
|
|
100
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
101
|
+
"aria-label": l.nextMonth,
|
|
102
|
+
children: /* @__PURE__ */ e(m, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] }),
|
|
106
|
+
/* @__PURE__ */ t(a.Table, { className: "gcsa-date-picker__table", children: [
|
|
107
|
+
/* @__PURE__ */ e(a.TableHead, { children: /* @__PURE__ */ e(a.TableRow, { children: r.weekDays.map((c, s) => /* @__PURE__ */ e(
|
|
108
|
+
a.TableHeader,
|
|
109
|
+
{
|
|
110
|
+
className: "gcsa-date-picker__weekday",
|
|
111
|
+
children: c.short
|
|
112
|
+
},
|
|
113
|
+
c.short ?? s
|
|
114
|
+
)) }) }),
|
|
115
|
+
/* @__PURE__ */ e(a.TableBody, { children: r.weeks.map((c, s) => /* @__PURE__ */ e(a.TableRow, { children: c.map((o) => /* @__PURE__ */ e(a.TableCell, { value: o, className: "gcsa-date-picker__cell", children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__day gcsa-focus-ring", children: o.day }) }, o.toString())) }, s)) })
|
|
116
|
+
] })
|
|
117
|
+
] });
|
|
118
|
+
}
|
|
119
|
+
function ae({
|
|
120
|
+
value: r,
|
|
121
|
+
placeholder: l,
|
|
122
|
+
picker: c = "date",
|
|
123
|
+
locale: s,
|
|
124
|
+
disabled: o,
|
|
125
|
+
invalid: d,
|
|
126
|
+
min: u,
|
|
127
|
+
max: _,
|
|
128
|
+
className: w,
|
|
129
|
+
onValueChange: p
|
|
130
|
+
}) {
|
|
131
|
+
const M = B(), f = s ?? M, g = O(f).datePicker, C = Y(f), n = c === "month", D = l ?? (n ? g.placeholderMonth : g.placeholder), y = v(() => R(r, c), [r, c]), G = v(
|
|
132
|
+
() => u ? x(P(u, c)) : void 0,
|
|
133
|
+
[u, c]
|
|
134
|
+
), L = v(
|
|
135
|
+
() => _ ? x(P(_, c)) : void 0,
|
|
136
|
+
[_, c]
|
|
137
|
+
), S = T(
|
|
138
|
+
(i, h) => j(i, h, c),
|
|
139
|
+
[c]
|
|
140
|
+
), H = T(
|
|
141
|
+
(i, h) => F(i, h, c),
|
|
142
|
+
[c]
|
|
143
|
+
);
|
|
144
|
+
return /* @__PURE__ */ t(
|
|
145
|
+
a.Root,
|
|
146
|
+
{
|
|
147
|
+
value: y,
|
|
148
|
+
locale: f,
|
|
149
|
+
startOfWeek: C,
|
|
150
|
+
positioning: z({ fitViewport: !0 }),
|
|
151
|
+
openOnClick: !0,
|
|
152
|
+
closeOnSelect: !0,
|
|
153
|
+
disabled: o,
|
|
154
|
+
invalid: d,
|
|
155
|
+
min: G,
|
|
156
|
+
max: L,
|
|
157
|
+
minView: n ? "month" : void 0,
|
|
158
|
+
maxView: n ? "month" : void 0,
|
|
159
|
+
defaultView: n ? "month" : void 0,
|
|
160
|
+
format: S,
|
|
161
|
+
parse: H,
|
|
162
|
+
className: w,
|
|
163
|
+
onValueChange: (i) => {
|
|
164
|
+
var b;
|
|
165
|
+
const h = (b = i.value) == null ? void 0 : b[0];
|
|
166
|
+
p == null || p(I(h, c));
|
|
167
|
+
},
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ t(a.Control, { className: "gcsa-date-picker__control", "data-invalid": d || void 0, children: [
|
|
170
|
+
/* @__PURE__ */ e(
|
|
171
|
+
a.Input,
|
|
172
|
+
{
|
|
173
|
+
className: "gcsa-date-picker__input gcsa-input",
|
|
174
|
+
placeholder: D
|
|
175
|
+
}
|
|
176
|
+
),
|
|
177
|
+
/* @__PURE__ */ e(
|
|
178
|
+
a.Trigger,
|
|
179
|
+
{
|
|
180
|
+
className: "gcsa-date-picker__trigger gcsa-focus-ring",
|
|
181
|
+
"aria-label": g.openCalendar,
|
|
182
|
+
children: /* @__PURE__ */ t("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
183
|
+
/* @__PURE__ */ e("rect", { x: "2", y: "3", width: "12", height: "11", rx: "1.5", stroke: "currentColor", strokeWidth: "1.2" }),
|
|
184
|
+
/* @__PURE__ */ e(
|
|
185
|
+
"path",
|
|
186
|
+
{
|
|
187
|
+
d: "M2 6.5h12M5.5 1.5v2M10.5 1.5v2",
|
|
188
|
+
stroke: "currentColor",
|
|
189
|
+
strokeWidth: "1.2",
|
|
190
|
+
strokeLinecap: "round"
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
] })
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
] }),
|
|
197
|
+
/* @__PURE__ */ e(W, { children: /* @__PURE__ */ e(a.Positioner, { className: "gcsa-date-picker__positioner", children: /* @__PURE__ */ e(
|
|
198
|
+
a.Content,
|
|
199
|
+
{
|
|
200
|
+
className: `gcsa-date-picker__content gcsa-ui-surface${n ? " gcsa-date-picker__content--month" : ""}`,
|
|
201
|
+
children: /* @__PURE__ */ e(a.View, { view: n ? "month" : "day", children: /* @__PURE__ */ e(a.Context, { children: (i) => n ? /* @__PURE__ */ e($, { dp: i, messages: g }) : /* @__PURE__ */ e(q, { dp: i, messages: g }) }) })
|
|
202
|
+
}
|
|
203
|
+
) }) })
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
export {
|
|
209
|
+
ae as GcsaDatePicker
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=GcsaDatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDatePicker.js","sources":["../src/GcsaDatePicker.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { DatePicker, parseDate, type UseDatePickerContext } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport {\n getGcsaLocaleMessages,\n getGcsaStartOfWeek,\n createGcsaPopupPositioning,\n type GcsaConsoleLocale,\n type GcsaDatePickerMode\n} from '@gcsa/console-core';\nimport { GcsaIcon } from './GcsaIcon';\nimport { GcsaSelect } from './GcsaSelect';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\nimport {\n gcsaDatePickerCellsToOptions,\n gcsaDatePickerFormat,\n gcsaDatePickerParse,\n gcsaDateValueToOutputString,\n gcsaNormalizeDateBoundary,\n gcsaStringToDateValues\n} from './utils/gcsaDateValue';\n\nexport type GcsaDatePickerProps = {\n value?: string;\n placeholder?: string;\n /** 选择粒度:`date` 为 YYYY-MM-DD,`month` 为 YYYY-MM */\n picker?: GcsaDatePickerMode;\n /** 语言;未传时读取 GcsaConfigProvider */\n locale?: GcsaConsoleLocale;\n disabled?: boolean;\n invalid?: boolean;\n min?: string;\n max?: string;\n className?: string;\n onValueChange?: (value: string) => void;\n};\n\ntype DatePickerContext = UseDatePickerContext;\n\nfunction GcsaDatePickerMonthView({\n dp,\n messages\n}: {\n dp: DatePickerContext;\n messages: ReturnType<typeof getGcsaLocaleMessages>['datePicker'];\n}) {\n const monthsGrid = dp.getMonthsGrid({ columns: 3 });\n\n return (\n <>\n <div className=\"gcsa-date-picker__header\">\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-date-picker__selects\">\n <div className=\"gcsa-date-picker__filter gcsa-date-picker__filter--year\">\n <GcsaSelect\n value={String(dp.focusedValue.year)}\n options={gcsaDatePickerCellsToOptions(dp.getYears())}\n portalled={false}\n sameWidth={false}\n listMaxHeight={240}\n listHintThreshold={100}\n onValueChange={v => dp.focusYear(Number(v))}\n />\n </div>\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table gcsa-date-picker__table--month\" columns={3}>\n <DatePicker.TableBody>\n {monthsGrid.map((row, rowIndex) => (\n <DatePicker.TableRow key={rowIndex}>\n {row.map(month => (\n <DatePicker.TableCell\n key={month.value}\n value={month.value}\n className=\"gcsa-date-picker__cell\"\n >\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__month gcsa-focus-ring\">\n {month.label}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </>\n );\n}\n\nfunction GcsaDatePickerDayView({\n dp,\n messages\n}: {\n dp: DatePickerContext;\n messages: ReturnType<typeof getGcsaLocaleMessages>['datePicker'];\n}) {\n return (\n <>\n <div className=\"gcsa-date-picker__header\">\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-date-picker__selects\">\n <div className=\"gcsa-date-picker__filter gcsa-date-picker__filter--month\">\n <GcsaSelect\n value={String(dp.focusedValue.month)}\n options={gcsaDatePickerCellsToOptions(dp.getMonths())}\n portalled={false}\n sameWidth={false}\n listMaxHeight={240}\n listHintThreshold={100}\n onValueChange={v => dp.focusMonth(Number(v))}\n />\n </div>\n <div className=\"gcsa-date-picker__filter gcsa-date-picker__filter--year\">\n <GcsaSelect\n value={String(dp.focusedValue.year)}\n options={gcsaDatePickerCellsToOptions(dp.getYears())}\n portalled={false}\n sameWidth={false}\n listMaxHeight={240}\n listHintThreshold={100}\n onValueChange={v => dp.focusYear(Number(v))}\n />\n </div>\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table\">\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {dp.weekDays.map((weekDay, weekDayIndex) => (\n <DatePicker.TableHeader\n key={weekDay.short ?? weekDayIndex}\n className=\"gcsa-date-picker__weekday\"\n >\n {weekDay.short}\n </DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {dp.weeks.map((week, weekIndex) => (\n <DatePicker.TableRow key={weekIndex}>\n {week.map(day => (\n <DatePicker.TableCell key={day.toString()} value={day} className=\"gcsa-date-picker__cell\">\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__day gcsa-focus-ring\">\n {day.day}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </>\n );\n}\n\nexport function GcsaDatePicker({\n value,\n placeholder,\n picker = 'date',\n locale: localeProp,\n disabled,\n invalid,\n min,\n max,\n className,\n onValueChange\n}: GcsaDatePickerProps) {\n const configLocale = useGcsaLocale();\n const resolvedLocale = localeProp ?? configLocale;\n const messages = getGcsaLocaleMessages(resolvedLocale).datePicker;\n const startOfWeek = getGcsaStartOfWeek(resolvedLocale);\n const isMonthPicker = picker === 'month';\n const resolvedPlaceholder =\n placeholder ?? (isMonthPicker ? messages.placeholderMonth : messages.placeholder);\n\n const pickerValue = useMemo(() => gcsaStringToDateValues(value, picker), [value, picker]);\n const minValue = useMemo(\n () => (min ? parseDate(gcsaNormalizeDateBoundary(min, picker)!) : undefined),\n [min, picker]\n );\n const maxValue = useMemo(\n () => (max ? parseDate(gcsaNormalizeDateBoundary(max, picker)!) : undefined),\n [max, picker]\n );\n\n const formatValue = useCallback(\n (date: Parameters<typeof gcsaDatePickerFormat>[0], details: Parameters<typeof gcsaDatePickerFormat>[1]) =>\n gcsaDatePickerFormat(date, details, picker),\n [picker]\n );\n const parseValue = useCallback(\n (input: string, details: Parameters<typeof gcsaDatePickerParse>[1]) =>\n gcsaDatePickerParse(input, details, picker),\n [picker]\n );\n\n return (\n <DatePicker.Root\n value={pickerValue}\n locale={resolvedLocale}\n startOfWeek={startOfWeek}\n positioning={createGcsaPopupPositioning({ fitViewport: true })}\n openOnClick\n closeOnSelect\n disabled={disabled}\n invalid={invalid}\n min={minValue}\n max={maxValue}\n minView={isMonthPicker ? 'month' : undefined}\n maxView={isMonthPicker ? 'month' : undefined}\n defaultView={isMonthPicker ? 'month' : undefined}\n format={formatValue}\n parse={parseValue}\n className={className}\n onValueChange={details => {\n const first = details.value?.[0];\n onValueChange?.(gcsaDateValueToOutputString(first, picker));\n }}\n >\n <DatePicker.Control className=\"gcsa-date-picker__control\" data-invalid={invalid || undefined}>\n <DatePicker.Input\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholder}\n />\n <DatePicker.Trigger\n className=\"gcsa-date-picker__trigger gcsa-focus-ring\"\n aria-label={messages.openCalendar}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M2 6.5h12M5.5 1.5v2M10.5 1.5v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </DatePicker.Trigger>\n </DatePicker.Control>\n <Portal>\n <DatePicker.Positioner className=\"gcsa-date-picker__positioner\">\n <DatePicker.Content\n className={`gcsa-date-picker__content gcsa-ui-surface${isMonthPicker ? ' gcsa-date-picker__content--month' : ''}`}\n >\n <DatePicker.View view={isMonthPicker ? 'month' : 'day'}>\n <DatePicker.Context>\n {dp =>\n isMonthPicker ? (\n <GcsaDatePickerMonthView dp={dp} messages={messages} />\n ) : (\n <GcsaDatePickerDayView dp={dp} messages={messages} />\n )\n }\n </DatePicker.Context>\n </DatePicker.View>\n </DatePicker.Content>\n </DatePicker.Positioner>\n </Portal>\n </DatePicker.Root>\n );\n}\n"],"names":["GcsaDatePickerMonthView","dp","messages","monthsGrid","jsxs","Fragment","jsx","DatePicker","GcsaIcon","GcsaSelect","gcsaDatePickerCellsToOptions","v","row","rowIndex","month","GcsaDatePickerDayView","weekDay","weekDayIndex","week","weekIndex","day","GcsaDatePicker","value","placeholder","picker","localeProp","disabled","invalid","min","max","className","onValueChange","configLocale","useGcsaLocale","resolvedLocale","getGcsaLocaleMessages","startOfWeek","getGcsaStartOfWeek","isMonthPicker","resolvedPlaceholder","pickerValue","useMemo","gcsaStringToDateValues","minValue","parseDate","gcsaNormalizeDateBoundary","maxValue","formatValue","useCallback","date","details","gcsaDatePickerFormat","parseValue","input","gcsaDatePickerParse","createGcsaPopupPositioning","first","_a","gcsaDateValueToOutputString","Portal"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GcsaConsoleLocale, GcsaDatePickerMode, GcsaDateRangeValue, GcsaMonthRangeValue } from '@gcsa/console-core';
|
|
2
|
+
export type GcsaDateRangePickerProps = {
|
|
3
|
+
value?: GcsaDateRangeValue | GcsaMonthRangeValue;
|
|
4
|
+
placeholderStart?: string;
|
|
5
|
+
placeholderEnd?: string;
|
|
6
|
+
/** 选择粒度:`date` 为 YYYY-MM-DD,`month` 为 YYYY-MM */
|
|
7
|
+
picker?: GcsaDatePickerMode;
|
|
8
|
+
/** 语言;未传时读取 GcsaConfigProvider */
|
|
9
|
+
locale?: GcsaConsoleLocale;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
invalid?: boolean;
|
|
12
|
+
min?: string;
|
|
13
|
+
max?: string;
|
|
14
|
+
className?: string;
|
|
15
|
+
onValueChange?: (value: GcsaDateRangeValue | GcsaMonthRangeValue) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare function GcsaDateRangePicker({ value, placeholderStart, placeholderEnd, picker, locale: localeProp, disabled, invalid, min, max, className, onValueChange }: GcsaDateRangePickerProps): import("react").JSX.Element;
|