@magic-xpa/angular 4.1000.0-dev4100.33 → 4.1000.0-dev4100.331

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 (59) hide show
  1. package/esm2020/src/magic.core.module.mjs +7 -9
  2. package/esm2020/src/services/accessor.magic.service.mjs +25 -3
  3. package/esm2020/src/services/magic-color.service.mjs +4 -4
  4. package/esm2020/src/services/subform.magic.service.mjs +1 -1
  5. package/esm2020/src/services/table.magic.service.mjs +5 -2
  6. package/esm2020/src/services/task.magics.service.mjs +18 -5
  7. package/esm2020/src/ui/components/base-magic-alert.component.mjs +3 -7
  8. package/esm2020/src/ui/components/base-magic-confirm.component.mjs +3 -7
  9. package/esm2020/src/ui/components/magic-alert.component.mjs +3 -35
  10. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +3 -39
  11. package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +6 -6
  12. package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +11 -1
  13. package/esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs +3 -3
  14. package/esm2020/src/ui/directives/magic.directive.mjs +11 -11
  15. package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +46 -2
  16. package/esm2020/src/ui/magic-modal/base-magic-overlay-container.mjs +1 -1
  17. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +4 -18
  18. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +4 -4
  19. package/esm2020/src/ui/magic-root.component.mjs +4 -38
  20. package/esm2020/src/ui/mgerror.magic.component.mjs +9 -9
  21. package/esm2020/src/ui/router-container.magic.component.mjs +4 -4
  22. package/esm2020/src/ui/subform.magic.component.mjs +4 -4
  23. package/esm2020/src/ui/task-base.magic.component.mjs +8 -2
  24. package/fesm2015/magic-xpa-angular.mjs +161 -192
  25. package/fesm2015/magic-xpa-angular.mjs.map +1 -1
  26. package/fesm2020/magic-xpa-angular.mjs +161 -192
  27. package/fesm2020/magic-xpa-angular.mjs.map +1 -1
  28. package/package.json +8 -8
  29. package/src/services/table.magic.service.d.ts +2 -0
  30. package/src/services/task.magics.service.d.ts +1 -0
  31. package/src/ui/components/base-magic-alert.component.d.ts +1 -1
  32. package/src/ui/components/base-magic-confirm.component.d.ts +1 -1
  33. package/src/ui/components/magic-alert.component.d.ts +1 -1
  34. package/src/ui/components/magic-confirmation-box.component.d.ts +1 -1
  35. package/src/ui/directives/NonMagicControlDirective.d.ts +1 -1
  36. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +1 -1
  37. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +1 -1
  38. package/src/ui/directives/magic/combobox.magic.directive.d.ts +2 -1
  39. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +1 -1
  40. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +1 -1
  41. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +1 -1
  42. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +1 -1
  43. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +1 -1
  44. package/src/ui/directives/magic/row.magic.directive.d.ts +1 -1
  45. package/src/ui/directives/magic-focus.directive.d.ts +1 -1
  46. package/src/ui/directives/magic.directive.d.ts +2 -2
  47. package/src/ui/directives/magicViewContainerRef.directive.d.ts +1 -1
  48. package/src/ui/directives/mgformat.magic.directive.d.ts +3 -2
  49. package/src/ui/directives/range-validator.magic.directive.d.ts +1 -1
  50. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +1 -1
  51. package/src/ui/magic-modal/magic-overlay-container.d.ts +1 -1
  52. package/src/ui/magic-root.component.d.ts +1 -1
  53. package/src/ui/mgerror.magic.component.d.ts +1 -1
  54. package/src/ui/pipes/date.magic.pipe.d.ts +1 -1
  55. package/src/ui/pipes/time.magic.pipe.d.ts +1 -1
  56. package/src/ui/router-container.magic.component.d.ts +1 -1
  57. package/src/ui/subform.magic.component.d.ts +1 -1
  58. package/src/ui/task-base.magic.component.d.ts +2 -1
  59. package/magic-xpa-angular.d.ts +0 -2
@@ -596,6 +596,9 @@ SubformMagicService.ɵprov = i0.ɵɵdefineInjectable({ token: SubformMagicServic
596
596
  }], function () { return [{ type: TaskMagicService }, { type: i2.ActivatedRoute }, { type: ComponentListMagicService }, { type: CommandsCollectorMagicService }, { type: i2.Router }, { type: RouterCommandsMagicService }, { type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.Compiler }]; }, null); })();
597
597
 
598
598
  class RouterContainerMagicComponent {
599
+ static get LastRoute() {
600
+ return RouterContainerMagicComponent.lastRoute;
601
+ }
599
602
  constructor(activatedRoute, router, magic, containerTaskService, componentFactoryResolver, viewContainerRef, componentList, pendingCommandsCollector, routerCommandsMagicService) {
600
603
  this.activatedRoute = activatedRoute;
601
604
  this.router = router;
@@ -609,9 +612,6 @@ class RouterContainerMagicComponent {
609
612
  this.componentRef = null;
610
613
  this.parentMgSubformService = null;
611
614
  }
612
- static get LastRoute() {
613
- return RouterContainerMagicComponent.lastRoute;
614
- }
615
615
  ngOnInit() {
616
616
  let subformMagicService = SubformMagicService.currentCallerMgSubformServiceRef;
617
617
  let currentActiveRoute = SubformMagicService.getRelativeRoute(this.activatedRoute);
@@ -820,7 +820,7 @@ const _c1$1 = ["modalForeground"];
820
820
  function MagicOverlayContainer_button_2_Template(rf, ctx) { if (rf & 1) {
821
821
  const _r5 = i0.ɵɵgetCurrentView();
822
822
  i0.ɵɵelementStart(0, "button", 8);
823
- i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.OnClose(); });
823
+ i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.OnClose()); });
824
824
  i0.ɵɵtext(1, "X");
825
825
  i0.ɵɵelementEnd();
826
826
  } }
@@ -829,7 +829,7 @@ function MagicOverlayContainer_div_5_Template(rf, ctx) { if (rf & 1) {
829
829
  i0.ɵɵelementStart(0, "div", 9, 10);
830
830
  i0.ɵɵtext(2);
831
831
  i0.ɵɵelementStart(3, "button", 11);
832
- i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.OnClose(); });
832
+ i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.OnClose()); });
833
833
  i0.ɵɵtext(4, "X");
834
834
  i0.ɵɵelementEnd()();
835
835
  } if (rf & 2) {
@@ -934,7 +934,7 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
934
934
  i0.ɵɵproperty("ngIf", ctx.getShowTitleBar());
935
935
  i0.ɵɵadvance(1);
936
936
  i0.ɵɵproperty("ngStyle", ctx.getClientAreaStyles());
937
- } }, directives: [i1.NgIf, i1.NgStyle, MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}"] });
937
+ } }, dependencies: [i1.NgIf, i1.NgStyle, MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}"] });
938
938
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
939
939
  type: Component,
940
940
  args: [{ selector: 'app-magic-overlay-container', template: `
@@ -988,14 +988,10 @@ class BaseMagicConfirmComponent {
988
988
  }
989
989
  }
990
990
  BaseMagicConfirmComponent.ɵfac = function BaseMagicConfirmComponent_Factory(t) { return new (t || BaseMagicConfirmComponent)(); };
991
- BaseMagicConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BaseMagicConfirmComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, decls: 0, vars: 0, template: function BaseMagicConfirmComponent_Template(rf, ctx) { }, styles: [""] });
991
+ BaseMagicConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BaseMagicConfirmComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, decls: 0, vars: 0, template: function BaseMagicConfirmComponent_Template(rf, ctx) { } });
992
992
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicConfirmComponent, [{
993
993
  type: Component,
994
- args: [{
995
- selector: 'mg-base-alert',
996
- template: '',
997
- styles: ['']
998
- }]
994
+ args: [{ selector: 'mg-base-alert', template: '' }]
999
995
  }], null, { title: [{
1000
996
  type: Input
1001
997
  }], message: [{
@@ -1013,14 +1009,10 @@ class BaseMagicAlertComponent {
1013
1009
  }
1014
1010
  }
1015
1011
  BaseMagicAlertComponent.ɵfac = function BaseMagicAlertComponent_Factory(t) { return new (t || BaseMagicAlertComponent)(); };
1016
- BaseMagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BaseMagicAlertComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, decls: 0, vars: 0, template: function BaseMagicAlertComponent_Template(rf, ctx) { }, styles: [""] });
1012
+ BaseMagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BaseMagicAlertComponent, selectors: [["mg-base-alert"]], inputs: { title: "title", message: "message" }, outputs: { onClose: "onClose" }, decls: 0, vars: 0, template: function BaseMagicAlertComponent_Template(rf, ctx) { } });
1017
1013
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMagicAlertComponent, [{
1018
1014
  type: Component,
1019
- args: [{
1020
- selector: 'mg-base-alert',
1021
- template: '',
1022
- styles: ['']
1023
- }]
1015
+ args: [{ selector: 'mg-base-alert', template: '' }]
1024
1016
  }], null, { title: [{
1025
1017
  type: Input
1026
1018
  }], message: [{
@@ -1128,12 +1120,10 @@ MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlay
1128
1120
  i0.ɵɵelementEnd();
1129
1121
  i0.ɵɵelement(6, "div", 5);
1130
1122
  i0.ɵɵelementEnd();
1131
- } }, directives: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
1123
+ } }, dependencies: [MagicFocusDirective, MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
1132
1124
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
1133
1125
  type: Component,
1134
- args: [{
1135
- selector: 'app-magic-overlay-container-wrapper',
1136
- template: `
1126
+ args: [{ selector: 'app-magic-overlay-container-wrapper', template: `
1137
1127
  <div>
1138
1128
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" magicFocus></div>
1139
1129
  <div class="overlay-container-wrapper-background" #overlayContainerWrapper>
@@ -1142,19 +1132,7 @@ MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlay
1142
1132
  </div>
1143
1133
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
1144
1134
  </div>
1145
- `,
1146
- styles: [`
1147
- .overlay-container-wrapper-background {
1148
- /* modal background fixed across whole screen */
1149
- position: fixed;
1150
- top: 0;
1151
- z-index: 999;
1152
- right: 0;
1153
- bottom: 0;
1154
- left: 0;
1155
- }
1156
- `]
1157
- }]
1135
+ `, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
1158
1136
  }], function () { return [{ type: ComponentListMagicService }, { type: MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.Compiler }]; }, { Component: [{
1159
1137
  type: Input
1160
1138
  }], Parameters: [{
@@ -1190,46 +1168,14 @@ MagicAlertComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicAlertComponent,
1190
1168
  } }, styles: [".mg-message-background[_ngcontent-%COMP%]{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button[_ngcontent-%COMP%]{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}"] });
1191
1169
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicAlertComponent, [{
1192
1170
  type: Component,
1193
- args: [{
1194
- selector: 'sample-magic-alert-component',
1195
- template: `<div>
1171
+ args: [{ selector: 'sample-magic-alert-component', template: `<div>
1196
1172
  <div class="mg-message-background">
1197
1173
  <h2> {{title}}</h2>
1198
1174
  <p>{{message}} </p>
1199
1175
 
1200
1176
  <button (click)="OnClose()">OK</button>
1201
1177
  </div>
1202
- </div>`,
1203
- styles: [`
1204
- .mg-message-background {
1205
- background-color: #F5F5F5;
1206
- text-align: center;
1207
- width: 40%;
1208
- font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
1209
- padding: 17px;
1210
- border-radius: 5px;
1211
- text-align: center;
1212
- margin-top: 10% ;
1213
- margin-left: auto;
1214
- margin-right: auto;
1215
- border: 1px solid gray;
1216
- }
1217
-
1218
- button {
1219
- background-color: #8CD4F5;
1220
- color: white;
1221
- border: none;
1222
- box-shadow: none;
1223
- font-size: 17px;
1224
- font-weight: 500;
1225
- -webkit-border-radius: 4px;
1226
- border-radius: 5px;
1227
- padding: 10px 32px;
1228
- margin: 26px 5px 0 5px;
1229
- cursor: pointer;
1230
- }
1231
- `]
1232
- }]
1178
+ </div>`, styles: [".mg-message-background{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}\n"] }]
1233
1179
  }], null, null); })();
1234
1180
 
1235
1181
  class MagicConfirmationBoxComponent extends BaseMagicConfirmComponent {
@@ -1257,9 +1203,7 @@ MagicConfirmationBoxComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicConfir
1257
1203
  } }, styles: [".mg-message-background[_ngcontent-%COMP%]{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button[_ngcontent-%COMP%]{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}button.cancel[_ngcontent-%COMP%]{background-color:#c1c1c1}"] });
1258
1204
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicConfirmationBoxComponent, [{
1259
1205
  type: Component,
1260
- args: [{
1261
- selector: 'sample-magic-confirmation-box',
1262
- template: `<div>
1206
+ args: [{ selector: 'sample-magic-confirmation-box', template: `<div>
1263
1207
  <div class="mg-message-background">
1264
1208
  <h2> {{title}}</h2>
1265
1209
  {{message}}
@@ -1269,41 +1213,7 @@ MagicConfirmationBoxComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicConfir
1269
1213
  <button (click)="OnClose(true)">OK</button>
1270
1214
  <button class="cancel" (click)="OnClose(false)">Cancel</button>
1271
1215
  </div>
1272
- </div>`,
1273
- styles: [`
1274
- .mg-message-background {
1275
- background-color: #F5F5F5;
1276
- text-align: center;
1277
- width: 40%;
1278
- font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
1279
- padding: 17px;
1280
- border-radius: 5px;
1281
- text-align: center;
1282
- margin-top: 10% ;
1283
- margin-left: auto;
1284
- margin-right: auto;
1285
- border: 1px solid gray;
1286
- }
1287
-
1288
- button {
1289
- background-color: #8CD4F5;
1290
- color: white;
1291
- border: none;
1292
- box-shadow: none;
1293
- font-size: 17px;
1294
- font-weight: 500;
1295
- -webkit-border-radius: 4px;
1296
- border-radius: 5px;
1297
- padding: 10px 32px;
1298
- margin: 26px 5px 0 5px;
1299
- cursor: pointer;
1300
- }
1301
-
1302
- button.cancel {
1303
- background-color: #C1C1C1;
1304
- }
1305
- `]
1306
- }]
1216
+ </div>`, styles: [".mg-message-background{background-color:#f5f5f5;width:40%;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;padding:17px;border-radius:5px;text-align:center;margin-top:10%;margin-left:auto;margin-right:auto;border:1px solid gray}button{background-color:#8cd4f5;color:#fff;border:none;box-shadow:none;font-size:17px;font-weight:500;border-radius:5px;padding:10px 32px;margin:26px 5px 0;cursor:pointer}button.cancel{background-color:#c1c1c1}\n"] }]
1307
1217
  }], null, null); })();
1308
1218
 
1309
1219
  class ConfirmationComponentsMagicProvider {
@@ -1569,6 +1479,7 @@ class TaskMagicService {
1569
1479
  this.OnSelectedRowChanged = new EventEmitter();
1570
1480
  this.customPropertiesSubject = new Subject();
1571
1481
  this.recordsCountChangeSubject = new Subject();
1482
+ this.mgLoadSubject = new Subject();
1572
1483
  this.oldPageSize = 0;
1573
1484
  this.Records.setGuiTopIndex(0);
1574
1485
  this.mgInputDateFormat = null;
@@ -1821,6 +1732,11 @@ class TaskMagicService {
1821
1732
  }
1822
1733
  }
1823
1734
  break;
1735
+ case CommandType.SET_CHUNK_SIZE:
1736
+ if (!isUndefined(command.number)) {
1737
+ this.tableService.setChunkSize(command.number);
1738
+ }
1739
+ break;
1824
1740
  case CommandType.SET_RECORDS_BEFORE_CURRENT_VIEW:
1825
1741
  this.updateRecordsBeforeCurrentView(command.number);
1826
1742
  break;
@@ -1848,7 +1764,8 @@ class TaskMagicService {
1848
1764
  break;
1849
1765
  case CommandType.SET_PROPERTY:
1850
1766
  this.handleSetProperty(command, isTableChild);
1851
- if (command.Operation == HtmlProperties.ReadOnly)
1767
+ if (command.Operation == HtmlProperties.ReadOnly ||
1768
+ command.Operation == HtmlProperties.ItemsList)
1852
1769
  this.refreshDom.next(command);
1853
1770
  break;
1854
1771
  case CommandType.PROP_SET_USER_PROPERTY:
@@ -1903,6 +1820,9 @@ class TaskMagicService {
1903
1820
  case CommandType.SET_FOCUS:
1904
1821
  this.refreshDom.next(command);
1905
1822
  break;
1823
+ case CommandType.SET_WC_IDLE:
1824
+ this.mgLoadSubject.next();
1825
+ break;
1906
1826
  }
1907
1827
  }
1908
1828
  customValidator(rowid, id) {
@@ -1961,7 +1881,10 @@ class TaskMagicService {
1961
1881
  return val;
1962
1882
  }
1963
1883
  case StorageAttribute.NUMERIC:
1964
- return +val;
1884
+ if (isUndefined(val))
1885
+ return val;
1886
+ else
1887
+ return (val != null) ? +val : null;
1965
1888
  default:
1966
1889
  return val;
1967
1890
  }
@@ -2098,10 +2021,10 @@ class TaskMagicService {
2098
2021
  mgOnRadioSelectionChanged(idx) {
2099
2022
  let result = this.getFormControl('0', idx);
2100
2023
  let guiEvent = getGuiEventObj('selectionchanged', idx, 0);
2101
- if (typeof result.value !== 'string')
2024
+ if (typeof result.value !== 'number')
2102
2025
  guiEvent.Value = result.value.index;
2103
2026
  else
2104
- guiEvent.Value = result.value;
2027
+ guiEvent.Value = result.value.toString();
2105
2028
  this.insertEvent(guiEvent);
2106
2029
  }
2107
2030
  close() {
@@ -2160,7 +2083,10 @@ class TableMagicService {
2160
2083
  refreshDataSource() {
2161
2084
  }
2162
2085
  getPageSize() {
2163
- return 10;
2086
+ return this.chunkSize;
2087
+ }
2088
+ setChunkSize(size) {
2089
+ this.chunkSize = size;
2164
2090
  }
2165
2091
  getMaxRowsInTable() {
2166
2092
  return this.task.Records.list.length;
@@ -2244,6 +2170,9 @@ const SYSTEM_BG = 4;
2244
2170
  const SYSTEM_FG_AND_SYSTEM_BG = 6;
2245
2171
  const TRANSPERENT_BG = 1;
2246
2172
  class MagicColorService {
2173
+ getColorFilePath() {
2174
+ return 'assets/' + this.colorFileName;
2175
+ }
2247
2176
  constructor(http, colorFile1 = 'clr_rnt.eng') {
2248
2177
  this.http = http;
2249
2178
  this.colorFileName = 'clr_rnt.eng';
@@ -2253,9 +2182,6 @@ class MagicColorService {
2253
2182
  else
2254
2183
  this.colorFileName = 'clr_rnt.eng';
2255
2184
  }
2256
- getColorFilePath() {
2257
- return 'assets/' + this.colorFileName;
2258
- }
2259
2185
  getColorData() {
2260
2186
  if (!this.colorsData) {
2261
2187
  this.http.get(this.getColorFilePath(), { responseType: 'text' }).subscribe(resp => {
@@ -2568,8 +2494,30 @@ class AccessorMagicService {
2568
2494
  let c = this.task.getFormControl(rowId, id);
2569
2495
  if (c.hasError('required'))
2570
2496
  return 'Control must be updated.';
2571
- if (c.hasError('pattern'))
2572
- return 'Required pattern is : ' + c.errors.pattern.requiredPattern;
2497
+ if (c.hasError('pattern')) {
2498
+ if (c.errors.pattern.actualValue < 0 && !c.errors.pattern.requiredPattern.includes('-'))
2499
+ return 'Value must be non-negative';
2500
+ if (c.errors.pattern.requiredPattern.includes('.')) {
2501
+ const numericFormat = Math.abs(c.errors.pattern.actualValue).toString().split('.')[0];
2502
+ const decimalFormat = Math.abs(c.errors.pattern.actualValue).toString().split('.')[1];
2503
+ const actualNumericLimit = c.errors.pattern.requiredPattern.match(/,(\d+)/)[1];
2504
+ const actualDecimalLimit = c.errors.pattern.requiredPattern.match(/(?:[^,]+,){2}(\d+)/)[1];
2505
+ if (numericFormat.length > actualNumericLimit || decimalFormat.length > actualDecimalLimit) {
2506
+ return "Numeric format is limited to " + actualNumericLimit + "." + actualDecimalLimit + " digits";
2507
+ }
2508
+ }
2509
+ else if (!c.errors.pattern.requiredPattern.includes('.') && !Number.isInteger(c.errors.pattern.actualValue)) {
2510
+ const actualNumericLimit = c.errors.pattern.requiredPattern.match(/,(\d+)/)[1];
2511
+ return "Numeric format is limited to " + actualNumericLimit + "." + 0 + " digits";
2512
+ }
2513
+ else {
2514
+ const numericFormat = Math.abs(c.errors.pattern.actualValue).toString();
2515
+ const actualNumericLimit = c.errors.pattern.requiredPattern.match(/,(\d+)/)[1];
2516
+ if (numericFormat.length > actualNumericLimit) {
2517
+ return "Numeric format is limited to " + actualNumericLimit + "." + 0 + " digits";
2518
+ }
2519
+ }
2520
+ }
2573
2521
  if (c.hasError('rangevalidator'))
2574
2522
  return c.errors.rangevalidator.errorMsg;
2575
2523
  if (c.hasError('maxlength'))
@@ -2705,6 +2653,9 @@ class TaskBaseMagicComponent {
2705
2653
  this.task.recordsCountChangeSubject.pipe().subscribe(value => {
2706
2654
  this.RecordsCountChanged(value);
2707
2655
  });
2656
+ this.task.mgLoadSubject.pipe().subscribe(value => {
2657
+ this.mgOnLoad();
2658
+ });
2708
2659
  }
2709
2660
  createFormControlsAccessor(formGroup) { }
2710
2661
  setInputDateFormat() { }
@@ -2712,11 +2663,13 @@ class TaskBaseMagicComponent {
2712
2663
  }
2713
2664
  RecordsCountChanged(recordsCount) {
2714
2665
  }
2666
+ mgOnLoad() {
2667
+ }
2715
2668
  ngAfterViewInit() {
2716
2669
  this.mgSub.init();
2717
2670
  }
2718
2671
  ngAfterContentChecked() {
2719
- if (this.task.oldPageSize != this.tableService.getPageSize()) {
2672
+ if (!isNullOrUndefined(this.tableService.getPageSize()) && this.task.oldPageSize != this.tableService.getPageSize()) {
2720
2673
  this.task.resize(this.tableService.getPageSize(), 0);
2721
2674
  this.task.oldPageSize = this.tableService.getPageSize();
2722
2675
  }
@@ -2792,6 +2745,16 @@ RowMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: RowMagicDirective, sele
2792
2745
  }] }); })();
2793
2746
 
2794
2747
  class MagicDirective {
2748
+ set magic(val) {
2749
+ this.id = val;
2750
+ this.selector = "magic";
2751
+ }
2752
+ ;
2753
+ set eventsOnly(val) {
2754
+ console.log("eventsOnly");
2755
+ this.eventsOnlyVal = true;
2756
+ }
2757
+ ;
2795
2758
  constructor(_task, element, renderer, vcRef, magicRow) {
2796
2759
  this._task = _task;
2797
2760
  this.element = element;
@@ -2804,16 +2767,6 @@ class MagicDirective {
2804
2767
  if (!(typeof magicRow === "undefined" || magicRow === null))
2805
2768
  this.rowId = magicRow.rowId;
2806
2769
  }
2807
- set magic(val) {
2808
- this.id = val;
2809
- this.selector = "magic";
2810
- }
2811
- ;
2812
- set eventsOnly(val) {
2813
- console.log("eventsOnly");
2814
- this.eventsOnlyVal = true;
2815
- }
2816
- ;
2817
2770
  get task() {
2818
2771
  return this._task;
2819
2772
  }
@@ -2989,11 +2942,11 @@ MagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MagicDirective, selectors:
2989
2942
  }] }); })();
2990
2943
 
2991
2944
  class NoControlMagicDirective extends MagicDirective {
2945
+ set magic(val) { this.id = val; this.selector = 'magicnc'; }
2946
+ ;
2992
2947
  constructor(_task, element, renderer, vcRef, magicRow) {
2993
2948
  super(_task, element, renderer, vcRef, magicRow);
2994
2949
  }
2995
- set magic(val) { this.id = val; this.selector = 'magicnc'; }
2996
- ;
2997
2950
  regEvents() {
2998
2951
  super.regEvents();
2999
2952
  if (this.htmlElement instanceof HTMLSelectElement) {
@@ -3283,9 +3236,53 @@ class MgformatMagicDirective {
3283
3236
  onFocusEvent($event) {
3284
3237
  this.calculatePattern();
3285
3238
  }
3286
- onInputEvent($event) {
3239
+ onInputEvent(event) {
3240
+ let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
3241
+ if (control != null) {
3242
+ let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
3243
+ if (attr == StorageAttribute.DATE) {
3244
+ this.dateMasking(event);
3245
+ }
3246
+ }
3287
3247
  this.calculatePattern();
3288
3248
  }
3249
+ dateMasking(event) {
3250
+ const input = event.target;
3251
+ const value = input.value.replace(/\D/g, '');
3252
+ if (this._task.mgInputDateFormat == "dd/MM/yyyy" || this._task.mgInputDateFormat == "MM/dd/yyyy") {
3253
+ if (value.length <= 2) {
3254
+ input.value = value;
3255
+ }
3256
+ else if (value.length <= 4) {
3257
+ input.value = `${value.slice(0, 2)}/${value.slice(2)}`;
3258
+ }
3259
+ else {
3260
+ input.value = `${value.slice(0, 2)}/${value.slice(2, 4)}/${value.slice(4, 8)}`;
3261
+ }
3262
+ }
3263
+ else if (this._task.mgInputDateFormat == "yyyy/MM/dd") {
3264
+ if (value.length <= 4) {
3265
+ input.value = value;
3266
+ }
3267
+ else if (value.length <= 6) {
3268
+ input.value = `${value.slice(0, 4)}/${value.slice(4)}`;
3269
+ }
3270
+ else {
3271
+ input.value = `${value.slice(0, 4)}/${value.slice(4, 6)}/${value.slice(6, 8)}`;
3272
+ }
3273
+ }
3274
+ else if (this._task.mgInputDateFormat == "dd/MM/yy" || this._task.mgInputDateFormat == "yy/MM/dd" || this._task.mgInputDateFormat == "MM/dd/yy") {
3275
+ if (value.length <= 2) {
3276
+ input.value = value;
3277
+ }
3278
+ else if (value.length <= 4) {
3279
+ input.value = `${value.slice(0, 2)}/${value.slice(2)}`;
3280
+ }
3281
+ else {
3282
+ input.value = `${value.slice(0, 2)}/${value.slice(2, 4)}/${value.slice(4, 6)}`;
3283
+ }
3284
+ }
3285
+ }
3289
3286
  onChangeEvent($event) {
3290
3287
  let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
3291
3288
  let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
@@ -3602,14 +3599,14 @@ function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
3602
3599
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
3603
3600
  } }
3604
3601
  class SubformMagicComponent {
3602
+ set magic(val) { this.id = val; }
3603
+ ;
3605
3604
  constructor(vcRef, mgSub) {
3606
3605
  this.vcRef = vcRef;
3607
3606
  this.mgSub = mgSub;
3608
3607
  this.component = null;
3609
3608
  this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
3610
3609
  }
3611
- set magic(val) { this.id = val; }
3612
- ;
3613
3610
  get Component() {
3614
3611
  return this.mgSub.mgGetComp(this.id);
3615
3612
  }
@@ -3622,7 +3619,7 @@ SubformMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SubformMagicCompone
3622
3619
  i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
3623
3620
  } if (rf & 2) {
3624
3621
  i0.ɵɵproperty("ngIf", ctx.Component);
3625
- } }, directives: [i1.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
3622
+ } }, dependencies: [i1.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
3626
3623
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
3627
3624
  type: Component,
3628
3625
  args: [{
@@ -3663,13 +3660,6 @@ function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
3663
3660
  } }
3664
3661
  const _c1 = ["*"];
3665
3662
  class ErrorMagicComponent {
3666
- constructor(_task, mgService, changeDetectorRef) {
3667
- this._task = _task;
3668
- this.mgService = mgService;
3669
- this.changeDetectorRef = changeDetectorRef;
3670
- this.defaultDisplay = true;
3671
- this.rowId = "0";
3672
- }
3673
3663
  set magic(val) {
3674
3664
  this.id = val;
3675
3665
  }
@@ -3683,6 +3673,13 @@ class ErrorMagicComponent {
3683
3673
  this.changeDetectorRef.detectChanges();
3684
3674
  }
3685
3675
  ;
3676
+ constructor(_task, mgService, changeDetectorRef) {
3677
+ this._task = _task;
3678
+ this.mgService = mgService;
3679
+ this.changeDetectorRef = changeDetectorRef;
3680
+ this.defaultDisplay = true;
3681
+ this.rowId = "0";
3682
+ }
3686
3683
  isEmpty(element) {
3687
3684
  const nodes = element.childNodes;
3688
3685
  for (let i = 0; i < nodes.length; i++) {
@@ -3725,7 +3722,7 @@ ErrorMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ErrorMagicComponent,
3725
3722
  i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 0);
3726
3723
  } if (rf & 2) {
3727
3724
  i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
3728
- } }, directives: [i1.NgIf], encapsulation: 2 });
3725
+ } }, dependencies: [i1.NgIf], encapsulation: 2 });
3729
3726
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
3730
3727
  type: Component,
3731
3728
  args: [{
@@ -3778,10 +3775,18 @@ CheckboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: CheckboxMagicDirec
3778
3775
  class ComboboxMagicDirective {
3779
3776
  constructor(magicDirective) {
3780
3777
  this.magicDirective = magicDirective;
3778
+ this.magicDirective.task.refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c))).subscribe(value => {
3779
+ let command = value;
3780
+ if (command.Operation === HtmlProperties.ItemsList)
3781
+ this.onComboboxItemsListChanged();
3782
+ });
3781
3783
  }
3782
3784
  onChange($event) {
3783
3785
  this.magicDirective.task.onComboboxSelectionChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
3784
3786
  }
3787
+ onComboboxItemsListChanged() {
3788
+ this.magicDirective.task.refreshView();
3789
+ }
3785
3790
  }
3786
3791
  ComboboxMagicDirective.ɵfac = function ComboboxMagicDirective_Factory(t) { return new (t || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
3787
3792
  ComboboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: ComboboxMagicDirective, selectors: [["select", "magic", "", 3, "multiple", ""]], hostBindings: function ComboboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
@@ -3951,13 +3956,10 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
3951
3956
  i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
3952
3957
  i0.ɵɵadvance(3);
3953
3958
  i0.ɵɵproperty("ngIf", ctx.showSpinner);
3954
- } }, directives: [i1.NgIf, i3.DynamicComponent, i3.DynamicIoDirective, MagicViewContainerRef, i1.NgTemplateOutlet], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
3959
+ } }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i3.DynamicComponent, i3.DynamicIoDirective, MagicViewContainerRef], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:_ngcontent-%COMP%_spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
3955
3960
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
3956
3961
  type: Component,
3957
- args: [{
3958
- selector: 'magic-root',
3959
- providers: [],
3960
- template: `
3962
+ args: [{ selector: 'magic-root', providers: [], template: `
3961
3963
  <div #magicRoot>
3962
3964
  <ndc-dynamic
3963
3965
  *ngIf = "RootComponent !== null"
@@ -3976,38 +3978,7 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
3976
3978
  <ng-template #defaultSpinner>
3977
3979
  <div class="mgSpinnerClass"></div>
3978
3980
  </ng-template>
3979
- `,
3980
- styles: [`
3981
- .mgSpinnerClass {
3982
- border: 10px solid #cccccc; /* Light grey */
3983
- border-top: 10px solid black; /* Blue */
3984
- border-radius: 50%;
3985
- position: fixed;
3986
- margin: auto;
3987
- top: 0;
3988
- right: 0;
3989
- bottom: 0;
3990
- left: 0;
3991
- width: 100px;
3992
- height: 100px;
3993
- animation: spin 2s linear infinite;
3994
- }
3995
- .spinner-background {
3996
- /* background fixed across whole screen */
3997
- position: fixed;
3998
- top: 0;
3999
- right: 0;
4000
- bottom: 0;
4001
- z-index: 1000;
4002
- left: 0;
4003
- opacity: 0.5;
4004
- }
4005
- @keyframes spin {
4006
- 0% { transform: rotate(0deg); }
4007
- 100% { transform: rotate(360deg); }
4008
- }
4009
- `]
4010
- }]
3981
+ `, styles: [".mgSpinnerClass{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
4011
3982
  }], function () { return [{ type: EngineMagicService }, { type: ComponentListMagicService }, { type: i0.ChangeDetectorRef }, { type: i1$1.Title }, { type: OverlayWindowService }, { type: i1$2.HttpClient }, { type: CommandsCollectorMagicService }, { type: ExitMagicService, decorators: [{
4012
3983
  type: Optional
4013
3984
  }] }]; }, { rootMagicElementRef: [{
@@ -4173,6 +4144,11 @@ DateValueAccessor.ɵdir = i0.ɵɵdefineDirective({ type: DateValueAccessor, sele
4173
4144
  }] }); })();
4174
4145
 
4175
4146
  class NonMagicControlDirective {
4147
+ set magic(val) {
4148
+ this.id = val;
4149
+ this.selector = 'NonMagicControl';
4150
+ }
4151
+ ;
4176
4152
  constructor(_task, element, renderer, vcRef) {
4177
4153
  this._task = _task;
4178
4154
  this.element = element;
@@ -4182,11 +4158,6 @@ class NonMagicControlDirective {
4182
4158
  this.eventsOnlyVal = false;
4183
4159
  this.htmlElement = this.element.nativeElement;
4184
4160
  }
4185
- set magic(val) {
4186
- this.id = val;
4187
- this.selector = 'NonMagicControl';
4188
- }
4189
- ;
4190
4161
  get task() {
4191
4162
  return this._task;
4192
4163
  }
@@ -4250,14 +4221,12 @@ class MagicModule {
4250
4221
  }
4251
4222
  MagicModule.ɵfac = function MagicModule_Factory(t) { return new (t || MagicModule)(); };
4252
4223
  MagicModule.ɵmod = i0.ɵɵdefineNgModule({ type: MagicModule });
4253
- MagicModule.ɵinj = i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider], imports: [[
4254
- CommonModule,
4255
- FormsModule,
4256
- ReactiveFormsModule,
4257
- RouterModule,
4258
- DynamicModule,
4259
- HttpClientModule
4260
- ]] });
4224
+ MagicModule.ɵinj = i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider], imports: [CommonModule,
4225
+ FormsModule,
4226
+ ReactiveFormsModule,
4227
+ RouterModule,
4228
+ DynamicModule,
4229
+ HttpClientModule] });
4261
4230
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicModule, [{
4262
4231
  type: NgModule,
4263
4232
  args: [{