create-free-stack-plugin.ts 922 B

12345678910111213141516171819202122232425262728
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import { definePluginCreator } from '@flowgram.ai/core';
  6. import { FreeStackPluginOptions } from './type';
  7. import { StackingContextManager } from './manager';
  8. export const createFreeStackPlugin = definePluginCreator<FreeStackPluginOptions>({
  9. singleton: true,
  10. onBind({ bind }) {
  11. bind(StackingContextManager).toSelf().inSingletonScope();
  12. },
  13. onInit(ctx, options) {
  14. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  15. stackingContextManager.init(options);
  16. },
  17. onReady(ctx) {
  18. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  19. stackingContextManager.ready();
  20. },
  21. onDispose(ctx) {
  22. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  23. stackingContextManager.dispose();
  24. },
  25. });