@lumeweb/portal-framework-ui 0.0.1 → 0.1.1
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/LICENSE +9 -0
- package/README.md +1 -45
- package/dist/esm/components/Copyable.d.ts +43 -0
- package/dist/esm/components/Copyable.js +50 -0
- package/dist/esm/components/Copyable.js.map +1 -0
- package/dist/esm/components/FilterChip.d.ts +16 -0
- package/dist/esm/components/FilterChip.js +47 -0
- package/dist/esm/components/FilterChip.js.map +1 -0
- package/dist/esm/components/Forms.d.ts +55 -0
- package/dist/esm/components/Forms.js +123 -0
- package/dist/esm/components/Forms.js.map +1 -0
- package/dist/esm/components/InlineAuthLinkBanner.d.ts +18 -0
- package/dist/esm/components/InlineAuthLinkBanner.js +23 -0
- package/dist/esm/components/InlineAuthLinkBanner.js.map +1 -0
- package/dist/esm/components/KeyboardShortcutDialog.d.ts +12 -0
- package/dist/esm/components/KeyboardShortcutDialog.js +48 -0
- package/dist/esm/components/KeyboardShortcutDialog.js.map +1 -0
- package/dist/esm/components/Loading.d.ts +13 -0
- package/dist/esm/components/Loading.js +38 -0
- package/dist/esm/components/Loading.js.map +1 -0
- package/dist/esm/components/LumeLogo.d.ts +12 -0
- package/dist/esm/components/LumeLogo.js +22 -0
- package/dist/esm/components/LumeLogo.js.map +1 -0
- package/dist/esm/components/MainNavigation.d.ts +11 -0
- package/dist/esm/components/MainNavigation.js +227 -0
- package/dist/esm/components/MainNavigation.js.map +1 -0
- package/dist/esm/components/SkeletonLoader.d.ts +25 -0
- package/dist/esm/components/SkeletonLoader.js +78 -0
- package/dist/esm/components/SkeletonLoader.js.map +1 -0
- package/dist/esm/components/TableActionsDropdown.d.ts +18 -0
- package/dist/esm/components/TableActionsDropdown.js +34 -0
- package/dist/esm/components/TableActionsDropdown.js.map +1 -0
- package/dist/esm/components/TableContainer.d.ts +13 -0
- package/dist/esm/components/TableContainer.js +15 -0
- package/dist/esm/components/TableContainer.js.map +1 -0
- package/dist/esm/components/ThemeSwitcher.d.ts +7 -0
- package/dist/esm/components/ThemeSwitcher.js +38 -0
- package/dist/esm/components/ThemeSwitcher.js.map +1 -0
- package/dist/esm/components/ThemedBadge.d.ts +23 -0
- package/dist/esm/components/ThemedBadge.js +20 -0
- package/dist/esm/components/ThemedBadge.js.map +1 -0
- package/dist/esm/components/actions/ActionListRenderer.d.ts +15 -0
- package/dist/esm/components/actions/ActionListRenderer.js +38 -0
- package/dist/esm/components/actions/ActionListRenderer.js.map +1 -0
- package/dist/esm/components/actions/actionHelpers.d.ts +127 -0
- package/dist/esm/components/actions/actionHelpers.js +205 -0
- package/dist/esm/components/actions/actionHelpers.js.map +1 -0
- package/dist/esm/components/actions/index.d.ts +6 -0
- package/dist/esm/components/actions/index.js +7 -0
- package/dist/esm/components/actions/items/ButtonActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/ButtonActionItem.js +23 -0
- package/dist/esm/components/actions/items/ButtonActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/CancelActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/CancelActionItem.js +28 -0
- package/dist/esm/components/actions/items/CancelActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/CustomActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/CustomActionItem.js +27 -0
- package/dist/esm/components/actions/items/CustomActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/LinkActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/LinkActionItem.js +33 -0
- package/dist/esm/components/actions/items/LinkActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/RetryActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/RetryActionItem.js +23 -0
- package/dist/esm/components/actions/items/RetryActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/SubmitActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/SubmitActionItem.js +26 -0
- package/dist/esm/components/actions/items/SubmitActionItem.js.map +1 -0
- package/dist/esm/components/actions/register.d.ts +5 -0
- package/dist/esm/components/actions/register.js +20 -0
- package/dist/esm/components/actions/register.js.map +1 -0
- package/dist/esm/components/actions/registry.d.ts +14 -0
- package/dist/esm/components/actions/registry.js +20 -0
- package/dist/esm/components/actions/registry.js.map +1 -0
- package/dist/esm/components/actions/types.d.ts +132 -0
- package/dist/esm/components/actions/types.js +29 -0
- package/dist/esm/components/actions/types.js.map +1 -0
- package/dist/esm/components/app/AppComponent.d.ts +17 -0
- package/dist/esm/components/app/AppComponent.js +179 -0
- package/dist/esm/components/app/AppComponent.js.map +1 -0
- package/dist/esm/components/data-table/BaseTable.d.ts +86 -0
- package/dist/esm/components/data-table/BaseTable.js +123 -0
- package/dist/esm/components/data-table/BaseTable.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableContent.d.ts +48 -0
- package/dist/esm/components/data-table/BaseTableContent.js +38 -0
- package/dist/esm/components/data-table/BaseTableContent.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableInner.d.ts +11 -0
- package/dist/esm/components/data-table/BaseTableInner.js +35 -0
- package/dist/esm/components/data-table/BaseTableInner.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.d.ts +31 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.js +137 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.js.map +1 -0
- package/dist/esm/components/data-table/DataTable.d.ts +18 -0
- package/dist/esm/components/data-table/DataTable.js +97 -0
- package/dist/esm/components/data-table/DataTable.js.map +1 -0
- package/dist/esm/components/data-table/DataTable.types.d.ts +203 -0
- package/dist/esm/components/data-table/DataTable.types.js +25 -0
- package/dist/esm/components/data-table/DataTable.types.js.map +1 -0
- package/dist/esm/components/data-table/DataTableController.d.ts +19 -0
- package/dist/esm/components/data-table/DataTableController.js +31 -0
- package/dist/esm/components/data-table/DataTableController.js.map +1 -0
- package/dist/esm/components/data-table/DefaultPagination.d.ts +7 -0
- package/dist/esm/components/data-table/DefaultPagination.js +62 -0
- package/dist/esm/components/data-table/DefaultPagination.js.map +1 -0
- package/dist/esm/components/data-table/DefaultTableLayout.d.ts +28 -0
- package/dist/esm/components/data-table/DefaultTableLayout.js +70 -0
- package/dist/esm/components/data-table/DefaultTableLayout.js.map +1 -0
- package/dist/esm/components/data-table/EmptyState.d.ts +19 -0
- package/dist/esm/components/data-table/EmptyState.js +16 -0
- package/dist/esm/components/data-table/EmptyState.js.map +1 -0
- package/dist/esm/components/data-table/LoadingState.d.ts +19 -0
- package/dist/esm/components/data-table/LoadingState.js +34 -0
- package/dist/esm/components/data-table/LoadingState.js.map +1 -0
- package/dist/esm/components/data-table/TableAction.d.ts +21 -0
- package/dist/esm/components/data-table/TableAction.js +26 -0
- package/dist/esm/components/data-table/TableAction.js.map +1 -0
- package/dist/esm/components/data-table/TableActionMenu.d.ts +20 -0
- package/dist/esm/components/data-table/TableActionMenu.js +31 -0
- package/dist/esm/components/data-table/TableActionMenu.js.map +1 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.d.ts +48 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.js +45 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.js.map +1 -0
- package/dist/esm/components/data-table/Toolbar.d.ts +17 -0
- package/dist/esm/components/data-table/Toolbar.js +176 -0
- package/dist/esm/components/data-table/Toolbar.js.map +1 -0
- package/dist/esm/components/data-table/ToolbarRegistry.d.ts +66 -0
- package/dist/esm/components/data-table/ToolbarRegistry.js +89 -0
- package/dist/esm/components/data-table/ToolbarRegistry.js.map +1 -0
- package/dist/esm/components/data-table/ToolbarRenderer.d.ts +45 -0
- package/dist/esm/components/data-table/ToolbarRenderer.js +137 -0
- package/dist/esm/components/data-table/ToolbarRenderer.js.map +1 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.d.ts +30 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.js +60 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.js.map +1 -0
- package/dist/esm/components/data-table/contexts/RefineTable.d.ts +25 -0
- package/dist/esm/components/data-table/contexts/RefineTable.js +69 -0
- package/dist/esm/components/data-table/contexts/RefineTable.js.map +1 -0
- package/dist/esm/components/data-table/contexts/TableConfig.d.ts +24 -0
- package/dist/esm/components/data-table/contexts/TableConfig.js +29 -0
- package/dist/esm/components/data-table/contexts/TableConfig.js.map +1 -0
- package/dist/esm/components/data-table/contexts/TableInstance.d.ts +20 -0
- package/dist/esm/components/data-table/contexts/TableInstance.js +21 -0
- package/dist/esm/components/data-table/contexts/TableInstance.js.map +1 -0
- package/dist/esm/components/data-table/contexts/index.d.ts +5 -0
- package/dist/esm/components/data-table/contexts/index.js +6 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.d.ts +16 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.js +31 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.js.map +1 -0
- package/dist/esm/components/data-table/index.d.ts +50 -0
- package/dist/esm/components/data-table/index.js +39 -0
- package/dist/esm/components/data-table/register.d.ts +1 -0
- package/dist/esm/components/data-table/register.js +1 -0
- package/dist/esm/components/data-table/tableOptions.d.ts +18 -0
- package/dist/esm/components/data-table/tableOptions.js +40 -0
- package/dist/esm/components/data-table/tableOptions.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.d.ts +18 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js +105 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.d.ts +22 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js +74 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.d.ts +27 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js +29 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.d.ts +52 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.js +57 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js +34 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js +25 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.d.ts +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js +44 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js +29 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.d.ts +16 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js +61 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js +33 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.d.ts +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js +95 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js +25 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.d.ts +9 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.js +10 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.d.ts +43 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js +102 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.d.ts +19 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.js +34 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/index.d.ts +11 -0
- package/dist/esm/components/data-table/toolbarItems/filters/index.js +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/register.d.ts +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/register.js +8 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.d.ts +140 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.js +58 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.d.ts +24 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.js +43 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/index.d.ts +17 -0
- package/dist/esm/components/data-table/toolbarItems/index.js +18 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.d.ts +15 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.js +19 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/index.d.ts +6 -0
- package/dist/esm/components/data-table/toolbarItems/items/index.js +6 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.d.ts +7 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js +36 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.d.ts +7 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.js +66 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.d.ts +16 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.js +20 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/register.d.ts +24 -0
- package/dist/esm/components/data-table/toolbarItems/register.js +119 -0
- package/dist/esm/components/data-table/toolbarItems/register.js.map +1 -0
- package/dist/esm/components/data-table/useMobileDetection.d.ts +18 -0
- package/dist/esm/components/data-table/useMobileDetection.js +32 -0
- package/dist/esm/components/data-table/useMobileDetection.js.map +1 -0
- package/dist/esm/components/data-table/useTableHandlers.d.ts +57 -0
- package/dist/esm/components/data-table/useTableHandlers.js +69 -0
- package/dist/esm/components/data-table/useTableHandlers.js.map +1 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.d.ts +16 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.js +12 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.context.d.ts +18 -0
- package/dist/esm/components/dialog/Dialog.context.js +80 -0
- package/dist/esm/components/dialog/Dialog.context.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.registry.d.ts +22 -0
- package/dist/esm/components/dialog/Dialog.registry.js +24 -0
- package/dist/esm/components/dialog/Dialog.registry.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.renderer.d.ts +9 -0
- package/dist/esm/components/dialog/Dialog.renderer.js +63 -0
- package/dist/esm/components/dialog/Dialog.renderer.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.types.d.ts +273 -0
- package/dist/esm/components/dialog/Dialog.types.js +233 -0
- package/dist/esm/components/dialog/Dialog.types.js.map +1 -0
- package/dist/esm/components/dialog/DialogActions.context.d.ts +13 -0
- package/dist/esm/components/dialog/DialogActions.context.js +13 -0
- package/dist/esm/components/dialog/DialogActions.context.js.map +1 -0
- package/dist/esm/components/dialog/DialogContainer.d.ts +15 -0
- package/dist/esm/components/dialog/DialogContainer.js +37 -0
- package/dist/esm/components/dialog/DialogContainer.js.map +1 -0
- package/dist/esm/components/dialog/DialogContent.d.ts +14 -0
- package/dist/esm/components/dialog/DialogContent.js +18 -0
- package/dist/esm/components/dialog/DialogContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogFooterContent.d.ts +14 -0
- package/dist/esm/components/dialog/DialogFooterContent.js +20 -0
- package/dist/esm/components/dialog/DialogFooterContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogHeaderContent.d.ts +12 -0
- package/dist/esm/components/dialog/DialogHeaderContent.js +24 -0
- package/dist/esm/components/dialog/DialogHeaderContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogState.context.d.ts +11 -0
- package/dist/esm/components/dialog/DialogState.context.js +11 -0
- package/dist/esm/components/dialog/DialogState.context.js.map +1 -0
- package/dist/esm/components/dialog/index.d.ts +6 -0
- package/dist/esm/components/dialog/index.js +8 -0
- package/dist/esm/components/dialog/types/AlertDialog.d.ts +19 -0
- package/dist/esm/components/dialog/types/AlertDialog.js +29 -0
- package/dist/esm/components/dialog/types/AlertDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.d.ts +17 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.js +24 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/CustomDialog.d.ts +28 -0
- package/dist/esm/components/dialog/types/CustomDialog.js +17 -0
- package/dist/esm/components/dialog/types/CustomDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/FormDialog.d.ts +22 -0
- package/dist/esm/components/dialog/types/FormDialog.js +46 -0
- package/dist/esm/components/dialog/types/FormDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/WizardDialog.d.ts +29 -0
- package/dist/esm/components/dialog/types/WizardDialog.js +43 -0
- package/dist/esm/components/dialog/types/WizardDialog.js.map +1 -0
- package/dist/esm/components/dialog/utils/dialogClasses.d.ts +7 -0
- package/dist/esm/components/dialog/utils/dialogClasses.js +14 -0
- package/dist/esm/components/dialog/utils/dialogClasses.js.map +1 -0
- package/dist/esm/components/dialog/utils/dialogDetection.d.ts +32 -0
- package/dist/esm/components/dialog/utils/dialogDetection.js +47 -0
- package/dist/esm/components/dialog/utils/dialogDetection.js.map +1 -0
- package/dist/esm/components/dialog/utils/index.d.ts +3 -0
- package/dist/esm/components/dialog/utils/index.js +4 -0
- package/dist/esm/components/editor/BlockTypeDropdown.d.ts +12 -0
- package/dist/esm/components/editor/BlockTypeDropdown.js +57 -0
- package/dist/esm/components/editor/BlockTypeDropdown.js.map +1 -0
- package/dist/esm/components/editor/Editor.d.ts +7 -0
- package/dist/esm/components/editor/Editor.js +17 -0
- package/dist/esm/components/editor/Editor.js.map +1 -0
- package/dist/esm/components/editor/EditorInner.d.ts +14 -0
- package/dist/esm/components/editor/EditorInner.js +107 -0
- package/dist/esm/components/editor/EditorInner.js.map +1 -0
- package/dist/esm/components/editor/Preview.d.ts +5 -0
- package/dist/esm/components/editor/Preview.js +18 -0
- package/dist/esm/components/editor/Preview.js.map +1 -0
- package/dist/esm/components/editor/ToolbarContext.d.ts +39 -0
- package/dist/esm/components/editor/ToolbarContext.js +54 -0
- package/dist/esm/components/editor/ToolbarContext.js.map +1 -0
- package/dist/esm/components/editor/ToolbarPlugin.d.ts +20 -0
- package/dist/esm/components/editor/ToolbarPlugin.js +194 -0
- package/dist/esm/components/editor/ToolbarPlugin.js.map +1 -0
- package/dist/esm/components/editor/formatting.d.ts +15 -0
- package/dist/esm/components/editor/formatting.js +117 -0
- package/dist/esm/components/editor/formatting.js.map +1 -0
- package/dist/esm/components/editor/index.d.ts +3 -0
- package/dist/esm/components/editor/index.js +3 -0
- package/dist/esm/components/form/FormGroup.d.ts +18 -0
- package/dist/esm/components/form/FormGroup.js +28 -0
- package/dist/esm/components/form/FormGroup.js.map +1 -0
- package/dist/esm/components/form/FormRenderer.d.ts +14 -0
- package/dist/esm/components/form/FormRenderer.js +179 -0
- package/dist/esm/components/form/FormRenderer.js.map +1 -0
- package/dist/esm/components/form/SchemaForm.d.ts +18 -0
- package/dist/esm/components/form/SchemaForm.js +172 -0
- package/dist/esm/components/form/SchemaForm.js.map +1 -0
- package/dist/esm/components/form/StepControlContext.d.ts +199 -0
- package/dist/esm/components/form/StepControlContext.js +249 -0
- package/dist/esm/components/form/StepControlContext.js.map +1 -0
- package/dist/esm/components/form/StepSchemaForm.d.ts +22 -0
- package/dist/esm/components/form/StepSchemaForm.js +176 -0
- package/dist/esm/components/form/StepSchemaForm.js.map +1 -0
- package/dist/esm/components/form/WizardForm.d.ts +16 -0
- package/dist/esm/components/form/WizardForm.js +126 -0
- package/dist/esm/components/form/WizardForm.js.map +1 -0
- package/dist/esm/components/form/WizardStepContent.d.ts +26 -0
- package/dist/esm/components/form/WizardStepContent.js +46 -0
- package/dist/esm/components/form/WizardStepContent.js.map +1 -0
- package/dist/esm/components/form/__mocks__/@hookform/resolvers/zod.d.ts +8 -0
- package/dist/esm/components/form/adapters.d.ts +23 -0
- package/dist/esm/components/form/adapters.js +43 -0
- package/dist/esm/components/form/adapters.js.map +1 -0
- package/dist/esm/components/form/autocomplete/index.d.ts +3 -0
- package/dist/esm/components/form/autocomplete/index.js +4 -0
- package/dist/esm/components/form/autocomplete/register.d.ts +8 -0
- package/dist/esm/components/form/autocomplete/register.js +161 -0
- package/dist/esm/components/form/autocomplete/register.js.map +1 -0
- package/dist/esm/components/form/autocomplete/rules.d.ts +15 -0
- package/dist/esm/components/form/autocomplete/rules.js +198 -0
- package/dist/esm/components/form/autocomplete/rules.js.map +1 -0
- package/dist/esm/components/form/context.d.ts +29 -0
- package/dist/esm/components/form/context.js +25 -0
- package/dist/esm/components/form/context.js.map +1 -0
- package/dist/esm/components/form/fields/Checkbox.d.ts +6 -0
- package/dist/esm/components/form/fields/Checkbox.js +33 -0
- package/dist/esm/components/form/fields/Checkbox.js.map +1 -0
- package/dist/esm/components/form/fields/DatePicker.d.ts +6 -0
- package/dist/esm/components/form/fields/DatePicker.js +29 -0
- package/dist/esm/components/form/fields/DatePicker.js.map +1 -0
- package/dist/esm/components/form/fields/EmailInput.d.ts +6 -0
- package/dist/esm/components/form/fields/EmailInput.js +25 -0
- package/dist/esm/components/form/fields/EmailInput.js.map +1 -0
- package/dist/esm/components/form/fields/FileInput.d.ts +6 -0
- package/dist/esm/components/form/fields/FileInput.js +28 -0
- package/dist/esm/components/form/fields/FileInput.js.map +1 -0
- package/dist/esm/components/form/fields/Input.d.ts +6 -0
- package/dist/esm/components/form/fields/Input.js +30 -0
- package/dist/esm/components/form/fields/Input.js.map +1 -0
- package/dist/esm/components/form/fields/RadioGroup.d.ts +6 -0
- package/dist/esm/components/form/fields/RadioGroup.js +42 -0
- package/dist/esm/components/form/fields/RadioGroup.js.map +1 -0
- package/dist/esm/components/form/fields/RichText.d.ts +6 -0
- package/dist/esm/components/form/fields/RichText.js +30 -0
- package/dist/esm/components/form/fields/RichText.js.map +1 -0
- package/dist/esm/components/form/fields/Select.d.ts +6 -0
- package/dist/esm/components/form/fields/Select.js +37 -0
- package/dist/esm/components/form/fields/Select.js.map +1 -0
- package/dist/esm/components/form/fields/Slider.d.ts +6 -0
- package/dist/esm/components/form/fields/Slider.js +29 -0
- package/dist/esm/components/form/fields/Slider.js.map +1 -0
- package/dist/esm/components/form/fields/Switch.d.ts +6 -0
- package/dist/esm/components/form/fields/Switch.js +33 -0
- package/dist/esm/components/form/fields/Switch.js.map +1 -0
- package/dist/esm/components/form/fields/Textarea.d.ts +6 -0
- package/dist/esm/components/form/fields/Textarea.js +28 -0
- package/dist/esm/components/form/fields/Textarea.js.map +1 -0
- package/dist/esm/components/form/fields/index.d.ts +13 -0
- package/dist/esm/components/form/fields/index.js +14 -0
- package/dist/esm/components/form/fields/registry.d.ts +11 -0
- package/dist/esm/components/form/fields/registry.js +15 -0
- package/dist/esm/components/form/fields/registry.js.map +1 -0
- package/dist/esm/components/form/fields/types.d.ts +37 -0
- package/dist/esm/components/form/fields/types.js +21 -0
- package/dist/esm/components/form/fields/types.js.map +1 -0
- package/dist/esm/components/form/handlers/core.d.ts +19 -0
- package/dist/esm/components/form/handlers/core.js +51 -0
- package/dist/esm/components/form/handlers/core.js.map +1 -0
- package/dist/esm/components/form/handlers/step.d.ts +19 -0
- package/dist/esm/components/form/handlers/step.js +40 -0
- package/dist/esm/components/form/handlers/step.js.map +1 -0
- package/dist/esm/components/form/index.d.ts +26 -0
- package/dist/esm/components/form/index.js +28 -0
- package/dist/esm/components/form/register.d.ts +5 -0
- package/dist/esm/components/form/register.js +31 -0
- package/dist/esm/components/form/register.js.map +1 -0
- package/dist/esm/components/form/types.d.ts +521 -0
- package/dist/esm/components/form/types.js +69 -0
- package/dist/esm/components/form/types.js.map +1 -0
- package/dist/esm/components/form/utils/animationUtils.d.ts +14 -0
- package/dist/esm/components/form/utils/animationUtils.js +20 -0
- package/dist/esm/components/form/utils/animationUtils.js.map +1 -0
- package/dist/esm/components/form/utils/autoSave.d.ts +8 -0
- package/dist/esm/components/form/utils/autoSave.js +17 -0
- package/dist/esm/components/form/utils/autoSave.js.map +1 -0
- package/dist/esm/components/form/utils/index.d.ts +4 -0
- package/dist/esm/components/form/utils/index.js +5 -0
- package/dist/esm/components/form/utils/stepRetry.d.ts +12 -0
- package/dist/esm/components/form/utils/stepRetry.js +16 -0
- package/dist/esm/components/form/utils/stepRetry.js.map +1 -0
- package/dist/esm/components/index.d.ts +126 -0
- package/dist/esm/components/index.js +130 -0
- package/dist/esm/components/layout/DesktopSidebar.d.ts +5 -0
- package/dist/esm/components/layout/DesktopSidebar.js +51 -0
- package/dist/esm/components/layout/DesktopSidebar.js.map +1 -0
- package/dist/esm/components/layout/GeneralLayout.d.ts +5 -0
- package/dist/esm/components/layout/GeneralLayout.js +34 -0
- package/dist/esm/components/layout/GeneralLayout.js.map +1 -0
- package/dist/esm/components/layout/MobileMenu.d.ts +5 -0
- package/dist/esm/components/layout/MobileMenu.js +48 -0
- package/dist/esm/components/layout/MobileMenu.js.map +1 -0
- package/dist/esm/components/layout/PageHeader.d.ts +16 -0
- package/dist/esm/components/layout/PageHeader.js +20 -0
- package/dist/esm/components/layout/PageHeader.js.map +1 -0
- package/dist/esm/components/layout/SidebarContext.d.ts +10 -0
- package/dist/esm/components/layout/SidebarContext.js +27 -0
- package/dist/esm/components/layout/SidebarContext.js.map +1 -0
- package/dist/esm/components/layout/SidebarToggle.d.ts +12 -0
- package/dist/esm/components/layout/SidebarToggle.js +23 -0
- package/dist/esm/components/layout/SidebarToggle.js.map +1 -0
- package/dist/esm/components/layout/UserNav.d.ts +5 -0
- package/dist/esm/components/layout/UserNav.js +110 -0
- package/dist/esm/components/layout/UserNav.js.map +1 -0
- package/dist/esm/components/layout/index.d.ts +7 -0
- package/dist/esm/components/layout/index.js +9 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.d.ts +23 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js +28 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js.map +1 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.d.ts +10 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js +30 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js.map +1 -0
- package/dist/esm/components/shared/UnifiedFooter.d.ts +17 -0
- package/dist/esm/components/shared/UnifiedFooter.js +210 -0
- package/dist/esm/components/shared/UnifiedFooter.js.map +1 -0
- package/dist/esm/components/shared/UnifiedHeader.d.ts +17 -0
- package/dist/esm/components/shared/UnifiedHeader.js +48 -0
- package/dist/esm/components/shared/UnifiedHeader.js.map +1 -0
- package/dist/esm/components/shared/context/FooterContext.d.ts +18 -0
- package/dist/esm/components/shared/context/FooterContext.js +24 -0
- package/dist/esm/components/shared/context/FooterContext.js.map +1 -0
- package/dist/esm/components/shared/context/HeaderContext.d.ts +18 -0
- package/dist/esm/components/shared/context/HeaderContext.js +23 -0
- package/dist/esm/components/shared/context/HeaderContext.js.map +1 -0
- package/dist/esm/components/shared/context/index.d.ts +3 -0
- package/dist/esm/components/shared/context/index.js +4 -0
- package/dist/esm/components/shared/environment/builders.d.ts +95 -0
- package/dist/esm/components/shared/environment/builders.js +163 -0
- package/dist/esm/components/shared/environment/builders.js.map +1 -0
- package/dist/esm/components/shared/environment/index.d.ts +7 -0
- package/dist/esm/components/shared/environment/index.js +3 -0
- package/dist/esm/components/shared/footers/ActionsFooter.d.ts +11 -0
- package/dist/esm/components/shared/footers/ActionsFooter.js +19 -0
- package/dist/esm/components/shared/footers/ActionsFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/DefaultFooter.d.ts +13 -0
- package/dist/esm/components/shared/footers/DefaultFooter.js +20 -0
- package/dist/esm/components/shared/footers/DefaultFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/FormFooter.d.ts +15 -0
- package/dist/esm/components/shared/footers/FormFooter.js +28 -0
- package/dist/esm/components/shared/footers/FormFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/StepFormFooter.d.ts +15 -0
- package/dist/esm/components/shared/footers/StepFormFooter.js +28 -0
- package/dist/esm/components/shared/footers/StepFormFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/WizardFooter.d.ts +12 -0
- package/dist/esm/components/shared/footers/WizardFooter.js +72 -0
- package/dist/esm/components/shared/footers/WizardFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/index.d.ts +6 -0
- package/dist/esm/components/shared/footers/index.js +7 -0
- package/dist/esm/components/shared/headers/DefaultHeader.d.ts +13 -0
- package/dist/esm/components/shared/headers/DefaultHeader.js +30 -0
- package/dist/esm/components/shared/headers/DefaultHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/FormHeader.d.ts +12 -0
- package/dist/esm/components/shared/headers/FormHeader.js +31 -0
- package/dist/esm/components/shared/headers/FormHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/WizardHeader.d.ts +9 -0
- package/dist/esm/components/shared/headers/WizardHeader.js +116 -0
- package/dist/esm/components/shared/headers/WizardHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/index.d.ts +4 -0
- package/dist/esm/components/shared/headers/index.js +5 -0
- package/dist/esm/components/shared/hooks/index.d.ts +3 -0
- package/dist/esm/components/shared/hooks/index.js +4 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.d.ts +17 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js +17 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js.map +1 -0
- package/dist/esm/components/shared/hooks/useForceRerender.d.ts +17 -0
- package/dist/esm/components/shared/hooks/useForceRerender.js +26 -0
- package/dist/esm/components/shared/hooks/useForceRerender.js.map +1 -0
- package/dist/esm/components/shared/index.d.ts +31 -0
- package/dist/esm/components/shared/index.js +36 -0
- package/dist/esm/components/shared/registry/FooterRegistry.d.ts +15 -0
- package/dist/esm/components/shared/registry/FooterRegistry.js +47 -0
- package/dist/esm/components/shared/registry/FooterRegistry.js.map +1 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.d.ts +15 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.js +41 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.js.map +1 -0
- package/dist/esm/components/shared/registry/index.d.ts +4 -0
- package/dist/esm/components/shared/registry/index.js +5 -0
- package/dist/esm/components/shared/registry/types.d.ts +23 -0
- package/dist/esm/components/shared/registry/types.js +21 -0
- package/dist/esm/components/shared/registry/types.js.map +1 -0
- package/dist/esm/components/shared/types/container.d.ts +70 -0
- package/dist/esm/components/shared/types/container.js +35 -0
- package/dist/esm/components/shared/types/container.js.map +1 -0
- package/dist/esm/components/shared/types/environment.d.ts +25 -0
- package/dist/esm/components/shared/types/environment.js +0 -0
- package/dist/esm/components/shared/types/footer.d.ts +121 -0
- package/dist/esm/components/shared/types/footer.js +58 -0
- package/dist/esm/components/shared/types/footer.js.map +1 -0
- package/dist/esm/components/shared/types/form.d.ts +120 -0
- package/dist/esm/components/shared/types/form.js +47 -0
- package/dist/esm/components/shared/types/form.js.map +1 -0
- package/dist/esm/components/shared/types/header.d.ts +81 -0
- package/dist/esm/components/shared/types/header.js +38 -0
- package/dist/esm/components/shared/types/header.js.map +1 -0
- package/dist/esm/components/shared/types/index.d.ts +8 -0
- package/dist/esm/components/shared/types/index.js +7 -0
- package/dist/esm/components/shared/types/navigation.d.ts +9 -0
- package/dist/esm/components/shared/types/navigation.js +0 -0
- package/dist/esm/components/shared/types/step.d.ts +104 -0
- package/dist/esm/components/shared/types/step.js +31 -0
- package/dist/esm/components/shared/types/step.js.map +1 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.d.ts +23 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js +30 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js.map +1 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.d.ts +22 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js +30 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js.map +1 -0
- package/dist/esm/components/shared/utils/index.d.ts +6 -0
- package/dist/esm/components/shared/utils/index.js +7 -0
- package/dist/esm/components/shared/utils/renderFooter.d.ts +37 -0
- package/dist/esm/components/shared/utils/renderFooter.js +99 -0
- package/dist/esm/components/shared/utils/renderFooter.js.map +1 -0
- package/dist/esm/components/shared/utils/renderHeader.d.ts +39 -0
- package/dist/esm/components/shared/utils/renderHeader.js +120 -0
- package/dist/esm/components/shared/utils/renderHeader.js.map +1 -0
- package/dist/esm/components/shared/utils/stepState.d.ts +36 -0
- package/dist/esm/components/shared/utils/stepState.js +61 -0
- package/dist/esm/components/shared/utils/stepState.js.map +1 -0
- package/dist/esm/components/sizing/index.d.ts +97 -0
- package/dist/esm/components/sizing/index.js +79 -0
- package/dist/esm/components/sizing/index.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +16 -0
- package/dist/esm/hooks/index.js +17 -0
- package/dist/esm/hooks/useAccountSubdomain.d.ts +5 -0
- package/dist/esm/hooks/useAccountSubdomain.js +11 -0
- package/dist/esm/hooks/useAccountSubdomain.js.map +1 -0
- package/dist/esm/hooks/useAccountUrl.d.ts +5 -0
- package/dist/esm/hooks/useAccountUrl.js +27 -0
- package/dist/esm/hooks/useAccountUrl.js.map +1 -0
- package/dist/esm/hooks/useApiUrl.d.ts +5 -0
- package/dist/esm/hooks/useApiUrl.js +14 -0
- package/dist/esm/hooks/useApiUrl.js.map +1 -0
- package/dist/esm/hooks/useAvatar.d.ts +10 -0
- package/dist/esm/hooks/useAvatar.js +20 -0
- package/dist/esm/hooks/useAvatar.js.map +1 -0
- package/dist/esm/hooks/useFeatureFlag.d.ts +5 -0
- package/dist/esm/hooks/useFeatureFlag.js +10 -0
- package/dist/esm/hooks/useFeatureFlag.js.map +1 -0
- package/dist/esm/hooks/useLoginUrl.d.ts +5 -0
- package/dist/esm/hooks/useLoginUrl.js +10 -0
- package/dist/esm/hooks/useLoginUrl.js.map +1 -0
- package/dist/esm/hooks/useMenuItems.d.ts +12 -0
- package/dist/esm/hooks/useMenuItems.js +16 -0
- package/dist/esm/hooks/useMenuItems.js.map +1 -0
- package/dist/esm/hooks/usePluginMeta.d.ts +5 -0
- package/dist/esm/hooks/usePluginMeta.js +11 -0
- package/dist/esm/hooks/usePluginMeta.js.map +1 -0
- package/dist/esm/hooks/usePortalMeta.d.ts +7 -0
- package/dist/esm/hooks/usePortalMeta.js +10 -0
- package/dist/esm/hooks/usePortalMeta.js.map +1 -0
- package/dist/esm/hooks/usePortalUrl.d.ts +5 -0
- package/dist/esm/hooks/usePortalUrl.js +20 -0
- package/dist/esm/hooks/usePortalUrl.js.map +1 -0
- package/dist/esm/hooks/useProtocolDomain.d.ts +5 -0
- package/dist/esm/hooks/useProtocolDomain.js +12 -0
- package/dist/esm/hooks/useProtocolDomain.js.map +1 -0
- package/dist/esm/hooks/useRegisterUrl.d.ts +5 -0
- package/dist/esm/hooks/useRegisterUrl.js +10 -0
- package/dist/esm/hooks/useRegisterUrl.js.map +1 -0
- package/dist/esm/hooks/useResetPasswordUrl.d.ts +5 -0
- package/dist/esm/hooks/useResetPasswordUrl.js +10 -0
- package/dist/esm/hooks/useResetPasswordUrl.js.map +1 -0
- package/dist/esm/hooks/useSdk.d.ts +8 -0
- package/dist/esm/hooks/useSdk.js +33 -0
- package/dist/esm/hooks/useSdk.js.map +1 -0
- package/dist/esm/hooks/useTheme.d.ts +41 -0
- package/dist/esm/hooks/useTheme.js +79 -0
- package/dist/esm/hooks/useTheme.js.map +1 -0
- package/dist/esm/image.d.ts +6 -0
- package/dist/esm/images/account-banner-image.js +6 -0
- package/dist/esm/images/account-banner-image.js.map +1 -0
- package/dist/esm/images/discord-logo.js +6 -0
- package/dist/esm/images/discord-logo.js.map +1 -0
- package/dist/esm/images/lume-bg-image.js +6 -0
- package/dist/esm/images/lume-bg-image.js.map +1 -0
- package/dist/esm/images/lume-bg-login.js +6 -0
- package/dist/esm/images/lume-bg-login.js.map +1 -0
- package/dist/esm/images/lume-color-logo.js +6 -0
- package/dist/esm/images/lume-color-logo.js.map +1 -0
- package/dist/esm/images/lume-logo.js +6 -0
- package/dist/esm/images/lume-logo.js.map +1 -0
- package/dist/esm/images.d.ts +11 -0
- package/dist/esm/images.js +19 -0
- package/dist/esm/images.js.map +1 -0
- package/dist/esm/index.d.ts +150 -0
- package/dist/esm/index.js +149 -0
- package/dist/esm/store/appStore.d.ts +50 -0
- package/dist/esm/store/appStore.js +139 -0
- package/dist/esm/store/appStore.js.map +1 -0
- package/dist/esm/store/index.d.ts +5 -0
- package/dist/esm/store/index.js +6 -0
- package/dist/esm/store/portalStore.d.ts +33 -0
- package/dist/esm/store/portalStore.js +58 -0
- package/dist/esm/store/portalStore.js.map +1 -0
- package/dist/esm/store/saved-filters.d.ts +54 -0
- package/dist/esm/store/saved-filters.js +158 -0
- package/dist/esm/store/saved-filters.js.map +1 -0
- package/dist/esm/store/uiStore.d.ts +11 -0
- package/dist/esm/store/uiStore.js +16 -0
- package/dist/esm/store/uiStore.js.map +1 -0
- package/dist/esm/tests/portalMetaMocks.d.ts +16 -0
- package/dist/esm/tests/portalMetaMocks.js +15 -0
- package/dist/esm/tests/portalMetaMocks.js.map +1 -0
- package/dist/esm/types/badge.d.ts +16 -0
- package/dist/esm/types/badge.js +42 -0
- package/dist/esm/types/badge.js.map +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/theme.d.ts +35 -0
- package/dist/esm/types/theme.js +0 -0
- package/dist/esm/utils/asyncUtils.d.ts +5 -0
- package/dist/esm/utils/asyncUtils.js +9 -0
- package/dist/esm/utils/asyncUtils.js.map +1 -0
- package/dist/esm/utils/fileSize.d.ts +5 -0
- package/dist/esm/utils/fileSize.js +18 -0
- package/dist/esm/utils/fileSize.js.map +1 -0
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/theme.d.ts +197 -0
- package/dist/esm/utils/theme.js +689 -0
- package/dist/esm/utils/theme.js.map +1 -0
- package/package.json +75 -8
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import React, { createContext, useCallback, useContext, useMemo, useState } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/form/StepControlContext.tsx
|
|
5
|
+
const StepControlContext = createContext(void 0);
|
|
6
|
+
/**
|
|
7
|
+
* Provider component for step control functionality
|
|
8
|
+
* Handles step navigation logic and state management
|
|
9
|
+
*/
|
|
10
|
+
function StepControlProvider({ children, defaultStep, handleStepSubmit, isBackValidate, onStepChange, onStepRetry, onNavigationStart, onNavigationEnd, onNavigationError, totalSteps, triggerValidation }) {
|
|
11
|
+
const stepControl = useCreateStepControl({
|
|
12
|
+
defaultStep: defaultStep ?? 1,
|
|
13
|
+
handleStepSubmit,
|
|
14
|
+
isBackValidate: isBackValidate ?? false,
|
|
15
|
+
onStepChange,
|
|
16
|
+
onStepRetry,
|
|
17
|
+
onNavigationStart,
|
|
18
|
+
onNavigationEnd,
|
|
19
|
+
onNavigationError,
|
|
20
|
+
totalSteps: totalSteps ?? 1,
|
|
21
|
+
triggerValidation
|
|
22
|
+
});
|
|
23
|
+
return /* @__PURE__ */ jsx(StepControlContext.Provider, {
|
|
24
|
+
value: stepControl,
|
|
25
|
+
children
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function useCreateStepControl({ defaultStep = 1, handleStepSubmit, isBackValidate = false, onStepChange, onStepRetry, onNavigationStart, onNavigationEnd, onNavigationError, totalSteps: totalStepsProp, triggerValidation }) {
|
|
29
|
+
const [currentStep, setCurrentStep] = useState(defaultStep);
|
|
30
|
+
const [retryCount, setRetryCount] = useState(0);
|
|
31
|
+
const [transitionState, setTransitionState] = useState({
|
|
32
|
+
direction: null,
|
|
33
|
+
enteringStep: null,
|
|
34
|
+
exitingStep: null
|
|
35
|
+
});
|
|
36
|
+
const isFirstStep = currentStep === 1;
|
|
37
|
+
const isLastStep = currentStep === totalStepsProp;
|
|
38
|
+
const goToStep = useCallback((step) => {
|
|
39
|
+
const targetStep = Math.max(1, Math.min(step, totalStepsProp));
|
|
40
|
+
try {
|
|
41
|
+
onNavigationStart?.(currentStep, targetStep, "goTo");
|
|
42
|
+
} catch (error) {
|
|
43
|
+
onNavigationError?.(currentStep, targetStep, "goTo", error);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (targetStep === currentStep) {
|
|
47
|
+
onNavigationEnd?.(currentStep, targetStep, "goTo");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setRetryCount(0);
|
|
51
|
+
setTransitionState({
|
|
52
|
+
direction: targetStep > currentStep ? "forward" : "backward",
|
|
53
|
+
enteringStep: targetStep,
|
|
54
|
+
exitingStep: currentStep
|
|
55
|
+
});
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
try {
|
|
58
|
+
setCurrentStep(targetStep);
|
|
59
|
+
setTransitionState({
|
|
60
|
+
direction: null,
|
|
61
|
+
enteringStep: null,
|
|
62
|
+
exitingStep: null
|
|
63
|
+
});
|
|
64
|
+
onStepChange?.(targetStep);
|
|
65
|
+
onNavigationEnd?.(currentStep, targetStep, "goTo");
|
|
66
|
+
} catch (error) {
|
|
67
|
+
onNavigationError?.(currentStep, targetStep, "goTo", error);
|
|
68
|
+
}
|
|
69
|
+
}, 300);
|
|
70
|
+
}, [
|
|
71
|
+
totalStepsProp,
|
|
72
|
+
onStepChange,
|
|
73
|
+
currentStep,
|
|
74
|
+
onNavigationStart,
|
|
75
|
+
onNavigationEnd,
|
|
76
|
+
onNavigationError
|
|
77
|
+
]);
|
|
78
|
+
const jumpTo = useCallback((step) => {
|
|
79
|
+
const targetStep = Math.max(1, Math.min(step, totalStepsProp));
|
|
80
|
+
try {
|
|
81
|
+
onNavigationStart?.(currentStep, targetStep, "jumpTo");
|
|
82
|
+
} catch (error) {
|
|
83
|
+
onNavigationError?.(currentStep, targetStep, "jumpTo", error);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (targetStep === currentStep) {
|
|
87
|
+
onNavigationEnd?.(currentStep, targetStep, "jumpTo");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
setRetryCount(0);
|
|
91
|
+
try {
|
|
92
|
+
setCurrentStep(targetStep);
|
|
93
|
+
onStepChange?.(targetStep);
|
|
94
|
+
onNavigationEnd?.(currentStep, targetStep, "jumpTo");
|
|
95
|
+
} catch (error) {
|
|
96
|
+
onNavigationError?.(currentStep, targetStep, "jumpTo", error);
|
|
97
|
+
}
|
|
98
|
+
}, [
|
|
99
|
+
totalStepsProp,
|
|
100
|
+
onStepChange,
|
|
101
|
+
currentStep,
|
|
102
|
+
onNavigationStart,
|
|
103
|
+
onNavigationEnd,
|
|
104
|
+
onNavigationError
|
|
105
|
+
]);
|
|
106
|
+
const handleRetry = useCallback(async () => {
|
|
107
|
+
try {
|
|
108
|
+
onNavigationStart?.(currentStep, currentStep, "retry");
|
|
109
|
+
} catch (error) {
|
|
110
|
+
onNavigationError?.(currentStep, currentStep, "retry", error);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
setRetryCount((prev) => prev + 1);
|
|
114
|
+
setTransitionState({
|
|
115
|
+
direction: null,
|
|
116
|
+
enteringStep: currentStep,
|
|
117
|
+
exitingStep: currentStep
|
|
118
|
+
});
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
try {
|
|
121
|
+
setTransitionState({
|
|
122
|
+
direction: null,
|
|
123
|
+
enteringStep: null,
|
|
124
|
+
exitingStep: null
|
|
125
|
+
});
|
|
126
|
+
setCurrentStep(currentStep);
|
|
127
|
+
onStepRetry?.(currentStep);
|
|
128
|
+
onNavigationEnd?.(currentStep, currentStep, "retry");
|
|
129
|
+
} catch (error) {
|
|
130
|
+
onNavigationError?.(currentStep, currentStep, "retry", error);
|
|
131
|
+
}
|
|
132
|
+
}, 300);
|
|
133
|
+
}, [
|
|
134
|
+
currentStep,
|
|
135
|
+
onStepRetry,
|
|
136
|
+
onNavigationStart,
|
|
137
|
+
onNavigationEnd,
|
|
138
|
+
onNavigationError
|
|
139
|
+
]);
|
|
140
|
+
const handleNext = useCallback(async () => {
|
|
141
|
+
if (isLastStep) return;
|
|
142
|
+
const targetStep = currentStep + 1;
|
|
143
|
+
try {
|
|
144
|
+
onNavigationStart?.(currentStep, targetStep, "next");
|
|
145
|
+
} catch (error) {
|
|
146
|
+
onNavigationError?.(currentStep, targetStep, "next", error);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (handleStepSubmit) try {
|
|
150
|
+
await handleStepSubmit();
|
|
151
|
+
} catch (error) {
|
|
152
|
+
onNavigationError?.(currentStep, targetStep, "next", error);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
goToStep(targetStep);
|
|
156
|
+
}, [
|
|
157
|
+
currentStep,
|
|
158
|
+
isLastStep,
|
|
159
|
+
goToStep,
|
|
160
|
+
handleStepSubmit,
|
|
161
|
+
onNavigationStart,
|
|
162
|
+
onNavigationEnd,
|
|
163
|
+
onNavigationError
|
|
164
|
+
]);
|
|
165
|
+
const handlePrevious = useCallback(async () => {
|
|
166
|
+
if (isFirstStep) return;
|
|
167
|
+
const targetStep = currentStep - 1;
|
|
168
|
+
try {
|
|
169
|
+
onNavigationStart?.(currentStep, targetStep, "previous");
|
|
170
|
+
} catch (error) {
|
|
171
|
+
onNavigationError?.(currentStep, targetStep, "previous", error);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (isBackValidate && triggerValidation) try {
|
|
175
|
+
if (!await triggerValidation()) {
|
|
176
|
+
onNavigationError?.(currentStep, targetStep, "previous", /* @__PURE__ */ new Error("Validation failed"));
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
onNavigationError?.(currentStep, targetStep, "previous", error);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
goToStep(targetStep);
|
|
184
|
+
}, [
|
|
185
|
+
currentStep,
|
|
186
|
+
isFirstStep,
|
|
187
|
+
isBackValidate,
|
|
188
|
+
triggerValidation,
|
|
189
|
+
goToStep,
|
|
190
|
+
onNavigationStart,
|
|
191
|
+
onNavigationEnd,
|
|
192
|
+
onNavigationError
|
|
193
|
+
]);
|
|
194
|
+
return useMemo(() => ({
|
|
195
|
+
currentStep,
|
|
196
|
+
goToStep,
|
|
197
|
+
jumpTo,
|
|
198
|
+
handleNext,
|
|
199
|
+
handlePrevious,
|
|
200
|
+
handleRetry,
|
|
201
|
+
retryCount,
|
|
202
|
+
isFirstStep,
|
|
203
|
+
isLastStep,
|
|
204
|
+
totalSteps: totalStepsProp,
|
|
205
|
+
transitionState
|
|
206
|
+
}), [
|
|
207
|
+
currentStep,
|
|
208
|
+
totalStepsProp,
|
|
209
|
+
isFirstStep,
|
|
210
|
+
isLastStep,
|
|
211
|
+
goToStep,
|
|
212
|
+
jumpTo,
|
|
213
|
+
handleNext,
|
|
214
|
+
handlePrevious,
|
|
215
|
+
handleRetry,
|
|
216
|
+
retryCount,
|
|
217
|
+
transitionState
|
|
218
|
+
]);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Hook to optionally consume the step control context
|
|
222
|
+
* @returns StepControlContextType | undefined - Step control methods and state, or undefined if not in context
|
|
223
|
+
*/
|
|
224
|
+
function useOptionalStepControlContext() {
|
|
225
|
+
return useContext(StepControlContext);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Backward compatibility hook
|
|
229
|
+
* This maintains the original API where useStepControl could be used as both
|
|
230
|
+
* a context consumer and a creator depending on whether options were passed
|
|
231
|
+
*/
|
|
232
|
+
function useStepControl(options) {
|
|
233
|
+
if (options) return useCreateStepControl(options);
|
|
234
|
+
return useStepControlContext();
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Hook to consume the step control context
|
|
238
|
+
* @returns StepControlContextType - Step control methods and state
|
|
239
|
+
* @throws Error if used outside StepControlProvider
|
|
240
|
+
*/
|
|
241
|
+
function useStepControlContext() {
|
|
242
|
+
const context = useContext(StepControlContext);
|
|
243
|
+
if (context === void 0) throw new Error("useStepControl must be used within a StepControlProvider");
|
|
244
|
+
return context;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
//#endregion
|
|
248
|
+
export { StepControlProvider, useCreateStepControl, useOptionalStepControlContext, useStepControl, useStepControlContext };
|
|
249
|
+
//# sourceMappingURL=StepControlContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepControlContext.js","names":[],"sources":["../../../../src/components/form/StepControlContext.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\nimport type { NavigationType } from \"@/components\";\n\n/**\n * Interface for step control context values\n */\nexport interface StepControlContextType {\n /**\n * Current active step index\n */\n currentStep: number;\n /**\n * Navigate to a specific step\n * @param step - The step index to navigate to\n */\n goToStep: (step: number) => void;\n /**\n * Jump to a specific step without transition animation\n * @param step - The step index to jump to\n */\n jumpTo: (step: number) => void;\n /**\n * Navigate to the next step\n */\n handleNext: () => Promise<void>;\n /**\n * Navigate to the previous step\n */\n handlePrevious: () => Promise<void>;\n /**\n * Retry the current step\n */\n handleRetry: () => Promise<void>;\n /**\n * Number of times the current step has been retried\n */\n retryCount: number;\n /**\n * Whether the current step is the first step\n */\n isFirstStep: boolean;\n /**\n * Whether the current step is the last step\n */\n isLastStep: boolean;\n /**\n * Total number of steps\n */\n totalSteps: number;\n /**\n * Transition state with navigation direction\n */\n transitionState: {\n direction: \"backward\" | \"forward\" | null;\n enteringStep: null | number;\n exitingStep: null | number;\n };\n}\n\nconst StepControlContext = createContext<StepControlContextType | undefined>(\n undefined,\n);\n\nexport interface StepControlProviderProps {\n children: React.ReactNode;\n /**\n * Default step to start on\n */\n defaultStep?: number;\n /**\n * Function to handle step submission\n */\n handleStepSubmit?: () => Promise<void>;\n /**\n * Whether to validate when going back steps\n */\n isBackValidate?: boolean;\n /**\n * Callback when step changes\n */\n onStepChange?: (step: number) => void;\n /**\n * Callback when step is retried\n */\n onStepRetry?: (step: number) => void;\n /**\n * Callback when navigation starts\n */\n onNavigationStart?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n ) => void;\n /**\n * Callback when navigation ends successfully\n */\n onNavigationEnd?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n ) => void;\n /**\n * Callback when navigation fails\n */\n onNavigationError?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n error: any,\n ) => void;\n /**\n * Total number of steps\n */\n totalSteps?: number;\n /**\n * Function to trigger validation for the current step\n */\n triggerValidation?: () => Promise<boolean>;\n}\n\n/**\n * Hook to create step control state independently\n * This hook can be used outside of StepControlProvider\n */\nexport interface UseCreateStepControlOptions {\n /**\n * Default step to start on\n * @default 1\n */\n defaultStep?: number;\n /**\n * Function to handle step submission\n */\n handleStepSubmit?: () => Promise<void>;\n /**\n * Whether to validate when going back steps\n * @default false\n */\n isBackValidate?: boolean;\n /**\n * Callback when step changes\n */\n onStepChange?: (step: number) => void;\n /**\n * Callback when step is retried\n */\n onStepRetry?: (step: number) => void;\n /**\n * Callback when navigation starts\n */\n onNavigationStart?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n ) => void;\n /**\n * Callback when navigation ends successfully\n */\n onNavigationEnd?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n ) => void;\n /**\n * Callback when navigation fails\n */\n onNavigationError?: (\n fromStep: number,\n toStep: number,\n type: NavigationType,\n error: any,\n ) => void;\n /**\n * Total number of steps\n */\n totalSteps: number;\n /**\n * Function to trigger validation for the current step\n */\n triggerValidation?: () => Promise<boolean>;\n}\n\n/**\n * Provider component for step control functionality\n * Handles step navigation logic and state management\n */\nexport function StepControlProvider({\n children,\n defaultStep,\n handleStepSubmit,\n isBackValidate,\n onStepChange,\n onStepRetry,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n totalSteps,\n triggerValidation,\n}: StepControlProviderProps) {\n const stepControl = useCreateStepControl({\n defaultStep: defaultStep ?? 1,\n handleStepSubmit,\n isBackValidate: isBackValidate ?? false,\n onStepChange,\n onStepRetry,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n totalSteps: totalSteps ?? 1,\n triggerValidation,\n });\n\n return (\n <StepControlContext.Provider value={stepControl}>\n {children}\n </StepControlContext.Provider>\n );\n}\n\nexport function useCreateStepControl({\n defaultStep = 1,\n handleStepSubmit,\n isBackValidate = false,\n onStepChange,\n onStepRetry,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n totalSteps: totalStepsProp,\n triggerValidation,\n}: UseCreateStepControlOptions): StepControlContextType {\n const [currentStep, setCurrentStep] = useState(defaultStep);\n const [retryCount, setRetryCount] = useState(0);\n const [transitionState, setTransitionState] = useState<{\n direction: \"backward\" | \"forward\" | null;\n enteringStep: null | number;\n exitingStep: null | number;\n }>({\n direction: null,\n enteringStep: null,\n exitingStep: null,\n });\n\n const isFirstStep = currentStep === 1;\n const isLastStep = currentStep === totalStepsProp;\n\n const goToStep = useCallback(\n (step: number) => {\n const targetStep = Math.max(1, Math.min(step, totalStepsProp));\n\n // Call navigation start callback\n try {\n onNavigationStart?.(currentStep, targetStep, \"goTo\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"goTo\", error);\n return;\n }\n\n if (targetStep === currentStep) {\n onNavigationEnd?.(currentStep, targetStep, \"goTo\");\n return;\n }\n\n // Reset retry count when navigating to a different step\n setRetryCount(0);\n\n // Determine navigation direction\n const direction = targetStep > currentStep ? \"forward\" : \"backward\";\n\n setTransitionState({\n direction,\n enteringStep: targetStep,\n exitingStep: currentStep,\n });\n\n // After transition duration, update the current step\n setTimeout(() => {\n try {\n setCurrentStep(targetStep);\n setTransitionState({\n direction: null,\n enteringStep: null,\n exitingStep: null,\n });\n onStepChange?.(targetStep);\n onNavigationEnd?.(currentStep, targetStep, \"goTo\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"goTo\", error);\n }\n }, 300);\n },\n [\n totalStepsProp,\n onStepChange,\n currentStep,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ],\n );\n\n const jumpTo = useCallback(\n (step: number) => {\n const targetStep = Math.max(1, Math.min(step, totalStepsProp));\n\n // Call navigation start callback\n try {\n onNavigationStart?.(currentStep, targetStep, \"jumpTo\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"jumpTo\", error);\n return;\n }\n\n if (targetStep === currentStep) {\n onNavigationEnd?.(currentStep, targetStep, \"jumpTo\");\n return;\n }\n\n // Reset retry count when jumping to a different step\n setRetryCount(0);\n\n // Skip transition animation and directly set the step\n try {\n setCurrentStep(targetStep);\n onStepChange?.(targetStep);\n onNavigationEnd?.(currentStep, targetStep, \"jumpTo\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"jumpTo\", error);\n }\n },\n [\n totalStepsProp,\n onStepChange,\n currentStep,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ],\n );\n\n const handleRetry = useCallback(async () => {\n // Call navigation start callback\n try {\n onNavigationStart?.(currentStep, currentStep, \"retry\");\n } catch (error) {\n onNavigationError?.(currentStep, currentStep, \"retry\", error);\n return;\n }\n\n // Increment retry count\n setRetryCount((prev) => prev + 1);\n\n // Trigger transition animation for retry\n setTransitionState({\n direction: null,\n enteringStep: currentStep,\n exitingStep: currentStep,\n });\n\n // After transition duration, reset transition state, set current step to force reprocessing, and trigger callback\n setTimeout(() => {\n try {\n setTransitionState({\n direction: null,\n enteringStep: null,\n exitingStep: null,\n });\n setCurrentStep(currentStep);\n onStepRetry?.(currentStep);\n onNavigationEnd?.(currentStep, currentStep, \"retry\");\n } catch (error) {\n onNavigationError?.(currentStep, currentStep, \"retry\", error);\n }\n }, 300);\n }, [\n currentStep,\n onStepRetry,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ]);\n\n const handleNext = useCallback(async () => {\n if (isLastStep) return;\n\n const targetStep = currentStep + 1;\n\n // Call navigation start callback\n try {\n onNavigationStart?.(currentStep, targetStep, \"next\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"next\", error);\n return;\n }\n\n // Handle step submission if provided\n if (handleStepSubmit) {\n try {\n await handleStepSubmit();\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"next\", error);\n return;\n }\n }\n\n goToStep(targetStep);\n }, [\n currentStep,\n isLastStep,\n goToStep,\n handleStepSubmit,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ]);\n\n const handlePrevious = useCallback(async () => {\n if (isFirstStep) return;\n\n const targetStep = currentStep - 1;\n\n // Call navigation start callback\n try {\n onNavigationStart?.(currentStep, targetStep, \"previous\");\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"previous\", error);\n return;\n }\n\n if (isBackValidate && triggerValidation) {\n try {\n const isValid = await triggerValidation();\n if (!isValid) {\n onNavigationError?.(\n currentStep,\n targetStep,\n \"previous\",\n new Error(\"Validation failed\"),\n );\n return;\n }\n } catch (error) {\n onNavigationError?.(currentStep, targetStep, \"previous\", error);\n return;\n }\n }\n\n goToStep(targetStep);\n }, [\n currentStep,\n isFirstStep,\n isBackValidate,\n triggerValidation,\n goToStep,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ]);\n\n return useMemo(\n () => ({\n currentStep,\n goToStep,\n jumpTo,\n handleNext,\n handlePrevious,\n handleRetry,\n retryCount,\n isFirstStep,\n isLastStep,\n totalSteps: totalStepsProp,\n transitionState,\n }),\n [\n currentStep,\n totalStepsProp,\n isFirstStep,\n isLastStep,\n goToStep,\n jumpTo,\n handleNext,\n handlePrevious,\n handleRetry,\n retryCount,\n transitionState,\n ],\n );\n}\n\n/**\n * Hook to optionally consume the step control context\n * @returns StepControlContextType | undefined - Step control methods and state, or undefined if not in context\n */\nexport function useOptionalStepControlContext() {\n return useContext(StepControlContext);\n}\n\n/**\n * Backward compatibility hook\n * This maintains the original API where useStepControl could be used as both\n * a context consumer and a creator depending on whether options were passed\n */\nexport function useStepControl(\n options?: UseCreateStepControlOptions,\n): StepControlContextType {\n // If options are provided, create step control state independently\n if (options) {\n return useCreateStepControl(options);\n }\n\n // Otherwise, consume context (original behavior)\n return useStepControlContext();\n}\n\n/**\n * Hook to consume the step control context\n * @returns StepControlContextType - Step control methods and state\n * @throws Error if used outside StepControlProvider\n */\nexport function useStepControlContext() {\n const context = useContext(StepControlContext);\n if (context === undefined) {\n throw new Error(\"useStepControl must be used within a StepControlProvider\");\n }\n return context;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StepFormConfig } from "./types.js";
|
|
2
|
+
import { BaseRecord } from "@refinedev/core";
|
|
3
|
+
import { FieldValues } from "react-hook-form";
|
|
4
|
+
|
|
5
|
+
//#region src/components/form/StepSchemaForm.d.ts
|
|
6
|
+
interface StepSchemaFormProps<TRequest extends FieldValues = FieldValues, TResponse extends BaseRecord = any> {
|
|
7
|
+
closeDialog: () => void;
|
|
8
|
+
config: StepFormConfig<TRequest, TResponse>;
|
|
9
|
+
onNavigationStart?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;
|
|
10
|
+
onNavigationEnd?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;
|
|
11
|
+
onNavigationError?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry', error: any) => void;
|
|
12
|
+
}
|
|
13
|
+
declare function StepSchemaForm<TRequest extends FieldValues = FieldValues, TResponse extends BaseRecord = any>({
|
|
14
|
+
closeDialog,
|
|
15
|
+
config,
|
|
16
|
+
onNavigationStart,
|
|
17
|
+
onNavigationEnd,
|
|
18
|
+
onNavigationError
|
|
19
|
+
}: StepSchemaFormProps<TRequest, TResponse>): any;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { StepSchemaForm };
|
|
22
|
+
//# sourceMappingURL=StepSchemaForm.d.ts.map
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { isFormDialog, isWizardDialogConfig } from "../dialog/Dialog.types.js";
|
|
2
|
+
import { useDialog } from "../dialog/Dialog.context.js";
|
|
3
|
+
import { FormProvider } from "./context.js";
|
|
4
|
+
import { StepControlProvider, useOptionalStepControlContext, useStepControl } from "./StepControlContext.js";
|
|
5
|
+
import { AdapterType } from "./types.js";
|
|
6
|
+
import { SchemaForm } from "./SchemaForm.js";
|
|
7
|
+
import { getStepOnSuccessHandler, handleStepSubmission } from "./handlers/step.js";
|
|
8
|
+
import { createStepRetryHandler } from "./utils/stepRetry.js";
|
|
9
|
+
import { WizardStepContent } from "./WizardStepContent.js";
|
|
10
|
+
import { isWizardForm } from "../shared/types/form.js";
|
|
11
|
+
import { Environment } from "../shared/environment/builders.js";
|
|
12
|
+
import { UnifiedFooter } from "../shared/UnifiedFooter.js";
|
|
13
|
+
import "../index.js";
|
|
14
|
+
import React, { useCallback, useMemo } from "react";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
|
|
17
|
+
//#region src/components/form/StepSchemaForm.tsx
|
|
18
|
+
const defaultStepFormFooter = (stepMethods, formMethods, currentDialog) => {
|
|
19
|
+
const footerEnvironment = Environment.footer().standalone().stepForm({
|
|
20
|
+
isSubmitting: formMethods?.formState?.isSubmitting || false,
|
|
21
|
+
methods: formMethods
|
|
22
|
+
}).step({
|
|
23
|
+
current: stepMethods.currentStep,
|
|
24
|
+
isFirst: stepMethods.isFirstStep,
|
|
25
|
+
isLast: stepMethods.isLastStep,
|
|
26
|
+
jumpTo: stepMethods.jumpTo,
|
|
27
|
+
onNext: stepMethods.handleSubmit || stepMethods.handleNext,
|
|
28
|
+
onPrevious: stepMethods.handlePrevious,
|
|
29
|
+
onRetry: stepMethods.handleRetry,
|
|
30
|
+
total: stepMethods.totalSteps
|
|
31
|
+
}).build();
|
|
32
|
+
return /* @__PURE__ */ jsx(UnifiedFooter, {
|
|
33
|
+
config: isFormDialog(currentDialog) || isWizardDialogConfig(currentDialog) ? currentDialog.formConfig : currentDialog,
|
|
34
|
+
environment: footerEnvironment
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
function StepSchemaForm({ closeDialog, config, onNavigationStart, onNavigationEnd, onNavigationError }) {
|
|
38
|
+
const { currentDialog, formMethods } = useDialog();
|
|
39
|
+
const existingStepControl = useOptionalStepControlContext();
|
|
40
|
+
if (existingStepControl && existingStepControl.totalSteps > 0) return /* @__PURE__ */ jsx(StepSchemaFormContent, {
|
|
41
|
+
closeDialog,
|
|
42
|
+
config,
|
|
43
|
+
currentDialog,
|
|
44
|
+
formMethods,
|
|
45
|
+
onNavigationStart,
|
|
46
|
+
onNavigationEnd,
|
|
47
|
+
onNavigationError
|
|
48
|
+
});
|
|
49
|
+
return /* @__PURE__ */ jsx(StepControlProvider, {
|
|
50
|
+
defaultStep: config.stepBehavior?.defaultStep,
|
|
51
|
+
isBackValidate: config.stepBehavior?.isBackValidate,
|
|
52
|
+
onStepRetry: createStepRetryHandler(config.steps),
|
|
53
|
+
totalSteps: config.steps.length,
|
|
54
|
+
onNavigationStart,
|
|
55
|
+
onNavigationEnd,
|
|
56
|
+
onNavigationError,
|
|
57
|
+
children: /* @__PURE__ */ jsx(StepSchemaFormContent, {
|
|
58
|
+
closeDialog,
|
|
59
|
+
config,
|
|
60
|
+
currentDialog,
|
|
61
|
+
formMethods,
|
|
62
|
+
onNavigationStart,
|
|
63
|
+
onNavigationEnd,
|
|
64
|
+
onNavigationError
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function getStepFooterConfig(isActive, footerConfig, stepMethods, triggerSubmit) {
|
|
69
|
+
if (!isActive) return false;
|
|
70
|
+
if (footerConfig === false) return false;
|
|
71
|
+
return function StepFooterComponent(props) {
|
|
72
|
+
const { closeDialog, currentDialog, formMethods } = props;
|
|
73
|
+
return (footerConfig ?? defaultStepFormFooter)({
|
|
74
|
+
...stepMethods,
|
|
75
|
+
handleSubmit: triggerSubmit
|
|
76
|
+
}, formMethods?.current, closeDialog, currentDialog);
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function StepSchemaFormContent({ closeDialog, config, formMethods, onNavigationStart, onNavigationEnd, onNavigationError }) {
|
|
80
|
+
const { currentStep, goToStep, jumpTo, handleNext, handlePrevious, handleRetry, isFirstStep, isLastStep, totalSteps, transitionState } = useStepControl();
|
|
81
|
+
const triggerSubmit = useCallback(() => {
|
|
82
|
+
if (!formMethods?.current?.handleSubmit) return;
|
|
83
|
+
handleStepSubmission({
|
|
84
|
+
closeDialog,
|
|
85
|
+
config: {
|
|
86
|
+
...config,
|
|
87
|
+
onSuccess: getStepOnSuccessHandler(config, formMethods?.current, isLastStep, closeDialog)
|
|
88
|
+
},
|
|
89
|
+
currentStep,
|
|
90
|
+
formMethods: formMethods?.current,
|
|
91
|
+
goToNextStep: handleNext,
|
|
92
|
+
isLastStep,
|
|
93
|
+
stepConfig: config.steps[currentStep - 1]
|
|
94
|
+
});
|
|
95
|
+
}, [
|
|
96
|
+
formMethods?.current,
|
|
97
|
+
config,
|
|
98
|
+
currentStep,
|
|
99
|
+
isLastStep,
|
|
100
|
+
closeDialog,
|
|
101
|
+
handleNext
|
|
102
|
+
]);
|
|
103
|
+
return /* @__PURE__ */ jsx("div", {
|
|
104
|
+
className: "grid grid-cols-1 grid-rows-1",
|
|
105
|
+
children: useMemo(() => {
|
|
106
|
+
const stepMethods = {
|
|
107
|
+
currentStep,
|
|
108
|
+
goToStep,
|
|
109
|
+
jumpTo,
|
|
110
|
+
handleNext,
|
|
111
|
+
handlePrevious,
|
|
112
|
+
handleRetry,
|
|
113
|
+
isFirstStep,
|
|
114
|
+
isLastStep,
|
|
115
|
+
totalSteps
|
|
116
|
+
};
|
|
117
|
+
return config.steps.map((step, index) => {
|
|
118
|
+
const isActive = currentStep === index + 1;
|
|
119
|
+
const isExiting = transitionState.exitingStep === index + 1;
|
|
120
|
+
const isEntering = transitionState.enteringStep === index + 1;
|
|
121
|
+
const formConfig = {
|
|
122
|
+
...config,
|
|
123
|
+
fields: step.fields,
|
|
124
|
+
footer: getStepFooterConfig(isActive, config.footer, stepMethods, triggerSubmit),
|
|
125
|
+
validationSchema: step.validationSchema
|
|
126
|
+
};
|
|
127
|
+
const schemaForm = /* @__PURE__ */ jsx(SchemaForm, {
|
|
128
|
+
active: isActive,
|
|
129
|
+
closeDialog,
|
|
130
|
+
config: formConfig
|
|
131
|
+
});
|
|
132
|
+
const formContent = isWizardForm(config) ? /* @__PURE__ */ jsx(WizardStepContent, {
|
|
133
|
+
className: "space-y-6",
|
|
134
|
+
description: step.description,
|
|
135
|
+
icon: step.icon,
|
|
136
|
+
isActive,
|
|
137
|
+
isEntering,
|
|
138
|
+
isExiting,
|
|
139
|
+
title: step.title,
|
|
140
|
+
children: schemaForm
|
|
141
|
+
}) : schemaForm;
|
|
142
|
+
return /* @__PURE__ */ jsx(FormProvider, {
|
|
143
|
+
adapter: config.adapter ?? "rhf",
|
|
144
|
+
config: {
|
|
145
|
+
...formConfig,
|
|
146
|
+
steps: config.steps
|
|
147
|
+
},
|
|
148
|
+
formInstance: formMethods,
|
|
149
|
+
children: formContent
|
|
150
|
+
}, `step-${index}`);
|
|
151
|
+
});
|
|
152
|
+
}, [
|
|
153
|
+
config,
|
|
154
|
+
currentStep,
|
|
155
|
+
goToStep,
|
|
156
|
+
jumpTo,
|
|
157
|
+
handleNext,
|
|
158
|
+
handlePrevious,
|
|
159
|
+
handleRetry,
|
|
160
|
+
isFirstStep,
|
|
161
|
+
isLastStep,
|
|
162
|
+
totalSteps,
|
|
163
|
+
triggerSubmit,
|
|
164
|
+
closeDialog,
|
|
165
|
+
formMethods,
|
|
166
|
+
transitionState,
|
|
167
|
+
onNavigationStart,
|
|
168
|
+
onNavigationEnd,
|
|
169
|
+
onNavigationError
|
|
170
|
+
])
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
175
|
+
export { StepSchemaForm };
|
|
176
|
+
//# sourceMappingURL=StepSchemaForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepSchemaForm.js","names":[],"sources":["../../../../src/components/form/StepSchemaForm.tsx"],"sourcesContent":["import type { FieldValues } from \"react-hook-form\";\n\nimport { BaseRecord } from \"@refinedev/core\";\nimport React, { useCallback, useMemo } from \"react\";\n\nimport type { FormConfig, StepFormFooterRenderer } from \"./types\";\nimport { AdapterType, type StepFormConfig } from \"./types\";\n\nimport { useDialog } from \"@/components\";\nimport { isFormDialog, isWizardDialogConfig } from \"@/components\";\nimport { Environment, isWizardForm, UnifiedFooter } from \"@/components\";\nimport { FormProvider } from \"./context\";\nimport { getStepOnSuccessHandler, handleStepSubmission } from \"./handlers/step\";\nimport { SchemaForm } from \"./SchemaForm\";\nimport {\n StepControlProvider,\n useOptionalStepControlContext,\n useStepControl,\n} from \"./StepControlContext\";\nimport { createStepRetryHandler } from \"./utils/stepRetry\";\nimport { WizardStepContent } from \"./WizardStepContent\";\n\nconst defaultStepFormFooter: StepFormFooterRenderer = (\n stepMethods,\n formMethods,\n currentDialog,\n) => {\n const footerEnvironment = Environment.footer()\n .standalone()\n .stepForm({\n isSubmitting: formMethods?.formState?.isSubmitting || false,\n methods: formMethods,\n })\n .step({\n current: stepMethods.currentStep,\n isFirst: stepMethods.isFirstStep,\n isLast: stepMethods.isLastStep,\n jumpTo: stepMethods.jumpTo,\n onNext: stepMethods.handleSubmit || stepMethods.handleNext,\n onPrevious: stepMethods.handlePrevious,\n onRetry: stepMethods.handleRetry,\n total: stepMethods.totalSteps,\n })\n .build();\n\n return (\n <UnifiedFooter\n config={\n isFormDialog(currentDialog) || isWizardDialogConfig(currentDialog)\n ? currentDialog.formConfig\n : currentDialog\n }\n environment={footerEnvironment}\n />\n );\n};\n\ninterface StepSchemaFormContentProps<\n TRequest extends FieldValues = FieldValues,\n TResponse extends BaseRecord = any,\n> {\n closeDialog: () => void;\n config: StepFormConfig<TRequest, TResponse>;\n currentDialog: any;\n formMethods: any;\n onNavigationStart?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;\n onNavigationEnd?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;\n onNavigationError?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry', error: any) => void;\n}\n\ninterface StepSchemaFormProps<\n TRequest extends FieldValues = FieldValues,\n TResponse extends BaseRecord = any,\n> {\n closeDialog: () => void;\n config: StepFormConfig<TRequest, TResponse>;\n onNavigationStart?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;\n onNavigationEnd?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry') => void;\n onNavigationError?: (fromStep: number, toStep: number, type: 'goTo' | 'jumpTo' | 'next' | 'previous' | 'retry', error: any) => void;\n}\n\nexport function StepSchemaForm<\n TRequest extends FieldValues = FieldValues,\n TResponse extends BaseRecord = any,\n>({ closeDialog, config, onNavigationStart, onNavigationEnd, onNavigationError }: StepSchemaFormProps<TRequest, TResponse>) {\n const { currentDialog, formMethods } = useDialog();\n const existingStepControl = useOptionalStepControlContext();\n\n // If we're already in a step control context, render content directly\n if (existingStepControl && existingStepControl.totalSteps > 0) {\n return (\n <StepSchemaFormContent\n closeDialog={closeDialog}\n config={config}\n currentDialog={currentDialog}\n formMethods={formMethods}\n onNavigationStart={onNavigationStart}\n onNavigationEnd={onNavigationEnd}\n onNavigationError={onNavigationError}\n />\n );\n }\n\n // Otherwise, create a new step control context\n return (\n <StepControlProvider\n defaultStep={config.stepBehavior?.defaultStep}\n isBackValidate={config.stepBehavior?.isBackValidate}\n onStepRetry={createStepRetryHandler(config.steps)}\n totalSteps={config.steps.length}\n onNavigationStart={onNavigationStart}\n onNavigationEnd={onNavigationEnd}\n onNavigationError={onNavigationError}>\n <StepSchemaFormContent\n closeDialog={closeDialog}\n config={config}\n currentDialog={currentDialog}\n formMethods={formMethods}\n onNavigationStart={onNavigationStart}\n onNavigationEnd={onNavigationEnd}\n onNavigationError={onNavigationError}\n />\n </StepControlProvider>\n );\n}\n\nfunction getStepFooterConfig<\n TRequest extends FieldValues,\n TResponse extends BaseRecord,\n>(\n isActive: boolean,\n footerConfig: StepFormConfig<TRequest, TResponse>[\"footer\"],\n stepMethods: any,\n triggerSubmit: () => void,\n): false | React.ComponentType<any> {\n if (!isActive) {\n return false;\n }\n if (footerConfig === false) {\n return false;\n }\n\n // Return a Higher-Order Component that receives props and calls the original footer function\n return function StepFooterComponent(props: any) {\n const { closeDialog, currentDialog, formMethods } = props;\n const footerFn = footerConfig ?? defaultStepFormFooter;\n return footerFn(\n { ...stepMethods, handleSubmit: triggerSubmit },\n formMethods?.current,\n closeDialog,\n currentDialog,\n );\n };\n}\n\nfunction StepSchemaFormContent<\n TRequest extends FieldValues = FieldValues,\n TResponse extends BaseRecord = any,\n>({\n closeDialog,\n config,\n formMethods,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n}: StepSchemaFormContentProps<TRequest, TResponse>) {\n const stepControl = useStepControl();\n const {\n currentStep,\n goToStep, // Use context's goToStep which now has transitions\n jumpTo,\n handleNext,\n handlePrevious,\n handleRetry,\n isFirstStep,\n isLastStep,\n totalSteps,\n transitionState, // Get transition state from context\n } = stepControl;\n\n const triggerSubmit = useCallback(() => {\n if (!formMethods?.current?.handleSubmit) return;\n\n handleStepSubmission({\n closeDialog,\n config: {\n ...config,\n onSuccess: getStepOnSuccessHandler(\n config,\n formMethods?.current,\n isLastStep,\n closeDialog,\n ),\n },\n currentStep, // Keep 1-based for external APIs\n formMethods: formMethods?.current,\n goToNextStep: handleNext, // Add the missing goToNextStep parameter\n isLastStep,\n stepConfig: config.steps[currentStep - 1], // Convert to 0-based index for array access\n });\n }, [formMethods?.current, config, currentStep, isLastStep, closeDialog, handleNext]);\n\n const schemaForms = useMemo(() => {\n const stepMethods = {\n currentStep, // Keep 1-based for external APIs\n goToStep, // Use context's goToStep directly\n jumpTo,\n handleNext,\n handlePrevious,\n handleRetry,\n isFirstStep,\n isLastStep,\n totalSteps,\n };\n\n return config.steps.map((step, index) => {\n const isActive = currentStep === index + 1; // Compare 1-based currentStep with 0-based index\n const isExiting = transitionState.exitingStep === index + 1;\n const isEntering = transitionState.enteringStep === index + 1;\n\n const formConfig: FormConfig<TRequest, TResponse> = {\n ...config,\n fields: step.fields,\n footer: getStepFooterConfig(\n isActive,\n config.footer,\n stepMethods,\n triggerSubmit,\n ),\n validationSchema: step.validationSchema,\n };\n\n const schemaForm = (\n <SchemaForm<TRequest>\n active={isActive}\n closeDialog={closeDialog}\n config={formConfig}\n />\n );\n\n const formContent = isWizardForm(config) ? (\n <WizardStepContent\n className=\"space-y-6\"\n description={step.description}\n icon={step.icon}\n isActive={isActive}\n isEntering={isEntering}\n isExiting={isExiting}\n title={step.title}>\n {schemaForm}\n </WizardStepContent>\n ) : (\n schemaForm\n );\n\n return (\n <FormProvider\n adapter={config.adapter ?? AdapterType.RHF}\n config={{ ...formConfig, steps: config.steps }}\n formInstance={formMethods}\n key={`step-${index}`}>\n {formContent}\n </FormProvider>\n );\n });\n }, [\n config,\n currentStep,\n goToStep,\n jumpTo,\n handleNext,\n handlePrevious,\n handleRetry,\n isFirstStep,\n isLastStep,\n totalSteps,\n triggerSubmit,\n closeDialog,\n formMethods,\n transitionState,\n onNavigationStart,\n onNavigationEnd,\n onNavigationError,\n ]);\n\n return <div className=\"grid grid-cols-1 grid-rows-1\">{schemaForms}</div>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,MAAM,yBACJ,aACA,aACA,kBACG;CACH,MAAM,oBAAoB,YAAY,QAAQ,CAC3C,YAAY,CACZ,SAAS;EACR,cAAc,aAAa,WAAW,gBAAgB;EACtD,SAAS;EACV,CAAC,CACD,KAAK;EACJ,SAAS,YAAY;EACrB,SAAS,YAAY;EACrB,QAAQ,YAAY;EACpB,QAAQ,YAAY;EACpB,QAAQ,YAAY,gBAAgB,YAAY;EAChD,YAAY,YAAY;EACxB,SAAS,YAAY;EACrB,OAAO,YAAY;EACpB,CAAC,CACD,OAAO;AAEV,QACE,oBAAC,eAAD;EACE,QACE,aAAa,cAAc,IAAI,qBAAqB,cAAc,GAC9D,cAAc,aACd;EAEN,aAAa;EACb;;AA4BN,SAAgB,eAGd,EAAE,aAAa,QAAQ,mBAAmB,iBAAiB,qBAA+D;CAC1H,MAAM,EAAE,eAAe,gBAAgB,WAAW;CAClD,MAAM,sBAAsB,+BAA+B;AAG3D,KAAI,uBAAuB,oBAAoB,aAAa,EAC1D,QACE,oBAAC,uBAAD;EACe;EACL;EACO;EACF;EACM;EACF;EACE;EACnB;AAKN,QACE,oBAAC,qBAAD;EACE,aAAa,OAAO,cAAc;EAClC,gBAAgB,OAAO,cAAc;EACrC,aAAa,uBAAuB,OAAO,MAAM;EACjD,YAAY,OAAO,MAAM;EACN;EACF;EACE;YACnB,oBAAC,uBAAD;GACe;GACL;GACO;GACF;GACM;GACF;GACE;GACnB;EACkB;;AAI1B,SAAS,oBAIP,UACA,cACA,aACA,eACkC;AAClC,KAAI,CAAC,SACH,QAAO;AAET,KAAI,iBAAiB,MACnB,QAAO;AAIT,QAAO,SAAS,oBAAoB,OAAY;EAC9C,MAAM,EAAE,aAAa,eAAe,gBAAgB;AAEpD,UADiB,gBAAgB,uBAE/B;GAAE,GAAG;GAAa,cAAc;GAAe,EAC/C,aAAa,SACb,aACA,cACD;;;AAIL,SAAS,sBAGP,EACA,aACA,QACA,aACA,mBACA,iBACA,qBACkD;CAElD,MAAM,EACJ,aACA,UACA,QACA,YACA,gBACA,aACA,aACA,YACA,YACA,oBAXkB,gBAYL;CAEf,MAAM,gBAAgB,kBAAkB;AACtC,MAAI,CAAC,aAAa,SAAS,aAAc;AAEzC,uBAAqB;GACnB;GACA,QAAQ;IACN,GAAG;IACH,WAAW,wBACT,QACA,aAAa,SACb,YACA,YACD;IACF;GACD;GACA,aAAa,aAAa;GAC1B,cAAc;GACd;GACA,YAAY,OAAO,MAAM,cAAc;GACxC,CAAC;IACD;EAAC,aAAa;EAAS;EAAQ;EAAa;EAAY;EAAa;EAAW,CAAC;AAqFpF,QAAO,oBAAC,OAAD;EAAK,WAAU;YAnFF,cAAc;GAChC,MAAM,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD;AAED,UAAO,OAAO,MAAM,KAAK,MAAM,UAAU;IACvC,MAAM,WAAW,gBAAgB,QAAQ;IACzC,MAAM,YAAY,gBAAgB,gBAAgB,QAAQ;IAC1D,MAAM,aAAa,gBAAgB,iBAAiB,QAAQ;IAE5D,MAAM,aAA8C;KAClD,GAAG;KACH,QAAQ,KAAK;KACb,QAAQ,oBACN,UACA,OAAO,QACP,aACA,cACD;KACD,kBAAkB,KAAK;KACxB;IAED,MAAM,aACJ,oBAAC,YAAD;KACE,QAAQ;KACK;KACb,QAAQ;KACR;IAGJ,MAAM,cAAc,aAAa,OAAO,GACtC,oBAAC,mBAAD;KACE,WAAU;KACV,aAAa,KAAK;KAClB,MAAM,KAAK;KACD;KACE;KACD;KACX,OAAO,KAAK;eACX;KACiB,IAEpB;AAGF,WACE,oBAAC,cAAD;KACE,SAAS,OAAO;KAChB,QAAQ;MAAE,GAAG;MAAY,OAAO,OAAO;MAAO;KAC9C,cAAc;eAEb;KACY,EAFR,QAAQ,QAEA;KAEjB;KACD;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAEgE;EAAO"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WizardFormConfig } from "./types.js";
|
|
2
|
+
import { BaseRecord } from "@refinedev/core";
|
|
3
|
+
import { FieldValues } from "react-hook-form";
|
|
4
|
+
|
|
5
|
+
//#region src/components/form/WizardForm.d.ts
|
|
6
|
+
interface WizardFormProps<TRequest extends FieldValues = FieldValues, TResponse extends BaseRecord = any> {
|
|
7
|
+
closeDialog?: () => void;
|
|
8
|
+
config: WizardFormConfig<TRequest, TResponse>;
|
|
9
|
+
}
|
|
10
|
+
declare function WizardForm<TRequest extends FieldValues = FieldValues, TResponse extends BaseRecord = any>({
|
|
11
|
+
closeDialog,
|
|
12
|
+
config
|
|
13
|
+
}: WizardFormProps<TRequest, TResponse>): any;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { WizardForm };
|
|
16
|
+
//# sourceMappingURL=WizardForm.d.ts.map
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { useDialog } from "../dialog/Dialog.context.js";
|
|
2
|
+
import { resolveAllowStepNavigation } from "../shared/utils/stepState.js";
|
|
3
|
+
import { useIsInDialog } from "../dialog/utils/dialogDetection.js";
|
|
4
|
+
import { StepControlProvider, useStepControl } from "./StepControlContext.js";
|
|
5
|
+
import { createStepRetryHandler } from "./utils/stepRetry.js";
|
|
6
|
+
import { StepSchemaForm } from "./StepSchemaForm.js";
|
|
7
|
+
import { ProgressStyleType } from "../shared/types/header.js";
|
|
8
|
+
import { Environment } from "../shared/environment/builders.js";
|
|
9
|
+
import { UnifiedFooter } from "../shared/UnifiedFooter.js";
|
|
10
|
+
import { UnifiedHeader } from "../shared/UnifiedHeader.js";
|
|
11
|
+
import "../index.js";
|
|
12
|
+
import React, { useMemo } from "react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
|
|
15
|
+
//#region src/components/form/WizardForm.tsx
|
|
16
|
+
function WizardForm({ closeDialog = () => void 0, config }) {
|
|
17
|
+
const { formMethods } = useDialog();
|
|
18
|
+
const existingStepControl = useStepControl();
|
|
19
|
+
const isInDialog = useIsInDialog();
|
|
20
|
+
if (existingStepControl && existingStepControl.totalSteps > 0) return /* @__PURE__ */ jsx(WizardFormContent, {
|
|
21
|
+
closeDialog,
|
|
22
|
+
config,
|
|
23
|
+
formMethods,
|
|
24
|
+
isInDialog
|
|
25
|
+
});
|
|
26
|
+
return /* @__PURE__ */ jsx(StepControlProvider, {
|
|
27
|
+
defaultStep: config.stepBehavior?.defaultStep,
|
|
28
|
+
isBackValidate: config.stepBehavior?.isBackValidate,
|
|
29
|
+
onStepRetry: createStepRetryHandler(config.steps),
|
|
30
|
+
totalSteps: config.steps.length,
|
|
31
|
+
onNavigationStart: config.onNavigationStart,
|
|
32
|
+
onNavigationEnd: config.onNavigationEnd,
|
|
33
|
+
onNavigationError: config.onNavigationError,
|
|
34
|
+
children: /* @__PURE__ */ jsx(WizardFormContent, {
|
|
35
|
+
closeDialog,
|
|
36
|
+
config,
|
|
37
|
+
formMethods,
|
|
38
|
+
isInDialog
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function WizardFormContent({ closeDialog, config, formMethods, isInDialog }) {
|
|
43
|
+
const { currentDialog } = useDialog();
|
|
44
|
+
const stepControl = useStepControl();
|
|
45
|
+
const { currentStep, goToStep, isFirstStep, isLastStep, totalSteps } = stepControl;
|
|
46
|
+
const isSubmitting = formMethods?.current?.formState?.isSubmitting || false;
|
|
47
|
+
const isStepNavigationAllowed = useMemo(() => {
|
|
48
|
+
return resolveAllowStepNavigation(config.allowStepNavigation, config.steps, currentStep);
|
|
49
|
+
}, [
|
|
50
|
+
config.allowStepNavigation,
|
|
51
|
+
config.steps,
|
|
52
|
+
currentStep
|
|
53
|
+
]);
|
|
54
|
+
const currentStepConfig = config.steps[currentStep - 1];
|
|
55
|
+
const headerEnvironmentBuilder = Environment.header();
|
|
56
|
+
if (isInDialog) headerEnvironmentBuilder.dialog({
|
|
57
|
+
dialogConfig: currentDialog || {},
|
|
58
|
+
onClose: closeDialog
|
|
59
|
+
});
|
|
60
|
+
else headerEnvironmentBuilder.standalone();
|
|
61
|
+
const headerEnvironment = headerEnvironmentBuilder.content({
|
|
62
|
+
actions: void 0,
|
|
63
|
+
description: currentStepConfig?.description,
|
|
64
|
+
title: currentStepConfig?.title
|
|
65
|
+
}).wizardNavigation({
|
|
66
|
+
allowNavigation: isStepNavigationAllowed,
|
|
67
|
+
current: currentStep,
|
|
68
|
+
disabledSteps: config.stepNavigationDisabled,
|
|
69
|
+
onStepClick: goToStep,
|
|
70
|
+
progressStyle: "timeline",
|
|
71
|
+
steps: config.steps,
|
|
72
|
+
total: totalSteps
|
|
73
|
+
}).build();
|
|
74
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
75
|
+
className: config.wizardClassName || "space-y-6",
|
|
76
|
+
children: [!isInDialog && /* @__PURE__ */ jsx(UnifiedHeader, {
|
|
77
|
+
config,
|
|
78
|
+
environment: headerEnvironment
|
|
79
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
80
|
+
className: "space-y-4",
|
|
81
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
82
|
+
className: "space-y-4",
|
|
83
|
+
children: /* @__PURE__ */ jsx(StepSchemaForm, {
|
|
84
|
+
closeDialog,
|
|
85
|
+
config: {
|
|
86
|
+
...config,
|
|
87
|
+
footer: (stepMethods, formMethods, closeDialog, currentDialog) => {
|
|
88
|
+
const footerEnvironmentBuilder = Environment.footer();
|
|
89
|
+
if (isInDialog) footerEnvironmentBuilder.dialog({
|
|
90
|
+
dialogConfig: currentDialog || {},
|
|
91
|
+
onClose: closeDialog
|
|
92
|
+
});
|
|
93
|
+
else footerEnvironmentBuilder.standalone();
|
|
94
|
+
return /* @__PURE__ */ jsx(UnifiedFooter, {
|
|
95
|
+
config,
|
|
96
|
+
environment: footerEnvironmentBuilder.wizardForm({
|
|
97
|
+
isSubmitting,
|
|
98
|
+
methods: {
|
|
99
|
+
...formMethods?.current,
|
|
100
|
+
handleSubmit: stepMethods.handleSubmit
|
|
101
|
+
}
|
|
102
|
+
}).step({
|
|
103
|
+
current: currentStep,
|
|
104
|
+
isFirst: isFirstStep,
|
|
105
|
+
isLast: isLastStep,
|
|
106
|
+
jumpTo: stepControl.jumpTo,
|
|
107
|
+
onNext: stepMethods.handleNext,
|
|
108
|
+
onPrevious: stepMethods.handlePrevious,
|
|
109
|
+
onRetry: stepMethods.handleRetry,
|
|
110
|
+
retryCount: stepControl.retryCount,
|
|
111
|
+
total: totalSteps
|
|
112
|
+
}).build()
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
header: false,
|
|
116
|
+
stepBehavior: config.stepBehavior
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
})]
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//#endregion
|
|
125
|
+
export { WizardForm };
|
|
126
|
+
//# sourceMappingURL=WizardForm.js.map
|