create-free-stack-plugin.ts 815 B

123456789101112131415161718192021222324
  1. import { definePluginCreator } from '@flowgram.ai/core';
  2. import { StackingContextManager } from './manager';
  3. import { StackingComputeMode } from './constant';
  4. export const createFreeStackPlugin = definePluginCreator<{
  5. mode?: StackingComputeMode;
  6. }>({
  7. onBind({ bind }) {
  8. bind(StackingContextManager).toSelf().inSingletonScope();
  9. },
  10. onInit(ctx, opts) {
  11. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  12. stackingContextManager.init(opts?.mode);
  13. },
  14. onReady(ctx) {
  15. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  16. stackingContextManager.ready();
  17. },
  18. onDispose(ctx) {
  19. const stackingContextManager = ctx.get<StackingContextManager>(StackingContextManager);
  20. stackingContextManager.dispose();
  21. },
  22. });