import { Plugin } from "../../application/Plugin.mjs";
import { RecordLink, useParamsFromRecord, useSourceIdFromParentRecord, useSourceIdFromRecord } from "../../block-provider/BlockProvider.mjs";
import { DetailsBlockProvider, useDetailsBlockProps } from "../../block-provider/DetailsBlockProvider.mjs";
import { FilterFormBlockProvider } from "../../block-provider/FilterFormBlockProvider.mjs";
import { FormBlockProvider, useFormBlockProps } from "../../block-provider/FormBlockProvider.mjs";
import { FormFieldProvider, useFormFieldProps } from "../../block-provider/FormFieldProvider.mjs";
import { TableBlockProvider } from "../../block-provider/TableBlockProvider.mjs";
import { TableFieldProvider, useTableFieldProps } from "../../block-provider/TableFieldProvider.mjs";
import { TableSelectorProvider, useTableSelectorProps } from "../../block-provider/TableSelectorProvider.mjs";
import { TreeBlockProvider, useTreeBlockProps } from "../../block-provider/TreeBlockProvider.mjs";
import { ActionSchemaToolbar } from "../../modules/actions/ActionSchemaToolbar.mjs";
import { BlockSchemaToolbar } from "../../modules/blocks/BlockSchemaToolbar.mjs";
import { useDetailsWithPaginationDecoratorProps } from "../../modules/blocks/data-blocks/details-multi/hooks/useDetailsWithPaginationDecoratorProps.mjs";
import { useDetailsWithPaginationProps } from "../../modules/blocks/data-blocks/details-multi/hooks/useDetailsWithPaginationProps.mjs";
import { useDetailsDecoratorProps } from "../../modules/blocks/data-blocks/details-single/hooks/useDetailsDecoratorProps.mjs";
import { useDetailsProps } from "../../modules/blocks/data-blocks/details-single/hooks/useDetailsProps.mjs";
import { FormItemSchemaToolbar } from "../../modules/blocks/data-blocks/form/FormItemSchemaToolbar.mjs";
import { useCreateFormBlockDecoratorProps } from "../../modules/blocks/data-blocks/form/hooks/useCreateFormBlockDecoratorProps.mjs";
import { useCreateFormBlockProps } from "../../modules/blocks/data-blocks/form/hooks/useCreateFormBlockProps.mjs";
import { useEditFormBlockDecoratorProps } from "../../modules/blocks/data-blocks/form/hooks/useEditFormBlockDecoratorProps.mjs";
import { useEditFormBlockProps } from "../../modules/blocks/data-blocks/form/hooks/useEditFormBlockProps.mjs";
import { useGridCardBlockDecoratorProps } from "../../modules/blocks/data-blocks/grid-card/hooks/useGridCardBlockDecoratorProps.mjs";
import { useListBlockDecoratorProps } from "../../modules/blocks/data-blocks/list/hooks/useListBlockDecoratorProps.mjs";
import { useTableSelectorDecoratorProps } from "../../modules/blocks/data-blocks/table-selector/hooks/useTableSelectorDecoratorProps.mjs";
import { useTableBlockDecoratorProps } from "../../modules/blocks/data-blocks/table/hooks/useTableBlockDecoratorProps.mjs";
import { useTableBlockProps } from "../../modules/blocks/data-blocks/table/hooks/useTableBlockProps.mjs";
import { TableColumnSchemaToolbar } from "../../modules/blocks/data-blocks/table/TableColumnSchemaToolbar.mjs";
import { CollapseItemSchemaToolbar } from "../../modules/blocks/filter-blocks/collapse/CollapseItemSchemaToolbar.mjs";
import { useCollapseBlockDecoratorProps } from "../../modules/blocks/filter-blocks/collapse/hooks/useCollapseBlockDecoratorProps.mjs";
import { useFilterFormBlockDecoratorProps } from "../../modules/blocks/filter-blocks/form/hooks/useFilterFormBlockDecoratorProps.mjs";
import { useFilterFormBlockProps } from "../../modules/blocks/filter-blocks/form/hooks/useFilterFormBlockProps.mjs";
import * as __WEBPACK_EXTERNAL_MODULE__block_provider_hooks_index_mjs_de8861b9__ from "../../block-provider/hooks/index.mjs";
class PluginBlockSchemaComponent extends Plugin {
    async load() {
        this.addComponents();
        this.addScopes();
    }
    addComponents() {
        this.app.addComponents({
            TableFieldProvider: TableFieldProvider,
            TableBlockProvider: TableBlockProvider,
            TableSelectorProvider: TableSelectorProvider,
            FormBlockProvider: FormBlockProvider,
            FilterFormBlockProvider: FilterFormBlockProvider,
            FormFieldProvider: FormFieldProvider,
            TreeBlockProvider: TreeBlockProvider,
            DetailsBlockProvider: DetailsBlockProvider,
            RecordLink: RecordLink,
            BlockSchemaToolbar: BlockSchemaToolbar,
            ActionSchemaToolbar: ActionSchemaToolbar,
            FormItemSchemaToolbar: FormItemSchemaToolbar,
            CollapseItemSchemaToolbar: CollapseItemSchemaToolbar,
            TableColumnSchemaToolbar: TableColumnSchemaToolbar
        });
    }
    addScopes() {
        this.app.addScopes({
            ...__WEBPACK_EXTERNAL_MODULE__block_provider_hooks_index_mjs_de8861b9__,
            useSourceIdFromRecord: useSourceIdFromRecord,
            useSourceIdFromParentRecord: useSourceIdFromParentRecord,
            useParamsFromRecord: useParamsFromRecord,
            useFormBlockProps: useFormBlockProps,
            useCreateFormBlockProps: useCreateFormBlockProps,
            useCreateFormBlockDecoratorProps: useCreateFormBlockDecoratorProps,
            useEditFormBlockDecoratorProps: useEditFormBlockDecoratorProps,
            useEditFormBlockProps: useEditFormBlockProps,
            useTreeBlockProps: useTreeBlockProps,
            useFormFieldProps: useFormFieldProps,
            useDetailsBlockProps: useDetailsBlockProps,
            useDetailsProps: useDetailsProps,
            useDetailsWithPaginationProps: useDetailsWithPaginationProps,
            useDetailsDecoratorProps: useDetailsDecoratorProps,
            useDetailsWithPaginationDecoratorProps: useDetailsWithPaginationDecoratorProps,
            useTableFieldProps: useTableFieldProps,
            useTableBlockProps: useTableBlockProps,
            useTableSelectorProps: useTableSelectorProps,
            useTableBlockDecoratorProps: useTableBlockDecoratorProps,
            useListBlockDecoratorProps: useListBlockDecoratorProps,
            useTableSelectorDecoratorProps: useTableSelectorDecoratorProps,
            useCollapseBlockDecoratorProps: useCollapseBlockDecoratorProps,
            useFilterFormBlockProps: useFilterFormBlockProps,
            useFilterFormBlockDecoratorProps: useFilterFormBlockDecoratorProps,
            useGridCardBlockDecoratorProps: useGridCardBlockDecoratorProps
        });
    }
}
export { PluginBlockSchemaComponent };
