create-select-box-plugin.ts 997 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import {
  6. FlowSelectorBoundsLayer,
  7. FlowSelectorBoundsLayerOptions,
  8. FlowSelectorBoxLayer,
  9. FlowSelectorBoxOptions,
  10. type SelectorBoxPopoverProps,
  11. } from '@flowgram.ai/renderer';
  12. import { definePluginCreator } from '@flowgram.ai/core';
  13. // import { SelectorBounds } from './selector-bounds';
  14. export { type SelectorBoxPopoverProps };
  15. export interface SelectBoxPluginOptions
  16. extends FlowSelectorBoundsLayerOptions,
  17. FlowSelectorBoxOptions {
  18. enable?: boolean;
  19. }
  20. export const createSelectBoxPlugin = definePluginCreator<SelectBoxPluginOptions>({
  21. onInit(ctx, opts): void {
  22. // 默认可用,所以强制判断 false
  23. if (opts.enable !== false) {
  24. ctx.playground.registerLayer<FlowSelectorBoundsLayer>(FlowSelectorBoundsLayer, opts);
  25. ctx.playground.registerLayer<FlowSelectorBoxLayer>(FlowSelectorBoxLayer, {
  26. canSelect: opts.canSelect,
  27. });
  28. }
  29. },
  30. });