@portnet/ui 5.0.28 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +524 -0
- package/README.md +101 -38
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +174 -203
- package/dist/index.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +337 -0
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/v2/__tests__/apiError.test.js +182 -0
- package/dist/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/v2/__tests__/banned-patterns.test.js +272 -0
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +225 -0
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/v2/__tests__/cssVariables.test.js +158 -0
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +153 -0
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/v2/__tests__/locale-fallback.test.js +111 -0
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +517 -0
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/v2/components/Accordion.d.ts +56 -0
- package/dist/v2/components/Accordion.d.ts.map +1 -0
- package/dist/v2/components/Accordion.js +238 -0
- package/dist/v2/components/Accordion.js.map +1 -0
- package/dist/v2/components/ActionStrip.d.ts +67 -0
- package/dist/v2/components/ActionStrip.d.ts.map +1 -0
- package/dist/v2/components/ActionStrip.js +154 -0
- package/dist/v2/components/ActionStrip.js.map +1 -0
- package/dist/v2/components/Banner.d.ts +49 -0
- package/dist/v2/components/Banner.d.ts.map +1 -0
- package/dist/v2/components/Banner.js +183 -0
- package/dist/v2/components/Banner.js.map +1 -0
- package/dist/v2/components/Busy.d.ts +18 -0
- package/dist/v2/components/Busy.d.ts.map +1 -0
- package/dist/v2/components/Busy.js +104 -0
- package/dist/v2/components/Busy.js.map +1 -0
- package/dist/v2/components/Button.d.ts +36 -0
- package/dist/v2/components/Button.d.ts.map +1 -0
- package/dist/v2/components/Button.js +122 -0
- package/dist/v2/components/Button.js.map +1 -0
- package/dist/v2/components/CategoryTag.d.ts +45 -0
- package/dist/v2/components/CategoryTag.d.ts.map +1 -0
- package/dist/v2/components/CategoryTag.js +89 -0
- package/dist/v2/components/CategoryTag.js.map +1 -0
- package/dist/v2/components/Checkbox.d.ts +59 -0
- package/dist/v2/components/Checkbox.d.ts.map +1 -0
- package/dist/v2/components/Checkbox.js +134 -0
- package/dist/v2/components/Checkbox.js.map +1 -0
- package/dist/v2/components/Chip.d.ts +48 -0
- package/dist/v2/components/Chip.d.ts.map +1 -0
- package/dist/v2/components/Chip.js +131 -0
- package/dist/v2/components/Chip.js.map +1 -0
- package/dist/v2/components/Combobox.d.ts +134 -0
- package/dist/v2/components/Combobox.d.ts.map +1 -0
- package/dist/v2/components/Combobox.js +399 -0
- package/dist/v2/components/Combobox.js.map +1 -0
- package/dist/v2/components/CommandPalette.d.ts +36 -0
- package/dist/v2/components/CommandPalette.d.ts.map +1 -0
- package/dist/v2/components/CommandPalette.js +672 -0
- package/dist/v2/components/CommandPalette.js.map +1 -0
- package/dist/v2/components/ConfirmDialog.d.ts +23 -0
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/v2/components/ConfirmDialog.js +150 -0
- package/dist/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/v2/components/DatePicker.d.ts +21 -0
- package/dist/v2/components/DatePicker.d.ts.map +1 -0
- package/dist/v2/components/DatePicker.js +207 -0
- package/dist/v2/components/DatePicker.js.map +1 -0
- package/dist/v2/components/DateRangePicker.d.ts +81 -0
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -0
- package/dist/v2/components/DateRangePicker.js +295 -0
- package/dist/v2/components/DateRangePicker.js.map +1 -0
- package/dist/v2/components/DateTimePicker.d.ts +21 -0
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -0
- package/dist/v2/components/DateTimePicker.js +189 -0
- package/dist/v2/components/DateTimePicker.js.map +1 -0
- package/dist/v2/components/Drawer.d.ts +34 -0
- package/dist/v2/components/Drawer.d.ts.map +1 -0
- package/dist/v2/components/Drawer.js +339 -0
- package/dist/v2/components/Drawer.js.map +1 -0
- package/dist/v2/components/Dropzone.d.ts +150 -0
- package/dist/v2/components/Dropzone.d.ts.map +1 -0
- package/dist/v2/components/Dropzone.js +539 -0
- package/dist/v2/components/Dropzone.js.map +1 -0
- package/dist/v2/components/EmptyState.d.ts +36 -0
- package/dist/v2/components/EmptyState.d.ts.map +1 -0
- package/dist/v2/components/EmptyState.js +112 -0
- package/dist/v2/components/EmptyState.js.map +1 -0
- package/dist/v2/components/FavoriteToggle.d.ts +22 -0
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -0
- package/dist/v2/components/FavoriteToggle.js +134 -0
- package/dist/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/v2/components/Field.d.ts +58 -0
- package/dist/v2/components/Field.d.ts.map +1 -0
- package/dist/v2/components/Field.js +186 -0
- package/dist/v2/components/Field.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +54 -0
- package/dist/v2/components/FieldHelp.d.ts.map +1 -0
- package/dist/v2/components/FieldHelp.js +209 -0
- package/dist/v2/components/FieldHelp.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +35 -0
- package/dist/v2/components/FilterTab.d.ts.map +1 -0
- package/dist/v2/components/FilterTab.js +144 -0
- package/dist/v2/components/FilterTab.js.map +1 -0
- package/dist/v2/components/ForbiddenPage.d.ts +40 -0
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -0
- package/dist/v2/components/ForbiddenPage.js +81 -0
- package/dist/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/v2/components/FormGrid.d.ts +76 -0
- package/dist/v2/components/FormGrid.d.ts.map +1 -0
- package/dist/v2/components/FormGrid.js +177 -0
- package/dist/v2/components/FormGrid.js.map +1 -0
- package/dist/v2/components/FormikDisplay.d.ts +38 -0
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -0
- package/dist/v2/components/FormikDisplay.js +125 -0
- package/dist/v2/components/FormikDisplay.js.map +1 -0
- package/dist/v2/components/Input.d.ts +62 -0
- package/dist/v2/components/Input.d.ts.map +1 -0
- package/dist/v2/components/Input.js +115 -0
- package/dist/v2/components/Input.js.map +1 -0
- package/dist/v2/components/KPICard.d.ts +22 -0
- package/dist/v2/components/KPICard.d.ts.map +1 -0
- package/dist/v2/components/KPICard.js +205 -0
- package/dist/v2/components/KPICard.js.map +1 -0
- package/dist/v2/components/KV.d.ts +25 -0
- package/dist/v2/components/KV.d.ts.map +1 -0
- package/dist/v2/components/KV.js +82 -0
- package/dist/v2/components/KV.js.map +1 -0
- package/dist/v2/components/KVGrid.d.ts +44 -0
- package/dist/v2/components/KVGrid.d.ts.map +1 -0
- package/dist/v2/components/KVGrid.js +73 -0
- package/dist/v2/components/KVGrid.js.map +1 -0
- package/dist/v2/components/Layout.d.ts +78 -0
- package/dist/v2/components/Layout.d.ts.map +1 -0
- package/dist/v2/components/Layout.js +284 -0
- package/dist/v2/components/Layout.js.map +1 -0
- package/dist/v2/components/MobileRowCard.d.ts +63 -0
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -0
- package/dist/v2/components/MobileRowCard.js +321 -0
- package/dist/v2/components/MobileRowCard.js.map +1 -0
- package/dist/v2/components/Modal.d.ts +21 -0
- package/dist/v2/components/Modal.d.ts.map +1 -0
- package/dist/v2/components/Modal.js +281 -0
- package/dist/v2/components/Modal.js.map +1 -0
- package/dist/v2/components/NetworkErrorPage.d.ts +11 -0
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -0
- package/dist/v2/components/NetworkErrorPage.js +86 -0
- package/dist/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/v2/components/NotFoundPage.d.ts +9 -0
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -0
- package/dist/v2/components/NotFoundPage.js +66 -0
- package/dist/v2/components/NotFoundPage.js.map +1 -0
- package/dist/v2/components/NumberInput.d.ts +83 -0
- package/dist/v2/components/NumberInput.d.ts.map +1 -0
- package/dist/v2/components/NumberInput.js +316 -0
- package/dist/v2/components/NumberInput.js.map +1 -0
- package/dist/v2/components/OverflowMenu.d.ts +55 -0
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -0
- package/dist/v2/components/OverflowMenu.js +196 -0
- package/dist/v2/components/OverflowMenu.js.map +1 -0
- package/dist/v2/components/PdfViewer.d.ts +56 -0
- package/dist/v2/components/PdfViewer.d.ts.map +1 -0
- package/dist/v2/components/PdfViewer.js +132 -0
- package/dist/v2/components/PdfViewer.js.map +1 -0
- package/dist/v2/components/ProgressBar.d.ts +53 -0
- package/dist/v2/components/ProgressBar.d.ts.map +1 -0
- package/dist/v2/components/ProgressBar.js +209 -0
- package/dist/v2/components/ProgressBar.js.map +1 -0
- package/dist/v2/components/Radio.d.ts +78 -0
- package/dist/v2/components/Radio.d.ts.map +1 -0
- package/dist/v2/components/Radio.js +238 -0
- package/dist/v2/components/Radio.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +53 -0
- package/dist/v2/components/SectionHeader.d.ts.map +1 -0
- package/dist/v2/components/SectionHeader.js +140 -0
- package/dist/v2/components/SectionHeader.js.map +1 -0
- package/dist/v2/components/Segmented.d.ts +61 -0
- package/dist/v2/components/Segmented.d.ts.map +1 -0
- package/dist/v2/components/Segmented.js +261 -0
- package/dist/v2/components/Segmented.js.map +1 -0
- package/dist/v2/components/Select.d.ts +72 -0
- package/dist/v2/components/Select.d.ts.map +1 -0
- package/dist/v2/components/Select.js +382 -0
- package/dist/v2/components/Select.js.map +1 -0
- package/dist/v2/components/ServerErrorPage.d.ts +11 -0
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -0
- package/dist/v2/components/ServerErrorPage.js +82 -0
- package/dist/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/v2/components/Skeleton.d.ts +56 -0
- package/dist/v2/components/Skeleton.d.ts.map +1 -0
- package/dist/v2/components/Skeleton.js +281 -0
- package/dist/v2/components/Skeleton.js.map +1 -0
- package/dist/v2/components/SkipLink.d.ts +30 -0
- package/dist/v2/components/SkipLink.d.ts.map +1 -0
- package/dist/v2/components/SkipLink.js +58 -0
- package/dist/v2/components/SkipLink.js.map +1 -0
- package/dist/v2/components/Spinner.d.ts +40 -0
- package/dist/v2/components/Spinner.d.ts.map +1 -0
- package/dist/v2/components/Spinner.js +76 -0
- package/dist/v2/components/Spinner.js.map +1 -0
- package/dist/v2/components/Status.d.ts +42 -0
- package/dist/v2/components/Status.d.ts.map +1 -0
- package/dist/v2/components/Status.js +71 -0
- package/dist/v2/components/Status.js.map +1 -0
- package/dist/v2/components/Stepper.d.ts +136 -0
- package/dist/v2/components/Stepper.d.ts.map +1 -0
- package/dist/v2/components/Stepper.js +415 -0
- package/dist/v2/components/Stepper.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +30 -0
- package/dist/v2/components/Switch.d.ts.map +1 -0
- package/dist/v2/components/Switch.js +136 -0
- package/dist/v2/components/Switch.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +49 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -0
- package/dist/v2/components/Tabs.js +160 -0
- package/dist/v2/components/Tabs.js.map +1 -0
- package/dist/v2/components/TelInput.d.ts +33 -0
- package/dist/v2/components/TelInput.d.ts.map +1 -0
- package/dist/v2/components/TelInput.js +282 -0
- package/dist/v2/components/TelInput.js.map +1 -0
- package/dist/v2/components/Textarea.d.ts +23 -0
- package/dist/v2/components/Textarea.d.ts.map +1 -0
- package/dist/v2/components/Textarea.js +80 -0
- package/dist/v2/components/Textarea.js.map +1 -0
- package/dist/v2/components/TimePicker.d.ts +21 -0
- package/dist/v2/components/TimePicker.d.ts.map +1 -0
- package/dist/v2/components/TimePicker.js +141 -0
- package/dist/v2/components/TimePicker.js.map +1 -0
- package/dist/v2/components/Toast.d.ts +32 -0
- package/dist/v2/components/Toast.d.ts.map +1 -0
- package/dist/v2/components/Toast.js +384 -0
- package/dist/v2/components/Toast.js.map +1 -0
- package/dist/v2/components/Tooltip.d.ts +9 -0
- package/dist/v2/components/Tooltip.d.ts.map +1 -0
- package/dist/v2/components/Tooltip.js +169 -0
- package/dist/v2/components/Tooltip.js.map +1 -0
- package/dist/v2/components/_ErrorPageBody.d.ts +48 -0
- package/dist/v2/components/_ErrorPageBody.d.ts.map +1 -0
- package/dist/v2/components/_ErrorPageBody.js +96 -0
- package/dist/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/v2/components/_pickerShared.d.ts +47 -0
- package/dist/v2/components/_pickerShared.d.ts.map +1 -0
- package/dist/v2/components/_pickerShared.js +68 -0
- package/dist/v2/components/_pickerShared.js.map +1 -0
- package/dist/v2/components/index.d.ts +83 -0
- package/dist/v2/components/index.d.ts.map +1 -0
- package/dist/v2/components/index.js +477 -0
- package/dist/v2/components/index.js.map +1 -0
- package/dist/v2/hooks/index.d.ts +11 -0
- package/dist/v2/hooks/index.d.ts.map +1 -0
- package/dist/v2/hooks/index.js +85 -0
- package/dist/v2/hooks/index.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.d.ts +22 -0
- package/dist/v2/hooks/useDelayedFlag.d.ts.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +60 -0
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/v2/hooks/useDensity.d.ts +23 -0
- package/dist/v2/hooks/useDensity.d.ts.map +1 -0
- package/dist/v2/hooks/useDensity.js +124 -0
- package/dist/v2/hooks/useDensity.js.map +1 -0
- package/dist/v2/hooks/useFocusFirstError.d.ts +121 -0
- package/dist/v2/hooks/useFocusFirstError.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusFirstError.js +203 -0
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.d.ts +3 -0
- package/dist/v2/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +207 -0
- package/dist/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/v2/hooks/useFormAutoSave.d.ts +42 -0
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -0
- package/dist/v2/hooks/useFormAutoSave.js +186 -0
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +52 -0
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -0
- package/dist/v2/hooks/useFormCompletionProgress.js +136 -0
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.d.ts +31 -0
- package/dist/v2/hooks/useResolvedDensity.d.ts.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +50 -0
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/v2/hooks/useSortedRows.d.ts +25 -0
- package/dist/v2/hooks/useSortedRows.d.ts.map +1 -0
- package/dist/v2/hooks/useSortedRows.js +38 -0
- package/dist/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/v2/hooks/useTabLoading.d.ts +39 -0
- package/dist/v2/hooks/useTabLoading.d.ts.map +1 -0
- package/dist/v2/hooks/useTabLoading.js +85 -0
- package/dist/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/v2/index.d.ts +115 -0
- package/dist/v2/index.d.ts.map +1 -0
- package/dist/v2/index.js +1127 -0
- package/dist/v2/index.js.map +1 -0
- package/dist/v2/modalContext.d.ts +96 -0
- package/dist/v2/modalContext.d.ts.map +1 -0
- package/dist/v2/modalContext.js +113 -0
- package/dist/v2/modalContext.js.map +1 -0
- package/dist/v2/models/favorite.d.ts +14 -0
- package/dist/v2/models/favorite.d.ts.map +1 -0
- package/dist/v2/models/favorite.js +6 -0
- package/dist/v2/models/favorite.js.map +1 -0
- package/dist/v2/models/index.d.ts +11 -0
- package/dist/v2/models/index.d.ts.map +1 -0
- package/dist/v2/models/index.js +50 -0
- package/dist/v2/models/index.js.map +1 -0
- package/dist/v2/models/personalization.d.ts +65 -0
- package/dist/v2/models/personalization.d.ts.map +1 -0
- package/dist/v2/models/personalization.js +6 -0
- package/dist/v2/models/personalization.js.map +1 -0
- package/dist/v2/models/referentiel.d.ts +67 -0
- package/dist/v2/models/referentiel.d.ts.map +1 -0
- package/dist/v2/models/referentiel.js +6 -0
- package/dist/v2/models/referentiel.js.map +1 -0
- package/dist/v2/models/savedFilter.d.ts +22 -0
- package/dist/v2/models/savedFilter.d.ts.map +1 -0
- package/dist/v2/models/savedFilter.js +6 -0
- package/dist/v2/models/savedFilter.js.map +1 -0
- package/dist/v2/patterns/ActionBar.d.ts +137 -0
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -0
- package/dist/v2/patterns/ActionBar.js +601 -0
- package/dist/v2/patterns/ActionBar.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.d.ts +63 -0
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +153 -0
- package/dist/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +62 -0
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +306 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/v2/patterns/ColumnsToggle.d.ts +55 -0
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -0
- package/dist/v2/patterns/ColumnsToggle.js +314 -0
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/v2/patterns/DataGrid.d.ts +7 -0
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -0
- package/dist/v2/patterns/DataGrid.js +834 -0
- package/dist/v2/patterns/DataGrid.js.map +1 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +68 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridSettingsMenu.js +381 -0
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/v2/patterns/DataGridToolbar.d.ts +81 -0
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridToolbar.js +255 -0
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/v2/patterns/DataGridVirtualized.d.ts +76 -0
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridVirtualized.js +528 -0
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +46 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +77 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts +72 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +171 -0
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/v2/patterns/FavoritesFilter.d.ts +51 -0
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -0
- package/dist/v2/patterns/FavoritesFilter.js +97 -0
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.d.ts +39 -0
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +111 -0
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormPageShell.d.ts +55 -0
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -0
- package/dist/v2/patterns/FormPageShell.js +133 -0
- package/dist/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/v2/patterns/FormSection.d.ts +53 -0
- package/dist/v2/patterns/FormSection.d.ts.map +1 -0
- package/dist/v2/patterns/FormSection.js +162 -0
- package/dist/v2/patterns/FormSection.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +51 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.js +117 -0
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/v2/patterns/FormikCombobox.d.ts +43 -0
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCombobox.js +121 -0
- package/dist/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/v2/patterns/FormikDatePicker.d.ts +87 -0
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDatePicker.js +177 -0
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts +59 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.js +83 -0
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +43 -0
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -0
- package/dist/v2/patterns/FormikFile.js +156 -0
- package/dist/v2/patterns/FormikFile.js.map +1 -0
- package/dist/v2/patterns/FormikInput.d.ts +37 -0
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -0
- package/dist/v2/patterns/FormikInput.js +87 -0
- package/dist/v2/patterns/FormikInput.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +33 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.js +124 -0
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/v2/patterns/FormikSelect.d.ts +40 -0
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -0
- package/dist/v2/patterns/FormikSelect.js +139 -0
- package/dist/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/v2/patterns/FormikTextarea.d.ts +31 -0
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -0
- package/dist/v2/patterns/FormikTextarea.js +84 -0
- package/dist/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +44 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +207 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +26 -0
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -0
- package/dist/v2/patterns/NetworkErrorBanner.js +82 -0
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/v2/patterns/PageContent.d.ts +40 -0
- package/dist/v2/patterns/PageContent.d.ts.map +1 -0
- package/dist/v2/patterns/PageContent.js +69 -0
- package/dist/v2/patterns/PageContent.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +118 -0
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -0
- package/dist/v2/patterns/ReferentielField.js +617 -0
- package/dist/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts +68 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.js +203 -0
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +74 -0
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -0
- package/dist/v2/patterns/SavedFiltersMenu.js +412 -0
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/v2/patterns/SkeletonPageShell.d.ts +76 -0
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -0
- package/dist/v2/patterns/SkeletonPageShell.js +347 -0
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/v2/patterns/SortableHeader.d.ts +47 -0
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -0
- package/dist/v2/patterns/SortableHeader.js +193 -0
- package/dist/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/v2/patterns/Tour.d.ts +55 -0
- package/dist/v2/patterns/Tour.d.ts.map +1 -0
- package/dist/v2/patterns/Tour.js +473 -0
- package/dist/v2/patterns/Tour.js.map +1 -0
- package/dist/v2/patterns/_dataGridShared.d.ts +125 -0
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -0
- package/dist/v2/patterns/_dataGridShared.js +406 -0
- package/dist/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/v2/patterns/_sort.d.ts +22 -0
- package/dist/v2/patterns/_sort.d.ts.map +1 -0
- package/dist/v2/patterns/_sort.js +118 -0
- package/dist/v2/patterns/_sort.js.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts +69 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.js +264 -0
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/v2/patterns/_useColumnResize.d.ts +49 -0
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -0
- package/dist/v2/patterns/_useColumnResize.js +198 -0
- package/dist/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +62 -0
- package/dist/v2/patterns/index.d.ts.map +1 -0
- package/dist/v2/patterns/index.js +246 -0
- package/dist/v2/patterns/index.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts +80 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.js +177 -0
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/v2/personalization/adapters/_storageKey.d.ts +35 -0
- package/dist/v2/personalization/adapters/_storageKey.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/_storageKey.js +69 -0
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +31 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +128 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +25 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +76 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/v2/personalization/adapters/index.d.ts +10 -0
- package/dist/v2/personalization/adapters/index.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/index.js +21 -0
- package/dist/v2/personalization/adapters/index.js.map +1 -0
- package/dist/v2/personalization/capabilities/favorites.d.ts +53 -0
- package/dist/v2/personalization/capabilities/favorites.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/favorites.js +223 -0
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +58 -0
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/favoritesView.js +121 -0
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +16 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/index.js +69 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +61 -0
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +297 -0
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/v2/personalization/createPersonalizationStore.d.ts +76 -0
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -0
- package/dist/v2/personalization/createPersonalizationStore.js +475 -0
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/v2/personalization/index.d.ts +33 -0
- package/dist/v2/personalization/index.d.ts.map +1 -0
- package/dist/v2/personalization/index.js +111 -0
- package/dist/v2/personalization/index.js.map +1 -0
- package/dist/v2/personalization/personalizationContext.d.ts +78 -0
- package/dist/v2/personalization/personalizationContext.d.ts.map +1 -0
- package/dist/v2/personalization/personalizationContext.js +121 -0
- package/dist/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/v2/personalization/schema.d.ts +60 -0
- package/dist/v2/personalization/schema.d.ts.map +1 -0
- package/dist/v2/personalization/schema.js +102 -0
- package/dist/v2/personalization/schema.js.map +1 -0
- package/dist/v2/personalization/types.d.ts +81 -0
- package/dist/v2/personalization/types.d.ts.map +1 -0
- package/dist/v2/personalization/types.js +6 -0
- package/dist/v2/personalization/types.js.map +1 -0
- package/dist/v2/referentiel/ReferentielProvider.d.ts +53 -0
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -0
- package/dist/v2/referentiel/ReferentielProvider.js +94 -0
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/v2/referentiel/index.d.ts +18 -0
- package/dist/v2/referentiel/index.d.ts.map +1 -0
- package/dist/v2/referentiel/index.js +44 -0
- package/dist/v2/referentiel/index.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.d.ts +15 -0
- package/dist/v2/referentiel/useReferentielClient.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +46 -0
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/v2/referentiel/useReferentielOptions.d.ts +40 -0
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielOptions.js +177 -0
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/v2/referentiel/useReferentielSearch.d.ts +76 -0
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielSearch.js +140 -0
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/v2/styles/base.css +425 -0
- package/dist/v2/styles/css.d.ts +10 -0
- package/dist/v2/styles/index.d.ts +12 -0
- package/dist/v2/styles/index.d.ts.map +1 -0
- package/dist/v2/styles/index.js +4 -0
- package/dist/v2/styles/index.js.map +1 -0
- package/dist/v2/theme/_brand.d.ts +29 -0
- package/dist/v2/theme/_brand.d.ts.map +1 -0
- package/dist/v2/theme/_brand.js +69 -0
- package/dist/v2/theme/_brand.js.map +1 -0
- package/dist/v2/theme/_brandSecondary.d.ts +26 -0
- package/dist/v2/theme/_brandSecondary.d.ts.map +1 -0
- package/dist/v2/theme/_brandSecondary.js +65 -0
- package/dist/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/v2/theme/createPortnetTheme.d.ts +50 -0
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -0
- package/dist/v2/theme/createPortnetTheme.js +529 -0
- package/dist/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/v2/theme/cssVariables.d.ts +41 -0
- package/dist/v2/theme/cssVariables.d.ts.map +1 -0
- package/dist/v2/theme/cssVariables.js +205 -0
- package/dist/v2/theme/cssVariables.js.map +1 -0
- package/dist/v2/theme/index.d.ts +33 -0
- package/dist/v2/theme/index.d.ts.map +1 -0
- package/dist/v2/theme/index.js +60 -0
- package/dist/v2/theme/index.js.map +1 -0
- package/dist/v2/tokens/breakpoints.d.ts +74 -0
- package/dist/v2/tokens/breakpoints.d.ts.map +1 -0
- package/dist/v2/tokens/breakpoints.js +114 -0
- package/dist/v2/tokens/breakpoints.js.map +1 -0
- package/dist/v2/tokens/colors.d.ts +228 -0
- package/dist/v2/tokens/colors.d.ts.map +1 -0
- package/dist/v2/tokens/colors.js +225 -0
- package/dist/v2/tokens/colors.js.map +1 -0
- package/dist/v2/tokens/density.d.ts +142 -0
- package/dist/v2/tokens/density.d.ts.map +1 -0
- package/dist/v2/tokens/density.js +111 -0
- package/dist/v2/tokens/density.js.map +1 -0
- package/dist/v2/tokens/index.d.ts +556 -0
- package/dist/v2/tokens/index.d.ts.map +1 -0
- package/dist/v2/tokens/index.js +313 -0
- package/dist/v2/tokens/index.js.map +1 -0
- package/dist/v2/tokens/motion.d.ts +85 -0
- package/dist/v2/tokens/motion.d.ts.map +1 -0
- package/dist/v2/tokens/motion.js +94 -0
- package/dist/v2/tokens/motion.js.map +1 -0
- package/dist/v2/tokens/radius.d.ts +18 -0
- package/dist/v2/tokens/radius.d.ts.map +1 -0
- package/dist/v2/tokens/radius.js +28 -0
- package/dist/v2/tokens/radius.js.map +1 -0
- package/dist/v2/tokens/shadows.d.ts +25 -0
- package/dist/v2/tokens/shadows.d.ts.map +1 -0
- package/dist/v2/tokens/shadows.js +46 -0
- package/dist/v2/tokens/shadows.js.map +1 -0
- package/dist/v2/tokens/spacing.d.ts +38 -0
- package/dist/v2/tokens/spacing.d.ts.map +1 -0
- package/dist/v2/tokens/spacing.js +57 -0
- package/dist/v2/tokens/spacing.js.map +1 -0
- package/dist/v2/tokens/state.d.ts +40 -0
- package/dist/v2/tokens/state.d.ts.map +1 -0
- package/dist/v2/tokens/state.js +47 -0
- package/dist/v2/tokens/state.js.map +1 -0
- package/dist/v2/tokens/statusPalette.d.ts +54 -0
- package/dist/v2/tokens/statusPalette.d.ts.map +1 -0
- package/dist/v2/tokens/statusPalette.js +72 -0
- package/dist/v2/tokens/statusPalette.js.map +1 -0
- package/dist/v2/tokens/tokens.json +153 -0
- package/dist/v2/tokens/typography.d.ts +206 -0
- package/dist/v2/tokens/typography.d.ts.map +1 -0
- package/dist/v2/tokens/typography.js +155 -0
- package/dist/v2/tokens/typography.js.map +1 -0
- package/dist/v2/tokens/zIndex.d.ts +33 -0
- package/dist/v2/tokens/zIndex.d.ts.map +1 -0
- package/dist/v2/tokens/zIndex.js +50 -0
- package/dist/v2/tokens/zIndex.js.map +1 -0
- package/dist/v2/types/common.d.ts +24 -0
- package/dist/v2/types/common.d.ts.map +1 -0
- package/dist/v2/types/common.js +6 -0
- package/dist/v2/types/common.js.map +1 -0
- package/dist/v2/types/datagrid.d.ts +131 -0
- package/dist/v2/types/datagrid.d.ts.map +1 -0
- package/dist/v2/types/datagrid.js +6 -0
- package/dist/v2/types/datagrid.js.map +1 -0
- package/dist/v2/types/index.d.ts +11 -0
- package/dist/v2/types/index.d.ts.map +1 -0
- package/dist/v2/types/index.js +28 -0
- package/dist/v2/types/index.js.map +1 -0
- package/dist/v2/utils/apiError.d.ts +90 -0
- package/dist/v2/utils/apiError.d.ts.map +1 -0
- package/dist/v2/utils/apiError.js +227 -0
- package/dist/v2/utils/apiError.js.map +1 -0
- package/dist/v2/utils/contrast.d.ts +68 -0
- package/dist/v2/utils/contrast.d.ts.map +1 -0
- package/dist/v2/utils/contrast.js +167 -0
- package/dist/v2/utils/contrast.js.map +1 -0
- package/dist/v2/utils/cx.d.ts +9 -0
- package/dist/v2/utils/cx.d.ts.map +1 -0
- package/dist/v2/utils/cx.js +45 -0
- package/dist/v2/utils/cx.js.map +1 -0
- package/dist/v2/utils/fileDownload.d.ts +94 -0
- package/dist/v2/utils/fileDownload.d.ts.map +1 -0
- package/dist/v2/utils/fileDownload.js +236 -0
- package/dist/v2/utils/fileDownload.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +28 -0
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -0
- package/dist/v2/utils/fmtMoney.js +84 -0
- package/dist/v2/utils/fmtMoney.js.map +1 -0
- package/dist/v2/utils/index.d.ts +8 -0
- package/dist/v2/utils/index.d.ts.map +1 -0
- package/dist/v2/utils/index.js +90 -0
- package/dist/v2/utils/index.js.map +1 -0
- package/dist/v2/utils/networkStatus.d.ts +88 -0
- package/dist/v2/utils/networkStatus.d.ts.map +1 -0
- package/dist/v2/utils/networkStatus.js +121 -0
- package/dist/v2/utils/networkStatus.js.map +1 -0
- package/package.json +191 -76
- package/dist/api/guideApi.js +0 -12
- package/dist/api/guideImageService.js +0 -119
- package/dist/api/reclamationApi.js +0 -102
- package/dist/assets/guides/FAQ.json +0 -118
- package/dist/assets/guides/index.js +0 -11
- package/dist/assets/images/tijariaLogo.ico +0 -0
- package/dist/components/buttons/PuiButton.js +0 -217
- package/dist/components/buttons/PuiIconButton.js +0 -98
- package/dist/components/common/PuiAlertContext.js +0 -12
- package/dist/components/common/PuiHelpWidgetContext.js +0 -17
- package/dist/components/common/StyledMuiButton.js +0 -48
- package/dist/components/common/StyledMuiTextField.js +0 -180
- package/dist/components/inputs/PuiAutocomplete.js +0 -352
- package/dist/components/inputs/PuiCheckbox.js +0 -308
- package/dist/components/inputs/PuiCheckboxGroup.js +0 -215
- package/dist/components/inputs/PuiCheckboxItem.js +0 -162
- package/dist/components/inputs/PuiDateField.js +0 -280
- package/dist/components/inputs/PuiDateTimeField.js +0 -276
- package/dist/components/inputs/PuiFileField.js +0 -265
- package/dist/components/inputs/PuiRadioGroup.js +0 -197
- package/dist/components/inputs/PuiRadioItem.js +0 -100
- package/dist/components/inputs/PuiSelect.js +0 -427
- package/dist/components/inputs/PuiTextField.js +0 -263
- package/dist/components/others/PuiBadge.js +0 -58
- package/dist/components/others/PuiChip.js +0 -150
- package/dist/components/others/PuiDialog.js +0 -102
- package/dist/components/others/PuiFormikForm.js +0 -70
- package/dist/components/others/PuiGrid.js +0 -23
- package/dist/components/others/PuiIcon.js +0 -92
- package/dist/components/others/PuiLoadingBackdrop.js +0 -32
- package/dist/components/others/PuiMainContainer.js +0 -41
- package/dist/components/others/PuiNavigation.js +0 -68
- package/dist/components/others/PuiSection.js +0 -187
- package/dist/components/others/PuiTooltip.js +0 -86
- package/dist/components/providers/PuiAlertProvider.js +0 -134
- package/dist/components/providers/PuiHelpWidgetProvider.js +0 -91
- package/dist/components/providers/PuiLocalizationProvider.js +0 -34
- package/dist/components/referentiel/common/ReferetielContext.js +0 -12
- package/dist/components/referentiel/common/constants/specificReferentielsApis.js +0 -22
- package/dist/components/referentiel/common/constants/specificReferentielsBaseColumns.js +0 -691
- package/dist/components/referentiel/common/constants/specificReferentielsBaseFilters.js +0 -598
- package/dist/components/referentiel/common/constants/specificReferentielsInitialValues.js +0 -80
- package/dist/components/referentiel/common/constants/specificReferentielsKeys.js +0 -18
- package/dist/components/referentiel/common/constants/specificReferentielsTitles.js +0 -22
- package/dist/components/referentiel/common/constants/specificReferentielsValidationSchemas.js +0 -85
- package/dist/components/referentiel/components/PuiBasePopupReferentielField.js +0 -356
- package/dist/components/referentiel/components/PuiCustomPopupReferentielField.js +0 -181
- package/dist/components/referentiel/components/PuiSimplePopupReferentielField.js +0 -325
- package/dist/components/referentiel/components/PuiSimpleReferentielField.js +0 -203
- package/dist/components/referentiel/components/PuiSpecificReferentielField.js +0 -352
- package/dist/components/referentiel/providers/PuiReferentielProvider.js +0 -66
- package/dist/components/tab/PuiTab.js +0 -25
- package/dist/components/tab/PuiTabs.js +0 -148
- package/dist/components/table/PuiTable.js +0 -643
- package/dist/components/table/PuiTableAction.js +0 -75
- package/dist/components/typography/PuiDefinition.js +0 -42
- package/dist/components/typography/PuiIndication.js +0 -80
- package/dist/components/typography/PuiMainTitle.js +0 -144
- package/dist/components/ui/dialogs/PuiSearchDialog.js +0 -106
- package/dist/components/ui/pages/errors/PuiErrorBasePage.js +0 -73
- package/dist/components/ui/pages/errors/PuiForbiddenErrorPage.js +0 -36
- package/dist/components/ui/pages/errors/PuiNetworkErrorPage.js +0 -36
- package/dist/components/ui/pages/errors/PuiNotFoundErrorPage.js +0 -30
- package/dist/components/ui/pages/errors/PuiServerErrorPage.js +0 -37
- package/dist/components/ui/pages/general/PuiDefaultPage.js +0 -68
- package/dist/components/ui/pages/general/PuiSearchPage.js +0 -203
- package/dist/components/widgets/GuideImage.js +0 -251
- package/dist/components/widgets/PuiHelpWidget.js +0 -4167
- package/dist/config/apperance.js +0 -26
- package/dist/config/mapping.js +0 -26
- package/dist/config/referentiel.js +0 -10
- package/dist/general/yupValidationErrors.js +0 -8
- package/dist/hooks/useAlert.js +0 -19
- package/dist/hooks/useAxios.js +0 -23
- package/dist/hooks/useQuery.js +0 -21
- package/dist/hooks/useReclamation.js +0 -100
- package/dist/styles/ReclamationFormModal.css +0 -629
- package/dist/styles/help-widget.css +0 -621
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.KEY_PREFIX = void 0;
|
|
7
|
+
exports.buildKey = buildKey;
|
|
8
|
+
exports.buildScopePrefix = buildScopePrefix;
|
|
9
|
+
exports.parseCapabilityFromKey = parseCapabilityFromKey;
|
|
10
|
+
var _schema = require("../schema");
|
|
11
|
+
/**
|
|
12
|
+
* _storageKey — Portnet UI v2 · personalization adapters (private)
|
|
13
|
+
*
|
|
14
|
+
* Composite key scheme shared by storage adapters:
|
|
15
|
+
*
|
|
16
|
+
* portnet-ui:perso:v1:{tenantId?}:{userId}:{capabilityId}
|
|
17
|
+
*
|
|
18
|
+
* Design notes
|
|
19
|
+
* - `resourceKey` is NOT in the key — it lives inside the capability
|
|
20
|
+
* payload. One storage entry per (scope, capability) → cheap prefix scan
|
|
21
|
+
* on load, one removeItem to clear.
|
|
22
|
+
* - Scope segments (tenantId, userId) are encodeURIComponent-escaped so
|
|
23
|
+
* arbitrary host identifiers — including ones containing ':' — remain
|
|
24
|
+
* unambiguous. `capabilityId` is a controlled slug and is left raw so
|
|
25
|
+
* `buildScopePrefix` + `slice()` recover it directly.
|
|
26
|
+
* - `:v1:` is the KEY-SCHEME version (storage layout), independent of a
|
|
27
|
+
* capability payload's `schemaVersion`.
|
|
28
|
+
*
|
|
29
|
+
* Underscore-prefixed: internal, never re-exported from the public surface.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
var KEY_PREFIX = exports.KEY_PREFIX = "portnet-ui:perso";
|
|
33
|
+
function enc(value) {
|
|
34
|
+
return encodeURIComponent(String(value == null ? "" : value));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Full storage key for one (scope, capability). */
|
|
38
|
+
function buildKey(scope, capabilityId) {
|
|
39
|
+
var parts = [KEY_PREFIX, _schema.KEY_SCHEME_VERSION];
|
|
40
|
+
if (scope && scope.tenantId) parts.push(enc(scope.tenantId));
|
|
41
|
+
parts.push(enc(scope ? scope.userId : ""));
|
|
42
|
+
parts.push(capabilityId);
|
|
43
|
+
return parts.join(":");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Prefix shared by every capability key of a scope — terminated by ':' so the
|
|
48
|
+
* capability segment follows immediately.
|
|
49
|
+
*/
|
|
50
|
+
function buildScopePrefix(scope) {
|
|
51
|
+
var parts = [KEY_PREFIX, _schema.KEY_SCHEME_VERSION];
|
|
52
|
+
if (scope && scope.tenantId) parts.push(enc(scope.tenantId));
|
|
53
|
+
parts.push(enc(scope ? scope.userId : ""));
|
|
54
|
+
parts.push(""); // trailing ':' after join
|
|
55
|
+
return parts.join(":");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Recover the capabilityId from a storage key for a given scope, or null when
|
|
60
|
+
* the key does not belong to this scope.
|
|
61
|
+
*/
|
|
62
|
+
function parseCapabilityFromKey(key, scope) {
|
|
63
|
+
if (typeof key !== "string") return null;
|
|
64
|
+
var prefix = buildScopePrefix(scope);
|
|
65
|
+
if (key.indexOf(prefix) !== 0) return null;
|
|
66
|
+
var capId = key.slice(prefix.length);
|
|
67
|
+
return capId || null;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=_storageKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_storageKey.js","names":["_schema","require","KEY_PREFIX","exports","enc","value","encodeURIComponent","String","buildKey","scope","capabilityId","parts","KEY_SCHEME_VERSION","tenantId","push","userId","join","buildScopePrefix","parseCapabilityFromKey","key","prefix","indexOf","capId","slice","length"],"sources":["../../../../src/lib/v2/personalization/adapters/_storageKey.ts"],"sourcesContent":["/**\r\n * _storageKey — Portnet UI v2 · personalization adapters (private)\r\n *\r\n * Composite key scheme shared by storage adapters:\r\n *\r\n * portnet-ui:perso:v1:{tenantId?}:{userId}:{capabilityId}\r\n *\r\n * Design notes\r\n * - `resourceKey` is NOT in the key — it lives inside the capability\r\n * payload. One storage entry per (scope, capability) → cheap prefix scan\r\n * on load, one removeItem to clear.\r\n * - Scope segments (tenantId, userId) are encodeURIComponent-escaped so\r\n * arbitrary host identifiers — including ones containing ':' — remain\r\n * unambiguous. `capabilityId` is a controlled slug and is left raw so\r\n * `buildScopePrefix` + `slice()` recover it directly.\r\n * - `:v1:` is the KEY-SCHEME version (storage layout), independent of a\r\n * capability payload's `schemaVersion`.\r\n *\r\n * Underscore-prefixed: internal, never re-exported from the public surface.\r\n */\r\n\r\nimport { KEY_SCHEME_VERSION } from \"../schema\";\r\nimport type { Scope } from \"../types\";\r\n\r\nexport const KEY_PREFIX = \"portnet-ui:perso\";\r\n\r\nfunction enc(value: string | undefined): string {\r\n return encodeURIComponent(String(value == null ? \"\" : value));\r\n}\r\n\r\n/** Full storage key for one (scope, capability). */\r\nexport function buildKey(scope: Scope, capabilityId: string): string {\r\n const parts = [KEY_PREFIX, KEY_SCHEME_VERSION];\r\n if (scope && scope.tenantId) parts.push(enc(scope.tenantId));\r\n parts.push(enc(scope ? scope.userId : \"\"));\r\n parts.push(capabilityId);\r\n return parts.join(\":\");\r\n}\r\n\r\n/**\r\n * Prefix shared by every capability key of a scope — terminated by ':' so the\r\n * capability segment follows immediately.\r\n */\r\nexport function buildScopePrefix(scope: Scope): string {\r\n const parts = [KEY_PREFIX, KEY_SCHEME_VERSION];\r\n if (scope && scope.tenantId) parts.push(enc(scope.tenantId));\r\n parts.push(enc(scope ? scope.userId : \"\"));\r\n parts.push(\"\"); // trailing ':' after join\r\n return parts.join(\":\");\r\n}\r\n\r\n/**\r\n * Recover the capabilityId from a storage key for a given scope, or null when\r\n * the key does not belong to this scope.\r\n */\r\nexport function parseCapabilityFromKey(\r\n key: string,\r\n scope: Scope\r\n): string | null {\r\n if (typeof key !== \"string\") return null;\r\n const prefix = buildScopePrefix(scope);\r\n if (key.indexOf(prefix) !== 0) return null;\r\n const capId = key.slice(prefix.length);\r\n return capId || null;\r\n}\r\n"],"mappings":";;;;;;;;;AAqBA,IAAAA,OAAA,GAAAC,OAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKO,IAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,kBAAkB;AAE5C,SAASE,GAAGA,CAACC,KAAyB,EAAU;EAC9C,OAAOC,kBAAkB,CAACC,MAAM,CAACF,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGA,KAAK,CAAC,CAAC;AAC/D;;AAEA;AACO,SAASG,QAAQA,CAACC,KAAY,EAAEC,YAAoB,EAAU;EACnE,IAAMC,KAAK,GAAG,CAACT,UAAU,EAAEU,0BAAkB,CAAC;EAC9C,IAAIH,KAAK,IAAIA,KAAK,CAACI,QAAQ,EAAEF,KAAK,CAACG,IAAI,CAACV,GAAG,CAACK,KAAK,CAACI,QAAQ,CAAC,CAAC;EAC5DF,KAAK,CAACG,IAAI,CAACV,GAAG,CAACK,KAAK,GAAGA,KAAK,CAACM,MAAM,GAAG,EAAE,CAAC,CAAC;EAC1CJ,KAAK,CAACG,IAAI,CAACJ,YAAY,CAAC;EACxB,OAAOC,KAAK,CAACK,IAAI,CAAC,GAAG,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACR,KAAY,EAAU;EACrD,IAAME,KAAK,GAAG,CAACT,UAAU,EAAEU,0BAAkB,CAAC;EAC9C,IAAIH,KAAK,IAAIA,KAAK,CAACI,QAAQ,EAAEF,KAAK,CAACG,IAAI,CAACV,GAAG,CAACK,KAAK,CAACI,QAAQ,CAAC,CAAC;EAC5DF,KAAK,CAACG,IAAI,CAACV,GAAG,CAACK,KAAK,GAAGA,KAAK,CAACM,MAAM,GAAG,EAAE,CAAC,CAAC;EAC1CJ,KAAK,CAACG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;EAChB,OAAOH,KAAK,CAACK,IAAI,CAAC,GAAG,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CACpCC,GAAW,EACXV,KAAY,EACG;EACf,IAAI,OAAOU,GAAG,KAAK,QAAQ,EAAE,OAAO,IAAI;EACxC,IAAMC,MAAM,GAAGH,gBAAgB,CAACR,KAAK,CAAC;EACtC,IAAIU,GAAG,CAACE,OAAO,CAACD,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;EAC1C,IAAME,KAAK,GAAGH,GAAG,CAACI,KAAK,CAACH,MAAM,CAACI,MAAM,CAAC;EACtC,OAAOF,KAAK,IAAI,IAAI;AACtB","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createLocalStorageAdapter — Portnet UI v2 · personalization
|
|
3
|
+
*
|
|
4
|
+
* Default Adapter. Persists each capability as an opaque envelope under a
|
|
5
|
+
* scoped key (see adapters/_storageKey.ts). The adapter never interprets
|
|
6
|
+
* `envelope.payload`.
|
|
7
|
+
*
|
|
8
|
+
* Safety:
|
|
9
|
+
* - SSR-safe: with no `window`, the adapter is inert (load → {}, save →
|
|
10
|
+
* resolved no-op) so it can be constructed anywhere.
|
|
11
|
+
* - Every storage access is try/catch-wrapped. `save` REJECTS on quota/
|
|
12
|
+
* private-mode failure so the store can keep the optimistic value for the
|
|
13
|
+
* session and surface the error via onError.
|
|
14
|
+
* - Reads self-heal: malformed entries are removed on sight.
|
|
15
|
+
* - Reserved-key hardening: capability ids of `__proto__` / `constructor` /
|
|
16
|
+
* `prototype` are skipped while scanning so a crafted same-origin key can't
|
|
17
|
+
* reach the `__proto__` setter on the accumulator (SEC-LS1).
|
|
18
|
+
* - NOTE: localStorage is readable by any same-origin script. Do NOT persist
|
|
19
|
+
* secrets or PII in a capability payload (SEC-LS2).
|
|
20
|
+
*
|
|
21
|
+
* Cross-tab: `subscribe` listens to the `storage` event, which the spec fires
|
|
22
|
+
* in OTHER tabs only — the writing tab is reconciled via the store's in-memory
|
|
23
|
+
* path.
|
|
24
|
+
*/
|
|
25
|
+
import type { Adapter } from "../types";
|
|
26
|
+
export interface LocalStorageAdapterOptions {
|
|
27
|
+
/** Inject a Storage impl (tests / custom). */
|
|
28
|
+
storage?: Storage;
|
|
29
|
+
}
|
|
30
|
+
export default function createLocalStorageAdapter(options?: LocalStorageAdapterOptions): Adapter;
|
|
31
|
+
//# sourceMappingURL=createLocalStorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLocalStorageAdapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/v2/personalization/adapters/createLocalStorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,0BAA0B;IACzC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAuHT"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = createLocalStorageAdapter;
|
|
7
|
+
var _storageKey = require("./_storageKey");
|
|
8
|
+
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
|
+
* createLocalStorageAdapter — Portnet UI v2 · personalization
|
|
10
|
+
*
|
|
11
|
+
* Default Adapter. Persists each capability as an opaque envelope under a
|
|
12
|
+
* scoped key (see adapters/_storageKey.ts). The adapter never interprets
|
|
13
|
+
* `envelope.payload`.
|
|
14
|
+
*
|
|
15
|
+
* Safety:
|
|
16
|
+
* - SSR-safe: with no `window`, the adapter is inert (load → {}, save →
|
|
17
|
+
* resolved no-op) so it can be constructed anywhere.
|
|
18
|
+
* - Every storage access is try/catch-wrapped. `save` REJECTS on quota/
|
|
19
|
+
* private-mode failure so the store can keep the optimistic value for the
|
|
20
|
+
* session and surface the error via onError.
|
|
21
|
+
* - Reads self-heal: malformed entries are removed on sight.
|
|
22
|
+
* - Reserved-key hardening: capability ids of `__proto__` / `constructor` /
|
|
23
|
+
* `prototype` are skipped while scanning so a crafted same-origin key can't
|
|
24
|
+
* reach the `__proto__` setter on the accumulator (SEC-LS1).
|
|
25
|
+
* - NOTE: localStorage is readable by any same-origin script. Do NOT persist
|
|
26
|
+
* secrets or PII in a capability payload (SEC-LS2).
|
|
27
|
+
*
|
|
28
|
+
* Cross-tab: `subscribe` listens to the `storage` event, which the spec fires
|
|
29
|
+
* in OTHER tabs only — the writing tab is reconciled via the store's in-memory
|
|
30
|
+
* path.
|
|
31
|
+
*/
|
|
32
|
+
/** Object keys that must never be written from external (storage-derived) data. */
|
|
33
|
+
var RESERVED_KEYS = new Set(["__proto__", "constructor", "prototype"]);
|
|
34
|
+
function createLocalStorageAdapter(options) {
|
|
35
|
+
var opts = options || {};
|
|
36
|
+
var storage = opts.storage || (typeof window !== "undefined" && window.localStorage ? window.localStorage : null);
|
|
37
|
+
function isValidEnvelope(env) {
|
|
38
|
+
return !!env && _typeof(env) === "object" && Object.prototype.hasOwnProperty.call(env, "payload");
|
|
39
|
+
}
|
|
40
|
+
function safeRemove(key) {
|
|
41
|
+
if (!storage) return;
|
|
42
|
+
try {
|
|
43
|
+
storage.removeItem(key);
|
|
44
|
+
} catch (_unused) {
|
|
45
|
+
/* ignore */
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Synchronous scan of every capability blob for `scope`. */
|
|
50
|
+
function loadSync(scope) {
|
|
51
|
+
if (!storage) return {};
|
|
52
|
+
var out = {};
|
|
53
|
+
try {
|
|
54
|
+
var prefix = (0, _storageKey.buildScopePrefix)(scope);
|
|
55
|
+
for (var i = 0; i < storage.length; i++) {
|
|
56
|
+
var key = storage.key(i);
|
|
57
|
+
if (!key || key.indexOf(prefix) !== 0) continue;
|
|
58
|
+
var capId = key.slice(prefix.length);
|
|
59
|
+
// Skip empty + reserved keys: a same-origin writer could craft a
|
|
60
|
+
// `<prefix>__proto__` key, and `out[capId] = env` would otherwise hit
|
|
61
|
+
// the __proto__ setter on the accumulator (SEC-LS1).
|
|
62
|
+
if (!capId || RESERVED_KEYS.has(capId)) continue;
|
|
63
|
+
var raw = storage.getItem(key);
|
|
64
|
+
if (!raw) continue;
|
|
65
|
+
try {
|
|
66
|
+
var env = JSON.parse(raw);
|
|
67
|
+
if (isValidEnvelope(env)) out[capId] = env;else safeRemove(key);
|
|
68
|
+
} catch (_unused2) {
|
|
69
|
+
safeRemove(key);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} catch (_unused3) {
|
|
73
|
+
/* enumeration blocked (sandboxed) — return what we have */
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
function load(scope) {
|
|
78
|
+
return Promise.resolve(loadSync(scope));
|
|
79
|
+
}
|
|
80
|
+
function save(scope, capabilityId, envelope) {
|
|
81
|
+
if (!storage) return Promise.resolve();
|
|
82
|
+
try {
|
|
83
|
+
storage.setItem((0, _storageKey.buildKey)(scope, capabilityId), JSON.stringify(envelope));
|
|
84
|
+
return Promise.resolve();
|
|
85
|
+
} catch (e) {
|
|
86
|
+
// Quota exceeded / private mode / sandboxed: reject so the store keeps
|
|
87
|
+
// the optimistic in-memory value and notifies onError.
|
|
88
|
+
return Promise.reject(e);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function remove(scope, capabilityId) {
|
|
92
|
+
if (!storage) return Promise.resolve();
|
|
93
|
+
safeRemove((0, _storageKey.buildKey)(scope, capabilityId));
|
|
94
|
+
return Promise.resolve();
|
|
95
|
+
}
|
|
96
|
+
function subscribe(scope, onChange) {
|
|
97
|
+
if (typeof window === "undefined" || typeof window.addEventListener !== "function") {
|
|
98
|
+
return function noop() {};
|
|
99
|
+
}
|
|
100
|
+
var prefix = (0, _storageKey.buildScopePrefix)(scope);
|
|
101
|
+
var handler = function handleStorage(e) {
|
|
102
|
+
if (!e || e.key == null) return; // e.key === null on storage.clear()
|
|
103
|
+
// storageArea may be undefined in some environments; only filter when present.
|
|
104
|
+
if (e.storageArea && e.storageArea !== storage) return;
|
|
105
|
+
if (e.key.indexOf(prefix) !== 0) return;
|
|
106
|
+
var capId = e.key.slice(prefix.length);
|
|
107
|
+
if (capId && !RESERVED_KEYS.has(capId)) onChange(capId);
|
|
108
|
+
};
|
|
109
|
+
window.addEventListener("storage", handler);
|
|
110
|
+
return function unsubscribe() {
|
|
111
|
+
window.removeEventListener("storage", handler);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
name: "localStorage",
|
|
116
|
+
load: load,
|
|
117
|
+
loadSync: loadSync,
|
|
118
|
+
save: save,
|
|
119
|
+
remove: remove,
|
|
120
|
+
subscribe: subscribe,
|
|
121
|
+
capabilities: Object.freeze({
|
|
122
|
+
crossTab: true,
|
|
123
|
+
remote: false,
|
|
124
|
+
shared: false
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=createLocalStorageAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLocalStorageAdapter.js","names":["_storageKey","require","_typeof","obj","Symbol","iterator","constructor","prototype","RESERVED_KEYS","Set","createLocalStorageAdapter","options","opts","storage","window","localStorage","isValidEnvelope","env","Object","hasOwnProperty","call","safeRemove","key","removeItem","_unused","loadSync","scope","out","prefix","buildScopePrefix","i","length","indexOf","capId","slice","has","raw","getItem","JSON","parse","_unused2","_unused3","load","Promise","resolve","save","capabilityId","envelope","setItem","buildKey","stringify","e","reject","remove","subscribe","onChange","addEventListener","noop","handler","handleStorage","storageArea","unsubscribe","removeEventListener","freeze","name","capabilities","crossTab","remote","shared"],"sources":["../../../../src/lib/v2/personalization/adapters/createLocalStorageAdapter.ts"],"sourcesContent":["/**\r\n * createLocalStorageAdapter — Portnet UI v2 · personalization\r\n *\r\n * Default Adapter. Persists each capability as an opaque envelope under a\r\n * scoped key (see adapters/_storageKey.ts). The adapter never interprets\r\n * `envelope.payload`.\r\n *\r\n * Safety:\r\n * - SSR-safe: with no `window`, the adapter is inert (load → {}, save →\r\n * resolved no-op) so it can be constructed anywhere.\r\n * - Every storage access is try/catch-wrapped. `save` REJECTS on quota/\r\n * private-mode failure so the store can keep the optimistic value for the\r\n * session and surface the error via onError.\r\n * - Reads self-heal: malformed entries are removed on sight.\r\n * - Reserved-key hardening: capability ids of `__proto__` / `constructor` /\r\n * `prototype` are skipped while scanning so a crafted same-origin key can't\r\n * reach the `__proto__` setter on the accumulator (SEC-LS1).\r\n * - NOTE: localStorage is readable by any same-origin script. Do NOT persist\r\n * secrets or PII in a capability payload (SEC-LS2).\r\n *\r\n * Cross-tab: `subscribe` listens to the `storage` event, which the spec fires\r\n * in OTHER tabs only — the writing tab is reconciled via the store's in-memory\r\n * path.\r\n */\r\n\r\nimport { buildKey, buildScopePrefix } from \"./_storageKey\";\r\nimport type { Adapter, Envelope, Scope } from \"../types\";\r\n\r\nexport interface LocalStorageAdapterOptions {\r\n /** Inject a Storage impl (tests / custom). */\r\n storage?: Storage;\r\n}\r\n\r\n/** Object keys that must never be written from external (storage-derived) data. */\r\nconst RESERVED_KEYS = new Set([\"__proto__\", \"constructor\", \"prototype\"]);\r\n\r\nexport default function createLocalStorageAdapter(\r\n options?: LocalStorageAdapterOptions\r\n): Adapter {\r\n const opts: LocalStorageAdapterOptions = options || {};\r\n const storage: Storage | null =\r\n opts.storage ||\r\n (typeof window !== \"undefined\" && window.localStorage\r\n ? window.localStorage\r\n : null);\r\n\r\n function isValidEnvelope(env: unknown): env is Envelope {\r\n return (\r\n !!env &&\r\n typeof env === \"object\" &&\r\n Object.prototype.hasOwnProperty.call(env, \"payload\")\r\n );\r\n }\r\n\r\n function safeRemove(key: string): void {\r\n if (!storage) return;\r\n try {\r\n storage.removeItem(key);\r\n } catch {\r\n /* ignore */\r\n }\r\n }\r\n\r\n /** Synchronous scan of every capability blob for `scope`. */\r\n function loadSync(scope: Scope): Record<string, Envelope> {\r\n if (!storage) return {};\r\n const out: Record<string, Envelope> = {};\r\n try {\r\n const prefix = buildScopePrefix(scope);\r\n for (let i = 0; i < storage.length; i++) {\r\n const key = storage.key(i);\r\n if (!key || key.indexOf(prefix) !== 0) continue;\r\n const capId = key.slice(prefix.length);\r\n // Skip empty + reserved keys: a same-origin writer could craft a\r\n // `<prefix>__proto__` key, and `out[capId] = env` would otherwise hit\r\n // the __proto__ setter on the accumulator (SEC-LS1).\r\n if (!capId || RESERVED_KEYS.has(capId)) continue;\r\n const raw = storage.getItem(key);\r\n if (!raw) continue;\r\n try {\r\n const env: unknown = JSON.parse(raw);\r\n if (isValidEnvelope(env)) out[capId] = env;\r\n else safeRemove(key);\r\n } catch {\r\n safeRemove(key);\r\n }\r\n }\r\n } catch {\r\n /* enumeration blocked (sandboxed) — return what we have */\r\n }\r\n return out;\r\n }\r\n\r\n function load(scope: Scope): Promise<Record<string, Envelope>> {\r\n return Promise.resolve(loadSync(scope));\r\n }\r\n\r\n function save(\r\n scope: Scope,\r\n capabilityId: string,\r\n envelope: Envelope\r\n ): Promise<void> {\r\n if (!storage) return Promise.resolve();\r\n try {\r\n storage.setItem(buildKey(scope, capabilityId), JSON.stringify(envelope));\r\n return Promise.resolve();\r\n } catch (e) {\r\n // Quota exceeded / private mode / sandboxed: reject so the store keeps\r\n // the optimistic in-memory value and notifies onError.\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n function remove(scope: Scope, capabilityId: string): Promise<void> {\r\n if (!storage) return Promise.resolve();\r\n safeRemove(buildKey(scope, capabilityId));\r\n return Promise.resolve();\r\n }\r\n\r\n function subscribe(\r\n scope: Scope,\r\n onChange: (capabilityId: string) => void\r\n ): () => void {\r\n if (\r\n typeof window === \"undefined\" ||\r\n typeof window.addEventListener !== \"function\"\r\n ) {\r\n return function noop() {};\r\n }\r\n const prefix = buildScopePrefix(scope);\r\n const handler = function handleStorage(e: StorageEvent) {\r\n if (!e || e.key == null) return; // e.key === null on storage.clear()\r\n // storageArea may be undefined in some environments; only filter when present.\r\n if (e.storageArea && e.storageArea !== storage) return;\r\n if (e.key.indexOf(prefix) !== 0) return;\r\n const capId = e.key.slice(prefix.length);\r\n if (capId && !RESERVED_KEYS.has(capId)) onChange(capId);\r\n };\r\n window.addEventListener(\"storage\", handler);\r\n return function unsubscribe() {\r\n window.removeEventListener(\"storage\", handler);\r\n };\r\n }\r\n\r\n return Object.freeze({\r\n name: \"localStorage\",\r\n load,\r\n loadSync,\r\n save,\r\n remove,\r\n subscribe,\r\n capabilities: Object.freeze({\r\n crossTab: true,\r\n remote: false,\r\n shared: false,\r\n }),\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createMemoryAdapter — Portnet UI v2 · personalization
|
|
3
|
+
*
|
|
4
|
+
* An Adapter that keeps everything in a Map. Use it for:
|
|
5
|
+
* - unit tests (deterministic, no global storage state),
|
|
6
|
+
* - SSR / sandboxed environments where localStorage is unavailable,
|
|
7
|
+
* - Storybook stories (optionally pre-seeded),
|
|
8
|
+
* - an explicit "do not persist" opt-out.
|
|
9
|
+
*
|
|
10
|
+
* Same contract as the localStorage adapter minus `subscribe` (a single
|
|
11
|
+
* in-memory context has no cross-tab notion). `remote:false` lets the store
|
|
12
|
+
* skip the redundant async re-hydrate after a synchronous seed.
|
|
13
|
+
*/
|
|
14
|
+
import type { Adapter, Envelope, Scope } from "../types";
|
|
15
|
+
export interface MemoryAdapterSeedEntry {
|
|
16
|
+
scope: Scope;
|
|
17
|
+
capabilityId: string;
|
|
18
|
+
envelope: Envelope;
|
|
19
|
+
}
|
|
20
|
+
export interface MemoryAdapterOptions {
|
|
21
|
+
/** Optional pre-populated entries for tests/stories. */
|
|
22
|
+
seed?: MemoryAdapterSeedEntry[];
|
|
23
|
+
}
|
|
24
|
+
export default function createMemoryAdapter(options?: MemoryAdapterOptions): Adapter;
|
|
25
|
+
//# sourceMappingURL=createMemoryAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMemoryAdapter.d.ts","sourceRoot":"","sources":["../../../../src/lib/v2/personalization/adapters/createMemoryAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAkET"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = createMemoryAdapter;
|
|
7
|
+
/**
|
|
8
|
+
* createMemoryAdapter — Portnet UI v2 · personalization
|
|
9
|
+
*
|
|
10
|
+
* An Adapter that keeps everything in a Map. Use it for:
|
|
11
|
+
* - unit tests (deterministic, no global storage state),
|
|
12
|
+
* - SSR / sandboxed environments where localStorage is unavailable,
|
|
13
|
+
* - Storybook stories (optionally pre-seeded),
|
|
14
|
+
* - an explicit "do not persist" opt-out.
|
|
15
|
+
*
|
|
16
|
+
* Same contract as the localStorage adapter minus `subscribe` (a single
|
|
17
|
+
* in-memory context has no cross-tab notion). `remote:false` lets the store
|
|
18
|
+
* skip the redundant async re-hydrate after a synchronous seed.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
function createMemoryAdapter(options) {
|
|
22
|
+
var opts = options || {};
|
|
23
|
+
/** composite key -> envelope */
|
|
24
|
+
var map = new Map();
|
|
25
|
+
function compositeKey(scope, capabilityId) {
|
|
26
|
+
var tenant = scope && scope.tenantId ? scope.tenantId : "";
|
|
27
|
+
var user = scope && scope.userId ? scope.userId : "";
|
|
28
|
+
return tenant + "::" + user + "::" + capabilityId;
|
|
29
|
+
}
|
|
30
|
+
function scopePrefix(scope) {
|
|
31
|
+
var tenant = scope && scope.tenantId ? scope.tenantId : "";
|
|
32
|
+
var user = scope && scope.userId ? scope.userId : "";
|
|
33
|
+
return tenant + "::" + user + "::";
|
|
34
|
+
}
|
|
35
|
+
if (Array.isArray(opts.seed)) {
|
|
36
|
+
opts.seed.forEach(function seedEntry(entry) {
|
|
37
|
+
if (entry && entry.scope && entry.capabilityId && entry.envelope) {
|
|
38
|
+
map.set(compositeKey(entry.scope, entry.capabilityId), entry.envelope);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function loadSync(scope) {
|
|
43
|
+
var out = {};
|
|
44
|
+
var prefix = scopePrefix(scope);
|
|
45
|
+
map.forEach(function collect(envelope, key) {
|
|
46
|
+
if (key.indexOf(prefix) === 0) {
|
|
47
|
+
out[key.slice(prefix.length)] = envelope;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
function load(scope) {
|
|
53
|
+
return Promise.resolve(loadSync(scope));
|
|
54
|
+
}
|
|
55
|
+
function save(scope, capabilityId, envelope) {
|
|
56
|
+
map.set(compositeKey(scope, capabilityId), envelope);
|
|
57
|
+
return Promise.resolve();
|
|
58
|
+
}
|
|
59
|
+
function remove(scope, capabilityId) {
|
|
60
|
+
map["delete"](compositeKey(scope, capabilityId));
|
|
61
|
+
return Promise.resolve();
|
|
62
|
+
}
|
|
63
|
+
return Object.freeze({
|
|
64
|
+
name: "memory",
|
|
65
|
+
load: load,
|
|
66
|
+
loadSync: loadSync,
|
|
67
|
+
save: save,
|
|
68
|
+
remove: remove,
|
|
69
|
+
capabilities: Object.freeze({
|
|
70
|
+
crossTab: false,
|
|
71
|
+
remote: false,
|
|
72
|
+
shared: false
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=createMemoryAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMemoryAdapter.js","names":["createMemoryAdapter","options","opts","map","Map","compositeKey","scope","capabilityId","tenant","tenantId","user","userId","scopePrefix","Array","isArray","seed","forEach","seedEntry","entry","envelope","set","loadSync","out","prefix","collect","key","indexOf","slice","length","load","Promise","resolve","save","remove","Object","freeze","name","capabilities","crossTab","remote","shared"],"sources":["../../../../src/lib/v2/personalization/adapters/createMemoryAdapter.ts"],"sourcesContent":["/**\r\n * createMemoryAdapter — Portnet UI v2 · personalization\r\n *\r\n * An Adapter that keeps everything in a Map. Use it for:\r\n * - unit tests (deterministic, no global storage state),\r\n * - SSR / sandboxed environments where localStorage is unavailable,\r\n * - Storybook stories (optionally pre-seeded),\r\n * - an explicit \"do not persist\" opt-out.\r\n *\r\n * Same contract as the localStorage adapter minus `subscribe` (a single\r\n * in-memory context has no cross-tab notion). `remote:false` lets the store\r\n * skip the redundant async re-hydrate after a synchronous seed.\r\n */\r\n\r\nimport type { Adapter, Envelope, Scope } from \"../types\";\r\n\r\nexport interface MemoryAdapterSeedEntry {\r\n scope: Scope;\r\n capabilityId: string;\r\n envelope: Envelope;\r\n}\r\n\r\nexport interface MemoryAdapterOptions {\r\n /** Optional pre-populated entries for tests/stories. */\r\n seed?: MemoryAdapterSeedEntry[];\r\n}\r\n\r\nexport default function createMemoryAdapter(\r\n options?: MemoryAdapterOptions\r\n): Adapter {\r\n const opts: MemoryAdapterOptions = options || {};\r\n /** composite key -> envelope */\r\n const map = new Map<string, Envelope>();\r\n\r\n function compositeKey(scope: Scope, capabilityId: string): string {\r\n const tenant = scope && scope.tenantId ? scope.tenantId : \"\";\r\n const user = scope && scope.userId ? scope.userId : \"\";\r\n return tenant + \"::\" + user + \"::\" + capabilityId;\r\n }\r\n\r\n function scopePrefix(scope: Scope): string {\r\n const tenant = scope && scope.tenantId ? scope.tenantId : \"\";\r\n const user = scope && scope.userId ? scope.userId : \"\";\r\n return tenant + \"::\" + user + \"::\";\r\n }\r\n\r\n if (Array.isArray(opts.seed)) {\r\n opts.seed.forEach(function seedEntry(entry) {\r\n if (entry && entry.scope && entry.capabilityId && entry.envelope) {\r\n map.set(compositeKey(entry.scope, entry.capabilityId), entry.envelope);\r\n }\r\n });\r\n }\r\n\r\n function loadSync(scope: Scope): Record<string, Envelope> {\r\n const out: Record<string, Envelope> = {};\r\n const prefix = scopePrefix(scope);\r\n map.forEach(function collect(envelope, key) {\r\n if (key.indexOf(prefix) === 0) {\r\n out[key.slice(prefix.length)] = envelope;\r\n }\r\n });\r\n return out;\r\n }\r\n\r\n function load(scope: Scope): Promise<Record<string, Envelope>> {\r\n return Promise.resolve(loadSync(scope));\r\n }\r\n\r\n function save(\r\n scope: Scope,\r\n capabilityId: string,\r\n envelope: Envelope\r\n ): Promise<void> {\r\n map.set(compositeKey(scope, capabilityId), envelope);\r\n return Promise.resolve();\r\n }\r\n\r\n function remove(scope: Scope, capabilityId: string): Promise<void> {\r\n map.delete(compositeKey(scope, capabilityId));\r\n return Promise.resolve();\r\n }\r\n\r\n return Object.freeze({\r\n name: \"memory\",\r\n load,\r\n loadSync,\r\n save,\r\n remove,\r\n capabilities: Object.freeze({\r\n crossTab: false,\r\n remote: false,\r\n shared: false,\r\n }),\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* adapters — Portnet UI v2 · personalization
|
|
3
|
+
*
|
|
4
|
+
* Built-in storage adapters. A future remote adapter
|
|
5
|
+
* (createRestPersonalizationAdapter) drops in here and is swappable with
|
|
6
|
+
* zero changes to the store, the slices, the hooks, or the components.
|
|
7
|
+
*/
|
|
8
|
+
export { default as createLocalStorageAdapter } from "./createLocalStorageAdapter";
|
|
9
|
+
export { default as createMemoryAdapter } from "./createMemoryAdapter";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/v2/personalization/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "createLocalStorageAdapter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _createLocalStorageAdapter["default"];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "createMemoryAdapter", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _createMemoryAdapter["default"];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _createLocalStorageAdapter = _interopRequireDefault(require("./createLocalStorageAdapter"));
|
|
19
|
+
var _createMemoryAdapter = _interopRequireDefault(require("./createMemoryAdapter"));
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_createLocalStorageAdapter","_interopRequireDefault","require","_createMemoryAdapter","obj","__esModule"],"sources":["../../../../src/lib/v2/personalization/adapters/index.ts"],"sourcesContent":["/**\r\n * adapters — Portnet UI v2 · personalization\r\n *\r\n * Built-in storage adapters. A future remote adapter\r\n * (createRestPersonalizationAdapter) drops in here and is swappable with\r\n * zero changes to the store, the slices, the hooks, or the components.\r\n */\r\n\r\nexport { default as createLocalStorageAdapter } from \"./createLocalStorageAdapter\";\r\nexport { default as createMemoryAdapter } from \"./createMemoryAdapter\";\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAQA,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAuE,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* favorites — Portnet UI v2 · personalization capability
|
|
3
|
+
*
|
|
4
|
+
* The Favorites framework. Self-registers the "favorites" capability with
|
|
5
|
+
* the schema registry at import time, so the capability-agnostic
|
|
6
|
+
* foundation discovers its schemaVersion / defaultState / migrate without
|
|
7
|
+
* any hardcoding.
|
|
8
|
+
*
|
|
9
|
+
* State model (the capability payload):
|
|
10
|
+
* { [resourceKey]: FavoriteRef[] } FavoriteRef = { id, addedAt }
|
|
11
|
+
*
|
|
12
|
+
* `resourceKey` namespaces favorites per list/entity type (e.g.
|
|
13
|
+
* "ti:list", "declarations:list"), so one user's favorites across
|
|
14
|
+
* different screens never collide. `id` is the business row id.
|
|
15
|
+
*
|
|
16
|
+
* Performance: the pure helpers below rebuild only the touched
|
|
17
|
+
* resourceKey's array and shallow-copy the map, so the store's structural
|
|
18
|
+
* sharing keeps every OTHER resource's list referentially stable —
|
|
19
|
+
* toggling a favorite on screen B does not re-render screen A, and a
|
|
20
|
+
* boolean per-row selector lets each grid cell re-render only when its own
|
|
21
|
+
* membership flips.
|
|
22
|
+
*/
|
|
23
|
+
import type { FavoriteRef } from "../types";
|
|
24
|
+
import type { RowId } from "../../types/common";
|
|
25
|
+
export declare const FAVORITES_CAPABILITY_ID = "favorites";
|
|
26
|
+
export interface UseFavoritesResult {
|
|
27
|
+
items: readonly FavoriteRef[];
|
|
28
|
+
ids: Set<RowId>;
|
|
29
|
+
count: number;
|
|
30
|
+
isFavorite: (id: RowId) => boolean;
|
|
31
|
+
add: (id: RowId) => void;
|
|
32
|
+
remove: (id: RowId) => void;
|
|
33
|
+
toggle: (id: RowId) => void;
|
|
34
|
+
clear: () => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* useFavorites(resourceKey) — list, membership and actions for one resource.
|
|
38
|
+
*/
|
|
39
|
+
export declare function useFavorites(resourceKey: string): UseFavoritesResult;
|
|
40
|
+
export interface UseIsFavoriteResult {
|
|
41
|
+
isFavorite: boolean;
|
|
42
|
+
toggle: () => void;
|
|
43
|
+
add: () => void;
|
|
44
|
+
remove: () => void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* useIsFavorite(resourceKey, id) — focused per-row hook. Returns a boolean
|
|
48
|
+
* (Object.is bail-out: a row re-renders only when ITS membership flips)
|
|
49
|
+
* plus a bound toggle/add/remove. This is the cell-level hook the DataGrid
|
|
50
|
+
* favorite column consumes (Batch 5).
|
|
51
|
+
*/
|
|
52
|
+
export declare function useIsFavorite(resourceKey: string, id: RowId): UseIsFavoriteResult;
|
|
53
|
+
//# sourceMappingURL=favorites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../src/lib/v2/personalization/capabilities/favorites.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKhD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAyGnD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC;IACnC,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC;IACzB,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA+EpE;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,KAAK,GACR,mBAAmB,CAmDrB"}
|