@xuda.io/runtime-bundle 1.0.1277 → 1.0.1278
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -28149,7 +28149,55 @@ func.UI.update_xu_ref = function (SESSION_ID, dsSessionP, ref_field_id, $elm) {
|
|
|
28149
28149
|
|
|
28150
28150
|
const _ds = func.utils.clean_returned_datasource(SESSION_ID, dsSessionP);
|
|
28151
28151
|
|
|
28152
|
-
|
|
28152
|
+
//////////////
|
|
28153
|
+
function createWatchedObject(obj, onChange) {
|
|
28154
|
+
return new Proxy(obj, {
|
|
28155
|
+
set(target, property, value) {
|
|
28156
|
+
const oldValue = target[property];
|
|
28157
|
+
target[property] = value;
|
|
28158
|
+
|
|
28159
|
+
if (oldValue !== value) {
|
|
28160
|
+
onChange({
|
|
28161
|
+
property,
|
|
28162
|
+
oldValue,
|
|
28163
|
+
newValue: value,
|
|
28164
|
+
timestamp: new Date(),
|
|
28165
|
+
});
|
|
28166
|
+
}
|
|
28167
|
+
|
|
28168
|
+
return true;
|
|
28169
|
+
},
|
|
28170
|
+
|
|
28171
|
+
deleteProperty(target, property) {
|
|
28172
|
+
const oldValue = target[property];
|
|
28173
|
+
delete target[property];
|
|
28174
|
+
|
|
28175
|
+
onChange({
|
|
28176
|
+
property,
|
|
28177
|
+
oldValue,
|
|
28178
|
+
newValue: undefined,
|
|
28179
|
+
deleted: true,
|
|
28180
|
+
timestamp: new Date(),
|
|
28181
|
+
});
|
|
28182
|
+
|
|
28183
|
+
return true;
|
|
28184
|
+
},
|
|
28185
|
+
});
|
|
28186
|
+
}
|
|
28187
|
+
|
|
28188
|
+
// // Usage
|
|
28189
|
+
// const watchedUser = createWatchedObject(
|
|
28190
|
+
// { name: "John", age: 25 },
|
|
28191
|
+
// (change) => console.log("Change detected:", change)
|
|
28192
|
+
// );
|
|
28193
|
+
|
|
28194
|
+
// watchedUser.age = 26; // Logs: Change detected: { property: "age", oldValue: 25, newValue: 26, ... }
|
|
28195
|
+
|
|
28196
|
+
const watchedUser = createWatchedObject(_ds, (change) => console.log('Change detected:', change));
|
|
28197
|
+
|
|
28198
|
+
//////////////
|
|
28199
|
+
|
|
28200
|
+
let obj = { ds: _ds, data: {}, props: _ds.in_parameters || {}, watcher: watchedUser };
|
|
28153
28201
|
try {
|
|
28154
28202
|
const row_idx = func.common.find_ROWID_idx(_ds, _ds.currentRecordId);
|
|
28155
28203
|
obj.data = _ds?.data_feed?.rows?.[row_idx];
|