( ′∀`)σ≡σ☆))Д′)レ(゚∀゚;)ヘ=З=З=Зε≡(ノ´_ゝ`)ノ HEX
HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux mail.thebrand.ai 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64
User: www-data (33)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/tmpr/../tmpr/..//tmpr/../tmpr/..//easyApp/src/objects/object-modified-event.ts
import {IImageOptions, IObjectOptions, ITextOptions} from 'fabric/fabric-impl';
import {SIZE_AND_POSITION_PROPS} from './size-and-position-props';
import {fabricCanvas} from '../state/utils';

export type ObjectOptions = IObjectOptions &
  ITextOptions &
  IImageOptions & {src?: string};

export interface ObjectModifiedEvent {
  values: ObjectOptions;
  sizeOrPositionChanged: boolean;
}

export function fireObjModifiedEvent(values: ObjectOptions = {}) {
  fabricCanvas().fire('object:modified', buildObjModifiedEvent(values));
}

export function buildObjModifiedEvent(
  values: ObjectOptions
): ObjectModifiedEvent {
  return {
    values,
    sizeOrPositionChanged: sizeOrPositionChanged(values),
  };
}

function sizeOrPositionChanged(values: ObjectOptions): boolean {
  return Object.keys(values).some(r =>
    SIZE_AND_POSITION_PROPS.includes(r as keyof ObjectOptions)
  );
}