@wavemaker/angular-app 11.15.0-rc.6403 → 11.15.1-rc.6451

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.
@@ -35443,6 +35443,7 @@ const LIVE_ACTION_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveAc
35443
35443
  const DEPENDS_ON_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'DependsonDirective' }];
35444
35444
  const LIVE_FILTER_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveFilterDirective' }];
35445
35445
  const LIVE_FORM_DIRECTIVE = [{ from: '@wm/components/data/form', name: 'LiveFormDirective' }];
35446
+ const CAPTION_POSITION_DIRECTIVE = [{ from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective' }];
35446
35447
  const FORM_COMPONENT = [
35447
35448
  ...NG_FORM_MODULE,
35448
35449
  ...NG_REACTIVE_FORM_MODULE,
@@ -35453,6 +35454,7 @@ const FORM_COMPONENT = [
35453
35454
  ...DEPENDS_ON_DIRECTIVE,
35454
35455
  ...LIVE_FILTER_DIRECTIVE,
35455
35456
  ...LIVE_FORM_DIRECTIVE,
35457
+ ...CAPTION_POSITION_DIRECTIVE,
35456
35458
  { from: '@wm/components/data/form', name: 'FormComponent' }
35457
35459
  ];
35458
35460
  const COMPOSITE_DIRECTIVE = [{ from: '@wm/components/input/composite', name: 'CompositeDirective' }, { from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective' }];
@@ -49235,7 +49237,7 @@ function requireMomentTimezone () {
49235
49237
  hasRequiredMomentTimezone = 1;
49236
49238
  (function (module) {
49237
49239
  //! moment-timezone.js
49238
- //! version : 0.6.0
49240
+ //! version : 0.6.1
49239
49241
  //! Copyright (c) JS Foundation and other contributors
49240
49242
  //! license : MIT
49241
49243
  //! github.com/moment/moment-timezone
@@ -49261,7 +49263,7 @@ function requireMomentTimezone () {
49261
49263
  // return moment;
49262
49264
  // }
49263
49265
 
49264
- var VERSION = "0.6.0",
49266
+ var VERSION = "0.6.1",
49265
49267
  zones = {},
49266
49268
  links = {},
49267
49269
  countries = {},
@@ -99712,11 +99714,11 @@ const getRowActionAttrs = attrs => {
99712
99714
  return tmpl;
99713
99715
  };
99714
99716
 
99715
- const $RAF = window.requestAnimationFrame;
99717
+ const $RAF$1 = window.requestAnimationFrame;
99716
99718
  const $RAFQueue = [];
99717
99719
  const invokeLater = fn => {
99718
99720
  if (!$RAFQueue.length) {
99719
- $RAF(() => {
99721
+ $RAF$1(() => {
99720
99722
  $RAFQueue.forEach(f => f());
99721
99723
  $RAFQueue.length = 0;
99722
99724
  });
@@ -100274,223 +100276,83 @@ const getFnForEventExpr = (expr) => {
100274
100276
  return fnExecutor(expr, ExpressionType.Action);
100275
100277
  };
100276
100278
 
100277
- // Constants
100278
- const WIDGET_ID_REGEX = /^(widget-[^_]+)/;
100279
- const WIDGET_PROPERTY_REGEX = /^widget-[^_]+_(.+)$/;
100280
- const ARRAY_INDEX_PLACEHOLDER = '[$i]';
100281
- const ARRAY_INDEX_ZERO = '[0]';
100282
100279
  const registry = new Map();
100283
100280
  const watchIdGenerator = new IDGenerator('watch-id-');
100284
- const FIRST_TIME_WATCH = Object.freeze({});
100285
- /**
100286
- * Extracts widget ID from identifier (e.g., "widget-id23_eventsource" -> "widget-id23")
100287
- */
100288
- const getWidgetId = (identifier) => {
100289
- if (!identifier || typeof identifier !== 'string') {
100290
- return null;
100291
- }
100292
- const match = identifier.match(WIDGET_ID_REGEX);
100293
- return match ? match[1] : null;
100294
- };
100295
- /**
100296
- * Extracts property name from identifier (e.g., "widget-id23_eventsource" -> "eventsource")
100297
- */
100298
- const getPropertyName = (identifier) => {
100299
- if (!identifier || typeof identifier !== 'string') {
100300
- return identifier;
100301
- }
100302
- const match = identifier.match(WIDGET_PROPERTY_REGEX);
100303
- return match ? match[1] : identifier;
100304
- };
100305
- /**
100306
- * Array consumer wrapper for array-based expressions
100307
- */
100281
+ const FIRST_TIME_WATCH = {};
100282
+ Object.freeze(FIRST_TIME_WATCH);
100308
100283
  const arrayConsumer = (listenerFn, restExpr, newVal, oldVal) => {
100309
- if (!isArray(newVal)) {
100310
- return;
100311
- }
100312
- let formattedData = newVal.map(datum => findValueOf(datum, restExpr));
100313
- // Flatten if result is array of arrays
100314
- if (isArray(formattedData[0])) {
100315
- formattedData = flatten$1(formattedData);
100284
+ let data = newVal, formattedData;
100285
+ if (isArray(data)) {
100286
+ formattedData = data.map(function (datum) {
100287
+ return findValueOf(datum, restExpr);
100288
+ });
100289
+ // If resulting structure is an array of array, flatten it
100290
+ if (isArray(formattedData[0])) {
100291
+ formattedData = flatten$1(formattedData);
100292
+ }
100293
+ listenerFn(formattedData, oldVal);
100316
100294
  }
100317
- listenerFn(formattedData, oldVal);
100318
100295
  };
100319
- /**
100320
- * Updates watch info for array expressions
100321
- */
100322
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
100323
- const regex = /\[\$i\]/g;
100296
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
100297
+ // listener doesn't accept array
100298
+ // replace all `[$i]` with `[0]` and return the expression
100299
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
100324
100300
  if (!acceptsArray) {
100325
100301
  return {
100326
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
100327
- listener
100302
+ 'expr': expr.replace(regex, $0),
100303
+ 'listener': listener
100328
100304
  };
100329
100305
  }
100330
- const lastIndex = expr.lastIndexOf(ARRAY_INDEX_PLACEHOLDER);
100331
- const baseExpr = expr.substring(0, lastIndex).replace(ARRAY_INDEX_PLACEHOLDER, ARRAY_INDEX_ZERO);
100332
- const restExpr = expr.substring(lastIndex + 5);
100333
- const arrayConsumerFn = restExpr
100334
- ? arrayConsumer.bind(undefined, listener, restExpr)
100335
- : listener;
100306
+ // listener accepts array
100307
+ // replace all except the last `[$i]` with `[0]` and return the expression.
100308
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
100309
+ if (restExpr) {
100310
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
100311
+ }
100336
100312
  return {
100337
- expr: baseExpr,
100338
- listener: arrayConsumerFn
100313
+ 'expr': _expr,
100314
+ 'listener': arrayConsumerFn
100339
100315
  };
100340
100316
  };
100341
- /**
100342
- * Determines if an expression is static (doesn't need to be watched)
100343
- */
100344
- const STATIC_EXPRESSION_NAMES = [
100345
- "row.getProperty('investment')",
100346
- "row.getProperty('factsheetLink')",
100347
- "row.getProperty('isRebalanceEligible')"
100348
- ];
100349
- const isStaticExpression = (expr) => {
100350
- if (typeof expr !== 'string') {
100351
- return false;
100352
- }
100353
- const trimmedExpr = expr.trim();
100354
- // Expressions that always evaluate to localization strings
100355
- // if (trimmedExpr.includes('appLocale')) {
100356
- // return true;
100357
- // }
100358
- // Hard-coded static expression names
100359
- if (STATIC_EXPRESSION_NAMES.includes(trimmedExpr)) {
100360
- return true;
100361
- }
100362
- return false;
100363
- };
100364
- /**
100365
- * Gets the scope type from the scope object
100366
- */
100367
- const getScopeType = ($scope) => {
100368
- if (!$scope) {
100369
- return null;
100370
- }
100371
- if ($scope.pageName)
100372
- return 'Page';
100373
- if ($scope.prefabName)
100374
- return 'Prefab';
100375
- if ($scope.partialName)
100376
- return 'Partial';
100377
- // Check for App scope
100378
- if ($scope.Variables !== undefined &&
100379
- $scope.Actions !== undefined &&
100380
- !$scope.pageName &&
100381
- !$scope.prefabName &&
100382
- !$scope.partialName) {
100383
- return 'App';
100384
- }
100385
- if ($scope.constructor?.name === 'AppRef') {
100386
- return 'App';
100387
- }
100388
- return null;
100389
- };
100390
- /**
100391
- * Gets scope name based on scope type
100392
- */
100393
- const getScopeName = ($scope, scopeType) => {
100394
- if (!scopeType || !$scope) {
100395
- return null;
100396
- }
100397
- switch (scopeType) {
100398
- case 'Prefab': return $scope.prefabName || null;
100399
- case 'Partial': return $scope.partialName || null;
100400
- case 'Page': return $scope.pageName || null;
100401
- default: return null;
100402
- }
100403
- };
100404
- /**
100405
- * Main watch function
100406
- */
100407
100317
  const $watch = (expr, $scope, $locals, listener, identifier = watchIdGenerator.nextUid(), doNotClone = false, config = {}, isMuted) => {
100408
- // Handle array expressions
100409
- if (expr.includes(ARRAY_INDEX_PLACEHOLDER)) {
100410
- const watchInfo = getUpdatedWatchInfo(expr, config.arrayType || config.isList || false, listener);
100318
+ if (expr.indexOf('[$i]') !== -1) {
100319
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
100411
100320
  expr = watchInfo.expr;
100412
100321
  listener = watchInfo.listener;
100413
100322
  }
100414
- // Handle static expressions
100415
- if (isStaticExpression(expr)) {
100416
- try {
100417
- const fn = $parseExpr(expr);
100418
- const staticValue = fn($scope, $locals);
100419
- listener(staticValue, FIRST_TIME_WATCH);
100420
- }
100421
- catch (e) {
100422
- console.warn(`Error evaluating static expression '${expr}':`, e);
100423
- listener(undefined, FIRST_TIME_WATCH);
100424
- }
100425
- return () => { }; // No-op unsubscribe
100426
- }
100427
100323
  const fn = $parseExpr();
100428
- const scopeType = getScopeType($scope);
100429
- const scopeName = getScopeName($scope, scopeType);
100430
- const destroyFn = () => $unwatch(identifier);
100431
- const watchInfo = {
100432
- fn: fn.bind(null, $scope, $locals),
100324
+ registry.set(identifier, {
100325
+ fn: fn.bind(expr, $scope, $locals),
100433
100326
  listener,
100434
100327
  expr,
100435
100328
  last: FIRST_TIME_WATCH,
100436
100329
  doNotClone,
100437
- isMuted,
100438
- scopeType,
100439
- scopeName,
100440
- destroyFn
100441
- };
100442
- // Store in registry
100443
- const widgetId = getWidgetId(identifier);
100444
- if (widgetId) {
100445
- const propertyName = getPropertyName(identifier);
100446
- if (!registry.has(widgetId)) {
100447
- registry.set(widgetId, {});
100448
- }
100449
- const widgetGroup = registry.get(widgetId);
100450
- widgetGroup[propertyName] = watchInfo;
100451
- }
100452
- else {
100453
- registry.set(identifier, watchInfo);
100454
- }
100455
- return destroyFn;
100330
+ isMuted: isMuted
100331
+ });
100332
+ return () => $unwatch(identifier);
100456
100333
  };
100457
- /**
100458
- * Unwatches a single identifier
100459
- */
100460
- const $unwatch = (identifier) => {
100461
- const widgetId = getWidgetId(identifier);
100462
- if (widgetId) {
100463
- const propertyName = getPropertyName(identifier);
100464
- const widgetGroup = registry.get(widgetId);
100465
- //@ts-ignore
100466
- if (widgetGroup && typeof widgetGroup === 'object' && !widgetGroup.fn) {
100467
- const watchInfo = widgetGroup[propertyName];
100468
- if (watchInfo) {
100469
- delete widgetGroup[propertyName];
100470
- // Clean up empty widget groups
100471
- if (Object.keys(widgetGroup).length === 0) {
100472
- registry.delete(widgetId);
100473
- }
100474
- return true;
100475
- }
100334
+ const $unwatch = identifier => registry.delete(identifier);
100335
+ window.watchRegistry = registry;
100336
+ window.__WM_DEBUG_WATCHERS__ = false;
100337
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
100338
+ if (force) {
100339
+ triggerWatchers(ignoreMuted);
100340
+ } else {
100341
+
100342
+ if (skipWatchers) {
100343
+ skipWatchers = false;
100344
+ return;
100476
100345
  }
100346
+ debouncedTriggerWatchers();
100477
100347
  }
100478
- // Fallback to direct lookup
100479
- if (registry.has(identifier)) {
100480
- registry.delete(identifier);
100481
- return true;
100482
- }
100483
- return false;
100484
- };
100348
+ };*/
100485
100349
  const $appDigest = (() => {
100486
- return (force = false) => {
100350
+ return (force) => {
100487
100351
  {
100488
100352
  return;
100489
100353
  }
100490
100354
  };
100491
100355
  })();
100492
- // Export registry for debugging
100493
- window.watchRegistry = registry;
100494
100356
 
100495
100357
  var ComponentType;
100496
100358
  (function (ComponentType) {
@@ -105944,10 +105806,10 @@ var tableRow_build$1 = /*#__PURE__*/Object.freeze({
105944
105806
 
105945
105807
  const tagName$6 = 'div';
105946
105808
  const getSaveCancelTemplate = () => {
105947
- return `<button type="button" aria-label="Save edit icon" class="save row-action-button btn app-button btn-transparent save-edit-row-button hidden" title="Save">
105809
+ return `<button type="button" aria-label="Save edit icon" class="save row-action-button btn app-button btn-transparent save-edit-row-button hidden" title="{{appLocale?.LABEL_SAVE || 'Save'}}">
105948
105810
  <i class="wi wi-done" aria-hidden="true"></i>
105949
105811
  </button>
105950
- <button type="button" aria-label="Cancel edit icon" class="cancel row-action-button btn app-button btn-transparent cancel-edit-row-button hidden" title="Cancel">
105812
+ <button type="button" aria-label="Cancel edit icon" class="cancel row-action-button btn app-button btn-transparent cancel-edit-row-button hidden" title="{{appLocale?.LABEL_CANCEL || 'Cancel'}}">
105951
105813
  <i class="wi wi-cancel" aria-hidden="true"></i>
105952
105814
  </button>`;
105953
105815
  };
@@ -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/7/2026, 8:11:39 PM</p>
72
+ <p class="timestamp">Generated on: 3/25/2026, 11:08:06 AM</p>
73
73
  </div>
74
74
 
75
75
  <div class="section">