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

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' }];
@@ -37811,7 +37813,7 @@ function requireDom () {
37811
37813
  ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]="DOMString size error"),2);
37812
37814
  var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]="Hierarchy request error"),3);
37813
37815
  ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]="Wrong document"),4);
37814
- ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
37816
+ var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5);
37815
37817
  ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]="No data allowed"),6);
37816
37818
  ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]="No modification allowed"),7);
37817
37819
  var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]="Not found"),8);
@@ -38892,7 +38894,22 @@ function requireDom () {
38892
38894
  node.appendData(data);
38893
38895
  return node;
38894
38896
  },
38897
+ /**
38898
+ * Returns a new CDATASection node whose data is `data`.
38899
+ *
38900
+ * __This implementation differs from the specification:__
38901
+ * - calling this method on an HTML document does not throw `NotSupportedError`.
38902
+ *
38903
+ * @param {string} data
38904
+ * @returns {CDATASection}
38905
+ * @throws DOMException with code `INVALID_CHARACTER_ERR` if `data` contains `"]]>"`.
38906
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/createCDATASection
38907
+ * @see https://dom.spec.whatwg.org/#dom-document-createcdatasection
38908
+ */
38895
38909
  createCDATASection : function(data){
38910
+ if (data.indexOf(']]>') !== -1) {
38911
+ throw new DOMException(INVALID_CHARACTER_ERR, 'data contains "]]>"');
38912
+ }
38896
38913
  var node = new CDATASection();
38897
38914
  node.ownerDocument = this;
38898
38915
  node.appendData(data);
@@ -39150,6 +39167,20 @@ function requireDom () {
39150
39167
  ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;
39151
39168
  _extends(ProcessingInstruction,Node);
39152
39169
  function XMLSerializer(){}
39170
+ /**
39171
+ * Returns the result of serializing `node` to XML.
39172
+ *
39173
+ * __This implementation differs from the specification:__
39174
+ * - CDATASection nodes whose data contains `]]>` are serialized by splitting the section
39175
+ * at each `]]>` occurrence (following W3C DOM Level 3 Core `split-cdata-sections`
39176
+ * default behaviour). A configurable option is not yet implemented.
39177
+ *
39178
+ * @param {Node} node
39179
+ * @param {boolean} [isHtml]
39180
+ * @param {function} [nodeFilter]
39181
+ * @returns {string}
39182
+ * @see https://html.spec.whatwg.org/#dom-xmlserializer-serializetostring
39183
+ */
39153
39184
  XMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){
39154
39185
  return nodeSerializeToString.call(node,isHtml,nodeFilter);
39155
39186
  };
@@ -39368,7 +39399,7 @@ function requireDom () {
39368
39399
  .replace(/[<&>]/g,_xmlEncoder)
39369
39400
  );
39370
39401
  case CDATA_SECTION_NODE:
39371
- return buf.push( '<![CDATA[',node.data,']]>');
39402
+ return buf.push('<![CDATA[', node.data.replace(/]]>/g, ']]]]><![CDATA[>'), ']]>');
39372
39403
  case COMMENT_NODE:
39373
39404
  return buf.push( "<!--",node.data,"-->");
39374
39405
  case DOCUMENT_TYPE_NODE:
@@ -42348,7 +42379,7 @@ function requireSax () {
42348
42379
  function parseInstruction(source,start,domBuilder){
42349
42380
  var end = source.indexOf('?>',start);
42350
42381
  if(end){
42351
- var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
42382
+ var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)$/);
42352
42383
  if(match){
42353
42384
  match[0].length;
42354
42385
  domBuilder.processingInstruction(match[1], match[2]) ;
@@ -49235,7 +49266,7 @@ function requireMomentTimezone () {
49235
49266
  hasRequiredMomentTimezone = 1;
49236
49267
  (function (module) {
49237
49268
  //! moment-timezone.js
49238
- //! version : 0.6.0
49269
+ //! version : 0.6.1
49239
49270
  //! Copyright (c) JS Foundation and other contributors
49240
49271
  //! license : MIT
49241
49272
  //! github.com/moment/moment-timezone
@@ -49261,7 +49292,7 @@ function requireMomentTimezone () {
49261
49292
  // return moment;
49262
49293
  // }
49263
49294
 
49264
- var VERSION = "0.6.0",
49295
+ var VERSION = "0.6.1",
49265
49296
  zones = {},
49266
49297
  links = {},
49267
49298
  countries = {},
@@ -99712,11 +99743,11 @@ const getRowActionAttrs = attrs => {
99712
99743
  return tmpl;
99713
99744
  };
99714
99745
 
99715
- const $RAF = window.requestAnimationFrame;
99746
+ const $RAF$1 = window.requestAnimationFrame;
99716
99747
  const $RAFQueue = [];
99717
99748
  const invokeLater = fn => {
99718
99749
  if (!$RAFQueue.length) {
99719
- $RAF(() => {
99750
+ $RAF$1(() => {
99720
99751
  $RAFQueue.forEach(f => f());
99721
99752
  $RAFQueue.length = 0;
99722
99753
  });
@@ -100274,223 +100305,83 @@ const getFnForEventExpr = (expr) => {
100274
100305
  return fnExecutor(expr, ExpressionType.Action);
100275
100306
  };
100276
100307
 
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
100308
  const registry = new Map();
100283
100309
  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
- */
100310
+ const FIRST_TIME_WATCH = {};
100311
+ Object.freeze(FIRST_TIME_WATCH);
100308
100312
  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);
100313
+ let data = newVal, formattedData;
100314
+ if (isArray(data)) {
100315
+ formattedData = data.map(function (datum) {
100316
+ return findValueOf(datum, restExpr);
100317
+ });
100318
+ // If resulting structure is an array of array, flatten it
100319
+ if (isArray(formattedData[0])) {
100320
+ formattedData = flatten$1(formattedData);
100321
+ }
100322
+ listenerFn(formattedData, oldVal);
100316
100323
  }
100317
- listenerFn(formattedData, oldVal);
100318
100324
  };
100319
- /**
100320
- * Updates watch info for array expressions
100321
- */
100322
- const getUpdatedWatchInfo = (expr, acceptsArray, listener) => {
100323
- const regex = /\[\$i\]/g;
100325
+ const getUpdatedWatcInfo = (expr, acceptsArray, listener) => {
100326
+ // listener doesn't accept array
100327
+ // replace all `[$i]` with `[0]` and return the expression
100328
+ let regex = /\[\$i\]/g, $I = '[$i]', $0 = '[0]';
100324
100329
  if (!acceptsArray) {
100325
100330
  return {
100326
- expr: expr.replace(regex, ARRAY_INDEX_ZERO),
100327
- listener
100331
+ 'expr': expr.replace(regex, $0),
100332
+ 'listener': listener
100328
100333
  };
100329
100334
  }
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;
100335
+ // listener accepts array
100336
+ // replace all except the last `[$i]` with `[0]` and return the expression.
100337
+ var index = expr.lastIndexOf($I), _expr = expr.substr(0, index).replace($I, $0), restExpr = expr.substr(index + 5), arrayConsumerFn = listener;
100338
+ if (restExpr) {
100339
+ arrayConsumerFn = arrayConsumer.bind(undefined, listener, restExpr);
100340
+ }
100336
100341
  return {
100337
- expr: baseExpr,
100338
- listener: arrayConsumerFn
100342
+ 'expr': _expr,
100343
+ 'listener': arrayConsumerFn
100339
100344
  };
100340
100345
  };
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
100346
  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);
100347
+ if (expr.indexOf('[$i]') !== -1) {
100348
+ let watchInfo = getUpdatedWatcInfo(expr, config && (config.arrayType || config.isList), listener);
100411
100349
  expr = watchInfo.expr;
100412
100350
  listener = watchInfo.listener;
100413
100351
  }
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
100352
  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),
100353
+ registry.set(identifier, {
100354
+ fn: fn.bind(expr, $scope, $locals),
100433
100355
  listener,
100434
100356
  expr,
100435
100357
  last: FIRST_TIME_WATCH,
100436
100358
  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;
100359
+ isMuted: isMuted
100360
+ });
100361
+ return () => $unwatch(identifier);
100456
100362
  };
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
- }
100363
+ const $unwatch = identifier => registry.delete(identifier);
100364
+ window.watchRegistry = registry;
100365
+ window.__WM_DEBUG_WATCHERS__ = false;
100366
+ /*export const $invokeWatchers = (force?: boolean, ignoreMuted?: boolean) => {
100367
+ if (force) {
100368
+ triggerWatchers(ignoreMuted);
100369
+ } else {
100370
+
100371
+ if (skipWatchers) {
100372
+ skipWatchers = false;
100373
+ return;
100476
100374
  }
100375
+ debouncedTriggerWatchers();
100477
100376
  }
100478
- // Fallback to direct lookup
100479
- if (registry.has(identifier)) {
100480
- registry.delete(identifier);
100481
- return true;
100482
- }
100483
- return false;
100484
- };
100377
+ };*/
100485
100378
  const $appDigest = (() => {
100486
- return (force = false) => {
100379
+ return (force) => {
100487
100380
  {
100488
100381
  return;
100489
100382
  }
100490
100383
  };
100491
100384
  })();
100492
- // Export registry for debugging
100493
- window.watchRegistry = registry;
100494
100385
 
100495
100386
  var ComponentType;
100496
100387
  (function (ComponentType) {
@@ -105944,10 +105835,10 @@ var tableRow_build$1 = /*#__PURE__*/Object.freeze({
105944
105835
 
105945
105836
  const tagName$6 = 'div';
105946
105837
  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">
105838
+ 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
105839
  <i class="wi wi-done" aria-hidden="true"></i>
105949
105840
  </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">
105841
+ <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
105842
  <i class="wi wi-cancel" aria-hidden="true"></i>
105952
105843
  </button>`;
105953
105844
  };
@@ -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: 4/10/2026, 4:02:23 PM</p>
73
73
  </div>
74
74
 
75
75
  <div class="section">