import { Plugin } from "../../application/Plugin.mjs";
import { QuickAccessAction } from "./Action.mjs";
import { QuickAccessBlock } from "./Block.mjs";
import { quickAccessBlockInitializerItem } from "./blockInitializerItem.mjs";
import { quickAccessBlockSettings } from "./blockSettings.mjs";
import { quickAccessConfigureActions } from "./configureActions.mjs";
import { QuickAccessCustomRequestActionSchemaInitializerItem, quickAccessActionSettingsCustomRequest } from "./CustomRequestActionSchemaInitializerItem.mjs";
import { quickAccessActionSettingsLink } from "./LinkActionSchemaInitializerItem.mjs";
import { QuickAccessPopupActionSchemaInitializerItem, quickAccessActionSettingsPopup } from "./PopupActionSchemaInitializerItem.mjs";
class QuickAccessPlugin extends Plugin {
    async load() {
        this.app.addComponents({
            QuickAccessBlock: QuickAccessBlock,
            QuickAccessAction: QuickAccessAction
        });
        this.app.schemaSettingsManager.add(quickAccessBlockSettings);
        this.app.schemaInitializerManager.add(quickAccessConfigureActions);
        this.app.schemaInitializerManager.addItem('page:addBlock', "otherBlocks.".concat(quickAccessBlockInitializerItem.name), quickAccessBlockInitializerItem);
        this.app.schemaInitializerManager.addItem('popup:common:addBlock', "otherBlocks.".concat(quickAccessBlockInitializerItem.name), quickAccessBlockInitializerItem);
        this.app.schemaSettingsManager.add(quickAccessActionSettingsLink);
        this.app.schemaSettingsManager.add(quickAccessActionSettingsPopup);
        this.app.schemaInitializerManager.addItem('quickAccess:configureActions', "popup", {
            Component: QuickAccessPopupActionSchemaInitializerItem
        });
        this.app.schemaSettingsManager.add(quickAccessActionSettingsCustomRequest);
        this.app.schemaInitializerManager.addItem('quickAccess:configureActions', "customRequest", {
            Component: QuickAccessCustomRequestActionSchemaInitializerItem
        });
    }
}
export { QuickAccessPlugin };
