novo-elements 11.4.0 → 12.0.0

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 (680) hide show
  1. package/addons/ace-editor/index.d.ts +49 -2
  2. package/addons/ckeditor/index.d.ts +58 -2
  3. package/addons/code-editor/index.d.ts +43 -2
  4. package/elements/agenda/index.d.ts +601 -6
  5. package/elements/aside/index.d.ts +61 -5
  6. package/elements/autocomplete/index.d.ts +105 -2
  7. package/elements/avatar/index.d.ts +42 -3
  8. package/elements/breadcrumbs/index.d.ts +87 -6
  9. package/elements/button/index.d.ts +65 -2
  10. package/elements/calendar/index.d.ts +200 -6
  11. package/elements/card/index.d.ts +69 -2
  12. package/elements/category-dropdown/index.d.ts +44 -2
  13. package/elements/checkbox/index.d.ts +117 -3
  14. package/elements/chips/index.d.ts +665 -9
  15. package/elements/color-picker/index.d.ts +142 -4
  16. package/elements/common/index.d.ts +745 -19
  17. package/elements/data-table/index.d.ts +939 -15
  18. package/elements/date-picker/index.d.ts +410 -5
  19. package/elements/date-time-picker/index.d.ts +113 -3
  20. package/elements/divider/index.d.ts +25 -2
  21. package/elements/drag-drop/index.d.ts +74 -2
  22. package/elements/dropdown/index.d.ts +117 -2
  23. package/elements/expansion/index.d.ts +161 -6
  24. package/elements/field/index.d.ts +513 -14
  25. package/elements/flex/index.d.ts +53 -4
  26. package/elements/form/index.d.ts +1312 -17
  27. package/elements/header/index.d.ts +51 -2
  28. package/elements/icon/index.d.ts +37 -2
  29. package/elements/layout/index.d.ts +306 -6
  30. package/elements/list/index.d.ts +59 -2
  31. package/elements/loading/index.d.ts +64 -2
  32. package/elements/menu/index.d.ts +202 -8
  33. package/elements/modal/index.d.ts +96 -6
  34. package/elements/multi-picker/index.d.ts +122 -2
  35. package/elements/non-ideal-state/index.d.ts +22 -2
  36. package/elements/picker/index.d.ts +387 -3
  37. package/elements/places/index.d.ts +121 -3
  38. package/elements/popover/index.d.ts +93 -3
  39. package/elements/progress/index.d.ts +85 -4
  40. package/elements/query-builder/index.d.ts +625 -17
  41. package/elements/quick-note/index.d.ts +187 -3
  42. package/elements/radio/index.d.ts +147 -4
  43. package/elements/search/index.d.ts +85 -2
  44. package/elements/select/index.d.ts +248 -3
  45. package/elements/select-search/index.d.ts +268 -3
  46. package/elements/simple-table/index.d.ts +544 -12
  47. package/elements/simple-table/table.scss +10 -10
  48. package/elements/slider/index.d.ts +32 -2
  49. package/elements/stepper/index.d.ts +134 -7
  50. package/elements/switch/index.d.ts +35 -2
  51. package/elements/tabbed-group-picker/index.d.ts +147 -2
  52. package/elements/tabs/index.d.ts +105 -2
  53. package/elements/tiles/index.d.ts +45 -2
  54. package/elements/time-picker/index.d.ts +141 -3
  55. package/elements/tip-well/index.d.ts +37 -2
  56. package/elements/toast/index.d.ts +94 -3
  57. package/elements/toolbar/index.d.ts +32 -2
  58. package/elements/tooltip/index.d.ts +70 -3
  59. package/elements/unless/index.d.ts +26 -2
  60. package/elements/value/index.d.ts +142 -4
  61. package/fesm2022/novo-elements-addons-ace-editor.mjs +7 -7
  62. package/fesm2022/novo-elements-addons-ace-editor.mjs.map +1 -1
  63. package/fesm2022/novo-elements-addons-ckeditor.mjs +7 -7
  64. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  65. package/fesm2022/novo-elements-addons-code-editor.mjs +7 -7
  66. package/fesm2022/novo-elements-addons-code-editor.mjs.map +1 -1
  67. package/fesm2022/novo-elements-elements-agenda.mjs +61 -61
  68. package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
  69. package/fesm2022/novo-elements-elements-aside.mjs +17 -16
  70. package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
  71. package/fesm2022/novo-elements-elements-autocomplete.mjs +7 -7
  72. package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
  73. package/fesm2022/novo-elements-elements-avatar.mjs +10 -10
  74. package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
  75. package/fesm2022/novo-elements-elements-breadcrumbs.mjs +13 -13
  76. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  77. package/fesm2022/novo-elements-elements-button.mjs +12 -12
  78. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  79. package/fesm2022/novo-elements-elements-calendar.mjs +25 -25
  80. package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
  81. package/fesm2022/novo-elements-elements-card.mjs +19 -19
  82. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  83. package/fesm2022/novo-elements-elements-category-dropdown.mjs +7 -7
  84. package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
  85. package/fesm2022/novo-elements-elements-checkbox.mjs +10 -10
  86. package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
  87. package/fesm2022/novo-elements-elements-chips.mjs +47 -39
  88. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  89. package/fesm2022/novo-elements-elements-color-picker.mjs +13 -13
  90. package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
  91. package/fesm2022/novo-elements-elements-common.mjs +116 -107
  92. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  93. package/fesm2022/novo-elements-elements-data-table.mjs +77 -77
  94. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  95. package/fesm2022/novo-elements-elements-date-picker.mjs +17 -17
  96. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  97. package/fesm2022/novo-elements-elements-date-time-picker.mjs +11 -11
  98. package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
  99. package/fesm2022/novo-elements-elements-divider.mjs +7 -7
  100. package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
  101. package/fesm2022/novo-elements-elements-drag-drop.mjs +11 -11
  102. package/fesm2022/novo-elements-elements-drag-drop.mjs.map +1 -1
  103. package/fesm2022/novo-elements-elements-dropdown.mjs +19 -19
  104. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  105. package/fesm2022/novo-elements-elements-expansion.mjs +26 -26
  106. package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
  107. package/fesm2022/novo-elements-elements-field.mjs +46 -46
  108. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  109. package/fesm2022/novo-elements-elements-flex.mjs +16 -16
  110. package/fesm2022/novo-elements-elements-flex.mjs.map +1 -1
  111. package/fesm2022/novo-elements-elements-form.mjs +53 -53
  112. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  113. package/fesm2022/novo-elements-elements-header.mjs +16 -16
  114. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  115. package/fesm2022/novo-elements-elements-icon.mjs +7 -7
  116. package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
  117. package/fesm2022/novo-elements-elements-layout.mjs +19 -19
  118. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  119. package/fesm2022/novo-elements-elements-list.mjs +28 -28
  120. package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
  121. package/fesm2022/novo-elements-elements-loading.mjs +19 -19
  122. package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
  123. package/fesm2022/novo-elements-elements-menu.mjs +19 -19
  124. package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
  125. package/fesm2022/novo-elements-elements-modal.mjs +26 -23
  126. package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
  127. package/fesm2022/novo-elements-elements-multi-picker.mjs +7 -7
  128. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  129. package/fesm2022/novo-elements-elements-non-ideal-state.mjs +7 -7
  130. package/fesm2022/novo-elements-elements-non-ideal-state.mjs.map +1 -1
  131. package/fesm2022/novo-elements-elements-picker.mjs +42 -39
  132. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  133. package/fesm2022/novo-elements-elements-places.mjs +10 -10
  134. package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
  135. package/fesm2022/novo-elements-elements-popover.mjs +10 -10
  136. package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
  137. package/fesm2022/novo-elements-elements-progress.mjs +10 -10
  138. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  139. package/fesm2022/novo-elements-elements-query-builder.mjs +88 -88
  140. package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
  141. package/fesm2022/novo-elements-elements-quick-note.mjs +10 -10
  142. package/fesm2022/novo-elements-elements-quick-note.mjs.map +1 -1
  143. package/fesm2022/novo-elements-elements-radio.mjs +10 -10
  144. package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
  145. package/fesm2022/novo-elements-elements-search.mjs +7 -7
  146. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  147. package/fesm2022/novo-elements-elements-select-search.mjs +10 -10
  148. package/fesm2022/novo-elements-elements-select-search.mjs.map +1 -1
  149. package/fesm2022/novo-elements-elements-select.mjs +23 -19
  150. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  151. package/fesm2022/novo-elements-elements-simple-table.mjs +119 -93
  152. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  153. package/fesm2022/novo-elements-elements-slider.mjs +7 -7
  154. package/fesm2022/novo-elements-elements-slider.mjs.map +1 -1
  155. package/fesm2022/novo-elements-elements-stepper.mjs +34 -34
  156. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  157. package/fesm2022/novo-elements-elements-switch.mjs +7 -7
  158. package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
  159. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +7 -7
  160. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  161. package/fesm2022/novo-elements-elements-tabs.mjs +26 -26
  162. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  163. package/fesm2022/novo-elements-elements-tiles.mjs +7 -7
  164. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  165. package/fesm2022/novo-elements-elements-time-picker.mjs +10 -10
  166. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  167. package/fesm2022/novo-elements-elements-tip-well.mjs +7 -7
  168. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  169. package/fesm2022/novo-elements-elements-toast.mjs +10 -10
  170. package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
  171. package/fesm2022/novo-elements-elements-toolbar.mjs +10 -10
  172. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  173. package/fesm2022/novo-elements-elements-tooltip.mjs +12 -12
  174. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  175. package/fesm2022/novo-elements-elements-unless.mjs +7 -7
  176. package/fesm2022/novo-elements-elements-unless.mjs.map +1 -1
  177. package/fesm2022/novo-elements-elements-value.mjs +14 -14
  178. package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
  179. package/fesm2022/novo-elements-pipes.mjs +35 -35
  180. package/fesm2022/novo-elements-pipes.mjs.map +1 -1
  181. package/fesm2022/novo-elements-services.mjs +24 -24
  182. package/fesm2022/novo-elements-services.mjs.map +1 -1
  183. package/fesm2022/novo-elements-utils.mjs +4 -4
  184. package/fesm2022/novo-elements-utils.mjs.map +1 -1
  185. package/fesm2022/novo-elements.mjs +9 -8
  186. package/fesm2022/novo-elements.mjs.map +1 -1
  187. package/index.d.ts +27 -3
  188. package/package.json +17 -17
  189. package/pipes/index.d.ts +75 -7
  190. package/services/index.d.ts +602 -9
  191. package/utils/index.d.ts +1631 -12
  192. package/addons/ace-editor/AceEditor.d.ts +0 -42
  193. package/addons/ace-editor/AceEditor.module.d.ts +0 -8
  194. package/addons/ckeditor/CKEditor.d.ts +0 -52
  195. package/addons/ckeditor/CKEditor.module.d.ts +0 -9
  196. package/addons/code-editor/CodeEditor.d.ts +0 -32
  197. package/addons/code-editor/CodeEditor.module.d.ts +0 -9
  198. package/elements/agenda/Agenda.module.d.ts +0 -29
  199. package/elements/agenda/common/AgendaDateChange.d.ts +0 -28
  200. package/elements/agenda/common/EventTypeLegend.d.ts +0 -10
  201. package/elements/agenda/common/index.d.ts +0 -2
  202. package/elements/agenda/day/AgendaAllDayEvent.d.ts +0 -10
  203. package/elements/agenda/day/AgendaDayEvent.d.ts +0 -11
  204. package/elements/agenda/day/AgendaDayView.d.ts +0 -151
  205. package/elements/agenda/day/AgendaHourSegment.d.ts +0 -10
  206. package/elements/agenda/day/index.d.ts +0 -4
  207. package/elements/agenda/month/AgendaMonthDay.d.ts +0 -17
  208. package/elements/agenda/month/AgendaMonthHeader.d.ts +0 -17
  209. package/elements/agenda/month/AgendaMonthView.d.ts +0 -113
  210. package/elements/agenda/month/index.d.ts +0 -3
  211. package/elements/agenda/pipe/DayOfMonth.pipe.d.ts +0 -9
  212. package/elements/agenda/pipe/EndOfWeekDisplayPipe.pipe.d.ts +0 -9
  213. package/elements/agenda/pipe/Hours.pipe.d.ts +0 -9
  214. package/elements/agenda/pipe/Month.pipe.d.ts +0 -9
  215. package/elements/agenda/pipe/MonthDay.pipe.d.ts +0 -9
  216. package/elements/agenda/pipe/Weekday.pipe.d.ts +0 -9
  217. package/elements/agenda/pipe/Year.pipe.d.ts +0 -9
  218. package/elements/agenda/pipe/index.d.ts +0 -7
  219. package/elements/agenda/week/AgendaWeekEvent.d.ts +0 -11
  220. package/elements/agenda/week/AgendaWeekHeader.d.ts +0 -17
  221. package/elements/agenda/week/AgendaWeekView.d.ts +0 -159
  222. package/elements/agenda/week/index.d.ts +0 -3
  223. package/elements/aside/aside-ref.d.ts +0 -17
  224. package/elements/aside/aside.animation.d.ts +0 -1
  225. package/elements/aside/aside.component.d.ts +0 -18
  226. package/elements/aside/aside.module.d.ts +0 -9
  227. package/elements/aside/aside.service.d.ts +0 -16
  228. package/elements/autocomplete/autocomplete.component.d.ts +0 -92
  229. package/elements/autocomplete/autocomplete.module.d.ts +0 -12
  230. package/elements/avatar/Avatar.d.ts +0 -22
  231. package/elements/avatar/Avatar.module.d.ts +0 -9
  232. package/elements/avatar/AvatarStack.d.ts +0 -12
  233. package/elements/breadcrumbs/Breadcrumb.d.ts +0 -13
  234. package/elements/breadcrumbs/Breadcrumb.module.d.ts +0 -15
  235. package/elements/breadcrumbs/Breadcrumb.service.d.ts +0 -9
  236. package/elements/breadcrumbs/Breadcrumb.tokens.d.ts +0 -13
  237. package/elements/breadcrumbs/Breadcrumb.types.d.ts +0 -18
  238. package/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.d.ts +0 -23
  239. package/elements/breadcrumbs/breadcrumb-item/index.d.ts +0 -1
  240. package/elements/button/Button.d.ts +0 -55
  241. package/elements/button/Button.module.d.ts +0 -8
  242. package/elements/calendar/Calendar.module.d.ts +0 -15
  243. package/elements/calendar/calendar.component.d.ts +0 -57
  244. package/elements/calendar/month-select/month-select.component.d.ts +0 -18
  245. package/elements/calendar/month-view/month-view.component.d.ts +0 -60
  246. package/elements/calendar/strategies/default-selection.strategy.d.ts +0 -17
  247. package/elements/calendar/strategies/index.d.ts +0 -4
  248. package/elements/calendar/strategies/multi-date-selection.strategy.d.ts +0 -9
  249. package/elements/calendar/strategies/range-selection.strategy.d.ts +0 -9
  250. package/elements/calendar/strategies/week-selection.strategy.d.ts +0 -9
  251. package/elements/calendar/year-select/year-select.component.d.ts +0 -20
  252. package/elements/card/Card.d.ts +0 -55
  253. package/elements/card/Card.module.d.ts +0 -12
  254. package/elements/category-dropdown/CategoryDropdown.d.ts +0 -32
  255. package/elements/category-dropdown/CategoryDropdown.module.d.ts +0 -10
  256. package/elements/checkbox/CheckList.d.ts +0 -23
  257. package/elements/checkbox/Checkbox.d.ts +0 -84
  258. package/elements/checkbox/Checkbox.module.d.ts +0 -11
  259. package/elements/chips/Chip.d.ts +0 -164
  260. package/elements/chips/ChipDefaults.d.ts +0 -8
  261. package/elements/chips/ChipInput.d.ts +0 -77
  262. package/elements/chips/ChipList.d.ts +0 -293
  263. package/elements/chips/ChipTextControl.d.ts +0 -14
  264. package/elements/chips/Chips.d.ts +0 -91
  265. package/elements/chips/Chips.module.d.ts +0 -19
  266. package/elements/chips/RowChips.d.ts +0 -17
  267. package/elements/chips/pipe/AvatarType.pipe.d.ts +0 -7
  268. package/elements/chips/pipe/index.d.ts +0 -1
  269. package/elements/color-picker/color-input.component.d.ts +0 -57
  270. package/elements/color-picker/color-picker.component.d.ts +0 -41
  271. package/elements/color-picker/color-picker.module.d.ts +0 -15
  272. package/elements/color-picker/color-swatch.component.d.ts +0 -31
  273. package/elements/common/common.module.d.ts +0 -24
  274. package/elements/common/directives/accent.directive.d.ts +0 -14
  275. package/elements/common/directives/bg.directive.d.ts +0 -11
  276. package/elements/common/directives/border.directive.d.ts +0 -29
  277. package/elements/common/directives/color.directive.d.ts +0 -11
  278. package/elements/common/directives/fill.directive.d.ts +0 -10
  279. package/elements/common/directives/flex.directive.d.ts +0 -12
  280. package/elements/common/directives/space.directive.d.ts +0 -54
  281. package/elements/common/directives/switch-cases.directive.d.ts +0 -16
  282. package/elements/common/directives/theme.directive.d.ts +0 -10
  283. package/elements/common/directives/visible.directive.d.ts +0 -10
  284. package/elements/common/error/error-options.d.ts +0 -14
  285. package/elements/common/mixins/color.mixin.d.ts +0 -15
  286. package/elements/common/mixins/constructor.d.ts +0 -9
  287. package/elements/common/mixins/disabled.mixin.d.ts +0 -10
  288. package/elements/common/mixins/error-state.mixin.d.ts +0 -25
  289. package/elements/common/mixins/index.d.ts +0 -9
  290. package/elements/common/mixins/overlay.mixin.d.ts +0 -17
  291. package/elements/common/mixins/required.mixin.d.ts +0 -10
  292. package/elements/common/mixins/size.mixin.d.ts +0 -15
  293. package/elements/common/mixins/tab-index.mixin.d.ts +0 -13
  294. package/elements/common/mixins/types.d.ts +0 -5
  295. package/elements/common/novo-template/index.d.ts +0 -1
  296. package/elements/common/novo-template/novo-template.directive.d.ts +0 -11
  297. package/elements/common/option/index.d.ts +0 -13
  298. package/elements/common/option/optgroup.component.d.ts +0 -32
  299. package/elements/common/option/option-parent.d.ts +0 -14
  300. package/elements/common/option/option.component.d.ts +0 -140
  301. package/elements/common/overlay/Overlay.d.ts +0 -71
  302. package/elements/common/overlay/Overlay.module.d.ts +0 -11
  303. package/elements/common/overlay/index.d.ts +0 -2
  304. package/elements/common/selection/index.d.ts +0 -8
  305. package/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.d.ts +0 -32
  306. package/elements/common/theme/theme-options.d.ts +0 -25
  307. package/elements/common/typography/base/base-text.component.d.ts +0 -33
  308. package/elements/common/typography/caption/caption.component.d.ts +0 -16
  309. package/elements/common/typography/index.d.ts +0 -7
  310. package/elements/common/typography/label/label.component.d.ts +0 -10
  311. package/elements/common/typography/link/link.component.d.ts +0 -17
  312. package/elements/common/typography/text/text.component.d.ts +0 -17
  313. package/elements/common/typography/text.types.d.ts +0 -3
  314. package/elements/common/typography/title/title.component.d.ts +0 -18
  315. package/elements/data-table/ListInteractionTypes.d.ts +0 -10
  316. package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +0 -24
  317. package/elements/data-table/cell-headers/data-table-expand-header-cell.component.d.ts +0 -16
  318. package/elements/data-table/cell-headers/data-table-header-cell-filter-header.component.d.ts +0 -16
  319. package/elements/data-table/cell-headers/data-table-header-cell.component.d.ts +0 -91
  320. package/elements/data-table/cell-headers/data-table-header-cell.directive.d.ts +0 -14
  321. package/elements/data-table/cell-headers/index.d.ts +0 -5
  322. package/elements/data-table/cells/data-table-cell.component.d.ts +0 -20
  323. package/elements/data-table/cells/data-table-checkbox-cell.component.d.ts +0 -23
  324. package/elements/data-table/cells/data-table-expand-cell.component.d.ts +0 -19
  325. package/elements/data-table/cells/index.d.ts +0 -3
  326. package/elements/data-table/data-table-clear-button.component.d.ts +0 -23
  327. package/elements/data-table/data-table-expand.directive.d.ts +0 -21
  328. package/elements/data-table/data-table.component.d.ts +0 -126
  329. package/elements/data-table/data-table.module.d.ts +0 -42
  330. package/elements/data-table/data-table.pipes.d.ts +0 -52
  331. package/elements/data-table/data-table.source.d.ts +0 -22
  332. package/elements/data-table/data-table.token.d.ts +0 -27
  333. package/elements/data-table/interfaces.d.ts +0 -268
  334. package/elements/data-table/pagination/data-table-pagination.component.d.ts +0 -62
  335. package/elements/data-table/pagination/index.d.ts +0 -1
  336. package/elements/data-table/rows/data-table-header-row.component.d.ts +0 -9
  337. package/elements/data-table/rows/data-table-row.component.d.ts +0 -10
  338. package/elements/data-table/rows/index.d.ts +0 -2
  339. package/elements/data-table/services/data-table-filter-utils.d.ts +0 -3
  340. package/elements/data-table/services/index.d.ts +0 -3
  341. package/elements/data-table/services/remote-data-table.service.d.ts +0 -11
  342. package/elements/data-table/services/static-data-table.service.d.ts +0 -15
  343. package/elements/data-table/sort-filter/index.d.ts +0 -3
  344. package/elements/data-table/sort-filter/sort-button.animations.d.ts +0 -5
  345. package/elements/data-table/sort-filter/sort-button.component.d.ts +0 -21
  346. package/elements/data-table/sort-filter/sort-direction.d.ts +0 -5
  347. package/elements/data-table/sort-filter/sort-filter.directive.d.ts +0 -11
  348. package/elements/data-table/state/data-table-state.service.d.ts +0 -52
  349. package/elements/data-table/state/index.d.ts +0 -1
  350. package/elements/date-picker/DatePicker.d.ts +0 -113
  351. package/elements/date-picker/DatePicker.module.d.ts +0 -19
  352. package/elements/date-picker/DatePickerInput.d.ts +0 -146
  353. package/elements/date-picker/DateRangeInput.d.ts +0 -77
  354. package/elements/date-picker/MultiDateInput.d.ts +0 -67
  355. package/elements/date-time-picker/DateTimePicker.d.ts +0 -51
  356. package/elements/date-time-picker/DateTimePicker.module.d.ts +0 -14
  357. package/elements/date-time-picker/DateTimePickerInput.d.ts +0 -50
  358. package/elements/divider/divider.component.d.ts +0 -16
  359. package/elements/divider/divider.module.d.ts +0 -7
  360. package/elements/drag-drop/drag-drop-box.d.ts +0 -65
  361. package/elements/drag-drop/drag-drop.module.d.ts +0 -7
  362. package/elements/dropdown/Dropdown.d.ts +0 -108
  363. package/elements/dropdown/Dropdown.module.d.ts +0 -8
  364. package/elements/expansion/accordion.d.ts +0 -24
  365. package/elements/expansion/expansion-animations.d.ts +0 -9
  366. package/elements/expansion/expansion-panel-content.d.ts +0 -12
  367. package/elements/expansion/expansion-panel-header.d.ts +0 -52
  368. package/elements/expansion/expansion-panel.d.ts +0 -57
  369. package/elements/expansion/expansion.module.d.ts +0 -13
  370. package/elements/field/error/error.d.ts +0 -10
  371. package/elements/field/error/index.d.ts +0 -1
  372. package/elements/field/field-control.d.ts +0 -54
  373. package/elements/field/field.d.ts +0 -59
  374. package/elements/field/field.module.d.ts +0 -20
  375. package/elements/field/fieldset.d.ts +0 -18
  376. package/elements/field/formats/base-format.d.ts +0 -13
  377. package/elements/field/formats/date-format.d.ts +0 -26
  378. package/elements/field/formats/date-range-format.d.ts +0 -36
  379. package/elements/field/formats/date-time-format.d.ts +0 -35
  380. package/elements/field/formats/time-format.d.ts +0 -38
  381. package/elements/field/hint/hint.d.ts +0 -11
  382. package/elements/field/hint/index.d.ts +0 -1
  383. package/elements/field/input.d.ts +0 -165
  384. package/elements/field/picker.directive.d.ts +0 -22
  385. package/elements/field/toggle/picker-toggle.component.d.ts +0 -48
  386. package/elements/flex/Box.d.ts +0 -11
  387. package/elements/flex/Flex.d.ts +0 -17
  388. package/elements/flex/Flex.module.d.ts +0 -10
  389. package/elements/flex/Grid.d.ts +0 -14
  390. package/elements/form/Control.d.ts +0 -116
  391. package/elements/form/ControlGroup.d.ts +0 -111
  392. package/elements/form/ControlTemplates.d.ts +0 -12
  393. package/elements/form/DynamicForm.d.ts +0 -54
  394. package/elements/form/FieldInteractionApi.d.ts +0 -177
  395. package/elements/form/FieldInteractionApiTypes.d.ts +0 -29
  396. package/elements/form/FieldInteractionModals.d.ts +0 -21
  397. package/elements/form/Form.d.ts +0 -24
  398. package/elements/form/Form.module.d.ts +0 -39
  399. package/elements/form/FormControls.d.ts +0 -24
  400. package/elements/form/FormInterfaces.d.ts +0 -29
  401. package/elements/form/FormValidators.d.ts +0 -22
  402. package/elements/form/NovoFormControl.d.ts +0 -112
  403. package/elements/form/NovoFormGroup.d.ts +0 -19
  404. package/elements/form/controls/BaseControl.d.ts +0 -119
  405. package/elements/form/controls/ControlFactory.d.ts +0 -4
  406. package/elements/form/controls/ace-editor/AceEditorControl.d.ts +0 -5
  407. package/elements/form/controls/ace-editor/index.d.ts +0 -1
  408. package/elements/form/controls/address/AddressControl.d.ts +0 -5
  409. package/elements/form/controls/address/index.d.ts +0 -1
  410. package/elements/form/controls/check-list/CheckListControl.d.ts +0 -5
  411. package/elements/form/controls/check-list/index.d.ts +0 -1
  412. package/elements/form/controls/checkbox/CheckboxControl.d.ts +0 -5
  413. package/elements/form/controls/checkbox/index.d.ts +0 -1
  414. package/elements/form/controls/code-editor/CodeEditorControl.d.ts +0 -5
  415. package/elements/form/controls/code-editor/index.d.ts +0 -1
  416. package/elements/form/controls/custom/CustomControl.d.ts +0 -5
  417. package/elements/form/controls/custom/index.d.ts +0 -1
  418. package/elements/form/controls/date/DateControl.d.ts +0 -5
  419. package/elements/form/controls/date/index.d.ts +0 -1
  420. package/elements/form/controls/date-time/DateTimeControl.d.ts +0 -5
  421. package/elements/form/controls/date-time/index.d.ts +0 -1
  422. package/elements/form/controls/editor/EditorControl.d.ts +0 -6
  423. package/elements/form/controls/editor/index.d.ts +0 -1
  424. package/elements/form/controls/file/FileControl.d.ts +0 -5
  425. package/elements/form/controls/file/index.d.ts +0 -1
  426. package/elements/form/controls/grouped/GroupedControl.d.ts +0 -6
  427. package/elements/form/controls/grouped/index.d.ts +0 -1
  428. package/elements/form/controls/index.d.ts +0 -24
  429. package/elements/form/controls/native-select/NativeSelectControl.d.ts +0 -6
  430. package/elements/form/controls/native-select/index.d.ts +0 -1
  431. package/elements/form/controls/picker/PickerControl.d.ts +0 -9
  432. package/elements/form/controls/picker/index.d.ts +0 -1
  433. package/elements/form/controls/quick-note/QuickNoteControl.d.ts +0 -6
  434. package/elements/form/controls/quick-note/index.d.ts +0 -1
  435. package/elements/form/controls/radio/RadioControl.d.ts +0 -6
  436. package/elements/form/controls/radio/index.d.ts +0 -1
  437. package/elements/form/controls/read-only/ReadOnlyControl.d.ts +0 -5
  438. package/elements/form/controls/read-only/index.d.ts +0 -1
  439. package/elements/form/controls/select/SelectControl.d.ts +0 -6
  440. package/elements/form/controls/select/index.d.ts +0 -1
  441. package/elements/form/controls/switch/SwitchControl.d.ts +0 -5
  442. package/elements/form/controls/switch/index.d.ts +0 -1
  443. package/elements/form/controls/text-area/TextAreaControl.d.ts +0 -5
  444. package/elements/form/controls/text-area/index.d.ts +0 -1
  445. package/elements/form/controls/textbox/TextBoxControl.d.ts +0 -9
  446. package/elements/form/controls/textbox/index.d.ts +0 -1
  447. package/elements/form/controls/tiles/TilesControl.d.ts +0 -6
  448. package/elements/form/controls/tiles/index.d.ts +0 -1
  449. package/elements/form/controls/time/TimeControl.d.ts +0 -5
  450. package/elements/form/controls/time/index.d.ts +0 -1
  451. package/elements/form/controls/timezone/TimezoneControl.d.ts +0 -7
  452. package/elements/form/controls/timezone/index.d.ts +0 -1
  453. package/elements/form/extras/FormExtras.module.d.ts +0 -21
  454. package/elements/form/extras/address/Address.d.ts +0 -70
  455. package/elements/form/extras/address/index.d.ts +0 -1
  456. package/elements/form/extras/file/FileInput.d.ts +0 -134
  457. package/elements/form/extras/file/extras/file/File.d.ts +0 -22
  458. package/elements/form/extras/file/extras/file/index.d.ts +0 -1
  459. package/elements/form/extras/file/extras/index.d.ts +0 -1
  460. package/elements/form/extras/file/index.d.ts +0 -2
  461. package/elements/form/extras/index.d.ts +0 -4
  462. package/elements/form/extras/number-range/index.d.ts +0 -1
  463. package/elements/form/extras/number-range/number-range.component.d.ts +0 -27
  464. package/elements/form/utils/FormUtils.d.ts +0 -79
  465. package/elements/form/utils/index.d.ts +0 -1
  466. package/elements/header/Header.d.ts +0 -38
  467. package/elements/header/Header.module.d.ts +0 -11
  468. package/elements/icon/Icon.d.ts +0 -27
  469. package/elements/icon/Icon.module.d.ts +0 -8
  470. package/elements/layout/container/layout-container.component.d.ts +0 -118
  471. package/elements/layout/content/layout-content.component.d.ts +0 -13
  472. package/elements/layout/layout.constants.d.ts +0 -19
  473. package/elements/layout/layout.module.d.ts +0 -11
  474. package/elements/layout/rail/rail.component.d.ts +0 -9
  475. package/elements/layout/sidenav/sidenav.animations.d.ts +0 -8
  476. package/elements/layout/sidenav/sidenav.component.d.ts +0 -147
  477. package/elements/list/List.d.ts +0 -47
  478. package/elements/list/List.module.d.ts +0 -10
  479. package/elements/loading/Loading.d.ts +0 -54
  480. package/elements/loading/Loading.module.d.ts +0 -8
  481. package/elements/menu/menu-content.component.d.ts +0 -45
  482. package/elements/menu/menu-item.directive.d.ts +0 -21
  483. package/elements/menu/menu.component.d.ts +0 -39
  484. package/elements/menu/menu.directive.d.ts +0 -29
  485. package/elements/menu/menu.module.d.ts +0 -17
  486. package/elements/menu/menu.service.d.ts +0 -60
  487. package/elements/menu/menu.tokens.d.ts +0 -3
  488. package/elements/menu/menu.types.d.ts +0 -8
  489. package/elements/modal/modal-container.component.d.ts +0 -20
  490. package/elements/modal/modal-ref.d.ts +0 -25
  491. package/elements/modal/modal.animation.d.ts +0 -1
  492. package/elements/modal/modal.component.d.ts +0 -21
  493. package/elements/modal/modal.module.d.ts +0 -12
  494. package/elements/modal/modal.service.d.ts +0 -19
  495. package/elements/multi-picker/MultiPicker.d.ts +0 -110
  496. package/elements/multi-picker/MultiPicker.module.d.ts +0 -11
  497. package/elements/non-ideal-state/NonIdealState.d.ts +0 -10
  498. package/elements/non-ideal-state/NonIdealState.module.d.ts +0 -10
  499. package/elements/picker/Picker.d.ts +0 -78
  500. package/elements/picker/Picker.module.d.ts +0 -22
  501. package/elements/picker/extras/base-picker-results/BasePickerResults.d.ts +0 -96
  502. package/elements/picker/extras/base-picker-results/index.d.ts +0 -1
  503. package/elements/picker/extras/checklist-picker-results/ChecklistPickerResults.d.ts +0 -24
  504. package/elements/picker/extras/checklist-picker-results/index.d.ts +0 -1
  505. package/elements/picker/extras/distributionlist-picker-results/DistributionListPickerResults.d.ts +0 -16
  506. package/elements/picker/extras/distributionlist-picker-results/index.d.ts +0 -1
  507. package/elements/picker/extras/entity-picker-results/EntityPickerResults.d.ts +0 -37
  508. package/elements/picker/extras/entity-picker-results/index.d.ts +0 -1
  509. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.d.ts +0 -45
  510. package/elements/picker/extras/grouped-multi-picker-results/index.d.ts +0 -1
  511. package/elements/picker/extras/index.d.ts +0 -9
  512. package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.d.ts +0 -50
  513. package/elements/picker/extras/mixed-multi-picker-results/index.d.ts +0 -1
  514. package/elements/picker/extras/picker-results/PickerResults.d.ts +0 -14
  515. package/elements/picker/extras/picker-results/index.d.ts +0 -1
  516. package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.d.ts +0 -24
  517. package/elements/picker/extras/skills-picker-results/index.d.ts +0 -1
  518. package/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.d.ts +0 -13
  519. package/elements/picker/extras/workers-comp-codes-picker-results/index.d.ts +0 -1
  520. package/elements/places/places.component.d.ts +0 -85
  521. package/elements/places/places.module.d.ts +0 -10
  522. package/elements/places/places.service.d.ts +0 -25
  523. package/elements/popover/PopOver.d.ts +0 -37
  524. package/elements/popover/PopOver.module.d.ts +0 -9
  525. package/elements/popover/PopOverContent.d.ts +0 -49
  526. package/elements/progress/Progress.d.ts +0 -24
  527. package/elements/progress/Progress.module.d.ts +0 -9
  528. package/elements/progress/ProgressBar.d.ts +0 -45
  529. package/elements/progress/ProgressConstants.d.ts +0 -10
  530. package/elements/query-builder/condition-builder/condition-builder.component.d.ts +0 -94
  531. package/elements/query-builder/condition-definitions/abstract-condition.definition.d.ts +0 -35
  532. package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +0 -45
  533. package/elements/query-builder/condition-definitions/boolean-condition.definition.d.ts +0 -14
  534. package/elements/query-builder/condition-definitions/date-condition.definition.d.ts +0 -19
  535. package/elements/query-builder/condition-definitions/date-time-condition.definition.d.ts +0 -19
  536. package/elements/query-builder/condition-definitions/id-condition.definition.d.ts +0 -11
  537. package/elements/query-builder/condition-definitions/number-condition.definition.d.ts +0 -14
  538. package/elements/query-builder/condition-definitions/picker-condition.definition.d.ts +0 -23
  539. package/elements/query-builder/condition-definitions/string-condition.definition.d.ts +0 -21
  540. package/elements/query-builder/condition-group/condition-group.component.d.ts +0 -37
  541. package/elements/query-builder/condition-templates/condition-templates.component.d.ts +0 -8
  542. package/elements/query-builder/criteria-builder/criteria-builder.component.d.ts +0 -54
  543. package/elements/query-builder/query-builder.directives.d.ts +0 -66
  544. package/elements/query-builder/query-builder.module.d.ts +0 -46
  545. package/elements/query-builder/query-builder.service.d.ts +0 -54
  546. package/elements/query-builder/query-builder.tokens.d.ts +0 -4
  547. package/elements/query-builder/query-builder.types.d.ts +0 -128
  548. package/elements/quick-note/QuickNote.d.ts +0 -142
  549. package/elements/quick-note/QuickNote.module.d.ts +0 -13
  550. package/elements/quick-note/extras/index.d.ts +0 -1
  551. package/elements/quick-note/extras/quick-note-results/QuickNoteResults.d.ts +0 -33
  552. package/elements/quick-note/extras/quick-note-results/index.d.ts +0 -1
  553. package/elements/radio/Radio.d.ts +0 -40
  554. package/elements/radio/Radio.module.d.ts +0 -10
  555. package/elements/radio/RadioGroup.d.ts +0 -91
  556. package/elements/radio/tokens.d.ts +0 -9
  557. package/elements/search/SearchBox.d.ts +0 -71
  558. package/elements/search/SearchBox.module.d.ts +0 -12
  559. package/elements/select/Select.d.ts +0 -216
  560. package/elements/select/Select.extupdatefix.directive.d.ts +0 -17
  561. package/elements/select/Select.module.d.ts +0 -17
  562. package/elements/select-search/select-search-clear.directive.d.ts +0 -12
  563. package/elements/select-search/select-search.component.d.ts +0 -239
  564. package/elements/select-search/select-search.module.d.ts +0 -17
  565. package/elements/simple-table/PaginationOld.d.ts +0 -42
  566. package/elements/simple-table/activity-table-renderers.d.ts +0 -4
  567. package/elements/simple-table/cell-header.d.ts +0 -67
  568. package/elements/simple-table/cell.d.ts +0 -100
  569. package/elements/simple-table/interfaces.d.ts +0 -81
  570. package/elements/simple-table/pagination.d.ts +0 -40
  571. package/elements/simple-table/row.d.ts +0 -29
  572. package/elements/simple-table/simple-table.module.d.ts +0 -26
  573. package/elements/simple-table/sort.d.ts +0 -25
  574. package/elements/simple-table/state.d.ts +0 -25
  575. package/elements/simple-table/table-source.d.ts +0 -62
  576. package/elements/simple-table/table.d.ts +0 -72
  577. package/elements/slider/Slider.d.ts +0 -21
  578. package/elements/slider/Slider.module.d.ts +0 -9
  579. package/elements/stepper/step-header.component.d.ts +0 -48
  580. package/elements/stepper/step-label.component.d.ts +0 -8
  581. package/elements/stepper/step-status.component.d.ts +0 -7
  582. package/elements/stepper/stepper-buttons.component.d.ts +0 -12
  583. package/elements/stepper/stepper.animations.d.ts +0 -6
  584. package/elements/stepper/stepper.component.d.ts +0 -44
  585. package/elements/stepper/stepper.module.d.ts +0 -17
  586. package/elements/switch/Switch.d.ts +0 -23
  587. package/elements/switch/Switch.module.d.ts +0 -10
  588. package/elements/tabbed-group-picker/TabbedGroupPicker.d.ts +0 -128
  589. package/elements/tabbed-group-picker/TabbedGroupPicker.module.d.ts +0 -17
  590. package/elements/tabs/Tabs.d.ts +0 -95
  591. package/elements/tabs/Tabs.module.d.ts +0 -8
  592. package/elements/tiles/Tiles.d.ts +0 -33
  593. package/elements/tiles/Tiles.module.d.ts +0 -10
  594. package/elements/time-picker/TimePicker.d.ts +0 -58
  595. package/elements/time-picker/TimePicker.module.d.ts +0 -14
  596. package/elements/time-picker/TimePickerInput.d.ts +0 -71
  597. package/elements/tip-well/TipWell.d.ts +0 -26
  598. package/elements/tip-well/TipWell.module.d.ts +0 -9
  599. package/elements/toast/Toast.d.ts +0 -37
  600. package/elements/toast/Toast.module.d.ts +0 -9
  601. package/elements/toast/ToastService.d.ts +0 -45
  602. package/elements/toolbar/toolbar.component.d.ts +0 -22
  603. package/elements/toolbar/toolbar.module.d.ts +0 -8
  604. package/elements/tooltip/Tooltip.component.d.ts +0 -16
  605. package/elements/tooltip/Tooltip.directive.d.ts +0 -44
  606. package/elements/tooltip/Tooltip.module.d.ts +0 -9
  607. package/elements/unless/Unless.d.ts +0 -16
  608. package/elements/unless/Unless.module.d.ts +0 -8
  609. package/elements/value/EntityList.d.ts +0 -16
  610. package/elements/value/Render.d.ts +0 -70
  611. package/elements/value/Value.d.ts +0 -46
  612. package/elements/value/Value.module.d.ts +0 -12
  613. package/novo-elements.module.d.ts +0 -11
  614. package/novo-elements.providers.d.ts +0 -12
  615. package/pipes/Pipes.module.d.ts +0 -15
  616. package/pipes/decode-uri/DecodeURI.d.ts +0 -8
  617. package/pipes/decode-uri/index.d.ts +0 -1
  618. package/pipes/default/Default.d.ts +0 -8
  619. package/pipes/default/index.d.ts +0 -1
  620. package/pipes/group-by/GroupBy.d.ts +0 -7
  621. package/pipes/group-by/index.d.ts +0 -1
  622. package/pipes/highlight/Highlight.d.ts +0 -9
  623. package/pipes/highlight/index.d.ts +0 -1
  624. package/pipes/iso8601/index.d.ts +0 -4
  625. package/pipes/iso8601/iso-date-range.pipe.d.ts +0 -10
  626. package/pipes/iso8601/iso-date.pipe.d.ts +0 -8
  627. package/pipes/iso8601/iso-time-range.pipe.d.ts +0 -10
  628. package/pipes/iso8601/iso-time.pipe.d.ts +0 -8
  629. package/pipes/plural/Plural.d.ts +0 -8
  630. package/pipes/plural/index.d.ts +0 -1
  631. package/services/component-utils/ComponentUtils.d.ts +0 -7
  632. package/services/component-utils/index.d.ts +0 -1
  633. package/services/data-provider/ArrayCollection.d.ts +0 -168
  634. package/services/data-provider/Collection.d.ts +0 -78
  635. package/services/data-provider/CollectionEvent.d.ts +0 -17
  636. package/services/data-provider/PagedArrayCollection.d.ts +0 -18
  637. package/services/data-provider/PagedCollection.d.ts +0 -15
  638. package/services/data-provider/index.d.ts +0 -5
  639. package/services/date-format/DateFormat.d.ts +0 -28
  640. package/services/date-format/index.d.ts +0 -1
  641. package/services/global/global.service.d.ts +0 -17
  642. package/services/global/index.d.ts +0 -1
  643. package/services/novo-label-service.d.ts +0 -202
  644. package/services/options/OptionsService.d.ts +0 -12
  645. package/services/options/index.d.ts +0 -1
  646. package/services/security/Security.d.ts +0 -23
  647. package/services/security/index.d.ts +0 -1
  648. package/services/storage/index.d.ts +0 -1
  649. package/services/storage/storage.service.d.ts +0 -8
  650. package/services/template/NovoTemplateService.d.ts +0 -10
  651. package/services/template/index.d.ts +0 -1
  652. package/utils/Helpers.d.ts +0 -188
  653. package/utils/app-bridge/AppBridge.d.ts +0 -178
  654. package/utils/app-bridge/index.d.ts +0 -2
  655. package/utils/app-bridge/interfaces.d.ts +0 -58
  656. package/utils/base-renderer/BaseRenderer.d.ts +0 -9
  657. package/utils/base-renderer/index.d.ts +0 -1
  658. package/utils/calendar-utils/CalendarUtils.d.ts +0 -151
  659. package/utils/calendar-utils/index.d.ts +0 -1
  660. package/utils/color-utils/ColorUtils.d.ts +0 -40
  661. package/utils/color-utils/index.d.ts +0 -1
  662. package/utils/countries/Countries.d.ts +0 -47
  663. package/utils/countries/index.d.ts +0 -1
  664. package/utils/date/Date.d.ts +0 -50
  665. package/utils/date/Date.types.d.ts +0 -71
  666. package/utils/date/convert-tokens.d.ts +0 -5
  667. package/utils/date/index.d.ts +0 -5
  668. package/utils/date/legacy-parse.d.ts +0 -15
  669. package/utils/date/timezone-support.d.ts +0 -5
  670. package/utils/decorators/BooleanInput.d.ts +0 -1
  671. package/utils/decorators/index.d.ts +0 -1
  672. package/utils/deferred/Deferred.d.ts +0 -8
  673. package/utils/deferred/index.d.ts +0 -1
  674. package/utils/key-codes/Key.d.ts +0 -669
  675. package/utils/key-codes/KeyCodes.d.ts +0 -93
  676. package/utils/key-codes/index.d.ts +0 -2
  677. package/utils/notifier/index.d.ts +0 -1
  678. package/utils/notifier/notifier.util.d.ts +0 -1
  679. package/utils/outside-click/OutsideClick.d.ts +0 -27
  680. package/utils/outside-click/index.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { trigger, state, transition, style, animate } from '@angular/animations';
1
+ import { trigger, state, style, transition, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
3
  import { forwardRef, EventEmitter, Input, Output, HostBinding, Component, ViewChild, NgModule } from '@angular/core';
4
4
  import * as i3 from '@angular/forms';
@@ -286,8 +286,8 @@ class NovoDatePickerElement {
286
286
  registerOnTouched(fn) {
287
287
  this._onTouched = fn;
288
288
  }
289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
290
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoDatePickerElement, isStandalone: false, selector: "novo-date-picker", inputs: { minYear: "minYear", maxYear: "maxYear", start: "start", end: "end", inline: "inline", weekStart: "weekStart", preselected: "preselected", hideOverflowDays: "hideOverflowDays", hideFooter: "hideFooter", hideToday: "hideToday", disabledDateMessage: "disabledDateMessage", dateForInitialView: "dateForInitialView", numberOfMonths: "numberOfMonths", mode: "mode", range: "range", weekRangeSelect: "weekRangeSelect" }, outputs: { onSelect: "onSelect" }, host: { properties: { "class.hide-overflow-days": "this.hideOverflowDays" } }, providers: [DATE_PICKER_VALUE_ACCESSOR], ngImport: i0, template: `
289
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerElement, deps: [{ token: i1.NovoLabelService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
290
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoDatePickerElement, isStandalone: false, selector: "novo-date-picker", inputs: { minYear: "minYear", maxYear: "maxYear", start: "start", end: "end", inline: "inline", weekStart: "weekStart", preselected: "preselected", hideOverflowDays: "hideOverflowDays", hideFooter: "hideFooter", hideToday: "hideToday", disabledDateMessage: "disabledDateMessage", dateForInitialView: "dateForInitialView", numberOfMonths: "numberOfMonths", mode: "mode", range: "range", weekRangeSelect: "weekRangeSelect" }, outputs: { onSelect: "onSelect" }, host: { properties: { "class.hide-overflow-days": "this.hideOverflowDays" } }, providers: [DATE_PICKER_VALUE_ACCESSOR], ngImport: i0, template: `
291
291
  <div class="date-picker-container">
292
292
  <div class="date-range-tabs" *ngIf="range" [class.week-select-mode]="weekRangeSelect">
293
293
  <span
@@ -371,7 +371,7 @@ __decorate$1([
371
371
  BooleanInput(),
372
372
  __metadata$1("design:type", Boolean)
373
373
  ], NovoDatePickerElement.prototype, "hideToday", void 0);
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerElement, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerElement, decorators: [{
375
375
  type: Component,
376
376
  args: [{ selector: 'novo-date-picker', providers: [DATE_PICKER_VALUE_ACCESSOR], animations: [
377
377
  trigger('startDateTextState', [
@@ -785,8 +785,8 @@ class NovoDatePickerInputElement {
785
785
  cancel() {
786
786
  this.onCancel.emit();
787
787
  }
788
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoDatePickerInputElement, isStandalone: false, selector: "novo-date-picker-input", inputs: { name: "name", start: "start", end: "end", placeholder: "placeholder", maskOptions: "maskOptions", format: "format", textMaskEnabled: "textMaskEnabled", allowInvalidDate: "allowInvalidDate", overlayOnElement: "overlayOnElement", hideFooter: "hideFooter", hideToday: "hideToday", hasButtons: "hasButtons", disabled: "disabled", disabledDateMessage: "disabledDateMessage", dateForInitialView: "dateForInitialView", weekStart: "weekStart" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", changeEvent: "changeEvent", onSave: "onSave", onCancel: "onCancel", valueCleared: "valueCleared" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [DATE_VALUE_ACCESSOR$1], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
789
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoDatePickerInputElement, isStandalone: false, selector: "novo-date-picker-input", inputs: { name: "name", start: "start", end: "end", placeholder: "placeholder", maskOptions: "maskOptions", format: "format", textMaskEnabled: "textMaskEnabled", allowInvalidDate: "allowInvalidDate", overlayOnElement: "overlayOnElement", hideFooter: "hideFooter", hideToday: "hideToday", hasButtons: "hasButtons", disabled: "disabled", disabledDateMessage: "disabledDateMessage", dateForInitialView: "dateForInitialView", weekStart: "weekStart" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", changeEvent: "changeEvent", onSave: "onSave", onCancel: "onCancel", valueCleared: "valueCleared" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [DATE_VALUE_ACCESSOR$1], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
790
790
  <input
791
791
  type="text"
792
792
  [name]="name"
@@ -848,7 +848,7 @@ __decorate([
848
848
  BooleanInput(),
849
849
  __metadata("design:type", Boolean)
850
850
  ], NovoDatePickerInputElement.prototype, "hasButtons", void 0);
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerInputElement, decorators: [{
851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerInputElement, decorators: [{
852
852
  type: Component,
853
853
  args: [{ selector: 'novo-date-picker-input', providers: [DATE_VALUE_ACCESSOR$1], template: `
854
854
  <input
@@ -1162,8 +1162,8 @@ class NovoDateRangeInputElement {
1162
1162
  get hasEndValue() {
1163
1163
  return !Helpers.isEmpty(this.value?.endDate);
1164
1164
  }
1165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDateRangeInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
1166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoDateRangeInputElement, isStandalone: false, selector: "novo-date-range-input", inputs: { name: "name", start: "start", end: "end", weekRangeSelect: "weekRangeSelect", mode: "mode", placeholder: "placeholder", maskOptions: "maskOptions", format: "format", textMaskEnabled: "textMaskEnabled", allowInvalidDate: "allowInvalidDate", weekStart: "weekStart", value: "value", disabled: "disabled" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", change: "change", blur: "blur", focus: "focus" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [DATE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDateRangeInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
1166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoDateRangeInputElement, isStandalone: false, selector: "novo-date-range-input", inputs: { name: "name", start: "start", end: "end", weekRangeSelect: "weekRangeSelect", mode: "mode", placeholder: "placeholder", maskOptions: "maskOptions", format: "format", textMaskEnabled: "textMaskEnabled", allowInvalidDate: "allowInvalidDate", weekStart: "weekStart", value: "value", disabled: "disabled" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", change: "change", blur: "blur", focus: "focus" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [DATE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1167
1167
  <div class="date-range-input-container">
1168
1168
  <input
1169
1169
  type="text"
@@ -1215,7 +1215,7 @@ class NovoDateRangeInputElement {
1215
1215
  </novo-overlay-template>
1216
1216
  `, isInline: true, styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap;height:min-content}:host.disabled{pointer-events:none;opacity:1}:host .date-range-input-container{position:relative;height:min-content}:host .date-range-input-divider{font-weight:800;margin:0 .5em;align-self:center;height:min-content}:host input{font-size:1em;border:none;border-bottom:1px solid var(--border);background:transparent!important;border-radius:0;outline:none;height:2rem;width:9em;margin:0;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s;color:var(--text-main)}:host input:focus{border-bottom:1px solid #4a89dc}:host novo-icon{position:absolute;right:0;top:0;font-size:1em}:host novo-icon[size=small]{top:calc(50% - .75em);font-size:.5em}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.NovoOverlayTemplateComponent, selector: "novo-overlay-template", inputs: ["position", "scrollStrategy", "width", "minWidth", "height", "closeOnSelect", "hasBackdrop", "parent"], outputs: ["select", "opening", "closing", "backDropClicked"] }, { kind: "directive", type: i6.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: i6$1.NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { kind: "component", type: NovoDatePickerElement, selector: "novo-date-picker", inputs: ["minYear", "maxYear", "start", "end", "inline", "weekStart", "preselected", "hideOverflowDays", "hideFooter", "hideToday", "disabledDateMessage", "dateForInitialView", "numberOfMonths", "mode", "range", "weekRangeSelect"], outputs: ["onSelect"] }] }); }
1217
1217
  }
1218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDateRangeInputElement, decorators: [{
1218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDateRangeInputElement, decorators: [{
1219
1219
  type: Component,
1220
1220
  args: [{ selector: 'novo-date-range-input', providers: [DATE_VALUE_ACCESSOR], template: `
1221
1221
  <div class="date-range-input-container">
@@ -1437,8 +1437,8 @@ class NovoMultiDateInputElement {
1437
1437
  get hasValue() {
1438
1438
  return !Helpers.isEmpty(this.value);
1439
1439
  }
1440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoMultiDateInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
1441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NovoMultiDateInputElement, isStandalone: false, selector: "novo-multi-date-input", inputs: { name: "name", start: "start", end: "end", placeholder: "placeholder", format: "format", allowInvalidDate: "allowInvalidDate", weekStart: "weekStart", chipsCount: "chipsCount", value: "value", disabled: "disabled" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", change: "change", blur: "blur", focus: "focus" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [MULTI_DATE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], ngImport: i0, template: `
1440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoMultiDateInputElement, deps: [{ token: i0.ElementRef }, { token: i1.NovoLabelService }, { token: i0.ChangeDetectorRef }, { token: i1.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
1441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: NovoMultiDateInputElement, isStandalone: false, selector: "novo-multi-date-input", inputs: { name: "name", start: "start", end: "end", placeholder: "placeholder", format: "format", allowInvalidDate: "allowInvalidDate", weekStart: "weekStart", chipsCount: "chipsCount", value: "value", disabled: "disabled" }, outputs: { blurEvent: "blurEvent", focusEvent: "focusEvent", change: "change", blur: "blur", focus: "focus" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [MULTI_DATE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "overlay", first: true, predicate: NovoOverlayTemplateComponent, descendants: true }], ngImport: i0, template: `
1442
1442
  <novo-chip-list>
1443
1443
  <novo-chip *ngFor="let date of value | default: []" (removed)="remove($event, date)">
1444
1444
  {{ date | date: format }}
@@ -1463,7 +1463,7 @@ class NovoMultiDateInputElement {
1463
1463
  </novo-overlay-template>
1464
1464
  `, isInline: true, styles: [":host .chip-input-container{padding-top:10px}:host .chip-input-container .placeholder{color:var(--form-placeholder)}:host .panel-toggle{padding:.2em}:host .panel-toggle i{margin:0}:host .panel-toggle.selected{background:#dbdbdb;border-radius:50%}:host ul.summary{display:inline;list-style:none;color:#868686;padding:0 10px}:host ul.summary li{display:inline;padding:0 3px}:host ul.summary li:after{content:\", \"}:host ul.summary li:last-child:after{content:\" \"}:host chip span{text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.NovoOverlayTemplateComponent, selector: "novo-overlay-template", inputs: ["position", "scrollStrategy", "width", "minWidth", "height", "closeOnSelect", "hasBackdrop", "parent"], outputs: ["select", "opening", "closing", "backDropClicked"] }, { kind: "component", type: i6$1.NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { kind: "component", type: i6$2.NovoChipElement, selector: "novo-chip, [novo-chip]", inputs: ["color", "tabIndex", "size", "type", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"] }, { kind: "directive", type: i6$2.NovoChipRemove, selector: "[novoChipRemove]" }, { kind: "component", type: i6$2.NovoChipList, selector: "novo-chip-list", inputs: ["errorStateMatcher", "multiple", "chipsToggleable", "stacked", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["novoChipList"] }, { kind: "component", type: NovoDatePickerElement, selector: "novo-date-picker", inputs: ["minYear", "maxYear", "start", "end", "inline", "weekStart", "preselected", "hideOverflowDays", "hideFooter", "hideToday", "disabledDateMessage", "dateForInitialView", "numberOfMonths", "mode", "range", "weekRangeSelect"], outputs: ["onSelect"] }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: i8.DefaultPipe, name: "default" }] }); }
1465
1465
  }
1466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoMultiDateInputElement, decorators: [{
1466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoMultiDateInputElement, decorators: [{
1467
1467
  type: Component,
1468
1468
  args: [{ selector: 'novo-multi-date-input', providers: [MULTI_DATE_VALUE_ACCESSOR], template: `
1469
1469
  <novo-chip-list>
@@ -1529,8 +1529,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
1529
1529
 
1530
1530
  // NG2
1531
1531
  class NovoDatePickerModule {
1532
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1533
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerModule, declarations: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement], imports: [CommonModule,
1532
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1533
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerModule, declarations: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement], imports: [CommonModule,
1534
1534
  FormsModule,
1535
1535
  NovoButtonModule,
1536
1536
  NovoPipesModule,
@@ -1539,7 +1539,7 @@ class NovoDatePickerModule {
1539
1539
  NovoIconModule,
1540
1540
  NovoChipsModule,
1541
1541
  NovoCalendarModule], exports: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement] }); }
1542
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerModule, imports: [CommonModule,
1542
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerModule, imports: [CommonModule,
1543
1543
  FormsModule,
1544
1544
  NovoButtonModule,
1545
1545
  NovoPipesModule,
@@ -1549,7 +1549,7 @@ class NovoDatePickerModule {
1549
1549
  NovoChipsModule,
1550
1550
  NovoCalendarModule] }); }
1551
1551
  }
1552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NovoDatePickerModule, decorators: [{
1552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: NovoDatePickerModule, decorators: [{
1553
1553
  type: NgModule,
1554
1554
  args: [{
1555
1555
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-date-picker.mjs","sources":["../../../projects/novo-elements/src/elements/date-picker/DatePicker.ts","../../../projects/novo-elements/src/elements/date-picker/DatePickerInput.ts","../../../projects/novo-elements/src/elements/date-picker/DateRangeInput.ts","../../../projects/novo-elements/src/elements/date-picker/MultiDateInput.ts","../../../projects/novo-elements/src/elements/date-picker/DatePicker.module.ts","../../../projects/novo-elements/src/elements/date-picker/novo-elements-elements-date-picker.ts"],"sourcesContent":["// NG2\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { isDate, isValid, subDays } from 'date-fns';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DataTableRangeModel, DatePickerSelectModes, DateUtil, Helpers, modelTypes, RangeModel, rangeSelectModes } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_PICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDatePickerElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-picker',\n providers: [DATE_PICKER_VALUE_ACCESSOR],\n animations: [\n trigger('startDateTextState', [\n state('startDate', style({\n opacity: '1.0',\n })),\n state('endDate', style({\n opacity: '0.6',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n trigger('endDateTextState', [\n state('startDate', style({\n opacity: '0.6',\n })),\n state('endDate', style({\n opacity: '1.0',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n trigger('indicatorState', [\n state('startDate', style({\n transform: 'translateX(0%)',\n })),\n state('endDate', style({\n transform: 'translateX(100%)',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n ],\n template: `\n <div class=\"date-picker-container\">\n <div class=\"date-range-tabs\" *ngIf=\"range\" [class.week-select-mode]=\"weekRangeSelect\">\n <span\n class=\"range-tab\"\n (click)=\"toggleRangeSelect('startDate')\"\n [@startDateTextState]=\"rangeSelectMode\"\n data-automation-id=\"calendar-start-date\"\n >{{ startDateLabel }}</span\n >\n <span\n class=\"range-tab\"\n (click)=\"toggleRangeSelect('endDate')\"\n [@endDateTextState]=\"rangeSelectMode\"\n data-automation-id=\"calendar-end-date\"\n >{{ endDateLabel }}</span\n >\n <i class=\"indicator\" [@indicatorState]=\"rangeSelectMode\"></i>\n </div>\n\n <novo-calendar\n [activeDate]=\"activeDate\"\n [(selected)]=\"selection\"\n (selectedChange)=\"updateSelection($event)\"\n [mode]=\"mode\"\n [numberOfMonths]=\"numberOfMonths\"\n [weekStartsOn]=\"weekStart\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [minDate]=\"start\"\n [maxDate]=\"end\"\n ></novo-calendar>\n\n <div class=\"calendar-footer\" [hidden]=\"hideFooter\">\n\n <novo-button [hidden]=\"hideToday\" (click)=\"setToday()\" class=\"today\" size=\"small\" data-automation-id=\"calendar-today\">{{ labels.today }}</novo-button>\n <ng-content select=\".footer-content\"></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./DatePicker.scss'],\n standalone: false,\n})\nexport class NovoDatePickerElement implements ControlValueAccessor, OnInit {\n /**\n * The minimum year to allow selected in year select view\n **/\n @Input()\n minYear: string | number;\n /**\n * The maximum year to allow selected in year select view\n **/\n @Input()\n maxYear: string | number;\n /**\n * The minimum date that can be selected.\n **/\n @Input()\n start: Date;\n /**\n * The maximum date that can be selected.\n **/\n @Input()\n end: Date;\n /**\n * **Deprecated** Whether the date-picker is used outside of an overlay.\n **/\n @Input()\n @BooleanInput()\n inline: boolean;\n /**\n * Day of the week the calendar should display first, Sunday=0...Saturday=6\n **/\n @Input()\n weekStart: Day = 0;\n /**\n * Certain dates that are already selected.\n **/\n @Input()\n preselected: Date[] = [];\n /**\n * Whether the days for the previous and next month should be hidden.\n **/\n @Input()\n @BooleanInput()\n @HostBinding('class.hide-overflow-days')\n public hideOverflowDays: boolean = false;\n /**\n * Whether the footer should be hidden - contains `today`/`cancel`/`save` buttons\n **/\n @Input()\n @BooleanInput()\n public hideFooter: boolean = false;\n\n /**\n * Whether to hide the `today` button.\n **/\n @Input()\n @BooleanInput()\n public hideToday: boolean = false;\n\n @Input()\n disabledDateMessage: string;\n\n @Input()\n dateForInitialView?: Date;\n\n // Select callback for output\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter(false);\n\n _mode: DatePickerSelectModes = 'single';\n _range: boolean;\n _weekRangeSelect: boolean;\n _numberOfMonths: number[] = [0];\n\n /**\n * Number of months to display at once.\n * @default 1\n **/\n @Input()\n get numberOfMonths(): number {\n return this._numberOfMonths.length;\n }\n set numberOfMonths(value) {\n this._numberOfMonths = Array.from(Array(Number(value)).keys());\n }\n\n /**\n * How the date selection should work.\n * @default single\n **/\n @Input()\n get mode(): DatePickerSelectModes {\n return this._mode;\n }\n set mode(value) {\n if (this._mode !== value) {\n this._mode = value;\n }\n }\n /**\n * **deprecated** please use `mode=\"range\"`.\n **/\n @Input()\n get range(): boolean {\n return ['range', 'week'].includes(this.mode) || this._range;\n }\n set range(value) {\n console.warn('\\'range\\' property is deprecated, please use \\'mode=\"range\"\\'.');\n if (this._range !== value) {\n this._range = value;\n this.mode = 'range';\n }\n }\n /**\n * **deprecated** please use `mode=\"week\"`.\n **/\n @Input()\n get weekRangeSelect(): boolean {\n return this._mode === 'week' || this._weekRangeSelect;\n }\n set weekRangeSelect(value) {\n console.warn('\\'weekRangeSelect\\' property is deprecated, please use \\'mode=\"week\"\\'.');\n if (this._weekRangeSelect !== value) {\n this._weekRangeSelect = value;\n this.mode = 'week';\n }\n }\n\n model: modelTypes;\n activeDate: Date;\n\n _selection: Date[] = [];\n preview: Date[] = [];\n startDateLabel: string;\n endDateLabel: string;\n\n rangeSelectMode: rangeSelectModes = 'startDate';\n _onChange: Function = () => {};\n _onTouched: Function = () => {};\n\n get selection(): Date[] {\n return this._selection;\n }\n set selection(value) {\n this._selection = value ? value.filter(isDate).map((d) => DateUtil.startOfDay(d)) : [];\n }\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n // Determine the year array\n const now = new Date();\n // Set labels\n if (this.model) {\n this.modelToSelection(this.model);\n }\n if (this.dateForInitialView) {\n this.updateView(this.dateForInitialView);\n } else if (this.selection && this.selection.length) {\n this.updateView(this.selection[0]);\n }\n }\n\n updateView(date) {\n const value: any = date ? new Date(date) : new Date();\n this.activeDate = new Date(value);\n }\n\n updateSelection(selected: Date[], fireEvents = true) {\n this.selection = selected;\n\n this.startDateLabel = this.labels.formatDateWithFormat(this.selection[0], {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n });\n\n this.endDateLabel = this.labels.formatDateWithFormat(this.selection[1], {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n });\n\n if (fireEvents) {\n switch (this.mode) {\n case 'multiple':\n this.fireSelect();\n // Also, update the ngModel\n this._onChange(this.selection);\n this.model = this.selection;\n break;\n case 'range':\n case 'week':\n if (this.selection.filter(Boolean).length === 2) {\n this.fireRangeSelect();\n // Also, update the ngModel\n const model = {\n startDate: this.selection[0],\n endDate: this.selection[1],\n };\n this._onChange(model);\n this.model = model;\n }\n break;\n case 'single':\n default:\n this.fireSelect();\n // Also, update the ngModel\n this._onChange(this.selection[0]);\n this.model = this.selection[0];\n break;\n }\n }\n\n this.cdr.markForCheck();\n }\n\n eventData(date: Date) {\n return {\n year: date.getFullYear(),\n month: this.labels.formatDateWithFormat(date, { month: 'long' }),\n day: this.labels.formatDateWithFormat(date, { weekday: 'long' }),\n date,\n };\n }\n\n fireSelect() {\n if (this.mode === 'multiple') {\n this.onSelect.next(this.selection);\n } else {\n this.onSelect.next(this.eventData(this.selection[0]));\n }\n }\n\n fireRangeSelect() {\n // Make sure the start date is before the end date\n if (this.selection.filter(Boolean).length === 2) {\n const [start, end] = this.selection;\n this.onSelect.next({\n startDate: this.eventData(start),\n endDate: this.eventData(end),\n });\n }\n }\n\n setToday() {\n const tmp = new Date();\n this.updateView(tmp);\n this.updateSelection(Array.of(tmp));\n }\n\n toggleRangeSelect(range: rangeSelectModes): void {\n this.rangeSelectMode = range;\n if (range === 'startDate' && this.selection.length) {\n this.updateView(this.selection[0]);\n }\n if (range === 'endDate' && this.selection.length === 2) {\n this.updateView(this.selection[1]);\n }\n }\n\n modelToSelection(model: modelTypes) {\n switch (this.mode) {\n case 'multiple':\n this.selection = model as Date[];\n break;\n case 'range':\n case 'week':\n this.setRangeSelection();\n break;\n case 'single':\n default:\n this.selection = [model as Date];\n break;\n }\n }\n\n // ValueAccessor Functions\n writeValue(model: modelTypes): void {\n this.model = model;\n if (this.mode === 'multiple') {\n this.selection = this.model as Date[];\n }\n if (this.mode === 'range') {\n this.setRangeSelection();\n }\n if (Helpers.isDate(model)) {\n this.updateView(model);\n this.modelToSelection(model);\n } else if (Helpers.isString(model)) {\n const date = DateUtil.parse(model as any);\n if (isValid(date)) {\n this.updateView(date);\n this.modelToSelection(date);\n }\n }\n }\n\n setRangeSelection() {\n if (this.model?.hasOwnProperty('startDate')) {\n // coming from standalone date picker\n const range = this.model as RangeModel;\n this.selection = [range.startDate, range.endDate].filter(Boolean);\n } else if (this.model?.hasOwnProperty('min')) {\n // coming from data-table filter where model end date is the beginning of the next day\n const range = this.model as DataTableRangeModel;\n this.selection = [range.min, subDays(range.max, 1)].filter(Boolean);\n }\n }\n\n registerOnChange(fn: Function): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this._onTouched = fn;\n }\n}\n","// NG\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\nimport { isValid } from 'date-fns';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DateUtil, Helpers, Key } from 'novo-elements/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDatePickerInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-picker-input',\n providers: [DATE_VALUE_ACCESSOR],\n template: `\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedValue\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (focus)=\"_handleFocus($event)\"\n (keydown)=\"_handleKeydown($event)\"\n (input)=\"_handleInput($event)\"\n (blur)=\"_handleBlur($event)\"\n (accept)=\"handleMaskAccept($event)\"\n #input\n data-automation-id=\"date-input\"\n [disabled]=\"disabled\"\n />\n <span class=\"error-text\" *ngIf=\"showInvalidDateError\">{{ invalidDateErrorMessage }}</span>\n <i *ngIf=\"!hasValue\" (click)=\"openPanel()\" class=\"bhi-calendar\"></i>\n <i *ngIf=\"hasValue\" (click)=\"clearAction()\" class=\"bhi-times\"></i>\n <novo-overlay-template [parent]=\"overlayElement\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n (onSelect)=\"onSelected($event)\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n [hideFooter]=\"hideFooter\"\n [hideToday]=\"hideToday\"\n [dateForInitialView]=\"dateForInitialView\">\n <div *ngIf=\"hasButtons\" class=\"footer-content\">\n <novo-button\n class=\"cancel-button\"\n data-automation-id=\"date-picker-cancel\"\n theme=\"dialogue\"\n size=\"small\"\n (click)=\"cancel()\">{{ labels.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n data-automation-id=\"date-picker-save\"\n theme=\"primary\"\n color=\"primary\"\n size=\"small\"\n (click)=\"save()\">{{ labels.save }}</novo-button>\n </div>\n </novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./DatePickerInput.scss'],\n standalone: false,\n})\nexport class NovoDatePickerInputElement implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\n public value: any;\n public formattedValue: string = '';\n public showInvalidDateError: boolean;\n public invalidDateErrorMessage: string = '';\n private userDefinedFormat: boolean;\n private isInvalidDate: boolean;\n\n /** View -> model callback called when value changes */\n _onChange: (value: any) => void = () => {};\n\n /** View -> model callback called when autocomplete has been touched */\n _onTouched = () => {};\n\n /**\n * The name of the form field, get passed to the native `input` element\n **/\n @Input()\n name: string;\n /**\n * The minimum date that can be selected.\n **/\n @Input()\n start: Date;\n /**\n * The maximum date that can be selected.\n **/\n @Input()\n end: Date;\n /**\n * Placeholder text to display in the input when it is empty.\n **/\n @Input()\n placeholder: string;\n /**\n * MaskOptions to pass to the angular-imask plugin\n **/\n @Input()\n maskOptions: any;\n /**\n * The format to use to parse and render dates: DD/MM/YYYY or MM/DD/YYYY\n **/\n @Input()\n format: string;\n /**\n * Whether to apply a text mask to the date (see `maskOptions`). Only enabled if allowInvalidDate is false.\n */\n @Input()\n textMaskEnabled: boolean = true;\n /**\n * Whether the input should emit values when the field does not yet constitute a valid date\n */\n @Input()\n allowInvalidDate: boolean = false;\n /**\n * The element to use as the parent for the date picker's overlay (to determine bounds sizing). By default,\n * this refers to the input element itself, but may be a container if it has a padded border.\n */\n @Input()\n overlayOnElement: ElementRef;\n /**\n * Whether the footer in the date picker which contains `today` button and cancel/save buttons should be hidden.\n **/\n @Input()\n @BooleanInput()\n public hideFooter: boolean = false;\n /**\n * Whether to hide the 'today' button\n */\n @Input()\n @BooleanInput()\n public hideToday: boolean = false;\n /**\n * Whether to display the picker together with 'cancel'/'save' buttons\n */\n @Input()\n @BooleanInput()\n public hasButtons: boolean = false;\n /**\n * Sets the field as to appear disabled, users will not be able to interact with the text field.\n **/\n @HostBinding('class.disabled')\n @Input()\n disabled: boolean = false;\n /**\n * A message to display in the picker overlay when a given date is disabled through minimum/maximum\n */\n @Input()\n disabledDateMessage: string;\n /**\n * An optional date/month to show in the DatePicker initially besides the current date/month\n */\n @Input()\n dateForInitialView?: Date;\n /**\n * Day of the week the calendar should display first, Sunday=0...Saturday=6\n **/\n @Input()\n weekStart: Day = 0;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n changeEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n onSave: EventEmitter<any> = new EventEmitter();\n @Output()\n onCancel: EventEmitter<any> = new EventEmitter();\n @Output()\n valueCleared: EventEmitter<any> = new EventEmitter();\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private _changeDetectorRef: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n private destroyRef: DestroyRef,\n ) {\n this.placeholder = this.labels.localizedDatePlaceholder();\n }\n\n ngOnInit() {\n this._initFormatOptions();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['format'].includes(key))) {\n this._initFormatOptions();\n }\n }\n\n ngAfterViewInit(): void {\n this.overlay.panelClosingActions.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this._handleOverlayClickout.bind(this));\n }\n\n _initFormatOptions() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n if (!this.userDefinedFormat && this.textMaskEnabled && !this.allowInvalidDate) {\n this.maskOptions = this.maskOptions || this.dateFormatService.getDateMask();\n } else {\n this.maskOptions = undefined;\n }\n this.setupInvalidDateErrorMessage();\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.overlay.openPanel();\n }\n }\n closePanel(): void {\n this.overlay.closePanel();\n }\n get panelOpen(): boolean {\n return this.overlay?.panelOpen;\n }\n\n get overlayElement(): ElementRef {\n return this.overlayOnElement || this.element;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this._handleValueUpdate((event.target as HTMLInputElement).value, true);\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleInput(event: KeyboardEvent): void {\n // if maskOptions is enabled, then we do not want to process inputs until the mask has accepted them - so those events will be\n // handled by the (accept) event.\n if (document.activeElement === event.target && !this.maskOptions) {\n this._handleValueUpdate((event.target as HTMLInputElement).value, false);\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n if (!this.overlay.isBlurRecipient(event)) {\n this.handleInvalidDate();\n this.blurEvent.emit(event);\n }\n }\n\n _handleOverlayClickout(): void {\n this.handleInvalidDate(/* fromPanelClose: */true);\n this.blurEvent.emit();\n }\n\n _handleFocus(event: FocusEvent): void {\n this.showInvalidDateError = false;\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n _handleValueUpdate(value: string, blur: boolean): void {\n if (value === '') {\n this.clearValue();\n if (!this.hasButtons) {\n this.closePanel();\n }\n } else {\n this.formatDate(value, blur);\n this.openPanel();\n }\n }\n\n handleMaskAccept(maskValue: string): void {\n this._handleValueUpdate(maskValue, false);\n }\n\n protected formatDate(value: string, blur: boolean) {\n try {\n let dateTimeValue: Date;\n let isInvalidDate: boolean;\n if (this.format) {\n [dateTimeValue, , isInvalidDate] = this.dateFormatService.parseCustomDateString(value, this.format);\n } else {\n [dateTimeValue, , isInvalidDate] = this.dateFormatService.parseString(value, false, 'date');\n }\n this.isInvalidDate = isInvalidDate;\n // if we have a full date - set the dateTimeValue\n if (dateTimeValue?.getFullYear()?.toString().length === 4) {\n const dt = new Date(dateTimeValue);\n this.dispatchOnChange(dt, blur);\n // if we only have a partial date - set the value to null\n } else if (isNaN(dateTimeValue?.getUTCDate())) {\n this.dispatchOnChange(null, blur);\n }\n } catch (err) {}\n }\n\n writeValue(value: any): void {\n Promise.resolve(null).then(() => this._setTriggerValue(value));\n }\n\n registerOnChange(fn: (value: any) => {}): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => {}) {\n this._onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n handleInvalidDate(fromPanelClose = false): void {\n if (this.isInvalidDate) {\n this.showInvalidDateError = true;\n this.clearValue();\n if (!fromPanelClose) {\n this.closePanel();\n }\n }\n }\n\n setupInvalidDateErrorMessage(): void {\n let dateFormat: string = this.labels.dateFormatString();\n if (Helpers.isEmpty(dateFormat)) {\n // Default to mm/dd/yyyy\n dateFormat = 'mm/dd/yyyy';\n } else {\n dateFormat = dateFormat.toLowerCase();\n }\n this.invalidDateErrorMessage = `Invalid date field entered. Date format of ${dateFormat} is required.`;\n }\n\n public dispatchOnChange(newValue?: any, blur: boolean = false, skip: boolean = false) {\n if (newValue !== this.value) {\n this._onChange(newValue);\n this.changeEvent.emit(newValue);\n if (blur) {\n !skip && this.writeValue(newValue);\n } else {\n !skip && this._setCalendarValue(newValue);\n }\n }\n }\n\n private _setTriggerValue(value: any): void {\n this._setCalendarValue(value);\n this._setFormValue(value);\n this._changeDetectorRef.markForCheck();\n }\n\n private _setCalendarValue(value: any): void {\n if (value instanceof Date && this.value instanceof Date) {\n const newDate = new Date(value);\n newDate.setHours(0, 0, 0, 0);\n this.value = newDate;\n return;\n }\n this.value = value;\n }\n\n private _setFormValue(value: any): void {\n if (value) {\n const test = this.formatDateValue(value);\n this.formattedValue = test;\n } else {\n this.formattedValue = '';\n }\n }\n\n public onSelected(event: any): void {\n this.setValue(event);\n if (!this.hasButtons) {\n this.closePanel();\n }\n }\n\n private setValue(event: any | null): void {\n if (event?.date) {\n this.showInvalidDateError = false;\n this.dispatchOnChange(event.date, true);\n }\n }\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: any | null): void {\n this.setValue(event);\n this.closePanel();\n }\n\n /**\n * Respond to clicking the X button within the input\n */\n public clearAction() {\n this.clearValue();\n this.valueCleared.emit();\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearValue() {\n this._setFormValue(null);\n this.dispatchOnChange(null);\n }\n\n public formatDateValue(value) {\n const originalValue = value;\n try {\n if (!value) {\n return '';\n }\n if (this.userDefinedFormat && isValid(value)) {\n return DateUtil.format(value, this.format);\n }\n if (!(value instanceof Date)) {\n value = new Date(value);\n }\n if (!(isNaN(value.valueOf()) && this.allowInvalidDate)) {\n return this.labels.formatDateWithFormat(value, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n });\n } else {\n return originalValue;\n }\n } catch (err) {\n return err;\n }\n }\n\n public get hasValue() {\n return !Helpers.isEmpty(this.value);\n }\n\n save(): void {\n this.onSave.emit();\n }\n\n cancel(): void {\n this.onCancel.emit();\n }\n}\n","// NG\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\nimport { isValid } from 'date-fns';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Helpers, Key, RangeModel } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-range-input',\n providers: [DATE_VALUE_ACCESSOR],\n template: `\n <div class=\"date-range-input-container\">\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedStartDate\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (keydown)=\"_onStartInputChange($event)\"\n (input)=\"_onStartInputChange($event)\"\n (focus)=\"_handleFocus($event)\"\n (blur)=\"_handleBlur($event)\"\n #startDate\n data-automation-id=\"date-range-input-start\"\n [disabled]=\"disabled\"\n />\n <novo-icon *ngIf=\"!hasStartValue\" (click)=\"openPanel()\">calendar</novo-icon>\n <novo-icon *ngIf=\"hasStartValue\" (click)=\"clearStartValue()\">x</novo-icon>\n </div>\n <div class=\"date-range-input-divider\">-</div>\n <div class=\"date-range-input-container\">\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedEndDate\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (keydown)=\"_onEndInputChange($event)\"\n (input)=\"_onEndInputChange($event)\"\n (focus)=\"_handleFocus($event)\"\n (blur)=\"_handleBlur($event)\"\n #endDate\n data-automation-id=\"date-range-input-end\"\n [disabled]=\"disabled\"\n />\n <novo-icon *ngIf=\"!hasEndValue\" (click)=\"openPanel()\">calendar</novo-icon>\n <novo-icon *ngIf=\"hasEndValue\" (click)=\"clearEndValue()\">x</novo-icon>\n </div>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n [mode]=\"mode\"\n range=\"true\"\n inline=\"true\"\n (onSelect)=\"setValueAndClose($event)\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./DateRangeInput.scss'],\n standalone: false,\n})\nexport class NovoDateRangeInputElement implements OnInit, OnChanges, ControlValueAccessor {\n public formattedStartDate: string = '';\n public formattedEndDate: string = '';\n private userDefinedFormat: boolean;\n\n @Input()\n name: string;\n @Input()\n start: Date;\n @Input()\n end: Date;\n @Input()\n weekRangeSelect: boolean = false;\n @Input()\n mode: string = 'range';\n @Input()\n placeholder: string;\n @Input()\n maskOptions: any;\n @Input()\n format: string;\n @Input()\n textMaskEnabled: boolean = true;\n @Input()\n allowInvalidDate: boolean = false;\n @Input()\n weekStart: number = 0;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n private _value: RangeModel = { startDate: null, endDate: null };\n private _disabled: boolean = false;\n\n @Input() get value(): RangeModel {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n this._setFormValue(value);\n this.onChangeCallback(this._value);\n }\n }\n\n // Disabled State\n @Input()\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = !!value;\n }\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n ) {\n this.placeholder = this.labels.dateFormatString().toUpperCase() || this.labels.dateFormatPlaceholder;\n }\n\n ngOnInit() {\n this._initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['format'].includes(key))) {\n this._initFormatOptions();\n }\n }\n\n _initFormatOptions() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n if (!this.userDefinedFormat && this.textMaskEnabled && !this.allowInvalidDate) {\n this.maskOptions = this.maskOptions || this.dateFormatService.getDateMask();\n } else {\n this.maskOptions = undefined;\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.overlay.openPanel();\n }\n }\n\n closePanel(): void {\n this.overlay && this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n this.blurEvent.emit(event);\n }\n\n _handleFocus(event: FocusEvent): void {\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n protected formatDate(value: string) {\n try {\n const [dateTimeValue] = this.dateFormatService.parseString(value, false, 'date');\n return dateTimeValue ? new Date(dateTimeValue) : null;\n } catch (err) {\n return null;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n _onStartInputChange(event: KeyboardEvent) {\n this._handleKeydown(event);\n if (document.activeElement === event.target) {\n event.stopPropagation();\n const startDate = this.formatDate((event.target as HTMLInputElement).value);\n if (startDate) {\n this.value = {\n ...this.value,\n startDate,\n };\n this.change.emit(this.value);\n }\n }\n }\n\n _onEndInputChange(event: KeyboardEvent) {\n this._handleKeydown(event);\n if (document.activeElement === event.target) {\n event.stopPropagation();\n const endDate = this.formatDate((event.target as HTMLInputElement).value);\n if (endDate) {\n this.value = {\n ...this.value,\n endDate,\n };\n this.change.emit(this.value);\n }\n }\n }\n\n private _setFormValue(value: RangeModel): void {\n if (this.value) {\n this.formattedStartDate = this.formatDateValue(this.value.startDate);\n this.formattedEndDate = this.formatDateValue(this.value.endDate);\n }\n }\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: any | null): void {\n if (event && event.startDate && event.endDate) {\n const startDate = event.startDate.date;\n const endDate = event.endDate.date;\n this.value = { startDate, endDate };\n this.change.emit(this.value);\n }\n this.closePanel();\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearStartValue() {\n this.formattedStartDate = '';\n this.value = { ...this.value, startDate: null };\n this.change.emit(this.value);\n }\n public clearEndValue() {\n this.formattedEndDate = '';\n this.value = { ...this.value, endDate: null };\n this.change.emit(this.value);\n }\n\n public formatDateValue(value) {\n const originalValue = value;\n try {\n if (!value) {\n return '';\n }\n if (this.userDefinedFormat && isValid(value)) {\n return DateUtil.format(value, this.format);\n }\n if (!(value instanceof Date)) {\n value = new Date(value);\n }\n if (!(isNaN(value.valueOf()) && this.allowInvalidDate)) {\n return this.labels.formatDateWithFormat(value, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n });\n } else {\n return originalValue;\n }\n } catch (err) {\n return '';\n }\n }\n\n public get hasStartValue() {\n return !Helpers.isEmpty(this.value?.startDate);\n }\n public get hasEndValue() {\n return !Helpers.isEmpty(this.value?.endDate);\n }\n}\n","// NG\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst MULTI_DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoMultiDateInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-multi-date-input',\n providers: [MULTI_DATE_VALUE_ACCESSOR],\n template: `\n <novo-chip-list>\n <novo-chip *ngFor=\"let date of value | default: []\" (removed)=\"remove($event, date)\">\n {{ date | date: format }}\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n </novo-chip-list>\n <div class=\"chip-input-container\" (click)=\"_handleFocus($event)\">\n <span class=\"placeholder\" *ngIf=\"!value.length\" data-automation-id=\"multi-date-input\">{{ placeholder }}</span>\n </div>\n <novo-icon class=\"panel-toggle\" [class.selected]=\"panelOpen\" (click)=\"openPanel()\">calendar</novo-icon>\n <label class=\"clear-all\" *ngIf=\"value.length\" (click)=\"clearValue()\">{{ labels.clearAll }} <i class=\"bhi-times\"></i></label>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n mode=\"multiple\"\n (onSelect)=\"setValueAndClose($event)\"\n [(ngModel)]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./MultiDateInput.scss'],\n standalone: false,\n})\nexport class NovoMultiDateInputElement implements OnInit, ControlValueAccessor {\n public formattedStartDate: string = '';\n public formattedEndDate: string = '';\n private userDefinedFormat: boolean;\n\n @Input()\n name: string;\n @Input()\n start: Date;\n @Input()\n end: Date;\n @Input()\n placeholder: string;\n @Input()\n format: string = 'shortDate';\n @Input()\n allowInvalidDate: boolean = false;\n @Input()\n weekStart: number = 0;\n @Input()\n chipsCount: number = 5;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n private _value: Date[] = [];\n private _disabled: boolean = false;\n private notShown: any = {};\n\n @Input() get value(): Date[] {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n this.onChangeCallback(this._value);\n }\n }\n\n // Disabled State\n @Input()\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = !!value;\n }\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n ) {\n this.placeholder = this.labels.dateFormatString().toUpperCase() || this.labels.dateFormatPlaceholder;\n }\n\n ngOnInit() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n }\n\n formatter(value) {\n const [dateTimeValue, formatted] = this.dateFormatService.parseString(value, false, 'date');\n return formatted;\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.panelOpen ? this.overlay.closePanel() : this.overlay.openPanel();\n }\n }\n\n closePanel(): void {\n this.overlay && this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n this.blurEvent.emit(event);\n }\n\n _handleFocus(event: FocusEvent): void {\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n remove(event: any, date: Date) {\n const current = new Set(this.value);\n if (current.has(date)) {\n current.delete(date);\n }\n this.value = [...current];\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: Date[] = []): void {\n if (event) {\n this.value = event;\n this.change.emit(this.value);\n }\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearValue() {\n this.value = [];\n this.change.emit(this.value);\n }\n\n public get hasValue() {\n return !Helpers.isEmpty(this.value);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// Vendor\nimport { IMaskModule } from 'angular-imask';\nimport { NovoPipesModule } from 'novo-elements/pipes';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCalendarModule } from 'novo-elements/elements/calendar';\nimport { NovoChipsModule } from 'novo-elements/elements/chips';\nimport { NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoDatePickerElement } from './DatePicker';\nimport { NovoDatePickerInputElement } from './DatePickerInput';\nimport { NovoDateRangeInputElement } from './DateRangeInput';\nimport { NovoMultiDateInputElement } from './MultiDateInput';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NovoButtonModule,\n NovoPipesModule,\n NovoOverlayModule,\n IMaskModule,\n NovoIconModule,\n NovoChipsModule,\n NovoCalendarModule,\n ],\n declarations: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement],\n exports: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement],\n})\nexport class NovoDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","__decorate","DATE_VALUE_ACCESSOR","i2","i5","i7.NovoDatePickerElement","i4","i6"],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-date-picker.mjs","sources":["../../../projects/novo-elements/src/elements/date-picker/DatePicker.ts","../../../projects/novo-elements/src/elements/date-picker/DatePickerInput.ts","../../../projects/novo-elements/src/elements/date-picker/DateRangeInput.ts","../../../projects/novo-elements/src/elements/date-picker/MultiDateInput.ts","../../../projects/novo-elements/src/elements/date-picker/DatePicker.module.ts","../../../projects/novo-elements/src/elements/date-picker/novo-elements-elements-date-picker.ts"],"sourcesContent":["// NG2\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n// Vendor\nimport { Day, isDate, isValid, subDays } from 'date-fns';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DataTableRangeModel, DatePickerSelectModes, DateUtil, Helpers, modelTypes, RangeModel, rangeSelectModes } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_PICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDatePickerElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-picker',\n providers: [DATE_PICKER_VALUE_ACCESSOR],\n animations: [\n trigger('startDateTextState', [\n state('startDate', style({\n opacity: '1.0',\n })),\n state('endDate', style({\n opacity: '0.6',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n trigger('endDateTextState', [\n state('startDate', style({\n opacity: '0.6',\n })),\n state('endDate', style({\n opacity: '1.0',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n trigger('indicatorState', [\n state('startDate', style({\n transform: 'translateX(0%)',\n })),\n state('endDate', style({\n transform: 'translateX(100%)',\n })),\n transition('startDate <=> endDate', animate('200ms ease-in')),\n ]),\n ],\n template: `\n <div class=\"date-picker-container\">\n <div class=\"date-range-tabs\" *ngIf=\"range\" [class.week-select-mode]=\"weekRangeSelect\">\n <span\n class=\"range-tab\"\n (click)=\"toggleRangeSelect('startDate')\"\n [@startDateTextState]=\"rangeSelectMode\"\n data-automation-id=\"calendar-start-date\"\n >{{ startDateLabel }}</span\n >\n <span\n class=\"range-tab\"\n (click)=\"toggleRangeSelect('endDate')\"\n [@endDateTextState]=\"rangeSelectMode\"\n data-automation-id=\"calendar-end-date\"\n >{{ endDateLabel }}</span\n >\n <i class=\"indicator\" [@indicatorState]=\"rangeSelectMode\"></i>\n </div>\n\n <novo-calendar\n [activeDate]=\"activeDate\"\n [(selected)]=\"selection\"\n (selectedChange)=\"updateSelection($event)\"\n [mode]=\"mode\"\n [numberOfMonths]=\"numberOfMonths\"\n [weekStartsOn]=\"weekStart\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [minDate]=\"start\"\n [maxDate]=\"end\"\n ></novo-calendar>\n\n <div class=\"calendar-footer\" [hidden]=\"hideFooter\">\n\n <novo-button [hidden]=\"hideToday\" (click)=\"setToday()\" class=\"today\" size=\"small\" data-automation-id=\"calendar-today\">{{ labels.today }}</novo-button>\n <ng-content select=\".footer-content\"></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./DatePicker.scss'],\n standalone: false,\n})\nexport class NovoDatePickerElement implements ControlValueAccessor, OnInit {\n /**\n * The minimum year to allow selected in year select view\n **/\n @Input()\n minYear: string | number;\n /**\n * The maximum year to allow selected in year select view\n **/\n @Input()\n maxYear: string | number;\n /**\n * The minimum date that can be selected.\n **/\n @Input()\n start: Date;\n /**\n * The maximum date that can be selected.\n **/\n @Input()\n end: Date;\n /**\n * **Deprecated** Whether the date-picker is used outside of an overlay.\n **/\n @Input()\n @BooleanInput()\n inline: boolean;\n /**\n * Day of the week the calendar should display first, Sunday=0...Saturday=6\n **/\n @Input()\n weekStart: Day = 0;\n /**\n * Certain dates that are already selected.\n **/\n @Input()\n preselected: Date[] = [];\n /**\n * Whether the days for the previous and next month should be hidden.\n **/\n @Input()\n @BooleanInput()\n @HostBinding('class.hide-overflow-days')\n public hideOverflowDays: boolean = false;\n /**\n * Whether the footer should be hidden - contains `today`/`cancel`/`save` buttons\n **/\n @Input()\n @BooleanInput()\n public hideFooter: boolean = false;\n\n /**\n * Whether to hide the `today` button.\n **/\n @Input()\n @BooleanInput()\n public hideToday: boolean = false;\n\n @Input()\n disabledDateMessage: string;\n\n @Input()\n dateForInitialView?: Date;\n\n // Select callback for output\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter(false);\n\n _mode: DatePickerSelectModes = 'single';\n _range: boolean;\n _weekRangeSelect: boolean;\n _numberOfMonths: number[] = [0];\n\n /**\n * Number of months to display at once.\n * @default 1\n **/\n @Input()\n get numberOfMonths(): number {\n return this._numberOfMonths.length;\n }\n set numberOfMonths(value) {\n this._numberOfMonths = Array.from(Array(Number(value)).keys());\n }\n\n /**\n * How the date selection should work.\n * @default single\n **/\n @Input()\n get mode(): DatePickerSelectModes {\n return this._mode;\n }\n set mode(value) {\n if (this._mode !== value) {\n this._mode = value;\n }\n }\n /**\n * **deprecated** please use `mode=\"range\"`.\n **/\n @Input()\n get range(): boolean {\n return ['range', 'week'].includes(this.mode) || this._range;\n }\n set range(value) {\n console.warn('\\'range\\' property is deprecated, please use \\'mode=\"range\"\\'.');\n if (this._range !== value) {\n this._range = value;\n this.mode = 'range';\n }\n }\n /**\n * **deprecated** please use `mode=\"week\"`.\n **/\n @Input()\n get weekRangeSelect(): boolean {\n return this._mode === 'week' || this._weekRangeSelect;\n }\n set weekRangeSelect(value) {\n console.warn('\\'weekRangeSelect\\' property is deprecated, please use \\'mode=\"week\"\\'.');\n if (this._weekRangeSelect !== value) {\n this._weekRangeSelect = value;\n this.mode = 'week';\n }\n }\n\n model: modelTypes;\n activeDate: Date;\n\n _selection: Date[] = [];\n preview: Date[] = [];\n startDateLabel: string;\n endDateLabel: string;\n\n rangeSelectMode: rangeSelectModes = 'startDate';\n _onChange: Function = () => {};\n _onTouched: Function = () => {};\n\n get selection(): Date[] {\n return this._selection;\n }\n set selection(value) {\n this._selection = value ? value.filter(isDate).map((d) => DateUtil.startOfDay(d)) : [];\n }\n\n constructor(\n public labels: NovoLabelService,\n private element: ElementRef,\n private cdr: ChangeDetectorRef,\n private _sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit() {\n // Determine the year array\n const now = new Date();\n // Set labels\n if (this.model) {\n this.modelToSelection(this.model);\n }\n if (this.dateForInitialView) {\n this.updateView(this.dateForInitialView);\n } else if (this.selection && this.selection.length) {\n this.updateView(this.selection[0]);\n }\n }\n\n updateView(date) {\n const value: any = date ? new Date(date) : new Date();\n this.activeDate = new Date(value);\n }\n\n updateSelection(selected: Date[], fireEvents = true) {\n this.selection = selected;\n\n this.startDateLabel = this.labels.formatDateWithFormat(this.selection[0], {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n });\n\n this.endDateLabel = this.labels.formatDateWithFormat(this.selection[1], {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n });\n\n if (fireEvents) {\n switch (this.mode) {\n case 'multiple':\n this.fireSelect();\n // Also, update the ngModel\n this._onChange(this.selection);\n this.model = this.selection;\n break;\n case 'range':\n case 'week':\n if (this.selection.filter(Boolean).length === 2) {\n this.fireRangeSelect();\n // Also, update the ngModel\n const model = {\n startDate: this.selection[0],\n endDate: this.selection[1],\n };\n this._onChange(model);\n this.model = model;\n }\n break;\n case 'single':\n default:\n this.fireSelect();\n // Also, update the ngModel\n this._onChange(this.selection[0]);\n this.model = this.selection[0];\n break;\n }\n }\n\n this.cdr.markForCheck();\n }\n\n eventData(date: Date) {\n return {\n year: date.getFullYear(),\n month: this.labels.formatDateWithFormat(date, { month: 'long' }),\n day: this.labels.formatDateWithFormat(date, { weekday: 'long' }),\n date,\n };\n }\n\n fireSelect() {\n if (this.mode === 'multiple') {\n this.onSelect.next(this.selection);\n } else {\n this.onSelect.next(this.eventData(this.selection[0]));\n }\n }\n\n fireRangeSelect() {\n // Make sure the start date is before the end date\n if (this.selection.filter(Boolean).length === 2) {\n const [start, end] = this.selection;\n this.onSelect.next({\n startDate: this.eventData(start),\n endDate: this.eventData(end),\n });\n }\n }\n\n setToday() {\n const tmp = new Date();\n this.updateView(tmp);\n this.updateSelection(Array.of(tmp));\n }\n\n toggleRangeSelect(range: rangeSelectModes): void {\n this.rangeSelectMode = range;\n if (range === 'startDate' && this.selection.length) {\n this.updateView(this.selection[0]);\n }\n if (range === 'endDate' && this.selection.length === 2) {\n this.updateView(this.selection[1]);\n }\n }\n\n modelToSelection(model: modelTypes) {\n switch (this.mode) {\n case 'multiple':\n this.selection = model as Date[];\n break;\n case 'range':\n case 'week':\n this.setRangeSelection();\n break;\n case 'single':\n default:\n this.selection = [model as Date];\n break;\n }\n }\n\n // ValueAccessor Functions\n writeValue(model: modelTypes): void {\n this.model = model;\n if (this.mode === 'multiple') {\n this.selection = this.model as Date[];\n }\n if (this.mode === 'range') {\n this.setRangeSelection();\n }\n if (Helpers.isDate(model)) {\n this.updateView(model);\n this.modelToSelection(model);\n } else if (Helpers.isString(model)) {\n const date = DateUtil.parse(model as any);\n if (isValid(date)) {\n this.updateView(date);\n this.modelToSelection(date);\n }\n }\n }\n\n setRangeSelection() {\n if (this.model?.hasOwnProperty('startDate')) {\n // coming from standalone date picker\n const range = this.model as RangeModel;\n this.selection = [range.startDate, range.endDate].filter(Boolean);\n } else if (this.model?.hasOwnProperty('min')) {\n // coming from data-table filter where model end date is the beginning of the next day\n const range = this.model as DataTableRangeModel;\n this.selection = [range.min, subDays(range.max, 1)].filter(Boolean);\n }\n }\n\n registerOnChange(fn: Function): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this._onTouched = fn;\n }\n}\n","// NG\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\nimport { Day, isValid } from 'date-fns';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { BooleanInput, DateUtil, Helpers, Key } from 'novo-elements/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDatePickerInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-picker-input',\n providers: [DATE_VALUE_ACCESSOR],\n template: `\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedValue\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (focus)=\"_handleFocus($event)\"\n (keydown)=\"_handleKeydown($event)\"\n (input)=\"_handleInput($event)\"\n (blur)=\"_handleBlur($event)\"\n (accept)=\"handleMaskAccept($event)\"\n #input\n data-automation-id=\"date-input\"\n [disabled]=\"disabled\"\n />\n <span class=\"error-text\" *ngIf=\"showInvalidDateError\">{{ invalidDateErrorMessage }}</span>\n <i *ngIf=\"!hasValue\" (click)=\"openPanel()\" class=\"bhi-calendar\"></i>\n <i *ngIf=\"hasValue\" (click)=\"clearAction()\" class=\"bhi-times\"></i>\n <novo-overlay-template [parent]=\"overlayElement\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n (onSelect)=\"onSelected($event)\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n [hideFooter]=\"hideFooter\"\n [hideToday]=\"hideToday\"\n [dateForInitialView]=\"dateForInitialView\">\n <div *ngIf=\"hasButtons\" class=\"footer-content\">\n <novo-button\n class=\"cancel-button\"\n data-automation-id=\"date-picker-cancel\"\n theme=\"dialogue\"\n size=\"small\"\n (click)=\"cancel()\">{{ labels.cancel }}</novo-button>\n <novo-button\n class=\"save-button\"\n data-automation-id=\"date-picker-save\"\n theme=\"primary\"\n color=\"primary\"\n size=\"small\"\n (click)=\"save()\">{{ labels.save }}</novo-button>\n </div>\n </novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./DatePickerInput.scss'],\n standalone: false,\n})\nexport class NovoDatePickerInputElement implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\n public value: any;\n public formattedValue: string = '';\n public showInvalidDateError: boolean;\n public invalidDateErrorMessage: string = '';\n private userDefinedFormat: boolean;\n private isInvalidDate: boolean;\n\n /** View -> model callback called when value changes */\n _onChange: (value: any) => void = () => {};\n\n /** View -> model callback called when autocomplete has been touched */\n _onTouched = () => {};\n\n /**\n * The name of the form field, get passed to the native `input` element\n **/\n @Input()\n name: string;\n /**\n * The minimum date that can be selected.\n **/\n @Input()\n start: Date;\n /**\n * The maximum date that can be selected.\n **/\n @Input()\n end: Date;\n /**\n * Placeholder text to display in the input when it is empty.\n **/\n @Input()\n placeholder: string;\n /**\n * MaskOptions to pass to the angular-imask plugin\n **/\n @Input()\n maskOptions: any;\n /**\n * The format to use to parse and render dates: DD/MM/YYYY or MM/DD/YYYY\n **/\n @Input()\n format: string;\n /**\n * Whether to apply a text mask to the date (see `maskOptions`). Only enabled if allowInvalidDate is false.\n */\n @Input()\n textMaskEnabled: boolean = true;\n /**\n * Whether the input should emit values when the field does not yet constitute a valid date\n */\n @Input()\n allowInvalidDate: boolean = false;\n /**\n * The element to use as the parent for the date picker's overlay (to determine bounds sizing). By default,\n * this refers to the input element itself, but may be a container if it has a padded border.\n */\n @Input()\n overlayOnElement: ElementRef;\n /**\n * Whether the footer in the date picker which contains `today` button and cancel/save buttons should be hidden.\n **/\n @Input()\n @BooleanInput()\n public hideFooter: boolean = false;\n /**\n * Whether to hide the 'today' button\n */\n @Input()\n @BooleanInput()\n public hideToday: boolean = false;\n /**\n * Whether to display the picker together with 'cancel'/'save' buttons\n */\n @Input()\n @BooleanInput()\n public hasButtons: boolean = false;\n /**\n * Sets the field as to appear disabled, users will not be able to interact with the text field.\n **/\n @HostBinding('class.disabled')\n @Input()\n disabled: boolean = false;\n /**\n * A message to display in the picker overlay when a given date is disabled through minimum/maximum\n */\n @Input()\n disabledDateMessage: string;\n /**\n * An optional date/month to show in the DatePicker initially besides the current date/month\n */\n @Input()\n dateForInitialView?: Date;\n /**\n * Day of the week the calendar should display first, Sunday=0...Saturday=6\n **/\n @Input()\n weekStart: Day = 0;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n changeEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n onSave: EventEmitter<any> = new EventEmitter();\n @Output()\n onCancel: EventEmitter<any> = new EventEmitter();\n @Output()\n valueCleared: EventEmitter<any> = new EventEmitter();\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private _changeDetectorRef: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n private destroyRef: DestroyRef,\n ) {\n this.placeholder = this.labels.localizedDatePlaceholder();\n }\n\n ngOnInit() {\n this._initFormatOptions();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['format'].includes(key))) {\n this._initFormatOptions();\n }\n }\n\n ngAfterViewInit(): void {\n this.overlay.panelClosingActions.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this._handleOverlayClickout.bind(this));\n }\n\n _initFormatOptions() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n if (!this.userDefinedFormat && this.textMaskEnabled && !this.allowInvalidDate) {\n this.maskOptions = this.maskOptions || this.dateFormatService.getDateMask();\n } else {\n this.maskOptions = undefined;\n }\n this.setupInvalidDateErrorMessage();\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.overlay.openPanel();\n }\n }\n closePanel(): void {\n this.overlay.closePanel();\n }\n get panelOpen(): boolean {\n return this.overlay?.panelOpen;\n }\n\n get overlayElement(): ElementRef {\n return this.overlayOnElement || this.element;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this._handleValueUpdate((event.target as HTMLInputElement).value, true);\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleInput(event: KeyboardEvent): void {\n // if maskOptions is enabled, then we do not want to process inputs until the mask has accepted them - so those events will be\n // handled by the (accept) event.\n if (document.activeElement === event.target && !this.maskOptions) {\n this._handleValueUpdate((event.target as HTMLInputElement).value, false);\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n if (!this.overlay.isBlurRecipient(event)) {\n this.handleInvalidDate();\n this.blurEvent.emit(event);\n }\n }\n\n _handleOverlayClickout(): void {\n this.handleInvalidDate(/* fromPanelClose: */true);\n this.blurEvent.emit();\n }\n\n _handleFocus(event: FocusEvent): void {\n this.showInvalidDateError = false;\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n _handleValueUpdate(value: string, blur: boolean): void {\n if (value === '') {\n this.clearValue();\n if (!this.hasButtons) {\n this.closePanel();\n }\n } else {\n this.formatDate(value, blur);\n this.openPanel();\n }\n }\n\n handleMaskAccept(maskValue: string): void {\n this._handleValueUpdate(maskValue, false);\n }\n\n protected formatDate(value: string, blur: boolean) {\n try {\n let dateTimeValue: Date;\n let isInvalidDate: boolean;\n if (this.format) {\n [dateTimeValue, , isInvalidDate] = this.dateFormatService.parseCustomDateString(value, this.format);\n } else {\n [dateTimeValue, , isInvalidDate] = this.dateFormatService.parseString(value, false, 'date');\n }\n this.isInvalidDate = isInvalidDate;\n // if we have a full date - set the dateTimeValue\n if (dateTimeValue?.getFullYear()?.toString().length === 4) {\n const dt = new Date(dateTimeValue);\n this.dispatchOnChange(dt, blur);\n // if we only have a partial date - set the value to null\n } else if (isNaN(dateTimeValue?.getUTCDate())) {\n this.dispatchOnChange(null, blur);\n }\n } catch (err) {}\n }\n\n writeValue(value: any): void {\n Promise.resolve(null).then(() => this._setTriggerValue(value));\n }\n\n registerOnChange(fn: (value: any) => {}): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => {}) {\n this._onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n handleInvalidDate(fromPanelClose = false): void {\n if (this.isInvalidDate) {\n this.showInvalidDateError = true;\n this.clearValue();\n if (!fromPanelClose) {\n this.closePanel();\n }\n }\n }\n\n setupInvalidDateErrorMessage(): void {\n let dateFormat: string = this.labels.dateFormatString();\n if (Helpers.isEmpty(dateFormat)) {\n // Default to mm/dd/yyyy\n dateFormat = 'mm/dd/yyyy';\n } else {\n dateFormat = dateFormat.toLowerCase();\n }\n this.invalidDateErrorMessage = `Invalid date field entered. Date format of ${dateFormat} is required.`;\n }\n\n public dispatchOnChange(newValue?: any, blur: boolean = false, skip: boolean = false) {\n if (newValue !== this.value) {\n this._onChange(newValue);\n this.changeEvent.emit(newValue);\n if (blur) {\n !skip && this.writeValue(newValue);\n } else {\n !skip && this._setCalendarValue(newValue);\n }\n }\n }\n\n private _setTriggerValue(value: any): void {\n this._setCalendarValue(value);\n this._setFormValue(value);\n this._changeDetectorRef.markForCheck();\n }\n\n private _setCalendarValue(value: any): void {\n if (value instanceof Date && this.value instanceof Date) {\n const newDate = new Date(value);\n newDate.setHours(0, 0, 0, 0);\n this.value = newDate;\n return;\n }\n this.value = value;\n }\n\n private _setFormValue(value: any): void {\n if (value) {\n const test = this.formatDateValue(value);\n this.formattedValue = test;\n } else {\n this.formattedValue = '';\n }\n }\n\n public onSelected(event: any): void {\n this.setValue(event);\n if (!this.hasButtons) {\n this.closePanel();\n }\n }\n\n private setValue(event: any | null): void {\n if (event?.date) {\n this.showInvalidDateError = false;\n this.dispatchOnChange(event.date, true);\n }\n }\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: any | null): void {\n this.setValue(event);\n this.closePanel();\n }\n\n /**\n * Respond to clicking the X button within the input\n */\n public clearAction() {\n this.clearValue();\n this.valueCleared.emit();\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearValue() {\n this._setFormValue(null);\n this.dispatchOnChange(null);\n }\n\n public formatDateValue(value) {\n const originalValue = value;\n try {\n if (!value) {\n return '';\n }\n if (this.userDefinedFormat && isValid(value)) {\n return DateUtil.format(value, this.format);\n }\n if (!(value instanceof Date)) {\n value = new Date(value);\n }\n if (!(isNaN(value.valueOf()) && this.allowInvalidDate)) {\n return this.labels.formatDateWithFormat(value, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n });\n } else {\n return originalValue;\n }\n } catch (err) {\n return err;\n }\n }\n\n public get hasValue() {\n return !Helpers.isEmpty(this.value);\n }\n\n save(): void {\n this.onSave.emit();\n }\n\n cancel(): void {\n this.onCancel.emit();\n }\n}\n","// NG\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// Vendor\nimport { isValid } from 'date-fns';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Helpers, Key, RangeModel } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-date-range-input',\n providers: [DATE_VALUE_ACCESSOR],\n template: `\n <div class=\"date-range-input-container\">\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedStartDate\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (keydown)=\"_onStartInputChange($event)\"\n (input)=\"_onStartInputChange($event)\"\n (focus)=\"_handleFocus($event)\"\n (blur)=\"_handleBlur($event)\"\n #startDate\n data-automation-id=\"date-range-input-start\"\n [disabled]=\"disabled\"\n />\n <novo-icon *ngIf=\"!hasStartValue\" (click)=\"openPanel()\">calendar</novo-icon>\n <novo-icon *ngIf=\"hasStartValue\" (click)=\"clearStartValue()\">x</novo-icon>\n </div>\n <div class=\"date-range-input-divider\">-</div>\n <div class=\"date-range-input-container\">\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedEndDate\"\n [imask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (keydown)=\"_onEndInputChange($event)\"\n (input)=\"_onEndInputChange($event)\"\n (focus)=\"_handleFocus($event)\"\n (blur)=\"_handleBlur($event)\"\n #endDate\n data-automation-id=\"date-range-input-end\"\n [disabled]=\"disabled\"\n />\n <novo-icon *ngIf=\"!hasEndValue\" (click)=\"openPanel()\">calendar</novo-icon>\n <novo-icon *ngIf=\"hasEndValue\" (click)=\"clearEndValue()\">x</novo-icon>\n </div>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n [mode]=\"mode\"\n range=\"true\"\n inline=\"true\"\n (onSelect)=\"setValueAndClose($event)\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./DateRangeInput.scss'],\n standalone: false,\n})\nexport class NovoDateRangeInputElement implements OnInit, OnChanges, ControlValueAccessor {\n public formattedStartDate: string = '';\n public formattedEndDate: string = '';\n private userDefinedFormat: boolean;\n\n @Input()\n name: string;\n @Input()\n start: Date;\n @Input()\n end: Date;\n @Input()\n weekRangeSelect: boolean = false;\n @Input()\n mode: string = 'range';\n @Input()\n placeholder: string;\n @Input()\n maskOptions: any;\n @Input()\n format: string;\n @Input()\n textMaskEnabled: boolean = true;\n @Input()\n allowInvalidDate: boolean = false;\n @Input()\n weekStart: number = 0;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n private _value: RangeModel = { startDate: null, endDate: null };\n private _disabled: boolean = false;\n\n @Input() get value(): RangeModel {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n this._setFormValue(value);\n this.onChangeCallback(this._value);\n }\n }\n\n // Disabled State\n @Input()\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = !!value;\n }\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n ) {\n this.placeholder = this.labels.dateFormatString().toUpperCase() || this.labels.dateFormatPlaceholder;\n }\n\n ngOnInit() {\n this._initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['format'].includes(key))) {\n this._initFormatOptions();\n }\n }\n\n _initFormatOptions() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n if (!this.userDefinedFormat && this.textMaskEnabled && !this.allowInvalidDate) {\n this.maskOptions = this.maskOptions || this.dateFormatService.getDateMask();\n } else {\n this.maskOptions = undefined;\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.overlay.openPanel();\n }\n }\n\n closePanel(): void {\n this.overlay && this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n this.blurEvent.emit(event);\n }\n\n _handleFocus(event: FocusEvent): void {\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n protected formatDate(value: string) {\n try {\n const [dateTimeValue] = this.dateFormatService.parseString(value, false, 'date');\n return dateTimeValue ? new Date(dateTimeValue) : null;\n } catch (err) {\n return null;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n _onStartInputChange(event: KeyboardEvent) {\n this._handleKeydown(event);\n if (document.activeElement === event.target) {\n event.stopPropagation();\n const startDate = this.formatDate((event.target as HTMLInputElement).value);\n if (startDate) {\n this.value = {\n ...this.value,\n startDate,\n };\n this.change.emit(this.value);\n }\n }\n }\n\n _onEndInputChange(event: KeyboardEvent) {\n this._handleKeydown(event);\n if (document.activeElement === event.target) {\n event.stopPropagation();\n const endDate = this.formatDate((event.target as HTMLInputElement).value);\n if (endDate) {\n this.value = {\n ...this.value,\n endDate,\n };\n this.change.emit(this.value);\n }\n }\n }\n\n private _setFormValue(value: RangeModel): void {\n if (this.value) {\n this.formattedStartDate = this.formatDateValue(this.value.startDate);\n this.formattedEndDate = this.formatDateValue(this.value.endDate);\n }\n }\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: any | null): void {\n if (event && event.startDate && event.endDate) {\n const startDate = event.startDate.date;\n const endDate = event.endDate.date;\n this.value = { startDate, endDate };\n this.change.emit(this.value);\n }\n this.closePanel();\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearStartValue() {\n this.formattedStartDate = '';\n this.value = { ...this.value, startDate: null };\n this.change.emit(this.value);\n }\n public clearEndValue() {\n this.formattedEndDate = '';\n this.value = { ...this.value, endDate: null };\n this.change.emit(this.value);\n }\n\n public formatDateValue(value) {\n const originalValue = value;\n try {\n if (!value) {\n return '';\n }\n if (this.userDefinedFormat && isValid(value)) {\n return DateUtil.format(value, this.format);\n }\n if (!(value instanceof Date)) {\n value = new Date(value);\n }\n if (!(isNaN(value.valueOf()) && this.allowInvalidDate)) {\n return this.labels.formatDateWithFormat(value, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n });\n } else {\n return originalValue;\n }\n } catch (err) {\n return '';\n }\n }\n\n public get hasStartValue() {\n return !Helpers.isEmpty(this.value?.startDate);\n }\n public get hasEndValue() {\n return !Helpers.isEmpty(this.value?.endDate);\n }\n}\n","// NG\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// App\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { Helpers, Key } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst MULTI_DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoMultiDateInputElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-multi-date-input',\n providers: [MULTI_DATE_VALUE_ACCESSOR],\n template: `\n <novo-chip-list>\n <novo-chip *ngFor=\"let date of value | default: []\" (removed)=\"remove($event, date)\">\n {{ date | date: format }}\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n </novo-chip-list>\n <div class=\"chip-input-container\" (click)=\"_handleFocus($event)\">\n <span class=\"placeholder\" *ngIf=\"!value.length\" data-automation-id=\"multi-date-input\">{{ placeholder }}</span>\n </div>\n <novo-icon class=\"panel-toggle\" [class.selected]=\"panelOpen\" (click)=\"openPanel()\">calendar</novo-icon>\n <label class=\"clear-all\" *ngIf=\"value.length\" (click)=\"clearValue()\">{{ labels.clearAll }} <i class=\"bhi-times\"></i></label>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n mode=\"multiple\"\n (onSelect)=\"setValueAndClose($event)\"\n [(ngModel)]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n `,\n styleUrls: ['./MultiDateInput.scss'],\n standalone: false,\n})\nexport class NovoMultiDateInputElement implements OnInit, ControlValueAccessor {\n public formattedStartDate: string = '';\n public formattedEndDate: string = '';\n private userDefinedFormat: boolean;\n\n @Input()\n name: string;\n @Input()\n start: Date;\n @Input()\n end: Date;\n @Input()\n placeholder: string;\n @Input()\n format: string = 'shortDate';\n @Input()\n allowInvalidDate: boolean = false;\n @Input()\n weekStart: number = 0;\n @Input()\n chipsCount: number = 5;\n @Output()\n blurEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n @Output()\n focusEvent: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n private _value: Date[] = [];\n private _disabled: boolean = false;\n private notShown: any = {};\n\n @Input() get value(): Date[] {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n this.onChangeCallback(this._value);\n }\n }\n\n // Disabled State\n @Input()\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = !!value;\n }\n\n constructor(\n public element: ElementRef,\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n public dateFormatService: DateFormatService,\n ) {\n this.placeholder = this.labels.dateFormatString().toUpperCase() || this.labels.dateFormatPlaceholder;\n }\n\n ngOnInit() {\n this.userDefinedFormat = this.format ? !this.format.match(/^(DD\\/MM\\/YYYY|MM\\/DD\\/YYYY)$/g) : false;\n }\n\n formatter(value) {\n const [dateTimeValue, formatted] = this.dateFormatService.parseString(value, false, 'date');\n return formatted;\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(): void {\n if (!this.disabled) {\n this.panelOpen ? this.overlay.closePanel() : this.overlay.openPanel();\n }\n }\n\n closePanel(): void {\n this.overlay && this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n /** END: Convenient Panel Methods. */\n\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.key === Key.Escape || event.key === Key.Enter || event.key === Key.Tab) && this.panelOpen) {\n this.closePanel();\n event.stopPropagation();\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n this.blurEvent.emit(event);\n }\n\n _handleFocus(event: FocusEvent): void {\n this.openPanel();\n this.focusEvent.emit(event);\n }\n\n remove(event: any, date: Date) {\n const current = new Set(this.value);\n if (current.has(date)) {\n current.delete(date);\n }\n this.value = [...current];\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n public setValueAndClose(event: Date[] = []): void {\n if (event) {\n this.value = event;\n this.change.emit(this.value);\n }\n }\n\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n public clearValue() {\n this.value = [];\n this.change.emit(this.value);\n }\n\n public get hasValue() {\n return !Helpers.isEmpty(this.value);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// Vendor\nimport { IMaskModule } from 'angular-imask';\nimport { NovoPipesModule } from 'novo-elements/pipes';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCalendarModule } from 'novo-elements/elements/calendar';\nimport { NovoChipsModule } from 'novo-elements/elements/chips';\nimport { NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoDatePickerElement } from './DatePicker';\nimport { NovoDatePickerInputElement } from './DatePickerInput';\nimport { NovoDateRangeInputElement } from './DateRangeInput';\nimport { NovoMultiDateInputElement } from './MultiDateInput';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NovoButtonModule,\n NovoPipesModule,\n NovoOverlayModule,\n IMaskModule,\n NovoIconModule,\n NovoChipsModule,\n NovoCalendarModule,\n ],\n declarations: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement],\n exports: [NovoDatePickerElement, NovoDatePickerInputElement, NovoDateRangeInputElement, NovoMultiDateInputElement],\n})\nexport class NovoDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","__decorate","DATE_VALUE_ACCESSOR","i2","i5","i7.NovoDatePickerElement","i4","i6"],"mappings":"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"}