@anglr/datetime 8.1.0 → 9.0.0-beta.20241007050425

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 (173) hide show
  1. package/changelog.md +68 -1
  2. package/date-fns/src/services/dateFnsDateApi.service.d.ts +62 -130
  3. package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
  4. package/es2022/date-fns/src/services/dateFnsDateApi.service.js +71 -143
  5. package/es2022/date-fns/src/services/dateFnsDateApi.service.js.map +1 -1
  6. package/es2022/moment/src/services/momentDateApi.service.js +64 -140
  7. package/es2022/moment/src/services/momentDateApi.service.js.map +1 -1
  8. package/es2022/src/directives/buttonDateTimeInput/buttonDateTimeInput.directive.js +17 -30
  9. package/es2022/src/directives/buttonDateTimeInput/buttonDateTimeInput.directive.js.map +1 -1
  10. package/es2022/src/directives/datePickerInput/datePickerInput.directive.js +9 -9
  11. package/es2022/src/directives/datePickerInput/datePickerInput.directive.js.map +1 -1
  12. package/es2022/src/directives/dateTimeInputHandler/dateTimeInputHandler.directive.js +16 -26
  13. package/es2022/src/directives/dateTimeInputHandler/dateTimeInputHandler.directive.js.map +1 -1
  14. package/es2022/src/directives/dateTimePickerInput/dateTimePickerInput.directive.js +8 -8
  15. package/es2022/src/directives/dateTimePickerInput/dateTimePickerInput.directive.js.map +1 -1
  16. package/es2022/src/directives/simpleDatePickerInput/simpleDatePickerInput.directive.js +9 -9
  17. package/es2022/src/directives/simpleDatePickerInput/simpleDatePickerInput.directive.js.map +1 -1
  18. package/es2022/src/directives/simpleDateTimeInputHandler/simpleDateTimeInputHandler.directive.js +7 -11
  19. package/es2022/src/directives/simpleDateTimeInputHandler/simpleDateTimeInputHandler.directive.js.map +1 -1
  20. package/es2022/src/directives/simpleDateTimePickerInput/simpleDateTimePickerInput.directive.js +8 -8
  21. package/es2022/src/directives/simpleDateTimePickerInput/simpleDateTimePickerInput.directive.js.map +1 -1
  22. package/es2022/src/directives/withNow/withNow.directive.js +11 -11
  23. package/es2022/src/directives/withNow/withNow.directive.js.map +1 -1
  24. package/es2022/src/directives/withTime/withTime.directive.js +10 -10
  25. package/es2022/src/directives/withTime/withTime.directive.js.map +1 -1
  26. package/es2022/src/directives/withToday/withToday.directive.js +11 -11
  27. package/es2022/src/directives/withToday/withToday.directive.js.map +1 -1
  28. package/es2022/src/interfaces/dateTimeInput/dateTimeInput.interface.js.map +1 -1
  29. package/es2022/src/misc/enums.js +8 -4
  30. package/es2022/src/misc/enums.js.map +1 -1
  31. package/es2022/src/misc/utils.js +7 -6
  32. package/es2022/src/misc/utils.js.map +1 -1
  33. package/es2022/src/misc/validators.js.map +1 -1
  34. package/es2022/src/modules/calendar/components/monthCalendar/monthCalendar.component.js +40 -68
  35. package/es2022/src/modules/calendar/components/monthCalendar/monthCalendar.component.js.map +1 -1
  36. package/es2022/src/modules/calendar/directives/calendarDayTemplate/calendarDayTemplate.directive.js +5 -5
  37. package/es2022/src/modules/calendar/directives/calendarDayTemplate/calendarDayTemplate.directive.js.map +1 -1
  38. package/es2022/src/modules/calendar/modules/monthCalendar.module.js +7 -11
  39. package/es2022/src/modules/calendar/modules/monthCalendar.module.js.map +1 -1
  40. package/es2022/src/modules/calendar/services/eventParser/eventParser.service.js +3 -4
  41. package/es2022/src/modules/calendar/services/eventParser/eventParser.service.js.map +1 -1
  42. package/es2022/src/modules/datePipes.module.js +6 -6
  43. package/es2022/src/modules/datePipes.module.js.map +1 -1
  44. package/es2022/src/modules/dateTime/directives/dateTime/dateTime.directive.js +41 -72
  45. package/es2022/src/modules/dateTime/directives/dateTime/dateTime.directive.js.map +1 -1
  46. package/es2022/src/modules/dateTime/directives/dateTimeBase.js +21 -25
  47. package/es2022/src/modules/dateTime/directives/dateTimeBase.js.map +1 -1
  48. package/es2022/src/modules/dateTime/directives/dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive.js +36 -16
  49. package/es2022/src/modules/dateTime/directives/dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive.js.map +1 -1
  50. package/es2022/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js +18 -26
  51. package/es2022/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.js.map +1 -1
  52. package/es2022/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js +12 -13
  53. package/es2022/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.js.map +1 -1
  54. package/es2022/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js +12 -13
  55. package/es2022/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.js.map +1 -1
  56. package/es2022/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js +12 -13
  57. package/es2022/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.js.map +1 -1
  58. package/es2022/src/modules/dateTime/modules/dateTime.module.js +27 -27
  59. package/es2022/src/modules/dateTime/modules/dateTime.module.js.map +1 -1
  60. package/es2022/src/modules/dateTimePicker/components/dateTimePeriodPickerBase.js +39 -58
  61. package/es2022/src/modules/dateTimePicker/components/dateTimePeriodPickerBase.js.map +1 -1
  62. package/es2022/src/modules/dateTimePicker/components/dateTimePicker/dateTimePicker.component.js +21 -57
  63. package/es2022/src/modules/dateTimePicker/components/dateTimePicker/dateTimePicker.component.js.map +1 -1
  64. package/es2022/src/modules/dateTimePicker/components/dayPicker/dayPicker.component.js +17 -20
  65. package/es2022/src/modules/dateTimePicker/components/dayPicker/dayPicker.component.js.map +1 -1
  66. package/es2022/src/modules/dateTimePicker/components/monthPicker/monthPicker.component.js +6 -10
  67. package/es2022/src/modules/dateTimePicker/components/monthPicker/monthPicker.component.js.map +1 -1
  68. package/es2022/src/modules/dateTimePicker/components/rollerTimePicker/rollerTimePicker.component.js +31 -29
  69. package/es2022/src/modules/dateTimePicker/components/rollerTimePicker/rollerTimePicker.component.js.map +1 -1
  70. package/es2022/src/modules/dateTimePicker/components/yearPicker/yearPicker.component.js +13 -13
  71. package/es2022/src/modules/dateTimePicker/components/yearPicker/yearPicker.component.js.map +1 -1
  72. package/es2022/src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.js +11 -40
  73. package/es2022/src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.js.map +1 -1
  74. package/es2022/src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.js +40 -55
  75. package/es2022/src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.js.map +1 -1
  76. package/es2022/src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.js +8 -14
  77. package/es2022/src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.js.map +1 -1
  78. package/es2022/src/modules/dateTimePicker/interfaces/periodData/periodData.interface.js.map +1 -1
  79. package/es2022/src/modules/dateTimePicker/modules/dateTimePicker.module.js +9 -10
  80. package/es2022/src/modules/dateTimePicker/modules/dateTimePicker.module.js.map +1 -1
  81. package/es2022/src/pipes/dateConvert.pipe.js +4 -5
  82. package/es2022/src/pipes/dateConvert.pipe.js.map +1 -1
  83. package/es2022/src/pipes/dateFormat.pipe.js +4 -6
  84. package/es2022/src/pipes/dateFormat.pipe.js.map +1 -1
  85. package/es2022/src/services/dateApi/dateApi.interface.js.map +1 -1
  86. package/es2022/src/services/datePositionParser/datePositionParser.service.js +16 -17
  87. package/es2022/src/services/datePositionParser/datePositionParser.service.js.map +1 -1
  88. package/es2022/src/services/dateTimeRelativeParser/dateTimeRelativeParser.service.js +3 -9
  89. package/es2022/src/services/dateTimeRelativeParser/dateTimeRelativeParser.service.js.map +1 -1
  90. package/es2022/src/services/dateValueProvider/dateValueProvider.service.js +3 -5
  91. package/es2022/src/services/dateValueProvider/dateValueProvider.service.js.map +1 -1
  92. package/lerna.json +4 -0
  93. package/moment/src/services/momentDateApi.service.d.ts +63 -132
  94. package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
  95. package/package.json +41 -43
  96. package/src/directives/buttonDateTimeInput/buttonDateTimeInput.directive.d.ts +3 -3
  97. package/src/directives/buttonDateTimeInput/buttonDateTimeInput.directive.d.ts.map +1 -1
  98. package/src/directives/datePickerInput/datePickerInput.directive.d.ts +3 -3
  99. package/src/directives/datePickerInput/datePickerInput.directive.d.ts.map +1 -1
  100. package/src/directives/dateTimeInputHandler/dateTimeInputHandler.directive.d.ts +7 -7
  101. package/src/directives/dateTimeInputHandler/dateTimeInputHandler.directive.d.ts.map +1 -1
  102. package/src/directives/dateTimePickerInput/dateTimePickerInput.directive.d.ts +3 -3
  103. package/src/directives/dateTimePickerInput/dateTimePickerInput.directive.d.ts.map +1 -1
  104. package/src/directives/simpleDatePickerInput/simpleDatePickerInput.directive.d.ts +3 -3
  105. package/src/directives/simpleDatePickerInput/simpleDatePickerInput.directive.d.ts.map +1 -1
  106. package/src/directives/simpleDateTimeInputHandler/simpleDateTimeInputHandler.directive.d.ts +7 -7
  107. package/src/directives/simpleDateTimeInputHandler/simpleDateTimeInputHandler.directive.d.ts.map +1 -1
  108. package/src/directives/simpleDateTimePickerInput/simpleDateTimePickerInput.directive.d.ts +3 -3
  109. package/src/directives/simpleDateTimePickerInput/simpleDateTimePickerInput.directive.d.ts.map +1 -1
  110. package/src/directives/withNow/withNow.directive.d.ts +5 -5
  111. package/src/directives/withNow/withNow.directive.d.ts.map +1 -1
  112. package/src/directives/withTime/withTime.directive.d.ts +5 -5
  113. package/src/directives/withTime/withTime.directive.d.ts.map +1 -1
  114. package/src/directives/withToday/withToday.directive.d.ts +5 -5
  115. package/src/directives/withToday/withToday.directive.d.ts.map +1 -1
  116. package/src/interfaces/dateTimeInput/dateTimeInput.interface.d.ts +1 -1
  117. package/src/misc/enums.d.ts +8 -4
  118. package/src/misc/enums.d.ts.map +1 -1
  119. package/src/misc/utils.d.ts +3 -3
  120. package/src/misc/utils.d.ts.map +1 -1
  121. package/src/modules/calendar/components/monthCalendar/monthCalendar.component.d.ts +1 -1
  122. package/src/modules/calendar/components/monthCalendar/monthCalendar.component.d.ts.map +1 -1
  123. package/src/modules/calendar/components/monthCalendar/monthCalendar.component.html +17 -9
  124. package/src/modules/calendar/directives/calendarDayTemplate/calendarDayTemplate.directive.d.ts +1 -1
  125. package/src/modules/calendar/directives/calendarDayTemplate/calendarDayTemplate.directive.d.ts.map +1 -1
  126. package/src/modules/calendar/modules/monthCalendar.module.d.ts +3 -4
  127. package/src/modules/calendar/modules/monthCalendar.module.d.ts.map +1 -1
  128. package/src/modules/datePipes.module.d.ts +1 -1
  129. package/src/modules/dateTime/directives/dateTime/dateTime.directive.d.ts +3 -3
  130. package/src/modules/dateTime/directives/dateTime/dateTime.directive.d.ts.map +1 -1
  131. package/src/modules/dateTime/directives/dateTimeBase.d.ts +3 -3
  132. package/src/modules/dateTime/directives/dateTimeBase.d.ts.map +1 -1
  133. package/src/modules/dateTime/directives/dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive.d.ts +6 -4
  134. package/src/modules/dateTime/directives/dateTimeControlValueAccessor/dateTimeControlValueAccessor.directive.d.ts.map +1 -1
  135. package/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.d.ts +3 -3
  136. package/src/modules/dateTime/directives/dateTimeInput/dateTimeInput.directive.d.ts.map +1 -1
  137. package/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.d.ts +3 -3
  138. package/src/modules/dateTime/directives/dateTimeMaxValidator/dateTimeMaxValidator.directive.d.ts.map +1 -1
  139. package/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.d.ts +3 -3
  140. package/src/modules/dateTime/directives/dateTimeMinValidator/dateTimeMinValidator.directive.d.ts.map +1 -1
  141. package/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.d.ts +3 -3
  142. package/src/modules/dateTime/directives/dateTimeValidator/dateTimeValidator.directive.d.ts.map +1 -1
  143. package/src/modules/dateTime/modules/dateTime.module.d.ts +1 -1
  144. package/src/modules/dateTimePicker/components/dateTimePicker/dateTimePicker.component.d.ts +4 -4
  145. package/src/modules/dateTimePicker/components/dateTimePicker/dateTimePicker.component.d.ts.map +1 -1
  146. package/src/modules/dateTimePicker/components/dateTimePicker/dateTimePicker.component.html +1 -1
  147. package/src/modules/dateTimePicker/components/dayPicker/dayPicker.component.d.ts +3 -3
  148. package/src/modules/dateTimePicker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
  149. package/src/modules/dateTimePicker/components/dayPicker/dayPicker.component.html +21 -12
  150. package/src/modules/dateTimePicker/components/monthPicker/monthPicker.component.d.ts +3 -3
  151. package/src/modules/dateTimePicker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
  152. package/src/modules/dateTimePicker/components/monthPicker/monthPicker.component.html +7 -5
  153. package/src/modules/dateTimePicker/components/rollerTimePicker/rollerTimePicker.component.d.ts +3 -3
  154. package/src/modules/dateTimePicker/components/rollerTimePicker/rollerTimePicker.component.d.ts.map +1 -1
  155. package/src/modules/dateTimePicker/components/rollerTimePicker/rollerTimePicker.component.html +41 -29
  156. package/src/modules/dateTimePicker/components/yearPicker/yearPicker.component.d.ts +3 -3
  157. package/src/modules/dateTimePicker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
  158. package/src/modules/dateTimePicker/components/yearPicker/yearPicker.component.html +7 -5
  159. package/src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.d.ts +5 -5
  160. package/src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.d.ts.map +1 -1
  161. package/src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.d.ts +7 -7
  162. package/src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.d.ts.map +1 -1
  163. package/src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.d.ts +3 -3
  164. package/src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.d.ts.map +1 -1
  165. package/src/modules/dateTimePicker/interfaces/periodData/periodData.interface.d.ts.map +1 -1
  166. package/src/modules/dateTimePicker/modules/dateTimePicker.module.d.ts +3 -3
  167. package/src/modules/dateTimePicker/modules/dateTimePicker.module.d.ts.map +1 -1
  168. package/src/pipes/dateConvert.pipe.d.ts +1 -1
  169. package/src/pipes/dateFormat.pipe.d.ts +1 -1
  170. package/src/services/dateApi/dateApi.interface.d.ts +11 -1
  171. package/src/services/dateApi/dateApi.interface.d.ts.map +1 -1
  172. package/src/services/dateValueProvider/dateValueProvider.service.d.ts.map +1 -1
  173. package/version.bak +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"yearPicker.component.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/components/yearPicker/yearPicker.component.ts","../../../../../../src/modules/dateTimePicker/components/yearPicker/yearPicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {DateTimePicker, YearData} from '../../interfaces';\nimport {DateTimePeriodPickerBase} from '../dateTimePeriodPickerBase';\nimport {DatePipesModule} from '../../../datePipes.module';\nimport {DateApiObject} from '../../../../services';\n\n/**\n * Component used for displaying year picker\n */\n@Component(\n{\n selector: 'year-picker',\n templateUrl: 'yearPicker.component.html',\n host:\n {\n '[class.date-time-period]': 'true',\n },\n standalone: true,\n imports:\n [\n CommonModule,\n DatePipesModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YearPickerSAComponent<TDate = unknown> extends DateTimePeriodPickerBase<YearData<TDate>, TDate> implements DateTimePicker<TDate>\n{\n //######################### protected properties - template bindings #########################\n\n /**\n * Displayed decade period\n */\n protected period: string = '';\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Selects year as value of day time picker\n * @param yearData - Year data that were selected\n */\n protected selectYear(yearData: YearData<TDate>): void\n {\n if(yearData.disabled)\n {\n return;\n }\n\n //single value\n if(!this.ranged)\n {\n //no value selected yet\n if(!this.singleValue?.isValid())\n {\n this.singleValue = this.displayDate?.clone() ?? this.dateApi.getValue(new Date());\n }\n\n this.singleValue.year(yearData.dateObj.year());\n this.singleValue.updateOriginal();\n }\n else\n {\n //TODO: range\n }\n \n this.valueChangeSubject.next();\n this.render();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Changes displayed decade to next decade\n */\n public nextDecade(): void\n {\n this.displayDate?.addYears(10).updateOriginal();\n\n this.render();\n }\n\n /**\n * Changes displayed decade to previous decade\n */\n public previousDecade(): void\n {\n this.displayDate?.subtractYears(10).updateOriginal();\n\n this.render();\n }\n\n //######################### protected methods #########################\n\n /**\n * Renders current day picker data\n */\n protected render(): void\n {\n //same decade only data change\n if(this.displayedDate && this.displayDate?.isSameDecade(this.displayedDate))\n {\n this.setActive();\n this.updateMinMax();\n\n return;\n }\n\n this.displayedDate = this.displayDate?.value;\n this.periodData = [];\n\n if(!this.displayDate)\n {\n return;\n }\n\n let year = this.displayDate.startOfYear().year();\n\n while(year % 10 !== 0)\n {\n year--;\n }\n\n this.displayDate.year(year).updateOriginal();\n\n for(let x = 0; x < 10; x++)\n {\n this.periodData.push(\n {\n active: false,\n disabled: false,\n date: this.displayDate.value,\n value: year,\n dateObj: this.displayDate.clone(),\n });\n\n year++;\n this.displayDate.addYears(1);\n }\n\n this.displayDate.resetOriginal();\n this.period = `${this.displayDate.year()} - ${this.displayDate.year() + 10}`;\n\n this.setActive();\n this.updateMinMax();\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected onRender(): void\n {\n this.render();\n }\n\n /**\n * Tests whether provided value is in same period target value\n * @param val - Tested value\n * @param target - Target value to be tested against\n */\n protected isSamePeriod(val: DateApiObject<TDate>, target: TDate): boolean\n {\n return val.isSameYear(target);\n }\n}","<div class=\"period\">\r\n <div class=\"fas fa-angle-left clickable\" (mousedown)=\"previousDecade()\"></div>\r\n <div class=\"period-value\" [class.clickable]=\"canScaleUp\" (mousedown)=\"displayDate && canScaleUp ? scaleUpSubject.next(displayDate.value) : undefined\">{{period}}</div>\r\n <div class=\"fas fa-angle-right clickable\" (mousedown)=\"nextDecade()\"></div>\r\n</div>\r\n\r\n<div class=\"period-data\">\r\n <div *ngFor=\"let year of periodData\"\r\n class=\"period-datum clickable\"\r\n [class.active]=\"year.active\"\r\n [class.disabled]=\"year.disabled\"\r\n (mousedown)=\"canScaleDown && displayDate ? scaleDownSubject.next(year.dateObj.value) : selectYear(year)\">{{year.value}}</div>\r\n</div>"]}
1
+ {"version":3,"file":"yearPicker.component.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/components/yearPicker/yearPicker.component.ts","../../../../../../src/modules/dateTimePicker/components/yearPicker/yearPicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy} from '@angular/core';\n\nimport {DateTimePicker, YearData} from '../../interfaces';\nimport {DateTimePeriodPickerBase} from '../dateTimePeriodPickerBase';\nimport {DatePipesModule} from '../../../datePipes.module';\nimport {DateApiObject} from '../../../../services';\n\n/**\n * Component used for displaying year picker\n */\n@Component(\n{\n selector: 'year-picker',\n templateUrl: 'yearPicker.component.html',\n host:\n {\n '[class.date-time-period]': 'true',\n },\n standalone: true,\n imports:\n [\n DatePipesModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YearPickerComponent<TDate = unknown> extends DateTimePeriodPickerBase<YearData<TDate>, TDate> implements DateTimePicker<TDate>\n{\n //######################### protected properties - template bindings #########################\n\n /**\n * Displayed decade period\n */\n protected period: string = '';\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Selects year as value of day time picker\n * @param yearData - Year data that were selected\n */\n protected selectYear(yearData: YearData<TDate>): void\n {\n if(yearData.disabled)\n {\n return;\n }\n\n //single value\n if(!this.ranged)\n {\n //no value selected yet\n if(!this.singleValue?.isValid())\n {\n this.singleValue = this.displayDate?.clone() ?? this.dateApi.getValue(new Date());\n }\n\n this.singleValue.year(yearData.dateObj.year());\n this.singleValue.updateOriginal();\n }\n else\n {\n //TODO: range\n }\n \n this.valueChangeSubject.next();\n this.render();\n this.changeDetector.detectChanges();\n }\n\n /**\n * Changes displayed decade to next decade\n */\n public nextDecade(): void\n {\n this.displayDate?.addYears(10).updateOriginal();\n\n this.render();\n }\n\n /**\n * Changes displayed decade to previous decade\n */\n public previousDecade(): void\n {\n this.displayDate?.subtractYears(10).updateOriginal();\n\n this.render();\n }\n\n //######################### protected methods #########################\n\n /**\n * Renders current day picker data\n */\n protected render(): void\n {\n //same decade only data change\n if(this.displayedDate && this.displayDate?.isSameDecade(this.displayedDate))\n {\n this.setActive();\n this.updateMinMax();\n\n return;\n }\n\n this.displayedDate = this.displayDate?.value;\n this.periodData = [];\n\n if(!this.displayDate)\n {\n return;\n }\n\n let year = this.displayDate.startOfYear().year();\n\n while(year % 10 !== 0)\n {\n year--;\n }\n\n this.displayDate.year(year).updateOriginal();\n\n for(let x = 0; x < 10; x++)\n {\n this.periodData.push(\n {\n active: false,\n disabled: false,\n date: this.displayDate.value,\n value: year,\n dateObj: this.displayDate.clone(),\n });\n\n year++;\n this.displayDate.addYears(1);\n }\n\n this.displayDate.resetOriginal();\n this.period = `${this.displayDate.year()} - ${this.displayDate.year() + 10}`;\n\n this.setActive();\n this.updateMinMax();\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected onRender(): void\n {\n this.render();\n }\n\n /**\n * Tests whether provided value is in same period target value\n * @param val - Tested value\n * @param target - Target value to be tested against\n */\n protected isSamePeriod(val: DateApiObject<TDate>, target: TDate): boolean\n {\n return val.isSameYear(target);\n }\n}","<div class=\"period\">\r\n <div class=\"fas fa-angle-left clickable\" (mousedown)=\"previousDecade()\"></div>\r\n <div class=\"period-value\" [class.clickable]=\"canScaleUp\" (mousedown)=\"displayDate && canScaleUp ? scaleUpSubject.next(displayDate.value) : undefined\">{{period}}</div>\r\n <div class=\"fas fa-angle-right clickable\" (mousedown)=\"nextDecade()\"></div>\r\n</div>\r\n\r\n<div class=\"period-data\">\r\n @for(year of periodData; track year)\r\n {\r\n <div class=\"period-datum clickable\"\r\n [class.active]=\"year.active\"\r\n [class.disabled]=\"year.disabled\"\r\n (mousedown)=\"canScaleDown && displayDate ? scaleDownSubject.next(year.dateObj.value) : selectYear(year)\">{{year.value}}</div>\r\n }\r\n</div>"]}
@@ -26,37 +26,7 @@ const defaultOptions = {
26
26
  /**
27
27
  * Directive that is used for displaying and attaching date time picker
28
28
  */
29
- export class DateTimePickerSADirective extends DateTimeBase {
30
- viewContainer;
31
- element;
32
- input;
33
- document;
34
- position;
35
- //######################### protected properties #########################
36
- /**
37
- * Indication whether is value changes disabled
38
- */
39
- valueChangeDisabled = false;
40
- /**
41
- * Options for date time picker directive
42
- */
43
- ɵWithPickerOptions;
44
- /**
45
- * Date time picker component reference
46
- */
47
- componentRef;
48
- /**
49
- * Instance of date time picker component
50
- */
51
- component;
52
- /**
53
- * Instance of date time picker element
54
- */
55
- componentElement;
56
- /**
57
- * Subscription for changes in picker
58
- */
59
- pickerChangesSubscription;
29
+ export class DateTimePickerDirective extends DateTimeBase {
60
30
  //######################### public properties - inputs #########################
61
31
  /**
62
32
  * Gets or sets options for date time picker directive
@@ -67,10 +37,6 @@ export class DateTimePickerSADirective extends DateTimeBase {
67
37
  set withPickerOptions(value) {
68
38
  this.ɵWithPickerOptions = extend(true, {}, this.ɵWithPickerOptions, value);
69
39
  }
70
- /**
71
- * Options for date time picker component
72
- */
73
- pickerOptions;
74
40
  //######################### constructor #########################
75
41
  constructor(viewContainer, element, input, document, position, options) {
76
42
  super();
@@ -79,6 +45,11 @@ export class DateTimePickerSADirective extends DateTimeBase {
79
45
  this.input = input;
80
46
  this.document = document;
81
47
  this.position = position;
48
+ //######################### protected properties #########################
49
+ /**
50
+ * Indication whether is value changes disabled
51
+ */
52
+ this.valueChangeDisabled = false;
82
53
  this.ɵWithPickerOptions = extend(true, {}, defaultOptions, options);
83
54
  }
84
55
  //######################### public methods - implementation of OnInit #########################
@@ -241,22 +212,22 @@ export class DateTimePickerSADirective extends DateTimeBase {
241
212
  this.componentRef.setInput(nameof('minDateTime'), this.dateTimeData.minDateTime);
242
213
  this.componentRef.changeDetectorRef.detectChanges();
243
214
  }
244
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerSADirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: DATE_TIME_INPUT }, { token: DOCUMENT }, { token: POSITION }, { token: DATE_TIME_PICKER_DIRECTIVE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
245
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: DateTimePickerSADirective, isStandalone: true, selector: "[dateTime][withPicker]", inputs: { withPickerOptions: "withPickerOptions", pickerOptions: "pickerOptions" }, exportAs: ["dateTimePicker"], usesInheritance: true, ngImport: i0 });
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: DATE_TIME_INPUT }, { token: DOCUMENT }, { token: POSITION }, { token: DATE_TIME_PICKER_DIRECTIVE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
216
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DateTimePickerDirective, isStandalone: true, selector: "[dateTime][withPicker]", inputs: { withPickerOptions: "withPickerOptions", pickerOptions: "pickerOptions" }, exportAs: ["dateTimePicker"], usesInheritance: true, ngImport: i0 }); }
246
217
  }
247
218
  __decorate([
248
219
  BindThis,
249
220
  __metadata("design:type", Function),
250
221
  __metadata("design:paramtypes", [MouseEvent]),
251
222
  __metadata("design:returntype", void 0)
252
- ], DateTimePickerSADirective.prototype, "handleClickOutside", null);
223
+ ], DateTimePickerDirective.prototype, "handleClickOutside", null);
253
224
  __decorate([
254
225
  BindThis,
255
226
  __metadata("design:type", Function),
256
227
  __metadata("design:paramtypes", [MouseEvent]),
257
228
  __metadata("design:returntype", void 0)
258
- ], DateTimePickerSADirective.prototype, "handleClickInside", null);
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerSADirective, decorators: [{
229
+ ], DateTimePickerDirective.prototype, "handleClickInside", null);
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerDirective, decorators: [{
260
231
  type: Directive,
261
232
  args: [{
262
233
  selector: '[dateTime][withPicker]',
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimePicker.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {ComponentRef, Directive, ElementRef, EmbeddedViewRef, Inject, Input, OnDestroy, OnInit, Optional, ViewContainerRef} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {Position, POSITION, applyPositionResult, PositionPlacement, PositionResult} from '@anglr/common';\nimport {extend, nameof, isDescendant, BindThis, renderToBody} from '@jscrpt/common';\nimport {Observable, Subscription} from 'rxjs';\n\nimport {DateTimeInput} from '../../../../interfaces';\nimport {DATE_TIME_INPUT} from '../../../../misc/tokens';\nimport {DateTimePickerComponent} from '../../components';\nimport {DateTimePickerOptions} from '../../components/dateTimePicker/dateTimePicker.interface';\nimport {DateTimePickerDirectiveOptions} from './dateTimePicker.interface';\nimport {DATE_TIME_PICKER_DIRECTIVE_OPTIONS} from '../../misc/tokens';\nimport {DateTimeBase} from '../../../dateTime/directives';\n\n/**\n * Default options for date time picker directive\n */\nconst defaultOptions: DateTimePickerDirectiveOptions =\n{\n absolute: true,\n alwaysVisible: false,\n closeOnValueSelect: false,\n closeOnBlur: true,\n disabled: false,\n positionOptions: PositionPlacement.BottomStart,\n showOnFocus: true,\n targetElement: null,\n pickerCssClass: null,\n};\n\n/**\n * Directive that is used for displaying and attaching date time picker\n */\n@Directive(\n{\n selector: '[dateTime][withPicker]',\n standalone: true,\n exportAs: 'dateTimePicker',\n})\nexport class DateTimePickerSADirective<TDate = unknown> extends DateTimeBase<TDate> implements OnInit, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Indication whether is value changes disabled\n */\n protected valueChangeDisabled: boolean = false;\n\n /**\n * Options for date time picker directive\n */\n protected ɵWithPickerOptions: DateTimePickerDirectiveOptions;\n\n /**\n * Date time picker component reference\n */\n protected componentRef: ComponentRef<DateTimePickerComponent<TDate>>|undefined|null;\n\n /**\n * Instance of date time picker component\n */\n protected component: DateTimePickerComponent<TDate>|undefined|null;\n\n /**\n * Instance of date time picker element\n */\n protected componentElement: HTMLElement|undefined|null;\n\n /**\n * Subscription for changes in picker\n */\n protected pickerChangesSubscription: Subscription|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets options for date time picker directive\n */\n @Input()\n public get withPickerOptions(): Partial<DateTimePickerDirectiveOptions>\n {\n return this.ɵWithPickerOptions;\n }\n public set withPickerOptions(value: Partial<DateTimePickerDirectiveOptions>)\n {\n this.ɵWithPickerOptions = extend(true, {}, this.ɵWithPickerOptions, value);\n }\n\n /**\n * Options for date time picker component\n */\n @Input()\n public pickerOptions: Partial<DateTimePickerOptions<TDate>>|undefined|null;\n\n //######################### constructor #########################\n constructor(protected viewContainer: ViewContainerRef,\n protected element: ElementRef<HTMLElement>,\n @Inject(DATE_TIME_INPUT) protected input: DateTimeInput<TDate>,\n @Inject(DOCUMENT) protected document: Document,\n @Inject(POSITION) protected position: Position,\n\n @Inject(DATE_TIME_PICKER_DIRECTIVE_OPTIONS) @Optional() options?: DateTimePickerDirectiveOptions,)\n {\n super();\n\n this.ɵWithPickerOptions = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public async ngOnInit(): Promise<void>\n {\n if(this.withPickerOptions.alwaysVisible)\n {\n this.showPicker();\n }\n\n this.initSubscriptions.add(this.input.valueChange.subscribe(() =>\n {\n this.setPickerValue();\n this.componentRef?.changeDetectorRef.detectChanges();\n }));\n\n this.initSubscriptions.add(this.input.focus.subscribe(() =>\n {\n if(this.withPickerOptions.showOnFocus)\n {\n this.showPicker();\n }\n }));\n\n this.initSubscriptions.add(this.input.blur.subscribe(() =>\n {\n if(this.withPickerOptions.closeOnBlur)\n {\n this.hidePicker();\n }\n }));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.hidePicker();\n this.initSubscriptions.unsubscribe();\n }\n\n //######################### public methods #########################\n\n /**\n * Hides date time picker\n */\n public async showPicker(): Promise<void>\n {\n if(this.withPickerOptions.disabled || this.componentRef)\n {\n return;\n }\n\n this.componentRef = this.viewContainer.createComponent(DateTimePickerComponent<TDate>);\n this.componentElement = (this.componentRef?.hostView as EmbeddedViewRef<DateTimePickerComponent<TDate>>).rootNodes[0] as HTMLElement;\n this.component = this.componentRef.instance;\n\n if(this.withPickerOptions.absolute)\n {\n renderToBody(this.document, this.componentElement, this.withPickerOptions.targetElement);\n }\n\n this.pickerChangesSubscription = new Subscription();\n this.pickerChangesSubscription.add(this.component.valueChange.subscribe(() =>\n {\n if(this.component)\n {\n this.valueChangeDisabled = true;\n this.input.value = this.component.value;\n this.input.valueChange.emit();\n this.valueChangeDisabled = false;\n\n if(this.ɵWithPickerOptions.closeOnValueSelect)\n {\n this.hidePicker();\n }\n }\n }));\n\n this.document.addEventListener('click', this.handleClickOutside);\n this.componentElement.addEventListener('mousedown', this.handleClickInside);\n this.componentElement.style.position = 'absolute';\n\n if(this.ɵWithPickerOptions.pickerCssClass)\n {\n this.componentElement.classList.add(this.ɵWithPickerOptions.pickerCssClass);\n }\n\n this.pickerChangesSubscription.add(this.positionPicker(this.componentElement, true).subscribe(result => applyPositionResult(result)));\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('options'), this.pickerOptions);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('valueFormat'), this.dateTimeData.valueFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('format'), this.dateTimeData.format);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('customFormat'), this.dateTimeData.customFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('dataFormat'), this.dateTimeData.dataFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('minDateTime'), this.dateTimeData.minDateTime);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('maxDateTime'), this.dateTimeData.maxDateTime);\n this.setPickerValue();\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n /**\n * Shows date time picker\n */\n public hidePicker(): void\n {\n if(this.withPickerOptions.alwaysVisible)\n {\n return;\n }\n\n this.componentElement?.removeEventListener('mousedown', this.handleClickInside);\n \n this.pickerChangesSubscription?.unsubscribe();\n this.pickerChangesSubscription = null;\n \n this.component = null;\n\n this.componentRef?.destroy();\n this.componentRef = null;\n\n this.componentElement?.remove();\n this.componentElement = null;\n\n this.document.removeEventListener('click', this.handleClickOutside);\n }\n\n //######################### protected methods #########################\n\n /**\n * Sets all picker value\n */\n protected setPickerValue(): void\n {\n if(this.valueChangeDisabled)\n {\n return;\n }\n\n if(this.componentRef)\n {\n this.componentRef.setInput(nameof<DateTimePickerComponent>('value'), this.input.value);\n }\n }\n\n /**\n * Handles clicking outside of picker\n * @param event - Event that occured\n */\n @BindThis\n protected handleClickOutside(event: MouseEvent): void\n {\n if(!this.componentElement)\n {\n return;\n }\n\n if(this.componentElement != event.target &&\n !isDescendant(this.componentElement, event.target as HTMLElement) &&\n (!this.input.element || (this.input.element != event.target &&\n !isDescendant(this.input.element, event.target as HTMLElement))))\n {\n this.hidePicker();\n }\n }\n\n /**\n * Handles clicking inside of picker element\n * @param event - Event that occured\n */\n @BindThis\n protected handleClickInside(event: MouseEvent): void\n {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * Runs placement of picker component\n * @param componentElement - Element to be positioned\n * @param watch - Indication whether watch for changes and update position\n */\n protected positionPicker(componentElement: HTMLElement, watch: boolean): Observable<PositionResult<HTMLElement>>\n {\n return this.position.placeElement(componentElement, this.element.nativeElement,\n {\n flip: true,\n placement: this.withPickerOptions.positionOptions,\n autoUpdate: watch,\n });\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override onMaxDateTimeChange(): void\n {\n if(!this.componentRef)\n {\n return;\n }\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('maxDateTime'), this.dateTimeData.maxDateTime);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n /**\n * @inheritdoc\n */\n protected override onMinDateTimeChange(): void\n {\n if(!this.componentRef)\n {\n return;\n }\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('minDateTime'), this.dateTimeData.minDateTime);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n}"]}
1
+ {"version":3,"file":"dateTimePicker.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/dateTimePicker/dateTimePicker.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {ComponentRef, Directive, ElementRef, EmbeddedViewRef, Inject, Input, OnDestroy, OnInit, Optional, ViewContainerRef} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {Position, POSITION, applyPositionResult, PositionPlacement, PositionResult} from '@anglr/common';\nimport {extend, nameof, isDescendant, BindThis, renderToBody} from '@jscrpt/common';\nimport {Observable, Subscription} from 'rxjs';\n\nimport {DateTimeInput} from '../../../../interfaces';\nimport {DATE_TIME_INPUT} from '../../../../misc/tokens';\nimport {DateTimePickerComponent} from '../../components';\nimport {DateTimePickerOptions} from '../../components/dateTimePicker/dateTimePicker.interface';\nimport {DateTimePickerDirectiveOptions} from './dateTimePicker.interface';\nimport {DATE_TIME_PICKER_DIRECTIVE_OPTIONS} from '../../misc/tokens';\nimport {DateTimeBase} from '../../../dateTime/directives';\n\n/**\n * Default options for date time picker directive\n */\nconst defaultOptions: DateTimePickerDirectiveOptions =\n{\n absolute: true,\n alwaysVisible: false,\n closeOnValueSelect: false,\n closeOnBlur: true,\n disabled: false,\n positionOptions: PositionPlacement.BottomStart,\n showOnFocus: true,\n targetElement: null,\n pickerCssClass: null,\n};\n\n/**\n * Directive that is used for displaying and attaching date time picker\n */\n@Directive(\n{\n selector: '[dateTime][withPicker]',\n standalone: true,\n exportAs: 'dateTimePicker',\n})\nexport class DateTimePickerDirective<TDate = unknown> extends DateTimeBase<TDate> implements OnInit, OnDestroy\n{\n //######################### protected properties #########################\n\n /**\n * Indication whether is value changes disabled\n */\n protected valueChangeDisabled: boolean = false;\n\n /**\n * Options for date time picker directive\n */\n protected ɵWithPickerOptions: DateTimePickerDirectiveOptions;\n\n /**\n * Date time picker component reference\n */\n protected componentRef: ComponentRef<DateTimePickerComponent<TDate>>|undefined|null;\n\n /**\n * Instance of date time picker component\n */\n protected component: DateTimePickerComponent<TDate>|undefined|null;\n\n /**\n * Instance of date time picker element\n */\n protected componentElement: HTMLElement|undefined|null;\n\n /**\n * Subscription for changes in picker\n */\n protected pickerChangesSubscription: Subscription|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets options for date time picker directive\n */\n @Input()\n public get withPickerOptions(): Partial<DateTimePickerDirectiveOptions>\n {\n return this.ɵWithPickerOptions;\n }\n public set withPickerOptions(value: Partial<DateTimePickerDirectiveOptions>)\n {\n this.ɵWithPickerOptions = extend(true, {}, this.ɵWithPickerOptions, value);\n }\n\n /**\n * Options for date time picker component\n */\n @Input()\n public pickerOptions: Partial<DateTimePickerOptions<TDate>>|undefined|null;\n\n //######################### constructor #########################\n constructor(protected viewContainer: ViewContainerRef,\n protected element: ElementRef<HTMLElement>,\n @Inject(DATE_TIME_INPUT) protected input: DateTimeInput<TDate>,\n @Inject(DOCUMENT) protected document: Document,\n @Inject(POSITION) protected position: Position<HTMLElement>,\n\n @Inject(DATE_TIME_PICKER_DIRECTIVE_OPTIONS) @Optional() options?: DateTimePickerDirectiveOptions,)\n {\n super();\n\n this.ɵWithPickerOptions = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public async ngOnInit(): Promise<void>\n {\n if(this.withPickerOptions.alwaysVisible)\n {\n this.showPicker();\n }\n\n this.initSubscriptions.add(this.input.valueChange.subscribe(() =>\n {\n this.setPickerValue();\n this.componentRef?.changeDetectorRef.detectChanges();\n }));\n\n this.initSubscriptions.add(this.input.focus.subscribe(() =>\n {\n if(this.withPickerOptions.showOnFocus)\n {\n this.showPicker();\n }\n }));\n\n this.initSubscriptions.add(this.input.blur.subscribe(() =>\n {\n if(this.withPickerOptions.closeOnBlur)\n {\n this.hidePicker();\n }\n }));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public override ngOnDestroy(): void\n {\n super.ngOnDestroy();\n\n this.hidePicker();\n this.initSubscriptions.unsubscribe();\n }\n\n //######################### public methods #########################\n\n /**\n * Hides date time picker\n */\n public async showPicker(): Promise<void>\n {\n if(this.withPickerOptions.disabled || this.componentRef)\n {\n return;\n }\n\n this.componentRef = this.viewContainer.createComponent(DateTimePickerComponent<TDate>);\n this.componentElement = (this.componentRef?.hostView as EmbeddedViewRef<DateTimePickerComponent<TDate>>).rootNodes[0] as HTMLElement;\n this.component = this.componentRef.instance;\n\n if(this.withPickerOptions.absolute)\n {\n renderToBody(this.document, this.componentElement, this.withPickerOptions.targetElement);\n }\n\n this.pickerChangesSubscription = new Subscription();\n this.pickerChangesSubscription.add(this.component.valueChange.subscribe(() =>\n {\n if(this.component)\n {\n this.valueChangeDisabled = true;\n this.input.value = this.component.value;\n this.input.valueChange.emit();\n this.valueChangeDisabled = false;\n\n if(this.ɵWithPickerOptions.closeOnValueSelect)\n {\n this.hidePicker();\n }\n }\n }));\n\n this.document.addEventListener('click', this.handleClickOutside);\n this.componentElement.addEventListener('mousedown', this.handleClickInside);\n this.componentElement.style.position = 'absolute';\n\n if(this.ɵWithPickerOptions.pickerCssClass)\n {\n this.componentElement.classList.add(this.ɵWithPickerOptions.pickerCssClass);\n }\n\n this.pickerChangesSubscription.add(this.positionPicker(this.componentElement, true).subscribe(result => applyPositionResult(result)));\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('options'), this.pickerOptions);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('valueFormat'), this.dateTimeData.valueFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('format'), this.dateTimeData.format);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('customFormat'), this.dateTimeData.customFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('dataFormat'), this.dateTimeData.dataFormat);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('minDateTime'), this.dateTimeData.minDateTime);\n this.componentRef.setInput(nameof<DateTimePickerComponent>('maxDateTime'), this.dateTimeData.maxDateTime);\n this.setPickerValue();\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n /**\n * Shows date time picker\n */\n public hidePicker(): void\n {\n if(this.withPickerOptions.alwaysVisible)\n {\n return;\n }\n\n this.componentElement?.removeEventListener('mousedown', this.handleClickInside);\n \n this.pickerChangesSubscription?.unsubscribe();\n this.pickerChangesSubscription = null;\n \n this.component = null;\n\n this.componentRef?.destroy();\n this.componentRef = null;\n\n this.componentElement?.remove();\n this.componentElement = null;\n\n this.document.removeEventListener('click', this.handleClickOutside);\n }\n\n //######################### protected methods #########################\n\n /**\n * Sets all picker value\n */\n protected setPickerValue(): void\n {\n if(this.valueChangeDisabled)\n {\n return;\n }\n\n if(this.componentRef)\n {\n this.componentRef.setInput(nameof<DateTimePickerComponent>('value'), this.input.value);\n }\n }\n\n /**\n * Handles clicking outside of picker\n * @param event - Event that occured\n */\n @BindThis\n protected handleClickOutside(event: MouseEvent): void\n {\n if(!this.componentElement)\n {\n return;\n }\n\n if(this.componentElement != event.target &&\n !isDescendant(this.componentElement, event.target as HTMLElement) &&\n (!this.input.element || (this.input.element != event.target &&\n !isDescendant(this.input.element, event.target as HTMLElement))))\n {\n this.hidePicker();\n }\n }\n\n /**\n * Handles clicking inside of picker element\n * @param event - Event that occured\n */\n @BindThis\n protected handleClickInside(event: MouseEvent): void\n {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * Runs placement of picker component\n * @param componentElement - Element to be positioned\n * @param watch - Indication whether watch for changes and update position\n */\n protected positionPicker(componentElement: HTMLElement, watch: boolean): Observable<PositionResult<HTMLElement>>\n {\n return this.position.placeElement(componentElement, this.element.nativeElement,\n {\n flip: true,\n placement: this.withPickerOptions.positionOptions,\n autoUpdate: watch,\n });\n }\n\n //######################### protected methods - overrides #########################\n\n /**\n * @inheritdoc\n */\n protected override onMaxDateTimeChange(): void\n {\n if(!this.componentRef)\n {\n return;\n }\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('maxDateTime'), this.dateTimeData.maxDateTime);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n\n /**\n * @inheritdoc\n */\n protected override onMinDateTimeChange(): void\n {\n if(!this.componentRef)\n {\n return;\n }\n\n this.componentRef.setInput(nameof<DateTimePickerComponent>('minDateTime'), this.dateTimeData.minDateTime);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n}"]}
@@ -1,46 +1,12 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { ContentChildren, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
3
3
  import { DebounceCall, isBlank, nameof } from '@jscrpt/common';
4
- import { LoopScrollDataSADirective } from '../loopScrollData/loopScrollData.directive';
4
+ import { LoopScrollDataDirective } from '../loopScrollData/loopScrollData.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
7
  * Renders loop scroll for array of elements
8
8
  */
9
- export class LoopScrollSADirective {
10
- scrollElement;
11
- //######################### protected fields #########################
12
- /**
13
- * Item height that obtained
14
- */
15
- itemHeight;
16
- /**
17
- * Array of elements for scrolled stuff
18
- */
19
- ɵitems = [];
20
- /**
21
- * Array of elements and data for scrolled stuff
22
- */
23
- dataItems = [];
24
- /**
25
- * Indication whether is loop scroll initialized
26
- */
27
- initialized = false;
28
- /**
29
- * Count of cloned elements before or after
30
- */
31
- clonedCount = 0;
32
- /**
33
- * Indication whether ignore scroll handle
34
- */
35
- ignoreScrollHandle = false;
36
- /**
37
- * Indication whether skip value change
38
- */
39
- skipValueChange = false;
40
- /**
41
- * Value that is being set in loop scroll
42
- */
43
- ɵvalue;
9
+ export class LoopScrollDirective {
44
10
  //######################### public properties - inputs #########################
45
11
  /**
46
12
  * Gets or sets value that is being set in loop scroll
@@ -52,23 +18,42 @@ export class LoopScrollSADirective {
52
18
  this.skipValueChange = this.ɵvalue == value;
53
19
  this.ɵvalue = value;
54
20
  }
55
- /**
56
- * Indication whether is currently selection scroll open
57
- */
58
- open = false;
59
- //######################### public properties - outputs #########################
60
- /**
61
- * Occurs when current value of loop scroll changes
62
- */
63
- valueChange = new EventEmitter();
64
- //######################### protected properties - children #########################
65
- /**
66
- * Array of items that are loop scrolled
67
- */
68
- items;
69
21
  //######################### constructor #########################
70
22
  constructor(scrollElement) {
71
23
  this.scrollElement = scrollElement;
24
+ /**
25
+ * Array of elements for scrolled stuff
26
+ */
27
+ this.ɵitems = [];
28
+ /**
29
+ * Array of elements and data for scrolled stuff
30
+ */
31
+ this.dataItems = [];
32
+ /**
33
+ * Indication whether is loop scroll initialized
34
+ */
35
+ this.initialized = false;
36
+ /**
37
+ * Count of cloned elements before or after
38
+ */
39
+ this.clonedCount = 0;
40
+ /**
41
+ * Indication whether ignore scroll handle
42
+ */
43
+ this.ignoreScrollHandle = false;
44
+ /**
45
+ * Indication whether skip value change
46
+ */
47
+ this.skipValueChange = false;
48
+ /**
49
+ * Indication whether is currently selection scroll open
50
+ */
51
+ this.open = false;
52
+ //######################### public properties - outputs #########################
53
+ /**
54
+ * Occurs when current value of loop scroll changes
55
+ */
56
+ this.valueChange = new EventEmitter();
72
57
  }
73
58
  //######################### public methods - implementation of OnChanges #########################
74
59
  /**
@@ -198,16 +183,16 @@ export class LoopScrollSADirective {
198
183
  this.valueChange.next(this.value);
199
184
  }
200
185
  }
201
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LoopScrollSADirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
202
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: LoopScrollSADirective, isStandalone: true, selector: "[loopScroll]", inputs: { value: ["loopScroll", "value"], open: "open" }, outputs: { valueChange: "loopScrollChange" }, host: { listeners: { "scroll": "_handleScroll()" } }, queries: [{ propertyName: "items", predicate: LoopScrollDataSADirective }], usesOnChanges: true, ngImport: i0 });
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
187
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: LoopScrollDirective, isStandalone: true, selector: "[loopScroll]", inputs: { value: ["loopScroll", "value"], open: "open" }, outputs: { valueChange: "loopScrollChange" }, host: { listeners: { "scroll": "_handleScroll()" } }, queries: [{ propertyName: "items", predicate: LoopScrollDataDirective }], usesOnChanges: true, ngImport: i0 }); }
203
188
  }
204
189
  __decorate([
205
190
  DebounceCall(18),
206
191
  __metadata("design:type", Function),
207
192
  __metadata("design:paramtypes", [Number, Boolean, Number, Number]),
208
193
  __metadata("design:returntype", void 0)
209
- ], LoopScrollSADirective.prototype, "_updateScroll", null);
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LoopScrollSADirective, decorators: [{
194
+ ], LoopScrollDirective.prototype, "_updateScroll", null);
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollDirective, decorators: [{
211
196
  type: Directive,
212
197
  args: [{
213
198
  selector: '[loopScroll]',
@@ -223,7 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
223
208
  args: ['loopScrollChange']
224
209
  }], items: [{
225
210
  type: ContentChildren,
226
- args: [LoopScrollDataSADirective]
211
+ args: [LoopScrollDataDirective]
227
212
  }], _handleScroll: [{
228
213
  type: HostListener,
229
214
  args: ['scroll']
@@ -1 +1 @@
1
- {"version":3,"file":"loopScroll.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {AfterContentInit, ContentChildren, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, QueryList, SimpleChanges} from '@angular/core';\nimport {DebounceCall, isBlank, nameof} from '@jscrpt/common';\n\nimport {LoopScrollDataSADirective} from '../loopScrollData/loopScrollData.directive';\n\n/**\n * Renders loop scroll for array of elements\n */\n@Directive(\n{\n selector: '[loopScroll]',\n standalone: true,\n})\nexport class LoopScrollSADirective<TData = unknown> implements OnChanges, AfterContentInit\n{\n //######################### protected fields #########################\n\n /**\n * Item height that obtained\n */\n protected itemHeight: number|undefined|null;\n\n /**\n * Array of elements for scrolled stuff\n */\n protected ɵitems: LoopScrollDataSADirective<TData>[] = [];\n\n /**\n * Array of elements and data for scrolled stuff\n */ \n protected dataItems: LoopScrollDataSADirective<TData>[] = [];\n\n /**\n * Indication whether is loop scroll initialized\n */\n protected initialized: boolean = false;\n\n /**\n * Count of cloned elements before or after\n */\n protected clonedCount: number = 0;\n\n /**\n * Indication whether ignore scroll handle\n */\n protected ignoreScrollHandle: boolean = false;\n\n /**\n * Indication whether skip value change\n */\n protected skipValueChange: boolean = false;\n\n /**\n * Value that is being set in loop scroll\n */\n protected ɵvalue: TData|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets value that is being set in loop scroll\n */\n @Input('loopScroll')\n public get value(): TData|undefined|null\n {\n return this.ɵvalue;\n }\n public set value(value: TData|undefined|null)\n {\n this.skipValueChange = this.ɵvalue == value;\n this.ɵvalue = value;\n }\n\n /**\n * Indication whether is currently selection scroll open\n */\n @Input()\n public open: boolean = false;\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when current value of loop scroll changes\n */\n @Output('loopScrollChange')\n public valueChange: EventEmitter<TData|undefined|null> = new EventEmitter<TData|undefined|null>();\n\n //######################### protected properties - children #########################\n\n /**\n * Array of items that are loop scrolled\n */\n @ContentChildren(LoopScrollDataSADirective)\n protected items: QueryList<LoopScrollDataSADirective<TData>>|undefined|null;\n\n //######################### constructor #########################\n constructor(protected scrollElement: ElementRef<HTMLElement>)\n {\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(!this.initialized)\n {\n return;\n }\n\n const itemHeight = this.itemHeight ?? 1;\n\n if(nameof<LoopScrollSADirective>('open') in changes)\n {\n if(this.open)\n {\n this.scrollElement.nativeElement.scrollTo({top: this.scrollElement.nativeElement.scrollTop - (2 * itemHeight), behavior: 'auto'});\n\n return;\n }\n\n if(nameof<LoopScrollSADirective>('value') in changes)\n {\n const selectedItem = this.dataItems?.find(itm => itm.data == this.value);\n\n if(!selectedItem)\n {\n throw new Error('No item selected in loop scroll');\n }\n\n const selectedIndex = this.dataItems.indexOf(selectedItem);\n\n this.scrollElement.nativeElement.scrollTo({top: (selectedIndex + this.clonedCount) * itemHeight, behavior: 'auto'});\n }\n else\n {\n this.scrollElement.nativeElement.scrollTo({top: this.scrollElement.nativeElement.scrollTop + (2 * itemHeight), behavior: 'auto'});\n }\n }\n else if(nameof<LoopScrollSADirective>('value') in changes)\n {\n if(!this.skipValueChange)\n {\n this.ignoreScrollHandle = true;\n this.scrollElement.nativeElement.scrollTo({top: (this.itemHeight ?? 0) * (this.clonedCount + this.dataItems.findIndex(itm => itm.data == this.value) + (this.open ? -2 : 0)), behavior: 'auto'});\n this.ignoreScrollHandle = false;\n }\n }\n\n this.skipValueChange = false;\n }\n\n //######################### public methods - implementation of AfterContentInit #########################\n \n /**\n * Called when content was initialized\n */\n public ngAfterContentInit(): void\n {\n this.ɵitems = this.items?.toArray() ?? [];\n this.dataItems = this.ɵitems?.filter(itm => !itm.clone);\n\n if(!this.dataItems?.length)\n {\n this.items?.changes.subscribe(() =>\n {\n this.ɵitems = this.items?.toArray() ?? [];\n this.dataItems = this.ɵitems?.filter(itm => !itm.clone);\n\n this._initialize();\n });\n\n return;\n }\n\n this._initialize();\n }\n\n //######################### protected methods #########################\n\n /**\n * Intialize default value\n */\n protected _initialize(): void\n {\n const cloned = this.ɵitems?.filter(itm => itm.clone) ?? [];\n this.clonedCount = cloned.length / 2;\n\n if(!this.dataItems?.length)\n {\n return;\n }\n\n this.dataItems.forEach(itm =>\n {\n if(isBlank(this.itemHeight))\n {\n this.itemHeight = itm.element.nativeElement.offsetHeight;\n\n return;\n }\n\n if(this.itemHeight != itm.element.nativeElement.offsetHeight)\n {\n throw new Error('All items inside of loop scroll should have same height');\n }\n });\n\n this.scrollElement.nativeElement.scrollTo({top: (this.itemHeight ?? 0) * (this.clonedCount + this.dataItems.findIndex(itm => itm.data == this.value)), behavior: 'auto'});\n this.initialized = true;\n }\n\n /**\n * Handles scroll event\n */\n @HostListener('scroll')\n protected _handleScroll(): void\n {\n if(this.ignoreScrollHandle)\n {\n return;\n }\n\n requestAnimationFrame(() =>\n {\n if(!this.dataItems)\n {\n return;\n }\n\n const index = this.scrollElement.nativeElement.scrollTop / (this.itemHeight ?? 1);\n const dataIndex = index + (this.open ? 2 : 0) - this.clonedCount;\n const dataLength = (this.itemHeight ?? 1) * this.dataItems.length;\n\n if(index % 1 <= .2 || index % 1 >= .8)\n {\n this.scrollElement.nativeElement.querySelector('.selected')?.classList?.remove('selected');\n\n const roundIndex = Math.round(index);\n this.ɵitems[roundIndex + (this.open ? 2 : 0)].element.nativeElement.classList.add('selected');\n this._emitValue(dataIndex);\n }\n\n if(dataIndex <= -1)\n {\n this._updateScroll(dataLength, true, index, dataIndex);\n }\n else if(dataIndex >= (this.dataItems.length ?? 0))\n {\n this._updateScroll(dataLength, false, index, dataIndex);\n }\n });\n }\n\n /**\n * Updates scroll to be at full value of item\n * @param dataLength - Length of all data\n * @param add - Indication whether add or subtract length\n * @param index - Current index\n * @param dataIndex - Current index of data \n */\n @DebounceCall(18)\n protected _updateScroll(dataLength: number, add: boolean, index: number, dataIndex: number): void\n {\n this.scrollElement.nativeElement.scrollTo({top: (Math.round(index) * (this.itemHeight ?? 1)) + (add ? dataLength : (dataLength * -1)), behavior: 'auto'});\n\n this._emitValue(dataIndex);\n }\n\n /**\n * Emits value after scroll\n * @param index - Index of currently selected data item\n */\n protected _emitValue(index: number): void\n {\n index = Math.round(index) % this.dataItems.length;\n \n if(index < 0)\n {\n index = this.dataItems.length + index;\n }\n\n const item = this.dataItems[index];\n\n if(this.value != item.data)\n {\n this.value = item.data;\n this.valueChange.next(this.value);\n }\n }\n}"]}
1
+ {"version":3,"file":"loopScroll.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/loopScroll/loopScroll.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {AfterContentInit, ContentChildren, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, QueryList, SimpleChanges} from '@angular/core';\nimport {DebounceCall, isBlank, nameof} from '@jscrpt/common';\n\nimport {LoopScrollDataDirective} from '../loopScrollData/loopScrollData.directive';\n\n/**\n * Renders loop scroll for array of elements\n */\n@Directive(\n{\n selector: '[loopScroll]',\n standalone: true,\n})\nexport class LoopScrollDirective<TData = unknown> implements OnChanges, AfterContentInit\n{\n //######################### protected fields #########################\n\n /**\n * Item height that obtained\n */\n protected itemHeight: number|undefined|null;\n\n /**\n * Array of elements for scrolled stuff\n */\n protected ɵitems: LoopScrollDataDirective<TData>[] = [];\n\n /**\n * Array of elements and data for scrolled stuff\n */ \n protected dataItems: LoopScrollDataDirective<TData>[] = [];\n\n /**\n * Indication whether is loop scroll initialized\n */\n protected initialized: boolean = false;\n\n /**\n * Count of cloned elements before or after\n */\n protected clonedCount: number = 0;\n\n /**\n * Indication whether ignore scroll handle\n */\n protected ignoreScrollHandle: boolean = false;\n\n /**\n * Indication whether skip value change\n */\n protected skipValueChange: boolean = false;\n\n /**\n * Value that is being set in loop scroll\n */\n protected ɵvalue: TData|undefined|null;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets value that is being set in loop scroll\n */\n @Input('loopScroll')\n public get value(): TData|undefined|null\n {\n return this.ɵvalue;\n }\n public set value(value: TData|undefined|null)\n {\n this.skipValueChange = this.ɵvalue == value;\n this.ɵvalue = value;\n }\n\n /**\n * Indication whether is currently selection scroll open\n */\n @Input()\n public open: boolean = false;\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when current value of loop scroll changes\n */\n @Output('loopScrollChange')\n public valueChange: EventEmitter<TData|undefined|null> = new EventEmitter<TData|undefined|null>();\n\n //######################### protected properties - children #########################\n\n /**\n * Array of items that are loop scrolled\n */\n @ContentChildren(LoopScrollDataDirective)\n protected items: QueryList<LoopScrollDataDirective<TData>>|undefined|null;\n\n //######################### constructor #########################\n constructor(protected scrollElement: ElementRef<HTMLElement>)\n {\n }\n\n //######################### public methods - implementation of OnChanges #########################\n \n /**\n * Called when input value changes\n */\n public ngOnChanges(changes: SimpleChanges): void\n {\n if(!this.initialized)\n {\n return;\n }\n\n const itemHeight = this.itemHeight ?? 1;\n\n if(nameof<LoopScrollDirective>('open') in changes)\n {\n if(this.open)\n {\n this.scrollElement.nativeElement.scrollTo({top: this.scrollElement.nativeElement.scrollTop - (2 * itemHeight), behavior: 'auto'});\n\n return;\n }\n\n if(nameof<LoopScrollDirective>('value') in changes)\n {\n const selectedItem = this.dataItems?.find(itm => itm.data == this.value);\n\n if(!selectedItem)\n {\n throw new Error('No item selected in loop scroll');\n }\n\n const selectedIndex = this.dataItems.indexOf(selectedItem);\n\n this.scrollElement.nativeElement.scrollTo({top: (selectedIndex + this.clonedCount) * itemHeight, behavior: 'auto'});\n }\n else\n {\n this.scrollElement.nativeElement.scrollTo({top: this.scrollElement.nativeElement.scrollTop + (2 * itemHeight), behavior: 'auto'});\n }\n }\n else if(nameof<LoopScrollDirective>('value') in changes)\n {\n if(!this.skipValueChange)\n {\n this.ignoreScrollHandle = true;\n this.scrollElement.nativeElement.scrollTo({top: (this.itemHeight ?? 0) * (this.clonedCount + this.dataItems.findIndex(itm => itm.data == this.value) + (this.open ? -2 : 0)), behavior: 'auto'});\n this.ignoreScrollHandle = false;\n }\n }\n\n this.skipValueChange = false;\n }\n\n //######################### public methods - implementation of AfterContentInit #########################\n \n /**\n * Called when content was initialized\n */\n public ngAfterContentInit(): void\n {\n this.ɵitems = this.items?.toArray() ?? [];\n this.dataItems = this.ɵitems?.filter(itm => !itm.clone);\n\n if(!this.dataItems?.length)\n {\n this.items?.changes.subscribe(() =>\n {\n this.ɵitems = this.items?.toArray() ?? [];\n this.dataItems = this.ɵitems?.filter(itm => !itm.clone);\n\n this._initialize();\n });\n\n return;\n }\n\n this._initialize();\n }\n\n //######################### protected methods #########################\n\n /**\n * Intialize default value\n */\n protected _initialize(): void\n {\n const cloned = this.ɵitems?.filter(itm => itm.clone) ?? [];\n this.clonedCount = cloned.length / 2;\n\n if(!this.dataItems?.length)\n {\n return;\n }\n\n this.dataItems.forEach(itm =>\n {\n if(isBlank(this.itemHeight))\n {\n this.itemHeight = itm.element.nativeElement.offsetHeight;\n\n return;\n }\n\n if(this.itemHeight != itm.element.nativeElement.offsetHeight)\n {\n throw new Error('All items inside of loop scroll should have same height');\n }\n });\n\n this.scrollElement.nativeElement.scrollTo({top: (this.itemHeight ?? 0) * (this.clonedCount + this.dataItems.findIndex(itm => itm.data == this.value)), behavior: 'auto'});\n this.initialized = true;\n }\n\n /**\n * Handles scroll event\n */\n @HostListener('scroll')\n protected _handleScroll(): void\n {\n if(this.ignoreScrollHandle)\n {\n return;\n }\n\n requestAnimationFrame(() =>\n {\n if(!this.dataItems)\n {\n return;\n }\n\n const index = this.scrollElement.nativeElement.scrollTop / (this.itemHeight ?? 1);\n const dataIndex = index + (this.open ? 2 : 0) - this.clonedCount;\n const dataLength = (this.itemHeight ?? 1) * this.dataItems.length;\n\n if(index % 1 <= .2 || index % 1 >= .8)\n {\n this.scrollElement.nativeElement.querySelector('.selected')?.classList?.remove('selected');\n\n const roundIndex = Math.round(index);\n this.ɵitems[roundIndex + (this.open ? 2 : 0)].element.nativeElement.classList.add('selected');\n this._emitValue(dataIndex);\n }\n\n if(dataIndex <= -1)\n {\n this._updateScroll(dataLength, true, index, dataIndex);\n }\n else if(dataIndex >= (this.dataItems.length ?? 0))\n {\n this._updateScroll(dataLength, false, index, dataIndex);\n }\n });\n }\n\n /**\n * Updates scroll to be at full value of item\n * @param dataLength - Length of all data\n * @param add - Indication whether add or subtract length\n * @param index - Current index\n * @param dataIndex - Current index of data \n */\n @DebounceCall(18)\n protected _updateScroll(dataLength: number, add: boolean, index: number, dataIndex: number): void\n {\n this.scrollElement.nativeElement.scrollTo({top: (Math.round(index) * (this.itemHeight ?? 1)) + (add ? dataLength : (dataLength * -1)), behavior: 'auto'});\n\n this._emitValue(dataIndex);\n }\n\n /**\n * Emits value after scroll\n * @param index - Index of currently selected data item\n */\n protected _emitValue(index: number): void\n {\n index = Math.round(index) % this.dataItems.length;\n \n if(index < 0)\n {\n index = this.dataItems.length + index;\n }\n\n const item = this.dataItems[index];\n\n if(this.value != item.data)\n {\n this.value = item.data;\n this.valueChange.next(this.value);\n }\n }\n}"]}
@@ -3,25 +3,19 @@ import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Loop scroll data that are used inside LoopScrollDirective
5
5
  */
6
- export class LoopScrollDataSADirective {
7
- element;
8
- //######################### public properties - inputs #########################
9
- /**
10
- * Data for loop
11
- */
12
- data;
13
- /**
14
- * Indication that this node is clone
15
- */
16
- clone = false;
6
+ export class LoopScrollDataDirective {
17
7
  //######################### constructor #########################
18
8
  constructor(element) {
19
9
  this.element = element;
10
+ /**
11
+ * Indication that this node is clone
12
+ */
13
+ this.clone = false;
20
14
  }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LoopScrollDataSADirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
22
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: LoopScrollDataSADirective, isStandalone: true, selector: "[loopScrollData]", inputs: { data: ["loopScrollData", "data"], clone: "clone" }, ngImport: i0 });
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: LoopScrollDataDirective, isStandalone: true, selector: "[loopScrollData]", inputs: { data: ["loopScrollData", "data"], clone: "clone" }, ngImport: i0 }); }
23
17
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LoopScrollDataSADirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoopScrollDataDirective, decorators: [{
25
19
  type: Directive,
26
20
  args: [{
27
21
  selector: '[loopScrollData]',
@@ -1 +1 @@
1
- {"version":3,"file":"loopScrollData.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;;AAE3D;;GAEG;AAMH,MAAM,OAAO,yBAAyB;IAiBf;IAfnB,gFAAgF;IAEhF;;OAEG;IAEI,IAAI,CAAuB;IAElC;;OAEG;IAEI,KAAK,GAAY,KAAK,CAAC;IAE9B,iEAAiE;IACjE,YAAmB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAEnD,CAAC;uGAnBQ,yBAAyB;2FAAzB,yBAAyB;;2FAAzB,yBAAyB;kBALrC,SAAS;mBACV;oBACI,QAAQ,EAAE,kBAAkB;oBAC5B,UAAU,EAAE,IAAI;iBACnB;+EASU,IAAI;sBADV,KAAK;uBAAC,gBAAgB;gBAOhB,KAAK;sBADX,KAAK","sourcesContent":["import {Directive, ElementRef, Input} from '@angular/core';\n\n/**\n * Loop scroll data that are used inside LoopScrollDirective\n */\n@Directive(\n{\n selector: '[loopScrollData]',\n standalone: true,\n})\nexport class LoopScrollDataSADirective<TData = unknown>\n{\n //######################### public properties - inputs #########################\n\n /**\n * Data for loop\n */\n @Input('loopScrollData')\n public data: TData|undefined|null;\n\n /**\n * Indication that this node is clone\n */\n @Input()\n public clone: boolean = false;\n\n //######################### constructor #########################\n constructor(public element: ElementRef<HTMLElement>)\n {\n }\n}"]}
1
+ {"version":3,"file":"loopScrollData.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/directives/loopScrollData/loopScrollData.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;;AAE3D;;GAEG;AAMH,MAAM,OAAO,uBAAuB;IAgBhC,iEAAiE;IACjE,YAAmB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QAPnD;;WAEG;QAEI,UAAK,GAAY,KAAK,CAAC;IAK9B,CAAC;8GAnBQ,uBAAuB;kGAAvB,uBAAuB;;2FAAvB,uBAAuB;kBALnC,SAAS;mBACV;oBACI,QAAQ,EAAE,kBAAkB;oBAC5B,UAAU,EAAE,IAAI;iBACnB;+EASU,IAAI;sBADV,KAAK;uBAAC,gBAAgB;gBAOhB,KAAK;sBADX,KAAK","sourcesContent":["import {Directive, ElementRef, Input} from '@angular/core';\n\n/**\n * Loop scroll data that are used inside LoopScrollDirective\n */\n@Directive(\n{\n selector: '[loopScrollData]',\n standalone: true,\n})\nexport class LoopScrollDataDirective<TData = unknown>\n{\n //######################### public properties - inputs #########################\n\n /**\n * Data for loop\n */\n @Input('loopScrollData')\n public data: TData|undefined|null;\n\n /**\n * Indication that this node is clone\n */\n @Input()\n public clone: boolean = false;\n\n //######################### constructor #########################\n constructor(public element: ElementRef<HTMLElement>)\n {\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"periodData.interface.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/interfaces/periodData/periodData.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {DateApiObject} from '../../../../services';\n\n/**\n * Data that represents data for any picker type\n */\nexport interface PeriodData<TDate = unknown>\n{\n /**\n * Indication that this period item is active and selected\n */\n active: boolean;\n\n /**\n * Indication that this period item is disabled\n */\n disabled: boolean;\n\n //TODO: remove\n\n /**\n * Date for this period item\n */\n date: TDate;\n\n /**\n * Date for this period item as date api object\n */\n dateObj: DateApiObject<TDate>;\n}\n\n/**\n * Data that represents day in date picker\n */\nexport interface DayData<TDate = unknown> extends PeriodData<TDate>\n{\n\n /**\n * Indication that this day is out of currently selected month\n */\n otherMonth: boolean;\n\n /**\n * Indication that this day is today\n */\n today: boolean;\n\n /**\n * Indication that this day is weekend day\n */\n weekend: boolean;\n\n /**\n * Day number of month\n */\n day: number;\n}\n\n/**\n * Data that represents month in date picker\n */\nexport interface MonthData<TDate = unknown> extends PeriodData<TDate>\n{\n /**\n * Name of month\n */\n name: string;\n}\n\n/**\n * Data that represents year in date picker\n */\nexport interface YearData<TDate = unknown> extends PeriodData<TDate>\n{\n /**\n * Value of year\n */\n value: number;\n}"]}
1
+ {"version":3,"file":"periodData.interface.js","sourceRoot":"","sources":["../../../../../../src/modules/dateTimePicker/interfaces/periodData/periodData.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {DateApiObject} from '../../../../services';\n\n/**\n * Data that represents data for any picker type\n */\nexport interface PeriodData<TDate = unknown>\n{\n /**\n * Indication that this period item is active and selected\n */\n active: boolean;\n\n /**\n * Indication that this period item is disabled\n */\n disabled: boolean;\n\n /**\n * Date for this period item\n */\n date: TDate;\n\n /**\n * Date for this period item as date api object\n */\n dateObj: DateApiObject<TDate>;\n}\n\n/**\n * Data that represents day in date picker\n */\nexport interface DayData<TDate = unknown> extends PeriodData<TDate>\n{\n\n /**\n * Indication that this day is out of currently selected month\n */\n otherMonth: boolean;\n\n /**\n * Indication that this day is today\n */\n today: boolean;\n\n /**\n * Indication that this day is weekend day\n */\n weekend: boolean;\n\n /**\n * Day number of month\n */\n day: number;\n}\n\n/**\n * Data that represents month in date picker\n */\nexport interface MonthData<TDate = unknown> extends PeriodData<TDate>\n{\n /**\n * Name of month\n */\n name: string;\n}\n\n/**\n * Data that represents year in date picker\n */\nexport interface YearData<TDate = unknown> extends PeriodData<TDate>\n{\n /**\n * Value of year\n */\n value: number;\n}"]}
@@ -1,28 +1,27 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { DateTimePickerComponent } from '../components';
3
- import { DateTimePickerSADirective } from '../directives';
3
+ import { DateTimePickerDirective } from '../directives';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Module for components that are used as date time picker
7
7
  */
8
8
  export class DateTimePickerModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerModule, declarations: [DateTimePickerComponent], imports: [DateTimePickerSADirective], exports: [DateTimePickerComponent,
11
- DateTimePickerSADirective] });
12
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerModule });
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerModule, imports: [DateTimePickerDirective,
11
+ DateTimePickerComponent], exports: [DateTimePickerComponent,
12
+ DateTimePickerDirective] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerModule }); }
13
14
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateTimePickerModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateTimePickerModule, decorators: [{
15
16
  type: NgModule,
16
17
  args: [{
17
18
  imports: [
18
- DateTimePickerSADirective,
19
- ],
20
- declarations: [
19
+ DateTimePickerDirective,
21
20
  DateTimePickerComponent,
22
21
  ],
23
22
  exports: [
24
23
  DateTimePickerComponent,
25
- DateTimePickerSADirective,
24
+ DateTimePickerDirective,
26
25
  ],
27
26
  }]
28
27
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimePicker.module.js","sourceRoot":"","sources":["../../../../../src/modules/dateTimePicker/modules/dateTimePicker.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;;AAExD;;GAEG;AAiBH,MAAM,OAAO,oBAAoB;uGAApB,oBAAoB;wGAApB,oBAAoB,iBARzB,uBAAuB,aAJvB,yBAAyB,aAQzB,uBAAuB;YACvB,yBAAyB;wGAGpB,oBAAoB;;2FAApB,oBAAoB;kBAhBhC,QAAQ;mBACT;oBACI,OAAO,EACP;wBACI,yBAAyB;qBAC5B;oBACD,YAAY,EACZ;wBACI,uBAAuB;qBAC1B;oBACD,OAAO,EACP;wBACI,uBAAuB;wBACvB,yBAAyB;qBAC5B;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {DateTimePickerComponent} from '../components';\nimport {DateTimePickerSADirective} from '../directives';\n\n/**\n * Module for components that are used as date time picker\n */\n@NgModule(\n{\n imports:\n [\n DateTimePickerSADirective,\n ],\n declarations:\n [\n DateTimePickerComponent,\n ],\n exports:\n [\n DateTimePickerComponent,\n DateTimePickerSADirective,\n ],\n})\nexport class DateTimePickerModule\n{\n}"]}
1
+ {"version":3,"file":"dateTimePicker.module.js","sourceRoot":"","sources":["../../../../../src/modules/dateTimePicker/modules/dateTimePicker.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;;AAEtD;;GAEG;AAcH,MAAM,OAAO,oBAAoB;8GAApB,oBAAoB;+GAApB,oBAAoB,YATzB,uBAAuB;YACvB,uBAAuB,aAIvB,uBAAuB;YACvB,uBAAuB;+GAGlB,oBAAoB;;2FAApB,oBAAoB;kBAbhC,QAAQ;mBACT;oBACI,OAAO,EACP;wBACI,uBAAuB;wBACvB,uBAAuB;qBAC1B;oBACD,OAAO,EACP;wBACI,uBAAuB;wBACvB,uBAAuB;qBAC1B;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {DateTimePickerComponent} from '../components';\nimport {DateTimePickerDirective} from '../directives';\n\n/**\n * Module for components that are used as date time picker\n */\n@NgModule(\n{\n imports:\n [\n DateTimePickerDirective,\n DateTimePickerComponent,\n ],\n exports:\n [\n DateTimePickerComponent,\n DateTimePickerDirective,\n ],\n})\nexport class DateTimePickerModule\n{\n}"]}
@@ -5,7 +5,6 @@ import * as i0 from "@angular/core";
5
5
  * Pipe that is used for converting date
6
6
  */
7
7
  export class DateConvertPipe {
8
- _dateApi;
9
8
  //######################### constructors #########################
10
9
  constructor(_dateApi) {
11
10
  this._dateApi = _dateApi;
@@ -23,12 +22,12 @@ export class DateConvertPipe {
23
22
  }
24
23
  return null;
25
24
  }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateConvertPipe, deps: [{ token: DATE_API }], target: i0.ɵɵFactoryTarget.Pipe });
27
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: DateConvertPipe, name: "dateConvert" });
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateConvertPipe, deps: [{ token: DATE_API }], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: DateConvertPipe, isStandalone: true, name: "dateConvert" }); }
28
27
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DateConvertPipe, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateConvertPipe, decorators: [{
30
29
  type: Pipe,
31
- args: [{ name: 'dateConvert' }]
30
+ args: [{ name: 'dateConvert', standalone: true }]
32
31
  }], ctorParameters: () => [{ type: undefined, decorators: [{
33
32
  type: Inject,
34
33
  args: [DATE_API]
@@ -1 +1 @@
1
- {"version":3,"file":"dateConvert.pipe.js","sourceRoot":"","sources":["../../../src/pipes/dateConvert.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;GAEG;AAEH,MAAM,OAAO,eAAe;IAGc;IADtC,kEAAkE;IAClE,YAAsC,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAE9D,CAAC;IAED,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,KAAsB,EAAE,WAAoB;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3D,IAAG,OAAO,CAAC,OAAO,EAAE,EACpB;YACI,OAAO,OAAO,CAAC;SAClB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;uGAxBQ,eAAe,kBAGJ,QAAQ;qGAHnB,eAAe;;2FAAf,eAAe;kBAD3B,IAAI;mBAAC,EAAC,IAAI,EAAE,aAAa,EAAC;;0BAIV,MAAM;2BAAC,QAAQ","sourcesContent":["import {Inject, Pipe, PipeTransform} from '@angular/core';\n\nimport {DATE_API} from '../misc/tokens';\nimport {DateApi, DateApiObject, DateValue} from '../services';\n\n/**\n * Pipe that is used for converting date\n */\n@Pipe({name: 'dateConvert'})\nexport class DateConvertPipe<TDate = unknown> implements PipeTransform\n{\n //######################### constructors #########################\n constructor(@Inject(DATE_API) private _dateApi: DateApi<TDate>)\n {\n }\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms value into date object\n * @param value - value to be transformed\n * @param parseFormat - format used for parsing string date\n */\n public transform(value: TDate|DateValue, parseFormat?: string): DateApiObject<TDate>|null\n {\n const dateObj = this._dateApi.getValue(value, parseFormat);\n\n if(dateObj.isValid())\n {\n return dateObj;\n }\n\n return null;\n }\n}"]}
1
+ {"version":3,"file":"dateConvert.pipe.js","sourceRoot":"","sources":["../../../src/pipes/dateConvert.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;GAEG;AAEH,MAAM,OAAO,eAAe;IAExB,kEAAkE;IAClE,YAAsC,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAE9D,CAAC;IAED,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,KAAsB,EAAE,WAAoB;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3D,IAAG,OAAO,CAAC,OAAO,EAAE,EACpB,CAAC;YACG,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;8GAxBQ,eAAe,kBAGJ,QAAQ;4GAHnB,eAAe;;2FAAf,eAAe;kBAD3B,IAAI;mBAAC,EAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAC;;0BAI5B,MAAM;2BAAC,QAAQ","sourcesContent":["import {Inject, Pipe, PipeTransform} from '@angular/core';\n\nimport {DATE_API} from '../misc/tokens';\nimport {DateApi, DateApiObject, DateValue} from '../services';\n\n/**\n * Pipe that is used for converting date\n */\n@Pipe({name: 'dateConvert', standalone: true})\nexport class DateConvertPipe<TDate = unknown> implements PipeTransform\n{\n //######################### constructors #########################\n constructor(@Inject(DATE_API) private _dateApi: DateApi<TDate>)\n {\n }\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms value into date object\n * @param value - value to be transformed\n * @param parseFormat - format used for parsing string date\n */\n public transform(value: TDate|DateValue, parseFormat?: string): DateApiObject<TDate>|null\n {\n const dateObj = this._dateApi.getValue(value, parseFormat);\n\n if(dateObj.isValid())\n {\n return dateObj;\n }\n\n return null;\n }\n}"]}