@anglr/datetime 3.0.0-beta.20220315103241 → 3.0.0-beta.20220328062817
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/changelog.md +86 -0
- package/date-fns/src/misc/tokens.d.ts.map +1 -1
- package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
- package/es2015/date-fns/src/misc/tokens.js +12 -1
- package/es2015/date-fns/src/misc/tokens.js.map +1 -1
- package/es2015/date-fns/src/services/dateFnsDateApi.service.js +99 -5
- package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -1
- package/es2015/moment/src/misc/tokens.js +12 -1
- package/es2015/moment/src/misc/tokens.js.map +1 -1
- package/es2015/moment/src/services/momentDateApi.service.js +90 -0
- package/es2015/moment/src/services/momentDateApi.service.js.map +1 -1
- package/es2015/src/index.js +1 -0
- package/es2015/src/index.js.map +1 -1
- package/es2015/src/misc/datetime.interface.js.map +1 -1
- package/es2015/src/misc/tokens.js +12 -1
- package/es2015/src/misc/tokens.js.map +1 -1
- package/es2015/src/modules/datePipes.module.js +2 -7
- package/es2015/src/modules/datePipes.module.js.map +1 -1
- package/es2015/src/picker/components/clockTimePicker/clockTimePicker.component.js +14 -0
- package/es2015/src/picker/components/clockTimePicker/clockTimePicker.component.js.map +1 -0
- package/es2015/src/picker/components/clockTimePicker/clockTimePicker.interface.js +2 -0
- package/es2015/src/picker/components/clockTimePicker/clockTimePicker.interface.js.map +1 -0
- package/es2015/src/picker/components/dayPicker/dayPicker.component.js +49 -13
- package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -1
- package/es2015/src/picker/components/monthPicker/monthPicker.component.js +5 -4
- package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -1
- package/es2015/src/picker/components/picker/picker.component.js +3 -2
- package/es2015/src/picker/components/picker/picker.component.js.map +1 -1
- package/es2015/src/picker/components/pickerBase.component.js +15 -120
- package/es2015/src/picker/components/pickerBase.component.js.map +1 -1
- package/es2015/src/picker/components/pickerImplBase.component.js +145 -0
- package/es2015/src/picker/components/pickerImplBase.component.js.map +1 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.component.js +144 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.component.js.map +1 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.data.js +341 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.data.js.map +1 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js +2 -0
- package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js.map +1 -0
- package/es2015/src/picker/components/yearPicker/yearPicker.component.js +5 -4
- package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -1
- package/es2015/src/picker/directives/index.js +4 -0
- package/es2015/src/picker/directives/index.js.map +1 -0
- package/es2015/src/picker/directives/loopScroll/loopScroll.directive.js +200 -0
- package/es2015/src/picker/directives/loopScroll/loopScroll.directive.js.map +1 -0
- package/es2015/src/picker/directives/loopScroll/loopScroll.interface.js +3 -0
- package/es2015/src/picker/directives/loopScroll/loopScroll.interface.js.map +1 -0
- package/es2015/src/picker/directives/loopScrollData/loopScrollData.directive.js +23 -0
- package/es2015/src/picker/directives/loopScrollData/loopScrollData.directive.js.map +1 -0
- package/es2015/src/picker/interfaces.js +1 -0
- package/es2015/src/picker/interfaces.js.map +1 -1
- package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -1
- package/es2015/src/picker/modules/picker.module.js +21 -4
- package/es2015/src/picker/modules/picker.module.js.map +1 -1
- package/es2015/src/picker/types.js +2 -0
- package/es2015/src/picker/types.js.map +1 -1
- package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +16 -2
- package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
- package/es2015/src/selector/components/selector/selector.component.js +25 -12
- package/es2015/src/selector/components/selector/selector.component.js.map +1 -1
- package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +6 -2
- package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
- package/es2015/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js +134 -0
- package/es2015/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js.map +1 -0
- package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -1
- package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -1
- package/es2015/src/selector/misc/tokens.js.map +1 -1
- package/es2015/src/selector/modules/selector.module.js +9 -4
- package/es2015/src/selector/modules/selector.module.js.map +1 -1
- package/es2015/src/selector/types.js +1 -0
- package/es2015/src/selector/types.js.map +1 -1
- package/es2015/src/services/dateApi.interface.js.map +1 -1
- package/es2015/src/services/datePositionParser.service.js +14 -0
- package/es2015/src/services/datePositionParser.service.js.map +1 -1
- package/es2015/src/services/dateTimeRelativeParser.service.js +15 -1
- package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -1
- package/es2015/src/services/dateValueProvider.service.js +10 -5
- package/es2015/src/services/dateValueProvider.service.js.map +1 -1
- package/es2015/src/services/formatProvider.interface.js.map +1 -1
- package/es2020/date-fns/src/misc/tokens.js +12 -1
- package/es2020/date-fns/src/misc/tokens.js.map +1 -1
- package/es2020/date-fns/src/services/dateFnsDateApi.service.js +99 -5
- package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -1
- package/es2020/moment/src/misc/tokens.js +12 -1
- package/es2020/moment/src/misc/tokens.js.map +1 -1
- package/es2020/moment/src/services/momentDateApi.service.js +90 -0
- package/es2020/moment/src/services/momentDateApi.service.js.map +1 -1
- package/es2020/src/index.js +1 -0
- package/es2020/src/index.js.map +1 -1
- package/es2020/src/misc/datetime.interface.js.map +1 -1
- package/es2020/src/misc/tokens.js +12 -1
- package/es2020/src/misc/tokens.js.map +1 -1
- package/es2020/src/modules/datePipes.module.js +2 -7
- package/es2020/src/modules/datePipes.module.js.map +1 -1
- package/es2020/src/picker/components/clockTimePicker/clockTimePicker.component.js +14 -0
- package/es2020/src/picker/components/clockTimePicker/clockTimePicker.component.js.map +1 -0
- package/es2020/src/picker/components/clockTimePicker/clockTimePicker.interface.js +2 -0
- package/es2020/src/picker/components/clockTimePicker/clockTimePicker.interface.js.map +1 -0
- package/es2020/src/picker/components/dayPicker/dayPicker.component.js +49 -13
- package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -1
- package/es2020/src/picker/components/monthPicker/monthPicker.component.js +5 -4
- package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -1
- package/es2020/src/picker/components/picker/picker.component.js +3 -2
- package/es2020/src/picker/components/picker/picker.component.js.map +1 -1
- package/es2020/src/picker/components/pickerBase.component.js +15 -120
- package/es2020/src/picker/components/pickerBase.component.js.map +1 -1
- package/es2020/src/picker/components/pickerImplBase.component.js +145 -0
- package/es2020/src/picker/components/pickerImplBase.component.js.map +1 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.component.js +138 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.component.js.map +1 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.data.js +341 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.data.js.map +1 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js +2 -0
- package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js.map +1 -0
- package/es2020/src/picker/components/yearPicker/yearPicker.component.js +5 -4
- package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -1
- package/es2020/src/picker/directives/index.js +4 -0
- package/es2020/src/picker/directives/index.js.map +1 -0
- package/es2020/src/picker/directives/loopScroll/loopScroll.directive.js +191 -0
- package/es2020/src/picker/directives/loopScroll/loopScroll.directive.js.map +1 -0
- package/es2020/src/picker/directives/loopScroll/loopScroll.interface.js +3 -0
- package/es2020/src/picker/directives/loopScroll/loopScroll.interface.js.map +1 -0
- package/es2020/src/picker/directives/loopScrollData/loopScrollData.directive.js +23 -0
- package/es2020/src/picker/directives/loopScrollData/loopScrollData.directive.js.map +1 -0
- package/es2020/src/picker/interfaces.js +1 -0
- package/es2020/src/picker/interfaces.js.map +1 -1
- package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -1
- package/es2020/src/picker/modules/picker.module.js +21 -4
- package/es2020/src/picker/modules/picker.module.js.map +1 -1
- package/es2020/src/picker/types.js +2 -0
- package/es2020/src/picker/types.js.map +1 -1
- package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +16 -2
- package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
- package/es2020/src/selector/components/selector/selector.component.js +22 -11
- package/es2020/src/selector/components/selector/selector.component.js.map +1 -1
- package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +6 -2
- package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
- package/es2020/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js +133 -0
- package/es2020/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js.map +1 -0
- package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -1
- package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -1
- package/es2020/src/selector/misc/tokens.js.map +1 -1
- package/es2020/src/selector/modules/selector.module.js +9 -4
- package/es2020/src/selector/modules/selector.module.js.map +1 -1
- package/es2020/src/selector/types.js +1 -0
- package/es2020/src/selector/types.js.map +1 -1
- package/es2020/src/services/dateApi.interface.js.map +1 -1
- package/es2020/src/services/datePositionParser.service.js +14 -0
- package/es2020/src/services/datePositionParser.service.js.map +1 -1
- package/es2020/src/services/dateTimeRelativeParser.service.js +15 -1
- package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -1
- package/es2020/src/services/dateValueProvider.service.js +10 -5
- package/es2020/src/services/dateValueProvider.service.js.map +1 -1
- package/es2020/src/services/formatProvider.interface.js.map +1 -1
- package/moment/src/misc/tokens.d.ts.map +1 -1
- package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/dark.scss +31 -28
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/misc/datetime.interface.d.ts +1 -1
- package/src/misc/datetime.interface.d.ts.map +1 -1
- package/src/misc/tokens.d.ts.map +1 -1
- package/src/modules/datePipes.module.d.ts +3 -4
- package/src/modules/datePipes.module.d.ts.map +1 -1
- package/src/picker/components/clockTimePicker/clockTimePicker.component.css +0 -0
- package/src/picker/components/clockTimePicker/clockTimePicker.component.d.ts +9 -0
- package/src/picker/components/clockTimePicker/clockTimePicker.component.d.ts.map +1 -0
- package/src/picker/components/clockTimePicker/clockTimePicker.component.html +0 -0
- package/src/picker/components/clockTimePicker/clockTimePicker.interface.d.ts +6 -0
- package/src/picker/components/clockTimePicker/clockTimePicker.interface.d.ts.map +1 -0
- package/src/picker/components/dayPicker/dayPicker.component.d.ts +6 -0
- package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
- package/src/picker/components/dayPicker/dayPicker.component.html +11 -7
- package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
- package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
- package/src/picker/components/picker/picker.component.css +4 -0
- package/src/picker/components/picker/picker.component.d.ts +3 -3
- package/src/picker/components/picker/picker.component.d.ts.map +1 -1
- package/src/picker/components/pickerBase.component.d.ts +7 -97
- package/src/picker/components/pickerBase.component.d.ts.map +1 -1
- package/src/picker/components/pickerImplBase.component.d.ts +128 -0
- package/src/picker/components/pickerImplBase.component.d.ts.map +1 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.component.css +40 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.component.d.ts +71 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.component.d.ts.map +1 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.component.html +41 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.data.d.ts +4 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.data.d.ts.map +1 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.interface.d.ts +6 -0
- package/src/picker/components/rollerTimePicker/rollerTimePicker.interface.d.ts.map +1 -0
- package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
- package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
- package/src/picker/directives/index.d.ts +4 -0
- package/src/picker/directives/index.d.ts.map +1 -0
- package/src/picker/directives/loopScroll/loopScroll.directive.d.ts +73 -0
- package/src/picker/directives/loopScroll/loopScroll.directive.d.ts.map +1 -0
- package/src/picker/directives/loopScroll/loopScroll.interface.d.ts +14 -0
- package/src/picker/directives/loopScroll/loopScroll.interface.d.ts.map +1 -0
- package/src/picker/directives/loopScrollData/loopScrollData.directive.d.ts +16 -0
- package/src/picker/directives/loopScrollData/loopScrollData.directive.d.ts.map +1 -0
- package/src/picker/interfaces.d.ts +1 -0
- package/src/picker/interfaces.d.ts.map +1 -1
- package/src/picker/misc/datetimePicker.interface.d.ts +14 -10
- package/src/picker/misc/datetimePicker.interface.d.ts.map +1 -1
- package/src/picker/modules/picker.module.d.ts +10 -7
- package/src/picker/modules/picker.module.d.ts.map +1 -1
- package/src/picker/types.d.ts +2 -0
- package/src/picker/types.d.ts.map +1 -1
- package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +2 -2
- package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
- package/src/selector/components/inputDateTime/inputDateTime.component.html +1 -1
- package/src/selector/components/selector/selector.component.d.ts +7 -6
- package/src/selector/components/selector/selector.component.d.ts.map +1 -1
- package/src/selector/components/selector/selector.component.html +6 -5
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +1 -1
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.html +1 -1
- package/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.d.ts +80 -0
- package/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.d.ts.map +1 -0
- package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
- package/src/selector/misc/datetimeSelector.interface.d.ts +16 -3
- package/src/selector/misc/datetimeSelector.interface.d.ts.map +1 -1
- package/src/selector/misc/tokens.d.ts +1 -1
- package/src/selector/misc/tokens.d.ts.map +1 -1
- package/src/selector/modules/selector.module.d.ts +5 -4
- package/src/selector/modules/selector.module.d.ts.map +1 -1
- package/src/selector/types.d.ts +1 -0
- package/src/selector/types.d.ts.map +1 -1
- package/src/services/dateApi.interface.d.ts +72 -0
- package/src/services/dateApi.interface.d.ts.map +1 -1
- package/src/services/datePositionParser.service.d.ts +3 -3
- package/src/services/datePositionParser.service.d.ts.map +1 -1
- package/src/services/dateTimeRelativeParser.service.d.ts +8 -0
- package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
- package/src/services/dateValueProvider.service.d.ts.map +1 -1
- package/src/services/formatProvider.interface.d.ts +48 -4
- package/src/services/formatProvider.interface.d.ts.map +1 -1
- package/version.bak +1 -1
- package/es2015/src/pipes/asRequiredType.js +0 -22
- package/es2015/src/pipes/asRequiredType.js.map +0 -1
- package/es2020/src/pipes/asRequiredType.js +0 -22
- package/es2020/src/pipes/asRequiredType.js.map +0 -1
- package/src/pipes/asRequiredType.d.ts +0 -21
- package/src/pipes/asRequiredType.d.ts.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { isBlank } from '@jscrpt/common';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
4
5
|
* Service used for parsing date
|
|
@@ -48,6 +49,9 @@ export class DefaultDatePositionParser {
|
|
|
48
49
|
* @param cursorPosition - Current cursor position
|
|
49
50
|
*/
|
|
50
51
|
next(date, cursorPosition) {
|
|
52
|
+
if (isBlank(date)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
51
55
|
//non strict format
|
|
52
56
|
if (this._hasSeparator) {
|
|
53
57
|
let useNext = false;
|
|
@@ -85,6 +89,9 @@ export class DefaultDatePositionParser {
|
|
|
85
89
|
* @param cursorPosition - Current cursor position
|
|
86
90
|
*/
|
|
87
91
|
previous(date, cursorPosition) {
|
|
92
|
+
if (isBlank(date)) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
88
95
|
//non strict format
|
|
89
96
|
if (this._hasSeparator) {
|
|
90
97
|
let useNext = false;
|
|
@@ -122,6 +129,13 @@ export class DefaultDatePositionParser {
|
|
|
122
129
|
* @param cursorPosition - Current cursor position
|
|
123
130
|
*/
|
|
124
131
|
parse(date, cursorPosition) {
|
|
132
|
+
if (isBlank(date)) {
|
|
133
|
+
return {
|
|
134
|
+
part: '',
|
|
135
|
+
positionFrom: 0,
|
|
136
|
+
positionTo: 0
|
|
137
|
+
};
|
|
138
|
+
}
|
|
125
139
|
//non strict format
|
|
126
140
|
if (this._hasSeparator) {
|
|
127
141
|
//fix cursor position if is clicked on separator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datePositionParser.service.js","sourceRoot":"","sources":["../../../src/services/datePositionParser.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\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, cursorPosition: number): null|DatePositionParserResult\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, cursorPosition: number): null|DatePositionParserResult\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, cursorPosition: number): DatePositionParserResult\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()\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
|
+
{"version":3,"file":"datePositionParser.service.js","sourceRoot":"","sources":["../../../src/services/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}"]}
|
|
@@ -14,9 +14,17 @@ export class DateTimeRelativeParser {
|
|
|
14
14
|
/**
|
|
15
15
|
* Tries to parse relative value and returns parsed TDate, otherwise returns input value
|
|
16
16
|
* @param value - Value to be parsed
|
|
17
|
+
*
|
|
18
|
+
* @summary
|
|
19
|
+
* i - for minutes
|
|
20
|
+
* h - for hours
|
|
21
|
+
* d - for days
|
|
22
|
+
* w - for weeks
|
|
23
|
+
* m - for months
|
|
24
|
+
* y - for years
|
|
17
25
|
*/
|
|
18
26
|
parse(value) {
|
|
19
|
-
const regex = /([+-])\s*(\d+)\s*([
|
|
27
|
+
const regex = /([+-])\s*(\d+)\s*([ihdwmy])/;
|
|
20
28
|
//relative date provided
|
|
21
29
|
if (isString(value) && regex.test(value)) {
|
|
22
30
|
const matches = regex.exec(value);
|
|
@@ -26,8 +34,14 @@ export class DateTimeRelativeParser {
|
|
|
26
34
|
this._dateApi = this._dateApi ?? this._injector.get(DATE_API);
|
|
27
35
|
const now = this._dateApi.now();
|
|
28
36
|
switch (period) {
|
|
37
|
+
case 'i':
|
|
38
|
+
{
|
|
39
|
+
operation == '+' ? now.addMinutes(+amount).endOfMinute() : now.subtractMinutes(+amount).startOfMinute();
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
29
42
|
case 'h':
|
|
30
43
|
{
|
|
44
|
+
operation == '+' ? now.addHours(+amount).endOfHour() : now.subtractHours(+amount).startOfHour();
|
|
31
45
|
break;
|
|
32
46
|
}
|
|
33
47
|
case 'd':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateTimeRelativeParser.service.js","sourceRoot":"","sources":["../../../src/services/dateTimeRelativeParser.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;GAEG;AAEH,MAAM,OAAO,sBAAsB;IAS/B,iEAAiE;IACjE,YAAsB,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAEzC,CAAC;IAED,oEAAoE;IAEpE
|
|
1
|
+
{"version":3,"file":"dateTimeRelativeParser.service.js","sourceRoot":"","sources":["../../../src/services/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, DateValue} from './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>;\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 * i - 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*([ihdwmy])/;\n\n //relative date provided\n if(isString(value) && regex.test(value))\n {\n const matches = regex.exec(value);\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 'i':\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}"]}
|
|
@@ -19,11 +19,16 @@ export class DateValueProvider {
|
|
|
19
19
|
const val = this._dateApi.getValue(value, format);
|
|
20
20
|
const fullFormat = this._dateApi.getFormat(format);
|
|
21
21
|
let start = value;
|
|
22
|
-
let end;
|
|
23
|
-
//
|
|
24
|
-
if (fullFormat.indexOf('
|
|
25
|
-
start = val.
|
|
26
|
-
end = val.
|
|
22
|
+
let end = value;
|
|
23
|
+
//minute
|
|
24
|
+
if (fullFormat.indexOf('m') >= 0) {
|
|
25
|
+
start = val.startOfMinute().value;
|
|
26
|
+
end = val.endOfMinute().value;
|
|
27
|
+
}
|
|
28
|
+
//hour
|
|
29
|
+
else if (fullFormat.indexOf('H') >= 0) {
|
|
30
|
+
start = val.startOfHour().value;
|
|
31
|
+
end = val.endOfHour().value;
|
|
27
32
|
}
|
|
28
33
|
//week
|
|
29
34
|
else if (fullFormat.indexOf('w') >= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateValueProvider.service.js","sourceRoot":"","sources":["../../../src/services/dateValueProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;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,GAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dateValueProvider.service.js","sourceRoot":"","sources":["../../../src/services/dateValueProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;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,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;;8GAxDQ,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 '../misc/datetime.interface';\nimport {DATE_API} from '../misc/tokens';\nimport {DateApi} from './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 //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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatProvider.interface.js","sourceRoot":"","sources":["../../../src/services/formatProvider.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Format provider used for obtaining
|
|
1
|
+
{"version":3,"file":"formatProvider.interface.js","sourceRoot":"","sources":["../../../src/services/formatProvider.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Format provider used for obtaining common used format 'tokens'\n */\nexport interface FormatProvider\n{\n /**\n * Format token for displaying date\n */\n readonly date: string;\n\n /**\n * Format token for displaying date and time\n */\n readonly dateTime: string;\n\n /**\n * Format token for displaying time\n */\n readonly time: string;\n\n /**\n * Format token for displaying full year\n */\n readonly year: string;\n\n /**\n * Format token for displaying month double digit number\n */\n readonly month: string;\n\n /**\n * Format token for displaying week double digit number\n */\n readonly week: string;\n\n /**\n * Format token for displaying day double digit number\n */\n readonly day: string;\n\n /**\n * Format token for displaying hour (24h format) double digit number\n */\n readonly hour: string;\n\n /**\n * Format token for displaying minute double digit number\n */\n readonly minute: string;\n\n /**\n * Format token for displaying second double digit number\n */\n readonly second: string;\n\n /**\n * Format token for displaying standalone day full name \n */\n readonly dayName: string;\n\n /**\n * Format token for displaying standalone day short name\n */\n readonly dayNameShort: string;\n\n /**\n * Format token for displaying standalone month full name\n */\n readonly monthName: string;\n\n /**\n * Format token for displaying standalone month short name\n */\n readonly monthNameShort: string;\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAsBpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"momentDateApi.service.d.ts","sourceRoot":"","sources":["momentDateApi.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAE1F,OAAO,MAA2B,MAAM,QAAQ,CAAC;;
|
|
1
|
+
{"version":3,"file":"momentDateApi.service.d.ts","sourceRoot":"","sources":["momentDateApi.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAE1F,OAAO,MAA2B,MAAM,QAAQ,CAAC;;AA+oBjD;;GAEG;AACH,qBACa,aAAc,YAAW,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAG5C,SAAS,CAAC,eAAe,EAAE,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAtD,eAAe,EAAE,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC;IAM5E;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;IAK9F;;OAEG;IACI,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;IAK1C;;;OAGG;IACI,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAU9C;;OAEG;IACI,kBAAkB,IAAI,OAAO;IAKpC;;OAEG;IACI,aAAa,IAAI,MAAM,EAAE;yCApDvB,aAAa;6CAAb,aAAa;CAwDzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anglr/datetime",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.20220328062817",
|
|
4
4
|
"description": "Angular library for datetime manipulation components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"deploy": "npm publish --loglevel error",
|
|
22
22
|
"deploy:next": "npm publish --tag next --loglevel error",
|
|
23
23
|
"test": "jest",
|
|
24
|
+
"test:coverage": "jest --coverage",
|
|
24
25
|
"lint": "eslint src/**/*.ts",
|
|
25
26
|
"doc": "path-exists docs && npm run doc:generate || echo \"No docs generated!\"",
|
|
26
27
|
"predoc:generate": "cd docs && git pull && cd ..",
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
"@angular/animations": ">=13.1.0",
|
|
67
68
|
"rxjs": ">=6.6.7",
|
|
68
69
|
"@jscrpt/common": ">=2.2.0",
|
|
69
|
-
"@anglr/common": ">=
|
|
70
|
+
"@anglr/common": ">=11.2.0",
|
|
70
71
|
"moment": "^2.29.1",
|
|
71
72
|
"date-fns": "^2.27.0",
|
|
72
73
|
"positions": "^1.6.2",
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
"@angular/animations": "^13.1.0",
|
|
80
81
|
"rxjs": "^6.6.7",
|
|
81
82
|
"@jscrpt/common": "^2.2.0",
|
|
82
|
-
"@anglr/common": "^
|
|
83
|
+
"@anglr/common": "^11.2.0",
|
|
83
84
|
"@types/node": "14.14.31",
|
|
84
85
|
"moment": "^2.29.1",
|
|
85
86
|
"date-fns": "^2.27.0",
|
package/src/dark.scss
CHANGED
|
@@ -1,35 +1,38 @@
|
|
|
1
1
|
@use './theme';
|
|
2
2
|
|
|
3
3
|
//############## PICKER ##############
|
|
4
|
-
date-time-picker
|
|
4
|
+
date-time-picker
|
|
5
5
|
{
|
|
6
|
-
|
|
7
|
-
border-color: transparent;
|
|
8
|
-
background-color: #333333;
|
|
9
|
-
box-shadow: 1px 1px 3px 1px #eee, -1px -1px 4px -1px #eee;
|
|
10
|
-
|
|
11
|
-
.today
|
|
12
|
-
{
|
|
13
|
-
border-color: #0077ff;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.weekend
|
|
17
|
-
{
|
|
18
|
-
color: #e70000;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.active
|
|
22
|
-
{
|
|
23
|
-
background-color: #00c3ff;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.clickable:hover
|
|
27
|
-
{
|
|
28
|
-
background-color: #00e7ff;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.disabled:not(.active)
|
|
6
|
+
&>div>*
|
|
32
7
|
{
|
|
33
|
-
|
|
8
|
+
color: #F0F0F0;
|
|
9
|
+
border-color: transparent;
|
|
10
|
+
background-color: #333333;
|
|
11
|
+
box-shadow: 1px 1px 3px 1px #eee, -1px -1px 4px -1px #eee;
|
|
12
|
+
|
|
13
|
+
.today
|
|
14
|
+
{
|
|
15
|
+
border-color: #0077ff;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.weekend
|
|
19
|
+
{
|
|
20
|
+
color: #e70000;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.active
|
|
24
|
+
{
|
|
25
|
+
background-color: #00c3ff;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.clickable:hover
|
|
29
|
+
{
|
|
30
|
+
background-color: #00e7ff;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.disabled:not(.active)
|
|
34
|
+
{
|
|
35
|
+
background-color: #CFCFCF;
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -15,5 +15,6 @@ export * from './picker/interfaces';
|
|
|
15
15
|
export * from './picker/types';
|
|
16
16
|
export * from './pipes/dateConvert.pipe';
|
|
17
17
|
export * from './pipes/dateFormat.pipe';
|
|
18
|
+
export * from './picker/directives';
|
|
18
19
|
export * from './modules/datePipes.module';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,YAAY,CAAC;AAC3B,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,YAAY,CAAC;AAC3B,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC"}
|
|
@@ -12,7 +12,7 @@ export interface DateTimeValue<TDate = any> {
|
|
|
12
12
|
to: TDate;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Represents object that holds data for
|
|
15
|
+
* Represents object that holds data for identification of validity of date time
|
|
16
16
|
*/
|
|
17
17
|
export interface DateTimeValueObject<TDate = any> {
|
|
18
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.interface.d.ts","sourceRoot":"","sources":["datetime.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,GAAG;IAEtC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,EAAE,EAAE,KAAK,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"datetime.interface.d.ts","sourceRoot":"","sources":["datetime.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,GAAG;IAEtC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,EAAE,EAAE,KAAK,CAAC;CACb;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,KAAK,GAAG,GAAG;IAE5C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAC,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAC,IAAI,CAAC;CACjC"}
|
package/src/misc/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,OAAO,CAA2C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,OAAO,CAA2C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,cAAc,CAsByC,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "../pipes/
|
|
3
|
-
import * as i2 from "../pipes/
|
|
4
|
-
import * as i3 from "../pipes/dateConvert.pipe";
|
|
2
|
+
import * as i1 from "../pipes/dateFormat.pipe";
|
|
3
|
+
import * as i2 from "../pipes/dateConvert.pipe";
|
|
5
4
|
/**
|
|
6
5
|
* Module used for exporting date pipes
|
|
7
6
|
*/
|
|
8
7
|
export declare class DatePipesModule {
|
|
9
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePipesModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DatePipesModule, [typeof i1.
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DatePipesModule, [typeof i1.DateFormatPipe, typeof i2.DateConvertPipe], never, [typeof i1.DateFormatPipe, typeof i2.DateConvertPipe]>;
|
|
11
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<DatePipesModule>;
|
|
12
11
|
}
|
|
13
12
|
//# sourceMappingURL=datePipes.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datePipes.module.d.ts","sourceRoot":"","sources":["datePipes.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"datePipes.module.d.ts","sourceRoot":"","sources":["datePipes.module.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACH,qBAaa,eAAe;yCAAf,eAAe;0CAAf,eAAe;0CAAf,eAAe;CAE3B"}
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Component used for displaying clock time picker
|
|
4
|
+
*/
|
|
5
|
+
export declare class ClockTimePickerComponent {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClockTimePickerComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClockTimePickerComponent, "date-time-clock-time-picker", never, {}, {}, never, never>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=clockTimePicker.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clockTimePicker.component.d.ts","sourceRoot":"","sources":["clockTimePicker.component.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH,qBAOa,wBAAwB;yCAAxB,wBAAwB;2CAAxB,wBAAwB;CAEpC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clockTimePicker.interface.d.ts","sourceRoot":"","sources":["clockTimePicker.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,yBAAyB;CAEzC"}
|
|
@@ -18,6 +18,12 @@ export declare class DateTimeDayPickerComponent<TDate = any> extends PickerBaseC
|
|
|
18
18
|
*/
|
|
19
19
|
weekdays: string[];
|
|
20
20
|
constructor(dateApi: DateApi<TDate>, changeDetector: ChangeDetectorRef);
|
|
21
|
+
/**
|
|
22
|
+
* Changes displayed period to "lower" period
|
|
23
|
+
* @param event - Event that occured
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
goDown(event: Event): void;
|
|
21
27
|
/**
|
|
22
28
|
* Changes displayed month to next month
|
|
23
29
|
* @param event - Event that occured
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dayPicker.component.d.ts","sourceRoot":"","sources":["dayPicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAI5F,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;;
|
|
1
|
+
{"version":3,"file":"dayPicker.component.d.ts","sourceRoot":"","sources":["dayPicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAI5F,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;;AAiB3D;;GAEG;AACH,qBAOa,0BAA0B,CAAC,KAAK,GAAG,GAAG,CAAE,SAAQ,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAE,YAAW,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC;IAI9K;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAM;IAIhD;;;OAGG;IACI,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAGD,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACzC,cAAc,EAAE,iBAAiB;IAU7C;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAejC;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQpC;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQxC;;;;;OAKG;IACa,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;IAkD/D;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI;IAgEjD;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK;IAKxD;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO;IAKtE;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO;IAK1E;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;yCAvO7D,0BAA0B;2CAA1B,0BAA0B;CA2OtC"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
<div [ngClass]="cssClasses?.periodSelection |
|
|
2
|
-
<div [ngClass]="cssClasses?.previousPeriod |
|
|
3
|
-
<div [ngClass]="cssClasses?.periodValue |
|
|
4
|
-
<div [ngClass]="cssClasses?.nextPeriod |
|
|
1
|
+
<div [ngClass]="cssClasses?.periodSelection | asRequired">
|
|
2
|
+
<div [ngClass]="cssClasses?.previousPeriod | asRequired" (mousedown)="previousMonth($event)"></div>
|
|
3
|
+
<div [ngClass]="cssClasses?.periodValue | asRequired | mergeCssClasses: [{'clickable': canGoUp}]" (mousedown)="goUp($event)">{{displayDate?.format('MMMM yyyy')}}</div>
|
|
4
|
+
<div [ngClass]="cssClasses?.nextPeriod | asRequired" (mousedown)="nextMonth($event)"></div>
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
<div [ngClass]="cssClasses?.periodData |
|
|
8
|
-
<div [ngClass]="cssClasses?.weekdayName |
|
|
7
|
+
<div [ngClass]="cssClasses?.periodData | asRequired">
|
|
8
|
+
<div [ngClass]="cssClasses?.weekdayName | asRequired" *ngFor="let weekday of weekdays">{{weekday}}</div>
|
|
9
9
|
<div *ngFor="let day of periodData"
|
|
10
|
-
[ngClass]="cssClasses?.periodDatum |
|
|
10
|
+
[ngClass]="cssClasses?.periodDatum | asRequired"
|
|
11
11
|
[class.other-month]="day.otherMonth"
|
|
12
12
|
[class.today]="day.today"
|
|
13
13
|
[class.weekend]="day.weekend"
|
|
14
14
|
[class.active]="day.active"
|
|
15
15
|
[class.disabled]="day.disabled"
|
|
16
16
|
(mousedown)="select($event, day)">{{day.day}}</div>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="flex-row" style="justify-content: center; border-top: 1px solid #FFF;" *ngIf="canGoDown">
|
|
20
|
+
<div [class.clickable]="canGoDown" (mousedown)="goDown($event)">{{displayDate?.value | dateFormat: 'time'}}</div>
|
|
17
21
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monthPicker.component.d.ts","sourceRoot":"","sources":["monthPicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAI5F,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;;
|
|
1
|
+
{"version":3,"file":"monthPicker.component.d.ts","sourceRoot":"","sources":["monthPicker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAI5F,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;;AAgB/D;;GAEG;AACH,qBAOa,4BAA4B,CAAC,KAAK,GAAG,GAAG,CAAE,SAAQ,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAE,YAAW,cAAc,CAAC,KAAK,EAAE,qBAAqB,CAAC;gBAGxJ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACzC,cAAc,EAAE,iBAAiB;IAS7C;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,KAAK;IAQ5B;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,KAAK;IAUhC;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI;IAgCjD;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK;IAKxD;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO;IAKtE;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO;IAK1E;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;yCA7G7D,4BAA4B;2CAA5B,4BAA4B;CAiHxC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
<div [ngClass]="cssClasses?.periodSelection |
|
|
2
|
-
<div [ngClass]="cssClasses?.previousPeriod |
|
|
3
|
-
<div [ngClass]="cssClasses?.periodValue |
|
|
4
|
-
<div [ngClass]="cssClasses?.nextPeriod |
|
|
1
|
+
<div [ngClass]="cssClasses?.periodSelection | asRequired">
|
|
2
|
+
<div [ngClass]="cssClasses?.previousPeriod | asRequired" (mousedown)="previousYear($event)"></div>
|
|
3
|
+
<div [ngClass]="cssClasses?.periodValue | asRequired" [class.clickable]="canGoUp" (mousedown)="goUp($event)">{{displayDate?.format('yyyy')}}</div>
|
|
4
|
+
<div [ngClass]="cssClasses?.nextPeriod | asRequired" (mousedown)="nextYear($event)"></div>
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
<div [ngClass]="cssClasses?.periodData |
|
|
7
|
+
<div [ngClass]="cssClasses?.periodData | asRequired">
|
|
8
8
|
<div *ngFor="let month of periodData"
|
|
9
|
-
[ngClass]="cssClasses?.periodDatum |
|
|
9
|
+
[ngClass]="cssClasses?.periodDatum | asRequired"
|
|
10
10
|
[class.active]="month.active"
|
|
11
11
|
[class.disabled]="month.disabled"
|
|
12
12
|
(mousedown)="select($event, month)">{{month.name}}</div>
|
|
@@ -59,8 +59,8 @@ export declare class DateTimePickerComponent<TDate = any> implements OnInit, OnD
|
|
|
59
59
|
/**
|
|
60
60
|
* Current options used by picker
|
|
61
61
|
*/
|
|
62
|
-
get options(): DateTimePickerOptions<DateTimePicker<TDate
|
|
63
|
-
set options(value: DateTimePickerOptions<DateTimePicker<TDate
|
|
62
|
+
get options(): Partial<DateTimePickerOptions<DateTimePicker<TDate>>>;
|
|
63
|
+
set options(value: Partial<DateTimePickerOptions<DateTimePicker<TDate>>>);
|
|
64
64
|
/**
|
|
65
65
|
* Current selected value
|
|
66
66
|
*/
|
|
@@ -80,7 +80,7 @@ export declare class DateTimePickerComponent<TDate = any> implements OnInit, OnD
|
|
|
80
80
|
* Occurs when value changes
|
|
81
81
|
*/
|
|
82
82
|
valueChange: EventEmitter<DateTimeValue<TDate>>;
|
|
83
|
-
constructor(configuration: DateTimePickerOptions<DateTimePicker<TDate
|
|
83
|
+
constructor(configuration: Partial<DateTimePickerOptions<DateTimePicker<TDate>>>, _dateApi: DateApi<TDate>, _changeDetector: ChangeDetectorRef);
|
|
84
84
|
/**
|
|
85
85
|
* Initialize component
|
|
86
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker.component.d.ts","sourceRoot":"","sources":["picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,IAAI,EAAE,MAAM,EAAE,YAAY,EAAU,iBAAiB,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAE5J,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;;
|
|
1
|
+
{"version":3,"file":"picker.component.d.ts","sourceRoot":"","sources":["picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,IAAI,EAAE,MAAM,EAAE,YAAY,EAAU,iBAAiB,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAE5J,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;;AA2B1F;;GAEG;AACH,qBAQa,uBAAuB,CAAC,KAAK,GAAG,GAAG,CAAE,YAAW,MAAM,EAAE,SAAS;IA0I5C,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;IACpD,SAAS,CAAC,eAAe,EAAE,iBAAiB;IAvIxD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAEhD;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IAEtC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAC,IAAI,CAAQ;IAEnD;;OAEG;IACH,SAAS,CAAC,0BAA0B,EAAE,YAAY,CAAsB;IAExE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,KAAK,GAAC,IAAI,CAAQ;IAEvC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,KAAK,GAAC,IAAI,CAAQ;IAEvC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAIjE;;;OAGG;IACI,qBAAqB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D;;;OAGG;IACI,iBAAiB,EAAE,MAAM,CAAK;IAIrC;;OAEG;IACH,IACW,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAG1E;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAS9E;IAED;;OAEG;IACH,IACW,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,GAAC,IAAI,CAG5C;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAC,IAAI,EAMhD;IAED;;OAEG;IACH,IACW,QAAQ,IAAI,KAAK,GAAC,IAAI,CAGhC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAC,IAAI,EAIpC;IAED;;OAEG;IACH,IACW,QAAQ,IAAI,KAAK,GAAC,IAAI,CAGhC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAC,IAAI,EAIpC;IAID;;OAEG;IAEI,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAA4C;gBAGlC,aAAa,EAAE,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5F,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAC1C,eAAe,EAAE,iBAAiB;IAYxD;;OAEG;IACI,QAAQ,IAAI,IAAI;IA0CvB;;OAEG;IACI,WAAW,IAAI,IAAI;IAQ1B;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI;IAuDzD;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;yCA9Q7B,uBAAuB;2CAAvB,uBAAuB;CA6RnC"}
|