@xuda.io/xuda-worker-bundle-min 1.3.287 → 1.3.289

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.
Files changed (2) hide show
  1. package/index.js +91 -53
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -2324,10 +2324,7 @@ func.datasource.render_fields_dataset = async function (
2324
2324
  var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
2325
2325
  var args = _ds.args;
2326
2326
 
2327
- const _progFields = await get_merge_progFields_with_dynamic_fields(
2328
- SESSION_ID,
2329
- dataSourceSession
2330
- );
2327
+ const _progFields = await get_progFields(SESSION_ID, dataSourceSession);
2331
2328
 
2332
2329
  if (!_progFields) {
2333
2330
  return;
@@ -2465,10 +2462,7 @@ func.datasource.render_fields_form = async function (
2465
2462
  var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
2466
2463
  var v = _ds.v;
2467
2464
 
2468
- const _progFields = await get_merge_progFields_with_dynamic_fields(
2469
- SESSION_ID,
2470
- dataSourceSession
2471
- );
2465
+ const _progFields = await get_progFields(SESSION_ID, dataSourceSession);
2472
2466
 
2473
2467
  if (!_progFields) {
2474
2468
  return;
@@ -3660,10 +3654,7 @@ func.datasource.get_value = async function (
3660
3654
  org_dsSessionP
3661
3655
  ) {
3662
3656
  const return_value = async (field_id, value) => {
3663
- const _progFields = await get_merge_progFields_with_dynamic_fields(
3664
- SESSION_ID,
3665
- dsSessionP
3666
- );
3657
+ const _progFields = await get_progFields(SESSION_ID, dsSessionP);
3667
3658
  let view_field_obj = func.common.find_item_by_key(
3668
3659
  _progFields,
3669
3660
  "field_id",
@@ -3730,6 +3721,30 @@ func.datasource.get_value = async function (
3730
3721
  found: typeof value !== "undefined",
3731
3722
  };
3732
3723
  };
3724
+ const return_dynamic_value = async (field_id, value) => {
3725
+ let view_field_obj = _ds.dynamic_fields[field_id];
3726
+ var fieldType = view_field_obj?.props?.fieldType || "string";
3727
+ var fieldProp = view_field_obj?.props;
3728
+
3729
+ let ret = {
3730
+ value: fieldProp.value,
3731
+ type: fieldType,
3732
+ prop: fieldProp,
3733
+ };
3734
+
3735
+ if (ret.value && typeof ret.value === "string" && ret.type !== "exp") {
3736
+ if (/"/.test(ret.value) && ret.value.indexOf("\\") === -1)
3737
+ ret.value = ret.value.replace(/"/g, '"');
3738
+ }
3739
+
3740
+ return {
3741
+ ret,
3742
+ dsSessionP,
3743
+ fieldIdP: field_id,
3744
+ currentRecordId: _ds.currentRecordId,
3745
+ found: typeof value !== "undefined",
3746
+ };
3747
+ };
3733
3748
  const return_value_parameters = async (field_id, value) => {
3734
3749
  let ret = {
3735
3750
  value: await func.common.get_cast_val(
@@ -3864,27 +3879,20 @@ func.datasource.get_value = async function (
3864
3879
  if (fieldIdP.substr(0, 1) === "_") {
3865
3880
  if (_ds.alias) _field_id = _ds.alias[fieldIdP];
3866
3881
  }
3867
- // search in dataset
3868
- // if (
3869
- // _ds.renderType &&
3870
- // _ds.renderType !== "grid" &&
3871
- // _ds.renderType !== "form"
3872
- // ) {
3873
- // if (typeof _ds?.dataset_new?.[_field_id] !== "undefined") {
3874
- // return await return_value(_field_id, _ds.dataset_new[_field_id]);
3875
- // }
3876
- // return await search_in_parameters(fieldIdP);
3877
- // }
3878
3882
 
3879
- if (
3880
- !org_dsSessionP &&
3881
- recordId &&
3882
- typeof _ds.data_feed?.rows?.[recordId]?.[_field_id] !== "undefined"
3883
- ) {
3884
- return await return_value(
3885
- _field_id,
3886
- _ds.data_feed.rows[recordId][_field_id]
3887
- );
3883
+ if (!org_dsSessionP && recordId) {
3884
+ if (typeof _ds.data_feed?.rows?.[recordId]?.[_field_id] !== "undefined") {
3885
+ return await return_value(
3886
+ _field_id,
3887
+ _ds.data_feed.rows[recordId][_field_id]
3888
+ );
3889
+ }
3890
+ if (typeof _ds?.dynamic_fields?.[_field_id] !== "undefined") {
3891
+ return await return_dynamic_value(
3892
+ _field_id,
3893
+ _ds.dynamic_fields[_field_id]
3894
+ );
3895
+ }
3888
3896
  }
3889
3897
 
3890
3898
  if (
@@ -3896,6 +3904,9 @@ func.datasource.get_value = async function (
3896
3904
  _ds.data_feed.rows[_ds.currentRecordId][_field_id]
3897
3905
  );
3898
3906
  }
3907
+ if (typeof _ds?.dynamic_fields?.[_field_id] !== "undefined") {
3908
+ return await return_dynamic_value(_field_id, _ds.dynamic_fields[_field_id]);
3909
+ }
3899
3910
 
3900
3911
  return await search_in_parameters(fieldIdP);
3901
3912
  };
@@ -4316,7 +4327,7 @@ func.datasource.get_pre_init_fields = function (
4316
4327
  return; // inactive 021617
4317
4328
  }; // temporary inactive, init preformed on the first round
4318
4329
 
4319
- func.datasource.add_dynamic_field_to_data_feed = function (
4330
+ func.datasource.add_dynamic_field_to_ds = function (
4320
4331
  SESSION_ID,
4321
4332
  dsSessionP,
4322
4333
  key,
@@ -4324,12 +4335,8 @@ func.datasource.add_dynamic_field_to_data_feed = function (
4324
4335
  ) {
4325
4336
  var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[dsSessionP];
4326
4337
  if (!_ds.dynamic_fields) {
4327
- _ds.dynamic_fields = [];
4338
+ _ds.dynamic_fields = {};
4328
4339
  }
4329
- _ds.data_feed.rows[_ds.currentRecordId][key] = val;
4330
-
4331
- // todo: check duplicates
4332
- if (_ds.dynamic_fields.some((e) => e.data.field_id === key)) return;
4333
4340
 
4334
4341
  const toType = function (obj) {
4335
4342
  return {}.toString
@@ -4338,7 +4345,7 @@ func.datasource.add_dynamic_field_to_data_feed = function (
4338
4345
  .toLowerCase();
4339
4346
  };
4340
4347
 
4341
- _ds.dynamic_fields.push({
4348
+ _ds.dynamic_fields[key] = {
4342
4349
  id: crypto.randomUUID(),
4343
4350
  data: {
4344
4351
  type: "virtual",
@@ -4347,26 +4354,57 @@ func.datasource.add_dynamic_field_to_data_feed = function (
4347
4354
  props: {
4348
4355
  fieldType: val ? toType(val) : "string",
4349
4356
  },
4350
- });
4357
+ value: val,
4358
+ };
4351
4359
  };
4352
- const get_merge_progFields_with_dynamic_fields = async function (
4353
- SESSION_ID,
4354
- dsSessionP
4355
- ) {
4360
+ // func.datasource.add_dynamic_field_to_data_feed = function (
4361
+ // SESSION_ID,
4362
+ // dsSessionP,
4363
+ // key,
4364
+ // val
4365
+ // ) {
4366
+ // var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[dsSessionP];
4367
+ // if (!_ds.dynamic_fields) {
4368
+ // _ds.dynamic_fields = [];
4369
+ // }
4370
+ // _ds.data_feed.rows[_ds.currentRecordId][key] = val;
4371
+
4372
+ // // todo: check duplicates
4373
+ // if (_ds.dynamic_fields.some((e) => e.data.field_id === key)) return;
4374
+
4375
+ // const toType = function (obj) {
4376
+ // return {}.toString
4377
+ // .call(obj)
4378
+ // .match(/\s([a-zA-Z]+)/)[1]
4379
+ // .toLowerCase();
4380
+ // };
4381
+
4382
+ // _ds.dynamic_fields.push({
4383
+ // id: crypto.randomUUID(),
4384
+ // data: {
4385
+ // type: "virtual",
4386
+ // field_id: key,
4387
+ // },
4388
+ // props: {
4389
+ // fieldType: val ? toType(val) : "string",
4390
+ // },
4391
+ // });
4392
+ // };
4393
+ const get_progFields = async function (SESSION_ID, dsSessionP) {
4356
4394
  var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[dsSessionP];
4357
4395
  const _view_obj = await func.utils.VIEWS_OBJ.get(SESSION_ID, _ds.prog_id);
4396
+ return _view_obj.progFields;
4397
+ // var ret_arr = _view_obj.progFields;
4358
4398
 
4359
- var ret_arr = _view_obj.progFields;
4360
-
4361
- _ds?.dynamic_fields?.forEach((field) => {
4362
- if (ret_arr.some((e) => e.data.field_id === field.data.field_id)) {
4363
- return;
4364
- }
4399
+ // _ds?.dynamic_fields?.forEach((field) => {
4400
+ // if (ret_arr.some((e) => e.data.field_id === field.data.field_id)) {
4401
+ // return;
4402
+ // }
4365
4403
 
4366
- ret_arr.push(field);
4367
- });
4404
+ // ret_arr.push(field);
4405
+ // });
4368
4406
 
4369
- return ret_arr;
4407
+ // return ret_arr;
4370
4408
  };
4371
4409
  func.utils = {};
4372
4410
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xuda.io/xuda-worker-bundle-min",
3
- "version": "1.3.287",
3
+ "version": "1.3.289",
4
4
  "description": "xuda framework min",
5
5
  "main": "index.js",
6
6
  "scripts": {