@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.
Files changed (244) hide show
  1. package/changelog.md +86 -0
  2. package/date-fns/src/misc/tokens.d.ts.map +1 -1
  3. package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
  4. package/es2015/date-fns/src/misc/tokens.js +12 -1
  5. package/es2015/date-fns/src/misc/tokens.js.map +1 -1
  6. package/es2015/date-fns/src/services/dateFnsDateApi.service.js +99 -5
  7. package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -1
  8. package/es2015/moment/src/misc/tokens.js +12 -1
  9. package/es2015/moment/src/misc/tokens.js.map +1 -1
  10. package/es2015/moment/src/services/momentDateApi.service.js +90 -0
  11. package/es2015/moment/src/services/momentDateApi.service.js.map +1 -1
  12. package/es2015/src/index.js +1 -0
  13. package/es2015/src/index.js.map +1 -1
  14. package/es2015/src/misc/datetime.interface.js.map +1 -1
  15. package/es2015/src/misc/tokens.js +12 -1
  16. package/es2015/src/misc/tokens.js.map +1 -1
  17. package/es2015/src/modules/datePipes.module.js +2 -7
  18. package/es2015/src/modules/datePipes.module.js.map +1 -1
  19. package/es2015/src/picker/components/clockTimePicker/clockTimePicker.component.js +14 -0
  20. package/es2015/src/picker/components/clockTimePicker/clockTimePicker.component.js.map +1 -0
  21. package/es2015/src/picker/components/clockTimePicker/clockTimePicker.interface.js +2 -0
  22. package/es2015/src/picker/components/clockTimePicker/clockTimePicker.interface.js.map +1 -0
  23. package/es2015/src/picker/components/dayPicker/dayPicker.component.js +49 -13
  24. package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -1
  25. package/es2015/src/picker/components/monthPicker/monthPicker.component.js +5 -4
  26. package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -1
  27. package/es2015/src/picker/components/picker/picker.component.js +3 -2
  28. package/es2015/src/picker/components/picker/picker.component.js.map +1 -1
  29. package/es2015/src/picker/components/pickerBase.component.js +15 -120
  30. package/es2015/src/picker/components/pickerBase.component.js.map +1 -1
  31. package/es2015/src/picker/components/pickerImplBase.component.js +145 -0
  32. package/es2015/src/picker/components/pickerImplBase.component.js.map +1 -0
  33. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.component.js +144 -0
  34. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.component.js.map +1 -0
  35. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.data.js +341 -0
  36. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.data.js.map +1 -0
  37. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js +2 -0
  38. package/es2015/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js.map +1 -0
  39. package/es2015/src/picker/components/yearPicker/yearPicker.component.js +5 -4
  40. package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -1
  41. package/es2015/src/picker/directives/index.js +4 -0
  42. package/es2015/src/picker/directives/index.js.map +1 -0
  43. package/es2015/src/picker/directives/loopScroll/loopScroll.directive.js +200 -0
  44. package/es2015/src/picker/directives/loopScroll/loopScroll.directive.js.map +1 -0
  45. package/es2015/src/picker/directives/loopScroll/loopScroll.interface.js +3 -0
  46. package/es2015/src/picker/directives/loopScroll/loopScroll.interface.js.map +1 -0
  47. package/es2015/src/picker/directives/loopScrollData/loopScrollData.directive.js +23 -0
  48. package/es2015/src/picker/directives/loopScrollData/loopScrollData.directive.js.map +1 -0
  49. package/es2015/src/picker/interfaces.js +1 -0
  50. package/es2015/src/picker/interfaces.js.map +1 -1
  51. package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -1
  52. package/es2015/src/picker/modules/picker.module.js +21 -4
  53. package/es2015/src/picker/modules/picker.module.js.map +1 -1
  54. package/es2015/src/picker/types.js +2 -0
  55. package/es2015/src/picker/types.js.map +1 -1
  56. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +16 -2
  57. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
  58. package/es2015/src/selector/components/selector/selector.component.js +25 -12
  59. package/es2015/src/selector/components/selector/selector.component.js.map +1 -1
  60. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +6 -2
  61. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
  62. package/es2015/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js +134 -0
  63. package/es2015/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js.map +1 -0
  64. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -1
  65. package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -1
  66. package/es2015/src/selector/misc/tokens.js.map +1 -1
  67. package/es2015/src/selector/modules/selector.module.js +9 -4
  68. package/es2015/src/selector/modules/selector.module.js.map +1 -1
  69. package/es2015/src/selector/types.js +1 -0
  70. package/es2015/src/selector/types.js.map +1 -1
  71. package/es2015/src/services/dateApi.interface.js.map +1 -1
  72. package/es2015/src/services/datePositionParser.service.js +14 -0
  73. package/es2015/src/services/datePositionParser.service.js.map +1 -1
  74. package/es2015/src/services/dateTimeRelativeParser.service.js +15 -1
  75. package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -1
  76. package/es2015/src/services/dateValueProvider.service.js +10 -5
  77. package/es2015/src/services/dateValueProvider.service.js.map +1 -1
  78. package/es2015/src/services/formatProvider.interface.js.map +1 -1
  79. package/es2020/date-fns/src/misc/tokens.js +12 -1
  80. package/es2020/date-fns/src/misc/tokens.js.map +1 -1
  81. package/es2020/date-fns/src/services/dateFnsDateApi.service.js +99 -5
  82. package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -1
  83. package/es2020/moment/src/misc/tokens.js +12 -1
  84. package/es2020/moment/src/misc/tokens.js.map +1 -1
  85. package/es2020/moment/src/services/momentDateApi.service.js +90 -0
  86. package/es2020/moment/src/services/momentDateApi.service.js.map +1 -1
  87. package/es2020/src/index.js +1 -0
  88. package/es2020/src/index.js.map +1 -1
  89. package/es2020/src/misc/datetime.interface.js.map +1 -1
  90. package/es2020/src/misc/tokens.js +12 -1
  91. package/es2020/src/misc/tokens.js.map +1 -1
  92. package/es2020/src/modules/datePipes.module.js +2 -7
  93. package/es2020/src/modules/datePipes.module.js.map +1 -1
  94. package/es2020/src/picker/components/clockTimePicker/clockTimePicker.component.js +14 -0
  95. package/es2020/src/picker/components/clockTimePicker/clockTimePicker.component.js.map +1 -0
  96. package/es2020/src/picker/components/clockTimePicker/clockTimePicker.interface.js +2 -0
  97. package/es2020/src/picker/components/clockTimePicker/clockTimePicker.interface.js.map +1 -0
  98. package/es2020/src/picker/components/dayPicker/dayPicker.component.js +49 -13
  99. package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -1
  100. package/es2020/src/picker/components/monthPicker/monthPicker.component.js +5 -4
  101. package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -1
  102. package/es2020/src/picker/components/picker/picker.component.js +3 -2
  103. package/es2020/src/picker/components/picker/picker.component.js.map +1 -1
  104. package/es2020/src/picker/components/pickerBase.component.js +15 -120
  105. package/es2020/src/picker/components/pickerBase.component.js.map +1 -1
  106. package/es2020/src/picker/components/pickerImplBase.component.js +145 -0
  107. package/es2020/src/picker/components/pickerImplBase.component.js.map +1 -0
  108. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.component.js +138 -0
  109. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.component.js.map +1 -0
  110. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.data.js +341 -0
  111. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.data.js.map +1 -0
  112. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js +2 -0
  113. package/es2020/src/picker/components/rollerTimePicker/rollerTimePicker.interface.js.map +1 -0
  114. package/es2020/src/picker/components/yearPicker/yearPicker.component.js +5 -4
  115. package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -1
  116. package/es2020/src/picker/directives/index.js +4 -0
  117. package/es2020/src/picker/directives/index.js.map +1 -0
  118. package/es2020/src/picker/directives/loopScroll/loopScroll.directive.js +191 -0
  119. package/es2020/src/picker/directives/loopScroll/loopScroll.directive.js.map +1 -0
  120. package/es2020/src/picker/directives/loopScroll/loopScroll.interface.js +3 -0
  121. package/es2020/src/picker/directives/loopScroll/loopScroll.interface.js.map +1 -0
  122. package/es2020/src/picker/directives/loopScrollData/loopScrollData.directive.js +23 -0
  123. package/es2020/src/picker/directives/loopScrollData/loopScrollData.directive.js.map +1 -0
  124. package/es2020/src/picker/interfaces.js +1 -0
  125. package/es2020/src/picker/interfaces.js.map +1 -1
  126. package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -1
  127. package/es2020/src/picker/modules/picker.module.js +21 -4
  128. package/es2020/src/picker/modules/picker.module.js.map +1 -1
  129. package/es2020/src/picker/types.js +2 -0
  130. package/es2020/src/picker/types.js.map +1 -1
  131. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +16 -2
  132. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -1
  133. package/es2020/src/selector/components/selector/selector.component.js +22 -11
  134. package/es2020/src/selector/components/selector/selector.component.js.map +1 -1
  135. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +6 -2
  136. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -1
  137. package/es2020/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js +133 -0
  138. package/es2020/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.js.map +1 -0
  139. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -1
  140. package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -1
  141. package/es2020/src/selector/misc/tokens.js.map +1 -1
  142. package/es2020/src/selector/modules/selector.module.js +9 -4
  143. package/es2020/src/selector/modules/selector.module.js.map +1 -1
  144. package/es2020/src/selector/types.js +1 -0
  145. package/es2020/src/selector/types.js.map +1 -1
  146. package/es2020/src/services/dateApi.interface.js.map +1 -1
  147. package/es2020/src/services/datePositionParser.service.js +14 -0
  148. package/es2020/src/services/datePositionParser.service.js.map +1 -1
  149. package/es2020/src/services/dateTimeRelativeParser.service.js +15 -1
  150. package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -1
  151. package/es2020/src/services/dateValueProvider.service.js +10 -5
  152. package/es2020/src/services/dateValueProvider.service.js.map +1 -1
  153. package/es2020/src/services/formatProvider.interface.js.map +1 -1
  154. package/moment/src/misc/tokens.d.ts.map +1 -1
  155. package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
  156. package/package.json +4 -3
  157. package/src/dark.scss +31 -28
  158. package/src/index.d.ts +1 -0
  159. package/src/index.d.ts.map +1 -1
  160. package/src/misc/datetime.interface.d.ts +1 -1
  161. package/src/misc/datetime.interface.d.ts.map +1 -1
  162. package/src/misc/tokens.d.ts.map +1 -1
  163. package/src/modules/datePipes.module.d.ts +3 -4
  164. package/src/modules/datePipes.module.d.ts.map +1 -1
  165. package/src/picker/components/clockTimePicker/clockTimePicker.component.css +0 -0
  166. package/src/picker/components/clockTimePicker/clockTimePicker.component.d.ts +9 -0
  167. package/src/picker/components/clockTimePicker/clockTimePicker.component.d.ts.map +1 -0
  168. package/src/picker/components/clockTimePicker/clockTimePicker.component.html +0 -0
  169. package/src/picker/components/clockTimePicker/clockTimePicker.interface.d.ts +6 -0
  170. package/src/picker/components/clockTimePicker/clockTimePicker.interface.d.ts.map +1 -0
  171. package/src/picker/components/dayPicker/dayPicker.component.d.ts +6 -0
  172. package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
  173. package/src/picker/components/dayPicker/dayPicker.component.html +11 -7
  174. package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
  175. package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
  176. package/src/picker/components/picker/picker.component.css +4 -0
  177. package/src/picker/components/picker/picker.component.d.ts +3 -3
  178. package/src/picker/components/picker/picker.component.d.ts.map +1 -1
  179. package/src/picker/components/pickerBase.component.d.ts +7 -97
  180. package/src/picker/components/pickerBase.component.d.ts.map +1 -1
  181. package/src/picker/components/pickerImplBase.component.d.ts +128 -0
  182. package/src/picker/components/pickerImplBase.component.d.ts.map +1 -0
  183. package/src/picker/components/rollerTimePicker/rollerTimePicker.component.css +40 -0
  184. package/src/picker/components/rollerTimePicker/rollerTimePicker.component.d.ts +71 -0
  185. package/src/picker/components/rollerTimePicker/rollerTimePicker.component.d.ts.map +1 -0
  186. package/src/picker/components/rollerTimePicker/rollerTimePicker.component.html +41 -0
  187. package/src/picker/components/rollerTimePicker/rollerTimePicker.data.d.ts +4 -0
  188. package/src/picker/components/rollerTimePicker/rollerTimePicker.data.d.ts.map +1 -0
  189. package/src/picker/components/rollerTimePicker/rollerTimePicker.interface.d.ts +6 -0
  190. package/src/picker/components/rollerTimePicker/rollerTimePicker.interface.d.ts.map +1 -0
  191. package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
  192. package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
  193. package/src/picker/directives/index.d.ts +4 -0
  194. package/src/picker/directives/index.d.ts.map +1 -0
  195. package/src/picker/directives/loopScroll/loopScroll.directive.d.ts +73 -0
  196. package/src/picker/directives/loopScroll/loopScroll.directive.d.ts.map +1 -0
  197. package/src/picker/directives/loopScroll/loopScroll.interface.d.ts +14 -0
  198. package/src/picker/directives/loopScroll/loopScroll.interface.d.ts.map +1 -0
  199. package/src/picker/directives/loopScrollData/loopScrollData.directive.d.ts +16 -0
  200. package/src/picker/directives/loopScrollData/loopScrollData.directive.d.ts.map +1 -0
  201. package/src/picker/interfaces.d.ts +1 -0
  202. package/src/picker/interfaces.d.ts.map +1 -1
  203. package/src/picker/misc/datetimePicker.interface.d.ts +14 -10
  204. package/src/picker/misc/datetimePicker.interface.d.ts.map +1 -1
  205. package/src/picker/modules/picker.module.d.ts +10 -7
  206. package/src/picker/modules/picker.module.d.ts.map +1 -1
  207. package/src/picker/types.d.ts +2 -0
  208. package/src/picker/types.d.ts.map +1 -1
  209. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +2 -2
  210. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
  211. package/src/selector/components/inputDateTime/inputDateTime.component.html +1 -1
  212. package/src/selector/components/selector/selector.component.d.ts +7 -6
  213. package/src/selector/components/selector/selector.component.d.ts.map +1 -1
  214. package/src/selector/components/selector/selector.component.html +6 -5
  215. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +1 -1
  216. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
  217. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.html +1 -1
  218. package/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.d.ts +80 -0
  219. package/src/selector/directives/dateTimePickerRenderer/dateTimePickerRenderer.directive.d.ts.map +1 -0
  220. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
  221. package/src/selector/misc/datetimeSelector.interface.d.ts +16 -3
  222. package/src/selector/misc/datetimeSelector.interface.d.ts.map +1 -1
  223. package/src/selector/misc/tokens.d.ts +1 -1
  224. package/src/selector/misc/tokens.d.ts.map +1 -1
  225. package/src/selector/modules/selector.module.d.ts +5 -4
  226. package/src/selector/modules/selector.module.d.ts.map +1 -1
  227. package/src/selector/types.d.ts +1 -0
  228. package/src/selector/types.d.ts.map +1 -1
  229. package/src/services/dateApi.interface.d.ts +72 -0
  230. package/src/services/dateApi.interface.d.ts.map +1 -1
  231. package/src/services/datePositionParser.service.d.ts +3 -3
  232. package/src/services/datePositionParser.service.d.ts.map +1 -1
  233. package/src/services/dateTimeRelativeParser.service.d.ts +8 -0
  234. package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
  235. package/src/services/dateValueProvider.service.d.ts.map +1 -1
  236. package/src/services/formatProvider.interface.d.ts +48 -4
  237. package/src/services/formatProvider.interface.d.ts.map +1 -1
  238. package/version.bak +1 -1
  239. package/es2015/src/pipes/asRequiredType.js +0 -22
  240. package/es2015/src/pipes/asRequiredType.js.map +0 -1
  241. package/es2020/src/pipes/asRequiredType.js +0 -22
  242. package/es2020/src/pipes/asRequiredType.js.map +0 -1
  243. package/src/pipes/asRequiredType.d.ts +0 -21
  244. package/src/pipes/asRequiredType.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pickerBase.component.js","sourceRoot":"","sources":["../../../../src/picker/components/pickerBase.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectorRef, Directive, HostListener, Inject} from '@angular/core';\nimport {extend} from '@jscrpt/common';\nimport {Observable, Subject} from 'rxjs';\n\nimport {DateTimeValue} from '../../misc/datetime.interface';\nimport {DATE_API} from '../../misc/tokens';\nimport {DateApi, DateApiObject} from '../../services/dateApi.interface';\nimport {DateTimePicker, PeriodData} from '../misc/datetimePicker.interface';\n\n/**\n * Base class used as base for picker\n */\n@Directive()\nexport abstract class PickerBaseComponent<TDate = any, TDateData extends PeriodData<TDate> = any, TCssClasses = object> implements DateTimePicker<TDate, TCssClasses>\n{\n //######################### protected fields #########################\n\n /**\n * Current value of datetime\n */\n protected _value: DateTimeValue<TDate>|null = null;\n\n /**\n * Occurs when value changes\n */\n protected _valueChange: Subject<void> = new Subject<void>();\n \n /**\n * Occurs when user scales up\n */\n protected _scaleUp: Subject<TDate> = new Subject<TDate>();\n\n /**\n * Occurs when user scales down\n */\n protected _scaleDown: Subject<TDate> = new Subject<TDate>();\n\n /**\n * Minimal possible value that can be picked\n */\n protected _minValue: TDate|null = null;\n\n /**\n * Maximal possible value that can be picked\n */\n protected _maxValue: TDate|null = null;\n\n //######################### public properties - implementation of DateTimePicker #########################\n\n /**\n * Gets current value of datetime\n */\n public get value(): DateTimeValue<TDate>|null\n {\n return this._value;\n }\n\n /**\n * Occurs when value changes\n */\n public get valueChange(): Observable<void>\n {\n return this._valueChange.asObservable();\n }\n\n /**\n * Occurs when user scales up\n */\n public get scaleUp(): Observable<TDate>\n {\n return this._scaleUp.asObservable();\n }\n\n /**\n * Occurs when user scales down\n */\n public get scaleDown(): Observable<TDate>\n {\n return this._scaleDown.asObservable();\n }\n\n //######################### public properties - template bindings #########################\n\n /**\n * Date api instance for displayed date\n * @internal\n */\n public displayDate: DateApiObject<TDate>|null = null;\n\n /**\n * Indication whether can go up in period\n * @internal\n */\n public canGoUp: boolean = false;\n\n /**\n * Indication whether can go down in period\n * @internal\n */\n public canGoDown: boolean = false;\n\n /**\n * Array of period data to be displayed\n * @internal\n */\n public periodData: TDateData[] = [];\n\n /**\n * Css classes that are used within picker\n * @internal\n */\n public cssClasses!: TCssClasses;\n\n //######################### constructor #########################\n constructor(@Inject(DATE_API) protected _dateApi: DateApi<TDate>,\n protected _changeDetector: ChangeDetectorRef)\n {\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Changes displayed period to \"higher\" period\n * @param event - Event that occured\n * @internal\n */\n public goUp(event: Event)\n {\n event.preventDefault();\n\n if(!this.canGoUp)\n {\n return;\n }\n\n this._scaleUp.next(this.displayDate!.value);\n }\n\n /**\n * Selects period\n * @param event - Event that occured\n * @param period - Selected period\n * @internal\n */\n public select(event: Event, period: PeriodData<TDate>)\n {\n event.preventDefault();\n\n if(period.disabled)\n {\n return;\n }\n\n //handle selection of value\n if(!this.canGoDown)\n {\n this._setPeriod(period);\n\n this._value =\n {\n from: period.date,\n to: this._endOfPeriod(period)\n };\n\n this._valueChange.next();\n\n return;\n }\n\n this._scaleDown.next(period.date);\n }\n\n //######################### public methods - implementation of DateTimePicker #########################\n\n /**\n * Sets css classes for picker, allowing to override defaults\n * @param cssClasses - Css classes to be set for picker\n */\n public setCssClasses(cssClasses: TCssClasses): void\n {\n this.cssClasses = extend(true, {}, this.cssClasses, cssClasses);\n }\n\n /**\n * Sets minimal possible value for picker, that can be picked\n * @param value - Minimal possible value that can be picked\n */\n public setMinValue(value: TDate|null): void\n {\n this._minValue = value;\n this._updateMinMax();\n }\n\n /**\n * Sets maximal possible value for picker, that can be picked\n * @param value - Maximal possible value that can be picked\n */\n public setMaxValue(value: TDate|null): void\n {\n this._maxValue = value;\n this._updateMinMax();\n }\n\n /**\n * Sets value of datetime picker\n * @param value - Value to be set to this picker\n */\n public setValue(value: DateTimeValue<TDate>|null): void\n {\n this._value = value;\n\n //value is present\n if(this._value && this.displayDate)\n {\n const val = this._dateApi.getValue(this._value.from);\n\n //change picker to value\n if(!this._isSamePeriodAsDisplayed(val))\n {\n this.display(val);\n\n return;\n }\n\n const period = this._getPeriodData(val);\n\n //was initialized\n if(period)\n {\n this._setPeriod(period);\n }\n }\n }\n\n /**\n * Set displays date to be displayed\n * @param value - Value that identifies period that is going to be displayed\n */\n public abstract display(value: DateApiObject<TDate>): void;\n\n /**\n * Sets indication whether can go down\n * @param value - Indication whether can go down in period\n */\n public setCanGoDown(value: boolean): void\n {\n this.canGoDown = value;\n }\n\n /**\n * Sets indication whether can go up\n * @param value - Indication whether can go up in period\n */\n public setCanGoUp(value: boolean): void\n {\n this.canGoUp = value;\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - host #########################\n\n /**\n * Handles click anyway in picker, that blocks blur\n * @param event - Event that occured\n * @internal\n */\n @HostListener('mousedown', ['$event'])\n public handleClick(event: Event)\n {\n event.preventDefault();\n }\n\n //######################### protected methods #########################\n\n /**\n * Sets period as active\n * @param period - Period to be set as active\n */\n protected _setPeriod(period: PeriodData<TDate>)\n {\n this.periodData.forEach(itm => itm.active = false);\n\n period.active = true;\n }\n\n /**\n * Updates minimal and maximal value for picker\n */\n protected _updateMinMax()\n {\n if(!this.periodData.length)\n {\n return;\n }\n\n //no min, no max\n if(!this._minValue && !this._maxValue)\n {\n this.periodData.forEach(itm => itm.disabled = false);\n\n return;\n }\n\n const minDateApi = this._minValue ? this._dateApi.getValue(this._minValue) : null;\n const maxDateApi = this._maxValue ? this._dateApi.getValue(this._maxValue) : null;\n let restAfter = false;\n\n this.periodData.forEach(period =>\n {\n if(!!minDateApi && minDateApi.isAfter(period.date) && !this._isSamePeriod(minDateApi, period.date))\n {\n period.disabled = true;\n }\n\n if(restAfter || (!!maxDateApi && maxDateApi.isBefore(period.date) && !this._isSamePeriod(maxDateApi, period.date)))\n {\n restAfter = true;\n period.disabled = true;\n }\n });\n }\n\n /**\n * Obtains end of period\n * @param period - Period for which should be end obtained\n */\n protected abstract _endOfPeriod(period: PeriodData<TDate>): TDate;\n\n /**\n * Tests whether provided value is in same period as displayed picker\n * @param val - Tested value for same period as displayed picker\n */\n protected abstract _isSamePeriodAsDisplayed(val: DateApiObject<TDate>): boolean;\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 abstract _isSamePeriod(val: DateApiObject<TDate>, target: TDate): boolean;\n\n /**\n * Gets period data for specified value\n * @param val - Value for which is period data obtained\n */\n protected abstract _getPeriodData(val: DateApiObject<TDate>): PeriodData<TDate>;\n}"]}
1
+ {"version":3,"file":"pickerBase.component.js","sourceRoot":"","sources":["../../../../src/picker/components/pickerBase.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectorRef, Directive, Inject} from '@angular/core';\n\nimport {DateTimeValue} from '../../misc/datetime.interface';\nimport {DATE_API} from '../../misc/tokens';\nimport {DateApi, DateApiObject} from '../../services/dateApi.interface';\nimport {DateTimePicker, PeriodData} from '../misc/datetimePicker.interface';\nimport {PickerImplBaseComponent} from './pickerImplBase.component';\n\n/**\n * Base class used as base for picker\n */\n@Directive()\nexport abstract class PickerBaseComponent<TDate = any, TDateData extends PeriodData<TDate> = any, TCssClasses = object> extends PickerImplBaseComponent<TDate, TCssClasses> implements DateTimePicker<TDate, TCssClasses>\n{\n //######################### protected fields #########################\n\n /**\n * Value of originaly set hour\n */\n protected _originalHour: number = 0;\n\n /**\n * Value of originaly set minute\n */\n protected _originalMinute: number = 0;\n\n //######################### public properties - template bindings #########################\n\n /**\n * Array of period data to be displayed\n * @internal\n */\n public periodData: TDateData[] = [];\n\n //######################### constructor #########################\n constructor(@Inject(DATE_API) dateApi: DateApi<TDate>,\n changeDetector: ChangeDetectorRef)\n {\n super(dateApi, changeDetector);\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Selects period\n * @param event - Event that occured\n * @param period - Selected period\n * @internal\n */\n public select(event: Event, period: PeriodData<TDate>): void\n {\n event.preventDefault();\n\n if(period.disabled)\n {\n return;\n }\n\n //handle selection of value\n if(!this.canGoDown)\n {\n this._setPeriod(period);\n\n this._value =\n {\n from: period.date,\n to: this._endOfPeriod(period)\n };\n\n this._valueChange.next();\n\n return;\n }\n\n this._scaleDown.next(period.date);\n }\n\n //######################### public methods - implementation of DateTimePicker #########################\n\n /**\n * Sets minimal possible value for picker, that can be picked\n * @param value - Minimal possible value that can be picked\n */\n public setMinValue(value: TDate|null): void\n {\n this._minValue = value;\n this._updateMinMax();\n }\n\n /**\n * Sets maximal possible value for picker, that can be picked\n * @param value - Maximal possible value that can be picked\n */\n public setMaxValue(value: TDate|null): void\n {\n this._maxValue = value;\n this._updateMinMax();\n }\n\n /**\n * Sets value of datetime picker\n * @param value - Value to be set to this picker\n */\n public setValue(value: DateTimeValue<TDate>|null): void\n {\n this._value = value;\n\n if(this._value)\n {\n this._originalHour = this._dateApi.getValue(this._value.from).hour();\n this._originalMinute = this._dateApi.getValue(this._value.from).minute();\n }\n\n //value is present\n if(this._value && this.displayDate)\n {\n const val = this._dateApi.getValue(this._value.from);\n\n //change picker to value\n if(!this._isSamePeriodAsDisplayed(val))\n {\n this.display(val);\n\n return;\n }\n\n const period = this._getPeriodData(val);\n\n //was initialized\n if(period)\n {\n this._setPeriod(period);\n }\n }\n }\n\n //######################### protected methods #########################\n\n /**\n * Sets period as active\n * @param period - Period to be set as active\n */\n protected _setPeriod(period: PeriodData<TDate>): void\n {\n this.periodData.forEach(itm => itm.active = false);\n\n period.active = true;\n }\n\n /**\n * Updates minimal and maximal value for picker\n */\n protected _updateMinMax(): void\n {\n if(!this.periodData.length)\n {\n return;\n }\n\n //no min, no max\n if(!this._minValue && !this._maxValue)\n {\n this.periodData.forEach(itm => itm.disabled = false);\n\n return;\n }\n\n const minDateApi = this._minValue ? this._dateApi.getValue(this._minValue) : null;\n const maxDateApi = this._maxValue ? this._dateApi.getValue(this._maxValue) : null;\n let restAfter = false;\n\n this.periodData.forEach(period =>\n {\n if(!!minDateApi && minDateApi.isAfter(period.date) && !this._isSamePeriod(minDateApi, period.date))\n {\n period.disabled = true;\n }\n\n if(restAfter || (!!maxDateApi && maxDateApi.isBefore(period.date) && !this._isSamePeriod(maxDateApi, period.date)))\n {\n restAfter = true;\n period.disabled = true;\n }\n });\n }\n\n /**\n * Obtains end of period\n * @param period - Period for which should be end obtained\n */\n protected abstract _endOfPeriod(period: PeriodData<TDate>): TDate;\n\n /**\n * Tests whether provided value is in same period as displayed picker\n * @param val - Tested value for same period as displayed picker\n */\n protected abstract _isSamePeriodAsDisplayed(val: DateApiObject<TDate>): boolean;\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 abstract _isSamePeriod(val: DateApiObject<TDate>, target: TDate): boolean;\n\n /**\n * Gets period data for specified value\n * @param val - Value for which is period data obtained\n */\n protected abstract _getPeriodData(val: DateApiObject<TDate>): PeriodData<TDate>;\n}"]}
@@ -0,0 +1,145 @@
1
+ import { ChangeDetectorRef, Directive, HostListener, Inject } from '@angular/core';
2
+ import { extend } from '@jscrpt/common';
3
+ import { Subject } from 'rxjs';
4
+ import { DATE_API } from '../../misc/tokens';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Base class used as base for picker as base implementation of DateTimePicker interface
8
+ */
9
+ export class PickerImplBaseComponent {
10
+ //######################### constructor #########################
11
+ constructor(_dateApi, _changeDetector) {
12
+ this._dateApi = _dateApi;
13
+ this._changeDetector = _changeDetector;
14
+ //######################### protected fields #########################
15
+ /**
16
+ * Current value of datetime
17
+ */
18
+ this._value = null;
19
+ /**
20
+ * Occurs when value changes
21
+ */
22
+ this._valueChange = new Subject();
23
+ /**
24
+ * Occurs when user scales up
25
+ */
26
+ this._scaleUp = new Subject();
27
+ /**
28
+ * Occurs when user scales down
29
+ */
30
+ this._scaleDown = new Subject();
31
+ /**
32
+ * Minimal possible value that can be picked
33
+ */
34
+ this._minValue = null;
35
+ /**
36
+ * Maximal possible value that can be picked
37
+ */
38
+ this._maxValue = null;
39
+ //######################### public properties - template bindings #########################
40
+ /**
41
+ * Date api instance for displayed date
42
+ * @internal
43
+ */
44
+ this.displayDate = null;
45
+ /**
46
+ * Indication whether can go up in period
47
+ * @internal
48
+ */
49
+ this.canGoUp = false;
50
+ /**
51
+ * Indication whether can go down in period
52
+ * @internal
53
+ */
54
+ this.canGoDown = false;
55
+ }
56
+ //######################### public properties - implementation of DateTimePicker #########################
57
+ /**
58
+ * Gets current value of datetime
59
+ */
60
+ get value() {
61
+ return this._value;
62
+ }
63
+ /**
64
+ * Occurs when value changes
65
+ */
66
+ get valueChange() {
67
+ return this._valueChange.asObservable();
68
+ }
69
+ /**
70
+ * Occurs when user scales up
71
+ */
72
+ get scaleUp() {
73
+ return this._scaleUp.asObservable();
74
+ }
75
+ /**
76
+ * Occurs when user scales down
77
+ */
78
+ get scaleDown() {
79
+ return this._scaleDown.asObservable();
80
+ }
81
+ //######################### public methods - template bindings #########################
82
+ /**
83
+ * Changes displayed period to "higher" period
84
+ * @param event - Event that occured
85
+ * @internal
86
+ */
87
+ goUp(event) {
88
+ event.preventDefault();
89
+ if (!this.canGoUp) {
90
+ return;
91
+ }
92
+ if (this.displayDate) {
93
+ this._scaleUp.next(this.displayDate.value);
94
+ }
95
+ }
96
+ //######################### public methods - implementation of DateTimePicker #########################
97
+ /**
98
+ * Sets css classes for picker, allowing to override defaults
99
+ * @param cssClasses - Css classes to be set for picker
100
+ */
101
+ setCssClasses(cssClasses) {
102
+ this.cssClasses = extend(true, {}, this.cssClasses, cssClasses);
103
+ }
104
+ /**
105
+ * Sets indication whether can go down
106
+ * @param value - Indication whether can go down in period
107
+ */
108
+ setCanGoDown(value) {
109
+ this.canGoDown = value;
110
+ }
111
+ /**
112
+ * Sets indication whether can go up
113
+ * @param value - Indication whether can go up in period
114
+ */
115
+ setCanGoUp(value) {
116
+ this.canGoUp = value;
117
+ }
118
+ /**
119
+ * Explicitly runs invalidation of content (change detection)
120
+ */
121
+ invalidateVisuals() {
122
+ this._changeDetector.detectChanges();
123
+ }
124
+ //######################### public methods - host #########################
125
+ /**
126
+ * Handles click anyway in picker, that blocks blur
127
+ * @param event - Event that occured
128
+ * @internal
129
+ */
130
+ handleClick(event) {
131
+ event.preventDefault();
132
+ }
133
+ }
134
+ PickerImplBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PickerImplBaseComponent, deps: [{ token: DATE_API }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
135
+ PickerImplBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: PickerImplBaseComponent, host: { listeners: { "mousedown": "handleClick($event)" } }, ngImport: i0 });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PickerImplBaseComponent, decorators: [{
137
+ type: Directive
138
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
139
+ type: Inject,
140
+ args: [DATE_API]
141
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { handleClick: [{
142
+ type: HostListener,
143
+ args: ['mousedown', ['$event']]
144
+ }] } });
145
+ //# sourceMappingURL=pickerImplBase.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickerImplBase.component.js","sourceRoot":"","sources":["../../../../src/picker/components/pickerImplBase.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAa,OAAO,EAAC,MAAM,MAAM,CAAC;AAGzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;;AAI3C;;GAEG;AAEH,MAAM,OAAgB,uBAAuB;IA8FzC,iEAAiE;IACjE,YAAwC,QAAwB,EAC1C,eAAkC;QADhB,aAAQ,GAAR,QAAQ,CAAgB;QAC1C,oBAAe,GAAf,eAAe,CAAmB;QA9FxD,sEAAsE;QAEtE;;WAEG;QACO,WAAM,GAA8B,IAAI,CAAC;QAEnD;;WAEG;QACO,iBAAY,GAAkB,IAAI,OAAO,EAAQ,CAAC;QAE5D;;WAEG;QACO,aAAQ,GAAmB,IAAI,OAAO,EAAS,CAAC;QAE1D;;WAEG;QACO,eAAU,GAAmB,IAAI,OAAO,EAAS,CAAC;QAE5D;;WAEG;QACO,cAAS,GAAe,IAAI,CAAC;QAEvC;;WAEG;QACO,cAAS,GAAe,IAAI,CAAC;QAoCvC,2FAA2F;QAE3F;;;WAGG;QACI,gBAAW,GAA8B,IAAI,CAAC;QAErD;;;WAGG;QACI,YAAO,GAAY,KAAK,CAAC;QAEhC;;;WAGG;QACI,cAAS,GAAY,KAAK,CAAC;IAYlC,CAAC;IAhED,0GAA0G;IAE1G;;OAEG;IACH,IAAW,KAAK;QAEZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAElB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAEhB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAkCD,wFAAwF;IAExF;;;;OAIG;IACI,IAAI,CAAC,KAAY;QAEpB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAG,CAAC,IAAI,CAAC,OAAO,EAChB;YACI,OAAO;SACV;QAED,IAAG,IAAI,CAAC,WAAW,EACnB;YACI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,uGAAuG;IAEvG;;;OAGG;IACI,aAAa,CAAC,UAAuB;QAExC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IA0BD;;;OAGG;IACI,YAAY,CAAC,KAAc;QAE9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,KAAc;QAE5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,iBAAiB;QAEpB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IAE3E;;;;OAIG;IAEI,WAAW,CAAC,KAAY;QAE3B,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;;oHAlMiB,uBAAuB,kBA+FrB,QAAQ;wGA/FV,uBAAuB;2FAAvB,uBAAuB;kBAD5C,SAAS;;0BAgGO,MAAM;2BAAC,QAAQ;4EAgGrB,WAAW;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import {ChangeDetectorRef, Directive, HostListener, Inject} from '@angular/core';\nimport {extend} from '@jscrpt/common';\nimport {Observable, Subject} from 'rxjs';\n\nimport {DateTimeValue} from '../../misc/datetime.interface';\nimport {DATE_API} from '../../misc/tokens';\nimport {DateApi, DateApiObject} from '../../services/dateApi.interface';\nimport {DateTimePicker} from '../misc/datetimePicker.interface';\n\n/**\n * Base class used as base for picker as base implementation of DateTimePicker interface\n */\n@Directive()\nexport abstract class PickerImplBaseComponent<TDate = any, TCssClasses = any> implements DateTimePicker<TDate, TCssClasses>\n{\n //######################### protected fields #########################\n\n /**\n * Current value of datetime\n */\n protected _value: DateTimeValue<TDate>|null = null;\n\n /**\n * Occurs when value changes\n */\n protected _valueChange: Subject<void> = new Subject<void>();\n \n /**\n * Occurs when user scales up\n */\n protected _scaleUp: Subject<TDate> = new Subject<TDate>();\n\n /**\n * Occurs when user scales down\n */\n protected _scaleDown: Subject<TDate> = new Subject<TDate>();\n\n /**\n * Minimal possible value that can be picked\n */\n protected _minValue: TDate|null = null;\n\n /**\n * Maximal possible value that can be picked\n */\n protected _maxValue: TDate|null = null;\n\n //######################### public properties - implementation of DateTimePicker #########################\n\n /**\n * Gets current value of datetime\n */\n public get value(): DateTimeValue<TDate>|null\n {\n return this._value;\n }\n\n /**\n * Occurs when value changes\n */\n public get valueChange(): Observable<void>\n {\n return this._valueChange.asObservable();\n }\n\n /**\n * Occurs when user scales up\n */\n public get scaleUp(): Observable<TDate>\n {\n return this._scaleUp.asObservable();\n }\n\n /**\n * Occurs when user scales down\n */\n public get scaleDown(): Observable<TDate>\n {\n return this._scaleDown.asObservable();\n }\n\n //######################### public properties - template bindings #########################\n\n /**\n * Date api instance for displayed date\n * @internal\n */\n public displayDate: DateApiObject<TDate>|null = null;\n\n /**\n * Indication whether can go up in period\n * @internal\n */\n public canGoUp: boolean = false;\n\n /**\n * Indication whether can go down in period\n * @internal\n */\n public canGoDown: boolean = false;\n\n /**\n * Css classes that are used within picker\n * @internal\n */\n public cssClasses!: TCssClasses;\n\n //######################### constructor #########################\n constructor(@Inject(DATE_API) protected _dateApi: DateApi<TDate>,\n protected _changeDetector: ChangeDetectorRef)\n {\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Changes displayed period to \"higher\" period\n * @param event - Event that occured\n * @internal\n */\n public goUp(event: Event): void\n {\n event.preventDefault();\n\n if(!this.canGoUp)\n {\n return;\n }\n\n if(this.displayDate)\n {\n this._scaleUp.next(this.displayDate.value);\n }\n }\n\n //######################### public methods - implementation of DateTimePicker #########################\n\n /**\n * Sets css classes for picker, allowing to override defaults\n * @param cssClasses - Css classes to be set for picker\n */\n public setCssClasses(cssClasses: TCssClasses): void\n {\n this.cssClasses = extend(true, {}, this.cssClasses, cssClasses);\n }\n\n /**\n * Sets minimal possible value for picker, that can be picked\n * @param value - Minimal possible value that can be picked\n */\n public abstract setMinValue(value: TDate|null): void;\n\n /**\n * Sets maximal possible value for picker, that can be picked\n * @param value - Maximal possible value that can be picked\n */\n public abstract setMaxValue(value: TDate|null): void;\n\n /**\n * Sets value of datetime picker\n * @param value - Value to be set to this picker\n */\n public abstract setValue(value: DateTimeValue<TDate>|null): void;\n\n /**\n * Set displays date to be displayed\n * @param value - Value that identifies period that is going to be displayed\n */\n public abstract display(value: DateApiObject<TDate>): void;\n\n /**\n * Sets indication whether can go down\n * @param value - Indication whether can go down in period\n */\n public setCanGoDown(value: boolean): void\n {\n this.canGoDown = value;\n }\n\n /**\n * Sets indication whether can go up\n * @param value - Indication whether can go up in period\n */\n public setCanGoUp(value: boolean): void\n {\n this.canGoUp = value;\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - host #########################\n\n /**\n * Handles click anyway in picker, that blocks blur\n * @param event - Event that occured\n * @internal\n */\n @HostListener('mousedown', ['$event'])\n public handleClick(event: Event): void\n {\n event.preventDefault();\n }\n}"]}
@@ -0,0 +1,138 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { PickerImplBaseComponent } from '../pickerImplBase.component';
3
+ import { hours, minutes } from './rollerTimePicker.data';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@anglr/common";
6
+ import * as i2 from "../../directives/loopScroll/loopScroll.directive";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "../../directives/loopScrollData/loopScrollData.directive";
9
+ import * as i5 from "../../../pipes/dateFormat.pipe";
10
+ /**
11
+ * Component used for rendering roller time picker
12
+ */
13
+ export class DateTimeRollerTimePickerComponent extends PickerImplBaseComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ //######################### public properties - template bindings #########################
17
+ /**
18
+ * Array of available hours
19
+ */
20
+ this.hours = hours;
21
+ /**
22
+ * Array of available minutes
23
+ */
24
+ this.minutes = minutes;
25
+ /**
26
+ * Indication whether are minutes open
27
+ */
28
+ this.minutesOpen = false;
29
+ /**
30
+ * Indication whether are hours open
31
+ */
32
+ this.hoursOpen = false;
33
+ }
34
+ /**
35
+ * Current value of hour
36
+ */
37
+ get hour() {
38
+ return this.displayDate?.hour() ?? 0;
39
+ }
40
+ set hour(value) {
41
+ this.displayDate?.hour(value);
42
+ }
43
+ /**
44
+ * Current value of minute
45
+ */
46
+ get minute() {
47
+ return this.displayDate?.minute() ?? 0;
48
+ }
49
+ set minute(value) {
50
+ this.displayDate?.minute(value);
51
+ }
52
+ //######################### public methods - implementation of PickerBaseComponent #########################
53
+ /**
54
+ * @inheritdoc
55
+ */
56
+ display(value) {
57
+ this.displayDate = value;
58
+ }
59
+ /**
60
+ * @inheritdoc
61
+ */
62
+ setMinValue(_value) {
63
+ }
64
+ /**
65
+ * @inheritdoc
66
+ */
67
+ setMaxValue(_value) {
68
+ }
69
+ /**
70
+ * @inheritdoc
71
+ */
72
+ setValue(_value) {
73
+ }
74
+ //######################### public methods - template bindings #########################
75
+ /**
76
+ * Sets hour
77
+ * @param event - Mouse event that was triggered
78
+ * @param value - Value to be set as hour
79
+ * @returns
80
+ */
81
+ setHour(event, value) {
82
+ if (!this.hoursOpen && event) {
83
+ return;
84
+ }
85
+ event?.stopPropagation();
86
+ event?.preventDefault();
87
+ if (this.hour == value) {
88
+ return;
89
+ }
90
+ this.hour = value;
91
+ if (event) {
92
+ this.hoursOpen = false;
93
+ }
94
+ if (this.displayDate) {
95
+ this._value =
96
+ {
97
+ from: this.displayDate?.value,
98
+ to: this.displayDate?.value
99
+ };
100
+ this._valueChange.next();
101
+ }
102
+ }
103
+ /**
104
+ * Sets minute
105
+ * @param event - Mouse event that was triggered
106
+ * @param value - Value to be set as minute
107
+ * @returns
108
+ */
109
+ setMinute(event, value) {
110
+ if (!this.minutesOpen && event) {
111
+ return;
112
+ }
113
+ event?.stopPropagation();
114
+ event?.preventDefault();
115
+ if (this.minute == value) {
116
+ return;
117
+ }
118
+ this.minute = value;
119
+ if (event) {
120
+ this.minutesOpen = false;
121
+ }
122
+ if (this.displayDate) {
123
+ this._value =
124
+ {
125
+ from: this.displayDate?.value,
126
+ to: this.displayDate?.value
127
+ };
128
+ this._valueChange.next();
129
+ }
130
+ }
131
+ }
132
+ DateTimeRollerTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeRollerTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
133
+ DateTimeRollerTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: DateTimeRollerTimePickerComponent, selector: "date-time-roller-time-picker", usesInheritance: true, ngImport: i0, template: "<div class=\"flex-row\" style=\"justify-content: center;\">\n <div [class.clickable]=\"canGoUp\" (mousedown)=\"goUp($event)\">{{displayDate?.value | dateFormat: 'date'}}</div>\n</div>\n\n<div class=\"time-area\">\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"hoursOpen = false\"\n [clickOutsideElement]=\"hoursScroll\">\n <div #hoursScroll\n class=\"roller-scroll\"\n [class.open]=\"hoursOpen\"\n [loopScroll]=\"hour\"\n [open]=\"hoursOpen\"\n (loopScrollChange)=\"setHour(null, $event)\"\n (click)=\"hoursOpen = !hoursOpen\" >\n <div *ngFor=\"let hour of hours\"\n [loopScrollData]=\"hour?.data\"\n (click)=\"setHour($event, hour?.data)\">{{hour?.displayText}}</div>\n </div>\n </div>\n\n <div class=\"minute-second-separator\">:</div>\n\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"minutesOpen = false\"\n [clickOutsideElement]=\"minutesScroll\">\n <div #minutesScroll\n class=\"roller-scroll\"\n [class.open]=\"minutesOpen\"\n [loopScroll]=\"minute\"\n [open]=\"minutesOpen\"\n (loopScrollChange)=\"setMinute(null, $event)\"\n (click)=\"minutesOpen = !minutesOpen\">\n <div *ngFor=\"let minute of minutes\"\n [loopScrollData]=\"minute?.data\"\n (click)=\"setMinute($event, minute?.data)\">{{minute?.displayText}}</div>\n </div>\n </div>\n</div>\n", styles: [".time-area\n{\n display: flex;\n flex-direction: row;\n padding: 48px 64px;\n font-size: 32px;\n}\n\n.value-container\n{\n position: relative;\n height: 1em;\n width: 2ch;\n}\n\n.roller-scroll\n{\n position: absolute;\n line-height: 1em;\n max-height: 1em;\n overflow: scroll;\n scrollbar-width: none;\n top: 0;\n background-color: #666666;\n transition: all 250ms;\n border-radius: 4px;\n}\n\n.roller-scroll.open\n{\n max-height: 5em;\n top: -2em;\n}\n\n.minute-second-separator\n{\n margin-left: 12px;\n margin-right: 12px;\n line-height: 1em;\n}\n"], directives: [{ type: i1.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutside", "clickOutsideElement"], outputs: ["clickOutsideChange"] }, { type: i2.LoopScrollDirective, selector: "[loopScroll]", inputs: ["loopScroll", "open"], outputs: ["loopScrollChange"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.LoopScrollDataDirective, selector: "[loopScrollData]", inputs: ["loopScrollData"] }], pipes: { "dateFormat": i5.DateFormatPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeRollerTimePickerComponent, decorators: [{
135
+ type: Component,
136
+ args: [{ selector: 'date-time-roller-time-picker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex-row\" style=\"justify-content: center;\">\n <div [class.clickable]=\"canGoUp\" (mousedown)=\"goUp($event)\">{{displayDate?.value | dateFormat: 'date'}}</div>\n</div>\n\n<div class=\"time-area\">\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"hoursOpen = false\"\n [clickOutsideElement]=\"hoursScroll\">\n <div #hoursScroll\n class=\"roller-scroll\"\n [class.open]=\"hoursOpen\"\n [loopScroll]=\"hour\"\n [open]=\"hoursOpen\"\n (loopScrollChange)=\"setHour(null, $event)\"\n (click)=\"hoursOpen = !hoursOpen\" >\n <div *ngFor=\"let hour of hours\"\n [loopScrollData]=\"hour?.data\"\n (click)=\"setHour($event, hour?.data)\">{{hour?.displayText}}</div>\n </div>\n </div>\n\n <div class=\"minute-second-separator\">:</div>\n\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"minutesOpen = false\"\n [clickOutsideElement]=\"minutesScroll\">\n <div #minutesScroll\n class=\"roller-scroll\"\n [class.open]=\"minutesOpen\"\n [loopScroll]=\"minute\"\n [open]=\"minutesOpen\"\n (loopScrollChange)=\"setMinute(null, $event)\"\n (click)=\"minutesOpen = !minutesOpen\">\n <div *ngFor=\"let minute of minutes\"\n [loopScrollData]=\"minute?.data\"\n (click)=\"setMinute($event, minute?.data)\">{{minute?.displayText}}</div>\n </div>\n </div>\n</div>\n", styles: [".time-area\n{\n display: flex;\n flex-direction: row;\n padding: 48px 64px;\n font-size: 32px;\n}\n\n.value-container\n{\n position: relative;\n height: 1em;\n width: 2ch;\n}\n\n.roller-scroll\n{\n position: absolute;\n line-height: 1em;\n max-height: 1em;\n overflow: scroll;\n scrollbar-width: none;\n top: 0;\n background-color: #666666;\n transition: all 250ms;\n border-radius: 4px;\n}\n\n.roller-scroll.open\n{\n max-height: 5em;\n top: -2em;\n}\n\n.minute-second-separator\n{\n margin-left: 12px;\n margin-right: 12px;\n line-height: 1em;\n}\n"] }]
137
+ }] });
138
+ //# sourceMappingURL=rollerTimePicker.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollerTimePicker.component.js","sourceRoot":"","sources":["../../../../../src/picker/components/rollerTimePicker/rollerTimePicker.component.ts","../../../../../src/picker/components/rollerTimePicker/rollerTimePicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy} from '@angular/core';\n\nimport {DateTimeValue} from '../../../misc/datetime.interface';\nimport {DateApiObject} from '../../../services';\nimport {LoopScrollData} from '../../directives';\nimport {DateTimePicker} from '../../interfaces';\nimport {PickerImplBaseComponent} from '../pickerImplBase.component';\nimport {hours, minutes} from './rollerTimePicker.data';\nimport {RollerTimePickerCssClasses} from './rollerTimePicker.interface';\n\n/**\n * Component used for rendering roller time picker\n */\n@Component(\n{\n selector: 'date-time-roller-time-picker',\n templateUrl: 'rollerTimePicker.component.html',\n styleUrls: ['rollerTimePicker.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateTimeRollerTimePickerComponent<TDate = any> extends PickerImplBaseComponent<TDate, RollerTimePickerCssClasses> implements DateTimePicker<TDate, RollerTimePickerCssClasses>\n{\n //######################### public properties - template bindings #########################\n\n /**\n * Array of available hours\n */\n public hours: LoopScrollData[] = hours;\n\n /**\n * Array of available minutes\n */\n public minutes: LoopScrollData[] = minutes;\n\n /**\n * Indication whether are minutes open\n */\n public minutesOpen: boolean = false;\n\n /**\n * Indication whether are hours open\n */\n public hoursOpen: boolean = false;\n\n /**\n * Current value of hour\n */\n public get hour(): number\n {\n return this.displayDate?.hour() ?? 0;\n }\n public set hour(value: number)\n {\n this.displayDate?.hour(value);\n }\n\n /**\n * Current value of minute\n */\n public get minute(): number\n {\n return this.displayDate?.minute() ?? 0;\n }\n public set minute(value: number)\n {\n this.displayDate?.minute(value);\n }\n\n //######################### public methods - implementation of PickerBaseComponent #########################\n \n /**\n * @inheritdoc\n */\n public display(value: DateApiObject<TDate>): void\n {\n this.displayDate = value;\n }\n\n /**\n * @inheritdoc\n */\n public setMinValue(_value: TDate | null): void\n {\n }\n\n /**\n * @inheritdoc\n */\n public setMaxValue(_value: TDate | null): void\n {\n }\n\n /**\n * @inheritdoc\n */\n public setValue(_value: DateTimeValue<TDate> | null): void\n {\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Sets hour\n * @param event - Mouse event that was triggered\n * @param value - Value to be set as hour\n * @returns \n */\n public setHour<TData = any>(event: MouseEvent|null, value: TData): void\n {\n if(!this.hoursOpen && event)\n {\n return;\n }\n\n event?.stopPropagation();\n event?.preventDefault();\n\n if(this.hour == value as unknown as number)\n {\n return;\n }\n\n this.hour = value as unknown as number;\n \n if(event)\n {\n this.hoursOpen = false;\n }\n\n if(this.displayDate)\n {\n this._value =\n {\n from: this.displayDate?.value,\n to: this.displayDate?.value\n };\n\n this._valueChange.next();\n }\n }\n\n /**\n * Sets minute\n * @param event - Mouse event that was triggered\n * @param value - Value to be set as minute\n * @returns \n */\n public setMinute<TData = any>(event: MouseEvent|null, value: TData): void\n {\n if(!this.minutesOpen && event)\n {\n return;\n }\n\n event?.stopPropagation();\n event?.preventDefault();\n\n if(this.minute == value as unknown as number)\n {\n return;\n }\n\n this.minute = value as unknown as number;\n \n if(event)\n {\n this.minutesOpen = false;\n }\n\n if(this.displayDate)\n {\n this._value =\n {\n from: this.displayDate?.value,\n to: this.displayDate?.value\n };\n\n this._valueChange.next();\n }\n }\n}","<div class=\"flex-row\" style=\"justify-content: center;\">\n <div [class.clickable]=\"canGoUp\" (mousedown)=\"goUp($event)\">{{displayDate?.value | dateFormat: 'date'}}</div>\n</div>\n\n<div class=\"time-area\">\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"hoursOpen = false\"\n [clickOutsideElement]=\"hoursScroll\">\n <div #hoursScroll\n class=\"roller-scroll\"\n [class.open]=\"hoursOpen\"\n [loopScroll]=\"hour\"\n [open]=\"hoursOpen\"\n (loopScrollChange)=\"setHour(null, $event)\"\n (click)=\"hoursOpen = !hoursOpen\" >\n <div *ngFor=\"let hour of hours\"\n [loopScrollData]=\"hour?.data\"\n (click)=\"setHour($event, hour?.data)\">{{hour?.displayText}}</div>\n </div>\n </div>\n\n <div class=\"minute-second-separator\">:</div>\n\n <div class=\"value-container\"\n [clickOutside]=\"true\"\n (clickOutsideChange)=\"minutesOpen = false\"\n [clickOutsideElement]=\"minutesScroll\">\n <div #minutesScroll\n class=\"roller-scroll\"\n [class.open]=\"minutesOpen\"\n [loopScroll]=\"minute\"\n [open]=\"minutesOpen\"\n (loopScrollChange)=\"setMinute(null, $event)\"\n (click)=\"minutesOpen = !minutesOpen\">\n <div *ngFor=\"let minute of minutes\"\n [loopScrollData]=\"minute?.data\"\n (click)=\"setMinute($event, minute?.data)\">{{minute?.displayText}}</div>\n </div>\n </div>\n</div>\n"]}