@magic-xpa/angular 4.1000.0-dev4100.398 → 4.1000.0-dev4100.400

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.
@@ -3227,6 +3227,7 @@ class MgformatMagicDirective {
3227
3227
  constructor(magicDir, _task) {
3228
3228
  this.magicDir = magicDir;
3229
3229
  this._task = _task;
3230
+ this.datePasteFlag = false;
3230
3231
  }
3231
3232
  ngAfterViewInit() {
3232
3233
  let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
@@ -3240,13 +3241,15 @@ class MgformatMagicDirective {
3240
3241
  onFocusEvent($event) {
3241
3242
  this.calculatePattern();
3242
3243
  }
3244
+ onPaste(event) {
3245
+ this.datePasteFlag = true;
3246
+ }
3243
3247
  onInputEvent(event) {
3244
- let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
3245
- if (control != null) {
3246
- let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
3247
- if (attr == StorageAttribute.DATE) {
3248
+ let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
3249
+ if (attr == StorageAttribute.DATE) {
3250
+ if (!this.datePasteFlag)
3248
3251
  this.dateMasking(event);
3249
- }
3252
+ this.datePasteFlag = false;
3250
3253
  }
3251
3254
  this.calculatePattern();
3252
3255
  }
@@ -3255,105 +3258,142 @@ class MgformatMagicDirective {
3255
3258
  let cursorPos = event.target.selectionStart;
3256
3259
  const separator = this._task.mgInputDateFormat.includes('/') ? '/' : '-';
3257
3260
  if (cursorPos >= input.value.length) {
3258
- const value = input.value.replace(/[^a-zA-Z0-9]/g, '');
3261
+ const value = input.value.replace(/[^a-zA-Z0-9/-]/g, '');
3259
3262
  if (this._task.mgInputDateFormat == "dd/MM/yyyy" || this._task.mgInputDateFormat == "MM/dd/yyyy" || this._task.mgInputDateFormat == "dd-MM-yyyy" || this._task.mgInputDateFormat == "MM-dd-yyyy") {
3260
- if (value.length <= 2) {
3261
- input.value = value;
3262
- }
3263
- else if (value.length <= 4) {
3264
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
3265
- }
3266
- else {
3267
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 8)}`;
3268
- }
3263
+ if (value.length == 1 && value[0] == separator)
3264
+ input.value = '01' + separator;
3265
+ else if (value.length == 2 && value[1] == separator)
3266
+ input.value = 0 + value;
3267
+ else if (value.length == 3 && value[2] != separator)
3268
+ input.value = value.slice(0, 2) + separator + value.slice(2);
3269
+ else if (value.length == 4 && value[3] == separator)
3270
+ input.value = value.slice(0, 3) + '01' + value.slice(3);
3271
+ else if (value.length == 5 && value[4] == separator)
3272
+ input.value = value.slice(0, 3) + '0' + value.slice(3);
3273
+ else if (value.length == 6 && value[5] != separator)
3274
+ input.value = value.slice(0, 5) + separator + value.slice(5);
3275
+ else if (value.length >= 10)
3276
+ input.value = value.slice(0, 10);
3269
3277
  }
3270
3278
  else if (this._task.mgInputDateFormat == "yyyy/MM/dd" || this._task.mgInputDateFormat == "yyyy/dd/MM" || this._task.mgInputDateFormat == "yyyy-MM-dd" || this._task.mgInputDateFormat == "yyyy-dd-MM") {
3271
- if (value.length <= 4) {
3272
- input.value = value;
3273
- }
3274
- else if (value.length <= 6) {
3275
- input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4)}`;
3276
- }
3277
- else {
3278
- input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4, 6)}` + separator + `${value.slice(6, 8)}`;
3279
- }
3279
+ if (value.length == 1 && value[0] == separator)
3280
+ input.value = '0000' + separator;
3281
+ else if (value.length == 2 && value[1] == separator)
3282
+ input.value = '000' + value.slice(0);
3283
+ else if (value.length == 3 && value[2] == separator)
3284
+ input.value = '00' + value.slice(0);
3285
+ else if (value.length == 4 && value[3] == separator)
3286
+ input.value = '0' + value.slice(0);
3287
+ else if (value.length == 5 && value[4] != separator)
3288
+ input.value = value.slice(0, 4) + separator + value.slice(4);
3289
+ else if (value.length == 6 && value[5] == separator)
3290
+ input.value = value.slice(0, 5) + '01' + value.slice(5);
3291
+ else if (value.length == 7 && value[6] == separator)
3292
+ input.value = value.slice(0, 5) + '0' + value.slice(5);
3293
+ else if (value.length == 8 && value[7] != separator)
3294
+ input.value = value.slice(0, 7) + separator + value.slice(7);
3295
+ else if (value.length >= 10)
3296
+ input.value = value.slice(0, 10);
3280
3297
  }
3281
3298
  else if (this._task.mgInputDateFormat == "dd/MM/yy" || this._task.mgInputDateFormat == "yy/MM/dd" || this._task.mgInputDateFormat == "MM/dd/yy" || this._task.mgInputDateFormat == "yy/dd/MM" || this._task.mgInputDateFormat == "dd-MM-yy" || this._task.mgInputDateFormat == "yy-MM-dd" || this._task.mgInputDateFormat == "MM-dd-yy" || this._task.mgInputDateFormat == "yy-dd-MM") {
3282
- if (value.length <= 2) {
3283
- input.value = value;
3284
- }
3285
- else if (value.length <= 4) {
3286
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
3287
- }
3288
- else {
3289
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 6)}`;
3290
- }
3299
+ if (value.length == 1 && value[0] == separator)
3300
+ input.value = '01' + separator;
3301
+ else if (value.length == 2 && value[1] == separator)
3302
+ input.value = 0 + value;
3303
+ else if (value.length == 3 && value[2] != separator)
3304
+ input.value = value.slice(0, 2) + separator + value.slice(2);
3305
+ else if (value.length == 4 && value[3] == separator)
3306
+ input.value = value.slice(0, 3) + '01' + value.slice(3);
3307
+ else if (value.length == 5 && value[4] == separator)
3308
+ input.value = value.slice(0, 3) + '0' + value.slice(3);
3309
+ else if (value.length == 6 && value[5] != separator)
3310
+ input.value = value.slice(0, 5) + separator + value.slice(5);
3311
+ else if (value.length >= 8)
3312
+ input.value = value.slice(0, 8);
3291
3313
  }
3292
3314
  else if (this._task.mgInputDateFormat == "dd/MMM/yy" || this._task.mgInputDateFormat == "dd-MMM-yy") {
3293
- if (value.length <= 2) {
3294
- input.value = value;
3295
- }
3296
- else if (value.length <= 5) {
3297
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
3298
- }
3299
- else {
3300
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 5)}` + separator + `${value.slice(5, 7)}`;
3301
- }
3315
+ if (value.length == 1 && value[0] == separator)
3316
+ input.value = '01' + separator;
3317
+ else if (value.length == 2 && value[1] == separator)
3318
+ input.value = 0 + value;
3319
+ else if (value.length == 3 && value[2] != separator)
3320
+ input.value = value.slice(0, 2) + separator + value.slice(2);
3321
+ else if (value.length == 7 && value[6] != separator)
3322
+ input.value = value.slice(0, 6) + separator + value.slice(6);
3323
+ else if (value.length >= 9)
3324
+ input.value = value.slice(0, 9);
3302
3325
  }
3303
3326
  else if (this._task.mgInputDateFormat == "dd/MMM/yyyy" || this._task.mgInputDateFormat == "dd-MMM-yyyy") {
3304
- if (value.length <= 2) {
3305
- input.value = value;
3306
- }
3307
- else if (value.length <= 5) {
3308
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
3309
- }
3310
- else {
3311
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 5)}` + separator + `${value.slice(5, 9)}`;
3312
- }
3327
+ if (value.length == 1 && value[0] == separator)
3328
+ input.value = '01' + separator;
3329
+ else if (value.length == 2 && value[1] == separator)
3330
+ input.value = 0 + value;
3331
+ else if (value.length == 3 && value[2] != separator)
3332
+ input.value = value.slice(0, 2) + separator + value.slice(2);
3333
+ else if (value.length == 7 && value[6] != separator)
3334
+ input.value = value.slice(0, 6) + separator + value.slice(6);
3335
+ else if (value.length >= 11)
3336
+ input.value = value.slice(0, 11);
3313
3337
  }
3314
3338
  else if (this._task.mgInputDateFormat == "yy/dd/MMM" || this._task.mgInputDateFormat == "yy-dd-MMM") {
3315
- if (value.length <= 2) {
3316
- input.value = value;
3317
- }
3318
- else if (value.length <= 4) {
3319
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
3320
- }
3321
- else {
3322
- input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 7)}`;
3323
- }
3339
+ if (value.length == 1 && value[0] == separator)
3340
+ input.value = '00' + separator;
3341
+ else if (value.length == 2 && value[1] == separator)
3342
+ input.value = 0 + value;
3343
+ else if (value.length == 3 && value[2] != separator)
3344
+ input.value = value.slice(0, 2) + separator + value.slice(2);
3345
+ else if (value.length == 4 && value[3] == separator)
3346
+ input.value = value.slice(0, 3) + '01' + value.slice(3);
3347
+ else if (value.length == 5 && value[4] == separator)
3348
+ input.value = value.slice(0, 3) + '0' + value.slice(3);
3349
+ else if (value.length == 6 && value[5] != separator)
3350
+ input.value = value.slice(0, 5) + separator + value.slice(5);
3351
+ else if (value.length >= 9)
3352
+ input.value = value.slice(0, 9);
3324
3353
  }
3325
3354
  else if (this._task.mgInputDateFormat == "yyyy/dd/MMM" || this._task.mgInputDateFormat == "yyyy-dd-MMM") {
3326
- if (value.length <= 4) {
3327
- input.value = value;
3328
- }
3329
- else if (value.length <= 6) {
3330
- input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4)}`;
3331
- }
3332
- else {
3333
- input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4, 6)}` + separator + `${value.slice(6, 9)}`;
3334
- }
3355
+ if (value.length == 1 && value[0] == separator)
3356
+ input.value = '0000' + separator;
3357
+ else if (value.length == 2 && value[1] == separator)
3358
+ input.value = '000' + value.slice(0);
3359
+ else if (value.length == 3 && value[2] == separator)
3360
+ input.value = '00' + value.slice(0);
3361
+ else if (value.length == 4 && value[3] == separator)
3362
+ input.value = '0' + value.slice(0);
3363
+ else if (value.length == 5 && value[4] != separator)
3364
+ input.value = value.slice(0, 4) + separator + value.slice(4);
3365
+ else if (value.length == 6 && value[5] == separator)
3366
+ input.value = value.slice(0, 5) + '01' + value.slice(5);
3367
+ else if (value.length == 7 && value[6] == separator)
3368
+ input.value = value.slice(0, 5) + '0' + value.slice(5);
3369
+ else if (value.length == 8 && value[7] != separator)
3370
+ input.value = value.slice(0, 7) + separator + value.slice(7);
3371
+ else if (value.length >= 11)
3372
+ input.value = value.slice(0, 11);
3335
3373
  }
3336
3374
  else if (this._task.mgInputDateFormat == "MMM/dd/yy" || this._task.mgInputDateFormat == "MMM-dd-yy") {
3337
- if (value.length <= 3) {
3338
- input.value = value;
3339
- }
3340
- else if (value.length <= 5) {
3341
- input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3)}`;
3342
- }
3343
- else {
3344
- input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3, 5)}` + separator + `${value.slice(5, 7)}`;
3345
- }
3375
+ if (value.length == 4 && value[3] != separator)
3376
+ input.value = value.slice(0, 3) + separator + value.slice(3);
3377
+ else if (value.length == 5 && value[4] == separator)
3378
+ input.value = value.slice(0, 4) + '01' + value.slice(4);
3379
+ else if (value.length == 6 && value[5] == separator)
3380
+ input.value = value.slice(0, 4) + '0' + value.slice(4);
3381
+ else if (value.length == 7 && value[6] != separator)
3382
+ input.value = value.slice(0, 6) + separator + value.slice(6);
3383
+ else if (value.length >= 9)
3384
+ input.value = value.slice(0, 9);
3346
3385
  }
3347
3386
  else if (this._task.mgInputDateFormat == "MMM/dd/yyyy" || this._task.mgInputDateFormat == "MMM-dd-yyyy") {
3348
- if (value.length <= 3) {
3349
- input.value = value;
3350
- }
3351
- else if (value.length <= 5) {
3352
- input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3)}`;
3353
- }
3354
- else {
3355
- input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3, 5)}` + separator + `${value.slice(5, 9)}`;
3356
- }
3387
+ if (value.length == 4 && value[3] != separator)
3388
+ input.value = value.slice(0, 3) + separator + value.slice(3);
3389
+ else if (value.length == 5 && value[4] == separator)
3390
+ input.value = value.slice(0, 4) + '01' + value.slice(4);
3391
+ else if (value.length == 6 && value[5] == separator)
3392
+ input.value = value.slice(0, 4) + '0' + value.slice(4);
3393
+ else if (value.length == 7 && value[6] != separator)
3394
+ input.value = value.slice(0, 6) + separator + value.slice(6);
3395
+ else if (value.length >= 11)
3396
+ input.value = value.slice(0, 11);
3357
3397
  }
3358
3398
  }
3359
3399
  if (cursorPos < input.value.length && input.value.length > this._task.mgInputDateFormat.length) {
@@ -3559,7 +3599,7 @@ class MgformatMagicDirective {
3559
3599
  }
3560
3600
  MgformatMagicDirective.ɵfac = function MgformatMagicDirective_Factory(t) { return new (t || MgformatMagicDirective)(i0.ɵɵdirectiveInject(MagicDirective), i0.ɵɵdirectiveInject(TaskMagicService)); };
3561
3601
  MgformatMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MgformatMagicDirective, selectors: [["", "mgFormat", ""]], hostBindings: function MgformatMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
3562
- i0.ɵɵlistener("focus", function MgformatMagicDirective_focus_HostBindingHandler($event) { return ctx.onFocusEvent($event); })("input", function MgformatMagicDirective_input_HostBindingHandler($event) { return ctx.onInputEvent($event); })("change", function MgformatMagicDirective_change_HostBindingHandler($event) { return ctx.onChangeEvent($event); });
3602
+ i0.ɵɵlistener("focus", function MgformatMagicDirective_focus_HostBindingHandler($event) { return ctx.onFocusEvent($event); })("paste", function MgformatMagicDirective_paste_HostBindingHandler($event) { return ctx.onPaste($event); })("input", function MgformatMagicDirective_input_HostBindingHandler($event) { return ctx.onInputEvent($event); })("change", function MgformatMagicDirective_change_HostBindingHandler($event) { return ctx.onChangeEvent($event); });
3563
3603
  } } });
3564
3604
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgformatMagicDirective, [{
3565
3605
  type: Directive,
@@ -3569,6 +3609,9 @@ MgformatMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MgformatMagicDirec
3569
3609
  }], function () { return [{ type: MagicDirective }, { type: TaskMagicService }]; }, { onFocusEvent: [{
3570
3610
  type: HostListener,
3571
3611
  args: ['focus', ['$event']]
3612
+ }], onPaste: [{
3613
+ type: HostListener,
3614
+ args: ['paste', ['$event']]
3572
3615
  }], onInputEvent: [{
3573
3616
  type: HostListener,
3574
3617
  args: ['input', ['$event']]