@wavemaker/app-ng-runtime 11.10.3-rc.6079 → 11.10.4-rc.206

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.
Files changed (40) hide show
  1. package/build-task/bundles/index.umd.js +6 -1
  2. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +7 -2
  3. package/build-task/fesm2022/index.mjs +6 -1
  4. package/build-task/fesm2022/index.mjs.map +1 -1
  5. package/components/base/bundles/index.umd.js +1 -1
  6. package/components/base/esm2022/utils/widget-utils.mjs +2 -2
  7. package/components/base/fesm2022/index.mjs +1 -1
  8. package/components/base/fesm2022/index.mjs.map +1 -1
  9. package/components/containers/wizard/bundles/index.umd.js +8 -5
  10. package/components/containers/wizard/esm2022/wizard.component.mjs +9 -6
  11. package/components/containers/wizard/fesm2022/index.mjs +8 -5
  12. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  13. package/components/containers/wizard/wizard.component.d.ts +2 -2
  14. package/components/data/pagination/bundles/index.umd.js +139 -102
  15. package/components/data/pagination/esm2022/pagination.component.mjs +140 -103
  16. package/components/data/pagination/fesm2022/index.mjs +139 -102
  17. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  18. package/components/data/table/bundles/index.umd.js +2 -2
  19. package/components/data/table/esm2022/table.component.mjs +3 -3
  20. package/components/data/table/fesm2022/index.mjs +2 -2
  21. package/components/data/table/fesm2022/index.mjs.map +1 -1
  22. package/components/input/default/bundles/index.umd.js +10 -4
  23. package/components/input/default/esm2022/base-form.component.mjs +5 -1
  24. package/components/input/default/esm2022/switch/switch.component.mjs +3 -3
  25. package/components/input/default/esm2022/text/base/base-input.mjs +2 -2
  26. package/components/input/default/esm2022/text/locale/number-locale.mjs +4 -2
  27. package/components/input/default/fesm2022/index.mjs +10 -4
  28. package/components/input/default/fesm2022/index.mjs.map +1 -1
  29. package/components/navigation/popover/bundles/index.umd.js +16 -2
  30. package/components/navigation/popover/esm2022/popover.component.mjs +17 -3
  31. package/components/navigation/popover/fesm2022/index.mjs +16 -2
  32. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  33. package/components/navigation/popover/popover.component.d.ts +2 -1
  34. package/core/bundles/index.umd.js +2 -2
  35. package/core/esm2022/utils/utils.mjs +3 -3
  36. package/core/fesm2022/index.mjs +2 -2
  37. package/core/fesm2022/index.mjs.map +1 -1
  38. package/npm-shrinkwrap.json +2 -2
  39. package/package-lock.json +2 -2
  40. package/package.json +1 -1
@@ -226,6 +226,10 @@ class BaseFormComponent extends StylableComponent {
226
226
  if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {
227
227
  set(this.context, binddatavalue, value);
228
228
  }
229
+ // Parent widget must update on custom widget datavalue change for bindings to work
230
+ else if (has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {
231
+ set(this.viewParent, binddatavalue, value);
232
+ }
229
233
  else if (has(this.viewParent, binddatavalue) && this.datavaluesource.owner === "Page") {
230
234
  set(this.viewParent, binddatavalue, value);
231
235
  }
@@ -1284,7 +1288,7 @@ class BaseInput extends BaseFormCustomComponent {
1284
1288
  this._onChange(this.datavalue);
1285
1289
  }
1286
1290
  if (key === 'updateon') {
1287
- this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;
1291
+ this.ngModelOptions.updateOn = nv === 'default' ? 'change' : 'blur';
1288
1292
  }
1289
1293
  if (key === 'class') {
1290
1294
  if (this.inputEl.nativeElement) {
@@ -1384,7 +1388,9 @@ let NumberLocale = class NumberLocale extends BaseInput {
1384
1388
  const prevDataValue = this.prevDatavalue;
1385
1389
  this.displayValue = input.value = this.proxyModel = null;
1386
1390
  this.resetValidations();
1387
- if ((prevDataValue || prevDataValue == 0) && !this.isDefaultQuery) {
1391
+ // Fix for [WMS-27648]: When a decimal value is entered (e.g., "3."), datavalue and prevDatavalue become null as it is an invalid number.
1392
+ // handleChange() should be called when the invalid datavalue (e.g., "3.") is removed, and the value becomes an empty string ("").
1393
+ if ((prevDataValue || prevDataValue == 0 || prevDataValue == null) && !this.isDefaultQuery) {
1388
1394
  this.handleChange(value);
1389
1395
  this._onChange();
1390
1396
  }
@@ -2520,7 +2526,7 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2520
2526
  i0.ɵɵproperty("title", ctx_r4.hint ? ctx_r4.hint : opt_r3.key)("name", "wm-switch-" + opt_r3.key)("title", (ctx_r4.hint == null ? null : ctx_r4.hint[opt_r3.index - 1]) ? ctx_r4.hint[opt_r3.index - 1] : (ctx_r4.hint == null ? null : ctx_r4.hint[0]) ? ctx_r4.hint[0] : opt_r3[ctx_r4.displayfield] || opt_r3.label)("ngClass", i0.ɵɵpureFunction2(8, _c2$3, opt_r3.selected, ctx_r4.disabled));
2521
2527
  i0.ɵɵattribute("aria-pressed", opt_r3.selected ? true : false);
2522
2528
  i0.ɵɵadvance();
2523
- i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
2529
+ i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && (!opt_r3.selected || !ctx_r4.checkediconclass));
2524
2530
  i0.ɵɵadvance();
2525
2531
  i0.ɵɵproperty("ngIf", opt_r3.selected && ctx_r4.checkediconclass);
2526
2532
  i0.ɵɵadvance();
@@ -2695,7 +2701,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2695
2701
  args: [{ selector: '[wmSwitch]', providers: [
2696
2702
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2697
2703
  provideAsWidgetRef(SwitchComponent)
2698
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected && checkediconclass\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2704
+ ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [title]=\"hint?hint:opt.key\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [title]=\"hint?.[opt.index-1]?hint[opt.index-1]:(hint?.[0]?hint[0]:(opt[displayfield]||opt.label))\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && (!opt.selected||!checkediconclass)\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected && checkediconclass\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2699
2705
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2700
2706
  type: Inject,
2701
2707
  args: ['EXPLICIT_CONTEXT']