@wavemaker/angular-app 11.14.1-16.6419 → 11.14.1-17.6420

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.
@@ -147299,11 +147299,11 @@ const CURRENCY_INFO = {
147299
147299
  }
147300
147300
  };
147301
147301
 
147302
- const $RAF$1 = window.requestAnimationFrame;
147302
+ const $RAF$1$1 = window.requestAnimationFrame;
147303
147303
  const $RAFQueue$1 = [];
147304
147304
  const invokeLater$1 = fn => {
147305
147305
  if (!$RAFQueue$1.length) {
147306
- $RAF$1(() => {
147306
+ $RAF$1$1(() => {
147307
147307
  $RAFQueue$1.forEach(f => f());
147308
147308
  $RAFQueue$1.length = 0;
147309
147309
  });
@@ -147845,223 +147845,70 @@ const getFnForEventExpr$1 = (expr) => {
147845
147845
  return fnExecutor$1(expr, ExpressionType$2.Action);
147846
147846
  };
147847
147847
 
147848
- // Constants
147849
- const WIDGET_ID_REGEX$1 = /^(widget-[^_]+)/;
147850
- const WIDGET_PROPERTY_REGEX$1 = /^widget-[^_]+_(.+)$/;
147851
- const ARRAY_INDEX_PLACEHOLDER$1 = '[$i]';
147852
- const ARRAY_INDEX_ZERO$1 = '[0]';
147853
147848
  const registry$1 = new Map();
147854
147849
  const watchIdGenerator$1 = new IDGenerator$1('watch-id-');
147855
- const FIRST_TIME_WATCH$1 = Object.freeze({});
147856
- /**
147857
- * Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
147858
- */
147859
- const getWidgetId$1 = (identifier) => {
147860
- if (!identifier || typeof identifier !== 'string') {
147861
- return null;
147862
- }
147863
- const match = identifier.match(WIDGET_ID_REGEX$1);
147864
- return match ? match[1] : null;
147865
- };
147866
- /**
147867
- * Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
147868
- */
147869
- const getPropertyName$1 = (identifier) => {
147870
- if (!identifier || typeof identifier !== 'string') {
147871
- return identifier;
147872
- }
147873
- const match = identifier.match(WIDGET_PROPERTY_REGEX$1);
147874
- return match ? match[1] : identifier;
147875
- };
147876
- /**
147877
- * Array consumer wrapper for array-based expressions
147878
- */
147850
+ const FIRST_TIME_WATCH$1 = {};
147851
+ Object.freeze(FIRST_TIME_WATCH$1);
147879
147852
  const arrayConsumer$1 = (listenerFn, restExpr, newVal, oldVal) => {
147880
- if (!isArray$1(newVal)) {
147881
- return;
147882
- }
147883
- let formattedData = newVal.map(datum => findValueOf$1(datum, restExpr));
147884
- // Flatten if result is array of arrays
147885
- if (isArray$1(formattedData[0])) {
147886
- formattedData = flatten$2(formattedData);
147853
+ let data = newVal, formattedData;
147854
+ if (isArray$1(data)) {
147855
+ formattedData = data.map(function (datum) {
147856
+ return findValueOf$1(datum, restExpr);
147857
+ });
147858
+ // If resulting structure is an array of array, flatten it
147859
+ if (isArray$1(formattedData[0])) {
147860
+ formattedData = flatten$2(formattedData);
147861
+ }
147862
+ listenerFn(formattedData, oldVal);
147887
147863
  }
147888
- listenerFn(formattedData, oldVal);
147889
147864
  };
147890
- /**
147891
- * Updates watch info for array expressions
147892
- */
147893
- const getUpdatedWatchInfo$1 = (expr, acceptsArray, listener) => {
147894
- const regex = /\[\$i\]/g;
147865
+ const getUpdatedWatcInfo$1 = (expr, acceptsArray, listener) => {
147866
+ // listener doesn't accept array
147867
+ // replace all `[$i]` with `[0]` and return the expression
147868
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
147895
147869
  if (!acceptsArray) {
147896
147870
  return {
147897
- expr: expr.replace(regex, ARRAY_INDEX_ZERO$1),
147898
- listener
147871
+ 'expr': expr.replace(regex, $0),
147872
+ 'listener': listener
147899
147873
  };
147900
147874
  }
147901
- const lastIndex = expr.lastIndexOf(ARRAY_INDEX_PLACEHOLDER$1);
147902
- const baseExpr = expr.substring(0, lastIndex).replace(ARRAY_INDEX_PLACEHOLDER$1, ARRAY_INDEX_ZERO$1);
147903
- const restExpr = expr.substring(lastIndex + 5);
147904
- const arrayConsumerFn = restExpr
147905
- ? arrayConsumer$1.bind(undefined, listener, restExpr)
147906
- : listener;
147875
+ // listener accepts array
147876
+ // replace all except the last `[$i]` with `[0]` and return the expression.
147877
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
147878
+ if (restExpr) {
147879
+ arrayConsumerFn = arrayConsumer$1.bind(undefined, listener, restExpr);
147880
+ }
147907
147881
  return {
147908
- expr: baseExpr,
147909
- listener: arrayConsumerFn
147882
+ 'expr': _expr,
147883
+ 'listener': arrayConsumerFn
147910
147884
  };
147911
147885
  };
147912
- /**
147913
- * Determines if an expression is static (doesn't need to be watched)
147914
- */
147915
- const STATIC_EXPRESSION_NAMES$1 = [
147916
- "row.getProperty('investment')",
147917
- "row.getProperty('factsheetLink')",
147918
- "row.getProperty('isRebalanceEligible')"
147919
- ];
147920
- const isStaticExpression$1 = (expr) => {
147921
- if (typeof expr !== 'string') {
147922
- return false;
147923
- }
147924
- const trimmedExpr = expr.trim();
147925
- // Expressions that always evaluate to localization strings
147926
- // if (trimmedExpr.includes('appLocale')) {
147927
- // return true;
147928
- // }
147929
- // Hard-coded static expression names
147930
- if (STATIC_EXPRESSION_NAMES$1.includes(trimmedExpr)) {
147931
- return true;
147932
- }
147933
- return false;
147934
- };
147935
- /**
147936
- * Gets the scope type from the scope object
147937
- */
147938
- const getScopeType$1 = ($scope) => {
147939
- if (!$scope) {
147940
- return null;
147941
- }
147942
- if ($scope.pageName)
147943
- return 'Page';
147944
- if ($scope.prefabName)
147945
- return 'Prefab';
147946
- if ($scope.partialName)
147947
- return 'Partial';
147948
- // Check for App scope
147949
- if ($scope.Variables !== undefined &&
147950
- $scope.Actions !== undefined &&
147951
- !$scope.pageName &&
147952
- !$scope.prefabName &&
147953
- !$scope.partialName) {
147954
- return 'App';
147955
- }
147956
- if ($scope.constructor?.name === 'AppRef') {
147957
- return 'App';
147958
- }
147959
- return null;
147960
- };
147961
- /**
147962
- * Gets scope name based on scope type
147963
- */
147964
- const getScopeName$1 = ($scope, scopeType) => {
147965
- if (!scopeType || !$scope) {
147966
- return null;
147967
- }
147968
- switch (scopeType) {
147969
- case 'Prefab': return $scope.prefabName || null;
147970
- case 'Partial': return $scope.partialName || null;
147971
- case 'Page': return $scope.pageName || null;
147972
- default: return null;
147973
- }
147974
- };
147975
- /**
147976
- * Main watch function
147977
- */
147978
147886
  const $watch$1 = (expr, $scope, $locals, listener, identifier = watchIdGenerator$1.nextUid(), doNotClone = false, config = {}, isMuted) => {
147979
- // Handle array expressions
147980
- if (expr.includes(ARRAY_INDEX_PLACEHOLDER$1)) {
147981
- const watchInfo = getUpdatedWatchInfo$1(expr, config.arrayType || config.isList || false, listener);
147887
+ if (expr.indexOf('[$i]') !== -1) {
147888
+ let watchInfo = getUpdatedWatcInfo$1(expr, config && (config.arrayType || config.isList), listener);
147982
147889
  expr = watchInfo.expr;
147983
147890
  listener = watchInfo.listener;
147984
147891
  }
147985
- // Handle static expressions
147986
- if (isStaticExpression$1(expr)) {
147987
- try {
147988
- const fn = $parseExpr$1(expr);
147989
- const staticValue = fn($scope, $locals);
147990
- listener(staticValue, FIRST_TIME_WATCH$1);
147991
- }
147992
- catch (e) {
147993
- console.warn(`Error evaluating static expression '${expr}':`, e);
147994
- listener(undefined, FIRST_TIME_WATCH$1);
147995
- }
147996
- return () => { }; // No-op unsubscribe
147997
- }
147998
147892
  const fn = $parseExpr$1();
147999
- const scopeType = getScopeType$1($scope);
148000
- const scopeName = getScopeName$1($scope, scopeType);
148001
- const destroyFn = () => $unwatch$1(identifier);
148002
- const watchInfo = {
148003
- fn: fn.bind(null, $scope, $locals),
147893
+ registry$1.set(identifier, {
147894
+ fn: fn.bind(expr, $scope, $locals),
148004
147895
  listener,
148005
147896
  expr,
148006
147897
  last: FIRST_TIME_WATCH$1,
148007
147898
  doNotClone,
148008
- isMuted,
148009
- scopeType,
148010
- scopeName,
148011
- destroyFn
148012
- };
148013
- // Store in registry
148014
- const widgetId = getWidgetId$1(identifier);
148015
- if (widgetId) {
148016
- const propertyName = getPropertyName$1(identifier);
148017
- if (!registry$1.has(widgetId)) {
148018
- registry$1.set(widgetId, {});
148019
- }
148020
- const widgetGroup = registry$1.get(widgetId);
148021
- widgetGroup[propertyName] = watchInfo;
148022
- }
148023
- else {
148024
- registry$1.set(identifier, watchInfo);
148025
- }
148026
- return destroyFn;
148027
- };
148028
- /**
148029
- * Unwatches a single identifier
148030
- */
148031
- const $unwatch$1 = (identifier) => {
148032
- const widgetId = getWidgetId$1(identifier);
148033
- if (widgetId) {
148034
- const propertyName = getPropertyName$1(identifier);
148035
- const widgetGroup = registry$1.get(widgetId);
148036
- //@ts-ignore
148037
- if (widgetGroup && typeof widgetGroup === 'object' && !widgetGroup.fn) {
148038
- const watchInfo = widgetGroup[propertyName];
148039
- if (watchInfo) {
148040
- delete widgetGroup[propertyName];
148041
- // Clean up empty widget groups
148042
- if (Object.keys(widgetGroup).length === 0) {
148043
- registry$1.delete(widgetId);
148044
- }
148045
- return true;
148046
- }
148047
- }
148048
- }
148049
- // Fallback to direct lookup
148050
- if (registry$1.has(identifier)) {
148051
- registry$1.delete(identifier);
148052
- return true;
148053
- }
148054
- return false;
147899
+ isMuted: isMuted
147900
+ });
147901
+ return () => $unwatch$1(identifier);
148055
147902
  };
147903
+ const $unwatch$1 = identifier => registry$1.delete(identifier);
147904
+ window.watchRegistry = registry$1;
148056
147905
  const $appDigest$1 = (() => {
148057
- return (force = false) => {
147906
+ return (force) => {
148058
147907
  {
148059
147908
  return;
148060
147909
  }
148061
147910
  };
148062
147911
  })();
148063
- // Export registry for debugging
148064
- window.watchRegistry = registry$1;
148065
147912
 
148066
147913
  var ComponentType$1;
148067
147914
  (function (ComponentType) {
@@ -148117,8 +147964,8 @@ var Operation$1;
148117
147964
  const DataSource$1 = {
148118
147965
  Operation: Operation$1
148119
147966
  };
148120
- let App$1 = class App {
148121
- };
147967
+ class App {
147968
+ }
148122
147969
  let AbstractI18nService$1 = class AbstractI18nService {
148123
147970
  };
148124
147971
 
@@ -148136,7 +147983,6 @@ const REGEX$1 = {
148136
147983
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
148137
147984
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
148138
147985
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
148139
- VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
148140
147986
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
148141
147987
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
148142
147988
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -148359,9 +148205,6 @@ const isVideoFile$1 = (fileName) => {
148359
148205
  const isValidWebURL$1 = (url) => {
148360
148206
  return (REGEX$1.VALID_WEB_URL).test(url);
148361
148207
  };
148362
- const isValidImageUrl$1 = (url) => {
148363
- return (REGEX$1.VALID_IMAGE_URL).test(url?.trim());
148364
- };
148365
148208
  /*This function returns the url to the resource after checking the validity of url*/
148366
148209
  const getResourceURL$1 = (urlString) => {
148367
148210
  return urlString;
@@ -149615,7 +149458,6 @@ var Utils$1 = /*#__PURE__*/Object.freeze({
149615
149458
  isPageable: isPageable$1,
149616
149459
  isSafari: isSafari$1,
149617
149460
  isTablet: isTablet$1,
149618
- isValidImageUrl: isValidImageUrl$1,
149619
149461
  isValidWebURL: isValidWebURL$1,
149620
149462
  isVideoFile: isVideoFile$1,
149621
149463
  loadScript: loadScript$1,
@@ -150850,14 +150692,14 @@ class ToDatePipe extends WmPipe {
150850
150692
  }
150851
150693
  return this.returnFn('', arguments, this.app.Variables);
150852
150694
  }
150853
- constructor(datePipe, i18nService, app, customPipeManager) {
150695
+ constructor(datePipe, i18nService, customPipeManager) {
150854
150696
  super('toDate', customPipeManager);
150855
150697
  this.datePipe = datePipe;
150856
150698
  this.i18nService = i18nService;
150857
- this.app = app;
150858
150699
  this.customPipeManager = customPipeManager;
150700
+ this.app = inject(App);
150859
150701
  }
150860
- static { this.ɵfac = function ToDatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToDatePipe)(ɵɵdirectiveInject(DatePipe, 16), ɵɵdirectiveInject(AbstractI18nService$1, 16), ɵɵdirectiveInject(App$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
150702
+ static { this.ɵfac = function ToDatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ToDatePipe)(ɵɵdirectiveInject(DatePipe, 16), ɵɵdirectiveInject(AbstractI18nService$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
150861
150703
  static { this.ɵpipe = /*@__PURE__*/ ɵɵdefinePipe({ name: "toDate", type: ToDatePipe, pure: true, standalone: true }); }
150862
150704
  }
150863
150705
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ToDatePipe, [{
@@ -150866,7 +150708,7 @@ class ToDatePipe extends WmPipe {
150866
150708
  standalone: true,
150867
150709
  name: 'toDate'
150868
150710
  }]
150869
- }], () => [{ type: DatePipe }, { type: AbstractI18nService$1 }, { type: App$1 }, { type: CustomPipeManager$1 }], null); })();
150711
+ }], () => [{ type: DatePipe }, { type: AbstractI18nService$1 }, { type: CustomPipeManager$1 }], null); })();
150870
150712
  class ToNumberPipe {
150871
150713
  transform(data, fracSize) {
150872
150714
  if (fracSize && !String(fracSize).match(/^(\d+)?\.((\d+)(-(\d+))?)?$/)) {
@@ -150954,9 +150796,9 @@ class SuffixPipe {
150954
150796
  * Custom pipe: It is work as interceptor between the user custom pipe function and angular pipe
150955
150797
  */
150956
150798
  class CustomPipe {
150957
- constructor(app, custmeUserPipe) {
150958
- this.app = app;
150799
+ constructor(custmeUserPipe) {
150959
150800
  this.custmeUserPipe = custmeUserPipe;
150801
+ this.app = inject(App);
150960
150802
  }
150961
150803
  transform(data, pipename) {
150962
150804
  let argumentArr = [];
@@ -150976,7 +150818,7 @@ class CustomPipe {
150976
150818
  return data;
150977
150819
  }
150978
150820
  }
150979
- static { this.ɵfac = function CustomPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomPipe)(ɵɵdirectiveInject(App$1, 16), ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
150821
+ static { this.ɵfac = function CustomPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomPipe)(ɵɵdirectiveInject(CustomPipeManager$1, 16)); }; }
150980
150822
  static { this.ɵpipe = /*@__PURE__*/ ɵɵdefinePipe({ name: "custom", type: CustomPipe, pure: true, standalone: true }); }
150981
150823
  }
150982
150824
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CustomPipe, [{
@@ -150985,7 +150827,7 @@ class CustomPipe {
150985
150827
  standalone: true,
150986
150828
  name: 'custom'
150987
150829
  }]
150988
- }], () => [{ type: App$1 }, { type: CustomPipeManager$1 }], null); })();
150830
+ }], () => [{ type: CustomPipeManager$1 }], null); })();
150989
150831
  class TimeFromNowPipe {
150990
150832
  transform(data) {
150991
150833
  let timestamp;
@@ -203067,11 +202909,11 @@ var DEFAULT_FORMATS;
203067
202909
  DEFAULT_FORMATS["DATE_TIME"] = "yyyy-MM-dd HH:mm:ss";
203068
202910
  })(DEFAULT_FORMATS || (DEFAULT_FORMATS = {}));
203069
202911
 
203070
- const $RAF = window.requestAnimationFrame;
202912
+ const $RAF$1 = window.requestAnimationFrame;
203071
202913
  const $RAFQueue = [];
203072
202914
  const invokeLater = fn => {
203073
202915
  if (!$RAFQueue.length) {
203074
- $RAF(() => {
202916
+ $RAF$1(() => {
203075
202917
  $RAFQueue.forEach(f => f());
203076
202918
  $RAFQueue.length = 0;
203077
202919
  });
@@ -203613,223 +203455,70 @@ const getFnForEventExpr = (expr) => {
203613
203455
  return fnExecutor(expr, ExpressionType.Action);
203614
203456
  };
203615
203457
 
203616
- // Constants
203617
- const WIDGET_ID_REGEX = /^(widget-[^_]+)/;
203618
- const WIDGET_PROPERTY_REGEX = /^widget-[^_]+_(.+)$/;
203619
- const ARRAY_INDEX_PLACEHOLDER = '[$i]';
203620
- const ARRAY_INDEX_ZERO = '[0]';
203621
203458
  const registry = new Map();
203622
203459
  const watchIdGenerator = new IDGenerator('watch-id-');
203623
- const FIRST_TIME_WATCH = Object.freeze({});
203624
- /**
203625
- * Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
203626
- */
203627
- const getWidgetId = (identifier) => {
203628
- if (!identifier || typeof identifier !== 'string') {
203629
- return null;
203630
- }
203631
- const match = identifier.match(WIDGET_ID_REGEX);
203632
- return match ? match[1] : null;
203633
- };
203634
- /**
203635
- * Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
203636
- */
203637
- const getPropertyName = (identifier) => {
203638
- if (!identifier || typeof identifier !== 'string') {
203639
- return identifier;
203640
- }
203641
- const match = identifier.match(WIDGET_PROPERTY_REGEX);
203642
- return match ? match[1] : identifier;
203643
- };
203644
- /**
203645
- * Array consumer wrapper for array-based expressions
203646
- */
203460
+ const FIRST_TIME_WATCH = {};
203461
+ Object.freeze(FIRST_TIME_WATCH);
203647
203462
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
203648
- if (!isArray(newVal)) {
203649
- return;
203650
- }
203651
- let formattedData = newVal.map(datum => findValueOf(datum, restExpr));
203652
- // Flatten if result is array of arrays
203653
- if (isArray(formattedData[0])) {
203654
- formattedData = flatten(formattedData);
203463
+ let data = newVal, formattedData;
203464
+ if (isArray(data)) {
203465
+ formattedData = data.map(function (datum) {
203466
+ return findValueOf(datum, restExpr);
203467
+ });
203468
+ // If resulting structure is an array of array, flatten it
203469
+ if (isArray(formattedData[0])) {
203470
+ formattedData = flatten(formattedData);
203471
+ }
203472
+ listenerFn(formattedData, oldVal);
203655
203473
  }
203656
- listenerFn(formattedData, oldVal);
203657
203474
  };
203658
- /**
203659
- * Updates watch info for array expressions
203660
- */
203661
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
203662
- const regex = /\[\$i\]/g;
203475
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
203476
+ // listener doesn't accept array
203477
+ // replace all `[$i]` with `[0]` and return the expression
203478
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
203663
203479
  if (!acceptsArray) {
203664
203480
  return {
203665
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
203666
- listener
203481
+ 'expr': expr.replace(regex, $0),
203482
+ 'listener': listener
203667
203483
  };
203668
203484
  }
203669
- const lastIndex = expr.lastIndexOf(ARRAY_INDEX_PLACEHOLDER);
203670
- const baseExpr = expr.substring(0, lastIndex).replace(ARRAY_INDEX_PLACEHOLDER, ARRAY_INDEX_ZERO);
203671
- const restExpr = expr.substring(lastIndex + 5);
203672
- const arrayConsumerFn = restExpr
203673
- ? arrayConsumer.bind(undefined, listener, restExpr)
203674
- : listener;
203485
+ // listener accepts array
203486
+ // replace all except the last `[$i]` with `[0]` and return the expression.
203487
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
203488
+ if (restExpr) {
203489
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
203490
+ }
203675
203491
  return {
203676
- expr: baseExpr,
203677
- listener: arrayConsumerFn
203492
+ 'expr': _expr,
203493
+ 'listener': arrayConsumerFn
203678
203494
  };
203679
203495
  };
203680
- /**
203681
- * Determines if an expression is static (doesn't need to be watched)
203682
- */
203683
- const STATIC_EXPRESSION_NAMES = [
203684
- "row.getProperty('investment')",
203685
- "row.getProperty('factsheetLink')",
203686
- "row.getProperty('isRebalanceEligible')"
203687
- ];
203688
- const isStaticExpression = (expr) => {
203689
- if (typeof expr !== 'string') {
203690
- return false;
203691
- }
203692
- const trimmedExpr = expr.trim();
203693
- // Expressions that always evaluate to localization strings
203694
- // if (trimmedExpr.includes('appLocale')) {
203695
- // return true;
203696
- // }
203697
- // Hard-coded static expression names
203698
- if (STATIC_EXPRESSION_NAMES.includes(trimmedExpr)) {
203699
- return true;
203700
- }
203701
- return false;
203702
- };
203703
- /**
203704
- * Gets the scope type from the scope object
203705
- */
203706
- const getScopeType = ($scope) => {
203707
- if (!$scope) {
203708
- return null;
203709
- }
203710
- if ($scope.pageName)
203711
- return 'Page';
203712
- if ($scope.prefabName)
203713
- return 'Prefab';
203714
- if ($scope.partialName)
203715
- return 'Partial';
203716
- // Check for App scope
203717
- if ($scope.Variables !== undefined &&
203718
- $scope.Actions !== undefined &&
203719
- !$scope.pageName &&
203720
- !$scope.prefabName &&
203721
- !$scope.partialName) {
203722
- return 'App';
203723
- }
203724
- if ($scope.constructor?.name === 'AppRef') {
203725
- return 'App';
203726
- }
203727
- return null;
203728
- };
203729
- /**
203730
- * Gets scope name based on scope type
203731
- */
203732
- const getScopeName = ($scope, scopeType) => {
203733
- if (!scopeType || !$scope) {
203734
- return null;
203735
- }
203736
- switch (scopeType) {
203737
- case 'Prefab': return $scope.prefabName || null;
203738
- case 'Partial': return $scope.partialName || null;
203739
- case 'Page': return $scope.pageName || null;
203740
- default: return null;
203741
- }
203742
- };
203743
- /**
203744
- * Main watch function
203745
- */
203746
203496
  const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.nextUid(), doNotClone = false, config = {}, isMuted) => {
203747
- // Handle array expressions
203748
- if (expr.includes(ARRAY_INDEX_PLACEHOLDER)) {
203749
- const watchInfo = getUpdatedWatchInfo(expr, config.arrayType || config.isList || false, listener);
203497
+ if (expr.indexOf('[$i]') !== -1) {
203498
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
203750
203499
  expr = watchInfo.expr;
203751
203500
  listener = watchInfo.listener;
203752
203501
  }
203753
- // Handle static expressions
203754
- if (isStaticExpression(expr)) {
203755
- try {
203756
- const fn = $parseExpr(expr);
203757
- const staticValue = fn($scope, $locals);
203758
- listener(staticValue, FIRST_TIME_WATCH);
203759
- }
203760
- catch (e) {
203761
- console.warn(`Error evaluating static expression '${expr}':`, e);
203762
- listener(undefined, FIRST_TIME_WATCH);
203763
- }
203764
- return () => { }; // No-op unsubscribe
203765
- }
203766
203502
  const fn = $parseExpr();
203767
- const scopeType = getScopeType($scope);
203768
- const scopeName = getScopeName($scope, scopeType);
203769
- const destroyFn = () => $unwatch(identifier);
203770
- const watchInfo = {
203771
- fn: fn.bind(null, $scope, $locals),
203503
+ registry.set(identifier, {
203504
+ fn: fn.bind(expr, $scope, $locals),
203772
203505
  listener,
203773
203506
  expr,
203774
203507
  last: FIRST_TIME_WATCH,
203775
203508
  doNotClone,
203776
- isMuted,
203777
- scopeType,
203778
- scopeName,
203779
- destroyFn
203780
- };
203781
- // Store in registry
203782
- const widgetId = getWidgetId(identifier);
203783
- if (widgetId) {
203784
- const propertyName = getPropertyName(identifier);
203785
- if (!registry.has(widgetId)) {
203786
- registry.set(widgetId, {});
203787
- }
203788
- const widgetGroup = registry.get(widgetId);
203789
- widgetGroup[propertyName] = watchInfo;
203790
- }
203791
- else {
203792
- registry.set(identifier, watchInfo);
203793
- }
203794
- return destroyFn;
203795
- };
203796
- /**
203797
- * Unwatches a single identifier
203798
- */
203799
- const $unwatch = (identifier) => {
203800
- const widgetId = getWidgetId(identifier);
203801
- if (widgetId) {
203802
- const propertyName = getPropertyName(identifier);
203803
- const widgetGroup = registry.get(widgetId);
203804
- //@ts-ignore
203805
- if (widgetGroup && typeof widgetGroup === 'object' && !widgetGroup.fn) {
203806
- const watchInfo = widgetGroup[propertyName];
203807
- if (watchInfo) {
203808
- delete widgetGroup[propertyName];
203809
- // Clean up empty widget groups
203810
- if (Object.keys(widgetGroup).length === 0) {
203811
- registry.delete(widgetId);
203812
- }
203813
- return true;
203814
- }
203815
- }
203816
- }
203817
- // Fallback to direct lookup
203818
- if (registry.has(identifier)) {
203819
- registry.delete(identifier);
203820
- return true;
203821
- }
203822
- return false;
203509
+ isMuted: isMuted
203510
+ });
203511
+ return () => $unwatch(identifier);
203823
203512
  };
203513
+ const $unwatch = identifier => registry.delete(identifier);
203514
+ window.watchRegistry = registry;
203824
203515
  const $appDigest = (() => {
203825
- return (force = false) => {
203516
+ return (force) => {
203826
203517
  {
203827
203518
  return;
203828
203519
  }
203829
203520
  };
203830
203521
  })();
203831
- // Export registry for debugging
203832
- window.watchRegistry = registry;
203833
203522
 
203834
203523
  var ComponentType;
203835
203524
  (function (ComponentType) {
@@ -203885,8 +203574,6 @@ var Operation;
203885
203574
  const DataSource = {
203886
203575
  Operation
203887
203576
  };
203888
- class App {
203889
- }
203890
203577
  class AbstractI18nService {
203891
203578
  }
203892
203579
 
@@ -203904,7 +203591,6 @@ const REGEX = {
203904
203591
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
203905
203592
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
203906
203593
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
203907
- VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
203908
203594
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
203909
203595
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
203910
203596
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -204127,9 +203813,6 @@ const isVideoFile = (fileName) => {
204127
203813
  const isValidWebURL = (url) => {
204128
203814
  return (REGEX.VALID_WEB_URL).test(url);
204129
203815
  };
204130
- const isValidImageUrl = (url) => {
204131
- return (REGEX.VALID_IMAGE_URL).test(url?.trim());
204132
- };
204133
203816
  /*This function returns the url to the resource after checking the validity of url*/
204134
203817
  const getResourceURL = (urlString) => {
204135
203818
  return urlString;
@@ -205383,7 +205066,6 @@ var Utils = /*#__PURE__*/Object.freeze({
205383
205066
  isPageable: isPageable,
205384
205067
  isSafari: isSafari,
205385
205068
  isTablet: isTablet,
205386
- isValidImageUrl: isValidImageUrl,
205387
205069
  isValidWebURL: isValidWebURL,
205388
205070
  isVideoFile: isVideoFile,
205389
205071
  loadScript: loadScript,
@@ -208223,7 +207905,7 @@ class PipeProvider {
208223
207905
  this.preparePipeMeta(CurrencyPipe$1, 'currency', true, [this._locale]),
208224
207906
  this.preparePipeMeta(DatePipe$1, 'date', true, [this._locale]),
208225
207907
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
208226
- new DatePipe$1(this._locale), undefined, this.injector.get(App), this.injector.get(CustomPipeManager)
207908
+ new DatePipe$1(this._locale), undefined, this.injector.get(CustomPipeManager)
208227
207909
  ]),
208228
207910
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
208229
207911
  new DecimalPipe$1(this._locale),
@@ -208240,7 +207922,7 @@ class PipeProvider {
208240
207922
  new DecimalPipe$1(this._locale)
208241
207923
  ]),
208242
207924
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
208243
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
207925
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
208244
207926
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
208245
207927
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
208246
207928
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),
@@ -99707,11 +99707,11 @@ const getRowActionAttrs = attrs => {
99707
99707
  return tmpl;
99708
99708
  };
99709
99709
 
99710
- const $RAF = window.requestAnimationFrame;
99710
+ const $RAF$1 = window.requestAnimationFrame;
99711
99711
  const $RAFQueue = [];
99712
99712
  const invokeLater = fn => {
99713
99713
  if (!$RAFQueue.length) {
99714
- $RAF(() => {
99714
+ $RAF$1(() => {
99715
99715
  $RAFQueue.forEach(f => f());
99716
99716
  $RAFQueue.length = 0;
99717
99717
  });
@@ -100253,223 +100253,70 @@ const getFnForEventExpr = (expr) => {
100253
100253
  return fnExecutor(expr, ExpressionType.Action);
100254
100254
  };
100255
100255
 
100256
- // Constants
100257
- const WIDGET_ID_REGEX = /^(widget-[^_]+)/;
100258
- const WIDGET_PROPERTY_REGEX = /^widget-[^_]+_(.+)$/;
100259
- const ARRAY_INDEX_PLACEHOLDER = '[$i]';
100260
- const ARRAY_INDEX_ZERO = '[0]';
100261
100256
  const registry = new Map();
100262
100257
  const watchIdGenerator = new IDGenerator('watch-id-');
100263
- const FIRST_TIME_WATCH = Object.freeze({});
100264
- /**
100265
- * Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
100266
- */
100267
- const getWidgetId = (identifier) => {
100268
- if (!identifier || typeof identifier !== 'string') {
100269
- return null;
100270
- }
100271
- const match = identifier.match(WIDGET_ID_REGEX);
100272
- return match ? match[1] : null;
100273
- };
100274
- /**
100275
- * Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
100276
- */
100277
- const getPropertyName = (identifier) => {
100278
- if (!identifier || typeof identifier !== 'string') {
100279
- return identifier;
100280
- }
100281
- const match = identifier.match(WIDGET_PROPERTY_REGEX);
100282
- return match ? match[1] : identifier;
100283
- };
100284
- /**
100285
- * Array consumer wrapper for array-based expressions
100286
- */
100258
+ const FIRST_TIME_WATCH = {};
100259
+ Object.freeze(FIRST_TIME_WATCH);
100287
100260
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
100288
- if (!isArray(newVal)) {
100289
- return;
100290
- }
100291
- let formattedData = newVal.map(datum => findValueOf(datum, restExpr));
100292
- // Flatten if result is array of arrays
100293
- if (isArray(formattedData[0])) {
100294
- formattedData = flatten$1(formattedData);
100261
+ let data = newVal, formattedData;
100262
+ if (isArray(data)) {
100263
+ formattedData = data.map(function (datum) {
100264
+ return findValueOf(datum, restExpr);
100265
+ });
100266
+ // If resulting structure is an array of array, flatten it
100267
+ if (isArray(formattedData[0])) {
100268
+ formattedData = flatten$1(formattedData);
100269
+ }
100270
+ listenerFn(formattedData, oldVal);
100295
100271
  }
100296
- listenerFn(formattedData, oldVal);
100297
100272
  };
100298
- /**
100299
- * Updates watch info for array expressions
100300
- */
100301
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
100302
- const regex = /\[\$i\]/g;
100273
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
100274
+ // listener doesn't accept array
100275
+ // replace all `[$i]` with `[0]` and return the expression
100276
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
100303
100277
  if (!acceptsArray) {
100304
100278
  return {
100305
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
100306
- listener
100279
+ 'expr': expr.replace(regex, $0),
100280
+ 'listener': listener
100307
100281
  };
100308
100282
  }
100309
- const lastIndex = expr.lastIndexOf(ARRAY_INDEX_PLACEHOLDER);
100310
- const baseExpr = expr.substring(0, lastIndex).replace(ARRAY_INDEX_PLACEHOLDER, ARRAY_INDEX_ZERO);
100311
- const restExpr = expr.substring(lastIndex + 5);
100312
- const arrayConsumerFn = restExpr
100313
- ? arrayConsumer.bind(undefined, listener, restExpr)
100314
- : listener;
100283
+ // listener accepts array
100284
+ // replace all except the last `[$i]` with `[0]` and return the expression.
100285
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
100286
+ if (restExpr) {
100287
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
100288
+ }
100315
100289
  return {
100316
- expr: baseExpr,
100317
- listener: arrayConsumerFn
100290
+ 'expr': _expr,
100291
+ 'listener': arrayConsumerFn
100318
100292
  };
100319
100293
  };
100320
- /**
100321
- * Determines if an expression is static (doesn't need to be watched)
100322
- */
100323
- const STATIC_EXPRESSION_NAMES = [
100324
- "row.getProperty('investment')",
100325
- "row.getProperty('factsheetLink')",
100326
- "row.getProperty('isRebalanceEligible')"
100327
- ];
100328
- const isStaticExpression = (expr) => {
100329
- if (typeof expr !== 'string') {
100330
- return false;
100331
- }
100332
- const trimmedExpr = expr.trim();
100333
- // Expressions that always evaluate to localization strings
100334
- // if (trimmedExpr.includes('appLocale')) {
100335
- // return true;
100336
- // }
100337
- // Hard-coded static expression names
100338
- if (STATIC_EXPRESSION_NAMES.includes(trimmedExpr)) {
100339
- return true;
100340
- }
100341
- return false;
100342
- };
100343
- /**
100344
- * Gets the scope type from the scope object
100345
- */
100346
- const getScopeType = ($scope) => {
100347
- if (!$scope) {
100348
- return null;
100349
- }
100350
- if ($scope.pageName)
100351
- return 'Page';
100352
- if ($scope.prefabName)
100353
- return 'Prefab';
100354
- if ($scope.partialName)
100355
- return 'Partial';
100356
- // Check for App scope
100357
- if ($scope.Variables !== undefined &&
100358
- $scope.Actions !== undefined &&
100359
- !$scope.pageName &&
100360
- !$scope.prefabName &&
100361
- !$scope.partialName) {
100362
- return 'App';
100363
- }
100364
- if ($scope.constructor?.name === 'AppRef') {
100365
- return 'App';
100366
- }
100367
- return null;
100368
- };
100369
- /**
100370
- * Gets scope name based on scope type
100371
- */
100372
- const getScopeName = ($scope, scopeType) => {
100373
- if (!scopeType || !$scope) {
100374
- return null;
100375
- }
100376
- switch (scopeType) {
100377
- case 'Prefab': return $scope.prefabName || null;
100378
- case 'Partial': return $scope.partialName || null;
100379
- case 'Page': return $scope.pageName || null;
100380
- default: return null;
100381
- }
100382
- };
100383
- /**
100384
- * Main watch function
100385
- */
100386
100294
  const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.nextUid(), doNotClone = false, config = {}, isMuted) => {
100387
- // Handle array expressions
100388
- if (expr.includes(ARRAY_INDEX_PLACEHOLDER)) {
100389
- const watchInfo = getUpdatedWatchInfo(expr, config.arrayType || config.isList || false, listener);
100295
+ if (expr.indexOf('[$i]') !== -1) {
100296
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
100390
100297
  expr = watchInfo.expr;
100391
100298
  listener = watchInfo.listener;
100392
100299
  }
100393
- // Handle static expressions
100394
- if (isStaticExpression(expr)) {
100395
- try {
100396
- const fn = $parseExpr(expr);
100397
- const staticValue = fn($scope, $locals);
100398
- listener(staticValue, FIRST_TIME_WATCH);
100399
- }
100400
- catch (e) {
100401
- console.warn(`Error evaluating static expression '${expr}':`, e);
100402
- listener(undefined, FIRST_TIME_WATCH);
100403
- }
100404
- return () => { }; // No-op unsubscribe
100405
- }
100406
100300
  const fn = $parseExpr();
100407
- const scopeType = getScopeType($scope);
100408
- const scopeName = getScopeName($scope, scopeType);
100409
- const destroyFn = () => $unwatch(identifier);
100410
- const watchInfo = {
100411
- fn: fn.bind(null, $scope, $locals),
100301
+ registry.set(identifier, {
100302
+ fn: fn.bind(expr, $scope, $locals),
100412
100303
  listener,
100413
100304
  expr,
100414
100305
  last: FIRST_TIME_WATCH,
100415
100306
  doNotClone,
100416
- isMuted,
100417
- scopeType,
100418
- scopeName,
100419
- destroyFn
100420
- };
100421
- // Store in registry
100422
- const widgetId = getWidgetId(identifier);
100423
- if (widgetId) {
100424
- const propertyName = getPropertyName(identifier);
100425
- if (!registry.has(widgetId)) {
100426
- registry.set(widgetId, {});
100427
- }
100428
- const widgetGroup = registry.get(widgetId);
100429
- widgetGroup[propertyName] = watchInfo;
100430
- }
100431
- else {
100432
- registry.set(identifier, watchInfo);
100433
- }
100434
- return destroyFn;
100435
- };
100436
- /**
100437
- * Unwatches a single identifier
100438
- */
100439
- const $unwatch = (identifier) => {
100440
- const widgetId = getWidgetId(identifier);
100441
- if (widgetId) {
100442
- const propertyName = getPropertyName(identifier);
100443
- const widgetGroup = registry.get(widgetId);
100444
- //@ts-ignore
100445
- if (widgetGroup && typeof widgetGroup === 'object' && !widgetGroup.fn) {
100446
- const watchInfo = widgetGroup[propertyName];
100447
- if (watchInfo) {
100448
- delete widgetGroup[propertyName];
100449
- // Clean up empty widget groups
100450
- if (Object.keys(widgetGroup).length === 0) {
100451
- registry.delete(widgetId);
100452
- }
100453
- return true;
100454
- }
100455
- }
100456
- }
100457
- // Fallback to direct lookup
100458
- if (registry.has(identifier)) {
100459
- registry.delete(identifier);
100460
- return true;
100461
- }
100462
- return false;
100307
+ isMuted: isMuted
100308
+ });
100309
+ return () => $unwatch(identifier);
100463
100310
  };
100311
+ const $unwatch = identifier => registry.delete(identifier);
100312
+ window.watchRegistry = registry;
100464
100313
  const $appDigest = (() => {
100465
- return (force = false) => {
100314
+ return (force) => {
100466
100315
  {
100467
100316
  return;
100468
100317
  }
100469
100318
  };
100470
100319
  })();
100471
- // Export registry for debugging
100472
- window.watchRegistry = registry;
100473
100320
 
100474
100321
  var ComponentType;
100475
100322
  (function (ComponentType) {
@@ -100540,7 +100387,6 @@ const REGEX = {
100540
100387
  SUPPORTED_AUDIO_FORMAT: /\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,
100541
100388
  SUPPORTED_VIDEO_FORMAT: /\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,
100542
100389
  VALID_WEB_URL: /^(http[s]?:\/\/)(www\.){0,1}[a-zA-Z0-9=:?\/\.\-]+(\.[a-zA-Z]{2,5}[\.]{0,1})?/,
100543
- VALID_IMAGE_URL: /^(https?|blob|data|file|ftp):/i,
100544
100390
  REPLACE_PATTERN: /\$\{([^\}]+)\}/g,
100545
100391
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
100546
100392
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
@@ -100763,9 +100609,6 @@ const isVideoFile = (fileName) => {
100763
100609
  const isValidWebURL = (url) => {
100764
100610
  return (REGEX.VALID_WEB_URL).test(url);
100765
100611
  };
100766
- const isValidImageUrl = (url) => {
100767
- return (REGEX.VALID_IMAGE_URL).test(url?.trim());
100768
- };
100769
100612
  /*This function returns the url to the resource after checking the validity of url*/
100770
100613
  const getResourceURL = (urlString) => {
100771
100614
  return urlString;
@@ -102019,7 +101862,6 @@ var Utils = /*#__PURE__*/Object.freeze({
102019
101862
  isPageable: isPageable,
102020
101863
  isSafari: isSafari,
102021
101864
  isTablet: isTablet,
102022
- isValidImageUrl: isValidImageUrl,
102023
101865
  isValidWebURL: isValidWebURL,
102024
101866
  isVideoFile: isVideoFile,
102025
101867
  loadScript: loadScript,
@@ -69,7 +69,7 @@
69
69
  <body>
70
70
  <div class="header">
71
71
  <h1>Angular Project Dependencies Report</h1>
72
- <p class="timestamp">Generated on: 2/24/2026, 10:52:31 AM</p>
72
+ <p class="timestamp">Generated on: 2/24/2026, 12:38:46 PM</p>
73
73
  </div>
74
74
 
75
75
  <div class="section">
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-app",
3
- "version": "11.14.1-16.6419",
3
+ "version": "11.14.1-17.6420",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@wavemaker/angular-app",
9
- "version": "11.14.1-16.6419",
9
+ "version": "11.14.1-17.6420",
10
10
  "dependencies": {
11
11
  "@angular/animations": "18.2.13",
12
12
  "@angular/common": "18.2.13",
@@ -23,12 +23,12 @@
23
23
  "@fullcalendar/list": "6.1.18",
24
24
  "@fullcalendar/timegrid": "6.1.18",
25
25
  "@metrichor/jmespath": "0.3.1",
26
- "@wavemaker/app-ng-runtime": "11.14.1-16.6419",
27
- "@wavemaker/custom-widgets-m3": "11.14.1-16.6419",
26
+ "@wavemaker/app-ng-runtime": "11.14.1-17.6420",
27
+ "@wavemaker/custom-widgets-m3": "11.14.1-17.6420",
28
28
  "@wavemaker/focus-trap": "1.0.1",
29
- "@wavemaker/foundation-css": "11.14.1-16.6419",
29
+ "@wavemaker/foundation-css": "11.14.1-17.6420",
30
30
  "@wavemaker/nvd3": "1.8.15",
31
- "@wavemaker/variables": "11.14.1-16.6419",
31
+ "@wavemaker/variables": "11.14.1-17.6420",
32
32
  "@ztree/ztree_v3": "3.5.48",
33
33
  "acorn": "^8.15.0",
34
34
  "angular-imask": "7.6.1",
@@ -8972,8 +8972,8 @@
8972
8972
  }
8973
8973
  },
8974
8974
  "node_modules/@wavemaker/app-ng-runtime": {
8975
- "version": "11.14.1-16.6419",
8976
- "integrity": "sha512-dGFj+Ne/rkrHG2zwnYpbv3fGSnQL9D6twvAWlyEPL02HENNPQi98iKXegl/ajAUwgexO8MhCICuYRMb8fEn++Q==",
8975
+ "version": "11.14.1-17.6420",
8976
+ "integrity": "sha512-RF9yM6BTdH3xU868rrwIS5FIN3zRvNaTNqQ38oqw3vrEC0cwFjQ+wdfcU/81f+QJPCqVLJ0p/0wt2MCmFnJ5BQ==",
8977
8977
  "license": "MIT",
8978
8978
  "engines": {
8979
8979
  "node": ">=18.16.1",
@@ -8981,8 +8981,8 @@
8981
8981
  }
8982
8982
  },
8983
8983
  "node_modules/@wavemaker/custom-widgets-m3": {
8984
- "version": "11.14.1-16.6419",
8985
- "integrity": "sha512-maQHsohJUE9DR/TbISCFncc8jqsFgYl4lQSH+cpfM/wccrqp0ACI2tUu4D+wiCEhS7kODxjKy5YroJkffYy47Q==",
8984
+ "version": "11.14.1-17.6420",
8985
+ "integrity": "sha512-wfnxN8M+27eOAxcVZAenL64w5KEU2/hnli7RFGoW7WYQ5l6rVQN23gpO7N04VcW0+66+qNPivxMzDuZlOF/GiA==",
8986
8986
  "license": "ISC"
8987
8987
  },
8988
8988
  "node_modules/@wavemaker/focus-trap": {
@@ -8995,8 +8995,8 @@
8995
8995
  }
8996
8996
  },
8997
8997
  "node_modules/@wavemaker/foundation-css": {
8998
- "version": "11.14.1-16.6419",
8999
- "integrity": "sha512-h32YliRC0PDfRF5Lhohs2tuFDtueCg7X1yNW0TWJ3AOzXhEDjGJ9KKsHTJ3adrBFpHLmrZ4uQYa/zbLYdh4kBQ==",
8998
+ "version": "11.14.1-17.6420",
8999
+ "integrity": "sha512-RRpGg6miVo4548S3XDqg4Jxt7GEOJwPMbAQ3s57PoBN1o+j10LsIRt8uKPI2L8Z5rCtD75yxhYNQAUY/9r2rnQ==",
9000
9000
  "license": "ISC",
9001
9001
  "dependencies": {
9002
9002
  "chroma-js": "^3.1.2"
@@ -9011,8 +9011,8 @@
9011
9011
  }
9012
9012
  },
9013
9013
  "node_modules/@wavemaker/variables": {
9014
- "version": "11.14.1-16.6419",
9015
- "integrity": "sha512-vi20lmQJFBulpogbsxXoZ8T3CAQpmwjoLCYb0DBJgoHVm2HzO9dj68FsSAoaqrOxLEMuwfRUlqy6pBnU/y5wAg==",
9014
+ "version": "11.14.1-17.6420",
9015
+ "integrity": "sha512-/bTiSWur7Qnhytic/vSSWrAfGpqlHOdOucNuGFB7lXsTY0K4evUPP31VRlQ1PIy3VLrKrAPkLH7EzQU0KZidow==",
9016
9016
  "license": "ISC",
9017
9017
  "dependencies": {
9018
9018
  "@metrichor/jmespath": "^0.3.1",
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-app",
3
- "version": "11.14.1-16.6419",
3
+ "version": "11.14.1-17.6420",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@wavemaker/angular-app",
9
- "version": "11.14.1-16.6419",
9
+ "version": "11.14.1-17.6420",
10
10
  "dependencies": {
11
11
  "@angular/animations": "18.2.13",
12
12
  "@angular/common": "18.2.13",
@@ -23,12 +23,12 @@
23
23
  "@fullcalendar/list": "6.1.18",
24
24
  "@fullcalendar/timegrid": "6.1.18",
25
25
  "@metrichor/jmespath": "0.3.1",
26
- "@wavemaker/app-ng-runtime": "11.14.1-16.6419",
27
- "@wavemaker/custom-widgets-m3": "11.14.1-16.6419",
26
+ "@wavemaker/app-ng-runtime": "11.14.1-17.6420",
27
+ "@wavemaker/custom-widgets-m3": "11.14.1-17.6420",
28
28
  "@wavemaker/focus-trap": "1.0.1",
29
- "@wavemaker/foundation-css": "11.14.1-16.6419",
29
+ "@wavemaker/foundation-css": "11.14.1-17.6420",
30
30
  "@wavemaker/nvd3": "1.8.15",
31
- "@wavemaker/variables": "11.14.1-16.6419",
31
+ "@wavemaker/variables": "11.14.1-17.6420",
32
32
  "@ztree/ztree_v3": "3.5.48",
33
33
  "acorn": "^8.15.0",
34
34
  "angular-imask": "7.6.1",
@@ -8972,8 +8972,8 @@
8972
8972
  }
8973
8973
  },
8974
8974
  "node_modules/@wavemaker/app-ng-runtime": {
8975
- "version": "11.14.1-16.6419",
8976
- "integrity": "sha512-dGFj+Ne/rkrHG2zwnYpbv3fGSnQL9D6twvAWlyEPL02HENNPQi98iKXegl/ajAUwgexO8MhCICuYRMb8fEn++Q==",
8975
+ "version": "11.14.1-17.6420",
8976
+ "integrity": "sha512-RF9yM6BTdH3xU868rrwIS5FIN3zRvNaTNqQ38oqw3vrEC0cwFjQ+wdfcU/81f+QJPCqVLJ0p/0wt2MCmFnJ5BQ==",
8977
8977
  "license": "MIT",
8978
8978
  "engines": {
8979
8979
  "node": ">=18.16.1",
@@ -8981,8 +8981,8 @@
8981
8981
  }
8982
8982
  },
8983
8983
  "node_modules/@wavemaker/custom-widgets-m3": {
8984
- "version": "11.14.1-16.6419",
8985
- "integrity": "sha512-maQHsohJUE9DR/TbISCFncc8jqsFgYl4lQSH+cpfM/wccrqp0ACI2tUu4D+wiCEhS7kODxjKy5YroJkffYy47Q==",
8984
+ "version": "11.14.1-17.6420",
8985
+ "integrity": "sha512-wfnxN8M+27eOAxcVZAenL64w5KEU2/hnli7RFGoW7WYQ5l6rVQN23gpO7N04VcW0+66+qNPivxMzDuZlOF/GiA==",
8986
8986
  "license": "ISC"
8987
8987
  },
8988
8988
  "node_modules/@wavemaker/focus-trap": {
@@ -8995,8 +8995,8 @@
8995
8995
  }
8996
8996
  },
8997
8997
  "node_modules/@wavemaker/foundation-css": {
8998
- "version": "11.14.1-16.6419",
8999
- "integrity": "sha512-h32YliRC0PDfRF5Lhohs2tuFDtueCg7X1yNW0TWJ3AOzXhEDjGJ9KKsHTJ3adrBFpHLmrZ4uQYa/zbLYdh4kBQ==",
8998
+ "version": "11.14.1-17.6420",
8999
+ "integrity": "sha512-RRpGg6miVo4548S3XDqg4Jxt7GEOJwPMbAQ3s57PoBN1o+j10LsIRt8uKPI2L8Z5rCtD75yxhYNQAUY/9r2rnQ==",
9000
9000
  "license": "ISC",
9001
9001
  "dependencies": {
9002
9002
  "chroma-js": "^3.1.2"
@@ -9011,8 +9011,8 @@
9011
9011
  }
9012
9012
  },
9013
9013
  "node_modules/@wavemaker/variables": {
9014
- "version": "11.14.1-16.6419",
9015
- "integrity": "sha512-vi20lmQJFBulpogbsxXoZ8T3CAQpmwjoLCYb0DBJgoHVm2HzO9dj68FsSAoaqrOxLEMuwfRUlqy6pBnU/y5wAg==",
9014
+ "version": "11.14.1-17.6420",
9015
+ "integrity": "sha512-/bTiSWur7Qnhytic/vSSWrAfGpqlHOdOucNuGFB7lXsTY0K4evUPP31VRlQ1PIy3VLrKrAPkLH7EzQU0KZidow==",
9016
9016
  "license": "ISC",
9017
9017
  "dependencies": {
9018
9018
  "@metrichor/jmespath": "^0.3.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-app",
3
- "version": "11.14.1-16.6419",
3
+ "version": "11.14.1-17.6420",
4
4
  "scripts": {
5
5
  "ng": "ng",
6
6
  "start": "./node_modules/.bin/ng serve",
@@ -36,11 +36,11 @@
36
36
  "@fullcalendar/list": "6.1.18",
37
37
  "@fullcalendar/timegrid": "6.1.18",
38
38
  "@metrichor/jmespath": "0.3.1",
39
- "@wavemaker/custom-widgets-m3": "11.14.1-16.6419",
39
+ "@wavemaker/custom-widgets-m3": "11.14.1-17.6420",
40
40
  "@wavemaker/focus-trap": "1.0.1",
41
- "@wavemaker/foundation-css": "11.14.1-16.6419",
41
+ "@wavemaker/foundation-css": "11.14.1-17.6420",
42
42
  "@wavemaker/nvd3": "1.8.15",
43
- "@wavemaker/variables": "11.14.1-16.6419",
43
+ "@wavemaker/variables": "11.14.1-17.6420",
44
44
  "@ztree/ztree_v3": "3.5.48",
45
45
  "acorn": "^8.15.0",
46
46
  "angular-imask": "7.6.1",
@@ -62,7 +62,7 @@
62
62
  "tslib": "2.8.1",
63
63
  "x2js": "3.4.4",
64
64
  "zone.js": "0.15.1",
65
- "@wavemaker/app-ng-runtime": "11.14.1-16.6419"
65
+ "@wavemaker/app-ng-runtime": "11.14.1-17.6420"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@ampproject/rollup-plugin-closure-compiler": "^0.27.0",