@anglr/datetime 1.0.0 → 2.0.1-beta.20220222061608

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 (456) hide show
  1. package/changelog.md +19 -0
  2. package/date-fns/package.json +7 -7
  3. package/date-fns/src/{date-fns.d.ts → index.d.ts} +4 -4
  4. package/date-fns/src/index.d.ts.map +1 -0
  5. package/date-fns/src/misc/tokens.d.ts +10 -10
  6. package/date-fns/src/services/dateFnsDateApi.service.d.ts +36 -33
  7. package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
  8. package/date-fns/src/services/dateFnsLocale.service.d.ts +10 -10
  9. package/es2015/date-fns/src/index.js +4 -0
  10. package/es2015/date-fns/src/index.js.map +1 -0
  11. package/es2015/date-fns/src/misc/tokens.js +20 -0
  12. package/es2015/date-fns/src/misc/tokens.js.map +1 -0
  13. package/es2015/date-fns/src/services/dateFnsDateApi.service.js +438 -0
  14. package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  15. package/es2015/date-fns/src/services/dateFnsLocale.service.js +2 -0
  16. package/es2015/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  17. package/es2015/karma.conf.js +57 -0
  18. package/es2015/karma.conf.js.map +1 -0
  19. package/{moment/src/moment.d.ts → es2015/moment/src/index.js} +3 -3
  20. package/es2015/moment/src/index.js.map +1 -0
  21. package/es2015/moment/src/misc/tokens.js +15 -0
  22. package/es2015/moment/src/misc/tokens.js.map +1 -0
  23. package/es2015/moment/src/services/momentDateApi.service.js +398 -0
  24. package/es2015/moment/src/services/momentDateApi.service.js.map +1 -0
  25. package/{src/datetime.d.ts → es2015/src/index.js} +19 -19
  26. package/es2015/src/index.js.map +1 -0
  27. package/es2015/src/misc/constants.js +33 -0
  28. package/es2015/src/misc/constants.js.map +1 -0
  29. package/es2015/src/misc/datetime.interface.js +2 -0
  30. package/es2015/src/misc/datetime.interface.js.map +1 -0
  31. package/es2015/src/misc/tokens.js +19 -0
  32. package/es2015/src/misc/tokens.js.map +1 -0
  33. package/es2015/src/misc/validators.js +58 -0
  34. package/es2015/src/misc/validators.js.map +1 -0
  35. package/es2015/src/modules/datePipes.module.js +33 -0
  36. package/es2015/src/modules/datePipes.module.js.map +1 -0
  37. package/es2015/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  38. package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  39. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  40. package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  41. package/es2015/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  42. package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  43. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  44. package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  45. package/es2015/src/picker/components/picker/picker.component.animations.js +71 -0
  46. package/es2015/src/picker/components/picker/picker.component.animations.js.map +1 -0
  47. package/es2015/src/picker/components/picker/picker.component.js +241 -0
  48. package/es2015/src/picker/components/picker/picker.component.js.map +1 -0
  49. package/es2015/src/picker/components/pickerBase.component.js +243 -0
  50. package/es2015/src/picker/components/pickerBase.component.js.map +1 -0
  51. package/es2015/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  52. package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  53. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  54. package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  55. package/es2015/src/picker/interfaces.js +5 -0
  56. package/es2015/src/picker/interfaces.js.map +1 -0
  57. package/es2015/src/picker/misc/datetimePicker.interface.js +2 -0
  58. package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -0
  59. package/es2015/src/picker/misc/tokens.js +6 -0
  60. package/es2015/src/picker/misc/tokens.js.map +1 -0
  61. package/es2015/src/picker/modules/picker.module.js +46 -0
  62. package/es2015/src/picker/modules/picker.module.js.map +1 -0
  63. package/es2015/src/picker/types.js +8 -0
  64. package/es2015/src/picker/types.js.map +1 -0
  65. package/es2015/src/pipes/asRequiredType.js +22 -0
  66. package/es2015/src/pipes/asRequiredType.js.map +1 -0
  67. package/es2015/src/pipes/dateConvert.pipe.js +35 -0
  68. package/es2015/src/pipes/dateConvert.pipe.js.map +1 -0
  69. package/es2015/src/pipes/dateFormat.pipe.js +45 -0
  70. package/es2015/src/pipes/dateFormat.pipe.js.map +1 -0
  71. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +421 -0
  72. package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  73. package/es2015/src/selector/components/selector/selector.component.animations.js +15 -0
  74. package/es2015/src/selector/components/selector/selector.component.animations.js.map +1 -0
  75. package/es2015/src/selector/components/selector/selector.component.js +344 -0
  76. package/es2015/src/selector/components/selector/selector.component.js.map +1 -0
  77. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +317 -0
  78. package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  79. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  80. package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  81. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  82. package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  83. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  84. package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  85. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +119 -0
  86. package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  87. package/es2015/src/selector/interfaces.js +2 -0
  88. package/es2015/src/selector/interfaces.js.map +1 -0
  89. package/es2015/src/selector/misc/datetimeSelector.interface.js +2 -0
  90. package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  91. package/es2015/src/selector/misc/tokens.js +6 -0
  92. package/es2015/src/selector/misc/tokens.js.map +1 -0
  93. package/es2015/src/selector/modules/basicSelector.module.js +20 -0
  94. package/es2015/src/selector/modules/basicSelector.module.js.map +1 -0
  95. package/es2015/src/selector/modules/selector.module.js +60 -0
  96. package/es2015/src/selector/modules/selector.module.js.map +1 -0
  97. package/es2015/src/selector/types.js +10 -0
  98. package/es2015/src/selector/types.js.map +1 -0
  99. package/es2015/src/services/dateApi.interface.js +2 -0
  100. package/es2015/src/services/dateApi.interface.js.map +1 -0
  101. package/es2015/src/services/datePositionParser.interface.js +2 -0
  102. package/es2015/src/services/datePositionParser.interface.js.map +1 -0
  103. package/es2015/src/services/datePositionParser.service.js +227 -0
  104. package/es2015/src/services/datePositionParser.service.js.map +1 -0
  105. package/es2015/src/services/dateTimeRelativeParser.service.js +66 -0
  106. package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -0
  107. package/es2015/src/services/dateValueProvider.service.js +58 -0
  108. package/es2015/src/services/dateValueProvider.service.js.map +1 -0
  109. package/es2015/src/services/formatProvider.interface.js +2 -0
  110. package/es2015/src/services/formatProvider.interface.js.map +1 -0
  111. package/es2015/src/services/index.js +4 -0
  112. package/es2015/src/services/index.js.map +1 -0
  113. package/es2020/date-fns/src/index.js +4 -0
  114. package/es2020/date-fns/src/index.js.map +1 -0
  115. package/es2020/date-fns/src/misc/tokens.js +20 -0
  116. package/es2020/date-fns/src/misc/tokens.js.map +1 -0
  117. package/es2020/date-fns/src/services/dateFnsDateApi.service.js +437 -0
  118. package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
  119. package/es2020/date-fns/src/services/dateFnsLocale.service.js +2 -0
  120. package/es2020/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
  121. package/es2020/karma.conf.js +57 -0
  122. package/es2020/karma.conf.js.map +1 -0
  123. package/es2020/moment/src/index.js +3 -0
  124. package/es2020/moment/src/index.js.map +1 -0
  125. package/es2020/moment/src/misc/tokens.js +15 -0
  126. package/es2020/moment/src/misc/tokens.js.map +1 -0
  127. package/es2020/moment/src/services/momentDateApi.service.js +398 -0
  128. package/es2020/moment/src/services/momentDateApi.service.js.map +1 -0
  129. package/es2020/src/index.js +19 -0
  130. package/es2020/src/index.js.map +1 -0
  131. package/es2020/src/misc/constants.js +33 -0
  132. package/es2020/src/misc/constants.js.map +1 -0
  133. package/es2020/src/misc/datetime.interface.js +2 -0
  134. package/es2020/src/misc/datetime.interface.js.map +1 -0
  135. package/es2020/src/misc/tokens.js +19 -0
  136. package/es2020/src/misc/tokens.js.map +1 -0
  137. package/es2020/src/misc/validators.js +58 -0
  138. package/es2020/src/misc/validators.js.map +1 -0
  139. package/es2020/src/modules/datePipes.module.js +33 -0
  140. package/es2020/src/modules/datePipes.module.js.map +1 -0
  141. package/es2020/src/picker/components/dayPicker/dayPicker.component.js +172 -0
  142. package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
  143. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
  144. package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
  145. package/es2020/src/picker/components/monthPicker/monthPicker.component.js +114 -0
  146. package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
  147. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
  148. package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
  149. package/es2020/src/picker/components/picker/picker.component.animations.js +71 -0
  150. package/es2020/src/picker/components/picker/picker.component.animations.js.map +1 -0
  151. package/es2020/src/picker/components/picker/picker.component.js +236 -0
  152. package/es2020/src/picker/components/picker/picker.component.js.map +1 -0
  153. package/es2020/src/picker/components/pickerBase.component.js +243 -0
  154. package/es2020/src/picker/components/pickerBase.component.js.map +1 -0
  155. package/es2020/src/picker/components/yearPicker/yearPicker.component.js +126 -0
  156. package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
  157. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
  158. package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
  159. package/es2020/src/picker/interfaces.js +5 -0
  160. package/es2020/src/picker/interfaces.js.map +1 -0
  161. package/es2020/src/picker/misc/datetimePicker.interface.js +2 -0
  162. package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -0
  163. package/es2020/src/picker/misc/tokens.js +6 -0
  164. package/es2020/src/picker/misc/tokens.js.map +1 -0
  165. package/es2020/src/picker/modules/picker.module.js +46 -0
  166. package/es2020/src/picker/modules/picker.module.js.map +1 -0
  167. package/es2020/src/picker/types.js +8 -0
  168. package/es2020/src/picker/types.js.map +1 -0
  169. package/es2020/src/pipes/asRequiredType.js +22 -0
  170. package/es2020/src/pipes/asRequiredType.js.map +1 -0
  171. package/es2020/src/pipes/dateConvert.pipe.js +35 -0
  172. package/es2020/src/pipes/dateConvert.pipe.js.map +1 -0
  173. package/es2020/src/pipes/dateFormat.pipe.js +45 -0
  174. package/es2020/src/pipes/dateFormat.pipe.js.map +1 -0
  175. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +417 -0
  176. package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
  177. package/es2020/src/selector/components/selector/selector.component.animations.js +15 -0
  178. package/es2020/src/selector/components/selector/selector.component.animations.js.map +1 -0
  179. package/es2020/src/selector/components/selector/selector.component.js +334 -0
  180. package/es2020/src/selector/components/selector/selector.component.js.map +1 -0
  181. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +314 -0
  182. package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
  183. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
  184. package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
  185. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
  186. package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
  187. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
  188. package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
  189. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +118 -0
  190. package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
  191. package/es2020/src/selector/interfaces.js +2 -0
  192. package/es2020/src/selector/interfaces.js.map +1 -0
  193. package/es2020/src/selector/misc/datetimeSelector.interface.js +2 -0
  194. package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -0
  195. package/es2020/src/selector/misc/tokens.js +6 -0
  196. package/es2020/src/selector/misc/tokens.js.map +1 -0
  197. package/es2020/src/selector/modules/basicSelector.module.js +20 -0
  198. package/es2020/src/selector/modules/basicSelector.module.js.map +1 -0
  199. package/es2020/src/selector/modules/selector.module.js +60 -0
  200. package/es2020/src/selector/modules/selector.module.js.map +1 -0
  201. package/es2020/src/selector/types.js +10 -0
  202. package/es2020/src/selector/types.js.map +1 -0
  203. package/es2020/src/services/dateApi.interface.js +2 -0
  204. package/es2020/src/services/dateApi.interface.js.map +1 -0
  205. package/es2020/src/services/datePositionParser.interface.js +2 -0
  206. package/es2020/src/services/datePositionParser.interface.js.map +1 -0
  207. package/es2020/src/services/datePositionParser.service.js +227 -0
  208. package/es2020/src/services/datePositionParser.service.js.map +1 -0
  209. package/es2020/src/services/dateTimeRelativeParser.service.js +65 -0
  210. package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -0
  211. package/es2020/src/services/dateValueProvider.service.js +58 -0
  212. package/es2020/src/services/dateValueProvider.service.js.map +1 -0
  213. package/es2020/src/services/formatProvider.interface.js +2 -0
  214. package/es2020/src/services/formatProvider.interface.js.map +1 -0
  215. package/es2020/src/services/index.js +4 -0
  216. package/es2020/src/services/index.js.map +1 -0
  217. package/karma.conf.d.ts +2 -0
  218. package/karma.conf.d.ts.map +1 -0
  219. package/moment/package.json +7 -7
  220. package/moment/src/index.d.ts +3 -0
  221. package/moment/src/index.d.ts.map +1 -0
  222. package/moment/src/misc/tokens.d.ts +5 -5
  223. package/moment/src/services/momentDateApi.service.d.ts +35 -32
  224. package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
  225. package/package.json +100 -48
  226. package/src/index.d.ts +19 -0
  227. package/src/index.d.ts.map +1 -0
  228. package/src/misc/constants.d.ts +32 -32
  229. package/src/misc/datetime.interface.d.ts +34 -34
  230. package/src/misc/tokens.d.ts +10 -10
  231. package/src/misc/validators.d.ts +25 -25
  232. package/src/modules/datePipes.module.d.ts +12 -5
  233. package/src/modules/datePipes.module.d.ts.map +1 -1
  234. package/src/picker/components/dayPicker/dayPicker.component.d.ts +68 -65
  235. package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
  236. package/src/picker/components/dayPicker/dayPicker.component.html +7 -7
  237. package/src/picker/components/dayPicker/dayPicker.interfaces.d.ts +10 -10
  238. package/src/picker/components/monthPicker/monthPicker.component.d.ts +52 -49
  239. package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
  240. package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
  241. package/src/picker/components/monthPicker/monthPicker.interfaces.d.ts +6 -6
  242. package/src/picker/components/picker/picker.component.animations.d.ts +4 -4
  243. package/src/picker/components/picker/picker.component.d.ts +104 -101
  244. package/src/picker/components/picker/picker.component.d.ts.map +1 -1
  245. package/src/picker/components/pickerBase.component.d.ts +169 -166
  246. package/src/picker/components/pickerBase.component.d.ts.map +1 -1
  247. package/src/picker/components/yearPicker/yearPicker.component.d.ts +57 -54
  248. package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
  249. package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
  250. package/src/picker/components/yearPicker/yearPicker.interfaces.d.ts +6 -6
  251. package/src/picker/interfaces.d.ts +4 -4
  252. package/src/picker/misc/datetimePicker.interface.d.ts +188 -188
  253. package/src/picker/misc/tokens.d.ts +6 -6
  254. package/src/picker/modules/picker.module.d.ts +16 -5
  255. package/src/picker/modules/picker.module.d.ts.map +1 -1
  256. package/src/picker/types.d.ts +7 -7
  257. package/src/pipes/asRequiredType.d.ts +21 -0
  258. package/src/pipes/asRequiredType.d.ts.map +1 -0
  259. package/src/pipes/dateConvert.pipe.d.ts +18 -15
  260. package/src/pipes/dateConvert.pipe.d.ts.map +1 -1
  261. package/src/pipes/dateFormat.pipe.d.ts +20 -17
  262. package/src/pipes/dateFormat.pipe.d.ts.map +1 -1
  263. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +187 -184
  264. package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
  265. package/src/selector/components/selector/selector.component.animations.d.ts +4 -4
  266. package/src/selector/components/selector/selector.component.d.ts +155 -152
  267. package/src/selector/components/selector/selector.component.d.ts.map +1 -1
  268. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +170 -167
  269. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
  270. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts +22 -19
  271. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts.map +1 -1
  272. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts +22 -19
  273. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts.map +1 -1
  274. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts +21 -18
  275. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts.map +1 -1
  276. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts +53 -50
  277. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
  278. package/src/selector/interfaces.d.ts +1 -1
  279. package/src/selector/misc/datetimeSelector.interface.d.ts +82 -82
  280. package/src/selector/misc/tokens.d.ts +6 -6
  281. package/src/selector/modules/basicSelector.module.d.ts +10 -5
  282. package/src/selector/modules/basicSelector.module.d.ts.map +1 -1
  283. package/src/selector/modules/selector.module.d.ts +18 -5
  284. package/src/selector/modules/selector.module.d.ts.map +1 -1
  285. package/src/selector/types.d.ts +9 -9
  286. package/src/services/dateApi.interface.d.ts +275 -275
  287. package/src/services/datePositionParser.interface.d.ts +40 -40
  288. package/src/services/datePositionParser.service.d.ts +60 -57
  289. package/src/services/datePositionParser.service.d.ts.map +1 -1
  290. package/src/services/dateTimeRelativeParser.service.d.ts +21 -18
  291. package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
  292. package/src/services/dateValueProvider.service.d.ts +18 -15
  293. package/src/services/dateValueProvider.service.d.ts.map +1 -1
  294. package/src/services/formatProvider.interface.d.ts +17 -17
  295. package/src/services/index.d.ts +3 -3
  296. package/tsconfig.karma.json +5 -6
  297. package/version.bak +1 -1
  298. package/appveyor.yml +0 -70
  299. package/date-fns/dist/es2015/date-fns/index.js +0 -10
  300. package/date-fns/dist/es2015/date-fns/public_api.js +0 -7
  301. package/date-fns/dist/es2015/date-fns/src/date-fns.js +0 -9
  302. package/date-fns/dist/es2015/date-fns/src/misc/tokens.js +0 -32
  303. package/date-fns/dist/es2015/date-fns/src/services/dateFnsDateApi.service.js +0 -512
  304. package/date-fns/dist/es2015/date-fns/src/services/dateFnsLocale.service.js +0 -18
  305. package/date-fns/dist/es5/date-fns/index.js +0 -10
  306. package/date-fns/dist/es5/date-fns/public_api.js +0 -7
  307. package/date-fns/dist/es5/date-fns/src/date-fns.js +0 -9
  308. package/date-fns/dist/es5/date-fns/src/misc/tokens.js +0 -32
  309. package/date-fns/dist/es5/date-fns/src/services/dateFnsDateApi.service.js +0 -902
  310. package/date-fns/dist/es5/date-fns/src/services/dateFnsLocale.service.js +0 -18
  311. package/date-fns/index.d.ts +0 -5
  312. package/date-fns/index.d.ts.map +0 -1
  313. package/date-fns/index.metadata.json +0 -1
  314. package/date-fns/public_api.d.ts +0 -2
  315. package/date-fns/public_api.d.ts.map +0 -1
  316. package/date-fns/src/date-fns.d.ts.map +0 -1
  317. package/date-fns/src/services/dateFnsDateApi.service.ngfactory.d.ts.map +0 -1
  318. package/datetime.d.ts +0 -7
  319. package/datetime.d.ts.map +0 -1
  320. package/datetime.metadata.json +0 -1
  321. package/dist/es2015/datetime.js +0 -10
  322. package/dist/es2015/public_api.js +0 -7
  323. package/dist/es2015/src/datetime.js +0 -24
  324. package/dist/es2015/src/misc/constants.js +0 -46
  325. package/dist/es2015/src/misc/datetime.interface.js +0 -52
  326. package/dist/es2015/src/misc/tokens.js +0 -29
  327. package/dist/es2015/src/misc/validators.js +0 -80
  328. package/dist/es2015/src/modules/datePipes.module.js +0 -26
  329. package/dist/es2015/src/picker/components/dayPicker/dayPicker.component.js +0 -215
  330. package/dist/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  331. package/dist/es2015/src/picker/components/monthPicker/monthPicker.component.js +0 -138
  332. package/dist/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  333. package/dist/es2015/src/picker/components/picker/picker.component.animations.js +0 -77
  334. package/dist/es2015/src/picker/components/picker/picker.component.js +0 -386
  335. package/dist/es2015/src/picker/components/pickerBase.component.js +0 -406
  336. package/dist/es2015/src/picker/components/yearPicker/yearPicker.component.js +0 -158
  337. package/dist/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  338. package/dist/es2015/src/picker/interfaces.js +0 -10
  339. package/dist/es2015/src/picker/misc/datetimePicker.interface.js +0 -245
  340. package/dist/es2015/src/picker/misc/tokens.js +0 -12
  341. package/dist/es2015/src/picker/modules/picker.module.js +0 -35
  342. package/dist/es2015/src/picker/types.js +0 -13
  343. package/dist/es2015/src/pipes/dateConvert.pipe.js +0 -50
  344. package/dist/es2015/src/pipes/dateFormat.pipe.js +0 -64
  345. package/dist/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +0 -588
  346. package/dist/es2015/src/selector/components/selector/selector.component.animations.js +0 -21
  347. package/dist/es2015/src/selector/components/selector/selector.component.js +0 -514
  348. package/dist/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -456
  349. package/dist/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -73
  350. package/dist/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -73
  351. package/dist/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -70
  352. package/dist/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -171
  353. package/dist/es2015/src/selector/interfaces.js +0 -7
  354. package/dist/es2015/src/selector/misc/datetimeSelector.interface.js +0 -106
  355. package/dist/es2015/src/selector/misc/tokens.js +0 -12
  356. package/dist/es2015/src/selector/modules/basicSelector.module.js +0 -20
  357. package/dist/es2015/src/selector/modules/selector.module.js +0 -45
  358. package/dist/es2015/src/selector/types.js +0 -15
  359. package/dist/es2015/src/services/dateApi.interface.js +0 -316
  360. package/dist/es2015/src/services/datePositionParser.interface.js +0 -56
  361. package/dist/es2015/src/services/datePositionParser.service.js +0 -297
  362. package/dist/es2015/src/services/dateTimeRelativeParser.service.js +0 -97
  363. package/dist/es2015/src/services/dateValueProvider.service.js +0 -79
  364. package/dist/es2015/src/services/formatProvider.interface.js +0 -28
  365. package/dist/es2015/src/services/index.js +0 -9
  366. package/dist/es5/datetime.js +0 -10
  367. package/dist/es5/public_api.js +0 -7
  368. package/dist/es5/src/datetime.js +0 -24
  369. package/dist/es5/src/misc/constants.js +0 -46
  370. package/dist/es5/src/misc/datetime.interface.js +0 -52
  371. package/dist/es5/src/misc/tokens.js +0 -29
  372. package/dist/es5/src/misc/validators.js +0 -124
  373. package/dist/es5/src/modules/datePipes.module.js +0 -30
  374. package/dist/es5/src/picker/components/dayPicker/dayPicker.component.js +0 -323
  375. package/dist/es5/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
  376. package/dist/es5/src/picker/components/monthPicker/monthPicker.component.js +0 -233
  377. package/dist/es5/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
  378. package/dist/es5/src/picker/components/picker/picker.component.animations.js +0 -77
  379. package/dist/es5/src/picker/components/picker/picker.component.js +0 -460
  380. package/dist/es5/src/picker/components/pickerBase.component.js +0 -561
  381. package/dist/es5/src/picker/components/yearPicker/yearPicker.component.js +0 -253
  382. package/dist/es5/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
  383. package/dist/es5/src/picker/interfaces.js +0 -10
  384. package/dist/es5/src/picker/misc/datetimePicker.interface.js +0 -245
  385. package/dist/es5/src/picker/misc/tokens.js +0 -12
  386. package/dist/es5/src/picker/modules/picker.module.js +0 -39
  387. package/dist/es5/src/picker/types.js +0 -13
  388. package/dist/es5/src/pipes/dateConvert.pipe.js +0 -63
  389. package/dist/es5/src/pipes/dateFormat.pipe.js +0 -79
  390. package/dist/es5/src/selector/components/inputDateTime/inputDateTime.component.js +0 -808
  391. package/dist/es5/src/selector/components/selector/selector.component.animations.js +0 -21
  392. package/dist/es5/src/selector/components/selector/selector.component.js +0 -653
  393. package/dist/es5/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -656
  394. package/dist/es5/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -84
  395. package/dist/es5/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -84
  396. package/dist/es5/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -82
  397. package/dist/es5/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -230
  398. package/dist/es5/src/selector/interfaces.js +0 -7
  399. package/dist/es5/src/selector/misc/datetimeSelector.interface.js +0 -106
  400. package/dist/es5/src/selector/misc/tokens.js +0 -12
  401. package/dist/es5/src/selector/modules/basicSelector.module.js +0 -24
  402. package/dist/es5/src/selector/modules/selector.module.js +0 -49
  403. package/dist/es5/src/selector/types.js +0 -15
  404. package/dist/es5/src/services/dateApi.interface.js +0 -316
  405. package/dist/es5/src/services/datePositionParser.interface.js +0 -56
  406. package/dist/es5/src/services/datePositionParser.service.js +0 -366
  407. package/dist/es5/src/services/dateTimeRelativeParser.service.js +0 -108
  408. package/dist/es5/src/services/dateValueProvider.service.js +0 -92
  409. package/dist/es5/src/services/formatProvider.interface.js +0 -28
  410. package/dist/es5/src/services/index.js +0 -9
  411. package/moment/dist/es2015/moment/index.js +0 -10
  412. package/moment/dist/es2015/moment/public_api.js +0 -7
  413. package/moment/dist/es2015/moment/src/misc/tokens.js +0 -26
  414. package/moment/dist/es2015/moment/src/moment.js +0 -8
  415. package/moment/dist/es2015/moment/src/services/momentDateApi.service.js +0 -466
  416. package/moment/dist/es5/moment/index.js +0 -10
  417. package/moment/dist/es5/moment/public_api.js +0 -7
  418. package/moment/dist/es5/moment/src/misc/tokens.js +0 -26
  419. package/moment/dist/es5/moment/src/moment.js +0 -8
  420. package/moment/dist/es5/moment/src/services/momentDateApi.service.js +0 -858
  421. package/moment/index.d.ts +0 -5
  422. package/moment/index.d.ts.map +0 -1
  423. package/moment/index.metadata.json +0 -1
  424. package/moment/public_api.d.ts +0 -2
  425. package/moment/public_api.d.ts.map +0 -1
  426. package/moment/src/moment.d.ts.map +0 -1
  427. package/moment/src/services/momentDateApi.service.ngfactory.d.ts.map +0 -1
  428. package/public_api.d.ts +0 -2
  429. package/public_api.d.ts.map +0 -1
  430. package/src/datetime.d.ts.map +0 -1
  431. package/src/modules/datePipes.module.ngfactory.d.ts.map +0 -1
  432. package/src/picker/components/dayPicker/dayPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  433. package/src/picker/components/dayPicker/dayPicker.component.ngfactory.d.ts.map +0 -1
  434. package/src/picker/components/monthPicker/monthPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  435. package/src/picker/components/monthPicker/monthPicker.component.ngfactory.d.ts.map +0 -1
  436. package/src/picker/components/picker/picker.component.ngfactory.d.ts.map +0 -1
  437. package/src/picker/components/yearPicker/yearPicker.component.css.shim.ngstyle.d.ts.map +0 -1
  438. package/src/picker/components/yearPicker/yearPicker.component.ngfactory.d.ts.map +0 -1
  439. package/src/picker/modules/picker.module.ngfactory.d.ts.map +0 -1
  440. package/src/pipes/dateConvert.pipe.ngfactory.d.ts.map +0 -1
  441. package/src/pipes/dateFormat.pipe.ngfactory.d.ts.map +0 -1
  442. package/src/selector/components/inputDateTime/inputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  443. package/src/selector/components/inputDateTime/inputDateTime.component.ngfactory.d.ts.map +0 -1
  444. package/src/selector/components/selector/selector.component.css.shim.ngstyle.d.ts.map +0 -1
  445. package/src/selector/components/selector/selector.component.ngfactory.d.ts.map +0 -1
  446. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
  447. package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.ngfactory.d.ts.map +0 -1
  448. package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.ngfactory.d.ts.map +0 -1
  449. package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.ngfactory.d.ts.map +0 -1
  450. package/src/selector/directives/datetimeValidator/datetimeValidator.directive.ngfactory.d.ts.map +0 -1
  451. package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.ngfactory.d.ts.map +0 -1
  452. package/src/selector/modules/basicSelector.module.ngfactory.d.ts.map +0 -1
  453. package/src/selector/modules/selector.module.ngfactory.d.ts.map +0 -1
  454. package/src/services/datePositionParser.service.ngfactory.d.ts.map +0 -1
  455. package/src/services/dateTimeRelativeParser.service.ngfactory.d.ts.map +0 -1
  456. package/src/services/dateValueProvider.service.ngfactory.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectorControlValueAccessor.directive.js","sourceRoot":"","sources":["../../../../../src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {Directive, ExistingProvider, forwardRef, Input, OnDestroy} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport {Subscription} from 'rxjs';\n\nimport {DateTimeValue} from '../../../misc/datetime.interface';\nimport {DateTimeSelectorComponent} from '../../components/selector/selector.component';\n\n/**\n * Value accessor provider for date time selector\n */\nconst DATE_TIME_SELECTOR_VALUE_ACCESSOR = <ExistingProvider>\n{\n provide: NG_VALUE_ACCESSOR, \n useExisting: forwardRef(() => DateTimeSelectorControlValueAccessor), \n multi: true\n};\n\n/**\n * Value accessor for getting and setting values for date time selector\n */\n@Directive(\n{\n selector: 'date-time-selector[formControlName],date-time-selector[formControl],date-time-selector[ngModel]',\n providers: [DATE_TIME_SELECTOR_VALUE_ACCESSOR]\n})\nexport class DateTimeSelectorControlValueAccessor<TDate> implements ControlValueAccessor, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscriptions that are destroyed on directive destruction\n */\n protected _subscriptions: Subscription = new Subscription();\n\n //######################### public properties - inputs #########################\n\n /**\n * Indication whether value for selector is represented as range from, to\n */\n @Input()\n public range: boolean = false;\n\n /**\n * Indication whether value for selector is represented as formatted string value, if both 'formatted' and 'range' are set, 'range' takes precedence\n */\n @Input()\n public formatted: boolean = false;\n\n //######################### constructor #########################\n constructor(protected _selector: DateTimeSelectorComponent<TDate>)\n {\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._subscriptions?.unsubscribe();\n }\n\n //######################### public methods - implementation of ControlValueAccessor #########################\n\n /**\n * Sets value to datetime selector\n */\n public writeValue(value: string|DateTimeValue<TDate>|TDate|null): void\n {\n if(this.range)\n {\n this._selector.value = value as DateTimeValue<TDate>;\n }\n else if(this.formatted)\n {\n this._selector.formattedValue = value as string;\n }\n else\n {\n this._selector.value =\n {\n from: value as TDate,\n to: value as TDate\n };\n }\n }\n\n /**\n * Registers callback that is called when value of datetime selector value changes\n */\n public registerOnChange(fn: (data: string|DateTimeValue<TDate>|TDate|null) => any): void\n {\n this._subscriptions.add(this._selector.valueChange.subscribe(() => this._emitValue(fn)));\n }\n\n /**\n * Registers callback that is called when datetime selector was touched by user\n */\n public registerOnTouched(fn: () => any): void\n {\n this._subscriptions.add(this._selector.touched.subscribe(() => fn()));\n }\n\n /**\n * Used for setting control as disabled\n * @param isDisabled - disabled status to set on the element\n */\n public setDisabledState(isDisabled: boolean): void\n {\n this._selector.setDisabled(isDisabled);\n }\n\n //######################### protected methods #########################\n\n /**\n * Used for emitting value that was changed\n * @param fn - Function that is used for emitting changed value\n */\n protected _emitValue(fn: (value: string|DateTimeValue<TDate>|TDate|null) => any)\n {\n if(this.range)\n {\n fn(this._selector.value);\n }\n else if(this.formatted)\n {\n fn(this._selector.formattedValue);\n }\n else\n {\n const value = this._selector.value;\n\n if(!value)\n {\n fn(null);\n }\n else\n {\n fn(value.from);\n }\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './misc/datetimeSelector.interface';
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/selector/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './misc/datetimeSelector.interface';"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=datetimeSelector.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetimeSelector.interface.js","sourceRoot":"","sources":["../../../../src/selector/misc/datetimeSelector.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {DateTimeValue} from '../../misc/datetime.interface';\nimport {DateTimePickerOptions} from '../../picker/misc/datetimePicker.interface';\n\n/**\n * Defintion of datetime selector component options\n */\nexport interface DateTimeSelectorOptions<TSelector = any, TPicker = any> extends DateTimePickerOptions<TPicker>\n{\n /**\n * Definition of type that is used for selector\n */\n selectorComponent: Type<TSelector>;\n\n /**\n * Indication whether close picker on value selection\n */\n pickerCloseOnValueSelect?: boolean;\n\n /**\n * Indication whether picker is disabled\n */\n pickerDisabled?: boolean;\n}\n\n/**\n * Describes datetime selector component used for displaying and selecting value\n */\nexport interface DateTimeSelector<TDate = any>\n{\n /**\n * Currently used format for displaying data\n */\n format: string;\n\n /**\n * Placeholder that is displayed when there is no value selected\n */\n placeholder?: string;\n\n /**\n * Gets current value of datetime\n */\n readonly value: DateTimeValue<TDate>|null;\n\n /**\n * Gets formatted value\n */\n readonly formattedValue: string|null;\n\n /**\n * Gets indication whether is current value valid\n */\n readonly valid: boolean;\n\n /**\n * Occurs when value changes\n */\n readonly valueChange: Observable<void>;\n\n /**\n * Occurs when selector is touched by user\n */\n readonly touched: Observable<void>;\n\n /**\n * Occurs when selector requires picker to be displayed or hidden\n */\n readonly pickerRequest: Observable<boolean>;\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 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 setMaxValue(value: TDate|null): void;\n\n /**\n * Sets value of datetime selector\n * @param value - Value to be set to this selector\n */\n setValue(value: DateTimeValue<TDate>|null): void;\n\n /**\n * Sets as 'control' disabled\n * @param disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true\n */\n setDisabled(disabled?: boolean): void;\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n invalidateVisuals(): void;\n}"]}
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Injection token used for obtaining datetime selector configuration
4
+ */
5
+ export const DATE_TIME_SELECTOR_CONFIGURATION = new InjectionToken('DATE_TIME_SELECTOR_CONFIGURATION');
6
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/selector/misc/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAI7C;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAiD,IAAI,cAAc,CAA+B,kCAAkC,CAAC,CAAC","sourcesContent":["import {InjectionToken} from '@angular/core';\n\nimport {DateTimeSelectorOptions} from './datetimeSelector.interface';\n\n/**\n * Injection token used for obtaining datetime selector configuration\n */\nexport const DATE_TIME_SELECTOR_CONFIGURATION: InjectionToken<DateTimeSelectorOptions<any>> = new InjectionToken<DateTimeSelectorOptions<any>>('DATE_TIME_SELECTOR_CONFIGURATION');"]}
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SimpleInputDateTimeSelectorComponent } from '../components/simpleInputDateTime/simpleInputDateTime.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Angular module for date time basic input selector component
6
+ */
7
+ export class DateTimeBasicSelectorModule {
8
+ }
9
+ DateTimeBasicSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeBasicSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ DateTimeBasicSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeBasicSelectorModule, declarations: [SimpleInputDateTimeSelectorComponent] });
11
+ DateTimeBasicSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeBasicSelectorModule });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeBasicSelectorModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [
16
+ SimpleInputDateTimeSelectorComponent
17
+ ]
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=basicSelector.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basicSelector.module.js","sourceRoot":"","sources":["../../../../src/selector/modules/basicSelector.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,oCAAoC,EAAC,MAAM,iEAAiE,CAAC;;AAErH;;GAEG;AAQH,MAAM,OAAO,2BAA2B;;wHAA3B,2BAA2B;yHAA3B,2BAA2B,iBAHhC,oCAAoC;yHAG/B,2BAA2B;2FAA3B,2BAA2B;kBAPvC,QAAQ;mBACT;oBACI,YAAY,EACZ;wBACI,oCAAoC;qBACvC;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {SimpleInputDateTimeSelectorComponent} from '../components/simpleInputDateTime/simpleInputDateTime.component';\n\n/**\n * Angular module for date time basic input selector component\n */\n@NgModule(\n{\n declarations:\n [\n SimpleInputDateTimeSelectorComponent\n ]\n})\nexport class DateTimeBasicSelectorModule\n{\n}"]}
@@ -0,0 +1,60 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule as AngularCommonModule } from '@angular/common';
3
+ import { CommonDynamicModule } from '@anglr/common';
4
+ import { DateTimePickerModule } from '../../picker/modules/picker.module';
5
+ import { DateTimeSelectorComponent } from '../components/selector/selector.component';
6
+ import { InputDateTimeSelectorComponent } from '../components/inputDateTime/inputDateTime.component';
7
+ import { DateTimeSelectorControlValueAccessor } from '../directives/selectorControlValueAccessor/selectorControlValueAccessor.directive';
8
+ import { DatetimeValidatorDirective } from '../directives/datetimeValidator/datetimeValidator.directive';
9
+ import { DatetimeMinValidatorDirective } from '../directives/datetimeMinValidator/datetimeMinValidator.directive';
10
+ import { DatetimeMaxValidatorDirective } from '../directives/datetimeMaxValidator/datetimeMaxValidator.directive';
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * Angular module for date time selector components
14
+ */
15
+ export class DateTimeSelectorModule {
16
+ }
17
+ DateTimeSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ DateTimeSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeSelectorModule, declarations: [DateTimeSelectorComponent,
19
+ InputDateTimeSelectorComponent,
20
+ DateTimeSelectorControlValueAccessor,
21
+ DatetimeValidatorDirective,
22
+ DatetimeMinValidatorDirective,
23
+ DatetimeMaxValidatorDirective], imports: [AngularCommonModule,
24
+ CommonDynamicModule,
25
+ DateTimePickerModule], exports: [DateTimeSelectorComponent,
26
+ DateTimeSelectorControlValueAccessor,
27
+ DatetimeValidatorDirective,
28
+ DatetimeMinValidatorDirective,
29
+ DatetimeMaxValidatorDirective] });
30
+ DateTimeSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeSelectorModule, imports: [[
31
+ AngularCommonModule,
32
+ CommonDynamicModule,
33
+ DateTimePickerModule,
34
+ ]] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeSelectorModule, decorators: [{
36
+ type: NgModule,
37
+ args: [{
38
+ imports: [
39
+ AngularCommonModule,
40
+ CommonDynamicModule,
41
+ DateTimePickerModule,
42
+ ],
43
+ declarations: [
44
+ DateTimeSelectorComponent,
45
+ InputDateTimeSelectorComponent,
46
+ DateTimeSelectorControlValueAccessor,
47
+ DatetimeValidatorDirective,
48
+ DatetimeMinValidatorDirective,
49
+ DatetimeMaxValidatorDirective
50
+ ],
51
+ exports: [
52
+ DateTimeSelectorComponent,
53
+ DateTimeSelectorControlValueAccessor,
54
+ DatetimeValidatorDirective,
55
+ DatetimeMinValidatorDirective,
56
+ DatetimeMaxValidatorDirective
57
+ ]
58
+ }]
59
+ }] });
60
+ //# sourceMappingURL=selector.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.module.js","sourceRoot":"","sources":["../../../../src/selector/modules/selector.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,YAAY,IAAI,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAElD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,yBAAyB,EAAC,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,qDAAqD,CAAC;AACnG,OAAO,EAAC,oCAAoC,EAAC,MAAM,mFAAmF,CAAC;AACvI,OAAO,EAAC,0BAA0B,EAAC,MAAM,6DAA6D,CAAC;AACvG,OAAO,EAAC,6BAA6B,EAAC,MAAM,mEAAmE,CAAC;AAChH,OAAO,EAAC,6BAA6B,EAAC,MAAM,mEAAmE,CAAC;;AAEhH;;GAEG;AA2BH,MAAM,OAAO,sBAAsB;;mHAAtB,sBAAsB;oHAAtB,sBAAsB,iBAhB3B,yBAAyB;QACzB,8BAA8B;QAC9B,oCAAoC;QACpC,0BAA0B;QAC1B,6BAA6B;QAC7B,6BAA6B,aAX7B,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB,aAapB,yBAAyB;QACzB,oCAAoC;QACpC,0BAA0B;QAC1B,6BAA6B;QAC7B,6BAA6B;oHAGxB,sBAAsB,YAvB/B;YACI,mBAAmB;YACnB,mBAAmB;YACnB,oBAAoB;SACvB;2FAmBQ,sBAAsB;kBA1BlC,QAAQ;mBACT;oBACI,OAAO,EACP;wBACI,mBAAmB;wBACnB,mBAAmB;wBACnB,oBAAoB;qBACvB;oBACD,YAAY,EACZ;wBACI,yBAAyB;wBACzB,8BAA8B;wBAC9B,oCAAoC;wBACpC,0BAA0B;wBAC1B,6BAA6B;wBAC7B,6BAA6B;qBAChC;oBACD,OAAO,EACP;wBACI,yBAAyB;wBACzB,oCAAoC;wBACpC,0BAA0B;wBAC1B,6BAA6B;wBAC7B,6BAA6B;qBAChC;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\nimport {CommonModule as AngularCommonModule} from '@angular/common';\nimport {CommonDynamicModule} from '@anglr/common';\n\nimport {DateTimePickerModule} from '../../picker/modules/picker.module';\nimport {DateTimeSelectorComponent} from '../components/selector/selector.component';\nimport {InputDateTimeSelectorComponent} from '../components/inputDateTime/inputDateTime.component';\nimport {DateTimeSelectorControlValueAccessor} from '../directives/selectorControlValueAccessor/selectorControlValueAccessor.directive';\nimport {DatetimeValidatorDirective} from '../directives/datetimeValidator/datetimeValidator.directive';\nimport {DatetimeMinValidatorDirective} from '../directives/datetimeMinValidator/datetimeMinValidator.directive';\nimport {DatetimeMaxValidatorDirective} from '../directives/datetimeMaxValidator/datetimeMaxValidator.directive';\n\n/**\n * Angular module for date time selector components\n */\n@NgModule(\n{\n imports:\n [\n AngularCommonModule,\n CommonDynamicModule,\n DateTimePickerModule,\n ],\n declarations:\n [\n DateTimeSelectorComponent,\n InputDateTimeSelectorComponent,\n DateTimeSelectorControlValueAccessor,\n DatetimeValidatorDirective,\n DatetimeMinValidatorDirective,\n DatetimeMaxValidatorDirective\n ],\n exports:\n [\n DateTimeSelectorComponent,\n DateTimeSelectorControlValueAccessor,\n DatetimeValidatorDirective,\n DatetimeMinValidatorDirective,\n DatetimeMaxValidatorDirective\n ]\n})\nexport class DateTimeSelectorModule\n{\n}"]}
@@ -0,0 +1,10 @@
1
+ export * from './components/inputDateTime/inputDateTime.component';
2
+ export * from './components/selector/selector.component';
3
+ export * from './components/selector/selector.component.animations';
4
+ export * from './components/simpleInputDateTime/simpleInputDateTime.component';
5
+ export * from './directives/datetimeMaxValidator/datetimeMaxValidator.directive';
6
+ export * from './directives/datetimeMinValidator/datetimeMinValidator.directive';
7
+ export * from './directives/datetimeValidator/datetimeValidator.directive';
8
+ export * from './directives/selectorControlValueAccessor/selectorControlValueAccessor.directive';
9
+ export * from './misc/tokens';
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/selector/types.ts"],"names":[],"mappings":"AAAA,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,qDAAqD,CAAC;AACpE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,kEAAkE,CAAC;AACjF,cAAc,kEAAkE,CAAC;AACjF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,kFAAkF,CAAC;AACjG,cAAc,eAAe,CAAC","sourcesContent":["export * from './components/inputDateTime/inputDateTime.component';\nexport * from './components/selector/selector.component';\nexport * from './components/selector/selector.component.animations';\nexport * from './components/simpleInputDateTime/simpleInputDateTime.component';\nexport * from './directives/datetimeMaxValidator/datetimeMaxValidator.directive';\nexport * from './directives/datetimeMinValidator/datetimeMinValidator.directive';\nexport * from './directives/datetimeValidator/datetimeValidator.directive';\nexport * from './directives/selectorControlValueAccessor/selectorControlValueAccessor.directive';\nexport * from './misc/tokens';"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dateApi.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateApi.interface.js","sourceRoot":"","sources":["../../../src/services/dateApi.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Date can be represented as formatted string, timestamp or javascript Date object\n */\nexport type DateValue = Date|string|number;\n\n/**\n * Instance of object wrapping TDate, allowing manipulation with it\n */\nexport interface DateApiObject<TDate = any>\n{\n /**\n * Original value that is not changed unless 'updateOriginal' is called\n */\n readonly originalValue: TDate;\n\n /**\n * Instance of date\n */\n readonly value: TDate;\n\n /**\n * Gets indication whether provided instance of date is valid\n */\n isValid(): boolean;\n\n /**\n * Gets indication whether provided instance of date is weekend day\n */\n isWeekend(): boolean;\n\n /**\n * Formats date value\n * @param format - Format token used for creating formatted string\n */\n format(format: string): string;\n\n /**\n * Updates value to start date and time of current decade\n * @returns Itself for fluent API\n */\n startOfDecade(): DateApiObject<TDate>;\n\n /**\n * Updates value to end date and time of current decade\n * @returns Itself for fluent API\n */\n endOfDecade(): DateApiObject<TDate>;\n\n /**\n * Updates value to start date and time of current year\n * @returns Itself for fluent API\n */\n startOfYear(): DateApiObject<TDate>;\n\n /**\n * Updates value to end date and time of current year\n * @returns Itself for fluent API\n */\n endOfYear(): DateApiObject<TDate>;\n\n /**\n * Add years, if count not specified adds 1 year\n * @param count - Number of years count\n * @returns Itself for fluent API\n */\n addYears(count?: number): DateApiObject<TDate>;\n\n /**\n * Subtract years, if count not specified subtract 1 year\n * @param count - Number of years count\n * @returns Itself for fluent API\n */\n subtractYears(count?: number): DateApiObject<TDate>;\n\n /**\n * Updates value to start date and time of current month\n * @returns Itself for fluent API\n */\n startOfMonth(): DateApiObject<TDate>;\n\n /**\n * Updates value to end date and time of current month\n * @returns Itself for fluent API\n */\n endOfMonth(): DateApiObject<TDate>;\n\n /**\n * Add months, if count not specified adds 1 month\n * @param count - Number of months count\n * @returns Itself for fluent API\n */\n addMonths(count?: number): DateApiObject<TDate>;\n\n /**\n * Subtract months, if count not specified subtract 1 month\n * @param count - Number of months count\n * @returns Itself for fluent API\n */\n subtractMonths(count?: number): DateApiObject<TDate>;\n\n /**\n * Updates value to start date and time of current week\n * @returns Itself for fluent API\n */\n startOfWeek(): DateApiObject<TDate>;\n\n /**\n * Updates value to end date and time of current week\n * @returns Itself for fluent API\n */\n endOfWeek(): DateApiObject<TDate>;\n\n /**\n * Add weeks, if count not specified adds 1 week\n * @param count - Number of weeks count\n * @returns Itself for fluent API\n */\n addWeeks(count?: number): DateApiObject<TDate>;\n\n /**\n * Subtract weeks, if count not specified subtract 1 week\n * @param count - Number of weeks count\n * @returns Itself for fluent API\n */\n subtractWeeks(count?: number): DateApiObject<TDate>;\n\n /**\n * Updates value to start date and time of current day\n * @returns Itself for fluent API\n */\n startOfDay(): DateApiObject<TDate>;\n\n /**\n * Updates value to end date and time of current day\n * @returns Itself for fluent API\n */\n endOfDay(): DateApiObject<TDate>;\n\n /**\n * Add days, if count not specified adds 1 day\n * @param count - Number of days count\n * @returns Itself for fluent API\n */\n addDays(count?: number): DateApiObject<TDate>;\n\n /**\n * Subtract days, if count not specified subtract 1 day\n * @param count - Number of days count\n * @returns Itself for fluent API\n */\n subtractDays(count?: number): DateApiObject<TDate>;\n\n /**\n * Gets number of days in month\n */\n daysInMonth(): number;\n\n /**\n * Gets year\n */\n year(): number;\n /**\n * Sets year\n * @param year - Year to be set\n */\n year(year: number): DateApiObject<TDate>;\n /**\n * Gets or sets year\n * @param year - If specified, sets year\n */\n year(year?: number): DateApiObject<TDate>|number;\n \n /**\n * Gets month\n */\n month(): number;\n /**\n * Sets month\n * @param month - Month to be set\n */\n month(month: number): DateApiObject<TDate>;\n /**\n * Gets or sets month\n * @param month - If specified, sets month\n */\n month(month?: number): DateApiObject<TDate>|number;\n\n /**\n * Gets day of month one based\n */\n dayOfMonth(): number;\n /**\n * Sets day of month one based\n * @param day - Day of month to be set\n */\n dayOfMonth(day: number): DateApiObject<TDate>;\n /**\n * Gets or sets day of month one based\n * @param day - If specified, sets day of month\n */\n dayOfMonth(day?: number): DateApiObject<TDate>|number;\n\n /**\n * Gets day of week zero based, first is monday\n */\n dayOfWeek(): number;\n /**\n * Sets day of week zero based, first is monday\n * @param day - Day of week to be set\n */\n dayOfWeek(day: number): DateApiObject<TDate>;\n /**\n * Gets or sets day of week zero based, first is monday\n * @param day - If specified, sets day of week\n */\n dayOfWeek(day?: number): number|DateApiObject<TDate>;\n\n /**\n * Gets indication whether current value is before 'date'\n * @param date - Date which is this date compared to\n */\n isBefore(date: TDate): boolean;\n\n /**\n * Gets indication whether current value is after 'date'\n * @param date - Date which is this date compared to\n */\n isAfter(date: TDate): boolean;\n\n /**\n * Gets number of days between this and provided date\n * @param date - Date which is used for computation of diff against\n */\n diffDays(date: TDate): number;\n\n /**\n * Compares whether this date is same week as provided date\n * @param date - Date which is used for comparison of same week\n */\n isSameWeek(date: TDate): boolean;\n\n /**\n * Compares whether this date is same decade as provided date\n * @param date - Date which is used for comparison of same decade\n */\n isSameDecade(date: TDate): boolean;\n\n /**\n * Compares whether this date is same year as provided date\n * @param date - Date which is used for comparison of same year\n */\n isSameYear(date: TDate): boolean;\n\n /**\n * Compares whether this date is same month as provided date\n * @param date - Date which is used for comparison of same month\n */\n isSameMonth(date: TDate): boolean;\n\n /**\n * Compares whether this date is same day as provided date\n * @param date - Date which is used for comparison of same day\n */\n isSameDay(date: TDate): boolean;\n\n /**\n * Creates clone of this instance, value and originalValue have same value and are cloned from value\n */\n clone(): DateApiObject<TDate>;\n\n /**\n * Creates clone of this instance, value and originalValue have same value and are cloned from originalValue\n */\n cloneOriginal(): DateApiObject<TDate>;\n\n /**\n * Updates originalValue, if value is not provided originalValue is set to value\n * @param value - Value to be set as original, or null (value will be used as value)\n * @returns Itself for fluent API\n */\n updateOriginal(value?: TDate): DateApiObject<TDate>;\n\n /**\n * Changes value to same value as originalValue\n * @returns Itself for fluent API\n */\n resetOriginal(): DateApiObject<TDate>;\n}\n\n/**\n * Date api abstraction, used for obtaining DateApi wrapper object\n */\nexport interface DateApi<TDate = any>\n{\n /**\n * Gets wrapping object used for manipulation\n * @param value - Value to be converted (parsed) and used for manipulation\n * @param format - Format string used for parsing string value\n */\n getValue(value: DateValue|TDate, format?: string): DateApiObject<TDate>;\n\n /**\n * Gets wrapping object used for manipulation instantiated to current date and time\n */\n now(): DateApiObject<TDate>;\n\n /**\n * Gets format string using pseudo format\n * @param pseudoFormat - Pseudo format token, used for obtaining 'date' or 'time' format string\n */\n getFormat(pseudoFormat: string): string;\n\n /**\n * Gets information \n */\n weekStartsOnMonday(): boolean;\n\n /**\n * Gets array of weekday names in short format, order of days is dependent on locale\n */\n weekdaysShort(): string[];\n}"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=datePositionParser.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePositionParser.interface.js","sourceRoot":"","sources":["../../../src/services/datePositionParser.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Parser used for parsing date using provided format and returning positions and selected date part\n */\nexport interface DatePositionParser\n{\n /**\n * Parse date as string and returns information about positions and selected part of date\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n parse(date: string, cursorPosition: number): DatePositionParserResult;\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to next part, if it was last part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n next(date: string, cursorPosition: number): null|DatePositionParserResult;\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to previous part, if it was first part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n previous(date: string, cursorPosition: number): null|DatePositionParserResult;\n}\n\n/**\n * Result of date position parsing\n */\nexport interface DatePositionParserResult\n{\n /**\n * Index of charater where returned part of date starts\n */\n positionFrom: number;\n\n /**\n * Index of charater where returned part of date ends\n */\n positionTo: number;\n\n /**\n * Type of part that is selected\n */\n part: string;\n}"]}
@@ -0,0 +1,227 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Service used for parsing date
5
+ */
6
+ export class DatePositionParserService {
7
+ //######################### public methods #########################
8
+ /**
9
+ * Creates parser instance for specified format
10
+ * @param format - Format to be used for parsing date string
11
+ */
12
+ createParser(format) {
13
+ return new DefaultDatePositionParser(format);
14
+ }
15
+ }
16
+ DatePositionParserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DatePositionParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ DatePositionParserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DatePositionParserService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DatePositionParserService, decorators: [{
19
+ type: Injectable,
20
+ args: [{ providedIn: 'root' }]
21
+ }] });
22
+ /**
23
+ * Default implementation of DatePositionParser
24
+ */
25
+ export class DefaultDatePositionParser {
26
+ //######################### constructor #########################
27
+ constructor(_format) {
28
+ this._format = _format;
29
+ //######################### protected fields #########################
30
+ /**
31
+ * Indication whether format contains separators
32
+ */
33
+ this._hasSeparator = false;
34
+ /**
35
+ * Array of date parts of parsed date format
36
+ */
37
+ this._datePartsIndexes = [];
38
+ /**
39
+ * Object storing indexes for strict date parts of parsed date format
40
+ */
41
+ this._strictDatePartsIndexes = {};
42
+ this._initialize();
43
+ }
44
+ //######################### public methods - implementation of DatePositionParser #########################
45
+ /**
46
+ * Parse date as string and returns information about position and selected part of date, while moving it to next part, if it was last part returns null
47
+ * @param date - String date to be parsed
48
+ * @param cursorPosition - Current cursor position
49
+ */
50
+ next(date, cursorPosition) {
51
+ //non strict format
52
+ if (this._hasSeparator) {
53
+ let useNext = false;
54
+ while (true) {
55
+ if (cursorPosition == date.length) {
56
+ return null;
57
+ }
58
+ if (useNext && !isNaN(+date[cursorPosition])) {
59
+ return this.parse(date, cursorPosition);
60
+ }
61
+ if (isNaN(+date[cursorPosition])) {
62
+ useNext = true;
63
+ }
64
+ cursorPosition++;
65
+ }
66
+ }
67
+ //strict format
68
+ else {
69
+ const indexes = Object.keys(this._strictDatePartsIndexes).map(itm => +itm);
70
+ for (const index of indexes) {
71
+ if (cursorPosition < index) {
72
+ return {
73
+ part: this._strictDatePartsIndexes[index].part,
74
+ positionFrom: index,
75
+ positionTo: index + this._strictDatePartsIndexes[index].length
76
+ };
77
+ }
78
+ }
79
+ }
80
+ return null;
81
+ }
82
+ /**
83
+ * Parse date as string and returns information about position and selected part of date, while moving it to previous part, if it was first part returns null
84
+ * @param date - String date to be parsed
85
+ * @param cursorPosition - Current cursor position
86
+ */
87
+ previous(date, cursorPosition) {
88
+ //non strict format
89
+ if (this._hasSeparator) {
90
+ let useNext = false;
91
+ while (true) {
92
+ if (cursorPosition < 0) {
93
+ return null;
94
+ }
95
+ if (useNext && !isNaN(+date[cursorPosition])) {
96
+ return this.parse(date, cursorPosition);
97
+ }
98
+ if (isNaN(+date[cursorPosition])) {
99
+ useNext = true;
100
+ }
101
+ cursorPosition--;
102
+ }
103
+ }
104
+ //strict format
105
+ else {
106
+ const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);
107
+ for (const index of indexes) {
108
+ if (cursorPosition > index) {
109
+ return {
110
+ part: this._strictDatePartsIndexes[index].part,
111
+ positionFrom: index,
112
+ positionTo: index + this._strictDatePartsIndexes[index].length
113
+ };
114
+ }
115
+ }
116
+ }
117
+ return null;
118
+ }
119
+ /**
120
+ * Parse date as string and returns information about positions and selected part of date
121
+ * @param date - String date to be parsed
122
+ * @param cursorPosition - Current cursor position
123
+ */
124
+ parse(date, cursorPosition) {
125
+ //non strict format
126
+ if (this._hasSeparator) {
127
+ //fix cursor position if is clicked on separator
128
+ if (cursorPosition != date.length &&
129
+ /[^0-9ɵ]/.test(date[cursorPosition]) &&
130
+ /[^0-9ɵ]/.test(date[cursorPosition - 1])) {
131
+ let breakCycle = false;
132
+ cursorPosition++;
133
+ while (/[^0-9ɵ]/.test(date[cursorPosition])) {
134
+ if (cursorPosition >= date.length) {
135
+ if (breakCycle) {
136
+ return {
137
+ part: '',
138
+ positionFrom: 0,
139
+ positionTo: 0
140
+ };
141
+ }
142
+ breakCycle = true;
143
+ cursorPosition = 0;
144
+ }
145
+ cursorPosition++;
146
+ }
147
+ }
148
+ const updateDate = [date.substr(0, cursorPosition), 'ɵ', date.substr(cursorPosition)].join('');
149
+ const indexed = updateDate.replace(/[^0-9ɵ]/g, ' ').split(' ');
150
+ let partIndex = 0;
151
+ let startPosition = 0;
152
+ let selectionLength = 0;
153
+ for (const itm of indexed) {
154
+ //this segment contains cursor
155
+ if (itm.indexOf('ɵ') >= 0) {
156
+ selectionLength = itm.length - 1;
157
+ break;
158
+ }
159
+ startPosition++;
160
+ //separator
161
+ if (!itm.length) {
162
+ continue;
163
+ }
164
+ partIndex++;
165
+ startPosition += itm.length;
166
+ }
167
+ return {
168
+ part: this._datePartsIndexes[partIndex],
169
+ positionFrom: startPosition,
170
+ positionTo: startPosition + selectionLength
171
+ };
172
+ }
173
+ //strict format
174
+ else {
175
+ const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);
176
+ for (const index of indexes) {
177
+ if (cursorPosition >= index) {
178
+ return {
179
+ part: this._strictDatePartsIndexes[index].part,
180
+ positionFrom: index,
181
+ positionTo: index + this._strictDatePartsIndexes[index].length
182
+ };
183
+ }
184
+ }
185
+ }
186
+ return {
187
+ part: '',
188
+ positionFrom: 0,
189
+ positionTo: 0
190
+ };
191
+ }
192
+ /**
193
+ * Initialize parser, process format
194
+ */
195
+ _initialize() {
196
+ this._hasSeparator = /[^yqmwdhs]/i.test(this._format);
197
+ //non strict format
198
+ if (this._hasSeparator) {
199
+ this._datePartsIndexes = this._format.replace(/[^yqmwdhs]+/gi, ' ')
200
+ .split(' ')
201
+ .filter(itm => !!itm)
202
+ .map(itm => itm[0]);
203
+ }
204
+ //strict format
205
+ else {
206
+ let lastPart = null;
207
+ let lastIndex = 0;
208
+ for (let x = 0; x < this._format.length; x++) {
209
+ //next part
210
+ if (this._format[x] != lastPart) {
211
+ if (x > 0) {
212
+ this._strictDatePartsIndexes[lastIndex].length = x - lastIndex;
213
+ }
214
+ lastIndex = x;
215
+ lastPart = this._format[x];
216
+ this._strictDatePartsIndexes[x] =
217
+ {
218
+ length: 0,
219
+ part: this._format[x]
220
+ };
221
+ }
222
+ }
223
+ this._strictDatePartsIndexes[lastIndex].length = this._format.length - lastIndex;
224
+ }
225
+ }
226
+ }
227
+ //# sourceMappingURL=datePositionParser.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datePositionParser.service.js","sourceRoot":"","sources":["../../../src/services/datePositionParser.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\n\nimport {DatePositionParser, DatePositionParserResult} from './datePositionParser.interface';\n\n/**\n * Service used for parsing date\n */\n@Injectable({providedIn: 'root'})\nexport class DatePositionParserService\n{\n //######################### public methods #########################\n\n /**\n * Creates parser instance for specified format\n * @param format - Format to be used for parsing date string\n */\n public createParser(format: string): DatePositionParser\n {\n return new DefaultDatePositionParser(format);\n }\n}\n\n/**\n * Default implementation of DatePositionParser\n */\nexport class DefaultDatePositionParser implements DatePositionParser\n{\n //######################### protected fields #########################\n\n /**\n * Indication whether format contains separators\n */\n protected _hasSeparator: boolean = false;\n\n /**\n * Array of date parts of parsed date format\n */\n protected _datePartsIndexes: string[] = [];\n\n /**\n * Object storing indexes for strict date parts of parsed date format\n */\n protected _strictDatePartsIndexes: {[index: number]: {part: string, length: number}} = {};\n\n //######################### constructor #########################\n constructor(protected _format: string)\n {\n this._initialize();\n }\n\n //######################### public methods - implementation of DatePositionParser #########################\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to next part, if it was last part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public next(date: string, cursorPosition: number): null|DatePositionParserResult\n {\n //non strict format\n if(this._hasSeparator)\n {\n let useNext = false;\n\n while(true)\n {\n if(cursorPosition == date.length)\n {\n return null;\n }\n\n if(useNext && !isNaN(+date[cursorPosition]))\n {\n return this.parse(date, cursorPosition);\n }\n\n if(isNaN(+date[cursorPosition]))\n {\n useNext = true;\n }\n\n cursorPosition++;\n }\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition < index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Parse date as string and returns information about position and selected part of date, while moving it to previous part, if it was first part returns null\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public previous(date: string, cursorPosition: number): null|DatePositionParserResult\n {\n //non strict format\n if(this._hasSeparator)\n {\n let useNext = false;\n\n while(true)\n {\n if(cursorPosition < 0)\n {\n return null;\n }\n\n if(useNext && !isNaN(+date[cursorPosition]))\n {\n return this.parse(date, cursorPosition);\n }\n\n if(isNaN(+date[cursorPosition]))\n {\n useNext = true;\n }\n\n cursorPosition--;\n }\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition > index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return null;\n }\n\n /**\n * Parse date as string and returns information about positions and selected part of date\n * @param date - String date to be parsed\n * @param cursorPosition - Current cursor position\n */\n public parse(date: string, cursorPosition: number): DatePositionParserResult\n {\n //non strict format\n if(this._hasSeparator)\n {\n //fix cursor position if is clicked on separator\n if(cursorPosition != date.length &&\n /[^0-9ɵ]/.test(date[cursorPosition]) &&\n /[^0-9ɵ]/.test(date[cursorPosition - 1]))\n {\n let breakCycle = false;\n cursorPosition++;\n\n while(/[^0-9ɵ]/.test(date[cursorPosition]))\n {\n if(cursorPosition >= date.length)\n {\n if(breakCycle)\n {\n return {\n part: '',\n positionFrom: 0,\n positionTo: 0\n };\n }\n\n breakCycle = true;\n cursorPosition = 0;\n }\n\n cursorPosition++;\n }\n }\n\n const updateDate = [date.substr(0, cursorPosition), 'ɵ', date.substr(cursorPosition)].join('');\n const indexed = updateDate.replace(/[^0-9ɵ]/g, ' ').split(' ');\n let partIndex = 0;\n let startPosition = 0;\n let selectionLength = 0;\n\n for(const itm of indexed)\n {\n //this segment contains cursor\n if(itm.indexOf('ɵ') >= 0)\n {\n selectionLength = itm.length - 1;\n\n break;\n }\n\n startPosition++;\n\n //separator\n if(!itm.length)\n {\n continue;\n }\n\n partIndex++;\n startPosition += itm.length;\n }\n\n return {\n part: this._datePartsIndexes[partIndex],\n positionFrom: startPosition,\n positionTo: startPosition + selectionLength\n };\n }\n //strict format\n else\n {\n const indexes = Object.keys(this._strictDatePartsIndexes).reverse().map(itm => +itm);\n\n for(const index of indexes)\n {\n if(cursorPosition >= index)\n {\n return {\n part: this._strictDatePartsIndexes[index].part,\n positionFrom: index,\n positionTo: index + this._strictDatePartsIndexes[index].length\n };\n }\n }\n }\n\n return {\n part: '',\n positionFrom: 0,\n positionTo: 0\n };\n }\n\n /**\n * Initialize parser, process format\n */\n protected _initialize()\n {\n this._hasSeparator = /[^yqmwdhs]/i.test(this._format);\n\n //non strict format\n if(this._hasSeparator)\n {\n this._datePartsIndexes = this._format.replace(/[^yqmwdhs]+/gi, ' ')\n .split(' ')\n .filter(itm => !!itm)\n .map(itm => itm[0]);\n }\n //strict format\n else\n {\n let lastPart: string|null = null;\n let lastIndex: number = 0;\n\n for(let x = 0; x < this._format.length; x++)\n {\n //next part\n if(this._format[x] != lastPart)\n {\n if(x > 0)\n {\n this._strictDatePartsIndexes[lastIndex].length = x - lastIndex;\n }\n\n lastIndex = x;\n lastPart = this._format[x];\n\n this._strictDatePartsIndexes[x] =\n {\n length: 0,\n part: this._format[x]\n };\n }\n }\n\n this._strictDatePartsIndexes[lastIndex].length = this._format.length - lastIndex;\n }\n }\n}"]}
@@ -0,0 +1,65 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { isString } from '@jscrpt/common';
3
+ import { DATE_API } from '../misc/tokens';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service used for parsing relative date time strings
7
+ */
8
+ export class DateTimeRelativeParser {
9
+ //######################### constructor #########################
10
+ constructor(_injector) {
11
+ this._injector = _injector;
12
+ }
13
+ //######################### public methods #########################
14
+ /**
15
+ * Tries to parse relative value and returns parsed TDate, otherwise returns input value
16
+ * @param value - Value to be parsed
17
+ */
18
+ parse(value) {
19
+ const regex = /([+-])\s*(\d+)\s*([hdwmy])/;
20
+ //relative date provided
21
+ if (isString(value) && regex.test(value)) {
22
+ const matches = regex.exec(value);
23
+ const operation = matches[1];
24
+ const amount = matches[2];
25
+ const period = matches[3];
26
+ this._dateApi = this._dateApi ?? this._injector.get(DATE_API);
27
+ const now = this._dateApi.now();
28
+ switch (period) {
29
+ case 'h':
30
+ {
31
+ break;
32
+ }
33
+ case 'd':
34
+ {
35
+ operation == '+' ? now.addDays(+amount).endOfDay() : now.subtractDays(+amount).startOfDay();
36
+ break;
37
+ }
38
+ case 'w':
39
+ {
40
+ operation == '+' ? now.addWeeks(+amount).endOfDay() : now.subtractWeeks(+amount).startOfDay();
41
+ break;
42
+ }
43
+ case 'm':
44
+ {
45
+ operation == '+' ? now.addMonths(+amount).endOfDay() : now.subtractMonths(+amount).startOfDay();
46
+ break;
47
+ }
48
+ case 'y':
49
+ {
50
+ operation == '+' ? now.addYears(+amount).endOfDay() : now.subtractYears(+amount).startOfDay();
51
+ break;
52
+ }
53
+ }
54
+ value = now.value;
55
+ }
56
+ return value;
57
+ }
58
+ }
59
+ DateTimeRelativeParser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeRelativeParser, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ DateTimeRelativeParser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeRelativeParser, providedIn: 'root' });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateTimeRelativeParser, decorators: [{
62
+ type: Injectable,
63
+ args: [{ providedIn: 'root' }]
64
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
65
+ //# sourceMappingURL=dateTimeRelativeParser.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateTimeRelativeParser.service.js","sourceRoot":"","sources":["../../../src/services/dateTimeRelativeParser.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;GAEG;AAEH,MAAM,OAAO,sBAAsB;IAS/B,iEAAiE;IACjE,YAAsB,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAEzC,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACI,KAAK,CAAC,KAAsB;QAE/B,MAAM,KAAK,GAAG,4BAA4B,CAAC;QAE3C,wBAAwB;QACxB,IAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EACvC;YACI,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,OAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,OAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAEhC,QAAO,MAAM,EACb;gBACI,KAAK,GAAG;oBACR;wBACI,MAAM;qBACT;gBACD,KAAK,GAAG;oBACR;wBACI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;wBAE5F,MAAM;qBACT;gBACD,KAAK,GAAG;oBACR;wBACI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;wBAE9F,MAAM;qBACT;gBACD,KAAK,GAAG;oBACR;wBACI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;wBAEhG,MAAM;qBACT;gBACD,KAAK,GAAG;oBACR;wBACI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;wBAE9F,MAAM;qBACT;aACJ;YAED,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SACrB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;;mHAtEQ,sBAAsB;uHAAtB,sBAAsB,cADV,MAAM;2FAClB,sBAAsB;kBADlC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC","sourcesContent":["import {Injectable, Injector} from '@angular/core';\nimport {isString} from '@jscrpt/common';\n\nimport {DATE_API} from '../misc/tokens';\nimport {DateApi, DateValue} from './dateApi.interface';\n\n/**\n * Service used for parsing relative date time strings\n */\n@Injectable({providedIn: 'root'})\nexport class DateTimeRelativeParser<TDate = any>\n{\n //######################### protected fields #########################\n \n /**\n * Date api for handling\n */\n protected _dateApi?: DateApi<TDate>;\n\n //######################### constructor #########################\n constructor(protected _injector: Injector)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Tries to parse relative value and returns parsed TDate, otherwise returns input value\n * @param value - Value to be parsed\n */\n public parse(value: TDate|DateValue): TDate|DateValue\n {\n const regex = /([+-])\\s*(\\d+)\\s*([hdwmy])/;\n\n //relative date provided\n if(isString(value) && regex.test(value))\n {\n const matches = regex.exec(value);\n const operation = matches![1];\n const amount = matches![2];\n const period = matches![3];\n this._dateApi = this._dateApi ?? this._injector.get(DATE_API);\n const now = this._dateApi.now();\n\n switch(period)\n {\n case 'h':\n {\n break;\n }\n case 'd':\n {\n operation == '+' ? now.addDays(+amount).endOfDay() : now.subtractDays(+amount).startOfDay();\n\n break;\n }\n case 'w':\n {\n operation == '+' ? now.addWeeks(+amount).endOfDay() : now.subtractWeeks(+amount).startOfDay();\n\n break;\n }\n case 'm':\n {\n operation == '+' ? now.addMonths(+amount).endOfDay() : now.subtractMonths(+amount).startOfDay();\n\n break;\n }\n case 'y':\n {\n operation == '+' ? now.addYears(+amount).endOfDay() : now.subtractYears(+amount).startOfDay();\n\n break;\n }\n }\n\n value = now.value;\n }\n\n return value;\n }\n}"]}
@@ -0,0 +1,58 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { DATE_API } from '../misc/tokens';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Class used for obtaining DateTimeValue for various formats
6
+ */
7
+ export class DateValueProvider {
8
+ //######################### constructor #########################
9
+ constructor(_dateApi) {
10
+ this._dateApi = _dateApi;
11
+ }
12
+ //######################### public methods #########################
13
+ /**
14
+ * Gets DateTimeValue from single value based on format
15
+ * @param value - Current value to be converted to ranged value
16
+ * @param format - Format that is requested to be displayed, it tells what range should be created
17
+ */
18
+ getValue(value, format) {
19
+ const val = this._dateApi.getValue(value, format);
20
+ const fullFormat = this._dateApi.getFormat(format);
21
+ let start = value;
22
+ let end;
23
+ //day
24
+ if (fullFormat.indexOf('d') >= 0 || fullFormat.indexOf('D') >= 0) {
25
+ start = val.startOfDay().value;
26
+ end = val.endOfDay().value;
27
+ }
28
+ //week
29
+ else if (fullFormat.indexOf('w') >= 0) {
30
+ start = val.startOfWeek().value;
31
+ end = val.endOfWeek().value;
32
+ }
33
+ //month
34
+ else if (fullFormat.indexOf('M') >= 0) {
35
+ start = val.startOfMonth().value;
36
+ end = val.endOfMonth().value;
37
+ }
38
+ //year
39
+ else if (fullFormat.indexOf('Y') >= 0 || fullFormat.indexOf('y') >= 0) {
40
+ start = val.startOfYear().value;
41
+ end = val.endOfYear().value;
42
+ }
43
+ return {
44
+ from: start,
45
+ to: end
46
+ };
47
+ }
48
+ }
49
+ DateValueProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateValueProvider, deps: [{ token: DATE_API }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ DateValueProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateValueProvider, providedIn: 'root' });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: DateValueProvider, decorators: [{
52
+ type: Injectable,
53
+ args: [{ providedIn: 'root' }]
54
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
55
+ type: Inject,
56
+ args: [DATE_API]
57
+ }] }]; } });
58
+ //# sourceMappingURL=dateValueProvider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateValueProvider.service.js","sourceRoot":"","sources":["../../../src/services/dateValueProvider.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;;AAGxC;;GAEG;AAEH,MAAM,OAAO,iBAAiB;IAE1B,iEAAiE;IACjE,YAAwC,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAEhE,CAAC;IAED,oEAAoE;IAEpE;;;;OAIG;IACI,QAAQ,CAAC,KAAY,EAAE,MAAc;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,KAAK,GAAU,KAAK,CAAC;QACzB,IAAI,GAAU,CAAC;QAEf,KAAK;QACL,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAC/D;YACI,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;YAC/B,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAC9B;QACD,MAAM;aACD,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;SAC/B;QACD,OAAO;aACF,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpC;YACI,KAAK,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACjC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;SAChC;QACD,MAAM;aACD,IAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACpE;YACI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;SAC/B;QAED,OAAO;YACH,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,GAAI;SACX,CAAC;IACN,CAAC;;8GAlDQ,iBAAiB,kBAGN,QAAQ;kHAHnB,iBAAiB,cADL,MAAM;2FAClB,iBAAiB;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAIf,MAAM;2BAAC,QAAQ","sourcesContent":["import {Inject, Injectable} from '@angular/core';\n\nimport {DateTimeValue} from '../misc/datetime.interface';\nimport {DATE_API} from '../misc/tokens';\nimport {DateApi} from './dateApi.interface';\n\n/**\n * Class used for obtaining DateTimeValue for various formats\n */\n@Injectable({providedIn: 'root'})\nexport class DateValueProvider<TDate = any>\n{\n //######################### constructor #########################\n constructor(@Inject(DATE_API) protected _dateApi: DateApi<TDate>)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets DateTimeValue from single value based on format\n * @param value - Current value to be converted to ranged value\n * @param format - Format that is requested to be displayed, it tells what range should be created\n */\n public getValue(value: TDate, format: string): DateTimeValue<TDate>\n {\n const val = this._dateApi.getValue(value, format);\n const fullFormat = this._dateApi.getFormat(format);\n let start: TDate = value;\n let end: TDate;\n\n //day\n if(fullFormat.indexOf('d') >= 0 || fullFormat.indexOf('D') >= 0)\n {\n start = val.startOfDay().value;\n end = val.endOfDay().value;\n }\n //week\n else if(fullFormat.indexOf('w') >= 0)\n {\n start = val.startOfWeek().value;\n end = val.endOfWeek().value;\n }\n //month\n else if(fullFormat.indexOf('M') >= 0)\n {\n start = val.startOfMonth().value;\n end = val.endOfMonth().value;\n }\n //year\n else if(fullFormat.indexOf('Y') >= 0 || fullFormat.indexOf('y') >= 0)\n {\n start = val.startOfYear().value;\n end = val.endOfYear().value;\n }\n\n return {\n from: start,\n to: end!\n };\n }\n}"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formatProvider.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatProvider.interface.js","sourceRoot":"","sources":["../../../src/services/formatProvider.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Format provider used for obtaining some special formats 'placeholders'\n */\nexport interface FormatProvider\n{\n /**\n * Format placeholder for displaying date\n */\n readonly date: string;\n\n /**\n * Format placeholder for displaying date and time\n */\n readonly dateTime: string;\n\n /**\n * Format placeholder for displaying time\n */\n readonly time: string;\n}"]}
@@ -0,0 +1,4 @@
1
+ export * from './dateApi.interface';
2
+ export * from './formatProvider.interface';
3
+ export * from './datePositionParser.interface';
4
+ //# sourceMappingURL=index.js.map