@wavemaker/app-ng-runtime 11.5.0-next.24744 → 11.5.0-next.24745

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.
@@ -3781,30 +3781,58 @@ const setListClass = (scope) => {
3781
3781
  }
3782
3782
  };
3783
3783
  const findParent = (lView, viewParentApp) => {
3784
- let parent = findViewParent(lView);
3785
- return parent ? parent : viewParentApp;
3784
+ // console.log("---*************--lView--*************---", lView);
3785
+ // console.log("---*************--viewParentApp--*************---", viewParentApp);
3786
+ let parentObj = findViewParent(lView, { 'parent': {}, 'root': {} });
3787
+ // console.log("---*************--parentObj--*************---", parentObj);
3788
+ let finalParent = {};
3789
+ if (parentObj['parent'] === null || parentObj['root'] === null) {
3790
+ parentObj['root'] = viewParentApp;
3791
+ parentObj['parent'] = {};
3792
+ }
3793
+ let mergFunc = function (objValue, srcValue, key) {
3794
+ const protectedKeys = ['viewParent'];
3795
+ if (protectedKeys.includes(key)) {
3796
+ return objValue;
3797
+ }
3798
+ return srcValue;
3799
+ };
3800
+ if (_.isEmpty(parentObj['parent'])) {
3801
+ finalParent = _.mergeWith(parentObj.root, parentObj.parent, mergFunc);
3802
+ }
3803
+ else {
3804
+ finalParent = _.mergeWith(parentObj.parent, parentObj.root, mergFunc);
3805
+ }
3806
+ // console.log("---*************--finalParent--*************---", finalParent);
3807
+ return finalParent;
3786
3808
  };
3787
- const findViewParent = (lView) => {
3809
+ const findViewParent = (lView, parentObj) => {
3788
3810
  if (lView[3] === null) {
3789
- return lView[8];
3811
+ parentObj['root'] = lView[8];
3812
+ return parentObj;
3790
3813
  }
3791
3814
  let parentlView = lView[3];
3792
- if (typeof lView[1] === "boolean") {
3793
- return findViewParent(parentlView);
3815
+ if (typeof lView[1] === "boolean") { // this is lContainer, not lView if this is boolean
3816
+ return findViewParent(parentlView, parentObj);
3794
3817
  }
3795
3818
  let componentType = lView[1]["type"];
3796
3819
  if (componentType === 0 || componentType === 1) {
3797
3820
  let p = lView[8];
3798
3821
  // ts-ignore
3799
- if (p.hasOwnProperty("isDialogComponent")) {
3800
- return findViewParent(parentlView);
3822
+ if (p.hasOwnProperty("isDynamicComponent") || p.hasOwnProperty("isPageComponent")) {
3823
+ parentObj['root'] = p;
3824
+ return parentObj;
3801
3825
  }
3802
3826
  else {
3803
- return p;
3827
+ if (_.isEmpty(parentObj['parent'])) {
3828
+ parentObj['parent'] = p;
3829
+ // console.log(".......parentObj........", parentObj)
3830
+ }
3831
+ return findViewParent(parentlView, parentObj);
3804
3832
  }
3805
3833
  }
3806
- else {
3807
- return findViewParent(parentlView);
3834
+ else { // when componentType == 2, then fetch parent again
3835
+ return findViewParent(parentlView, parentObj);
3808
3836
  }
3809
3837
  };
3810
3838