<commit_before>import { BezierNode, Curve, FxSection, SerializedBezierNode, SerializedCurve, SerializedFxSection } from '@fms-cat/automaton';
import { StatusLevel, WithStatus } from './types/Status';
import { AutomatonWithGUI } from './AutomatonWithGUI';
import { EventEmittable } from './mixins/EventEmittable';
import { SerializableWithID } from './types/SerializableWithID';
import { WithBypass } from './types/WithBypass';
import { WithID } from './types/WithID';
import { applyMixins } from './utils/applyMixins';
import { clamp } from './utils/clamp';
import { genID } from './utils/genID';
import { hasOverwrap } from './utils/hasOverwrap';
import { jsonCopy } from './utils/jsonCopy';

/**
 * Handles of a new node will be created in this length.
 */
export const CURVE_DEFAULT_HANDLE_LENGTH = 0.5;

export const CURVE_FX_ROW_MAX = 5;

/**
 * Represents "Status code" of a status of the {@link Curve}.
 */
export enum CurveStatusCode {
  NOT_USED,
  NAN_DETECTED,
}

/**
 * It represents a channel of Automaton.
 * It's `automaton.js` and `automaton.min.js` version.
 * It has even more pretty APIs yay
 * @param automaton Parent automaton
 * @param data Data of the channel
 */
export class CurveWithGUI extends Curve {
  /**
   * The parent automaton.
   */
  protected __automaton!: AutomatonWithGUI;

  /**
   * List of bezier nodes.
   */<commit_msg>(from automaton-with-gui repo) change curve default handle length<commit_after>import { BezierNode, Curve, FxSection, SerializedBezierNode, SerializedCurve, SerializedFxSection } from '@fms-cat/automaton';
import { StatusLevel, WithStatus } from './types/Status';
import { AutomatonWithGUI } from './AutomatonWithGUI';
import { EventEmittable } from './mixins/EventEmittable';
import { SerializableWithID } from './types/SerializableWithID';
import { WithBypass } from './types/WithBypass';
import { WithID } from './types/WithID';
import { applyMixins } from './utils/applyMixins';
import { clamp } from './utils/clamp';
import { genID } from './utils/genID';
import { hasOverwrap } from './utils/hasOverwrap';
import { jsonCopy } from './utils/jsonCopy';

/**
 * Handles of a new node will be created in this length.
 */
export const CURVE_DEFAULT_HANDLE_LENGTH = 0.1;

export const CURVE_FX_ROW_MAX = 5;

/**
 * Represents "Status code" of a status of the {@link Curve}.
 */
export enum CurveStatusCode {
  NOT_USED,
  NAN_DETECTED,
}

/**
 * It represents a channel of Automaton.
 * It's `automaton.js` and `automaton.min.js` version.
 * It has even more pretty APIs yay
 * @param automaton Parent automaton
 * @param data Data of the channel
 */
export class CurveWithGUI extends Curve {
  /**
   * The parent automaton.
   */
  protected __automaton!: AutomatonWithGUI;

  /**
   * List of bezier nodes.
   */
{'fraction_non_alphanumeric': 0.12526997840172785, 'fraction_numerical': 0.0021598272138228943, 'mean_word_length': 4.071167883211679, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '468421', 'n_tokens_mistral': 884, 'n_tokens_neox': 867, 'n_words': 269}