@wavemaker/angular-codegen 11.14.1-8.6337 → 11.14.1-9.6343

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) {
@@ -203067,11 +202914,11 @@ var DEFAULT_FORMATS;
203067
202914
  DEFAULT_FORMATS["DATE_TIME"] = "yyyy-MM-dd HH:mm:ss";
203068
202915
  })(DEFAULT_FORMATS || (DEFAULT_FORMATS = {}));
203069
202916
 
203070
- const $RAF = window.requestAnimationFrame;
202917
+ const $RAF$1 = window.requestAnimationFrame;
203071
202918
  const $RAFQueue = [];
203072
202919
  const invokeLater = fn => {
203073
202920
  if (!$RAFQueue.length) {
203074
- $RAF(() => {
202921
+ $RAF$1(() => {
203075
202922
  $RAFQueue.forEach(f => f());
203076
202923
  $RAFQueue.length = 0;
203077
202924
  });
@@ -203613,223 +203460,70 @@ const getFnForEventExpr = (expr) => {
203613
203460
  return fnExecutor(expr, ExpressionType.Action);
203614
203461
  };
203615
203462
 
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
203463
  const registry = new Map();
203622
203464
  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
- */
203465
+ const FIRST_TIME_WATCH = {};
203466
+ Object.freeze(FIRST_TIME_WATCH);
203647
203467
  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);
203468
+ let data = newVal, formattedData;
203469
+ if (isArray(data)) {
203470
+ formattedData = data.map(function (datum) {
203471
+ return findValueOf(datum, restExpr);
203472
+ });
203473
+ // If resulting structure is an array of array, flatten it
203474
+ if (isArray(formattedData[0])) {
203475
+ formattedData = flatten(formattedData);
203476
+ }
203477
+ listenerFn(formattedData, oldVal);
203655
203478
  }
203656
- listenerFn(formattedData, oldVal);
203657
203479
  };
203658
- /**
203659
- * Updates watch info for array expressions
203660
- */
203661
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
203662
- const regex = /\[\$i\]/g;
203480
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
203481
+ // listener doesn't accept array
203482
+ // replace all `[$i]` with `[0]` and return the expression
203483
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
203663
203484
  if (!acceptsArray) {
203664
203485
  return {
203665
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
203666
- listener
203486
+ 'expr': expr.replace(regex, $0),
203487
+ 'listener': listener
203667
203488
  };
203668
203489
  }
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;
203490
+ // listener accepts array
203491
+ // replace all except the last `[$i]` with `[0]` and return the expression.
203492
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
203493
+ if (restExpr) {
203494
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
203495
+ }
203675
203496
  return {
203676
- expr: baseExpr,
203677
- listener: arrayConsumerFn
203497
+ 'expr': _expr,
203498
+ 'listener': arrayConsumerFn
203678
203499
  };
203679
203500
  };
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
203501
  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);
203502
+ if (expr.indexOf('[$i]') !== -1) {
203503
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
203750
203504
  expr = watchInfo.expr;
203751
203505
  listener = watchInfo.listener;
203752
203506
  }
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
203507
  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),
203508
+ registry.set(identifier, {
203509
+ fn: fn.bind(expr, $scope, $locals),
203772
203510
  listener,
203773
203511
  expr,
203774
203512
  last: FIRST_TIME_WATCH,
203775
203513
  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;
203514
+ isMuted: isMuted
203515
+ });
203516
+ return () => $unwatch(identifier);
203823
203517
  };
203518
+ const $unwatch = identifier => registry.delete(identifier);
203519
+ window.watchRegistry = registry;
203824
203520
  const $appDigest = (() => {
203825
- return (force = false) => {
203521
+ return (force) => {
203826
203522
  {
203827
203523
  return;
203828
203524
  }
203829
203525
  };
203830
203526
  })();
203831
- // Export registry for debugging
203832
- window.watchRegistry = registry;
203833
203527
 
203834
203528
  var ComponentType;
203835
203529
  (function (ComponentType) {