@wavemaker/angular-app 11.14.2-1.6423 → 11.14.2-2.6435

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.
@@ -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
  });
@@ -100269,220 +100269,83 @@ const getFnForEventExpr = (expr) => {
100269
100269
  return fnExecutor(expr, ExpressionType.Action);
100270
100270
  };
100271
100271
 
100272
- // Constants
100273
- const WIDGET_ID_REGEX = /^(widget-[^_]+)/;
100274
- const WIDGET_PROPERTY_REGEX = /^widget-[^_]+_(.+)$/;
100275
- const ARRAY_INDEX_PLACEHOLDER = '[$i]';
100276
- const ARRAY_INDEX_ZERO = '[0]';
100277
100272
  const registry = new Map();
100278
100273
  const watchIdGenerator = new IDGenerator('watch-id-');
100279
- const FIRST_TIME_WATCH = Object.freeze({});
100280
- /**
100281
- * Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
100282
- */
100283
- const getWidgetId = (identifier) => {
100284
- if (!identifier || typeof identifier !== 'string') {
100285
- return null;
100286
- }
100287
- const match = identifier.match(WIDGET_ID_REGEX);
100288
- return match ? match[1] : null;
100289
- };
100290
- /**
100291
- * Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
100292
- */
100293
- const getPropertyName = (identifier) => {
100294
- if (!identifier || typeof identifier !== 'string') {
100295
- return identifier;
100296
- }
100297
- const match = identifier.match(WIDGET_PROPERTY_REGEX);
100298
- return match ? match[1] : identifier;
100299
- };
100300
- /**
100301
- * Array consumer wrapper for array-based expressions
100302
- */
100274
+ const FIRST_TIME_WATCH = {};
100275
+ Object.freeze(FIRST_TIME_WATCH);
100303
100276
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
100304
- if (!isArray(newVal)) {
100305
- return;
100306
- }
100307
- let formattedData = newVal.map(datum => findValueOf(datum, restExpr));
100308
- // Flatten if result is array of arrays
100309
- if (isArray(formattedData[0])) {
100310
- formattedData = flatten$1(formattedData);
100277
+ let data = newVal, formattedData;
100278
+ if (isArray(data)) {
100279
+ formattedData = data.map(function (datum) {
100280
+ return findValueOf(datum, restExpr);
100281
+ });
100282
+ // If resulting structure is an array of array, flatten it
100283
+ if (isArray(formattedData[0])) {
100284
+ formattedData = flatten$1(formattedData);
100285
+ }
100286
+ listenerFn(formattedData, oldVal);
100311
100287
  }
100312
- listenerFn(formattedData, oldVal);
100313
100288
  };
100314
- /**
100315
- * Updates watch info for array expressions
100316
- */
100317
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
100318
- const regex = /\[\$i\]/g;
100289
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
100290
+ // listener doesn't accept array
100291
+ // replace all `[$i]` with `[0]` and return the expression
100292
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
100319
100293
  if (!acceptsArray) {
100320
100294
  return {
100321
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
100322
- listener
100295
+ 'expr': expr.replace(regex, $0),
100296
+ 'listener': listener
100323
100297
  };
100324
100298
  }
100325
- const lastIndex = expr.lastIndexOf(ARRAY_INDEX_PLACEHOLDER);
100326
- const baseExpr = expr.substring(0, lastIndex).replace(ARRAY_INDEX_PLACEHOLDER, ARRAY_INDEX_ZERO);
100327
- const restExpr = expr.substring(lastIndex + 5);
100328
- const arrayConsumerFn = restExpr
100329
- ? arrayConsumer.bind(undefined, listener, restExpr)
100330
- : listener;
100299
+ // listener accepts array
100300
+ // replace all except the last `[$i]` with `[0]` and return the expression.
100301
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
100302
+ if (restExpr) {
100303
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
100304
+ }
100331
100305
  return {
100332
- expr: baseExpr,
100333
- listener: arrayConsumerFn
100306
+ 'expr': _expr,
100307
+ 'listener': arrayConsumerFn
100334
100308
  };
100335
100309
  };
100336
- /**
100337
- * Determines if an expression is static (doesn't need to be watched)
100338
- */
100339
- const STATIC_EXPRESSION_NAMES = [
100340
- "row.getProperty('investment')",
100341
- "row.getProperty('factsheetLink')",
100342
- "row.getProperty('isRebalanceEligible')"
100343
- ];
100344
- const isStaticExpression = (expr) => {
100345
- if (typeof expr !== 'string') {
100346
- return false;
100347
- }
100348
- const trimmedExpr = expr.trim();
100349
- // Expressions that always evaluate to localization strings
100350
- // if (trimmedExpr.includes('appLocale')) {
100351
- // return true;
100352
- // }
100353
- // Hard-coded static expression names
100354
- if (STATIC_EXPRESSION_NAMES.includes(trimmedExpr)) {
100355
- return true;
100356
- }
100357
- return false;
100358
- };
100359
- /**
100360
- * Gets the scope type from the scope object
100361
- */
100362
- const getScopeType = ($scope) => {
100363
- if (!$scope) {
100364
- return null;
100365
- }
100366
- if ($scope.pageName)
100367
- return 'Page';
100368
- if ($scope.prefabName)
100369
- return 'Prefab';
100370
- if ($scope.partialName)
100371
- return 'Partial';
100372
- // Check for App scope
100373
- if ($scope.Variables !== undefined &&
100374
- $scope.Actions !== undefined &&
100375
- !$scope.pageName &&
100376
- !$scope.prefabName &&
100377
- !$scope.partialName) {
100378
- return 'App';
100379
- }
100380
- if ($scope.constructor?.name === 'AppRef') {
100381
- return 'App';
100382
- }
100383
- return null;
100384
- };
100385
- /**
100386
- * Gets scope name based on scope type
100387
- */
100388
- const getScopeName = ($scope, scopeType) => {
100389
- if (!scopeType || !$scope) {
100390
- return null;
100391
- }
100392
- switch (scopeType) {
100393
- case 'Prefab': return $scope.prefabName || null;
100394
- case 'Partial': return $scope.partialName || null;
100395
- case 'Page': return $scope.pageName || null;
100396
- default: return null;
100397
- }
100398
- };
100399
- /**
100400
- * Main watch function
100401
- */
100402
100310
  const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.nextUid(), doNotClone = false, config = {}, isMuted) => {
100403
- // Handle array expressions
100404
- if (expr.includes(ARRAY_INDEX_PLACEHOLDER)) {
100405
- const watchInfo = getUpdatedWatchInfo(expr, config.arrayType || config.isList || false, listener);
100311
+ if (expr.indexOf('[$i]') !== -1) {
100312
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
100406
100313
  expr = watchInfo.expr;
100407
100314
  listener = watchInfo.listener;
100408
100315
  }
100409
- // Handle static expressions
100410
- if (isStaticExpression(expr)) {
100411
- try {
100412
- const fn = $parseExpr(expr);
100413
- const staticValue = fn($scope, $locals);
100414
- listener(staticValue, FIRST_TIME_WATCH);
100415
- }
100416
- catch (e) {
100417
- console.warn(`Error evaluating static expression '${expr}':`, e);
100418
- listener(undefined, FIRST_TIME_WATCH);
100419
- }
100420
- return () => { }; // No-op unsubscribe
100421
- }
100422
100316
  const fn = $parseExpr();
100423
- const scopeType = getScopeType($scope);
100424
- const scopeName = getScopeName($scope, scopeType);
100425
- const watchInfo = {
100426
- fn: fn.bind(null, $scope, $locals),
100317
+ registry.set(identifier, {
100318
+ fn: fn.bind(expr, $scope, $locals),
100427
100319
  listener,
100428
100320
  expr,
100429
100321
  last: FIRST_TIME_WATCH,
100430
100322
  doNotClone,
100431
- isMuted,
100432
- scopeType,
100433
- scopeName
100434
- };
100435
- // Store in registry
100436
- const widgetId = getWidgetId(identifier);
100437
- if (widgetId) {
100438
- const propertyName = getPropertyName(identifier);
100439
- if (!registry.has(widgetId)) {
100440
- registry.set(widgetId, {});
100441
- }
100442
- const widgetGroup = registry.get(widgetId);
100443
- widgetGroup[propertyName] = watchInfo;
100444
- }
100445
- else {
100446
- registry.set(identifier, watchInfo);
100447
- }
100323
+ isMuted: isMuted
100324
+ });
100448
100325
  return () => $unwatch(identifier);
100449
100326
  };
100450
- /**
100451
- * Unwatches a single identifier
100452
- */
100453
- const $unwatch = (identifier) => {
100454
- const widgetId = getWidgetId(identifier);
100455
- if (widgetId) {
100456
- const propertyName = getPropertyName(identifier);
100457
- const widgetGroup = registry.get(widgetId);
100458
- if (widgetGroup && typeof widgetGroup === 'object' && !widgetGroup.fn) {
100459
- const watchInfo = widgetGroup[propertyName];
100460
- if (watchInfo) {
100461
- delete widgetGroup[propertyName];
100462
- // Clean up empty widget groups
100463
- if (Object.keys(widgetGroup).length === 0) {
100464
- registry.delete(widgetId);
100465
- }
100466
- return true;
100467
- }
100327
+ const $unwatch = identifier => registry.delete(identifier);
100328
+ window.watchRegistry = registry;
100329
+ window.__WM_DEBUG_WATCHERS__ = false;
100330
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
100331
+ if (force) {
100332
+ triggerWatchers(ignoreMuted);
100333
+ } else {
100334
+
100335
+ if (skipWatchers) {
100336
+ skipWatchers = false;
100337
+ return;
100468
100338
  }
100339
+ debouncedTriggerWatchers();
100469
100340
  }
100470
- // Fallback to direct lookup
100471
- if (registry.has(identifier)) {
100472
- registry.delete(identifier);
100473
- return true;
100474
- }
100475
- return false;
100476
- };
100341
+ };*/
100477
100342
  const $appDigest = (() => {
100478
- return (force = false) => {
100343
+ return (force) => {
100479
100344
  {
100480
100345
  return;
100481
100346
  }
100482
100347
  };
100483
100348
  })();
100484
- // Export registry for debugging
100485
- window.watchRegistry = registry;
100486
100349
 
100487
100350
  var ComponentType;
100488
100351
  (function (ComponentType) {
@@ -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: 3/4/2026, 5:19:43 PM</p>
72
+ <p class="timestamp">Generated on: 3/16/2026, 5:52:36 PM</p>
73
73
  </div>
74
74
 
75
75
  <div class="section">