Singleton settings manager for the CAD application.

This class manages application-wide settings with:

  • Persistent storage using localStorage
  • Event notification when settings change
  • Type-safe setting access
  • Default value fallbacks

The settings are automatically saved to localStorage and restored on application start.

// Get the singleton instance
const settings = AcApSettingManager.instance;

// Set a setting value
settings.set('isShowToolbar', false);

// Get a setting value
const showToolbar = settings.get('isShowToolbar');

// Toggle a boolean setting
settings.toggle('isDebug');

// Listen for setting changes
settings.events.modified.addEventListener(args => {
console.log(`Setting ${args.key} changed to:`, args.value);
});

Type Parameters

Constructors

Properties

events: { modified: AcCmEventManager<AcApSettingManagerEventArgs<T>> } = ...

Events fired when settings are modified

Type declaration

Accessors

Methods

  • Gets a setting value.

    Returns the stored value or the default value if not set.

    Type Parameters

    • K extends string | number | symbol

      The setting key type

    Parameters

    • key: K

      The setting key to retrieve

    Returns NonNullable<AcApSettings & T>[K]

    The setting value

    const isDebug = settings.get('isDebug');
    const fontMapping = settings.get('fontMapping');
  • Sets a setting value and persists it to localStorage.

    Fires a modified event after the setting is saved.

    Type Parameters

    • K extends string | number | symbol

      The setting key type

    Parameters

    • key: K

      The setting key to modify

    • value: T[K]

      The new value for the setting

    Returns void

    settings.set('isShowToolbar', false);
    settings.set('fontMapping', { 'Arial': 'Helvetica' });
  • Toggles a boolean setting value.

    Only works with boolean settings. The caller should ensure the setting is boolean.

    Type Parameters

    • K extends string | number | symbol

      The setting key type

    Parameters

    • key: K

      The boolean setting key to toggle

    Returns void

    settings.toggle('isDebug');        // false -> true
    settings.toggle('isShowToolbar'); // true -> false