@wavemaker/angular-codegen 11.8.0-next.141688 → 11.8.0-next.141690

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.
@@ -37,7 +37,7 @@
37
37
  "@metrichor/jmespath": "0.3.1",
38
38
  "@wavemaker/focus-trap": "1.0.1",
39
39
  "@wavemaker/nvd3": "1.8.11",
40
- "@wavemaker/variables": "11.8.0-next.141688",
40
+ "@wavemaker/variables": "11.8.0-next.141690",
41
41
  "@ztree/ztree_v3": "3.5.48",
42
42
  "angular-imask": "^7.6.1",
43
43
  "angular2-websocket": "0.9.7",
@@ -89,6 +89,7 @@
89
89
  "fs": "0.0.1-security",
90
90
  "fs-extra": "7.0.1",
91
91
  "jest": "^29.7.0",
92
+ "jest-canvas-mock": "^2.5.2",
92
93
  "jest-preset-angular": "^14.1.0",
93
94
  "moment": "2.29.4",
94
95
  "moment-timezone": "^0.5.34",
@@ -6452,9 +6453,9 @@
6452
6453
  }
6453
6454
  },
6454
6455
  "node_modules/@wavemaker/variables": {
6455
- "version": "11.8.0-next.141688",
6456
- "resolved": "https://registry.npmjs.org/@wavemaker/variables/-/variables-11.8.0-next.141688.tgz",
6457
- "integrity": "sha512-d9RI2eo9y2BemihVsEOFuPMm5ewmgYzIbYY7gTbdhXBMCYpMblk4WKXKA2mb8ucHUd93SF3SPpLQOncegRPFkg==",
6456
+ "version": "11.8.0-next.141690",
6457
+ "resolved": "https://registry.npmjs.org/@wavemaker/variables/-/variables-11.8.0-next.141690.tgz",
6458
+ "integrity": "sha512-fcEtViE/nMe6FvRTMgTBC1dnQMyoHC4/kbR29pzCpwzI3z74O4hNn01g/f1VrJgVmDrrtgZuLulOcMRdcF3byA==",
6458
6459
  "dependencies": {
6459
6460
  "@metrichor/jmespath": "^0.3.1",
6460
6461
  "he": "^1.2.0",
@@ -9817,6 +9818,12 @@
9817
9818
  "node": ">=4"
9818
9819
  }
9819
9820
  },
9821
+ "node_modules/cssfontparser": {
9822
+ "version": "1.2.1",
9823
+ "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz",
9824
+ "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==",
9825
+ "dev": true
9826
+ },
9820
9827
  "node_modules/cssstyle": {
9821
9828
  "version": "2.3.0",
9822
9829
  "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
@@ -14240,6 +14247,16 @@
14240
14247
  }
14241
14248
  }
14242
14249
  },
14250
+ "node_modules/jest-canvas-mock": {
14251
+ "version": "2.5.2",
14252
+ "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz",
14253
+ "integrity": "sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==",
14254
+ "dev": true,
14255
+ "dependencies": {
14256
+ "cssfontparser": "^1.2.1",
14257
+ "moo-color": "^1.0.2"
14258
+ }
14259
+ },
14243
14260
  "node_modules/jest-changed-files": {
14244
14261
  "version": "29.7.0",
14245
14262
  "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
@@ -17471,6 +17488,21 @@
17471
17488
  "node": "*"
17472
17489
  }
17473
17490
  },
17491
+ "node_modules/moo-color": {
17492
+ "version": "1.0.3",
17493
+ "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz",
17494
+ "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==",
17495
+ "dev": true,
17496
+ "dependencies": {
17497
+ "color-name": "^1.1.4"
17498
+ }
17499
+ },
17500
+ "node_modules/moo-color/node_modules/color-name": {
17501
+ "version": "1.1.4",
17502
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
17503
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
17504
+ "dev": true
17505
+ },
17474
17506
  "node_modules/morgan": {
17475
17507
  "version": "1.10.0",
17476
17508
  "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-app",
3
- "version": "11.8.0-next.141688",
3
+ "version": "11.8.0-next.141690",
4
4
  "scripts": {
5
5
  "ng": "ng",
6
6
  "start": "./node_modules/.bin/ng serve",
@@ -46,7 +46,7 @@
46
46
  "@metrichor/jmespath": "0.3.1",
47
47
  "@wavemaker/focus-trap": "1.0.1",
48
48
  "@wavemaker/nvd3": "1.8.11",
49
- "@wavemaker/variables": "11.8.0-next.141688",
49
+ "@wavemaker/variables": "11.8.0-next.141690",
50
50
  "@ztree/ztree_v3": "3.5.48",
51
51
  "angular-imask": "^7.6.1",
52
52
  "angular2-websocket": "0.9.7",
@@ -71,7 +71,7 @@
71
71
  "tslib": "2.4.1",
72
72
  "x2js": "3.4.4",
73
73
  "zone.js": "0.14.7",
74
- "@wavemaker/app-ng-runtime": "11.8.0-next.141688"
74
+ "@wavemaker/app-ng-runtime": "11.8.0-next.141690"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@ampproject/rollup-plugin-closure-compiler": "^0.27.0",
@@ -99,6 +99,7 @@
99
99
  "fs": "0.0.1-security",
100
100
  "fs-extra": "7.0.1",
101
101
  "jest": "^29.7.0",
102
+ "jest-canvas-mock": "^2.5.2",
102
103
  "jest-preset-angular": "^14.1.0",
103
104
  "moment": "2.29.4",
104
105
  "moment-timezone": "^0.5.34",
@@ -2,6 +2,7 @@ import "jest-preset-angular/setup-jest";
2
2
  import { ToastrModule } from 'ngx-toastr';
3
3
  import { TestBed } from '@angular/core/testing';
4
4
  import _ from 'lodash-es';
5
+ import 'jest-canvas-mock';
5
6
 
6
7
  // Mock global objects if necessary
7
8
  global.jQuery = require("jquery");
@@ -10,6 +11,7 @@ global._ = _;
10
11
 
11
12
 
12
13
  global.moment = require("moment");
14
+
13
15
  class IntersectionObserver {
14
16
  constructor(callback, options) {
15
17
 
@@ -87,3 +89,32 @@ beforeEach(() => {
87
89
  },
88
90
  });
89
91
  });
92
+
93
+ // jest.setup.js
94
+ Object.defineProperty(global.HTMLMediaElement.prototype, 'load', {
95
+ configurable: true,
96
+ enumerable: true,
97
+ writable: true,
98
+ value: jest.fn(),
99
+ });
100
+
101
+ Object.defineProperty(global.HTMLMediaElement.prototype, 'play', {
102
+ configurable: true,
103
+ enumerable: true,
104
+ writable: true,
105
+ value: jest.fn().mockResolvedValue(),
106
+ });
107
+
108
+ Object.defineProperty(global.HTMLMediaElement.prototype, 'pause', {
109
+ configurable: true,
110
+ enumerable: true,
111
+ writable: true,
112
+ value: jest.fn(),
113
+ });
114
+
115
+ Object.defineProperty(global.HTMLMediaElement.prototype, 'addTextTrack', {
116
+ configurable: true,
117
+ enumerable: true,
118
+ writable: true,
119
+ value: jest.fn(),
120
+ });
@@ -13,9 +13,8 @@
13
13
  * optimizeUIBuild : By default this flag will be true. If it's windows platform we are making the flag to false, it means no optimisation for windows.
14
14
  */
15
15
  const fs = require('fs');
16
- const { downloadNPMPackage } = require('./download-packages');
17
-
18
16
  const { executeSyncCmd, MSG_NG_RUNTIME_LOG, MSG_NG_RUNTIME_SUCCESS } = require('./build-util');
17
+ const os = require("os");
19
18
 
20
19
  const NPM_PACKAGE_SCOPE = '@wavemaker';
21
20
 
@@ -45,24 +44,40 @@ const updateDeployUrl = (args) => {
45
44
  * Run the ng build and post build for the project
46
45
  */
47
46
  const buildAngularApp = (args) => {
47
+ const HOME_DIR = os.homedir(), APP_NAME = "angular-app";
48
+ const TARBALL_DOWNLOAD_PATH = (HOME_DIR + '/.wm/node_modules') + '/' + APP_NAME + '/' + args.runtimeUIVersion;
49
+ const PACKAGE_NAME = NPM_PACKAGE_SCOPE + '/' + APP_NAME + '@' + args.runtimeUIVersion;
50
+ const TARBALL_NAME = APP_NAME + '-' + args.runtimeUIVersion + '.tgz';
51
+
52
+ fs.mkdirSync(TARBALL_DOWNLOAD_PATH, { recursive: true });
53
+ executeSyncCmd('cd ' + TARBALL_DOWNLOAD_PATH + ` && npm pack ${PACKAGE_NAME}`, null, `Downloading tarball - ${PACKAGE_NAME} to the location - ${TARBALL_DOWNLOAD_PATH}`);
54
+ executeSyncCmd('cd ' + TARBALL_DOWNLOAD_PATH + ` && tar -xvf ${TARBALL_NAME}`, null, `Unzipping the tarball - ${TARBALL_NAME}`);
55
+
48
56
  let packageInfo = {
49
57
  scope: NPM_PACKAGE_SCOPE,
50
- name: 'angular-app',
58
+ name: APP_NAME,
51
59
  version: args.runtimeUIVersion,
52
- packageJsonFile: '',
60
+ packageJsonFile: `${TARBALL_DOWNLOAD_PATH}/package/package.json`,
61
+ packageJsonLockFile: `${TARBALL_DOWNLOAD_PATH}/package/package-lock.json`,
53
62
  successMsg: MSG_NG_RUNTIME_SUCCESS,
54
63
  infoMsg: MSG_NG_RUNTIME_LOG
55
64
  }
56
65
 
57
66
  try {
58
- // Download angular-app node_modules
59
- let pathAngularAppPackage = downloadNPMPackage(packageInfo);
60
67
  if (args.optimizeUIBuild) {
68
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/package.json`, TARBALL_DOWNLOAD_PATH + '/package.json');
69
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/package-lock.json`, TARBALL_DOWNLOAD_PATH + '/package-lock.json');
70
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/.npmrc`, TARBALL_DOWNLOAD_PATH + '/.npmrc');
71
+
72
+ // Download angular-app node_modules
73
+ executeSyncCmd('cd ' + TARBALL_DOWNLOAD_PATH + ' && npm install ', null, "Installing app dependencies...");
74
+
61
75
  // Symlink to reuse the existing node_modules
62
- fs.symlinkSync(pathAngularAppPackage + `/node_modules`, args.appTarget + '/node_modules', 'dir');
76
+ fs.symlinkSync(TARBALL_DOWNLOAD_PATH + `/node_modules`, args.appTarget + '/node_modules', 'dir');
63
77
  } else {
64
- fs.copyFileSync(pathAngularAppPackage + `/node_modules/${packageInfo.scope}/${packageInfo.name}/package.json`, args.appTarget + '/package.json');
65
- fs.copyFileSync(pathAngularAppPackage + `/node_modules/${packageInfo.scope}/${packageInfo.name}/package-lock.json`, args.appTarget + '/package-lock.json');
78
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/package/package.json`, args.appTarget + '/package.json');
79
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/package-lock.json`, args.appTarget + '/package-lock.json');
80
+ fs.copyFileSync(TARBALL_DOWNLOAD_PATH + `/package/.npmrc`, args.appTarget + '/.npmrc');
66
81
  executeSyncCmd('cd ' + args.appTarget + ` && npm install `, null, MSG_NG_RUNTIME_LOG);
67
82
  }
68
83
  } catch (err) {
@@ -145519,6 +145519,28 @@ let CustomPipeManager$1 = class CustomPipeManager {
145519
145519
  args: [{ providedIn: 'root' }]
145520
145520
  }], null, null); })();
145521
145521
 
145522
+ let CustomIconsLoaderService$1 = class CustomIconsLoaderService {
145523
+ constructor() {
145524
+ this.http = inject(HttpClient$1);
145525
+ }
145526
+ load() {
145527
+ this.http.get('./font.config.js', { responseType: 'text' }).subscribe((fontConfig) => {
145528
+ const cssPaths = [], regex = /"csspath":\s*"([^"]+)"/g;
145529
+ let match;
145530
+ while ((match = regex.exec(fontConfig)) !== null) {
145531
+ cssPaths.push(match[1]);
145532
+ }
145533
+ loadStyleSheets$1(cssPaths);
145534
+ }, (error) => { });
145535
+ }
145536
+ static { this.ɵfac = function CustomIconsLoaderService_Factory(t) { return new (t || CustomIconsLoaderService)(); }; }
145537
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: CustomIconsLoaderService, factory: CustomIconsLoaderService.ɵfac, providedIn: 'root' }); }
145538
+ };
145539
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CustomIconsLoaderService$1, [{
145540
+ type: Injectable,
145541
+ args: [{ providedIn: 'root' }]
145542
+ }], null, null); })();
145543
+
145522
145544
  let StatePersistence$1 = class StatePersistence {
145523
145545
  constructor() {
145524
145546
  this.HISTORY_HANDLER = 'replace';
@@ -203725,6 +203747,28 @@ class CustomPipeManager {
203725
203747
  args: [{ providedIn: 'root' }]
203726
203748
  }], null, null); })();
203727
203749
 
203750
+ class CustomIconsLoaderService {
203751
+ constructor() {
203752
+ this.http = inject$1(HttpClient);
203753
+ }
203754
+ load() {
203755
+ this.http.get('./font.config.js', { responseType: 'text' }).subscribe((fontConfig) => {
203756
+ const cssPaths = [], regex = /"csspath":\s*"([^"]+)"/g;
203757
+ let match;
203758
+ while ((match = regex.exec(fontConfig)) !== null) {
203759
+ cssPaths.push(match[1]);
203760
+ }
203761
+ loadStyleSheets(cssPaths);
203762
+ }, (error) => { });
203763
+ }
203764
+ static { this.ɵfac = function CustomIconsLoaderService_Factory(t) { return new (t || CustomIconsLoaderService)(); }; }
203765
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable$1({ token: CustomIconsLoaderService, factory: CustomIconsLoaderService.ɵfac, providedIn: 'root' }); }
203766
+ }
203767
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata$1(CustomIconsLoaderService, [{
203768
+ type: Injectable$1,
203769
+ args: [{ providedIn: 'root' }]
203770
+ }], null, null); })();
203771
+
203728
203772
  class StatePersistence {
203729
203773
  constructor() {
203730
203774
  this.HISTORY_HANDLER = 'replace';
@@ -88910,6 +88910,28 @@ class CustomPipeManager {
88910
88910
  args: [{ providedIn: 'root' }]
88911
88911
  }], null, null); })();
88912
88912
 
88913
+ class CustomIconsLoaderService {
88914
+ constructor() {
88915
+ this.http = inject(HttpClient);
88916
+ }
88917
+ load() {
88918
+ this.http.get('./font.config.js', { responseType: 'text' }).subscribe((fontConfig) => {
88919
+ const cssPaths = [], regex = /"csspath":\s*"([^"]+)"/g;
88920
+ let match;
88921
+ while ((match = regex.exec(fontConfig)) !== null) {
88922
+ cssPaths.push(match[1]);
88923
+ }
88924
+ loadStyleSheets(cssPaths);
88925
+ }, (error) => { });
88926
+ }
88927
+ static { this.ɵfac = function CustomIconsLoaderService_Factory(t) { return new (t || CustomIconsLoaderService)(); }; }
88928
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: CustomIconsLoaderService, factory: CustomIconsLoaderService.ɵfac, providedIn: 'root' }); }
88929
+ }
88930
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CustomIconsLoaderService, [{
88931
+ type: Injectable,
88932
+ args: [{ providedIn: 'root' }]
88933
+ }], null, null); })();
88934
+
88913
88935
  class StatePersistence {
88914
88936
  constructor() {
88915
88937
  this.HISTORY_HANDLER = 'replace';
@@ -90386,10 +90408,10 @@ register('wm-carousel-template', () => {
90386
90408
  pre: (attrs, shared, parentCarousel) => {
90387
90409
  const carouselRef = parentCarousel.get('carousel_ref');
90388
90410
  return `<div *ngIf="!${carouselRef}.fieldDefs">{{${carouselRef}.nodatamessage}}</div>
90389
- <${carouselContentTagName} wmCarouselTemplate ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
90411
+ <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
90390
90412
  <ng-container [ngTemplateOutlet]="carouselTempRef${counter$1}"
90391
90413
  [ngTemplateOutletContext]="{item:item, index:i}"
90392
- [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + i, {item:item, index:i})"></ng-container>
90414
+ [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + carouselTemplateRef.trackId, {item:item, index:i})"></ng-container>
90393
90415
  </${carouselContentTagName}>
90394
90416
  <ng-template #carouselTempRef${counter$1++} let-item="item" let-index="index">`;
90395
90417
  },
@@ -90923,10 +90945,10 @@ register('wm-repeat-template', () => {
90923
90945
  const widgetRef = (parentAccordion && parentAccordion.get('accordion_ref')) || (parentTab && parentTab.get('tabs_ref'));
90924
90946
  if (widgetRef) {
90925
90947
  return `<div *ngIf="${widgetRef}.fieldDefs && !${widgetRef}.fieldDefs.length">{{${widgetRef}.nodatamessage}}</div>
90926
- <${dynamicTemplateTagName} wmRepeatTemplate ${getAttrMarkup(attrs)} *ngFor="let item of ${widgetRef}.fieldDefs; let i = index;">
90948
+ <${dynamicTemplateTagName} wmRepeatTemplate #repeatItemRef="repeatItemRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${widgetRef}.fieldDefs; let i = index;">
90927
90949
  <ng-container [ngTemplateOutlet]="widgetRef${counter}"
90928
90950
  [ngTemplateOutletContext]="{item:item, index:i}"
90929
- [ngTemplateOutletInjector]="${widgetRef}.createCustomInjector('dynamic_widget_'+ i, {item:item, index:i})"></ng-container>
90951
+ [ngTemplateOutletInjector]="${widgetRef}.createCustomInjector('dynamic_pane_' + repeatItemRef.trackId, {item:item, index:i})"></ng-container>
90930
90952
  </${dynamicTemplateTagName}>
90931
90953
  <ng-template #widgetRef${counter++} let-item="item" let-index="index">`;
90932
90954
  }
@@ -100101,6 +100101,28 @@ class CustomPipeManager {
100101
100101
  args: [{ providedIn: 'root' }]
100102
100102
  }], null, null); })();
100103
100103
 
100104
+ class CustomIconsLoaderService {
100105
+ constructor() {
100106
+ this.http = inject(HttpClient);
100107
+ }
100108
+ load() {
100109
+ this.http.get('./font.config.js', { responseType: 'text' }).subscribe((fontConfig) => {
100110
+ const cssPaths = [], regex = /"csspath":\s*"([^"]+)"/g;
100111
+ let match;
100112
+ while ((match = regex.exec(fontConfig)) !== null) {
100113
+ cssPaths.push(match[1]);
100114
+ }
100115
+ loadStyleSheets(cssPaths);
100116
+ }, (error) => { });
100117
+ }
100118
+ static { this.ɵfac = function CustomIconsLoaderService_Factory(t) { return new (t || CustomIconsLoaderService)(); }; }
100119
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: CustomIconsLoaderService, factory: CustomIconsLoaderService.ɵfac, providedIn: 'root' }); }
100120
+ }
100121
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CustomIconsLoaderService, [{
100122
+ type: Injectable,
100123
+ args: [{ providedIn: 'root' }]
100124
+ }], null, null); })();
100125
+
100104
100126
  class StatePersistence {
100105
100127
  constructor() {
100106
100128
  this.HISTORY_HANDLER = 'replace';
@@ -101577,10 +101599,10 @@ register('wm-carousel-template', () => {
101577
101599
  pre: (attrs, shared, parentCarousel) => {
101578
101600
  const carouselRef = parentCarousel.get('carousel_ref');
101579
101601
  return `<div *ngIf="!${carouselRef}.fieldDefs">{{${carouselRef}.nodatamessage}}</div>
101580
- <${carouselContentTagName} wmCarouselTemplate ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
101602
+ <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
101581
101603
  <ng-container [ngTemplateOutlet]="carouselTempRef${counter$1}"
101582
101604
  [ngTemplateOutletContext]="{item:item, index:i}"
101583
- [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + i, {item:item, index:i})"></ng-container>
101605
+ [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + carouselTemplateRef.trackId, {item:item, index:i})"></ng-container>
101584
101606
  </${carouselContentTagName}>
101585
101607
  <ng-template #carouselTempRef${counter$1++} let-item="item" let-index="index">`;
101586
101608
  },
@@ -102114,10 +102136,10 @@ register('wm-repeat-template', () => {
102114
102136
  const widgetRef = (parentAccordion && parentAccordion.get('accordion_ref')) || (parentTab && parentTab.get('tabs_ref'));
102115
102137
  if (widgetRef) {
102116
102138
  return `<div *ngIf="${widgetRef}.fieldDefs && !${widgetRef}.fieldDefs.length">{{${widgetRef}.nodatamessage}}</div>
102117
- <${dynamicTemplateTagName} wmRepeatTemplate ${getAttrMarkup(attrs)} *ngFor="let item of ${widgetRef}.fieldDefs; let i = index;">
102139
+ <${dynamicTemplateTagName} wmRepeatTemplate #repeatItemRef="repeatItemRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${widgetRef}.fieldDefs; let i = index;">
102118
102140
  <ng-container [ngTemplateOutlet]="widgetRef${counter}"
102119
102141
  [ngTemplateOutletContext]="{item:item, index:i}"
102120
- [ngTemplateOutletInjector]="${widgetRef}.createCustomInjector('dynamic_widget_'+ i, {item:item, index:i})"></ng-container>
102142
+ [ngTemplateOutletInjector]="${widgetRef}.createCustomInjector('dynamic_pane_' + repeatItemRef.trackId, {item:item, index:i})"></ng-container>
102121
102143
  </${dynamicTemplateTagName}>
102122
102144
  <ng-template #widgetRef${counter++} let-item="item" let-index="index">`;
102123
102145
  }
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.8.0-next.141688",
3
+ "version": "11.8.0-next.141690",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@wavemaker/angular-codegen",
9
- "version": "11.8.0-next.141688",
9
+ "version": "11.8.0-next.141690",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "cheerio": "^1.0.0-rc.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.8.0-next.141688",
3
+ "version": "11.8.0-next.141690",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {