DrawingAreaPolicy: {
    allowed?: {
        objectKinds?: string[];
    };
    bleed?: {
        bottom: number;
        left: number;
        right: number;
        top: number;
    };
    capacity?: {
        emptyVisual?: DrawingAreaEmptyVisual;
        maxObjects?: number;
        overflowStrategy?: "replaceOldest" | "reject";
    };
    clipping?: {
        enabled?: boolean;
        inset?: {
            bottom: number;
            left: number;
            right: number;
            top: number;
        };
        type?: "rect" | "path";
    };
    constraints?: {
        allowOverflow?: boolean;
        autoFit?: boolean;
        containment?: "area" | "canvas";
        mode?: "hard" | "soft";
    };
    margin?: {
        bottom: number;
        left: number;
        right: number;
        top: number;
    };
    pricing?: {
        base?: number;
        multiplier?: number;
        rules?: {
            id: string;
            kind: string;
            params: any;
        }[];
        scope?: "area" | "objects" | "both";
    };
    snapping?: {
        enabled?: boolean;
        rules?: string[];
        strength?: number;
        thresholdPx?: number;
    };
}

Type declaration

  • Optionalallowed?: {
        objectKinds?: string[];
    }
    • OptionalobjectKinds?: string[]
  • Optionalbleed?: {
        bottom: number;
        left: number;
        right: number;
        top: number;
    }
    • bottom: number
    • left: number
    • right: number
    • top: number
  • Optionalcapacity?: {
        emptyVisual?: DrawingAreaEmptyVisual;
        maxObjects?: number;
        overflowStrategy?: "replaceOldest" | "reject";
    }
    • OptionalemptyVisual?: DrawingAreaEmptyVisual
    • OptionalmaxObjects?: number
    • OptionaloverflowStrategy?: "replaceOldest" | "reject"
  • Optionalclipping?: {
        enabled?: boolean;
        inset?: {
            bottom: number;
            left: number;
            right: number;
            top: number;
        };
        type?: "rect" | "path";
    }
    • Optionalenabled?: boolean

      Defaults to true: drawing areas clip their assigned objects unless explicitly disabled.

    • Optionalinset?: {
          bottom: number;
          left: number;
          right: number;
          top: number;
      }
      • bottom: number
      • left: number
      • right: number
      • top: number
    • Optionaltype?: "rect" | "path"
  • Optionalconstraints?: {
        allowOverflow?: boolean;
        autoFit?: boolean;
        containment?: "area" | "canvas";
        mode?: "hard" | "soft";
    }
    • OptionalallowOverflow?: boolean

      Defaults to true: user objects may partially exceed the area unless explicitly set to false.

    • OptionalautoFit?: boolean

      Defaults to true: newly added user layers are fitted inside the drawing area unless explicitly set to false.

    • Optionalcontainment?: "area" | "canvas"
    • Optionalmode?: "hard" | "soft"
  • Optionalmargin?: {
        bottom: number;
        left: number;
        right: number;
        top: number;
    }
    • bottom: number
    • left: number
    • right: number
    • top: number
  • Optionalpricing?: {
        base?: number;
        multiplier?: number;
        rules?: {
            id: string;
            kind: string;
            params: any;
        }[];
        scope?: "area" | "objects" | "both";
    }
    • Optionalbase?: number
    • Optionalmultiplier?: number
    • Optionalrules?: {
          id: string;
          kind: string;
          params: any;
      }[]
    • Optionalscope?: "area" | "objects" | "both"
  • Optionalsnapping?: {
        enabled?: boolean;
        rules?: string[];
        strength?: number;
        thresholdPx?: number;
    }
    • Optionalenabled?: boolean
    • Optionalrules?: string[]
    • Optionalstrength?: number
    • OptionalthresholdPx?: number