@anglr/datetime 5.0.0-beta.20221017112052 → 5.0.0-beta.20221018102923

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 (138) hide show
  1. package/changelog.md +46 -8
  2. package/es2015/src/index.js +0 -3
  3. package/es2015/src/index.js.map +1 -1
  4. package/es2015/src/interfaces/dateTimeInput/dateTimeInput.interface.js.map +1 -1
  5. package/es2015/src/legacy/selector/components/inputDateTime/inputDateTime.component.js +4 -6
  6. package/es2015/src/legacy/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
  7. package/es2015/src/legacy/selector/components/selector/selector.component.js +2 -2
  8. package/es2015/src/legacy/selector/components/selector/selector.component.js.map +1 -1
  9. package/es2015/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +2 -2
  10. package/es2015/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
  11. package/es2015/src/misc/enums.js +1 -1
  12. package/es2015/src/misc/enums.js.map +1 -1
  13. package/es2015/src/misc/types.js.map +1 -1
  14. package/es2015/src/misc/utils.js +10 -0
  15. package/es2015/src/misc/utils.js.map +1 -1
  16. package/es2015/src/misc/validators.js +79 -2
  17. package/es2015/src/misc/validators.js.map +1 -1
  18. package/es2015/src/modules/dateTime/directives/dateTimeBase.js +77 -0
  19. package/es2015/src/modules/dateTime/directives/dateTimeBase.js.map +1 -0
  20. package/es2015/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js +12 -59
  21. package/es2015/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js.map +1 -1
  22. package/es2015/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js +72 -0
  23. package/es2015/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js.map +1 -0
  24. package/es2015/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js +71 -0
  25. package/es2015/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js.map +1 -0
  26. package/es2015/src/modules/dateTime/directives/dateTimeRestrictedBase.js +152 -0
  27. package/es2015/src/modules/dateTime/directives/dateTimeRestrictedBase.js.map +1 -0
  28. package/es2015/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js +17 -6
  29. package/es2015/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js.map +1 -1
  30. package/es2015/src/modules/dateTime/directives/index.js +4 -0
  31. package/es2015/src/modules/dateTime/directives/index.js.map +1 -1
  32. package/es2015/src/modules/dateTime/modules/dateTime.module.js +9 -1
  33. package/es2015/src/modules/dateTime/modules/dateTime.module.js.map +1 -1
  34. package/es2015/src/services/{datePositionParser.interface.js → datePositionParser/datePositionParser.interface.js} +0 -0
  35. package/es2015/src/services/datePositionParser/datePositionParser.interface.js.map +1 -0
  36. package/es2015/src/services/{datePositionParser.service.js → datePositionParser/datePositionParser.service.js} +0 -0
  37. package/es2015/src/services/datePositionParser/datePositionParser.service.js.map +1 -0
  38. package/es2015/src/services/{dateTimeRelativeParser.service.js → dateTimeRelativeParser/dateTimeRelativeParser.service.js} +8 -8
  39. package/es2015/src/services/dateTimeRelativeParser/dateTimeRelativeParser.service.js.map +1 -0
  40. package/es2015/src/services/{dateValueProvider.service.js → dateValueProvider/dateValueProvider.service.js} +1 -1
  41. package/es2015/src/services/dateValueProvider/dateValueProvider.service.js.map +1 -0
  42. package/es2015/src/services/index.js +4 -1
  43. package/es2015/src/services/index.js.map +1 -1
  44. package/es2020/src/index.js +0 -3
  45. package/es2020/src/index.js.map +1 -1
  46. package/es2020/src/interfaces/dateTimeInput/dateTimeInput.interface.js.map +1 -1
  47. package/es2020/src/legacy/selector/components/inputDateTime/inputDateTime.component.js +4 -6
  48. package/es2020/src/legacy/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
  49. package/es2020/src/legacy/selector/components/selector/selector.component.js +2 -2
  50. package/es2020/src/legacy/selector/components/selector/selector.component.js.map +1 -1
  51. package/es2020/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +2 -2
  52. package/es2020/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
  53. package/es2020/src/misc/enums.js +1 -1
  54. package/es2020/src/misc/enums.js.map +1 -1
  55. package/es2020/src/misc/types.js.map +1 -1
  56. package/es2020/src/misc/utils.js +10 -0
  57. package/es2020/src/misc/utils.js.map +1 -1
  58. package/es2020/src/misc/validators.js +79 -2
  59. package/es2020/src/misc/validators.js.map +1 -1
  60. package/es2020/src/modules/dateTime/directives/dateTimeBase.js +77 -0
  61. package/es2020/src/modules/dateTime/directives/dateTimeBase.js.map +1 -0
  62. package/es2020/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js +12 -59
  63. package/es2020/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js.map +1 -1
  64. package/es2020/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js +72 -0
  65. package/es2020/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js.map +1 -0
  66. package/es2020/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js +71 -0
  67. package/es2020/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js.map +1 -0
  68. package/es2020/src/modules/dateTime/directives/dateTimeRestrictedBase.js +149 -0
  69. package/es2020/src/modules/dateTime/directives/dateTimeRestrictedBase.js.map +1 -0
  70. package/es2020/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js +17 -6
  71. package/es2020/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js.map +1 -1
  72. package/es2020/src/modules/dateTime/directives/index.js +4 -0
  73. package/es2020/src/modules/dateTime/directives/index.js.map +1 -1
  74. package/es2020/src/modules/dateTime/modules/dateTime.module.js +9 -1
  75. package/es2020/src/modules/dateTime/modules/dateTime.module.js.map +1 -1
  76. package/es2020/src/services/{datePositionParser.interface.js → datePositionParser/datePositionParser.interface.js} +0 -0
  77. package/es2020/src/services/datePositionParser/datePositionParser.interface.js.map +1 -0
  78. package/es2020/src/services/{datePositionParser.service.js → datePositionParser/datePositionParser.service.js} +0 -0
  79. package/es2020/src/services/datePositionParser/datePositionParser.service.js.map +1 -0
  80. package/es2020/src/services/{dateTimeRelativeParser.service.js → dateTimeRelativeParser/dateTimeRelativeParser.service.js} +8 -8
  81. package/es2020/src/services/dateTimeRelativeParser/dateTimeRelativeParser.service.js.map +1 -0
  82. package/es2020/src/services/{dateValueProvider.service.js → dateValueProvider/dateValueProvider.service.js} +1 -1
  83. package/es2020/src/services/dateValueProvider/dateValueProvider.service.js.map +1 -0
  84. package/es2020/src/services/index.js +4 -1
  85. package/es2020/src/services/index.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/index.d.ts +0 -3
  88. package/src/index.d.ts.map +1 -1
  89. package/src/interfaces/dateTimeInput/dateTimeInput.interface.d.ts +14 -9
  90. package/src/interfaces/dateTimeInput/dateTimeInput.interface.d.ts.map +1 -1
  91. package/src/legacy/selector/components/inputDateTime/inputDateTime.component.d.ts +1 -3
  92. package/src/legacy/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
  93. package/src/legacy/selector/components/selector/selector.component.d.ts +1 -2
  94. package/src/legacy/selector/components/selector/selector.component.d.ts.map +1 -1
  95. package/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +1 -2
  96. package/src/legacy/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
  97. package/src/misc/enums.d.ts +1 -1
  98. package/src/misc/types.d.ts +1 -1
  99. package/src/misc/types.d.ts.map +1 -1
  100. package/src/misc/utils.d.ts +5 -0
  101. package/src/misc/utils.d.ts.map +1 -1
  102. package/src/misc/validators.d.ts +17 -0
  103. package/src/misc/validators.d.ts.map +1 -1
  104. package/src/modules/dateTime/directives/dateTimeBase.d.ts +56 -0
  105. package/src/modules/dateTime/directives/dateTimeBase.d.ts.map +1 -0
  106. package/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.d.ts +3 -39
  107. package/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.d.ts.map +1 -1
  108. package/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.d.ts +33 -0
  109. package/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.d.ts.map +1 -0
  110. package/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.d.ts +33 -0
  111. package/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.d.ts.map +1 -0
  112. package/src/modules/dateTime/directives/dateTimeRestrictedBase.d.ts +74 -0
  113. package/src/modules/dateTime/directives/dateTimeRestrictedBase.d.ts.map +1 -0
  114. package/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.d.ts +9 -2
  115. package/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.d.ts.map +1 -1
  116. package/src/modules/dateTime/directives/index.d.ts +4 -0
  117. package/src/modules/dateTime/directives/index.d.ts.map +1 -1
  118. package/src/modules/dateTime/modules/dateTime.module.d.ts +4 -2
  119. package/src/modules/dateTime/modules/dateTime.module.d.ts.map +1 -1
  120. package/src/services/{datePositionParser.interface.d.ts → datePositionParser/datePositionParser.interface.d.ts} +0 -0
  121. package/src/services/{datePositionParser.interface.d.ts.map → datePositionParser/datePositionParser.interface.d.ts.map} +0 -0
  122. package/src/services/{datePositionParser.service.d.ts → datePositionParser/datePositionParser.service.d.ts} +0 -0
  123. package/src/services/{datePositionParser.service.d.ts.map → datePositionParser/datePositionParser.service.d.ts.map} +0 -0
  124. package/src/services/{dateTimeRelativeParser.service.d.ts → dateTimeRelativeParser/dateTimeRelativeParser.service.d.ts} +3 -3
  125. package/src/services/{dateTimeRelativeParser.service.d.ts.map → dateTimeRelativeParser/dateTimeRelativeParser.service.d.ts.map} +1 -1
  126. package/src/services/{dateValueProvider.service.d.ts → dateValueProvider/dateValueProvider.service.d.ts} +2 -2
  127. package/src/services/{dateValueProvider.service.d.ts.map → dateValueProvider/dateValueProvider.service.d.ts.map} +1 -1
  128. package/src/services/index.d.ts +4 -1
  129. package/src/services/index.d.ts.map +1 -1
  130. package/version.bak +1 -1
  131. package/es2015/src/services/datePositionParser.interface.js.map +0 -1
  132. package/es2015/src/services/datePositionParser.service.js.map +0 -1
  133. package/es2015/src/services/dateTimeRelativeParser.service.js.map +0 -1
  134. package/es2015/src/services/dateValueProvider.service.js.map +0 -1
  135. package/es2020/src/services/datePositionParser.interface.js.map +0 -1
  136. package/es2020/src/services/datePositionParser.service.js.map +0 -1
  137. package/es2020/src/services/dateTimeRelativeParser.service.js.map +0 -1
  138. package/es2020/src/services/dateValueProvider.service.js.map +0 -1
@@ -0,0 +1,152 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, Input } from '@angular/core';
3
+ import { BindThis, isBlank } from '@jscrpt/common';
4
+ import { getSingleDateTimeValue } from '../../../misc/utils';
5
+ import { DateTimeBase } from './dateTimeBase';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Base class for date time directives with value restrictions
9
+ */
10
+ export class DateTimeRestrictedBase extends DateTimeBase {
11
+ //######################### public properties - inputs #########################
12
+ /**
13
+ * Gets or sets max allowed date for date time
14
+ */
15
+ get maxDateTime() {
16
+ return this.ɵMaxDateTime;
17
+ }
18
+ set maxDateTime(value) {
19
+ var _a;
20
+ (_a = this._maxDateInstanceChange) === null || _a === void 0 ? void 0 : _a.unsubscribe();
21
+ this._maxDateInstanceChange = null;
22
+ if (isBlank(value)) {
23
+ this.maxDateSet(value);
24
+ return;
25
+ }
26
+ let val = value;
27
+ if (value instanceof (DateTimeBase)) {
28
+ this._maxDateInstanceChange = value.valueChange.subscribe(() => {
29
+ const val = getSingleDateTimeValue(value.value);
30
+ if (isBlank(val)) {
31
+ this.maxDateSet(null);
32
+ return;
33
+ }
34
+ this.setMinMaxValue(val, this.maxDateSet);
35
+ });
36
+ const v = getSingleDateTimeValue(value.value);
37
+ if (isBlank(v)) {
38
+ this.maxDateSet(null);
39
+ return;
40
+ }
41
+ val = v;
42
+ }
43
+ this.setMinMaxValue(val, this.maxDateSet);
44
+ }
45
+ /**
46
+ * Gets or sets min allowed date for date time
47
+ */
48
+ get minDateTime() {
49
+ return this.ɵMinDateTime;
50
+ }
51
+ set minDateTime(value) {
52
+ var _a;
53
+ (_a = this._minDateInstanceChange) === null || _a === void 0 ? void 0 : _a.unsubscribe();
54
+ this._minDateInstanceChange = null;
55
+ if (isBlank(value)) {
56
+ this.minDateSet(value);
57
+ return;
58
+ }
59
+ let val = value;
60
+ if (value instanceof (DateTimeBase)) {
61
+ this._minDateInstanceChange = value.valueChange.subscribe(() => {
62
+ const val = getSingleDateTimeValue(value.value);
63
+ if (isBlank(val)) {
64
+ this.minDateSet(null);
65
+ return;
66
+ }
67
+ this.setMinMaxValue(val, this.minDateSet);
68
+ });
69
+ const v = getSingleDateTimeValue(value.value);
70
+ if (isBlank(v)) {
71
+ this.minDateSet(null);
72
+ return;
73
+ }
74
+ val = v;
75
+ }
76
+ this.setMinMaxValue(val, this.minDateSet);
77
+ }
78
+ //######################### public methods - implementation of OnDestroy #########################
79
+ /**
80
+ * Called when component is destroyed
81
+ */
82
+ ngOnDestroy() {
83
+ var _a, _b;
84
+ (_a = this._maxDateInstanceChange) === null || _a === void 0 ? void 0 : _a.unsubscribe();
85
+ this._maxDateInstanceChange = null;
86
+ (_b = this._minDateInstanceChange) === null || _b === void 0 ? void 0 : _b.unsubscribe();
87
+ this._minDateInstanceChange = null;
88
+ }
89
+ //######################### protected methods #########################
90
+ /**
91
+ * Called whenever max date time restriction changes
92
+ */
93
+ onMaxDateTimeChange() {
94
+ }
95
+ /**
96
+ * Called whenever min date time restriction changes
97
+ */
98
+ onMinDateTimeChange() {
99
+ }
100
+ /**
101
+ * Sets min date time and notifies about changes
102
+ * @param value - Value to be set
103
+ */
104
+ minDateSet(value) {
105
+ this.ɵMinDateTime = value;
106
+ this.onMinDateTimeChange();
107
+ }
108
+ /**
109
+ * Sets max date time and notifies about changes
110
+ * @param value - Value to be set
111
+ */
112
+ maxDateSet(value) {
113
+ this.ɵMaxDateTime = value;
114
+ this.onMaxDateTimeChange();
115
+ }
116
+ /**
117
+ * Sets min or max date time value
118
+ * @param value - Value to be set
119
+ * @param setter - Action used for setting value
120
+ */
121
+ setMinMaxValue(value, setter) {
122
+ const val = this.dateApi.getValue(value, this.customFormat);
123
+ if (val.isValid()) {
124
+ setter(val.value);
125
+ }
126
+ else {
127
+ setter(null);
128
+ }
129
+ }
130
+ }
131
+ DateTimeRestrictedBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeRestrictedBase, deps: null, target: i0.ɵɵFactoryTarget.Directive });
132
+ DateTimeRestrictedBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.6", type: DateTimeRestrictedBase, inputs: { maxDateTime: "maxDateTime", minDateTime: "minDateTime" }, usesInheritance: true, ngImport: i0 });
133
+ __decorate([
134
+ BindThis,
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", [Object]),
137
+ __metadata("design:returntype", void 0)
138
+ ], DateTimeRestrictedBase.prototype, "minDateSet", null);
139
+ __decorate([
140
+ BindThis,
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", [Object]),
143
+ __metadata("design:returntype", void 0)
144
+ ], DateTimeRestrictedBase.prototype, "maxDateSet", null);
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeRestrictedBase, decorators: [{
146
+ type: Directive
147
+ }], propDecorators: { maxDateTime: [{
148
+ type: Input
149
+ }], minDateTime: [{
150
+ type: Input
151
+ }], minDateSet: [], maxDateSet: [] } });
152
+ //# sourceMappingURL=dateTimeRestrictedBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateTimeRestrictedBase.js","sourceRoot":"","sources":["../../../../../src/modules/dateTime/directives/dateTimeRestrictedBase.ts"],"names":[],"mappings":"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","sourcesContent":["import {Directive, Input, OnDestroy} from '@angular/core';\nimport {Action1, BindThis, isBlank} from '@jscrpt/common';\nimport {Subscription} from 'rxjs';\n\nimport {DateTimeInputOutputValue} from '../../../misc/types';\nimport {getSingleDateTimeValue} from '../../../misc/utils';\nimport {DateTimeBase} from './dateTimeBase';\n\n/**\n * Base class for date time directives with value restrictions\n */\n@Directive()\nexport class DateTimeRestrictedBase<TDate = unknown> extends DateTimeBase<TDate> implements OnDestroy\n{\n //######################### private fields #########################\n\n /**\n * Subscription for max date instance value changes\n */\n private _maxDateInstanceChange: Subscription|undefined|null;\n\n /**\n * Subscription for min date instance value changes\n */\n private _minDateInstanceChange: Subscription|undefined|null;\n\n //######################### protected properties #########################\n\n /**\n * Max allowed value of date time\n */\n protected ɵMaxDateTime: TDate|undefined|null;\n\n /**\n * Min allowed value of date time\n */\n protected ɵMinDateTime: TDate|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets max allowed date for date time\n */\n @Input()\n public get maxDateTime(): TDate|undefined|null\n {\n return this.ɵMaxDateTime;\n }\n public set maxDateTime(value: TDate|undefined|null)\n {\n this._maxDateInstanceChange?.unsubscribe();\n this._maxDateInstanceChange = null;\n\n if(isBlank(value))\n {\n this.maxDateSet(value);\n\n return;\n }\n\n let val: DateTimeInputOutputValue<TDate> = value;\n\n if(value instanceof DateTimeBase<TDate>)\n {\n this._maxDateInstanceChange = value.valueChange.subscribe(() =>\n {\n const val = getSingleDateTimeValue<TDate>(value.value);\n\n if(isBlank(val))\n {\n this.maxDateSet(null);\n\n return;\n }\n\n this.setMinMaxValue(val, this.maxDateSet);\n });\n\n const v = getSingleDateTimeValue<TDate>(value.value);\n\n if(isBlank(v))\n {\n this.maxDateSet(null);\n\n return;\n }\n\n val = v;\n }\n \n this.setMinMaxValue(val, this.maxDateSet);\n }\n\n /**\n * Gets or sets min allowed date for date time\n */\n @Input()\n public get minDateTime(): TDate|undefined|null\n {\n return this.ɵMinDateTime;\n }\n public set minDateTime(value: TDate|undefined|null)\n {\n this._minDateInstanceChange?.unsubscribe();\n this._minDateInstanceChange = null;\n\n if(isBlank(value))\n {\n this.minDateSet(value);\n\n return;\n }\n\n let val: DateTimeInputOutputValue<TDate> = value;\n\n if(value instanceof DateTimeBase<TDate>)\n {\n this._minDateInstanceChange = value.valueChange.subscribe(() =>\n {\n const val = getSingleDateTimeValue<TDate>(value.value);\n\n if(isBlank(val))\n {\n this.minDateSet(null);\n\n return;\n }\n\n this.setMinMaxValue(val, this.minDateSet);\n });\n\n const v = getSingleDateTimeValue<TDate>(value.value);\n\n if(isBlank(v))\n {\n this.minDateSet(null);\n\n return;\n }\n\n val = v;\n }\n\n this.setMinMaxValue(val, this.minDateSet);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n this._maxDateInstanceChange?.unsubscribe();\n this._maxDateInstanceChange = null;\n\n this._minDateInstanceChange?.unsubscribe();\n this._minDateInstanceChange = null;\n }\n\n //######################### protected methods #########################\n\n /**\n * Called whenever max date time restriction changes\n */\n protected onMaxDateTimeChange(): void\n {\n }\n\n /**\n * Called whenever min date time restriction changes\n */\n protected onMinDateTimeChange(): void\n {\n }\n\n /**\n * Sets min date time and notifies about changes\n * @param value - Value to be set\n */\n @BindThis\n protected minDateSet(value: TDate|undefined|null): void\n {\n this.ɵMinDateTime = value;\n this.onMinDateTimeChange();\n }\n\n /**\n * Sets max date time and notifies about changes\n * @param value - Value to be set\n */\n @BindThis\n protected maxDateSet(value: TDate|undefined|null): void\n {\n this.ɵMaxDateTime = value;\n this.onMaxDateTimeChange();\n }\n\n /**\n * Sets min or max date time value\n * @param value - Value to be set\n * @param setter - Action used for setting value\n */\n protected setMinMaxValue(value: string|number|TDate|Date, setter: Action1<TDate|undefined|null>): void\n {\n const val = this.dateApi.getValue(value, this.customFormat);\n\n if(val.isValid())\n {\n setter(val.value);\n }\n else\n {\n setter(null);\n }\n }\n\n //######################### ng language server #########################\n \n /**\n * Custom input type for `maxDateTime` input\n */\n public static ngAcceptInputType_maxDateTime: string|number|DateTimeBase|Date;\n\n /**\n * Custom input type for `minDateTime` input\n */\n public static ngAcceptInputType_minDateTime: string|number|DateTimeBase|Date;\n}\n"]}
@@ -1,20 +1,28 @@
1
1
  import { Directive, forwardRef, Inject } from '@angular/core';
2
2
  import { NG_VALIDATORS } from '@angular/forms';
3
- import { DATE_API } from '../../../../misc/tokens';
3
+ import { DATE_API, FORMAT_PROVIDER } from '../../../../misc/tokens';
4
4
  import { datetimeValidator } from '../../../../misc/validators';
5
+ import { DateTimeBase } from '../dateTimeBase';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
8
  * Applies validator for date time
8
9
  */
9
- export class DateTimeValidatorDirective {
10
+ export class DateTimeValidatorDirective extends DateTimeBase {
10
11
  //######################### constructor #########################
11
- constructor(dateApi) {
12
+ constructor(dateApi, formatProvider) {
13
+ super(dateApi, formatProvider);
12
14
  //######################### private fields #########################
13
15
  /**
14
16
  * Function used for validations
15
17
  */
16
18
  this._validator = () => null;
17
- this._validator = datetimeValidator(dateApi, null, null);
19
+ }
20
+ //######################### public methods - implementation of OnInit #########################
21
+ /**
22
+ * Initialize component
23
+ */
24
+ ngOnInit() {
25
+ this._validator = datetimeValidator(this.dateApi, this.valueFormat, this.customFormat);
18
26
  }
19
27
  //######################### public methods - implementation of Validator #########################
20
28
  /**
@@ -26,14 +34,14 @@ export class DateTimeValidatorDirective {
26
34
  return this._validator(control);
27
35
  }
28
36
  }
29
- DateTimeValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeValidatorDirective, deps: [{ token: DATE_API }], target: i0.ɵɵFactoryTarget.Directive });
37
+ DateTimeValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeValidatorDirective, deps: [{ token: DATE_API }, { token: FORMAT_PROVIDER }], target: i0.ɵɵFactoryTarget.Directive });
30
38
  DateTimeValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.6", type: DateTimeValidatorDirective, selector: "[dateTime][validate]", providers: [
31
39
  {
32
40
  provide: NG_VALIDATORS,
33
41
  useExisting: forwardRef(() => DateTimeValidatorDirective),
34
42
  multi: true
35
43
  },
36
- ], ngImport: i0 });
44
+ ], usesInheritance: true, ngImport: i0 });
37
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeValidatorDirective, decorators: [{
38
46
  type: Directive,
39
47
  args: [{
@@ -49,5 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImpor
49
57
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
50
58
  type: Inject,
51
59
  args: [DATE_API]
60
+ }] }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [FORMAT_PROVIDER]
52
63
  }] }]; } });
53
64
  //# sourceMappingURL=dateTimeValidator.directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeValidator.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAoB,UAAU,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAkB,aAAa,EAA2C,MAAM,gBAAgB,CAAC;AAExG,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;;AAG9D;;GAEG;AAcH,MAAM,OAAO,0BAA0B;IASnC,iEAAiE;IACjE,YAA8B,OAAuB;QARrD,oEAAoE;QAEpE;;WAEG;QACK,eAAU,GAAgB,GAAG,EAAE,CAAC,IAAI,CAAC;QAKzC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,kGAAkG;IAElG;;;;OAIG;IACI,QAAQ,CAAC,OAAwB;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;;uHAzBQ,0BAA0B,kBAUf,QAAQ;2GAVnB,0BAA0B,+CATnC;QAEI;YACI,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC;YACzD,KAAK,EAAE,IAAI;SACd;KACJ;2FAEQ,0BAA0B;kBAbtC,SAAS;mBACV;oBACI,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EACT;wBAEI;4BACI,OAAO,EAAE,aAAa;4BACtB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,2BAA2B,CAAC;4BACzD,KAAK,EAAE,IAAI;yBACd;qBACJ;iBACJ;;0BAWgB,MAAM;2BAAC,QAAQ","sourcesContent":["import {Directive, ExistingProvider, forwardRef, Inject} from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn} from '@angular/forms';\n\nimport {DATE_API} from '../../../../misc/tokens';\nimport {datetimeValidator} from '../../../../misc/validators';\nimport {DateApi} from '../../../../services';\n\n/**\n * Applies validator for date time\n */\n@Directive(\n{\n selector: '[dateTime][validate]',\n providers:\n [\n <ExistingProvider>\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateTimeValidatorDirective),\n multi: true\n },\n ],\n})\nexport class DateTimeValidatorDirective<TDate = unknown> implements Validator\n{\n //######################### private fields #########################\n\n /**\n * Function used for validations\n */\n private _validator: ValidatorFn = () => null;\n\n //######################### constructor #########################\n constructor(@Inject(DATE_API) dateApi: DateApi<TDate>,)\n {\n this._validator = datetimeValidator(dateApi, null, null);\n }\n\n //######################### public methods - implementation of Validator #########################\n\n /**\n * Validates input and returns validation result\n * @param control - Control that is being validated\n * @returns validation results\n */\n public validate(control: AbstractControl): ValidationErrors|null\n {\n return this._validator(control);\n }\n}"]}
1
+ {"version":3,"file":"dateTimeValidator.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAoB,UAAU,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AACtF,OAAO,EAAkB,aAAa,EAA2C,MAAM,gBAAgB,CAAC;AAGxG,OAAO,EAAC,QAAQ,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;;AAE7C;;GAEG;AAcH,MAAM,OAAO,0BAA4C,SAAQ,YAAmB;IAShF,iEAAiE;IACjE,YAA8B,OAAuB,EAChB,cAA8B;QAE/D,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAXnC,oEAAoE;QAEpE;;WAEG;QACK,eAAU,GAAgB,GAAG,EAAE,CAAC,IAAI,CAAC;IAO7C,CAAC;IAED,+FAA+F;IAE/F;;OAEG;IACI,QAAQ;QAEX,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3F,CAAC;IAED,kGAAkG;IAElG;;;;OAIG;IACI,QAAQ,CAAC,OAAwB;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;;uHApCQ,0BAA0B,kBAUf,QAAQ,aACR,eAAe;2GAX1B,0BAA0B,+CATnC;QAEI;YACI,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC;YACzD,KAAK,EAAE,IAAI;SACd;KACJ;2FAEQ,0BAA0B;kBAbtC,SAAS;mBACV;oBACI,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EACT;wBAEI;4BACI,OAAO,EAAE,aAAa;4BACtB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,2BAA2B,CAAC;4BACzD,KAAK,EAAE,IAAI;yBACd;qBACJ;iBACJ;;0BAWgB,MAAM;2BAAC,QAAQ;;0BACf,MAAM;2BAAC,eAAe","sourcesContent":["import {Directive, ExistingProvider, forwardRef, Inject, OnInit} from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn} from '@angular/forms';\n\nimport {FormatProvider} from '../../../../interfaces';\nimport {DATE_API, FORMAT_PROVIDER} from '../../../../misc/tokens';\nimport {datetimeValidator} from '../../../../misc/validators';\nimport {DateApi} from '../../../../services';\nimport {DateTimeBase} from '../dateTimeBase';\n\n/**\n * Applies validator for date time\n */\n@Directive(\n{\n selector: '[dateTime][validate]',\n providers:\n [\n <ExistingProvider>\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateTimeValidatorDirective),\n multi: true\n },\n ],\n})\nexport class DateTimeValidatorDirective<TDate = unknown> extends DateTimeBase<TDate> implements Validator, OnInit\n{\n //######################### private fields #########################\n\n /**\n * Function used for validations\n */\n private _validator: ValidatorFn = () => null;\n\n //######################### constructor #########################\n constructor(@Inject(DATE_API) dateApi: DateApi<TDate>,\n @Inject(FORMAT_PROVIDER) formatProvider: FormatProvider,)\n {\n super(dateApi, formatProvider);\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this._validator = datetimeValidator(this.dateApi, this.valueFormat, this.customFormat);\n }\n\n //######################### public methods - implementation of Validator #########################\n\n /**\n * Validates input and returns validation result\n * @param control - Control that is being validated\n * @returns validation results\n */\n public validate(control: AbstractControl): ValidationErrors|null\n {\n return this._validator(control);\n }\n}"]}
@@ -1,4 +1,8 @@
1
+ export * from './dateTimeBase';
1
2
  export * from './dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive';
2
3
  export * from './dateTimeInput/dateTimeInput.directive';
4
+ export * from './dateTimeMaxValidator/dateTimeMaxValidator.directive';
5
+ export * from './dateTimeMinValidator/dateTimeMinValidator.directive';
6
+ export * from './dateTimeRestrictedBase';
3
7
  export * from './dateTimeValidator/dateTimeValidator.directive';
4
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/dateTime/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,uEAAuE,CAAC;AACtF,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC","sourcesContent":["export * from './dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive';\nexport * from './dateTimeInput/dateTimeInput.directive';\nexport * from './dateTimeValidator/dateTimeValidator.directive';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/dateTime/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uEAAuE,CAAC;AACtF,cAAc,yCAAyC,CAAC;AACxD,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC","sourcesContent":["export * from './dateTimeBase';\nexport * from './dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive';\nexport * from './dateTimeInput/dateTimeInput.directive';\nexport * from './dateTimeMaxValidator/dateTimeMaxValidator.directive';\nexport * from './dateTimeMinValidator/dateTimeMinValidator.directive';\nexport * from './dateTimeRestrictedBase';\nexport * from './dateTimeValidator/dateTimeValidator.directive';\n"]}
@@ -1,5 +1,5 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { DateTimeControlValueAccessorDirective, DateTimeInputDirective, DateTimeValidatorDirective } from '../directives';
2
+ import { DateTimeControlValueAccessorDirective, DateTimeInputDirective, DateTimeMaxValidatorDirective, DateTimeMinValidatorDirective, DateTimeValidatorDirective } from '../directives';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Module for basic date time directives, components, pipes
@@ -9,8 +9,12 @@ export class DateTimeModule {
9
9
  DateTimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
10
  DateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: DateTimeModule, declarations: [DateTimeControlValueAccessorDirective,
11
11
  DateTimeInputDirective,
12
+ DateTimeMaxValidatorDirective,
13
+ DateTimeMinValidatorDirective,
12
14
  DateTimeValidatorDirective], exports: [DateTimeControlValueAccessorDirective,
13
15
  DateTimeInputDirective,
16
+ DateTimeMaxValidatorDirective,
17
+ DateTimeMinValidatorDirective,
14
18
  DateTimeValidatorDirective] });
15
19
  DateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeModule });
16
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: DateTimeModule, decorators: [{
@@ -19,11 +23,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImpor
19
23
  declarations: [
20
24
  DateTimeControlValueAccessorDirective,
21
25
  DateTimeInputDirective,
26
+ DateTimeMaxValidatorDirective,
27
+ DateTimeMinValidatorDirective,
22
28
  DateTimeValidatorDirective,
23
29
  ],
24
30
  exports: [
25
31
  DateTimeControlValueAccessorDirective,
26
32
  DateTimeInputDirective,
33
+ DateTimeMaxValidatorDirective,
34
+ DateTimeMinValidatorDirective,
27
35
  DateTimeValidatorDirective,
28
36
  ],
29
37
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"dateTime.module.js","sourceRoot":"","sources":["../../../../../src/modules/dateTime/modules/dateTime.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,qCAAqC,EAAE,sBAAsB,EAAE,0BAA0B,EAAC,MAAM,eAAe,CAAC;;AAExH;;GAEG;AAgBH,MAAM,OAAO,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBAXnB,qCAAqC;QACrC,sBAAsB;QACtB,0BAA0B,aAI1B,qCAAqC;QACrC,sBAAsB;QACtB,0BAA0B;4GAGrB,cAAc;2FAAd,cAAc;kBAf1B,QAAQ;mBACT;oBACI,YAAY,EACZ;wBACI,qCAAqC;wBACrC,sBAAsB;wBACtB,0BAA0B;qBAC7B;oBACD,OAAO,EACP;wBACI,qCAAqC;wBACrC,sBAAsB;wBACtB,0BAA0B;qBAC7B;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {DateTimeControlValueAccessorDirective, DateTimeInputDirective, DateTimeValidatorDirective} from '../directives';\n\n/**\n * Module for basic date time directives, components, pipes\n */\n@NgModule(\n{\n declarations:\n [\n DateTimeControlValueAccessorDirective,\n DateTimeInputDirective,\n DateTimeValidatorDirective,\n ],\n exports:\n [\n DateTimeControlValueAccessorDirective,\n DateTimeInputDirective,\n DateTimeValidatorDirective,\n ],\n})\nexport class DateTimeModule\n{\n}"]}
1
+ {"version":3,"file":"dateTime.module.js","sourceRoot":"","sources":["../../../../../src/modules/dateTime/modules/dateTime.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,qCAAqC,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,0BAA0B,EAAC,MAAM,eAAe,CAAC;;AAEtL;;GAEG;AAoBH,MAAM,OAAO,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBAfnB,qCAAqC;QACrC,sBAAsB;QACtB,6BAA6B;QAC7B,6BAA6B;QAC7B,0BAA0B,aAI1B,qCAAqC;QACrC,sBAAsB;QACtB,6BAA6B;QAC7B,6BAA6B;QAC7B,0BAA0B;4GAGrB,cAAc;2FAAd,cAAc;kBAnB1B,QAAQ;mBACT;oBACI,YAAY,EACZ;wBACI,qCAAqC;wBACrC,sBAAsB;wBACtB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,0BAA0B;qBAC7B;oBACD,OAAO,EACP;wBACI,qCAAqC;wBACrC,sBAAsB;wBACtB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,0BAA0B;qBAC7B;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {DateTimeControlValueAccessorDirective, DateTimeInputDirective, DateTimeMaxValidatorDirective, DateTimeMinValidatorDirective, DateTimeValidatorDirective} from '../directives';\n\n/**\n * Module for basic date time directives, components, pipes\n */\n@NgModule(\n{\n declarations:\n [\n DateTimeControlValueAccessorDirective,\n DateTimeInputDirective,\n DateTimeMaxValidatorDirective,\n DateTimeMinValidatorDirective,\n DateTimeValidatorDirective,\n ],\n exports:\n [\n DateTimeControlValueAccessorDirective,\n DateTimeInputDirective,\n DateTimeMaxValidatorDirective,\n DateTimeMinValidatorDirective,\n DateTimeValidatorDirective,\n ],\n})\nexport class DateTimeModule\n{\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePositionParser.interface.js","sourceRoot":"","sources":["../../../../src/services/datePositionParser/datePositionParser.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Parser used for parsing date using provided format and returning positions and selected date part\n */\nexport interface DatePositionParser\n{\n /**\n * Parse date as string and returns information about positions and selected part of date\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n parse(date: string, cursorPosition: number): DatePositionParserResult;\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to next part, if it was last part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n next(date: string, cursorPosition: number): null|DatePositionParserResult;\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to previous part, if it was first part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n previous(date: string, cursorPosition: number): null|DatePositionParserResult;\n}\n\n/**\n * Result of date position parsing\n */\nexport interface DatePositionParserResult\n{\n /**\n * Index of charater where returned part of date starts\n */\n positionFrom: number;\n\n /**\n * Index of charater where returned part of date ends\n */\n positionTo: number;\n\n /**\n * Type of part that is selected\n */\n part: string;\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePositionParser.service.js","sourceRoot":"","sources":["../../../../src/services/datePositionParser/datePositionParser.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\nimport {isBlank} from '@jscrpt/common';\n\nimport {DatePositionParser, DatePositionParserResult} from './datePositionParser.interface';\n\n/**\n * Service used for parsing date\n */\n@Injectable({providedIn: 'root'})\nexport class DatePositionParserService\n{\n //######################### public methods #########################\n\n /**\n * Creates parser instance for specified format\n * @param format - Format to be used for parsing date string\n */\n public createParser(format: string): DatePositionParser\n {\n return new DefaultDatePositionParser(format);\n }\n}\n\n/**\n * Default implementation of DatePositionParser\n */\nexport class DefaultDatePositionParser implements DatePositionParser\n{\n //######################### protected fields #########################\n\n /**\n * Indication whether format contains separators\n */\n protected _hasSeparator: boolean = false;\n\n /**\n * Array of date parts of parsed date format\n */\n protected _datePartsIndexes: string[] = [];\n\n /**\n * Object storing indexes for strict date parts of parsed date format\n */\n protected _strictDatePartsIndexes: {[index: number]: {part: string, length: number}} = {};\n\n //######################### constructor #########################\n constructor(protected _format: string)\n {\n this._initialize();\n }\n\n //######################### public methods - implementation of DatePositionParser #########################\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to next part, if it was last part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public next(date: string|null|undefined, cursorPosition: number): null|DatePositionParserResult\n {\n if(isBlank(date))\n {\n return null;\n }\n\n //non strict format\n if(this._hasSeparator)\n {\n let useNext = false;\n\n while(true)\n {\n if(cursorPosition == date.length)\n {\n return null;\n }\n\n if(useNext && !isNaN(+date[cursorPosition]))\n {\n return this.parse(date, cursorPosition);\n }\n\n if(isNaN(+date[cursorPosition]))\n {\n useNext = true;\n }\n\n cursorPosition++;\n }\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition < index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to previous part, if it was first part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public previous(date: string|null|undefined, cursorPosition: number): null|DatePositionParserResult\n {\n if(isBlank(date))\n {\n return null;\n }\n\n //non strict format\n if(this._hasSeparator)\n {\n let useNext = false;\n\n while(true)\n {\n if(cursorPosition < 0)\n {\n return null;\n }\n\n if(useNext && !isNaN(+date[cursorPosition]))\n {\n return this.parse(date, cursorPosition);\n }\n\n if(isNaN(+date[cursorPosition]))\n {\n useNext = true;\n }\n\n cursorPosition--;\n }\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition > index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Parse date as string and returns information about positions and selected part of date\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public parse(date: string|null|undefined, cursorPosition: number): DatePositionParserResult\n {\n if(isBlank(date))\n {\n return {\n part: '',\n positionFrom: 0,\n positionTo: 0\n };\n }\n\n //non strict format\n if(this._hasSeparator)\n {\n //fix cursor position if is clicked on separator\n if(cursorPosition != date.length &&\n /[^0-9ɵ]/.test(date[cursorPosition]) &&\n /[^0-9ɵ]/.test(date[cursorPosition - 1]))\n {\n let breakCycle = false;\n cursorPosition++;\n\n while(/[^0-9ɵ]/.test(date[cursorPosition]))\n {\n if(cursorPosition >= date.length)\n {\n if(breakCycle)\n {\n return {\n part: '',\n positionFrom: 0,\n positionTo: 0\n };\n }\n\n breakCycle = true;\n cursorPosition = 0;\n }\n\n cursorPosition++;\n }\n }\n\n const updateDate = [date.substr(0, cursorPosition), 'ɵ', date.substr(cursorPosition)].join('');\n const indexed = updateDate.replace(/[^0-9ɵ]/g, ' ').split(' ');\n let partIndex = 0;\n let startPosition = 0;\n let selectionLength = 0;\n\n for(const itm of indexed)\n {\n //this segment contains cursor\n if(itm.indexOf('ɵ') >= 0)\n {\n selectionLength = itm.length - 1;\n\n break;\n }\n\n startPosition++;\n\n //separator\n if(!itm.length)\n {\n continue;\n }\n\n partIndex++;\n startPosition += itm.length;\n }\n\n return {\n part: this._datePartsIndexes[partIndex],\n positionFrom: startPosition,\n positionTo: startPosition + selectionLength\n };\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition >= index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return {\n part: '',\n positionFrom: 0,\n positionTo: 0\n };\n }\n\n /**\n * Initialize parser, process format\n */\n protected _initialize(): void\n {\n this._hasSeparator = /[^yqmwdhs]/i.test(this._format);\n\n //non strict format\n if(this._hasSeparator)\n {\n this._datePartsIndexes = this._format.replace(/[^yqmwdhs]+/gi, ' ')\n .split(' ')\n .filter(itm => !!itm)\n .map(itm => itm[0]);\n }\n //strict format\n else\n {\n let lastPart: string|null = null;\n let lastIndex: number = 0;\n\n for(let x = 0; x < this._format.length; x++)\n {\n //next part\n if(this._format[x] != lastPart)\n {\n if(x > 0)\n {\n this._strictDatePartsIndexes[lastIndex].length = x - lastIndex;\n }\n\n lastIndex = x;\n lastPart = this._format[x];\n\n this._strictDatePartsIndexes[x] =\n {\n length: 0,\n part: this._format[x]\n };\n }\n }\n\n this._strictDatePartsIndexes[lastIndex].length = this._format.length - lastIndex;\n }\n }\n}"]}
@@ -1,6 +1,6 @@
1
1
  import { Injectable, Injector } from '@angular/core';
2
2
  import { isString } from '@jscrpt/common';
3
- import { DATE_API } from '../misc/tokens';
3
+ import { DATE_API } from '../../misc/tokens';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Service used for parsing relative date time strings
@@ -16,26 +16,26 @@ export class DateTimeRelativeParser {
16
16
  * @param value - Value to be parsed
17
17
  *
18
18
  * @summary
19
- * i - for minutes
19
+ * m - for minutes
20
20
  * h - for hours
21
21
  * d - for days
22
22
  * w - for weeks
23
- * m - for months
23
+ * M - for months
24
24
  * y - for years
25
25
  */
26
26
  parse(value) {
27
27
  var _a;
28
- const regex = /([+-])\s*(\d+)\s*([ihdwmy])/;
28
+ const regex = /([+-])\s*(\d+)\s*([hmdwMy])/;
29
+ let matches = null;
29
30
  //relative date provided
30
- if (isString(value) && regex.test(value)) {
31
- const matches = regex.exec(value);
31
+ if (isString(value) && (matches = regex.exec(value))) {
32
32
  const operation = matches[1];
33
33
  const amount = matches[2];
34
34
  const period = matches[3];
35
35
  this._dateApi = (_a = this._dateApi) !== null && _a !== void 0 ? _a : this._injector.get(DATE_API);
36
36
  const now = this._dateApi.now();
37
37
  switch (period) {
38
- case 'i':
38
+ case 'm':
39
39
  {
40
40
  operation == '+' ? now.addMinutes(+amount).endOfMinute() : now.subtractMinutes(+amount).startOfMinute();
41
41
  break;
@@ -55,7 +55,7 @@ export class DateTimeRelativeParser {
55
55
  operation == '+' ? now.addWeeks(+amount).endOfDay() : now.subtractWeeks(+amount).startOfDay();
56
56
  break;
57
57
  }
58
- case 'm':
58
+ case 'M':
59
59
  {
60
60
  operation == '+' ? now.addMonths(+amount).endOfDay() : now.subtractMonths(+amount).startOfDay();
61
61
  break;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateTimeRelativeParser.service.js","sourceRoot":"","sources":["../../../../src/services/dateTimeRelativeParser/dateTimeRelativeParser.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable, Injector} from '@angular/core';\nimport {isString} from '@jscrpt/common';\n\nimport {DATE_API} from '../../misc/tokens';\nimport {DateApi, DateApiObject, DateValue} from '../dateApi/dateApi.interface';\n\n/**\n * Service used for parsing relative date time strings\n */\n@Injectable({providedIn: 'root'})\nexport class DateTimeRelativeParser<TDate = any>\n{\n //######################### protected fields #########################\n \n /**\n * Date api for handling\n */\n protected _dateApi?: DateApi<TDate, DateApiObject>;\n\n //######################### constructor #########################\n constructor(protected _injector: Injector)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Tries to parse relative value and returns parsed TDate, otherwise returns input value\n * @param value - Value to be parsed\n * \n * @summary\n * m - for minutes\n * h - for hours\n * d - for days\n * w - for weeks\n * M - for months\n * y - for years\n */\n public parse(value: TDate|DateValue): TDate|DateValue\n {\n const regex = /([+-])\\s*(\\d+)\\s*([hmdwMy])/;\n let matches: RegExpExecArray | null = null;\n\n //relative date provided\n if(isString(value) && (matches = regex.exec(value)))\n {\n const operation = matches[1];\n const amount = matches[2];\n const period = matches[3];\n this._dateApi = this._dateApi ?? this._injector.get(DATE_API);\n const now = this._dateApi.now();\n\n switch(period)\n {\n case 'm':\n {\n operation == '+' ? now.addMinutes(+amount).endOfMinute() : now.subtractMinutes(+amount).startOfMinute();\n\n break;\n }\n case 'h':\n {\n operation == '+' ? now.addHours(+amount).endOfHour() : now.subtractHours(+amount).startOfHour();\n\n break;\n }\n case 'd':\n {\n operation == '+' ? now.addDays(+amount).endOfDay() : now.subtractDays(+amount).startOfDay();\n\n break;\n }\n case 'w':\n {\n operation == '+' ? now.addWeeks(+amount).endOfDay() : now.subtractWeeks(+amount).startOfDay();\n\n break;\n }\n case 'M':\n {\n operation == '+' ? now.addMonths(+amount).endOfDay() : now.subtractMonths(+amount).startOfDay();\n\n break;\n }\n case 'y':\n {\n operation == '+' ? now.addYears(+amount).endOfDay() : now.subtractYears(+amount).startOfDay();\n\n break;\n }\n }\n\n value = now.value;\n }\n\n return value;\n }\n}"]}
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { DATE_API } from '../misc/tokens';
2
+ import { DATE_API } from '../../misc/tokens';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Class used for obtaining DateTimeValue for various formats
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateValueProvider.service.js","sourceRoot":"","sources":["../../../../src/services/dateValueProvider/dateValueProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;;AAG3C;;GAEG;AAEH,MAAM,OAAO,iBAAiB;IAE1B,iEAAiE;IACjE,YAAwC,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAEhE,CAAC;IAED,oEAAoE;IAEpE;;;;OAIG;IACI,QAAQ,CAAC,KAAY,EAAE,MAAc;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,KAAK,GAAU,KAAK,CAAC;QACzB,IAAI,GAAG,GAAU,KAAK,CAAC;QAEvB,QAAQ;QACR,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAC/B;YACI,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;YAClC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;SACjC;QACD,MAAM;aACD,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;SAC/B;QACD,KAAK;aACA,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;YAC/B,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAC9B;QACD,MAAM;aACD,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;SAC/B;QACD,OAAO;aACF,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACjC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;SAChC;QACD,MAAM;aACD,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpE;YACI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;SAC/B;QAED,OAAO;YACH,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,GAAG;SACV,CAAC;IACN,CAAC;;8GA9DQ,iBAAiB,kBAGN,QAAQ;kHAHnB,iBAAiB,cADL,MAAM;2FAClB,iBAAiB;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAIf,MAAM;2BAAC,QAAQ","sourcesContent":["import {Inject, Injectable} from '@angular/core';\n\nimport {DateTimeValue} from '../../interfaces/dateTime/datetime.interface';\nimport {DATE_API} from '../../misc/tokens';\nimport {DateApi} from '../dateApi/dateApi.interface';\n\n/**\n * Class used for obtaining DateTimeValue for various formats\n */\n@Injectable({providedIn: 'root'})\nexport class DateValueProvider<TDate = any>\n{\n //######################### constructor #########################\n constructor(@Inject(DATE_API) protected _dateApi: DateApi<TDate>)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets DateTimeValue from single value based on format\n * @param value - Current value to be converted to ranged value\n * @param format - Format that is requested to be displayed, it tells what range should be created\n */\n public getValue(value: TDate, format: string): DateTimeValue<TDate>\n {\n const val = this._dateApi.getValue(value, format);\n const fullFormat = this._dateApi.getFormat(format);\n let start: TDate = value;\n let end: TDate = value;\n\n //minute\n if(fullFormat.indexOf('m') >= 0)\n {\n start = val.startOfMinute().value;\n end = val.endOfMinute().value;\n }\n //hour\n else if(fullFormat.indexOf('H') >= 0)\n {\n start = val.startOfHour().value;\n end = val.endOfHour().value;\n }\n //day\n else if(fullFormat.indexOf('d') >= 0)\n {\n start = val.startOfDay().value;\n end = val.endOfDay().value;\n }\n //week\n else if(fullFormat.indexOf('w') >= 0)\n {\n start = val.startOfWeek().value;\n end = val.endOfWeek().value;\n }\n //month\n else if(fullFormat.indexOf('M') >= 0)\n {\n start = val.startOfMonth().value;\n end = val.endOfMonth().value;\n }\n //year\n else if(fullFormat.indexOf('Y') >= 0 || fullFormat.indexOf('y') >= 0)\n {\n start = val.startOfYear().value;\n end = val.endOfYear().value;\n }\n\n return {\n from: start,\n to: end\n };\n }\n}"]}
@@ -1,3 +1,6 @@
1
1
  export * from './dateApi/dateApi.interface';
2
- export * from './datePositionParser.interface';
2
+ export * from './datePositionParser/datePositionParser.interface';
3
+ export * from './datePositionParser/datePositionParser.service';
4
+ export * from './dateTimeRelativeParser/dateTimeRelativeParser.service';
5
+ export * from './dateValueProvider/dateValueProvider.service';
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './dateApi/dateApi.interface';\nexport * from './datePositionParser.interface';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AACxE,cAAc,+CAA+C,CAAC","sourcesContent":["export * from './dateApi/dateApi.interface';\nexport * from './datePositionParser/datePositionParser.interface';\nexport * from './datePositionParser/datePositionParser.service';\nexport * from './dateTimeRelativeParser/dateTimeRelativeParser.service';\nexport * from './dateValueProvider/dateValueProvider.service';\n"]}
@@ -15,9 +15,6 @@ export * from './misc/utils';
15
15
  export * from './misc/validators';
16
16
  export * from './modules';
17
17
  export * from './services';
18
- export * from './services/datePositionParser.service';
19
- export * from './services/dateTimeRelativeParser.service';
20
- export * from './services/dateValueProvider.service';
21
18
  export * from './pipes/dateConvert.pipe';
22
19
  export * from './pipes/dateFormat.pipe';
23
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './interfaces';\nexport * from './legacy/picker/directives';\nexport * from './legacy/picker/interfaces';\nexport * from './legacy/picker/modules/picker.module';\nexport * from './legacy/picker/types';\nexport * from './legacy/selector/interfaces';\nexport * from './legacy/selector/modules/basicSelector.module';\nexport * from './legacy/selector/modules/selector.module';\nexport * from './legacy/selector/types';\nexport * from './misc/constants';\nexport * from './misc/enums';\nexport * from './misc/tokens';\nexport * from './misc/types';\nexport * from './misc/utils';\nexport * from './misc/validators';\nexport * from './modules';\nexport * from './services';\nexport * from './services/datePositionParser.service';\nexport * from './services/dateTimeRelativeParser.service';\nexport * from './services/dateValueProvider.service';\nexport * from './pipes/dateConvert.pipe';\nexport * from './pipes/dateFormat.pipe';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './interfaces';\nexport * from './legacy/picker/directives';\nexport * from './legacy/picker/interfaces';\nexport * from './legacy/picker/modules/picker.module';\nexport * from './legacy/picker/types';\nexport * from './legacy/selector/interfaces';\nexport * from './legacy/selector/modules/basicSelector.module';\nexport * from './legacy/selector/modules/selector.module';\nexport * from './legacy/selector/types';\nexport * from './misc/constants';\nexport * from './misc/enums';\nexport * from './misc/tokens';\nexport * from './misc/types';\nexport * from './misc/utils';\nexport * from './misc/validators';\nexport * from './modules';\nexport * from './services';\nexport * from './pipes/dateConvert.pipe';\nexport * from './pipes/dateFormat.pipe';"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeInput.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/dateTimeInput/dateTimeInput.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {EventEmitter} from '@angular/core';\n\nimport {DateTimeInputOutputValue} from '../../misc/types';\n\n/**\n * Defines date time input and communication API for it\n */\nexport interface DateTimeInput<TDate = unknown>\n{\n /**\n * Value of date time, raw string value which is visible to user\n */\n rawValue: string|undefined|null;\n\n /**\n * Current value of date time, could be string, TDate object, or ranged DateTimeValue\n */\n value: DateTimeInputOutputValue<TDate>|undefined|null;\n\n /**\n * Indication whether is date time disabled\n */\n disabled: boolean;\n\n /**\n * Occurs when value changes\n */\n valueChange: EventEmitter<void>;\n\n /**\n * Occurs when input gains focus\n */\n focus: EventEmitter<FocusEvent>;\n\n /**\n * Occurs when input loses focus\n */\n blur: EventEmitter<FocusEvent>;\n}"]}
1
+ {"version":3,"file":"dateTimeInput.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/dateTimeInput/dateTimeInput.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {EventEmitter} from '@angular/core';\n\nimport {DateTimeInputOutputValue} from '../../misc/types';\n\n/**\n * Defines date time input value API\n */\nexport interface DateTimeInputValue<TDate = unknown>\n{\n /**\n * Current value of date time, could be string, unix timestamp, Date, TDate object, or ranged DateTimeValue\n */\n value: DateTimeInputOutputValue<TDate>|undefined|null;\n\n /**\n * Occurs when value changes\n */\n valueChange: EventEmitter<void>;\n}\n/**\n * Defines date time input and communication API for it\n */\nexport interface DateTimeInput<TDate = unknown> extends DateTimeInputValue<TDate>\n{\n /**\n * Value of date time, raw string value which is visible to user\n */\n rawValue: string|undefined|null;\n\n /**\n * Indication whether is date time disabled\n */\n disabled: boolean;\n\n /**\n * Occurs when input gains focus\n */\n focus: EventEmitter<FocusEvent>;\n\n /**\n * Occurs when input loses focus\n */\n blur: EventEmitter<FocusEvent>;\n}"]}
@@ -2,11 +2,9 @@ import { Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, ElementR
2
2
  import { isPresent } from '@jscrpt/common';
3
3
  import { Subject } from 'rxjs';
4
4
  import { DATE_API } from '../../../../misc/tokens';
5
- import { DatePositionParserService } from '../../../../services/datePositionParser.service';
6
- import { DateValueProvider } from '../../../../services/dateValueProvider.service';
5
+ import { DatePositionParserService, DateValueProvider } from '../../../../services';
7
6
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../../services/datePositionParser.service";
9
- import * as i2 from "../../../../services/dateValueProvider.service";
7
+ import * as i1 from "../../../../services";
10
8
  /**
11
9
  * Component used as datetime selector with input
12
10
  */
@@ -420,7 +418,7 @@ export class InputDateTimeSelectorComponent {
420
418
  }
421
419
  }
422
420
  }
423
- InputDateTimeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: InputDateTimeSelectorComponent, deps: [{ token: DATE_API }, { token: i1.DatePositionParserService }, { token: i2.DateValueProvider }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
421
+ InputDateTimeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: InputDateTimeSelectorComponent, deps: [{ token: DATE_API }, { token: i1.DatePositionParserService }, { token: i1.DateValueProvider }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
424
422
  InputDateTimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: InputDateTimeSelectorComponent, selector: "input-date-time-selector", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input type=\"text\"\r\n #input\r\n (focus)=\"handleFocus()\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"handleInput()\"\r\n (click)=\"handleClick()\"\r\n (select)=\"handleSelect()\"\r\n (keydown)=\"handleKeyboard($any($event))\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder ?? ''\">", styles: [":host\r\n{\r\n display: block;\r\n}\r\n\r\ninput\r\n{\r\n width: 100%;\r\n}"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
425
423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: InputDateTimeSelectorComponent, decorators: [{
426
424
  type: Component,
@@ -428,7 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImpor
428
426
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
429
427
  type: Inject,
430
428
  args: [DATE_API]
431
- }] }, { type: i1.DatePositionParserService }, { type: i2.DateValueProvider }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
429
+ }] }, { type: i1.DatePositionParserService }, { type: i1.DateValueProvider }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
432
430
  type: ViewChild,
433
431
  args: ['input', { static: true }]
434
432
  }] } });