@portnet/ui 6.0.2 → 6.0.3
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/CHANGELOG.md +652 -0
- package/dist/esm/index.js +72 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
- package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
- package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
- package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
- package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
- package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
- package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
- package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
- package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
- package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
- package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
- package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
- package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
- package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
- package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
- package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
- package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/esm/v2/__tests__/apiError.test.js +50 -69
- package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
- package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
- package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
- package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
- package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
- package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
- package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
- package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
- package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
- package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
- package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
- package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
- package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
- package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/esm/v2/components/Accordion.js +48 -70
- package/dist/esm/v2/components/Accordion.js.map +1 -1
- package/dist/esm/v2/components/ActionStrip.js +31 -43
- package/dist/esm/v2/components/ActionStrip.js.map +1 -1
- package/dist/esm/v2/components/Banner.js +25 -22
- package/dist/esm/v2/components/Banner.js.map +1 -1
- package/dist/esm/v2/components/Busy.js +14 -19
- package/dist/esm/v2/components/Busy.js.map +1 -1
- package/dist/esm/v2/components/Button.js +34 -45
- package/dist/esm/v2/components/Button.js.map +1 -1
- package/dist/esm/v2/components/CategoryTag.js +44 -27
- package/dist/esm/v2/components/CategoryTag.js.map +1 -1
- package/dist/esm/v2/components/Checkbox.js +32 -38
- package/dist/esm/v2/components/Checkbox.js.map +1 -1
- package/dist/esm/v2/components/Chip.js +23 -36
- package/dist/esm/v2/components/Chip.js.map +1 -1
- package/dist/esm/v2/components/Combobox.js +112 -136
- package/dist/esm/v2/components/Combobox.js.map +1 -1
- package/dist/esm/v2/components/CommandPalette.js +113 -198
- package/dist/esm/v2/components/CommandPalette.js.map +1 -1
- package/dist/esm/v2/components/ConfirmDialog.js +36 -45
- package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/esm/v2/components/DatePicker.js +78 -81
- package/dist/esm/v2/components/DatePicker.js.map +1 -1
- package/dist/esm/v2/components/DateRangePicker.js +63 -74
- package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
- package/dist/esm/v2/components/DateTimePicker.js +81 -86
- package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
- package/dist/esm/v2/components/Drawer.js +71 -65
- package/dist/esm/v2/components/Drawer.js.map +1 -1
- package/dist/esm/v2/components/Dropzone.js +130 -177
- package/dist/esm/v2/components/Dropzone.js.map +1 -1
- package/dist/esm/v2/components/EmptyState.js +9 -9
- package/dist/esm/v2/components/EmptyState.js.map +1 -1
- package/dist/esm/v2/components/FavoriteToggle.js +24 -33
- package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/esm/v2/components/Field.js +155 -59
- package/dist/esm/v2/components/Field.js.map +1 -1
- package/dist/esm/v2/components/FieldError.js +9 -13
- package/dist/esm/v2/components/FieldError.js.map +1 -1
- package/dist/esm/v2/components/FieldHelp.js +28 -49
- package/dist/esm/v2/components/FieldHelp.js.map +1 -1
- package/dist/esm/v2/components/FileCard.js +14 -19
- package/dist/esm/v2/components/FileCard.js.map +1 -1
- package/dist/esm/v2/components/FilterTab.js +22 -31
- package/dist/esm/v2/components/FilterTab.js.map +1 -1
- package/dist/esm/v2/components/ForbiddenPage.js +28 -8
- package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/esm/v2/components/FormGrid.js +48 -54
- package/dist/esm/v2/components/FormGrid.js.map +1 -1
- package/dist/esm/v2/components/FormikDisplay.js +98 -24
- package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
- package/dist/esm/v2/components/Input.js +75 -34
- package/dist/esm/v2/components/Input.js.map +1 -1
- package/dist/esm/v2/components/KPICard.js +42 -51
- package/dist/esm/v2/components/KPICard.js.map +1 -1
- package/dist/esm/v2/components/KPIStrip.js +9 -15
- package/dist/esm/v2/components/KPIStrip.js.map +1 -1
- package/dist/esm/v2/components/KV.js +16 -23
- package/dist/esm/v2/components/KV.js.map +1 -1
- package/dist/esm/v2/components/KVGrid.js +15 -23
- package/dist/esm/v2/components/KVGrid.js.map +1 -1
- package/dist/esm/v2/components/Layout.js +81 -117
- package/dist/esm/v2/components/Layout.js.map +1 -1
- package/dist/esm/v2/components/MobileRowCard.js +64 -75
- package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
- package/dist/esm/v2/components/Modal.js +44 -53
- package/dist/esm/v2/components/Modal.js.map +1 -1
- package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
- package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/esm/v2/components/NotFoundPage.js +28 -9
- package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
- package/dist/esm/v2/components/NumberInput.js +77 -107
- package/dist/esm/v2/components/NumberInput.js.map +1 -1
- package/dist/esm/v2/components/OverflowMenu.js +24 -42
- package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
- package/dist/esm/v2/components/PdfViewer.js +24 -33
- package/dist/esm/v2/components/PdfViewer.js.map +1 -1
- package/dist/esm/v2/components/ProgressBar.js +28 -36
- package/dist/esm/v2/components/ProgressBar.js.map +1 -1
- package/dist/esm/v2/components/Radio.js +49 -57
- package/dist/esm/v2/components/Radio.js.map +1 -1
- package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
- package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/esm/v2/components/SectionHeader.js +24 -31
- package/dist/esm/v2/components/SectionHeader.js.map +1 -1
- package/dist/esm/v2/components/Segmented.js +59 -84
- package/dist/esm/v2/components/Segmented.js.map +1 -1
- package/dist/esm/v2/components/Select.js +100 -138
- package/dist/esm/v2/components/Select.js.map +1 -1
- package/dist/esm/v2/components/ServerErrorPage.js +27 -10
- package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/esm/v2/components/Skeleton.js +81 -96
- package/dist/esm/v2/components/Skeleton.js.map +1 -1
- package/dist/esm/v2/components/SkipLink.js +6 -7
- package/dist/esm/v2/components/SkipLink.js.map +1 -1
- package/dist/esm/v2/components/Spinner.js +13 -22
- package/dist/esm/v2/components/Spinner.js.map +1 -1
- package/dist/esm/v2/components/Status.js +14 -25
- package/dist/esm/v2/components/Status.js.map +1 -1
- package/dist/esm/v2/components/Stepper.js +68 -71
- package/dist/esm/v2/components/Stepper.js.map +1 -1
- package/dist/esm/v2/components/Surface.js +25 -44
- package/dist/esm/v2/components/Surface.js.map +1 -1
- package/dist/esm/v2/components/Switch.js +21 -29
- package/dist/esm/v2/components/Switch.js.map +1 -1
- package/dist/esm/v2/components/TabPanel.js +84 -0
- package/dist/esm/v2/components/TabPanel.js.map +1 -0
- package/dist/esm/v2/components/Tabs.js +43 -19
- package/dist/esm/v2/components/Tabs.js.map +1 -1
- package/dist/esm/v2/components/TelInput.js +75 -108
- package/dist/esm/v2/components/TelInput.js.map +1 -1
- package/dist/esm/v2/components/Textarea.js +21 -30
- package/dist/esm/v2/components/Textarea.js.map +1 -1
- package/dist/esm/v2/components/TimePicker.js +59 -69
- package/dist/esm/v2/components/TimePicker.js.map +1 -1
- package/dist/esm/v2/components/Toast.js +109 -163
- package/dist/esm/v2/components/Toast.js.map +1 -1
- package/dist/esm/v2/components/Tooltip.js +18 -31
- package/dist/esm/v2/components/Tooltip.js.map +1 -1
- package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
- package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/esm/v2/components/_pickerShared.js +2 -2
- package/dist/esm/v2/components/_pickerShared.js.map +1 -1
- package/dist/esm/v2/components/index.js +37 -0
- package/dist/esm/v2/components/index.js.map +1 -1
- package/dist/esm/v2/hooks/index.js +62 -0
- package/dist/esm/v2/hooks/index.js.map +1 -1
- package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
- package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
- package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
- package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/esm/v2/hooks/useDensity.js +13 -17
- package/dist/esm/v2/hooks/useDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
- package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
- package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
- package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
- package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
- package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
- package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
- package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
- package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/esm/v2/hooks/useSortedRows.js +3 -5
- package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/esm/v2/hooks/useTabLoading.js +6 -21
- package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/esm/v2/index.js +2 -3
- package/dist/esm/v2/index.js.map +1 -1
- package/dist/esm/v2/modalContext.js +2 -2
- package/dist/esm/v2/modalContext.js.map +1 -1
- package/dist/esm/v2/models/favorite.js.map +1 -1
- package/dist/esm/v2/models/personalization.js.map +1 -1
- package/dist/esm/v2/models/referentiel.js.map +1 -1
- package/dist/esm/v2/models/savedFilter.js.map +1 -1
- package/dist/esm/v2/patterns/ActionBar.js +115 -159
- package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/AppMain.js +108 -0
- package/dist/esm/v2/patterns/AppMain.js.map +1 -0
- package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
- package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/esm/v2/patterns/ChartFigure.js +151 -0
- package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
- package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
- package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/esm/v2/patterns/DataGrid.js +221 -255
- package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
- package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
- package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
- package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
- package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/esm/v2/patterns/DetailSplit.js +108 -0
- package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
- package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
- package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
- package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
- package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/esm/v2/patterns/FormPageShell.js +43 -41
- package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/FormSection.js +30 -38
- package/dist/esm/v2/patterns/FormSection.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
- package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
- package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
- package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
- package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
- package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
- package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/esm/v2/patterns/FormikFile.js +94 -78
- package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
- package/dist/esm/v2/patterns/FormikInput.js +40 -53
- package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
- package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
- package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
- package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/FormikSelect.js +64 -87
- package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
- package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
- package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
- package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/esm/v2/patterns/PageContent.js +10 -14
- package/dist/esm/v2/patterns/PageContent.js.map +1 -1
- package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
- package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/esm/v2/patterns/ReferentielField.js +327 -312
- package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
- package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
- package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
- package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
- package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/esm/v2/patterns/SortableHeader.js +22 -45
- package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/esm/v2/patterns/Tour.js +94 -120
- package/dist/esm/v2/patterns/Tour.js.map +1 -1
- package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
- package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
- package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/esm/v2/patterns/_sort.js +17 -33
- package/dist/esm/v2/patterns/_sort.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
- package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
- package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/esm/v2/patterns/filterCriteria.js +102 -0
- package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/esm/v2/patterns/index.js +152 -0
- package/dist/esm/v2/patterns/index.js.map +1 -1
- package/dist/esm/v2/patterns/rowActions.js +223 -0
- package/dist/esm/v2/patterns/rowActions.js.map +1 -0
- package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
- package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
- package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
- package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
- package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
- package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
- package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
- package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
- package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
- package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/esm/v2/personalization/index.js +17 -0
- package/dist/esm/v2/personalization/index.js.map +1 -1
- package/dist/esm/v2/personalization/personalizationContext.js +9 -9
- package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/esm/v2/personalization/schema.js +8 -9
- package/dist/esm/v2/personalization/schema.js.map +1 -1
- package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
- package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/esm/v2/referentiel/types.js +2 -0
- package/dist/esm/v2/referentiel/types.js.map +1 -0
- package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
- package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
- package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
- package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/esm/v2/theme/_brand.js +8 -24
- package/dist/esm/v2/theme/_brand.js.map +1 -1
- package/dist/esm/v2/theme/_brandSecondary.js +8 -24
- package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
- package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/esm/v2/theme/cssVariables.js +62 -69
- package/dist/esm/v2/theme/cssVariables.js.map +1 -1
- package/dist/esm/v2/theme/index.js +5 -5
- package/dist/esm/v2/theme/index.js.map +1 -1
- package/dist/esm/v2/tokens/breakpoints.js +14 -14
- package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
- package/dist/esm/v2/tokens/chart.js +261 -0
- package/dist/esm/v2/tokens/chart.js.map +1 -0
- package/dist/esm/v2/tokens/colors.js +22 -22
- package/dist/esm/v2/tokens/colors.js.map +1 -1
- package/dist/esm/v2/tokens/density.js +62 -7
- package/dist/esm/v2/tokens/density.js.map +1 -1
- package/dist/esm/v2/tokens/index.js +49 -34
- package/dist/esm/v2/tokens/index.js.map +1 -1
- package/dist/esm/v2/tokens/motion.js +12 -20
- package/dist/esm/v2/tokens/motion.js.map +1 -1
- package/dist/esm/v2/tokens/radius.js +1 -1
- package/dist/esm/v2/tokens/radius.js.map +1 -1
- package/dist/esm/v2/tokens/shadows.js +6 -6
- package/dist/esm/v2/tokens/shadows.js.map +1 -1
- package/dist/esm/v2/tokens/spacing.js +2 -2
- package/dist/esm/v2/tokens/spacing.js.map +1 -1
- package/dist/esm/v2/tokens/state.js +1 -1
- package/dist/esm/v2/tokens/state.js.map +1 -1
- package/dist/esm/v2/tokens/statusPalette.js +17 -21
- package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
- package/dist/esm/v2/tokens/tokens.json +6 -1
- package/dist/esm/v2/tokens/typography.js +13 -13
- package/dist/esm/v2/tokens/typography.js.map +1 -1
- package/dist/esm/v2/tokens/zIndex.js +1 -1
- package/dist/esm/v2/tokens/zIndex.js.map +1 -1
- package/dist/esm/v2/types/datagrid.js.map +1 -1
- package/dist/esm/v2/utils/apiError.js +16 -37
- package/dist/esm/v2/utils/apiError.js.map +1 -1
- package/dist/esm/v2/utils/contrast.js +31 -32
- package/dist/esm/v2/utils/contrast.js.map +1 -1
- package/dist/esm/v2/utils/cx.js +5 -25
- package/dist/esm/v2/utils/cx.js.map +1 -1
- package/dist/esm/v2/utils/fileDownload.js +23 -26
- package/dist/esm/v2/utils/fileDownload.js.map +1 -1
- package/dist/esm/v2/utils/fileValidation.js +209 -0
- package/dist/esm/v2/utils/fileValidation.js.map +1 -0
- package/dist/esm/v2/utils/fmtDate.js +111 -0
- package/dist/esm/v2/utils/fmtDate.js.map +1 -0
- package/dist/esm/v2/utils/fmtMoney.js +8 -10
- package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
- package/dist/esm/v2/utils/formikErrors.js +78 -0
- package/dist/esm/v2/utils/formikErrors.js.map +1 -0
- package/dist/esm/v2/utils/index.js +35 -2
- package/dist/esm/v2/utils/index.js.map +1 -1
- package/dist/esm/v2/utils/mergeLabels.js +7 -12
- package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
- package/dist/esm/v2/utils/networkStatus.js +12 -12
- package/dist/esm/v2/utils/networkStatus.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -49
- package/dist/index.js.map +1 -1
- package/dist/v2/__tests__/AppMain.test.js +133 -0
- package/dist/v2/__tests__/AppMain.test.js.map +1 -0
- package/dist/v2/__tests__/ChartFigure.test.js +183 -0
- package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
- package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
- package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
- package/dist/v2/__tests__/FieldError.test.js +82 -49
- package/dist/v2/__tests__/FieldError.test.js.map +1 -1
- package/dist/v2/__tests__/FieldNaming.test.js +161 -0
- package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
- package/dist/v2/__tests__/FieldWidth.test.js +23 -25
- package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
- package/dist/v2/__tests__/FileCard.test.js +29 -28
- package/dist/v2/__tests__/FileCard.test.js.map +1 -1
- package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
- package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
- package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
- package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
- package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
- package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
- package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
- package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
- package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
- package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
- package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
- package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
- package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
- package/dist/v2/__tests__/apiError.test.js +50 -69
- package/dist/v2/__tests__/apiError.test.js.map +1 -1
- package/dist/v2/__tests__/banned-patterns.test.js +42 -123
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
- package/dist/v2/__tests__/chart-palette.test.js +205 -0
- package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +42 -74
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
- package/dist/v2/__tests__/cssVariables.test.js +44 -51
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
- package/dist/v2/__tests__/fileValidation.test.js +136 -0
- package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
- package/dist/v2/__tests__/filterCriteria.test.js +324 -0
- package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/fmtDate.test.js +69 -0
- package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
- package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +23 -27
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
- package/dist/v2/__tests__/locale-fallback.test.js +47 -52
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
- package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
- package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
- package/dist/v2/__tests__/rowActions.test.js +186 -0
- package/dist/v2/__tests__/rowActions.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
- package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
- package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
- package/dist/v2/components/Accordion.js +60 -82
- package/dist/v2/components/Accordion.js.map +1 -1
- package/dist/v2/components/ActionStrip.js +40 -52
- package/dist/v2/components/ActionStrip.js.map +1 -1
- package/dist/v2/components/Banner.js +42 -41
- package/dist/v2/components/Banner.js.map +1 -1
- package/dist/v2/components/Busy.js +22 -27
- package/dist/v2/components/Busy.js.map +1 -1
- package/dist/v2/components/Button.js +39 -50
- package/dist/v2/components/Button.js.map +1 -1
- package/dist/v2/components/CategoryTag.d.ts.map +1 -1
- package/dist/v2/components/CategoryTag.js +49 -32
- package/dist/v2/components/CategoryTag.js.map +1 -1
- package/dist/v2/components/Checkbox.js +39 -45
- package/dist/v2/components/Checkbox.js.map +1 -1
- package/dist/v2/components/Chip.js +29 -42
- package/dist/v2/components/Chip.js.map +1 -1
- package/dist/v2/components/Combobox.js +122 -144
- package/dist/v2/components/Combobox.js.map +1 -1
- package/dist/v2/components/CommandPalette.js +138 -225
- package/dist/v2/components/CommandPalette.js.map +1 -1
- package/dist/v2/components/ConfirmDialog.js +46 -56
- package/dist/v2/components/ConfirmDialog.js.map +1 -1
- package/dist/v2/components/DatePicker.js +81 -86
- package/dist/v2/components/DatePicker.js.map +1 -1
- package/dist/v2/components/DateRangePicker.js +77 -87
- package/dist/v2/components/DateRangePicker.js.map +1 -1
- package/dist/v2/components/DateTimePicker.js +84 -91
- package/dist/v2/components/DateTimePicker.js.map +1 -1
- package/dist/v2/components/Drawer.d.ts.map +1 -1
- package/dist/v2/components/Drawer.js +93 -88
- package/dist/v2/components/Drawer.js.map +1 -1
- package/dist/v2/components/Dropzone.js +150 -196
- package/dist/v2/components/Dropzone.js.map +1 -1
- package/dist/v2/components/EmptyState.js +18 -20
- package/dist/v2/components/EmptyState.js.map +1 -1
- package/dist/v2/components/FavoriteToggle.js +28 -39
- package/dist/v2/components/FavoriteToggle.js.map +1 -1
- package/dist/v2/components/Field.d.ts +62 -4
- package/dist/v2/components/Field.d.ts.map +1 -1
- package/dist/v2/components/Field.js +169 -70
- package/dist/v2/components/Field.js.map +1 -1
- package/dist/v2/components/FieldError.js +18 -21
- package/dist/v2/components/FieldError.js.map +1 -1
- package/dist/v2/components/FieldHelp.js +40 -60
- package/dist/v2/components/FieldHelp.js.map +1 -1
- package/dist/v2/components/FileCard.js +27 -31
- package/dist/v2/components/FileCard.js.map +1 -1
- package/dist/v2/components/FilterTab.js +30 -38
- package/dist/v2/components/FilterTab.js.map +1 -1
- package/dist/v2/components/ForbiddenPage.d.ts +25 -1
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
- package/dist/v2/components/ForbiddenPage.js +37 -17
- package/dist/v2/components/ForbiddenPage.js.map +1 -1
- package/dist/v2/components/FormGrid.js +53 -59
- package/dist/v2/components/FormGrid.js.map +1 -1
- package/dist/v2/components/FormikDisplay.d.ts +50 -1
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
- package/dist/v2/components/FormikDisplay.js +108 -33
- package/dist/v2/components/FormikDisplay.js.map +1 -1
- package/dist/v2/components/Input.d.ts +40 -0
- package/dist/v2/components/Input.d.ts.map +1 -1
- package/dist/v2/components/Input.js +81 -41
- package/dist/v2/components/Input.js.map +1 -1
- package/dist/v2/components/KPICard.js +57 -67
- package/dist/v2/components/KPICard.js.map +1 -1
- package/dist/v2/components/KPIStrip.js +16 -22
- package/dist/v2/components/KPIStrip.js.map +1 -1
- package/dist/v2/components/KV.js +25 -31
- package/dist/v2/components/KV.js.map +1 -1
- package/dist/v2/components/KVGrid.js +19 -26
- package/dist/v2/components/KVGrid.js.map +1 -1
- package/dist/v2/components/Layout.js +91 -120
- package/dist/v2/components/Layout.js.map +1 -1
- package/dist/v2/components/MobileRowCard.js +79 -91
- package/dist/v2/components/MobileRowCard.js.map +1 -1
- package/dist/v2/components/Modal.js +61 -69
- package/dist/v2/components/Modal.js.map +1 -1
- package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
- package/dist/v2/components/NetworkErrorPage.js +38 -21
- package/dist/v2/components/NetworkErrorPage.js.map +1 -1
- package/dist/v2/components/NotFoundPage.d.ts +17 -1
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
- package/dist/v2/components/NotFoundPage.js +37 -18
- package/dist/v2/components/NotFoundPage.js.map +1 -1
- package/dist/v2/components/NumberInput.js +88 -118
- package/dist/v2/components/NumberInput.js.map +1 -1
- package/dist/v2/components/OverflowMenu.js +38 -56
- package/dist/v2/components/OverflowMenu.js.map +1 -1
- package/dist/v2/components/PdfViewer.js +34 -45
- package/dist/v2/components/PdfViewer.js.map +1 -1
- package/dist/v2/components/ProgressBar.js +42 -49
- package/dist/v2/components/ProgressBar.js.map +1 -1
- package/dist/v2/components/Radio.js +59 -67
- package/dist/v2/components/Radio.js.map +1 -1
- package/dist/v2/components/SectionErrorBoundary.js +90 -135
- package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
- package/dist/v2/components/SectionHeader.js +34 -41
- package/dist/v2/components/SectionHeader.js.map +1 -1
- package/dist/v2/components/Segmented.js +69 -93
- package/dist/v2/components/Segmented.js.map +1 -1
- package/dist/v2/components/Select.d.ts +26 -2
- package/dist/v2/components/Select.d.ts.map +1 -1
- package/dist/v2/components/Select.js +120 -155
- package/dist/v2/components/Select.js.map +1 -1
- package/dist/v2/components/ServerErrorPage.d.ts +27 -1
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
- package/dist/v2/components/ServerErrorPage.js +37 -20
- package/dist/v2/components/ServerErrorPage.js.map +1 -1
- package/dist/v2/components/Skeleton.js +86 -100
- package/dist/v2/components/Skeleton.js.map +1 -1
- package/dist/v2/components/SkipLink.js +9 -12
- package/dist/v2/components/SkipLink.js.map +1 -1
- package/dist/v2/components/Spinner.js +16 -25
- package/dist/v2/components/Spinner.js.map +1 -1
- package/dist/v2/components/Status.js +18 -29
- package/dist/v2/components/Status.js.map +1 -1
- package/dist/v2/components/Stepper.js +80 -82
- package/dist/v2/components/Stepper.js.map +1 -1
- package/dist/v2/components/Surface.js +34 -49
- package/dist/v2/components/Surface.js.map +1 -1
- package/dist/v2/components/Switch.js +29 -37
- package/dist/v2/components/Switch.js.map +1 -1
- package/dist/v2/components/TabPanel.d.ts +17 -0
- package/dist/v2/components/TabPanel.d.ts.map +1 -0
- package/dist/v2/components/TabPanel.js +90 -0
- package/dist/v2/components/TabPanel.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +25 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -1
- package/dist/v2/components/Tabs.js +53 -29
- package/dist/v2/components/Tabs.js.map +1 -1
- package/dist/v2/components/TelInput.js +80 -115
- package/dist/v2/components/TelInput.js.map +1 -1
- package/dist/v2/components/Textarea.js +26 -35
- package/dist/v2/components/Textarea.js.map +1 -1
- package/dist/v2/components/TimePicker.js +62 -74
- package/dist/v2/components/TimePicker.js.map +1 -1
- package/dist/v2/components/Toast.js +119 -174
- package/dist/v2/components/Toast.js.map +1 -1
- package/dist/v2/components/Tooltip.js +23 -38
- package/dist/v2/components/Tooltip.js.map +1 -1
- package/dist/v2/components/_ErrorPageBody.js +15 -16
- package/dist/v2/components/_ErrorPageBody.js.map +1 -1
- package/dist/v2/components/_pickerShared.js +5 -5
- package/dist/v2/components/_pickerShared.js.map +1 -1
- package/dist/v2/components/index.d.ts +40 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/components/index.js +153 -136
- package/dist/v2/components/index.js.map +1 -1
- package/dist/v2/hooks/index.d.ts +65 -0
- package/dist/v2/hooks/index.d.ts.map +1 -1
- package/dist/v2/hooks/index.js +63 -24
- package/dist/v2/hooks/index.js.map +1 -1
- package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
- package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
- package/dist/v2/hooks/useAppliedFilters.js +117 -0
- package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
- package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/v2/hooks/useDebouncedCallback.js +87 -0
- package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +6 -20
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
- package/dist/v2/hooks/useDensity.d.ts.map +1 -1
- package/dist/v2/hooks/useDensity.js +14 -18
- package/dist/v2/hooks/useDensity.js.map +1 -1
- package/dist/v2/hooks/useFocusFirstError.js +26 -34
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
- package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
- package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +20 -24
- package/dist/v2/hooks/useFocusTrap.js.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
- package/dist/v2/hooks/useFormAutoSave.js +39 -54
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
- package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
- package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
- package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
- package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
- package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +5 -13
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
- package/dist/v2/hooks/useSortedRows.js +4 -6
- package/dist/v2/hooks/useSortedRows.js.map +1 -1
- package/dist/v2/hooks/useTabLoading.js +7 -22
- package/dist/v2/hooks/useTabLoading.js.map +1 -1
- package/dist/v2/index.js +143 -145
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/modalContext.js +2 -2
- package/dist/v2/modalContext.js.map +1 -1
- package/dist/v2/models/favorite.d.ts +8 -9
- package/dist/v2/models/favorite.d.ts.map +1 -1
- package/dist/v2/models/favorite.js.map +1 -1
- package/dist/v2/models/index.js +4 -4
- package/dist/v2/models/index.js.map +1 -1
- package/dist/v2/models/personalization.d.ts +44 -48
- package/dist/v2/models/personalization.d.ts.map +1 -1
- package/dist/v2/models/personalization.js.map +1 -1
- package/dist/v2/models/referentiel.d.ts +32 -50
- package/dist/v2/models/referentiel.d.ts.map +1 -1
- package/dist/v2/models/referentiel.js.map +1 -1
- package/dist/v2/models/savedFilter.d.ts +8 -17
- package/dist/v2/models/savedFilter.d.ts.map +1 -1
- package/dist/v2/models/savedFilter.js.map +1 -1
- package/dist/v2/patterns/ActionBar.js +152 -187
- package/dist/v2/patterns/ActionBar.js.map +1 -1
- package/dist/v2/patterns/AppMain.d.ts +109 -0
- package/dist/v2/patterns/AppMain.d.ts.map +1 -0
- package/dist/v2/patterns/AppMain.js +115 -0
- package/dist/v2/patterns/AppMain.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +40 -42
- package/dist/v2/patterns/BulkActionBar.js.map +1 -1
- package/dist/v2/patterns/ChartFigure.d.ts +124 -0
- package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
- package/dist/v2/patterns/ChartFigure.js +159 -0
- package/dist/v2/patterns/ChartFigure.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
- package/dist/v2/patterns/ColumnsToggle.js +60 -94
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
- package/dist/v2/patterns/DataGrid.js +262 -297
- package/dist/v2/patterns/DataGrid.js.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
- package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
- package/dist/v2/patterns/DataGridToolbar.js +103 -106
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
- package/dist/v2/patterns/DataGridVirtualized.js +179 -217
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
- package/dist/v2/patterns/DetailSplit.d.ts +87 -0
- package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
- package/dist/v2/patterns/DetailSplit.js +116 -0
- package/dist/v2/patterns/DetailSplit.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +22 -23
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
- package/dist/v2/patterns/FavoritesFilter.js +36 -44
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
- package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
- package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
- package/dist/v2/patterns/FilterTabBar.js +120 -0
- package/dist/v2/patterns/FilterTabBar.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +20 -23
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
- package/dist/v2/patterns/FormPageShell.js +53 -50
- package/dist/v2/patterns/FormPageShell.js.map +1 -1
- package/dist/v2/patterns/FormSection.d.ts +8 -3
- package/dist/v2/patterns/FormSection.d.ts.map +1 -1
- package/dist/v2/patterns/FormSection.js +44 -51
- package/dist/v2/patterns/FormSection.js.map +1 -1
- package/dist/v2/patterns/FormikCheckbox.js +36 -45
- package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
- package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
- package/dist/v2/patterns/FormikCombobox.js +55 -72
- package/dist/v2/patterns/FormikCombobox.js.map +1 -1
- package/dist/v2/patterns/FormikDatePicker.js +50 -64
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
- package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
- package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
- package/dist/v2/patterns/FormikErrorFocus.js +25 -26
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
- package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
- package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorSummary.js +97 -0
- package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +14 -1
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
- package/dist/v2/patterns/FormikFile.js +99 -83
- package/dist/v2/patterns/FormikFile.js.map +1 -1
- package/dist/v2/patterns/FormikInput.js +45 -58
- package/dist/v2/patterns/FormikInput.js.map +1 -1
- package/dist/v2/patterns/FormikRadioGroup.js +45 -56
- package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/FormikReferentielField.js +54 -64
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
- package/dist/v2/patterns/FormikSelect.js +70 -92
- package/dist/v2/patterns/FormikSelect.js.map +1 -1
- package/dist/v2/patterns/FormikTextarea.js +35 -51
- package/dist/v2/patterns/FormikTextarea.js.map +1 -1
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
- package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
- package/dist/v2/patterns/PageContent.js +17 -20
- package/dist/v2/patterns/PageContent.js.map +1 -1
- package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
- package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
- package/dist/v2/patterns/PreviewDrawer.js +159 -0
- package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +86 -2
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
- package/dist/v2/patterns/ReferentielField.js +347 -327
- package/dist/v2/patterns/ReferentielField.js.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
- package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
- package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
- package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
- package/dist/v2/patterns/SaveFilterDialog.js +50 -77
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
- package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
- package/dist/v2/patterns/SkeletonPageShell.js +122 -143
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
- package/dist/v2/patterns/SortableHeader.js +35 -57
- package/dist/v2/patterns/SortableHeader.js.map +1 -1
- package/dist/v2/patterns/Tour.js +121 -142
- package/dist/v2/patterns/Tour.js.map +1 -1
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
- package/dist/v2/patterns/_dataGridShared.js +131 -147
- package/dist/v2/patterns/_dataGridShared.js.map +1 -1
- package/dist/v2/patterns/_pickerSerialisation.js +9 -10
- package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
- package/dist/v2/patterns/_sort.js +17 -33
- package/dist/v2/patterns/_sort.js.map +1 -1
- package/dist/v2/patterns/_useColumnReorder.js +124 -163
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
- package/dist/v2/patterns/_useColumnResize.js +80 -99
- package/dist/v2/patterns/_useColumnResize.js.map +1 -1
- package/dist/v2/patterns/filterCriteria.d.ts +78 -0
- package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
- package/dist/v2/patterns/filterCriteria.js +110 -0
- package/dist/v2/patterns/filterCriteria.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +160 -0
- package/dist/v2/patterns/index.d.ts.map +1 -1
- package/dist/v2/patterns/index.js +157 -79
- package/dist/v2/patterns/index.js.map +1 -1
- package/dist/v2/patterns/rowActions.d.ts +150 -0
- package/dist/v2/patterns/rowActions.d.ts.map +1 -0
- package/dist/v2/patterns/rowActions.js +232 -0
- package/dist/v2/patterns/rowActions.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
- package/dist/v2/personalization/PersonalizationProvider.js +57 -53
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
- package/dist/v2/personalization/adapters/_storageKey.js +5 -5
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
- package/dist/v2/personalization/adapters/index.js +5 -5
- package/dist/v2/personalization/adapters/index.js.map +1 -1
- package/dist/v2/personalization/capabilities/favorites.js +39 -62
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
- package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
- package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
- package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
- package/dist/v2/personalization/capabilities/index.js +12 -12
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
- package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
- package/dist/v2/personalization/createPersonalizationStore.js +81 -182
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
- package/dist/v2/personalization/index.d.ts +16 -0
- package/dist/v2/personalization/index.d.ts.map +1 -1
- package/dist/v2/personalization/index.js +30 -23
- package/dist/v2/personalization/index.js.map +1 -1
- package/dist/v2/personalization/personalizationContext.js +10 -12
- package/dist/v2/personalization/personalizationContext.js.map +1 -1
- package/dist/v2/personalization/schema.js +8 -9
- package/dist/v2/personalization/schema.js.map +1 -1
- package/dist/v2/referentiel/ReferentielProvider.js +31 -45
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
- package/dist/v2/referentiel/index.js +11 -13
- package/dist/v2/referentiel/index.js.map +1 -1
- package/dist/v2/referentiel/types.d.ts +105 -0
- package/dist/v2/referentiel/types.d.ts.map +1 -0
- package/dist/v2/referentiel/types.js +6 -0
- package/dist/v2/referentiel/types.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +13 -16
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielOptions.js +63 -120
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
- package/dist/v2/referentiel/useReferentielSearch.js +40 -95
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
- package/dist/v2/theme/_brand.js +12 -26
- package/dist/v2/theme/_brand.js.map +1 -1
- package/dist/v2/theme/_brandSecondary.js +12 -26
- package/dist/v2/theme/_brandSecondary.js.map +1 -1
- package/dist/v2/theme/createPortnetTheme.js +41 -49
- package/dist/v2/theme/createPortnetTheme.js.map +1 -1
- package/dist/v2/theme/cssVariables.d.ts +3 -3
- package/dist/v2/theme/cssVariables.d.ts.map +1 -1
- package/dist/v2/theme/cssVariables.js +65 -70
- package/dist/v2/theme/cssVariables.js.map +1 -1
- package/dist/v2/theme/index.js +10 -10
- package/dist/v2/theme/index.js.map +1 -1
- package/dist/v2/tokens/breakpoints.js +16 -16
- package/dist/v2/tokens/breakpoints.js.map +1 -1
- package/dist/v2/tokens/chart.d.ts +103 -0
- package/dist/v2/tokens/chart.d.ts.map +1 -0
- package/dist/v2/tokens/chart.js +270 -0
- package/dist/v2/tokens/chart.js.map +1 -0
- package/dist/v2/tokens/colors.js +24 -24
- package/dist/v2/tokens/colors.js.map +1 -1
- package/dist/v2/tokens/density.d.ts +104 -0
- package/dist/v2/tokens/density.d.ts.map +1 -1
- package/dist/v2/tokens/density.js +67 -12
- package/dist/v2/tokens/density.js.map +1 -1
- package/dist/v2/tokens/index.d.ts +50 -1
- package/dist/v2/tokens/index.d.ts.map +1 -1
- package/dist/v2/tokens/index.js +116 -68
- package/dist/v2/tokens/index.js.map +1 -1
- package/dist/v2/tokens/motion.js +16 -22
- package/dist/v2/tokens/motion.js.map +1 -1
- package/dist/v2/tokens/radius.js +3 -3
- package/dist/v2/tokens/radius.js.map +1 -1
- package/dist/v2/tokens/shadows.js +8 -8
- package/dist/v2/tokens/shadows.js.map +1 -1
- package/dist/v2/tokens/spacing.js +4 -4
- package/dist/v2/tokens/spacing.js.map +1 -1
- package/dist/v2/tokens/state.js +3 -3
- package/dist/v2/tokens/state.js.map +1 -1
- package/dist/v2/tokens/statusPalette.js +21 -23
- package/dist/v2/tokens/statusPalette.js.map +1 -1
- package/dist/v2/tokens/tokens.json +6 -1
- package/dist/v2/tokens/typography.js +15 -15
- package/dist/v2/tokens/typography.js.map +1 -1
- package/dist/v2/tokens/zIndex.js +3 -3
- package/dist/v2/tokens/zIndex.js.map +1 -1
- package/dist/v2/types/datagrid.d.ts +9 -1
- package/dist/v2/types/datagrid.d.ts.map +1 -1
- package/dist/v2/types/datagrid.js.map +1 -1
- package/dist/v2/types/index.js +2 -2
- package/dist/v2/types/index.js.map +1 -1
- package/dist/v2/utils/apiError.js +16 -37
- package/dist/v2/utils/apiError.js.map +1 -1
- package/dist/v2/utils/contrast.js +31 -32
- package/dist/v2/utils/contrast.js.map +1 -1
- package/dist/v2/utils/cx.js +7 -27
- package/dist/v2/utils/cx.js.map +1 -1
- package/dist/v2/utils/fileDownload.js +25 -28
- package/dist/v2/utils/fileDownload.js.map +1 -1
- package/dist/v2/utils/fileValidation.d.ts +116 -0
- package/dist/v2/utils/fileValidation.d.ts.map +1 -0
- package/dist/v2/utils/fileValidation.js +220 -0
- package/dist/v2/utils/fileValidation.js.map +1 -0
- package/dist/v2/utils/fmtDate.d.ts +103 -0
- package/dist/v2/utils/fmtDate.d.ts.map +1 -0
- package/dist/v2/utils/fmtDate.js +119 -0
- package/dist/v2/utils/fmtDate.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +3 -3
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
- package/dist/v2/utils/fmtMoney.js +9 -11
- package/dist/v2/utils/fmtMoney.js.map +1 -1
- package/dist/v2/utils/formikErrors.d.ts +67 -0
- package/dist/v2/utils/formikErrors.d.ts.map +1 -0
- package/dist/v2/utils/formikErrors.js +85 -0
- package/dist/v2/utils/formikErrors.js.map +1 -0
- package/dist/v2/utils/index.d.ts +5 -0
- package/dist/v2/utils/index.d.ts.map +1 -1
- package/dist/v2/utils/index.js +67 -18
- package/dist/v2/utils/index.js.map +1 -1
- package/dist/v2/utils/mergeLabels.js +9 -14
- package/dist/v2/utils/mergeLabels.js.map +1 -1
- package/dist/v2/utils/networkStatus.js +14 -14
- package/dist/v2/utils/networkStatus.js.map +1 -1
- package/package.json +26 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dataGridShared.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_KeyboardArrowLeft","_KeyboardArrowRight","_FirstPage","_LastPage","_Select","_MenuItem","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","DEFAULT_PAGE_SIZES","exports","DEFAULT_MAX_BODY_HEIGHT","DEFAULT_LABELS","freeze","tableAria","selectAll","selectRow","id","concat","actionsHeader","pagination","loading","rowsPerPage","firstPage","previousPage","nextPage","lastPage","navLabel","rangeOf","to","total","fmt","mergeLabels","labels","mergeLabelDict","makeNumberFormatter","locale","Intl","NumberFormat","_unused","applyColumnOrder","columns","columnOrder","byKey","Map","map","c","ordered","_iterator","_step","col","_iterator2","values","_step2","columnsSignature","join","useColumnsStabilityWarn","prevColumnsRef","useRef","warnedRef","useEffect","process","env","current","prevSig","nextSig","console","warn","PAGINATION_ICON_SX","transform","CONTAINER_SX","background","overflow","TABLE_BASE_SX","borderCollapse","borderSpacing","backgroundColor","color","fontWeight","fontSize","textTransform","letterSpacing","borderBottom","padding","whiteSpace","TABLE_BY_DENSITY","comfortable","compact","ROW_HOVER_SELECTED_SX","boxShadow","ROW_CLICKABLE_SX","cursor","outline","outlineOffset","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","width","position","top","zIndex","BODY_CHECKBOX_CELL_SX","HOVER_ONLY_CELL_SX","opacity","transition","ERROR_CELL_SX","ERROR_INNER_SX","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","PAGINATION_CONTAINER_SX","display","alignItems","flexWrap","gap","borderTop","PAGINATION_RANGE_SX","flex","fontVariantNumeric","PAGINATION_PAGESIZE_GROUP_SX","PAGINATION_NAV_GROUP_SX","PAGINATION_PAGE_OF_SX","minWidth","textAlign","PAGINATION_SELECT_SX","height","Pagination","_ref","page","pageSize","onPageChange","onPageSizeChange","_ref$pageSizes","pageSizes","pages","Math","max","ceil","min","go","p","useMemo","nf","format","jsxs","component","sx","children","jsx","role","size","onChange","inputProps","onClick","disabled"],"sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"sourcesContent":["/**\r\n * _dataGridShared — Portnet UI v2 (private)\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\r\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density, RowId } from \"../types/common\";\r\nimport type { DataGridLabels, DataGridPaginationLabels } from \"../types/datagrid\";\r\nimport { mergeLabels as mergeLabelDict } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Strips optionality AND an explicitly-declared `| undefined`.\r\n *\r\n * `Required<T>` is NOT sufficient here, and the difference is invisible until it\r\n * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.\r\n * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label\r\n * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of\r\n * the declared type and survives `Required<>`. The \"fully-resolved\" shapes below\r\n * silently stopped being resolved, and every renderer that read them without an\r\n * optional check became a type error (three of them).\r\n *\r\n * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what\r\n * `Required<>` produced BEFORE the optional props were widened — this restores\r\n * the original intent rather than changing it.\r\n */\r\ntype Concrete<T> = { [K in keyof T]-?: Exclude<T[K], undefined> };\r\n\r\n/**\r\n * Fully-resolved (all-present) label shapes. The public DataGridLabels /\r\n * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every\r\n * field optional). After mergeLabels every field is guaranteed present, so the\r\n * renderers (Pagination, DataGrid) read them without optional access.\r\n */\r\nexport type ResolvedDataGridPaginationLabels = Concrete<DataGridPaginationLabels>;\r\nexport type ResolvedDataGridLabels = Concrete<Omit<DataGridLabels, \"pagination\">> & {\r\n pagination: ResolvedDataGridPaginationLabels;\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZES = [25, 50, 100];\r\nexport const DEFAULT_MAX_BODY_HEIGHT = \"70vh\";\r\n\r\nexport const DEFAULT_LABELS: ResolvedDataGridLabels = Object.freeze({\r\n tableAria: \"Tableau\",\r\n selectAll: \"Tout sélectionner\",\r\n selectRow: (id: RowId) => `Sélectionner la ligne ${id}`,\r\n actionsHeader: \"Actions\",\r\n pagination: Object.freeze({\r\n loading: \"Chargement…\",\r\n rowsPerPage: \"Lignes par page\",\r\n firstPage: \"Première page\",\r\n previousPage: \"Page précédente\",\r\n nextPage: \"Page suivante\",\r\n lastPage: \"Dernière page\",\r\n navLabel: \"Pagination\",\r\n rangeOf: (from: number, to: number, total: number, fmt: (n: number) => string) => `${from}–${to} sur ${fmt(total)}`,\r\n }),\r\n});\r\n\r\nexport function mergeLabels(labels?: DataGridLabels): ResolvedDataGridLabels {\r\n if (!labels) return DEFAULT_LABELS;\r\n /*\r\n * Both levels go through the shared undefined-safe merge. A spread does not skip\r\n * explicit `undefined`, so the previous form — a bare object spread of the\r\n * overrides over the defaults — let a consumer passing `selectRow: undefined`\r\n * DELETE the default and crash the renderer. The old `|| {}` guarded the nested\r\n * `pagination` object against being undefined, but not its individual VALUES —\r\n * same hazard, one level down.\r\n *\r\n * The broken form is described rather than quoted, deliberately:\r\n * scripts/fix-label-merge.mjs is a text scan, and a verbatim copy here matched it\r\n * — so the codemod offered to rewrite this COMMENT. Same lesson KPICard already\r\n * records for the banned-patterns guard.\r\n *\r\n * `pagination` is merged at its OWN level, deliberately, rather than through a\r\n * recursive deep merge: two explicit levels can be read, whereas a recursive\r\n * helper hides how deep it goes and raises the question of what it does to\r\n * arrays. Convention for the whole library: a nested label dictionary is\r\n * merged at its own level.\r\n */\r\n return mergeLabelDict(DEFAULT_LABELS, {\r\n ...labels,\r\n pagination: mergeLabelDict(DEFAULT_LABELS.pagination, labels.pagination),\r\n });\r\n}\r\n\r\nexport function makeNumberFormatter(locale?: string): Intl.NumberFormat {\r\n try { return new Intl.NumberFormat(locale); }\r\n catch { return new Intl.NumberFormat(\"fr-FR\"); }\r\n}\r\n\r\nexport function applyColumnOrder<C extends { key: string }>(\r\n columns: C[],\r\n columnOrder: string[] | null | undefined\r\n): C[] {\r\n if (!columnOrder || columnOrder.length === 0) return columns;\r\n const byKey = new Map<string, C>(columns.map((c): [string, C] => [c.key, c]));\r\n const ordered: C[] = [];\r\n for (const key of columnOrder) {\r\n const col = byKey.get(key);\r\n if (col !== undefined) { ordered.push(col); byKey.delete(key); }\r\n }\r\n for (const col of byKey.values()) ordered.push(col);\r\n return ordered;\r\n}\r\n\r\nfunction columnsSignature(columns: unknown): string {\r\n if (!Array.isArray(columns)) return \"\";\r\n return (columns as unknown[])\r\n .map((c) => (c && typeof c === \"object\" ? (c as { key?: unknown }).key : c))\r\n .join(\"|\");\r\n}\r\n\r\nexport function useColumnsStabilityWarn(columns: unknown): void {\r\n const prevColumnsRef = React.useRef(columns);\r\n const warnedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n if (warnedRef.current) return;\r\n if (prevColumnsRef.current === columns) return;\r\n const prevSig = columnsSignature(prevColumnsRef.current);\r\n const nextSig = columnsSignature(columns);\r\n if (prevSig && prevSig === nextSig) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"[@portnet/ui v2] DataGrid received a new `columns` reference with identical column keys. Define columns outside render or wrap in useMemo.\");\r\n warnedRef.current = true;\r\n }\r\n prevColumnsRef.current = columns;\r\n });\r\n}\r\n\r\nexport const PAGINATION_ICON_SX = Object.freeze({ transform: \"scaleX(var(--pui-rtl-flip, 1))\" });\r\nexport const CONTAINER_SX = Object.freeze({ background: \"transparent\", overflow: \"hidden\" } satisfies SxProps<Theme>);\r\n\r\n/*\r\n * TABLE_BASE_SX — applied to the MUI <Table> via the sx prop.\r\n *\r\n * textTransform: \"none\" is INTENTIONALLY EXPLICIT here.\r\n *\r\n * Why not rely on the MUI theme (MuiTableCell.head.textTransform: \"none\")?\r\n *\r\n * Emotion injects sx-prop rules AFTER theme styleOverrides. Both rules\r\n * target <th> with equal specificity (1 class + 1 element). The last\r\n * one injected wins. sx wins over theme → the sx value is the truth.\r\n *\r\n * The old bug: this object had textTransform:\"uppercase\" which silently\r\n * overrode the theme's \"none\". The fix: keep explicit \"none\" here so\r\n * the correct value wins unconditionally, regardless of injection order.\r\n *\r\n * letterSpacing is reset to \"normal\" because all-caps text uses wider\r\n * tracking which looks wrong on title-case column headers.\r\n */\r\nconst TABLE_BASE_SX = Object.freeze({\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n \"& thead th\": {\r\n backgroundColor: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-xs)\",\r\n textTransform: \"none\", // EXPLICIT — beats emotion injection order\r\n letterSpacing: \"normal\", // reset all-caps tracking\r\n borderBottom: \"1px solid var(--border)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n \"& tbody td\": {\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const TABLE_BY_DENSITY: Record<Density, SxProps<Theme>> = Object.freeze({\r\n comfortable: TABLE_BASE_SX,\r\n compact: Object.freeze({\r\n ...TABLE_BASE_SX,\r\n \"& tbody td\": { ...TABLE_BASE_SX[\"& tbody td\"], padding: \"var(--s-2) var(--s-4)\" },\r\n } satisfies SxProps<Theme>),\r\n});\r\n\r\nconst ROW_HOVER_SELECTED_SX = Object.freeze({\r\n \"&:nth-of-type(even)\": { backgroundColor: \"var(--bg-subtle)\" },\r\n \"&:hover\": { backgroundColor: \"var(--bg-hover)\" },\r\n \"&[data-selected]\": { backgroundColor: \"var(--accent-soft)\" },\r\n \"&[data-active]\": {\r\n backgroundColor: \"var(--accent-soft)\",\r\n \"& > td:first-of-type\": { boxShadow: \"inset calc(3px * var(--pui-rtl-flip, 1)) 0 0 var(--accent)\" },\r\n },\r\n});\r\n\r\nexport const ROW_CLICKABLE_SX = Object.freeze({\r\n ...ROW_HOVER_SELECTED_SX,\r\n cursor: \"pointer\",\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset-inset)\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const ROW_STATIC_SX = Object.freeze({ ...ROW_HOVER_SELECTED_SX, cursor: \"default\" } satisfies SxProps<Theme>);\r\n\r\nexport const HEADER_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\", position: \"sticky\", top: 0, zIndex: 2 } satisfies SxProps<Theme>);\r\nexport const BODY_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\" });\r\n\r\nexport const HOVER_ONLY_CELL_SX = Object.freeze({\r\n opacity: 0,\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n \"tr:hover &, tr:focus-within &\": { opacity: 1 },\r\n \"@media (pointer: coarse)\": { opacity: 1 },\r\n});\r\n\r\nexport const ERROR_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"none\" });\r\nexport const ERROR_INNER_SX = Object.freeze({ padding: \"var(--s-4)\" });\r\n\r\nexport const FILLER_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"1px solid var(--border)\" });\r\nexport const FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0, position: \"sticky\", top: 0, zIndex: 1,\r\n background: \"var(--bg-subtle)\", borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Pagination ─────────────────────────────────────────────────── */\r\n\r\nconst PAGINATION_CONTAINER_SX = Object.freeze({\r\n display: \"flex\", alignItems: \"center\",\r\n // R-RS / WCAG 1.4.10 — the control groups (range / page-size / nav)\r\n // must wrap onto extra lines on narrow viewports. Their combined fixed\r\n // width (~400px+) exceeds a 320–375px phone, so without flexWrap the\r\n // bar overflowed its container and pushed the nav buttons off-screen.\r\n // rowGap (s2) keeps wrapped rows tight; columnGap (s4) is the original\r\n // inter-group spacing on a single row.\r\n flexWrap: \"wrap\", gap: \"var(--s-2) var(--s-4)\",\r\n padding: \"var(--s-2) var(--s-4)\", borderTop: \"1px solid var(--border)\",\r\n background: \"var(--surface)\", fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PAGINATION_RANGE_SX = Object.freeze({ flex: 1, fontVariantNumeric: \"tabular-nums\" });\r\nconst PAGINATION_PAGESIZE_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_NAV_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_PAGE_OF_SX = Object.freeze({ minWidth: 56, textAlign: \"center\", fontVariantNumeric: \"tabular-nums\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_SELECT_SX = Object.freeze({ fontSize: \"var(--text-xs)\", height: 28 });\r\n\r\nexport interface PaginationProps {\r\n page: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange?: ((pageSize: number) => void) | undefined;\r\n pageSizes?: number[] | undefined;\r\n loading?: boolean | undefined;\r\n locale?: string | undefined;\r\n labels: ResolvedDataGridPaginationLabels;\r\n}\r\n\r\nexport function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes = DEFAULT_PAGE_SIZES, loading, locale, labels }: PaginationProps) {\r\n const pages = Math.max(1, Math.ceil(total / pageSize));\r\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\r\n const to = Math.min(total, page * pageSize);\r\n const go = (p: number) => onPageChange(Math.min(pages, Math.max(1, p)));\r\n\r\n const fmt = React.useMemo(() => {\r\n const nf = makeNumberFormatter(locale);\r\n return (n: number) => nf.format(n);\r\n }, [locale]);\r\n\r\n return (\r\n <Box component=\"nav\" aria-label={labels.navLabel} sx={PAGINATION_CONTAINER_SX}>\r\n {/* PAGE-2 — polite, atomic live region so SR users hear the position\r\n change (\"1–25 sur 100\" → \"26–50 sur 100\") as they page. */}\r\n <Box role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" sx={PAGINATION_RANGE_SX}>{loading ? labels.loading : labels.rangeOf(from, to, total, fmt)}</Box>\r\n {onPageSizeChange && (\r\n <Box sx={PAGINATION_PAGESIZE_GROUP_SX}>\r\n <span>{labels.rowsPerPage}</span>\r\n <Select size=\"small\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} inputProps={{ \"aria-label\": String(labels.rowsPerPage) }} sx={PAGINATION_SELECT_SX}>\r\n {pageSizes.map((s) => <MenuItem key={s} value={s}>{s}</MenuItem>)}\r\n </Select>\r\n </Box>\r\n )}\r\n <Box sx={PAGINATION_NAV_GROUP_SX}>\r\n <IconButton size=\"small\" onClick={() => go(1)} disabled={page <= 1} aria-label={labels.firstPage}><FirstPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(page - 1)} disabled={page <= 1} aria-label={labels.previousPage}><KeyboardArrowLeftIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <Box sx={PAGINATION_PAGE_OF_SX}>{page} / {pages}</Box>\r\n <IconButton size=\"small\" onClick={() => go(page + 1)} disabled={page >= pages} aria-label={labels.nextPage}><KeyboardArrowRightIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(pages)} disabled={page >= pages} aria-label={labels.lastPage}><LastPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAIA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,kBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,mBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,UAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,OAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,SAAA,GAAAP,sBAAA,CAAAF,OAAA;AAIA,IAAAU,YAAA,GAAAV,OAAA;AAAqE,IAAAW,WAAA,GAAAX,OAAA;AAAA,SAAAE,uBAAAU,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAhB,wBAAAa,GAAA,EAAAG,WAAA,SAAAA,WAAA,IAAAH,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAO,OAAA,CAAAP,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAQ,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,cAAAX,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAJ,QAAAP,GAAA,sCAAAO,OAAA,wBAAAe,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAvB,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAsB,MAAA,IAAAtB,GAAA,CAAAwB,WAAA,KAAAF,MAAA,IAAAtB,GAAA,KAAAsB,MAAA,CAAAL,SAAA,qBAAAjB,GAAA,KAAAO,OAAA,CAAAP,GAAA;AAAA,SAAAyB,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAN,MAAA,oBAAAI,CAAA,CAAAJ,MAAA,CAAAC,QAAA,KAAAG,CAAA,qBAAAE,EAAA,QAAAC,KAAA,CAAAC,OAAA,CAAAJ,CAAA,MAAAE,EAAA,GAAAG,2BAAA,CAAAL,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAM,MAAA,qBAAAJ,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAK,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAP,CAAA,CAAAM,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAZ,CAAA,CAAAO,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAAT,IAAA,CAAAO,CAAA,MAAAU,CAAA,WAAAA,EAAA,QAAAU,IAAA,GAAAlB,EAAA,CAAAmB,IAAA,IAAAJ,gBAAA,GAAAG,IAAA,CAAAT,IAAA,SAAAS,IAAA,KAAAP,CAAA,WAAAA,EAAAS,GAAA,IAAAJ,MAAA,SAAAC,GAAA,GAAAG,GAAA,KAAAP,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAf,EAAA,oBAAAA,EAAA,8BAAAgB,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAL,CAAA,EAAAuB,MAAA,SAAAvB,CAAA,qBAAAA,CAAA,sBAAAwB,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA,OAAAb,CAAA,GAAAvB,MAAA,CAAAI,SAAA,CAAAkC,QAAA,CAAAhC,IAAA,CAAAO,CAAA,EAAA0B,KAAA,aAAAhB,CAAA,iBAAAV,CAAA,CAAAF,WAAA,EAAAY,CAAA,GAAAV,CAAA,CAAAF,WAAA,CAAA6B,IAAA,MAAAjB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAAyB,IAAA,CAAA5B,CAAA,OAAAU,CAAA,+DAAAmB,IAAA,CAAAnB,CAAA,UAAAc,iBAAA,CAAAxB,CAAA,EAAAuB,MAAA;AAAA,SAAAC,kBAAAM,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAxB,MAAA,EAAAyB,GAAA,GAAAD,GAAA,CAAAxB,MAAA,WAAAC,CAAA,MAAAyB,IAAA,OAAA7B,KAAA,CAAA4B,GAAA,GAAAxB,CAAA,GAAAwB,GAAA,EAAAxB,CAAA,MAAAyB,IAAA,CAAAzB,CAAA,IAAAuB,GAAA,CAAAvB,CAAA,YAAAyB,IAAA;AAAA,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAjD,MAAA,CAAAiD,IAAA,CAAAF,MAAA,OAAA/C,MAAA,CAAAkD,qBAAA,QAAAC,OAAA,GAAAnD,MAAA,CAAAkD,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAArD,MAAA,CAAAE,wBAAA,CAAA6C,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAtC,CAAA,MAAAA,CAAA,GAAAuC,SAAA,CAAAxC,MAAA,EAAAC,CAAA,UAAAwC,MAAA,WAAAD,SAAA,CAAAvC,CAAA,IAAAuC,SAAA,CAAAvC,CAAA,QAAAA,CAAA,OAAA0B,OAAA,CAAA9C,MAAA,CAAA4D,MAAA,OAAAC,OAAA,WAAA1D,GAAA,IAAA2D,eAAA,CAAAJ,MAAA,EAAAvD,GAAA,EAAAyD,MAAA,CAAAzD,GAAA,SAAAH,MAAA,CAAA+D,yBAAA,GAAA/D,MAAA,CAAAgE,gBAAA,CAAAN,MAAA,EAAA1D,MAAA,CAAA+D,yBAAA,CAAAH,MAAA,KAAAd,OAAA,CAAA9C,MAAA,CAAA4D,MAAA,GAAAC,OAAA,WAAA1D,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAyD,MAAA,EAAAvD,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAA0D,MAAA,EAAAzD,GAAA,iBAAAuD,MAAA;AAAA,SAAAI,gBAAA3E,GAAA,EAAAgB,GAAA,EAAAsB,KAAA,IAAAtB,GAAA,GAAA8D,cAAA,CAAA9D,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAAsB,KAAA,EAAAA,KAAA,EAAA6B,UAAA,QAAAY,YAAA,QAAAC,QAAA,oBAAAhF,GAAA,CAAAgB,GAAA,IAAAsB,KAAA,WAAAtC,GAAA;AAAA,SAAA8E,eAAAG,GAAA,QAAAjE,GAAA,GAAAkE,YAAA,CAAAD,GAAA,oBAAA1E,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAmE,MAAA,CAAAnE,GAAA;AAAA,SAAAkE,aAAAE,KAAA,EAAAC,IAAA,QAAA9E,OAAA,CAAA6E,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAA9D,MAAA,CAAAiE,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAAnE,IAAA,CAAAiE,KAAA,EAAAC,IAAA,oBAAA9E,OAAA,CAAAkF,GAAA,uBAAAA,GAAA,YAAA/C,SAAA,4DAAA2C,IAAA,gBAAAF,MAAA,GAAAO,MAAA,EAAAN,KAAA,KAhBrE;AACA;AACA,GAFA,CAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAdA,CAiBA;AACA;AACA;AACA;AACA;AACA;AAMO,IAAMO,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACxC,IAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,MAAM;AAEtC,IAAMC,cAAsC,GAAAF,OAAA,CAAAE,cAAA,GAAGjF,MAAM,CAACkF,MAAM,CAAC;EAClEC,SAAS,EAAE,SAAS;EACpBC,SAAS,EAAE,mBAAmB;EAC9BC,SAAS,EAAE,SAAAA,UAACC,EAAS;IAAA,mCAAAC,MAAA,CAA8BD,EAAE;EAAA,CAAE;EACvDE,aAAa,EAAE,SAAS;EACxBC,UAAU,EAAEzF,MAAM,CAACkF,MAAM,CAAC;IACxBQ,OAAO,EAAO,aAAa;IAC3BC,WAAW,EAAG,iBAAiB;IAC/BC,SAAS,EAAK,eAAe;IAC7BC,YAAY,EAAE,iBAAiB;IAC/BC,QAAQ,EAAM,eAAe;IAC7BC,QAAQ,EAAM,eAAe;IAC7BC,QAAQ,EAAM,YAAY;IAC1BC,OAAO,EAAO,SAAAA,QAACxD,IAAY,EAAEyD,EAAU,EAAEC,KAAa,EAAEC,GAA0B;MAAA,UAAAb,MAAA,CAAQ9C,IAAI,YAAA8C,MAAA,CAAIW,EAAE,WAAAX,MAAA,CAAQa,GAAG,CAACD,KAAK,CAAC;IAAA;EACxH,CAAC;AACH,CAAC,CAAC;AAEK,SAASE,WAAWA,CAACC,MAAuB,EAA0B;EAC3E,IAAI,CAACA,MAAM,EAAE,OAAOrB,cAAc;EAClC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAO,IAAAsB,wBAAc,EAACtB,cAAc,EAAAxB,aAAA,CAAAA,aAAA,KAC/B6C,MAAM;IACTb,UAAU,EAAE,IAAAc,wBAAc,EAACtB,cAAc,CAACQ,UAAU,EAAEa,MAAM,CAACb,UAAU;EAAC,EACzE,CAAC;AACJ;AAEO,SAASe,mBAAmBA,CAACC,MAAe,EAAqB;EACtE,IAAI;IAAE,OAAO,IAAIC,IAAI,CAACC,YAAY,CAACF,MAAM,CAAC;EAAE,CAAC,CAC7C,OAAAG,OAAA,EAAM;IAAE,OAAO,IAAIF,IAAI,CAACC,YAAY,CAAC,OAAO,CAAC;EAAE;AACjD;AAEO,SAASE,gBAAgBA,CAC9BC,OAAY,EACZC,WAAwC,EACnC;EACL,IAAI,CAACA,WAAW,IAAIA,WAAW,CAAC5F,MAAM,KAAK,CAAC,EAAE,OAAO2F,OAAO;EAC5D,IAAME,KAAK,GAAG,IAAIC,GAAG,CAAYH,OAAO,CAACI,GAAG,CAAC,UAACC,CAAC;IAAA,OAAkB,CAACA,CAAC,CAAChH,GAAG,EAAEgH,CAAC,CAAC;EAAA,EAAC,CAAC;EAC7E,IAAMC,OAAY,GAAG,EAAE;EAAC,IAAAC,SAAA,GAAAzG,0BAAA,CACNmG,WAAW;IAAAO,KAAA;EAAA;IAA7B,KAAAD,SAAA,CAAA/F,CAAA,MAAAgG,KAAA,GAAAD,SAAA,CAAA9F,CAAA,IAAAC,IAAA,GAA+B;MAAA,IAApBrB,GAAG,GAAAmH,KAAA,CAAA7F,KAAA;MACZ,IAAM8F,GAAG,GAAGP,KAAK,CAACnH,GAAG,CAACM,GAAG,CAAC;MAC1B,IAAIoH,GAAG,KAAK5C,SAAS,EAAE;QAAEyC,OAAO,CAAC7D,IAAI,CAACgE,GAAG,CAAC;QAAEP,KAAK,UAAO,CAAC7G,GAAG,CAAC;MAAE;IACjE;EAAC,SAAA6B,GAAA;IAAAqF,SAAA,CAAA3F,CAAA,CAAAM,GAAA;EAAA;IAAAqF,SAAA,CAAAzF,CAAA;EAAA;EAAA,IAAA4F,UAAA,GAAA5G,0BAAA,CACiBoG,KAAK,CAACS,MAAM,CAAC,CAAC;IAAAC,MAAA;EAAA;IAAhC,KAAAF,UAAA,CAAAlG,CAAA,MAAAoG,MAAA,GAAAF,UAAA,CAAAjG,CAAA,IAAAC,IAAA,GAAkC;MAAA,IAAvB+F,IAAG,GAAAG,MAAA,CAAAjG,KAAA;MAAoB2F,OAAO,CAAC7D,IAAI,CAACgE,IAAG,CAAC;IAAA;EAAC,SAAAvF,GAAA;IAAAwF,UAAA,CAAA9F,CAAA,CAAAM,GAAA;EAAA;IAAAwF,UAAA,CAAA5F,CAAA;EAAA;EACpD,OAAOwF,OAAO;AAChB;AAEA,SAASO,gBAAgBA,CAACb,OAAgB,EAAU;EAClD,IAAI,CAAC9F,KAAK,CAACC,OAAO,CAAC6F,OAAO,CAAC,EAAE,OAAO,EAAE;EACtC,OAAQA,OAAO,CACZI,GAAG,CAAC,UAACC,CAAC;IAAA,OAAMA,CAAC,IAAIzH,OAAA,CAAOyH,CAAC,MAAK,QAAQ,GAAIA,CAAC,CAAuBhH,GAAG,GAAGgH,CAAC;EAAA,CAAC,CAAC,CAC3ES,IAAI,CAAC,GAAG,CAAC;AACd;AAEO,SAASC,uBAAuBA,CAACf,OAAgB,EAAQ;EAC9D,IAAMgB,cAAc,GAAGzJ,KAAK,CAAC0J,MAAM,CAACjB,OAAO,CAAC;EAC5C,IAAMkB,SAAS,GAAG3J,KAAK,CAAC0J,MAAM,CAAC,KAAK,CAAC;EACrC1J,KAAK,CAAC4J,SAAS,CAAC,YAAM;IACpB,IAAIC,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,EAAE;IAC9C,IAAIH,SAAS,CAACI,OAAO,EAAE;IACvB,IAAIN,cAAc,CAACM,OAAO,KAAKtB,OAAO,EAAE;IACxC,IAAMuB,OAAO,GAAGV,gBAAgB,CAACG,cAAc,CAACM,OAAO,CAAC;IACxD,IAAME,OAAO,GAAGX,gBAAgB,CAACb,OAAO,CAAC;IACzC,IAAIuB,OAAO,IAAIA,OAAO,KAAKC,OAAO,EAAE;MAClC;MACAC,OAAO,CAACC,IAAI,CAAC,4IAA4I,CAAC;MAC1JR,SAAS,CAACI,OAAO,GAAG,IAAI;IAC1B;IACAN,cAAc,CAACM,OAAO,GAAGtB,OAAO;EAClC,CAAC,CAAC;AACJ;AAEO,IAAM2B,kBAAkB,GAAA1D,OAAA,CAAA0D,kBAAA,GAAGzI,MAAM,CAACkF,MAAM,CAAC;EAAEwD,SAAS,EAAE;AAAiC,CAAC,CAAC;AACzF,IAAMC,YAAY,GAAA5D,OAAA,CAAA4D,YAAA,GAAG3I,MAAM,CAACkF,MAAM,CAAC;EAAE0D,UAAU,EAAE,aAAa;EAAEC,QAAQ,EAAE;AAAS,CAA0B,CAAC;;AAErH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,aAAa,GAAG9I,MAAM,CAACkF,MAAM,CAAC;EAClC6D,cAAc,EAAE,UAAU;EAC1BC,aAAa,EAAE,CAAC;EAChB,YAAY,EAAE;IACZC,eAAe,EAAE,kBAAkB;IACnCC,KAAK,EAAE,iBAAiB;IACxBC,UAAU,EAAE,oBAAoB;IAChCC,QAAQ,EAAE,gBAAgB;IAC1BC,aAAa,EAAE,MAAM;IAAO;IAC5BC,aAAa,EAAE,QAAQ;IAAK;IAC5BC,YAAY,EAAE,yBAAyB;IACvCC,OAAO,EAAE,uBAAuB;IAChCC,UAAU,EAAE;EACd,CAAC;EACD,YAAY,EAAE;IACZD,OAAO,EAAE,uBAAuB;IAChCD,YAAY,EAAE;EAChB;AACF,CAA0B,CAAC;AAEpB,IAAMG,gBAAiD,GAAA3E,OAAA,CAAA2E,gBAAA,GAAG1J,MAAM,CAACkF,MAAM,CAAC;EAC7EyE,WAAW,EAAEb,aAAa;EAC1Bc,OAAO,EAAE5J,MAAM,CAACkF,MAAM,CAAAzB,aAAA,CAAAA,aAAA,KACjBqF,aAAa;IAChB,YAAY,EAAArF,aAAA,CAAAA,aAAA,KAAOqF,aAAa,CAAC,YAAY,CAAC;MAAEU,OAAO,EAAE;IAAuB;EAAE,EAC1D;AAC5B,CAAC,CAAC;AAEF,IAAMK,qBAAqB,GAAG7J,MAAM,CAACkF,MAAM,CAAC;EAC1C,qBAAqB,EAAE;IAAE+D,eAAe,EAAE;EAAmB,CAAC;EAC9D,SAAS,EAAc;IAAEA,eAAe,EAAE;EAAkB,CAAC;EAC7D,kBAAkB,EAAK;IAAEA,eAAe,EAAE;EAAqB,CAAC;EAChE,gBAAgB,EAAE;IAChBA,eAAe,EAAE,oBAAoB;IACrC,sBAAsB,EAAE;MAAEa,SAAS,EAAE;IAA6D;EACpG;AACF,CAAC,CAAC;AAEK,IAAMC,gBAAgB,GAAAhF,OAAA,CAAAgF,gBAAA,GAAG/J,MAAM,CAACkF,MAAM,CAAAzB,aAAA,CAAAA,aAAA,KACxCoG,qBAAqB;EACxBG,MAAM,EAAE,SAAS;EACjB,iBAAiB,EAAE;IAAEC,OAAO,EAAE,yBAAyB;IAAEC,aAAa,EAAE;EAAkC;AAAC,EACnF,CAAC;AAEpB,IAAMC,aAAa,GAAApF,OAAA,CAAAoF,aAAA,GAAGnK,MAAM,CAACkF,MAAM,CAAAzB,aAAA,CAAAA,aAAA,KAAMoG,qBAAqB;EAAEG,MAAM,EAAE;AAAS,EAA2B,CAAC;AAE7G,IAAMI,uBAAuB,GAAArF,OAAA,CAAAqF,uBAAA,GAAGpK,MAAM,CAACkF,MAAM,CAAC;EAAEmF,KAAK,EAAE,oBAAoB;EAAEC,QAAQ,EAAE,QAAQ;EAAEC,GAAG,EAAE,CAAC;EAAEC,MAAM,EAAE;AAAE,CAA0B,CAAC;AAC9I,IAAMC,qBAAqB,GAAA1F,OAAA,CAAA0F,qBAAA,GAAKzK,MAAM,CAACkF,MAAM,CAAC;EAAEmF,KAAK,EAAE;AAAqB,CAAC,CAAC;AAE9E,IAAMK,kBAAkB,GAAA3F,OAAA,CAAA2F,kBAAA,GAAG1K,MAAM,CAACkF,MAAM,CAAC;EAC9CyF,OAAO,EAAE,CAAC;EACVC,UAAU,EAAE,0CAA0C;EACtD,+BAA+B,EAAE;IAAED,OAAO,EAAE;EAAE,CAAC;EAC/C,0BAA0B,EAAE;IAAEA,OAAO,EAAE;EAAE;AAC3C,CAAC,CAAC;AAEK,IAAME,aAAa,GAAA9F,OAAA,CAAA8F,aAAA,GAAI7K,MAAM,CAACkF,MAAM,CAAC;EAAEsE,OAAO,EAAE,CAAC;EAAED,YAAY,EAAE;AAAO,CAAC,CAAC;AAC1E,IAAMuB,cAAc,GAAA/F,OAAA,CAAA+F,cAAA,GAAG9K,MAAM,CAACkF,MAAM,CAAC;EAAEsE,OAAO,EAAE;AAAa,CAAC,CAAC;AAE/D,IAAMuB,cAAc,GAAAhG,OAAA,CAAAgG,cAAA,GAAG/K,MAAM,CAACkF,MAAM,CAAC;EAAEsE,OAAO,EAAE,CAAC;EAAED,YAAY,EAAE;AAA0B,CAAC,CAAC;AAC7F,IAAMyB,mBAAmB,GAAAjG,OAAA,CAAAiG,mBAAA,GAAGhL,MAAM,CAACkF,MAAM,CAAC;EAC/CsE,OAAO,EAAE,CAAC;EAAEc,QAAQ,EAAE,QAAQ;EAAEC,GAAG,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EACjD5B,UAAU,EAAE,kBAAkB;EAAEW,YAAY,EAAE;AAChD,CAA0B,CAAC;;AAE3B;;AAEA,IAAM0B,uBAAuB,GAAGjL,MAAM,CAACkF,MAAM,CAAC;EAC5CgG,OAAO,EAAE,MAAM;EAAEC,UAAU,EAAE,QAAQ;EACrC;EACA;EACA;EACA;EACA;EACA;EACAC,QAAQ,EAAE,MAAM;EAAEC,GAAG,EAAE,uBAAuB;EAC9C7B,OAAO,EAAE,uBAAuB;EAAE8B,SAAS,EAAE,yBAAyB;EACtE1C,UAAU,EAAE,gBAAgB;EAAEQ,QAAQ,EAAE,gBAAgB;EAAEF,KAAK,EAAE;AACnE,CAA0B,CAAC;AAE3B,IAAMqC,mBAAmB,GAAYvL,MAAM,CAACkF,MAAM,CAAC;EAAEsG,IAAI,EAAE,CAAC;EAAEC,kBAAkB,EAAE;AAAe,CAAC,CAAC;AACnG,IAAMC,4BAA4B,GAAG1L,MAAM,CAACkF,MAAM,CAAC;EAAEgG,OAAO,EAAE,MAAM;EAAEC,UAAU,EAAE,QAAQ;EAAEE,GAAG,EAAE;AAAa,CAA0B,CAAC;AACzI,IAAMM,uBAAuB,GAAQ3L,MAAM,CAACkF,MAAM,CAAC;EAAEgG,OAAO,EAAE,MAAM;EAAEC,UAAU,EAAE,QAAQ;EAAEE,GAAG,EAAE;AAAa,CAA0B,CAAC;AACzI,IAAMO,qBAAqB,GAAU5L,MAAM,CAACkF,MAAM,CAAC;EAAE2G,QAAQ,EAAE,EAAE;EAAEC,SAAS,EAAE,QAAQ;EAAEL,kBAAkB,EAAE;AAAe,CAA0B,CAAC;AACtJ,IAAMM,oBAAoB,GAAW/L,MAAM,CAACkF,MAAM,CAAC;EAAEkE,QAAQ,EAAE,gBAAgB;EAAE4C,MAAM,EAAE;AAAG,CAAC,CAAC;AAcvF,SAASC,UAAUA,CAAAC,IAAA,EAAsI;EAAA,IAAnIC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEjG,KAAK,GAAA+F,IAAA,CAAL/F,KAAK;IAAEkG,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAEC,gBAAgB,GAAAJ,IAAA,CAAhBI,gBAAgB;IAAAC,cAAA,GAAAL,IAAA,CAAEM,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAGzH,kBAAkB,GAAAyH,cAAA;IAAE7G,OAAO,GAAAwG,IAAA,CAAPxG,OAAO;IAAEe,MAAM,GAAAyF,IAAA,CAANzF,MAAM;IAAEH,MAAM,GAAA4F,IAAA,CAAN5F,MAAM;EACzI,IAAMmG,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,IAAI,CAACzG,KAAK,GAAGiG,QAAQ,CAAC,CAAC;EACtD,IAAM3J,IAAI,GAAI0D,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAACgG,IAAI,GAAG,CAAC,IAAIC,QAAQ,GAAG,CAAC;EACzD,IAAMlG,EAAE,GAAMwG,IAAI,CAACG,GAAG,CAAC1G,KAAK,EAAEgG,IAAI,GAAGC,QAAQ,CAAC;EAC9C,IAAMU,EAAE,GAAM,SAARA,EAAEA,CAAOC,CAAS;IAAA,OAAKV,YAAY,CAACK,IAAI,CAACG,GAAG,CAACJ,KAAK,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEI,CAAC,CAAC,CAAC,CAAC;EAAA;EAE1E,IAAM3G,GAAG,GAAG/H,KAAK,CAAC2O,OAAO,CAAC,YAAM;IAC9B,IAAMC,EAAE,GAAGzG,mBAAmB,CAACC,MAAM,CAAC;IACtC,OAAO,UAAClF,CAAS;MAAA,OAAK0L,EAAE,CAACC,MAAM,CAAC3L,CAAC,CAAC;IAAA;EACpC,CAAC,EAAE,CAACkF,MAAM,CAAC,CAAC;EAEZ,oBACE,IAAAvH,WAAA,CAAAiO,IAAA,EAAC3O,IAAA,WAAG;IAAC4O,SAAS,EAAC,KAAK;IAAC,cAAY9G,MAAM,CAACN,QAAS;IAACqH,EAAE,EAAEpC,uBAAwB;IAAAqC,QAAA,gBAG5E,IAAApO,WAAA,CAAAqO,GAAA,EAAC/O,IAAA,WAAG;MAACgP,IAAI,EAAC,QAAQ;MAAC,aAAU,QAAQ;MAAC,eAAY,MAAM;MAACH,EAAE,EAAE9B,mBAAoB;MAAA+B,QAAA,EAAE5H,OAAO,GAAGY,MAAM,CAACZ,OAAO,GAAGY,MAAM,CAACL,OAAO,CAACxD,IAAI,EAAEyD,EAAE,EAAEC,KAAK,EAAEC,GAAG;IAAC,CAAM,CAAC,EACxJkG,gBAAgB,iBACf,IAAApN,WAAA,CAAAiO,IAAA,EAAC3O,IAAA,WAAG;MAAC6O,EAAE,EAAE3B,4BAA6B;MAAA4B,QAAA,gBACpC,IAAApO,WAAA,CAAAqO,GAAA;QAAAD,QAAA,EAAOhH,MAAM,CAACX;MAAW,CAAO,CAAC,eACjC,IAAAzG,WAAA,CAAAqO,GAAA,EAACxO,OAAA,WAAM;QAAC0O,IAAI,EAAC,OAAO;QAAChM,KAAK,EAAE2K,QAAS;QAACsB,QAAQ,EAAE,SAAAA,SAAChM,CAAC;UAAA,OAAK4K,gBAAgB,CAACzH,MAAM,CAACnD,CAAC,CAACgC,MAAM,CAACjC,KAAK,CAAC,CAAC;QAAA,CAAC;QAACkM,UAAU,EAAE;UAAE,YAAY,EAAErJ,MAAM,CAACgC,MAAM,CAACX,WAAW;QAAE,CAAE;QAAC0H,EAAE,EAAEtB,oBAAqB;QAAAuB,QAAA,EACjLd,SAAS,CAACtF,GAAG,CAAC,UAAC5F,CAAC;UAAA,oBAAK,IAAApC,WAAA,CAAAqO,GAAA,EAACvO,SAAA,WAAQ;YAASyC,KAAK,EAAEH,CAAE;YAAAgM,QAAA,EAAEhM;UAAC,GAAfA,CAA0B,CAAC;QAAA;MAAC,CAC3D,CAAC;IAAA,CACN,CACN,eACD,IAAApC,WAAA,CAAAiO,IAAA,EAAC3O,IAAA,WAAG;MAAC6O,EAAE,EAAE1B,uBAAwB;MAAA2B,QAAA,gBAC/B,IAAApO,WAAA,CAAAqO,GAAA,EAAC7O,WAAA,WAAU;QAAC+O,IAAI,EAAC,OAAO;QAACG,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMd,EAAE,CAAC,CAAC,CAAC;QAAA,CAAC;QAAQe,QAAQ,EAAE1B,IAAI,IAAI,CAAE;QAAK,cAAY7F,MAAM,CAACV,SAAU;QAAA0H,QAAA,eAAC,IAAApO,WAAA,CAAAqO,GAAA,EAAC1O,UAAA,WAAa;UAASuK,QAAQ,EAAC,OAAO;UAACiE,EAAE,EAAE5E;QAAmB,CAAE;MAAC,CAAY,CAAC,eAC5L,IAAAvJ,WAAA,CAAAqO,GAAA,EAAC7O,WAAA,WAAU;QAAC+O,IAAI,EAAC,OAAO;QAACG,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMd,EAAE,CAACX,IAAI,GAAG,CAAC,CAAC;QAAA,CAAC;QAAC0B,QAAQ,EAAE1B,IAAI,IAAI,CAAE;QAAK,cAAY7F,MAAM,CAACT,YAAa;QAAAyH,QAAA,eAAC,IAAApO,WAAA,CAAAqO,GAAA,EAAC5O,kBAAA,WAAqB;UAAEyK,QAAQ,EAAC,OAAO;UAACiE,EAAE,EAAE5E;QAAmB,CAAE;MAAC,CAAY,CAAC,eAChM,IAAAvJ,WAAA,CAAAiO,IAAA,EAAC3O,IAAA,WAAG;QAAC6O,EAAE,EAAEzB,qBAAsB;QAAA0B,QAAA,GAAEnB,IAAI,EAAC,KAAG,EAACM,KAAK;MAAA,CAAM,CAAC,eACtD,IAAAvN,WAAA,CAAAqO,GAAA,EAAC7O,WAAA,WAAU;QAAC+O,IAAI,EAAC,OAAO;QAACG,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMd,EAAE,CAACX,IAAI,GAAG,CAAC,CAAC;QAAA,CAAC;QAAC0B,QAAQ,EAAE1B,IAAI,IAAIM,KAAM;QAAC,cAAYnG,MAAM,CAACR,QAAS;QAAAwH,QAAA,eAAC,IAAApO,WAAA,CAAAqO,GAAA,EAAC3O,mBAAA,WAAsB;UAACwK,QAAQ,EAAC,OAAO;UAACiE,EAAE,EAAE5E;QAAmB,CAAE;MAAC,CAAY,CAAC,eAC5L,IAAAvJ,WAAA,CAAAqO,GAAA,EAAC7O,WAAA,WAAU;QAAC+O,IAAI,EAAC,OAAO;QAACG,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMd,EAAE,CAACL,KAAK,CAAC;QAAA,CAAC;QAAIoB,QAAQ,EAAE1B,IAAI,IAAIM,KAAM;QAAC,cAAYnG,MAAM,CAACP,QAAS;QAAAuH,QAAA,eAAC,IAAApO,WAAA,CAAAqO,GAAA,EAACzO,SAAA,WAAY;UAAUsK,QAAQ,EAAC,OAAO;UAACiE,EAAE,EAAE5E;QAAmB,CAAE;MAAC,CAAY,CAAC;IAAA,CACxL,CAAC;EAAA,CACH,CAAC;AAEV","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"_dataGridShared.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_KeyboardArrowLeft","_KeyboardArrowRight","_FirstPage","_LastPage","_Select","_MenuItem","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_PAGE_SIZES","exports","DEFAULT_MAX_BODY_HEIGHT","DEFAULT_LABELS","freeze","tableAria","selectAll","selectRow","id","actionsHeader","pagination","loading","rowsPerPage","firstPage","previousPage","nextPage","lastPage","navLabel","rangeOf","from","to","total","fmt","mergeLabels","labels","mergeLabelDict","makeNumberFormatter","locale","Intl","NumberFormat","applyColumnOrder","columns","columnOrder","length","byKey","Map","map","c","key","ordered","col","undefined","push","delete","values","columnsSignature","Array","isArray","join","useColumnsStabilityWarn","prevColumnsRef","useRef","warnedRef","useEffect","process","env","current","prevSig","nextSig","console","warn","PAGINATION_ICON_SX","transform","CONTAINER_SX","background","overflow","TABLE_BASE_SX","borderCollapse","borderSpacing","backgroundColor","color","fontWeight","fontSize","textTransform","letterSpacing","borderBottom","padding","whiteSpace","TABLE_BY_DENSITY","comfortable","compact","ROW_HOVER_SELECTED_SX","boxShadow","ROW_CLICKABLE_SX","cursor","outline","outlineOffset","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","width","position","top","zIndex","BODY_CHECKBOX_CELL_SX","HOVER_ONLY_CELL_SX","opacity","transition","ERROR_CELL_SX","ERROR_INNER_SX","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","PAGINATION_CONTAINER_SX","display","alignItems","flexWrap","gap","borderTop","PAGINATION_RANGE_SX","flex","fontVariantNumeric","PAGINATION_PAGESIZE_GROUP_SX","PAGINATION_NAV_GROUP_SX","PAGINATION_PAGE_OF_SX","minWidth","textAlign","PAGINATION_SELECT_SX","height","PAGINATION_BUTTON_SX","minHeight","Pagination","page","pageSize","onPageChange","onPageSizeChange","pageSizes","pages","Math","max","ceil","min","go","p","useMemo","nf","format","jsxs","component","sx","children","jsx","role","size","value","onChange","Number","target","inputProps","String","s","onClick","disabled"],"sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"sourcesContent":["/**\r\n * _dataGridShared — Portnet UI v2 (private)\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\r\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density, RowId } from \"../types/common\";\r\nimport type { DataGridLabels, DataGridPaginationLabels } from \"../types/datagrid\";\r\nimport { mergeLabels as mergeLabelDict } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Strips optionality AND an explicitly-declared `| undefined`.\r\n *\r\n * `Required<T>` is NOT sufficient here, and the difference is invisible until it\r\n * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.\r\n * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label\r\n * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of\r\n * the declared type and survives `Required<>`. The \"fully-resolved\" shapes below\r\n * silently stopped being resolved, and every renderer that read them without an\r\n * optional check became a type error (three of them).\r\n *\r\n * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what\r\n * `Required<>` produced BEFORE the optional props were widened — this restores\r\n * the original intent rather than changing it.\r\n */\r\ntype Concrete<T> = { [K in keyof T]-?: Exclude<T[K], undefined> };\r\n\r\n/**\r\n * Fully-resolved (all-present) label shapes. The public DataGridLabels /\r\n * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every\r\n * field optional). After mergeLabels every field is guaranteed present, so the\r\n * renderers (Pagination, DataGrid) read them without optional access.\r\n */\r\nexport type ResolvedDataGridPaginationLabels = Concrete<DataGridPaginationLabels>;\r\nexport type ResolvedDataGridLabels = Concrete<Omit<DataGridLabels, \"pagination\">> & {\r\n pagination: ResolvedDataGridPaginationLabels;\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZES = [25, 50, 100];\r\nexport const DEFAULT_MAX_BODY_HEIGHT = \"70vh\";\r\n\r\nexport const DEFAULT_LABELS: ResolvedDataGridLabels = Object.freeze({\r\n tableAria: \"Tableau\",\r\n selectAll: \"Tout sélectionner\",\r\n selectRow: (id: RowId) => `Sélectionner la ligne ${id}`,\r\n actionsHeader: \"Actions\",\r\n pagination: Object.freeze({\r\n loading: \"Chargement…\",\r\n rowsPerPage: \"Lignes par page\",\r\n firstPage: \"Première page\",\r\n previousPage: \"Page précédente\",\r\n nextPage: \"Page suivante\",\r\n lastPage: \"Dernière page\",\r\n navLabel: \"Pagination\",\r\n rangeOf: (from: number, to: number, total: number, fmt: (n: number) => string) => `${from}–${to} sur ${fmt(total)}`,\r\n }),\r\n});\r\n\r\nexport function mergeLabels(labels?: DataGridLabels): ResolvedDataGridLabels {\r\n if (!labels) return DEFAULT_LABELS;\r\n /*\r\n * Both levels go through the shared undefined-safe merge. A spread does not skip\r\n * explicit `undefined`, so the previous form — a bare object spread of the\r\n * overrides over the defaults — let a consumer passing `selectRow: undefined`\r\n * DELETE the default and crash the renderer. The old `|| {}` guarded the nested\r\n * `pagination` object against being undefined, but not its individual VALUES —\r\n * same hazard, one level down.\r\n *\r\n * The broken form is described rather than quoted, deliberately:\r\n * scripts/fix-label-merge.mjs is a text scan, and a verbatim copy here matched it\r\n * — so the codemod offered to rewrite this COMMENT. Same lesson KPICard already\r\n * records for the banned-patterns guard.\r\n *\r\n * `pagination` is merged at its OWN level, deliberately, rather than through a\r\n * recursive deep merge: two explicit levels can be read, whereas a recursive\r\n * helper hides how deep it goes and raises the question of what it does to\r\n * arrays. Convention for the whole library: a nested label dictionary is\r\n * merged at its own level.\r\n */\r\n return mergeLabelDict(DEFAULT_LABELS, {\r\n ...labels,\r\n pagination: mergeLabelDict(DEFAULT_LABELS.pagination, labels.pagination),\r\n });\r\n}\r\n\r\nexport function makeNumberFormatter(locale?: string): Intl.NumberFormat {\r\n try { return new Intl.NumberFormat(locale); }\r\n catch { return new Intl.NumberFormat(\"fr-FR\"); }\r\n}\r\n\r\nexport function applyColumnOrder<C extends { key: string }>(\r\n columns: C[],\r\n columnOrder: string[] | null | undefined\r\n): C[] {\r\n if (!columnOrder || columnOrder.length === 0) return columns;\r\n const byKey = new Map<string, C>(columns.map((c): [string, C] => [c.key, c]));\r\n const ordered: C[] = [];\r\n for (const key of columnOrder) {\r\n const col = byKey.get(key);\r\n if (col !== undefined) { ordered.push(col); byKey.delete(key); }\r\n }\r\n for (const col of byKey.values()) ordered.push(col);\r\n return ordered;\r\n}\r\n\r\nfunction columnsSignature(columns: unknown): string {\r\n if (!Array.isArray(columns)) return \"\";\r\n return (columns as unknown[])\r\n .map((c) => (c && typeof c === \"object\" ? (c as { key?: unknown }).key : c))\r\n .join(\"|\");\r\n}\r\n\r\nexport function useColumnsStabilityWarn(columns: unknown): void {\r\n const prevColumnsRef = React.useRef(columns);\r\n const warnedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n if (warnedRef.current) return;\r\n if (prevColumnsRef.current === columns) return;\r\n const prevSig = columnsSignature(prevColumnsRef.current);\r\n const nextSig = columnsSignature(columns);\r\n if (prevSig && prevSig === nextSig) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"[@portnet/ui v2] DataGrid received a new `columns` reference with identical column keys. Define columns outside render or wrap in useMemo.\");\r\n warnedRef.current = true;\r\n }\r\n prevColumnsRef.current = columns;\r\n });\r\n}\r\n\r\nexport const PAGINATION_ICON_SX = Object.freeze({ transform: \"scaleX(var(--pui-rtl-flip, 1))\" });\r\nexport const CONTAINER_SX = Object.freeze({ background: \"transparent\", overflow: \"hidden\" } satisfies SxProps<Theme>);\r\n\r\n/*\r\n * TABLE_BASE_SX — applied to the MUI <Table> via the sx prop.\r\n *\r\n * textTransform: \"none\" is INTENTIONALLY EXPLICIT here.\r\n *\r\n * Why not rely on the MUI theme (MuiTableCell.head.textTransform: \"none\")?\r\n *\r\n * Emotion injects sx-prop rules AFTER theme styleOverrides. Both rules\r\n * target <th> with equal specificity (1 class + 1 element). The last\r\n * one injected wins. sx wins over theme → the sx value is the truth.\r\n *\r\n * The old bug: this object had textTransform:\"uppercase\" which silently\r\n * overrode the theme's \"none\". The fix: keep explicit \"none\" here so\r\n * the correct value wins unconditionally, regardless of injection order.\r\n *\r\n * letterSpacing is reset to \"normal\" because all-caps text uses wider\r\n * tracking which looks wrong on title-case column headers.\r\n */\r\nconst TABLE_BASE_SX = Object.freeze({\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n \"& thead th\": {\r\n backgroundColor: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-xs)\",\r\n textTransform: \"none\", // EXPLICIT — beats emotion injection order\r\n letterSpacing: \"normal\", // reset all-caps tracking\r\n borderBottom: \"1px solid var(--border)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n \"& tbody td\": {\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const TABLE_BY_DENSITY: Record<Density, SxProps<Theme>> = Object.freeze({\r\n comfortable: TABLE_BASE_SX,\r\n compact: Object.freeze({\r\n ...TABLE_BASE_SX,\r\n \"& tbody td\": { ...TABLE_BASE_SX[\"& tbody td\"], padding: \"var(--s-2) var(--s-4)\" },\r\n } satisfies SxProps<Theme>),\r\n});\r\n\r\nconst ROW_HOVER_SELECTED_SX = Object.freeze({\r\n \"&:nth-of-type(even)\": { backgroundColor: \"var(--bg-subtle)\" },\r\n \"&:hover\": { backgroundColor: \"var(--bg-hover)\" },\r\n \"&[data-selected]\": { backgroundColor: \"var(--accent-soft)\" },\r\n \"&[data-active]\": {\r\n backgroundColor: \"var(--accent-soft)\",\r\n \"& > td:first-of-type\": { boxShadow: \"inset calc(3px * var(--pui-rtl-flip, 1)) 0 0 var(--accent)\" },\r\n },\r\n});\r\n\r\nexport const ROW_CLICKABLE_SX = Object.freeze({\r\n ...ROW_HOVER_SELECTED_SX,\r\n cursor: \"pointer\",\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset-inset)\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const ROW_STATIC_SX = Object.freeze({ ...ROW_HOVER_SELECTED_SX, cursor: \"default\" } satisfies SxProps<Theme>);\r\n\r\nexport const HEADER_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\", position: \"sticky\", top: 0, zIndex: 2 } satisfies SxProps<Theme>);\r\nexport const BODY_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\" });\r\n\r\nexport const HOVER_ONLY_CELL_SX = Object.freeze({\r\n opacity: 0,\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n \"tr:hover &, tr:focus-within &\": { opacity: 1 },\r\n \"@media (pointer: coarse)\": { opacity: 1 },\r\n});\r\n\r\nexport const ERROR_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"none\" });\r\nexport const ERROR_INNER_SX = Object.freeze({ padding: \"var(--s-4)\" });\r\n\r\nexport const FILLER_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"1px solid var(--border)\" });\r\nexport const FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0, position: \"sticky\", top: 0, zIndex: 1,\r\n background: \"var(--bg-subtle)\", borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Pagination ─────────────────────────────────────────────────── */\r\n\r\nconst PAGINATION_CONTAINER_SX = Object.freeze({\r\n display: \"flex\", alignItems: \"center\",\r\n // R-RS / WCAG 1.4.10 — the control groups (range / page-size / nav)\r\n // must wrap onto extra lines on narrow viewports. Their combined fixed\r\n // width (~400px+) exceeds a 320–375px phone, so without flexWrap the\r\n // bar overflowed its container and pushed the nav buttons off-screen.\r\n // rowGap (s2) keeps wrapped rows tight; columnGap (s4) is the original\r\n // inter-group spacing on a single row.\r\n flexWrap: \"wrap\", gap: \"var(--s-2) var(--s-4)\",\r\n padding: \"var(--s-2) var(--s-4)\", borderTop: \"1px solid var(--border)\",\r\n background: \"var(--surface)\", fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PAGINATION_RANGE_SX = Object.freeze({ flex: 1, fontVariantNumeric: \"tabular-nums\" });\r\nconst PAGINATION_PAGESIZE_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_NAV_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_PAGE_OF_SX = Object.freeze({ minWidth: 56, textAlign: \"center\", fontVariantNumeric: \"tabular-nums\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_SELECT_SX = Object.freeze({ fontSize: \"var(--text-xs)\", height: 28 });\r\n\r\n/**\r\n * Cible tactile des quatre boutons de navigation (R-7.4 / WCAG 2.5.5).\r\n *\r\n * `tokens/density` énonce la règle : « Icon-only buttons MUST set\r\n * min-width/min-height to `tactileMin` ». Ces quatre-là étaient des\r\n * `IconButton size=\"small\"` sans plancher — environ 34 px, dix de moins que le\r\n * minimum, dans la barre de pagination de CHAQUE liste du portefeuille.\r\n *\r\n * `min-*` et non `width`/`height` : la zone d'appui grandit, le dessin de\r\n * l'icône ne change pas. Le voisin `HEADER_CHECKBOX_CELL_SX` lit déjà\r\n * `var(--tactile-min)` — même source, même variable.\r\n *\r\n * >>> RESTE À ARBITRER : le sélecteur « lignes par page » juste à côté porte\r\n * >>> `height: 28`. Pour lui, la boîte visuelle EST la zone d'appui, donc la\r\n * >>> remonter à 44 px change le dessin de la barre : c'est une décision de\r\n * >>> design et non une correction de défaut, et elle ne se prend pas dans un\r\n * >>> commit d'accessibilité. Signalée ici pour qu'elle ne se perde pas. <<<\r\n */\r\nconst PAGINATION_BUTTON_SX = Object.freeze({\r\n minWidth: \"var(--tactile-min)\",\r\n minHeight: \"var(--tactile-min)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nexport interface PaginationProps {\r\n page: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange?: ((pageSize: number) => void) | undefined;\r\n pageSizes?: number[] | undefined;\r\n loading?: boolean | undefined;\r\n locale?: string | undefined;\r\n labels: ResolvedDataGridPaginationLabels;\r\n}\r\n\r\nexport function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes = DEFAULT_PAGE_SIZES, loading, locale, labels }: PaginationProps) {\r\n const pages = Math.max(1, Math.ceil(total / pageSize));\r\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\r\n const to = Math.min(total, page * pageSize);\r\n const go = (p: number) => onPageChange(Math.min(pages, Math.max(1, p)));\r\n\r\n const fmt = React.useMemo(() => {\r\n const nf = makeNumberFormatter(locale);\r\n return (n: number) => nf.format(n);\r\n }, [locale]);\r\n\r\n return (\r\n <Box component=\"nav\" aria-label={labels.navLabel} sx={PAGINATION_CONTAINER_SX}>\r\n {/* PAGE-2 — polite, atomic live region so SR users hear the position\r\n change (\"1–25 sur 100\" → \"26–50 sur 100\") as they page. */}\r\n <Box role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" sx={PAGINATION_RANGE_SX}>{loading ? labels.loading : labels.rangeOf(from, to, total, fmt)}</Box>\r\n {onPageSizeChange && (\r\n <Box sx={PAGINATION_PAGESIZE_GROUP_SX}>\r\n <span>{labels.rowsPerPage}</span>\r\n <Select size=\"small\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} inputProps={{ \"aria-label\": String(labels.rowsPerPage) }} sx={PAGINATION_SELECT_SX}>\r\n {pageSizes.map((s) => <MenuItem key={s} value={s}>{s}</MenuItem>)}\r\n </Select>\r\n </Box>\r\n )}\r\n <Box sx={PAGINATION_NAV_GROUP_SX}>\r\n <IconButton size=\"small\" onClick={() => go(1)} disabled={page <= 1} aria-label={labels.firstPage} sx={PAGINATION_BUTTON_SX}><FirstPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(page - 1)} disabled={page <= 1} aria-label={labels.previousPage} sx={PAGINATION_BUTTON_SX}><KeyboardArrowLeftIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <Box sx={PAGINATION_PAGE_OF_SX}>{page} / {pages}</Box>\r\n <IconButton size=\"small\" onClick={() => go(page + 1)} disabled={page >= pages} aria-label={labels.nextPage} sx={PAGINATION_BUTTON_SX}><KeyboardArrowRightIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(pages)} disabled={page >= pages} aria-label={labels.lastPage} sx={PAGINATION_BUTTON_SX}><LastPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.coerceToDate = void 0;
|
|
7
7
|
exports.serialiseDate = serialiseDate;
|
|
8
8
|
var _moment = _interopRequireDefault(require("moment"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
10
|
/**
|
|
12
11
|
* _pickerSerialisation — lecture / ecriture partagees des ponts Formik de date.
|
|
13
12
|
*
|
|
@@ -44,23 +43,22 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
44
43
|
* meilleure approximation de moment — une date absente est recuperable, une
|
|
45
44
|
* date fausse de deux mois ne l'est pas.
|
|
46
45
|
*/
|
|
47
|
-
|
|
46
|
+
const coerceToDate = (raw, outputFormat) => {
|
|
48
47
|
if (raw == null || raw === "") return null;
|
|
49
48
|
if (raw instanceof Date) return raw;
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return isNaN(_d === null || _d === void 0 ? void 0 : (_d$getTime = _d.getTime) === null || _d$getTime === void 0 ? void 0 : _d$getTime.call(_d)) ? null : _d;
|
|
49
|
+
if (typeof raw === "object" && typeof raw.toDate === "function") {
|
|
50
|
+
const d = raw.toDate();
|
|
51
|
+
return isNaN(d?.getTime?.()) ? null : d;
|
|
54
52
|
}
|
|
55
53
|
/* Garde sur `typeof raw === "string"` : un horodatage numerique garde le
|
|
56
54
|
* chemin `new Date(number)`, `moment(number, format)` n'ayant pas de sens.
|
|
57
55
|
* "iso" est exclu : ce n'est pas un jeton moment, et `new Date(isoString)`
|
|
58
56
|
* est deja correct. */
|
|
59
57
|
if (typeof raw === "string" && outputFormat !== undefined && outputFormat !== "iso") {
|
|
60
|
-
|
|
58
|
+
const parsed = (0, _moment.default)(raw, outputFormat, true);
|
|
61
59
|
return parsed.isValid() ? parsed.toDate() : null;
|
|
62
60
|
}
|
|
63
|
-
|
|
61
|
+
const d = new Date(raw);
|
|
64
62
|
return isNaN(d.getTime()) ? null : d;
|
|
65
63
|
};
|
|
66
64
|
|
|
@@ -70,12 +68,13 @@ var coerceToDate = exports.coerceToDate = function coerceToDate(raw, outputForma
|
|
|
70
68
|
* "iso" -> `Date.toISOString()`
|
|
71
69
|
* toute autre chaine -> `moment(date).format(outputFormat)`
|
|
72
70
|
*/
|
|
71
|
+
exports.coerceToDate = coerceToDate;
|
|
73
72
|
function serialiseDate(date, outputFormat) {
|
|
74
73
|
if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
|
|
75
74
|
return outputFormat ? "" : null;
|
|
76
75
|
}
|
|
77
76
|
if (!outputFormat) return date;
|
|
78
77
|
if (outputFormat === "iso") return date.toISOString();
|
|
79
|
-
return (0, _moment
|
|
78
|
+
return (0, _moment.default)(date).format(outputFormat);
|
|
80
79
|
}
|
|
81
80
|
//# sourceMappingURL=_pickerSerialisation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_pickerSerialisation.js","names":["_moment","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"_pickerSerialisation.js","names":["_moment","_interopRequireDefault","require","e","__esModule","default","coerceToDate","raw","outputFormat","Date","toDate","d","isNaN","getTime","undefined","parsed","moment","isValid","exports","serialiseDate","date","toISOString","format"],"sources":["../../../src/lib/v2/patterns/_pickerSerialisation.ts"],"sourcesContent":["import moment from \"moment\";\r\n\r\n/**\r\n * _pickerSerialisation — lecture / ecriture partagees des ponts Formik de date.\r\n *\r\n * ── POURQUOI CE MODULE EXISTE ────────────────────────────────────────\r\n *\r\n * `FormikDatePicker` portait ces deux fonctions en prive. L'arrivee d'un\r\n * SECOND pont (`FormikDateTimePicker`, gap G-E) posait le choix : les recopier,\r\n * ou les partager.\r\n *\r\n * Les recopier aurait reproduit exactement la situation que la note S-03 de\r\n * `FormikDatePicker` raconte. Rappel de ce qu'elle dit : ce pont serialisait\r\n * VERS moment mais relisait DEPUIS `new Date(raw)`, en ignorant\r\n * `outputFormat`. L'asymetrie corrompait silencieusement tout format non ISO —\r\n * `new Date(\"31-12-2026\")` donne Invalid Date, `new Date(\"05-03-2026\")` donne\r\n * le 3 mai au lieu du 5 mars. Le chemin d'ECRITURE fonctionnait, donc un\r\n * formulaire rempli puis soumis se comportait correctement : le degat\r\n * n'apparaissait qu'a la RELECTURE, c'est-a-dire en modification. Un module a\r\n * livre ce defaut pendant sept lots sous un typecheck strict.\r\n *\r\n * Une asymetrie de ce genre entre DEUX ponts serait encore moins visible : ils\r\n * se ressemblent, personne ne les compare, et chacun a l'air correct\r\n * isolement. La seule garantie est qu'il n'y ait qu'un exemplaire du couple\r\n * lecture / ecriture.\r\n *\r\n * Module INTERNE : non exporte par la surface publique (prefixe `_`).\r\n */\r\n\r\n/**\r\n * Relit une valeur stockee par Formik vers un `Date`.\r\n *\r\n * `outputFormat` est passe pour que la lecture soit SYMETRIQUE de\r\n * `serialiseDate` : on parse avec le format qui a servi a ecrire, en mode\r\n * STRICT. Une valeur stockee qui ne correspond pas rend `null` plutot que la\r\n * meilleure approximation de moment — une date absente est recuperable, une\r\n * date fausse de deux mois ne l'est pas.\r\n */\r\nexport const coerceToDate = (\r\n raw: unknown,\r\n outputFormat?: string\r\n): Date | null => {\r\n if (raw == null || raw === \"\") return null;\r\n if (raw instanceof Date) return raw;\r\n if (\r\n typeof raw === \"object\" &&\r\n typeof (raw as { toDate?: () => Date }).toDate === \"function\"\r\n ) {\r\n const d = (raw as { toDate: () => Date }).toDate();\r\n return isNaN(d?.getTime?.()) ? null : d;\r\n }\r\n /* Garde sur `typeof raw === \"string\"` : un horodatage numerique garde le\r\n * chemin `new Date(number)`, `moment(number, format)` n'ayant pas de sens.\r\n * \"iso\" est exclu : ce n'est pas un jeton moment, et `new Date(isoString)`\r\n * est deja correct. */\r\n if (\r\n typeof raw === \"string\" &&\r\n outputFormat !== undefined &&\r\n outputFormat !== \"iso\"\r\n ) {\r\n const parsed = moment(raw, outputFormat, true);\r\n return parsed.isValid() ? parsed.toDate() : null;\r\n }\r\n const d = new Date(raw as string | number);\r\n return isNaN(d.getTime()) ? null : d;\r\n};\r\n\r\n/**\r\n * Serialise un `Date` vers le format demande.\r\n * undefined -> rend le `Date` tel quel (defaut, compatible)\r\n * \"iso\" -> `Date.toISOString()`\r\n * toute autre chaine -> `moment(date).format(outputFormat)`\r\n */\r\nexport function serialiseDate(\r\n date: Date | null,\r\n outputFormat: string | undefined\r\n): Date | string | null {\r\n if (!date || !(date instanceof Date) || isNaN(date.getTime())) {\r\n return outputFormat ? \"\" : null;\r\n }\r\n if (!outputFormat) return date;\r\n if (outputFormat === \"iso\") return date.toISOString();\r\n return moment(date).format(outputFormat);\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,YAAY,GAAGA,CAC1BC,GAAY,EACZC,YAAqB,KACL;EAChB,IAAID,GAAG,IAAI,IAAI,IAAIA,GAAG,KAAK,EAAE,EAAE,OAAO,IAAI;EAC1C,IAAIA,GAAG,YAAYE,IAAI,EAAE,OAAOF,GAAG;EACnC,IACE,OAAOA,GAAG,KAAK,QAAQ,IACvB,OAAQA,GAAG,CAA6BG,MAAM,KAAK,UAAU,EAC7D;IACA,MAAMC,CAAC,GAAIJ,GAAG,CAA4BG,MAAM,CAAC,CAAC;IAClD,OAAOE,KAAK,CAACD,CAAC,EAAEE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,GAAGF,CAAC;EACzC;EACA;AACF;AACA;AACA;EACE,IACE,OAAOJ,GAAG,KAAK,QAAQ,IACvBC,YAAY,KAAKM,SAAS,IAC1BN,YAAY,KAAK,KAAK,EACtB;IACA,MAAMO,MAAM,GAAG,IAAAC,eAAM,EAACT,GAAG,EAAEC,YAAY,EAAE,IAAI,CAAC;IAC9C,OAAOO,MAAM,CAACE,OAAO,CAAC,CAAC,GAAGF,MAAM,CAACL,MAAM,CAAC,CAAC,GAAG,IAAI;EAClD;EACA,MAAMC,CAAC,GAAG,IAAIF,IAAI,CAACF,GAAsB,CAAC;EAC1C,OAAOK,KAAK,CAACD,CAAC,CAACE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGF,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAO,OAAA,CAAAZ,YAAA,GAAAA,YAAA;AAMO,SAASa,aAAaA,CAC3BC,IAAiB,EACjBZ,YAAgC,EACV;EACtB,IAAI,CAACY,IAAI,IAAI,EAAEA,IAAI,YAAYX,IAAI,CAAC,IAAIG,KAAK,CAACQ,IAAI,CAACP,OAAO,CAAC,CAAC,CAAC,EAAE;IAC7D,OAAOL,YAAY,GAAG,EAAE,GAAG,IAAI;EACjC;EACA,IAAI,CAACA,YAAY,EAAE,OAAOY,IAAI;EAC9B,IAAIZ,YAAY,KAAK,KAAK,EAAE,OAAOY,IAAI,CAACC,WAAW,CAAC,CAAC;EACrD,OAAO,IAAAL,eAAM,EAACI,IAAI,CAAC,CAACE,MAAM,CAACd,YAAY,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -4,13 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.applySort = applySort;
|
|
7
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
8
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
7
|
/**
|
|
15
8
|
* Internal: locale-correct multi-sort for DataGrid / useSortedRows.
|
|
16
9
|
*
|
|
@@ -38,18 +31,18 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
38
31
|
* "numeric: true" makes "Item 10" sort AFTER "Item 2" (natural order),
|
|
39
32
|
* which the prior char-code comparison got backwards.
|
|
40
33
|
*/
|
|
41
|
-
|
|
34
|
+
const COLLATOR_CACHE = new Map();
|
|
42
35
|
function getCollator(locale) {
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
const key = locale || "fr-FR";
|
|
37
|
+
const cached = COLLATOR_CACHE.get(key);
|
|
45
38
|
if (cached) return cached;
|
|
46
|
-
|
|
39
|
+
let collator;
|
|
47
40
|
try {
|
|
48
41
|
collator = new Intl.Collator(key, {
|
|
49
42
|
sensitivity: "accent",
|
|
50
43
|
numeric: true
|
|
51
44
|
});
|
|
52
|
-
} catch
|
|
45
|
+
} catch {
|
|
53
46
|
// Invalid BCP-47 tag — fall back to fr-FR (matches the rest of v2's
|
|
54
47
|
// graceful-locale-fallback contract from Batch 2).
|
|
55
48
|
collator = new Intl.Collator("fr-FR", {
|
|
@@ -70,8 +63,8 @@ function getCollator(locale) {
|
|
|
70
63
|
* applySort empty-string behaviour: "" < any non-empty string).
|
|
71
64
|
*/
|
|
72
65
|
function compareValues(av, bv, collator) {
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
const aN = av == null || av === "";
|
|
67
|
+
const bN = bv == null || bv === "";
|
|
75
68
|
if (aN && bN) return 0;
|
|
76
69
|
if (aN) return -1;
|
|
77
70
|
if (bN) return 1;
|
|
@@ -92,25 +85,16 @@ function compareValues(av, bv, collator) {
|
|
|
92
85
|
* Returns a NEW sorted array (input is not mutated); the original array
|
|
93
86
|
* reference is returned untouched when there is nothing to sort.
|
|
94
87
|
*/
|
|
95
|
-
function applySort(rows, sort) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
key = _step$value.key,
|
|
106
|
-
dir = _step$value.dir;
|
|
107
|
-
var cmp = compareValues(a[key], b[key], collator);
|
|
108
|
-
if (cmp !== 0) return dir === "asc" ? cmp : -cmp;
|
|
109
|
-
}
|
|
110
|
-
} catch (err) {
|
|
111
|
-
_iterator.e(err);
|
|
112
|
-
} finally {
|
|
113
|
-
_iterator.f();
|
|
88
|
+
function applySort(rows, sort, options = {}) {
|
|
89
|
+
if (!sort?.length) return rows;
|
|
90
|
+
const collator = getCollator(options.locale);
|
|
91
|
+
return [...rows].sort((a, b) => {
|
|
92
|
+
for (const {
|
|
93
|
+
key,
|
|
94
|
+
dir
|
|
95
|
+
} of sort) {
|
|
96
|
+
const cmp = compareValues(a[key], b[key], collator);
|
|
97
|
+
if (cmp !== 0) return dir === "asc" ? cmp : -cmp;
|
|
114
98
|
}
|
|
115
99
|
return 0;
|
|
116
100
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_sort.js","names":["COLLATOR_CACHE","Map","getCollator","locale","key","cached","get","collator","Intl","Collator","sensitivity","numeric","
|
|
1
|
+
{"version":3,"file":"_sort.js","names":["COLLATOR_CACHE","Map","getCollator","locale","key","cached","get","collator","Intl","Collator","sensitivity","numeric","set","compareValues","av","bv","aN","bN","Date","getTime","compare","String","applySort","rows","sort","options","length","a","b","dir","cmp"],"sources":["../../../src/lib/v2/patterns/_sort.ts"],"sourcesContent":["/**\r\n * Internal: locale-correct multi-sort for DataGrid / useSortedRows.\r\n *\r\n * Extracted verbatim from SortableHeader (Batch 12 / C1) so the sort logic can\r\n * be shared by the SortableHeader pattern (which re-exports `applySort`) and the\r\n * useSortedRows hook — without a hook → component import (a .ts hook importing a\r\n * still-.js component fails build:types under allowJs:false) and without\r\n * duplicating the collation logic. Behaviour is unchanged.\r\n *\r\n * NOT part of the public surface: `applySort` is re-exported from SortableHeader\r\n * (the public name / call site); getCollator + compareValues + the cache are\r\n * internal implementation details that were never exported.\r\n */\r\nimport type { SortDescriptor } from \"../types/common\";\r\nimport type { ApplySortOptions } from \"../types/datagrid\";\r\n\r\n/**\r\n * Module-level cache of Intl.Collator instances keyed by locale tag.\r\n * Collator construction allocates internal locale data (≈100 µs cold)\r\n * — caching matters for hosts that re-sort on every render.\r\n *\r\n * Using \"accent\" sensitivity preserves the prior toLowerCase-based\r\n * behaviour (case-insensitive) while honouring proper locale collation:\r\n * - FR: É sorts as if E (between Élise and Étienne, not after Z).\r\n * - AR: combining marks fold correctly.\r\n * - DE: Umlauts (ä) sort with their base letter.\r\n * \"numeric: true\" makes \"Item 10\" sort AFTER \"Item 2\" (natural order),\r\n * which the prior char-code comparison got backwards.\r\n */\r\nconst COLLATOR_CACHE = new Map<string, Intl.Collator>();\r\n\r\nfunction getCollator(locale?: string): Intl.Collator {\r\n const key = locale || \"fr-FR\";\r\n const cached = COLLATOR_CACHE.get(key);\r\n if (cached) return cached;\r\n let collator: Intl.Collator;\r\n try {\r\n collator = new Intl.Collator(key, { sensitivity: \"accent\", numeric: true });\r\n } catch {\r\n // Invalid BCP-47 tag — fall back to fr-FR (matches the rest of v2's\r\n // graceful-locale-fallback contract from Batch 2).\r\n collator = new Intl.Collator(\"fr-FR\", { sensitivity: \"accent\", numeric: true });\r\n }\r\n COLLATOR_CACHE.set(key, collator);\r\n return collator;\r\n}\r\n\r\n/**\r\n * Compare two cell values with locale-aware semantics. Routes through\r\n * the Collator only for strings or mixed types; numeric / Date pairs\r\n * use native operators (faster + exact).\r\n *\r\n * Null / undefined / empty-string sort FIRST (preserves the prior\r\n * applySort empty-string behaviour: \"\" < any non-empty string).\r\n */\r\nfunction compareValues(av: unknown, bv: unknown, collator: Intl.Collator): number {\r\n const aN = av == null || av === \"\";\r\n const bN = bv == null || bv === \"\";\r\n if (aN && bN) return 0;\r\n if (aN) return -1;\r\n if (bN) return 1;\r\n\r\n if (typeof av === \"number\" && typeof bv === \"number\") {\r\n return av - bv;\r\n }\r\n if (av instanceof Date && bv instanceof Date) {\r\n return av.getTime() - bv.getTime();\r\n }\r\n // String pair — or mixed types coerced to strings. The Collator handles\r\n // both cases identically and respects `numeric: true` so digit runs\r\n // inside a label compare numerically.\r\n return collator.compare(String(av), String(bv));\r\n}\r\n\r\n/**\r\n * Pure helper — applies a multi-sort state to an array of rows.\r\n * Returns a NEW sorted array (input is not mutated); the original array\r\n * reference is returned untouched when there is nothing to sort.\r\n */\r\nexport function applySort<T extends object>(\r\n rows: T[],\r\n sort: readonly SortDescriptor[] | null | undefined,\r\n options: ApplySortOptions = {},\r\n): T[] {\r\n if (!sort?.length) return rows;\r\n const collator = getCollator(options.locale);\r\n return [...rows].sort((a, b) => {\r\n for (const { key, dir } of sort) {\r\n const cmp = compareValues(\r\n (a as Record<string, unknown>)[key],\r\n (b as Record<string, unknown>)[key],\r\n collator,\r\n );\r\n if (cmp !== 0) return dir === \"asc\" ? cmp : -cmp;\r\n }\r\n return 0;\r\n });\r\n}\r\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,IAAIC,GAAG,CAAwB,CAAC;AAEvD,SAASC,WAAWA,CAACC,MAAe,EAAiB;EACnD,MAAMC,GAAG,GAAGD,MAAM,IAAI,OAAO;EAC7B,MAAME,MAAM,GAAGL,cAAc,CAACM,GAAG,CAACF,GAAG,CAAC;EACtC,IAAIC,MAAM,EAAE,OAAOA,MAAM;EACzB,IAAIE,QAAuB;EAC3B,IAAI;IACFA,QAAQ,GAAG,IAAIC,IAAI,CAACC,QAAQ,CAACL,GAAG,EAAE;MAAEM,WAAW,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EAC7E,CAAC,CAAC,MAAM;IACN;IACA;IACAJ,QAAQ,GAAG,IAAIC,IAAI,CAACC,QAAQ,CAAC,OAAO,EAAE;MAAEC,WAAW,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACjF;EACAX,cAAc,CAACY,GAAG,CAACR,GAAG,EAAEG,QAAQ,CAAC;EACjC,OAAOA,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,aAAaA,CAACC,EAAW,EAAEC,EAAW,EAAER,QAAuB,EAAU;EAChF,MAAMS,EAAE,GAAGF,EAAE,IAAI,IAAI,IAAIA,EAAE,KAAK,EAAE;EAClC,MAAMG,EAAE,GAAGF,EAAE,IAAI,IAAI,IAAIA,EAAE,KAAK,EAAE;EAClC,IAAIC,EAAE,IAAIC,EAAE,EAAE,OAAO,CAAC;EACtB,IAAID,EAAE,EAAE,OAAO,CAAC,CAAC;EACjB,IAAIC,EAAE,EAAE,OAAO,CAAC;EAEhB,IAAI,OAAOH,EAAE,KAAK,QAAQ,IAAI,OAAOC,EAAE,KAAK,QAAQ,EAAE;IACpD,OAAOD,EAAE,GAAGC,EAAE;EAChB;EACA,IAAID,EAAE,YAAYI,IAAI,IAAIH,EAAE,YAAYG,IAAI,EAAE;IAC5C,OAAOJ,EAAE,CAACK,OAAO,CAAC,CAAC,GAAGJ,EAAE,CAACI,OAAO,CAAC,CAAC;EACpC;EACA;EACA;EACA;EACA,OAAOZ,QAAQ,CAACa,OAAO,CAACC,MAAM,CAACP,EAAE,CAAC,EAAEO,MAAM,CAACN,EAAE,CAAC,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASO,SAASA,CACvBC,IAAS,EACTC,IAAkD,EAClDC,OAAyB,GAAG,CAAC,CAAC,EACzB;EACL,IAAI,CAACD,IAAI,EAAEE,MAAM,EAAE,OAAOH,IAAI;EAC9B,MAAMhB,QAAQ,GAAGL,WAAW,CAACuB,OAAO,CAACtB,MAAM,CAAC;EAC5C,OAAO,CAAC,GAAGoB,IAAI,CAAC,CAACC,IAAI,CAAC,CAACG,CAAC,EAAEC,CAAC,KAAK;IAC9B,KAAK,MAAM;MAAExB,GAAG;MAAEyB;IAAI,CAAC,IAAIL,IAAI,EAAE;MAC/B,MAAMM,GAAG,GAAGjB,aAAa,CACtBc,CAAC,CAA6BvB,GAAG,CAAC,EAClCwB,CAAC,CAA6BxB,GAAG,CAAC,EACnCG,QACF,CAAC;MACD,IAAIuB,GAAG,KAAK,CAAC,EAAE,OAAOD,GAAG,KAAK,KAAK,GAAGC,GAAG,GAAG,CAACA,GAAG;IAClD;IACA,OAAO,CAAC;EACV,CAAC,CAAC;AACJ","ignoreList":[]}
|