From e5fbd64036839d9f18f211547d96f04bb1fb6aba Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Wed, 11 Jun 2025 16:24:29 +0400 Subject: [PATCH] Add additional `data:path` events --- packages/core/src/data_sources/model/DataRecord.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/src/data_sources/model/DataRecord.ts b/packages/core/src/data_sources/model/DataRecord.ts index 3c8c5fe93..83dad3e08 100644 --- a/packages/core/src/data_sources/model/DataRecord.ts +++ b/packages/core/src/data_sources/model/DataRecord.ts @@ -63,9 +63,9 @@ export default class DataRecord ext * @private * @name handleChange */ - handleChange() { + handleChange(m: DataRecord, opts: SetOptions) { const changed = this.changedAttributes(); - keys(changed).forEach((prop) => this.triggerChange(prop)); + keys(changed).forEach((prop) => this.triggerChange(prop, opts)); } /** @@ -113,10 +113,12 @@ export default class DataRecord ext * @param {String} [prop] - Optional property name to trigger a change event for a specific property. * @name triggerChange */ - triggerChange(prop?: string) { + triggerChange(prop?: string, options: SetOptions = {}) { const { dataSource, em } = this; - const data = { dataSource, dataRecord: this }; const paths = this.getPaths(prop); + const data = { dataSource, dataRecord: this, path: paths[0], options }; + em.trigger(DataSourcesEvents.path, data); + em.trigger(`${DataSourcesEvents.path}:${dataSource.id}`, data); paths.forEach((path) => em.trigger(`${DataSourcesEvents.path}:${path}`, { ...data, path })); }