@magic-xpa/angular 4.1000.0-dev4100.32 → 4.1000.0-dev4100.321

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 (58) 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/magic-modal/base-magic-overlay-container.mjs +1 -1
  16. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +4 -18
  17. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +4 -4
  18. package/esm2020/src/ui/magic-root.component.mjs +4 -38
  19. package/esm2020/src/ui/mgerror.magic.component.mjs +9 -9
  20. package/esm2020/src/ui/router-container.magic.component.mjs +4 -4
  21. package/esm2020/src/ui/subform.magic.component.mjs +4 -4
  22. package/esm2020/src/ui/task-base.magic.component.mjs +8 -2
  23. package/fesm2015/magic-xpa-angular.mjs +116 -191
  24. package/fesm2015/magic-xpa-angular.mjs.map +1 -1
  25. package/fesm2020/magic-xpa-angular.mjs +116 -191
  26. package/fesm2020/magic-xpa-angular.mjs.map +1 -1
  27. package/package.json +8 -8
  28. package/src/services/table.magic.service.d.ts +2 -0
  29. package/src/services/task.magics.service.d.ts +1 -0
  30. package/src/ui/components/base-magic-alert.component.d.ts +1 -1
  31. package/src/ui/components/base-magic-confirm.component.d.ts +1 -1
  32. package/src/ui/components/magic-alert.component.d.ts +1 -1
  33. package/src/ui/components/magic-confirmation-box.component.d.ts +1 -1
  34. package/src/ui/directives/NonMagicControlDirective.d.ts +1 -1
  35. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +1 -1
  36. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +1 -1
  37. package/src/ui/directives/magic/combobox.magic.directive.d.ts +2 -1
  38. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +1 -1
  39. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +1 -1
  40. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +1 -1
  41. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +1 -1
  42. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +1 -1
  43. package/src/ui/directives/magic/row.magic.directive.d.ts +1 -1
  44. package/src/ui/directives/magic-focus.directive.d.ts +1 -1
  45. package/src/ui/directives/magic.directive.d.ts +2 -2
  46. package/src/ui/directives/magicViewContainerRef.directive.d.ts +1 -1
  47. package/src/ui/directives/mgformat.magic.directive.d.ts +1 -1
  48. package/src/ui/directives/range-validator.magic.directive.d.ts +1 -1
  49. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +1 -1
  50. package/src/ui/magic-modal/magic-overlay-container.d.ts +1 -1
  51. package/src/ui/magic-root.component.d.ts +1 -1
  52. package/src/ui/mgerror.magic.component.d.ts +1 -1
  53. package/src/ui/pipes/date.magic.pipe.d.ts +1 -1
  54. package/src/ui/pipes/time.magic.pipe.d.ts +1 -1
  55. package/src/ui/router-container.magic.component.d.ts +1 -1
  56. package/src/ui/subform.magic.component.d.ts +1 -1
  57. package/src/ui/task-base.magic.component.d.ts +2 -1
  58. 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) {
@@ -3602,14 +3555,14 @@ function SubformMagicComponent_ndc_dynamic_0_Template(rf, ctx) { if (rf & 1) {
3602
3555
  i0.ɵɵproperty("ndcDynamicComponent", ctx_r0.Component)("ndcDynamicInputs", ctx_r0.Parameters);
3603
3556
  } }
3604
3557
  class SubformMagicComponent {
3558
+ set magic(val) { this.id = val; }
3559
+ ;
3605
3560
  constructor(vcRef, mgSub) {
3606
3561
  this.vcRef = vcRef;
3607
3562
  this.mgSub = mgSub;
3608
3563
  this.component = null;
3609
3564
  this.component = (this.vcRef._hostLView).find(v => !isNullOrUndefined(v));
3610
3565
  }
3611
- set magic(val) { this.id = val; }
3612
- ;
3613
3566
  get Component() {
3614
3567
  return this.mgSub.mgGetComp(this.id);
3615
3568
  }
@@ -3622,7 +3575,7 @@ SubformMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SubformMagicCompone
3622
3575
  i0.ɵɵtemplate(0, SubformMagicComponent_ndc_dynamic_0_Template, 1, 2, "ndc-dynamic", 0);
3623
3576
  } if (rf & 2) {
3624
3577
  i0.ɵɵproperty("ngIf", ctx.Component);
3625
- } }, directives: [i1.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
3578
+ } }, dependencies: [i1.NgIf, i3.DynamicComponent, i3.DynamicIoDirective], encapsulation: 2 });
3626
3579
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubformMagicComponent, [{
3627
3580
  type: Component,
3628
3581
  args: [{
@@ -3663,13 +3616,6 @@ function ErrorMagicComponent_div_0_Template(rf, ctx) { if (rf & 1) {
3663
3616
  } }
3664
3617
  const _c1 = ["*"];
3665
3618
  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
3619
  set magic(val) {
3674
3620
  this.id = val;
3675
3621
  }
@@ -3683,6 +3629,13 @@ class ErrorMagicComponent {
3683
3629
  this.changeDetectorRef.detectChanges();
3684
3630
  }
3685
3631
  ;
3632
+ constructor(_task, mgService, changeDetectorRef) {
3633
+ this._task = _task;
3634
+ this.mgService = mgService;
3635
+ this.changeDetectorRef = changeDetectorRef;
3636
+ this.defaultDisplay = true;
3637
+ this.rowId = "0";
3638
+ }
3686
3639
  isEmpty(element) {
3687
3640
  const nodes = element.childNodes;
3688
3641
  for (let i = 0; i < nodes.length; i++) {
@@ -3725,7 +3678,7 @@ ErrorMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ErrorMagicComponent,
3725
3678
  i0.ɵɵtemplate(0, ErrorMagicComponent_div_0_Template, 5, 1, "div", 0);
3726
3679
  } if (rf & 2) {
3727
3680
  i0.ɵɵproperty("ngIf", ctx.HasErrors(ctx.id));
3728
- } }, directives: [i1.NgIf], encapsulation: 2 });
3681
+ } }, dependencies: [i1.NgIf], encapsulation: 2 });
3729
3682
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorMagicComponent, [{
3730
3683
  type: Component,
3731
3684
  args: [{
@@ -3778,10 +3731,18 @@ CheckboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: CheckboxMagicDirec
3778
3731
  class ComboboxMagicDirective {
3779
3732
  constructor(magicDirective) {
3780
3733
  this.magicDirective = magicDirective;
3734
+ this.magicDirective.task.refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c))).subscribe(value => {
3735
+ let command = value;
3736
+ if (command.Operation === HtmlProperties.ItemsList)
3737
+ this.onComboboxItemsListChanged();
3738
+ });
3781
3739
  }
3782
3740
  onChange($event) {
3783
3741
  this.magicDirective.task.onComboboxSelectionChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
3784
3742
  }
3743
+ onComboboxItemsListChanged() {
3744
+ this.magicDirective.task.refreshView();
3745
+ }
3785
3746
  }
3786
3747
  ComboboxMagicDirective.ɵfac = function ComboboxMagicDirective_Factory(t) { return new (t || ComboboxMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective)); };
3787
3748
  ComboboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: ComboboxMagicDirective, selectors: [["select", "magic", "", 3, "multiple", ""]], hostBindings: function ComboboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
@@ -3951,13 +3912,10 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
3951
3912
  i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
3952
3913
  i0.ɵɵadvance(3);
3953
3914
  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)}}"] });
3915
+ } }, 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
3916
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
3956
3917
  type: Component,
3957
- args: [{
3958
- selector: 'magic-root',
3959
- providers: [],
3960
- template: `
3918
+ args: [{ selector: 'magic-root', providers: [], template: `
3961
3919
  <div #magicRoot>
3962
3920
  <ndc-dynamic
3963
3921
  *ngIf = "RootComponent !== null"
@@ -3976,38 +3934,7 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
3976
3934
  <ng-template #defaultSpinner>
3977
3935
  <div class="mgSpinnerClass"></div>
3978
3936
  </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
- }]
3937
+ `, 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
3938
  }], 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
3939
  type: Optional
4013
3940
  }] }]; }, { rootMagicElementRef: [{
@@ -4173,6 +4100,11 @@ DateValueAccessor.ɵdir = i0.ɵɵdefineDirective({ type: DateValueAccessor, sele
4173
4100
  }] }); })();
4174
4101
 
4175
4102
  class NonMagicControlDirective {
4103
+ set magic(val) {
4104
+ this.id = val;
4105
+ this.selector = 'NonMagicControl';
4106
+ }
4107
+ ;
4176
4108
  constructor(_task, element, renderer, vcRef) {
4177
4109
  this._task = _task;
4178
4110
  this.element = element;
@@ -4182,11 +4114,6 @@ class NonMagicControlDirective {
4182
4114
  this.eventsOnlyVal = false;
4183
4115
  this.htmlElement = this.element.nativeElement;
4184
4116
  }
4185
- set magic(val) {
4186
- this.id = val;
4187
- this.selector = 'NonMagicControl';
4188
- }
4189
- ;
4190
4117
  get task() {
4191
4118
  return this._task;
4192
4119
  }
@@ -4250,14 +4177,12 @@ class MagicModule {
4250
4177
  }
4251
4178
  MagicModule.ɵfac = function MagicModule_Factory(t) { return new (t || MagicModule)(); };
4252
4179
  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
- ]] });
4180
+ MagicModule.ɵinj = i0.ɵɵdefineInjector({ providers: [ConfirmationComponentsMagicProvider, OverlayContainerMagicProvider], imports: [CommonModule,
4181
+ FormsModule,
4182
+ ReactiveFormsModule,
4183
+ RouterModule,
4184
+ DynamicModule,
4185
+ HttpClientModule] });
4261
4186
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicModule, [{
4262
4187
  type: NgModule,
4263
4188
  args: [{