> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nanoforge.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Util variable

> Util API documentation

import { PageLink } from '/snippets/tsdocs/PageLink.jsx';
import { RefLink } from '/snippets/tsdocs/RefLink.jsx';

# Util

## Signature

```typescript theme={null}
Util: {
  _isElement(obj: any): obj is Element;
  _isFunction(obj: any): boolean;
  _isPlainObject(obj: any): boolean;
  _isArray(obj: any): obj is Array<any>;
  _isNumber(obj: any): obj is number;
  _isString(obj: any): obj is string;
  _isBoolean(obj: any): obj is boolean;
  isObject(val: any): val is object;
  isValidSelector(selector: any): boolean;
  _sign(number: number): 1 | -1;
  requestAnimFrame(callback: Function): void;
  createCanvasElement(): HTMLCanvasElement;
  createImageElement(): HTMLImageElement;
  _isInDocument(el: any): boolean;
  _urlToImage(url: string, callback: Function): void;
  _rgbToHex(r: number, g: number, b: number): string;
  _hexToRgb(hex: string): import("konva/lib/types").RGB;
  getRandomColor(): string;
  isCanvasFarblingActive(): boolean;
  getHitColor(): string;
  getHitColorKey(r: number, g: number, b: number): string;
  getSnappedHexColor(hex: string): string;
  getRGB(color: string): import("konva/lib/types").RGB;
  colorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _namedColorToRBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | null;
  _rgbColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _rgbaColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _hex8ColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _hex6ColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _hex4ColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _hex3ColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  _hslColorToRGBA(str: string): {
    r: number;
    g: number;
    b: number;
    a: number;
  } | undefined;
  haveIntersection(r1: import("konva/lib/types").IRect, r2: import("konva/lib/types").IRect): boolean;
  cloneObject<Any>(obj: Any): Any;
  cloneArray(arr: Array<any>): any[];
  degToRad(deg: number): number;
  radToDeg(rad: number): number;
  _degToRad(deg: number): number;
  _radToDeg(rad: number): number;
  _getRotation(radians: number): number;
  _capitalize(str: string): string;
  throw(str: string): never;
  error(str: string): void;
  warn(str: string): void;
  each(obj: object, func: Function): void;
  _inRange(val: number, left: number, right: number): boolean;
  _getProjectionToSegment(x1: any, y1: any, x2: any, y2: any, x3: any, y3: any): any[];
  _getProjectionToLine(pt: import("konva/lib/types").Vector2d, line: Array<import("konva/lib/types").Vector2d>, isClosed: boolean): import("konva/lib/types").Vector2d;
  _prepareArrayForTween(startArray: any, endArray: any, isClosed: any): number[];
  _prepareToStringify<T>(obj: any): T | null;
  _assign<T, U>(target: T, source: U): T & U;
  _getFirstPointerId(evt: any): any;
  releaseCanvas(...canvases: HTMLCanvasElement[]): void;
  drawRoundedRectPath(context: import("konva/lib/Context").Context, width: number, height: number, cornerRadius: number | number[]): void;
  drawRoundedPolygonPath(context: import("konva/lib/Context").Context, points: import("konva/lib/types").Vector2d[], sides: number, radius: number, cornerRadius: number | number[]): void;
}
```
