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