@magic-xpa/angular 4.1000.0 → 4.1000.410-0.428
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.
- package/esm2020/index.mjs +1 -1
- package/esm2020/src/services/task.magics.service.mjs +13 -2
- package/esm2020/src/ui/GuiInteractiveExecutor.mjs +7 -2
- package/esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs +76 -7
- package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +34 -5
- package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +170 -2
- package/fesm2015/magic-xpa-angular.mjs +284 -13
- package/fesm2015/magic-xpa-angular.mjs.map +1 -1
- package/fesm2020/magic-xpa-angular.mjs +284 -13
- package/fesm2020/magic-xpa-angular.mjs.map +1 -1
- package/package.json +3 -3
- package/src/ui/directives/magic/checkbox.magic.directive.d.ts +15 -2
- package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +8 -2
- package/src/ui/directives/mgformat.magic.directive.d.ts +7 -0
@@ -1,19 +1,86 @@
|
|
1
|
-
import { Directive, HostListener } from '@angular/core';
|
1
|
+
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
|
2
2
|
import { MagicDirective } from '../magic.directive';
|
3
|
+
import { TaskMagicService } from "../../../services/task.magics.service";
|
4
|
+
import { getGuiEventObj } from "@magic-xpa/engine";
|
5
|
+
import { filter } from "rxjs/operators";
|
6
|
+
import { CommandType, HtmlProperties } from "@magic-xpa/gui";
|
3
7
|
import * as i0 from "@angular/core";
|
4
8
|
import * as i1 from "../magic.directive";
|
9
|
+
import * as i2 from "../../../services/task.magics.service";
|
5
10
|
export class CheckboxMagicDirective {
|
6
|
-
constructor(magicDirective) {
|
11
|
+
constructor(magicDirective, el, task) {
|
7
12
|
this.magicDirective = magicDirective;
|
13
|
+
this.el = el;
|
14
|
+
this.task = task;
|
15
|
+
this.threeState = false;
|
16
|
+
this.subscribeRefreshDom = null;
|
17
|
+
this.isIndeterminate = false;
|
8
18
|
}
|
9
19
|
onChange($event) {
|
10
|
-
|
20
|
+
if (this.threeState) {
|
21
|
+
this.handleThreeState();
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
ngOnInit() {
|
28
|
+
if (this.threeState) {
|
29
|
+
let guiEvent = getGuiEventObj("setAsThreeState", this.magicDirective.id, +this.magicDirective.rowId);
|
30
|
+
this.task.insertEvent(guiEvent);
|
31
|
+
this.el.nativeElement.indeterminate = this.isIndeterminate = this.task.getProperty(this.magicDirective.id, HtmlProperties.CheckBoxIndeterminate, this.magicDirective.rowId);
|
32
|
+
this.regUpdatesUI();
|
33
|
+
}
|
34
|
+
}
|
35
|
+
regUpdatesUI() {
|
36
|
+
this.subscribeRefreshDom = this.task
|
37
|
+
.refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c)))
|
38
|
+
.subscribe(a => {
|
39
|
+
let command = a;
|
40
|
+
try {
|
41
|
+
this.handleCommand(command);
|
42
|
+
}
|
43
|
+
catch (ex) {
|
44
|
+
console.dir(ex);
|
45
|
+
}
|
46
|
+
});
|
47
|
+
}
|
48
|
+
handleCommand(command) {
|
49
|
+
if (command.CommandType == CommandType.SET_PROPERTY &&
|
50
|
+
command.Operation == HtmlProperties.CheckBoxIndeterminate) {
|
51
|
+
this.isIndeterminate = this.el.nativeElement.indeterminate = command.obj1;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
handleThreeState() {
|
55
|
+
let value = '';
|
56
|
+
let prevCheckedValue = this.task.getValue(this.magicDirective.id, this.magicDirective.rowId);
|
57
|
+
const checkbox = this.el.nativeElement;
|
58
|
+
if (this.isIndeterminate) {
|
59
|
+
checkbox.checked = false;
|
60
|
+
checkbox.indeterminate = false;
|
61
|
+
value = 'unchecked';
|
62
|
+
}
|
63
|
+
else if (prevCheckedValue) {
|
64
|
+
checkbox.checked = false;
|
65
|
+
checkbox.indeterminate = true;
|
66
|
+
value = 'indeterminate';
|
67
|
+
}
|
68
|
+
else if (!prevCheckedValue) {
|
69
|
+
checkbox.checked = true;
|
70
|
+
checkbox.indeterminate = false;
|
71
|
+
value = 'checked';
|
72
|
+
}
|
73
|
+
this.magicDirective.task.onCheckChanged(value, this.magicDirective.id, +this.magicDirective.rowId);
|
74
|
+
}
|
75
|
+
ngOnDestroy() {
|
76
|
+
if (this.subscribeRefreshDom !== null)
|
77
|
+
this.subscribeRefreshDom.unsubscribe();
|
11
78
|
}
|
12
79
|
}
|
13
|
-
CheckboxMagicDirective.ɵfac = function CheckboxMagicDirective_Factory(t) { return new (t || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
|
80
|
+
CheckboxMagicDirective.ɵfac = function CheckboxMagicDirective_Factory(t) { return new (t || CheckboxMagicDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.TaskMagicService)); };
|
14
81
|
CheckboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: CheckboxMagicDirective, selectors: [["input", "type", "checkbox", "magic", "", 3, "noFormControl", ""]], hostBindings: function CheckboxMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
15
82
|
i0.ɵɵlistener("change", function CheckboxMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
|
16
|
-
} } });
|
83
|
+
} }, inputs: { threeState: "threeState" } });
|
17
84
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxMagicDirective, [{
|
18
85
|
type: Directive,
|
19
86
|
args: [{
|
@@ -21,8 +88,10 @@ CheckboxMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: CheckboxMagicDirec
|
|
21
88
|
input[type=checkbox][magic]:not([noFormControl])
|
22
89
|
`,
|
23
90
|
}]
|
24
|
-
}], function () { return [{ type: i1.MagicDirective }]; }, {
|
91
|
+
}], function () { return [{ type: i1.MagicDirective }, { type: i0.ElementRef }, { type: i2.TaskMagicService }]; }, { threeState: [{
|
92
|
+
type: Input
|
93
|
+
}], onChange: [{
|
25
94
|
type: HostListener,
|
26
95
|
args: ['change', ['$event']]
|
27
96
|
}] }); })();
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy9jaGVja2JveC5tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGNBQWMsRUFBWSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsV0FBVyxFQUFjLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBWXZFLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBMEIsY0FBOEIsRUFDaEMsRUFBYyxFQUNaLElBQXNCO1FBRnRCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFSdkMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM3Qix3QkFBbUIsR0FBUSxJQUFJLENBQUM7UUFDaEMsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFRekMsQ0FBQztJQU1ELFFBQVEsQ0FBQyxNQUFNO1FBQ2IsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQ0k7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMs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LENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckcsQ0FBQztJQUtELFdBQVc7UUFDVCxJQUFHLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzs0RkEzRlUsc0JBQXNCOzJEQUF0QixzQkFBc0I7MkdBQXRCLG9CQUFnQjs7dUZBQWhCLHNCQUFzQjtjQU5sQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUNOOztDQUVIO2FBQ0E7eUhBR1UsVUFBVTtrQkFBbEIsS0FBSztZQWdCTixRQUFRO2tCQURQLFlBQVk7bUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYWdpY0RpcmVjdGl2ZSB9IGZyb20gJy4uL21hZ2ljLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50fSBmcm9tIFwiQG1hZ2ljLXhwYS9lbmdpbmVcIjtcclxuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge0NvbW1hbmRUeXBlLCBHdWlDb21tYW5kLCBIdG1sUHJvcGVydGllc30gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIERpcmVjdGl2ZSBmb3IgY2hlY2tib3hlcywgdG8gaGFuZGxlIHRoZSAnY2hhbmdlJyBldmVudFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6XHJcbiAgICBgXHJcbiAgICBpbnB1dFt0eXBlPWNoZWNrYm94XVttYWdpY106bm90KFtub0Zvcm1Db250cm9sXSlcclxuYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94TWFnaWNEaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoKSB0aHJlZVN0YXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVSZWZyZXNoRG9tOiBhbnkgPSBudWxsO1xyXG4gIHByaXZhdGUgaXNJbmRldGVybWluYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCAgICBwcm90ZWN0ZWQgbWFnaWNEaXJlY3RpdmU6IE1hZ2ljRGlyZWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdGFzazogVGFza01hZ2ljU2VydmljZSwpIHtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBDaGVja2JveCAnY2hhbmdlJyBldmVudCAtIHBhc3MgaXQgdG8gdGhlIE1hZ2ljIGVuZ2luZVxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXHJcbiAgb25DaGFuZ2UoJGV2ZW50KSB7XHJcbiAgICBpZih0aGlzLnRocmVlU3RhdGUpIHtcclxuICAgICAgdGhpcy5oYW5kbGVUaHJlZVN0YXRlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uQ2hlY2tDaGFuZ2VkKCRldmVudCwgdGhpcy5tYWdpY0RpcmVjdGl2ZS5pZCwgK3RoaXMubWFnaWNEaXJlY3RpdmUucm93SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgaWYodGhpcy50aHJlZVN0YXRlKXtcclxuICAgICAgbGV0IGd1aUV2ZW50OiBJR3VpRXZlbnQgPSBnZXRHdWlFdmVudE9iaihcInNldEFzVGhyZWVTdGF0ZVwiLCB0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkLCArdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCk7XHJcbiAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChndWlFdmVudCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbmRldGVybWluYXRlID0gdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLnRhc2suZ2V0UHJvcGVydHkodGhpcy5tYWdpY0RpcmVjdGl2ZS5pZCwgSHRtbFByb3BlcnRpZXMuQ2hlY2tCb3hJbmRldGVybWluYXRlLCB0aGlzLm1hZ2ljRGlyZWN0aXZlLnJvd0lkKTtcclxuXHJcbiAgICAgIHRoaXMucmVnVXBkYXRlc1VJKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZ1VwZGF0ZXNVSSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbSA9IHRoaXMudGFza1xyXG4gICAgICAucmVmcmVzaERvbS5waXBlKGZpbHRlcihjID0+IHRoaXMubWFnaWNEaXJlY3RpdmUuSXNTYW1lRWxlbWVudChjKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYSA9PiB7XHJcbiAgICAgICAgICBsZXQgY29tbWFuZDogR3VpQ29tbWFuZCA9IGE7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbW1hbmQoY29tbWFuZCk7XHJcbiAgICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmRpcihleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ29tbWFuZChjb21tYW5kOiBHdWlDb21tYW5kKXtcclxuICAgIGlmIChjb21tYW5kLkNvbW1hbmRUeXBlID09IENvbW1hbmRUeXBlLlNFVF9QUk9QRVJUWSAmJlxyXG4gICAgICBjb21tYW5kLk9wZXJhdGlvbiA9PSBIdG1sUHJvcGVydGllcy5DaGVja0JveEluZGV0ZXJtaW5hdGUpIHtcclxuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGNvbW1hbmQub2JqMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGhyZWVTdGF0ZSgpIHtcclxuXHJcbiAgICBsZXQgdmFsdWUgOiBzdHJpbmcgPSAnJztcclxuICAgIGxldCBwcmV2Q2hlY2tlZFZhbHVlID0gdGhpcy50YXNrLmdldFZhbHVlKHRoaXMubWFnaWNEaXJlY3RpdmUuaWQsIHRoaXMubWFnaWNEaXJlY3RpdmUucm93SWQpO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrYm94ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIGlmICh0aGlzLmlzSW5kZXRlcm1pbmF0ZSkge1xyXG4gICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIGNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgdmFsdWUgPSAndW5jaGVja2VkJztcclxuICAgIH0gZWxzZSBpZiAocHJldkNoZWNrZWRWYWx1ZSkge1xyXG4gICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIGNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICB2YWx1ZSA9ICdpbmRldGVybWluYXRlJztcclxuICAgIH0gZWxzZSBpZiAoIXByZXZDaGVja2VkVmFsdWUpIHtcclxuICAgICAgY2hlY2tib3guY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIGNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgdmFsdWUgPSAnY2hlY2tlZCc7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uQ2hlY2tDaGFuZ2VkKHZhbHVlLCB0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkLCArdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYW51cFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5zdWJzY3JpYmVSZWZyZXNoRG9tICE9PSBudWxsKVxyXG4gICAgICB0aGlzLnN1YnNjcmliZVJlZnJlc2hEb20udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuIl19
|
package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs
CHANGED
@@ -1,18 +1,44 @@
|
|
1
1
|
import { Directive, ElementRef, forwardRef, HostListener, Renderer2 } from "@angular/core";
|
2
2
|
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
3
|
+
import { MagicDirective } from "../../../magic.directive";
|
4
|
+
import { TaskMagicService } from "../../../../../services/task.magics.service";
|
5
|
+
import { Environment, LastFocusedManager } from "@magic-xpa/engine";
|
3
6
|
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "../../../magic.directive";
|
8
|
+
import * as i2 from "../../../../../services/task.magics.service";
|
4
9
|
export const DATE_VALUE_ACCESSOR = {
|
5
10
|
provide: NG_VALUE_ACCESSOR,
|
6
11
|
useExisting: forwardRef(() => DateValueAccessor),
|
7
12
|
multi: true
|
8
13
|
};
|
9
14
|
export class DateValueAccessor {
|
10
|
-
|
15
|
+
onBlurEvent(event) {
|
16
|
+
const century = Environment.Instance.GetCentury(LastFocusedManager.Instance.getCurrTask().getCompIdx());
|
17
|
+
let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
|
18
|
+
this.formatDateWithCentury(event.target.value, century, control);
|
19
|
+
}
|
20
|
+
constructor(renderer, elementRef, magicDir, _task) {
|
11
21
|
this.renderer = renderer;
|
12
22
|
this.elementRef = elementRef;
|
23
|
+
this.magicDir = magicDir;
|
24
|
+
this._task = _task;
|
13
25
|
this.onChange = (_) => { };
|
14
26
|
this.onTouched = () => { };
|
15
27
|
}
|
28
|
+
formatDateWithCentury(userInput, century, control) {
|
29
|
+
const separator = userInput.includes('/') ? '/' : "-";
|
30
|
+
let centuryVal = parseInt(century.toString().slice(0, 2));
|
31
|
+
if (userInput.length == 0)
|
32
|
+
return;
|
33
|
+
const dateArray = userInput.split(separator);
|
34
|
+
const day = Number(dateArray[2]);
|
35
|
+
const month = Number(dateArray[1]);
|
36
|
+
const year = Number(dateArray[0]);
|
37
|
+
let updatedYear = year.toString().length === 2 ? (year < century % 100 ? centuryVal + 1 : centuryVal) + '' + year :
|
38
|
+
year.toString().length === 1 ? (year < century % 100 ? centuryVal + 1 : centuryVal) + '0' + year :
|
39
|
+
year;
|
40
|
+
control.setValue(new Date(`${updatedYear}${separator}${month}${separator}${day}`));
|
41
|
+
}
|
16
42
|
writeValue(value) {
|
17
43
|
if (!value) {
|
18
44
|
this.renderer.setProperty(this.elementRef.nativeElement, "value", null);
|
@@ -32,9 +58,9 @@ export class DateValueAccessor {
|
|
32
58
|
this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled);
|
33
59
|
}
|
34
60
|
}
|
35
|
-
DateValueAccessor.ɵfac = function DateValueAccessor_Factory(t) { return new (t || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
61
|
+
DateValueAccessor.ɵfac = function DateValueAccessor_Factory(t) { return new (t || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.MagicDirective), i0.ɵɵdirectiveInject(i2.TaskMagicService)); };
|
36
62
|
DateValueAccessor.ɵdir = i0.ɵɵdefineDirective({ type: DateValueAccessor, selectors: [["", "dateInput", ""]], hostBindings: function DateValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
|
37
|
-
i0.ɵɵlistener("input", function DateValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.valueAsDate); })("blur", function DateValueAccessor_blur_HostBindingHandler() { return ctx.
|
63
|
+
i0.ɵɵlistener("input", function DateValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.valueAsDate); })("blur", function DateValueAccessor_blur_HostBindingHandler($event) { return ctx.onBlurEvent($event); });
|
38
64
|
} }, features: [i0.ɵɵProvidersFeature([DATE_VALUE_ACCESSOR])] });
|
39
65
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateValueAccessor, [{
|
40
66
|
type: Directive,
|
@@ -42,11 +68,14 @@ DateValueAccessor.ɵdir = i0.ɵɵdefineDirective({ type: DateValueAccessor, sele
|
|
42
68
|
selector: "[dateInput]",
|
43
69
|
providers: [DATE_VALUE_ACCESSOR]
|
44
70
|
}]
|
45
|
-
}], function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, { onChange: [{
|
71
|
+
}], function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.MagicDirective }, { type: i2.TaskMagicService }]; }, { onChange: [{
|
46
72
|
type: HostListener,
|
47
73
|
args: ["input", ["$event.target.valueAsDate"]]
|
48
74
|
}], onTouched: [{
|
49
75
|
type: HostListener,
|
50
76
|
args: ["blur", []]
|
77
|
+
}], onBlurEvent: [{
|
78
|
+
type: HostListener,
|
79
|
+
args: ['blur', ['$event']]
|
51
80
|
}] }); })();
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jdmEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy9mb3JtLWNvbnRyb2xzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2RhdGUuY3ZhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUVsRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBUTtJQUN0QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBY0YsTUFBTSxPQUFPLGlCQUFpQjtJQU9yQixXQUFXLENBQUMsS0FBSztRQUN0QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4RyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FB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RyxDQUFDLENBQUMsRUFBRSxDQUNsQixFQUFFLENBQ0EsQ0FBQyxZQUFZLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUdELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQzs7a0ZBMUVVLGlCQUFpQjtzREFBakIsaUJBQWlCO29HQUFqQix1Q0FBbUMsaUZBQW5DLHVCQUFtQjswQ0FGbkIsQ0FBQyxtQkFBbUIsQ0FBQzt1RkFFckIsaUJBQWlCO2NBSjdCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDakM7aUpBR0MsUUFBUTtrQkFEUCxZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBR3BELFNBQVM7a0JBRFIsWUFBWTttQkFBQyxNQUFNLEVBQUUsRUFBRTtZQUlqQixXQUFXO2tCQURqQixZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgUmVuZGVyZXIyXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7TWFnaWNEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi8uLi9tYWdpYy5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvdGFzay5tYWdpY3Muc2VydmljZVwiO1xyXG5pbXBvcnQge0Vudmlyb25tZW50LCBMYXN0Rm9jdXNlZE1hbmFnZXJ9IGZyb20gXCJAbWFnaWMteHBhL2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IERBVEVfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlVmFsdWVBY2Nlc3NvciksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgYWNjZXNzb3IgZm9yIHdyaXRpbmcgYSB2YWx1ZSBhbmQgbGlzdGVuaW5nIHRvIGNoYW5nZXMgb24gYSBkYXRlIGlucHV0IGVsZW1lbnRcclxuICpcclxuICogICMjIyBFeGFtcGxlXHJcbiAqICBgPGlucHV0IHR5cGU9XCJkYXRlXCIgbmFtZT1cImJpcnRoZGF5XCIgbmdNb2RlbCBkYXRlSW5wdXQ+YFxyXG4gKiAgT1JcclxuICogIGA8aW5wdXQgdHlwZT1cImRhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJiaXJ0aGRheVwiIGRhdGVJbnB1dD5gXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbZGF0ZUlucHV0XVwiLFxyXG4gIHByb3ZpZGVyczogW0RBVEVfVkFMVUVfQUNDRVNTT1JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASG9zdExpc3RlbmVyKFwiaW5wdXRcIiwgW1wiJGV2ZW50LnRhcmdldC52YWx1ZUFzRGF0ZVwiXSlcclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xyXG4gIEBIb3N0TGlzdGVuZXIoXCJibHVyXCIsIFtdKVxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25CbHVyRXZlbnQoZXZlbnQpIHtcclxuICAgIGNvbnN0IGNlbnR1cnkgPSBFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXRDZW50dXJ5KExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSk7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5tYWdpY0Rpci5yb3dJZCwgdGhpcy5tYWdpY0Rpci5pZCk7XHJcblxyXG4gICAgdGhpcy5mb3JtYXREYXRlV2l0aENlbnR1cnkoZXZlbnQudGFyZ2V0LnZhbHVlLCBjZW50dXJ5LCBjb250cm9sKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBtYWdpY0RpcjogTWFnaWNEaXJlY3RpdmUgLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZSkge31cclxuXHJcblxyXG4gIC8qKiBGb3JtYXQgeWVhciwgaWYgdXNlciBlbnRlcnMgMiBkaWdpdHMgaW5zdGVhZCBvZiA0IGRpZ2l0cyBhcyBwZXIgdGhlIGNlbnR1cnkgZ2l2ZW4gaW4gTWFnaWMuaW5pIGZpbGUgKi9cclxuICBmb3JtYXREYXRlV2l0aENlbnR1cnkodXNlcklucHV0OnN0cmluZywgY2VudHVyeTpudW1iZXIsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCl7XHJcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB1c2VySW5wdXQuaW5jbHVkZXMoJy8nKT8nLyc6XCItXCI7XHJcbiAgICBsZXQgY2VudHVyeVZhbCA9IHBhcnNlSW50KGNlbnR1cnkudG9TdHJpbmcoKS5zbGljZSgwLCAyKSk7XHJcbiAgICBpZih1c2VySW5wdXQubGVuZ3RoID09IDApXHJcbiAgICAgIHJldHVybiA7XHJcblxyXG4gICAgY29uc3QgZGF0ZUFycmF5OiBzdHJpbmdbXSA9IHVzZXJJbnB1dC5zcGxpdChzZXBhcmF0b3IpO1xyXG4gICAgY29uc3QgZGF5ID0gTnVtYmVyKGRhdGVBcnJheVsyXSk7XHJcbiAgICBjb25zdCBtb250aCA9IE51bWJlcihkYXRlQXJyYXlbMV0pO1xyXG4gICAgY29uc3QgeWVhciA9IE51bWJlcihkYXRlQXJyYXlbMF0pO1xyXG5cclxuICAgIGxldCB1cGRhdGVkWWVhciA9IHllYXIudG9TdHJpbmcoKS5sZW5ndGggPT09IDIgPyAoeWVhciA8IGNlbnR1cnkgJSAxMDAgPyBjZW50dXJ5VmFsICsgMSA6IGNlbnR1cnlWYWwpICsgJycgKyB5ZWFyIDpcclxuICAgICAgeWVhci50b1N0cmluZygpLmxlbmd0aCA9PT0gMSA/ICh5ZWFyIDwgY2VudHVyeSAlIDEwMCA/IGNlbnR1cnlWYWwgKyAxIDogY2VudHVyeVZhbCkgKyAnMCcgKyB5ZWFyIDpcclxuICAgICAgICB5ZWFyO1xyXG5cclxuICAgIGNvbnRyb2wuc2V0VmFsdWUobmV3IERhdGUoYCR7dXBkYXRlZFllYXJ9JHtzZXBhcmF0b3J9JHttb250aH0ke3NlcGFyYXRvcn0ke2RheX1gKSlcclxuICB9XHJcblxyXG4gIC8qKiBXcml0ZXMgYSBuZXcgdmFsdWUgdG8gdGhlIGVsZW1lbnQgKG1vZGVsIC0+IHZpZXcpICovXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcInZhbHVlXCIsIG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIFwidmFsdWVBc0RhdGVcIixcclxuICAgICAgbmV3IERhdGUoRGF0ZS5VVEModmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSwgdmFsdWUuZ2V0RGF0ZSgpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24sIGNhbGxlZCB3aGVuIHZhbHVlIGNoYW5nZXMgKHZpZXcgLT4gbW9kZWwpICovXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IHYgPT5cclxuICAgICAgZm4oXHJcbiAgICAgICAgdiBpbnN0YW5jZW9mIERhdGVcclxuICAgICAgICAgID8gbmV3IERhdGUodi5nZXRVVENGdWxsWWVhcigpLCB2LmdldFVUQ01vbnRoKCksIHYuZ2V0VVRDRGF0ZSgpKVxyXG4gICAgICAgICAgOiB2XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24sIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIGlzIGJsdXJyZWQgKi9cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIC8qKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBlbGVtZW50IHdoZW4gdGhlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMgKi9cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXHJcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBcImRpc2FibGVkXCIsXHJcbiAgICAgIGlzRGlzYWJsZWRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|