@energycap/components 0.42.4-esbuild.20250131-1105 → 0.42.4-esbuild.20250131-1219

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 (324) hide show
  1. package/package.json +5 -1
  2. package/esm2022/energycap-components.mjs +0 -5
  3. package/esm2022/lib/components.module.mjs +0 -423
  4. package/esm2022/lib/controls/banner/banner.component.mjs +0 -109
  5. package/esm2022/lib/controls/button/button.component.mjs +0 -106
  6. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
  7. package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
  8. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
  9. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
  10. package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -248
  11. package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
  12. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
  13. package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
  14. package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
  15. package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
  16. package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
  17. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
  18. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
  19. package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
  20. package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
  21. package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
  22. package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
  23. package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -464
  24. package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
  25. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
  26. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
  27. package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -98
  28. package/esm2022/lib/controls/form-control-base.mjs +0 -151
  29. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
  30. package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
  31. package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
  32. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
  33. package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
  34. package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
  35. package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
  36. package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
  37. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
  38. package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
  39. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
  40. package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
  41. package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
  42. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
  43. package/esm2022/lib/controls/select/select.component.mjs +0 -88
  44. package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
  45. package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
  46. package/esm2022/lib/core/cache.service.mjs +0 -105
  47. package/esm2022/lib/core/custom-validators.mjs +0 -29
  48. package/esm2022/lib/core/date-time-helper.mjs +0 -228
  49. package/esm2022/lib/core/error.service.mjs +0 -61
  50. package/esm2022/lib/core/router-helper.service.mjs +0 -111
  51. package/esm2022/lib/core/scroll.service.mjs +0 -89
  52. package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
  53. package/esm2022/lib/core/telemetry.service.mjs +0 -38
  54. package/esm2022/lib/core/validation-message.service.mjs +0 -185
  55. package/esm2022/lib/core/validation-patterns.mjs +0 -31
  56. package/esm2022/lib/core/window.service.mjs +0 -186
  57. package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -46
  58. package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
  59. package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
  60. package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
  61. package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
  62. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
  63. package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
  64. package/esm2022/lib/display/dialog/dialog.component.mjs +0 -281
  65. package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
  66. package/esm2022/lib/display/help/help-types.mjs +0 -2
  67. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
  68. package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
  69. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
  70. package/esm2022/lib/display/item-display/item-display.component.mjs +0 -81
  71. package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
  72. package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
  73. package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
  74. package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
  75. package/esm2022/lib/display/splash/splash.component.mjs +0 -42
  76. package/esm2022/lib/display/splash/splash.service.mjs +0 -35
  77. package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
  78. package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
  79. package/esm2022/lib/display/table/searchable-table.component.mjs +0 -342
  80. package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
  81. package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
  82. package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
  83. package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
  84. package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
  85. package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
  86. package/esm2022/lib/display/table/table.component.mjs +0 -249
  87. package/esm2022/lib/display/tags/tag.mjs +0 -18
  88. package/esm2022/lib/display/tags/tags.component.mjs +0 -77
  89. package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
  90. package/esm2022/lib/display/toast/toast-types.mjs +0 -8
  91. package/esm2022/lib/display/toast/toast.service.mjs +0 -35
  92. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
  93. package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
  94. package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
  95. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
  96. package/esm2022/lib/display/tour/tour-types.mjs +0 -34
  97. package/esm2022/lib/display/tour/tour.component.mjs +0 -398
  98. package/esm2022/lib/display/tour/tour.service.mjs +0 -75
  99. package/esm2022/lib/display/tree/tree.component.mjs +0 -135
  100. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
  101. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
  102. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
  103. package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
  104. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
  105. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
  106. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
  107. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
  108. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
  109. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
  110. package/esm2022/lib/shared/display.mjs +0 -6
  111. package/esm2022/lib/shared/form-group.helper.mjs +0 -67
  112. package/esm2022/lib/shared/json-helper.mjs +0 -19
  113. package/esm2022/lib/shared/lodash-helper.mjs +0 -52
  114. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
  115. package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
  116. package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
  117. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
  118. package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
  119. package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
  120. package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
  121. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  122. package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
  123. package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
  124. package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
  125. package/esm2022/lib/shared/user-preference.service.mjs +0 -17
  126. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
  127. package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
  128. package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
  129. package/esm2022/public-api.mjs +0 -117
  130. package/fesm2022/energycap-components.mjs +0 -13219
  131. package/fesm2022/energycap-components.mjs.map +0 -1
  132. package/index.d.ts +0 -5
  133. package/lib/components.module.d.ts +0 -92
  134. package/lib/controls/banner/banner.component.d.ts +0 -50
  135. package/lib/controls/button/button.component.d.ts +0 -78
  136. package/lib/controls/button/copy-button-base.directive.d.ts +0 -20
  137. package/lib/controls/button/copy-button.directive.d.ts +0 -14
  138. package/lib/controls/button/copy-table-button.directive.d.ts +0 -19
  139. package/lib/controls/calendar/calendar-item.component.d.ts +0 -22
  140. package/lib/controls/calendar/calendar.component.d.ts +0 -52
  141. package/lib/controls/calendar/calendar.types.d.ts +0 -11
  142. package/lib/controls/checkbox/checkbox.component.d.ts +0 -65
  143. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +0 -25
  144. package/lib/controls/combobox/combobox.component.d.ts +0 -418
  145. package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +0 -42
  146. package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +0 -21
  147. package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +0 -21
  148. package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +0 -21
  149. package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +0 -18
  150. package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +0 -18
  151. package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +0 -21
  152. package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +0 -20
  153. package/lib/controls/date-input/date-input.component.d.ts +0 -115
  154. package/lib/controls/date-input/date-input.types.d.ts +0 -62
  155. package/lib/controls/dropdown/dropdown.component.d.ts +0 -161
  156. package/lib/controls/file-upload/file-upload.component.d.ts +0 -124
  157. package/lib/controls/form-control/form-control.component.d.ts +0 -28
  158. package/lib/controls/form-control-base.d.ts +0 -110
  159. package/lib/controls/form-control-label/form-control-label.component.d.ts +0 -73
  160. package/lib/controls/form-group/form-group.component.d.ts +0 -105
  161. package/lib/controls/help-popover/help-popover.component.d.ts +0 -11
  162. package/lib/controls/item-picker/item-picker.component.d.ts +0 -164
  163. package/lib/controls/link-button/link-button.component.d.ts +0 -5
  164. package/lib/controls/menu/menu.component.d.ts +0 -255
  165. package/lib/controls/navigation/link-item.d.ts +0 -32
  166. package/lib/controls/navigation/nav-group.d.ts +0 -18
  167. package/lib/controls/navigation/nav-item-active.directive.d.ts +0 -42
  168. package/lib/controls/navigation/nav-item.d.ts +0 -31
  169. package/lib/controls/numericbox/numericbox.component.d.ts +0 -148
  170. package/lib/controls/popover/popover.component.d.ts +0 -51
  171. package/lib/controls/radio-button/radio-button-option.d.ts +0 -19
  172. package/lib/controls/radio-button/radio-button.component.d.ts +0 -53
  173. package/lib/controls/select/select.component.d.ts +0 -44
  174. package/lib/controls/tabs/tabs.component.d.ts +0 -30
  175. package/lib/controls/textbox/textbox.component.d.ts +0 -107
  176. package/lib/core/cache.service.d.ts +0 -33
  177. package/lib/core/custom-validators.d.ts +0 -20
  178. package/lib/core/date-time-helper.d.ts +0 -101
  179. package/lib/core/error.service.d.ts +0 -20
  180. package/lib/core/router-helper.service.d.ts +0 -48
  181. package/lib/core/scroll.service.d.ts +0 -36
  182. package/lib/core/telemetry-tracker.service.d.ts +0 -13
  183. package/lib/core/telemetry.service.d.ts +0 -31
  184. package/lib/core/validation-message.service.d.ts +0 -26
  185. package/lib/core/validation-patterns.d.ts +0 -22
  186. package/lib/core/window.service.d.ts +0 -116
  187. package/lib/display/app-bar/app-bar.component.d.ts +0 -20
  188. package/lib/display/avatar/avatar.component.d.ts +0 -35
  189. package/lib/display/avatar/avatar.service.d.ts +0 -24
  190. package/lib/display/confirm/confirm.component.d.ts +0 -123
  191. package/lib/display/dialog/dialog-content.d.ts +0 -19
  192. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +0 -32
  193. package/lib/display/dialog/dialog-types.d.ts +0 -130
  194. package/lib/display/dialog/dialog.component.d.ts +0 -120
  195. package/lib/display/dialog/dialog.service.d.ts +0 -48
  196. package/lib/display/help/help-types.d.ts +0 -33
  197. package/lib/display/hierarchy/hierarchy-base.d.ts +0 -97
  198. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +0 -53
  199. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +0 -34
  200. package/lib/display/item-display/item-display.component.d.ts +0 -43
  201. package/lib/display/json-display/json-display.component.d.ts +0 -16
  202. package/lib/display/resizable/resizable-base.d.ts +0 -67
  203. package/lib/display/resizable/resizable.component.d.ts +0 -31
  204. package/lib/display/spinner/spinner.component.d.ts +0 -5
  205. package/lib/display/splash/splash.component.d.ts +0 -16
  206. package/lib/display/splash/splash.service.d.ts +0 -22
  207. package/lib/display/table/resizable-column.component.d.ts +0 -10
  208. package/lib/display/table/resizable-table.directive.d.ts +0 -93
  209. package/lib/display/table/searchable-table.component.d.ts +0 -206
  210. package/lib/display/table/table-detail-row.component.d.ts +0 -8
  211. package/lib/display/table/table-locked-column.component.d.ts +0 -20
  212. package/lib/display/table/table-master-header-row.component.d.ts +0 -9
  213. package/lib/display/table/table-master-row.component.d.ts +0 -113
  214. package/lib/display/table/table-pagination.component.d.ts +0 -91
  215. package/lib/display/table/table-selectable-row.component.d.ts +0 -102
  216. package/lib/display/table/table.component.d.ts +0 -121
  217. package/lib/display/tags/tag.d.ts +0 -18
  218. package/lib/display/tags/tags.component.d.ts +0 -48
  219. package/lib/display/toast/toast/toast.component.d.ts +0 -23
  220. package/lib/display/toast/toast-types.d.ts +0 -24
  221. package/lib/display/toast/toast.service.d.ts +0 -20
  222. package/lib/display/toast/toaster/toaster.component.d.ts +0 -35
  223. package/lib/display/tooltip/tooltip.component.d.ts +0 -70
  224. package/lib/display/tooltip/tooltip.service.d.ts +0 -16
  225. package/lib/display/tooltip-directive/tooltip.directive.d.ts +0 -44
  226. package/lib/display/tour/tour-types.d.ts +0 -70
  227. package/lib/display/tour/tour.component.d.ts +0 -147
  228. package/lib/display/tour/tour.service.d.ts +0 -38
  229. package/lib/display/tree/tree.component.d.ts +0 -75
  230. package/lib/display/view-overlay/view-overlay.component.d.ts +0 -38
  231. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +0 -14
  232. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +0 -60
  233. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
  234. package/lib/shared/directives/popup/popup-container.directive.d.ts +0 -101
  235. package/lib/shared/display/pipes/date-display.pipe.d.ts +0 -21
  236. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +0 -9
  237. package/lib/shared/display/pipes/relative-date.pipe.d.ts +0 -36
  238. package/lib/shared/display/pipes/row-count.pipe.d.ts +0 -23
  239. package/lib/shared/display/pipes/time-display.pipe.d.ts +0 -18
  240. package/lib/shared/display.d.ts +0 -42
  241. package/lib/shared/form-group.helper.d.ts +0 -31
  242. package/lib/shared/json-helper.d.ts +0 -7
  243. package/lib/shared/lodash-helper.d.ts +0 -18
  244. package/lib/shared/page/page-base/page-base.component.d.ts +0 -259
  245. package/lib/shared/page/page-statuses.d.ts +0 -13
  246. package/lib/shared/page/page-title/page-title.component.d.ts +0 -9
  247. package/lib/shared/page/page-view/page-view.component.d.ts +0 -102
  248. package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +0 -4
  249. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +0 -4
  250. package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +0 -30
  251. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +0 -28
  252. package/lib/shared/testing/public-mocks.spec.d.ts +0 -90
  253. package/lib/shared/testing/spy-factory.spec.d.ts +0 -27
  254. package/lib/shared/testing/translation-mocks.spec.d.ts +0 -30
  255. package/lib/shared/user-preference.service.d.ts +0 -13
  256. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +0 -134
  257. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +0 -27
  258. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +0 -10
  259. package/public-api.d.ts +0 -113
  260. package/schematics/collection.json +0 -10
  261. package/schematics/rxjs-7-upgrade/index.d.ts +0 -3
  262. package/schematics/rxjs-7-upgrade/index.js +0 -68
  263. package/schematics/rxjs-7-upgrade/index.js.map +0 -1
  264. package/schematics/rxjs-7-upgrade/schema.d.ts +0 -4
  265. package/schematics/rxjs-7-upgrade/schema.js +0 -3
  266. package/schematics/rxjs-7-upgrade/schema.js.map +0 -1
  267. package/schematics/rxjs-7-upgrade/schema.json +0 -14
  268. package/schematics/utilities/typescript.d.ts +0 -7
  269. package/schematics/utilities/typescript.js +0 -42
  270. package/schematics/utilities/typescript.js.map +0 -1
  271. package/schematics/utilities/workspace.d.ts +0 -8
  272. package/schematics/utilities/workspace.js +0 -72
  273. package/schematics/utilities/workspace.js.map +0 -1
  274. package/src/assets/images/email-icon.png +0 -0
  275. package/src/assets/images/email-logo.png +0 -0
  276. package/src/assets/images/favicon-ech.svg +0 -7
  277. package/src/assets/images/favicon-esa.svg +0 -6
  278. package/src/assets/images/favicon-eum.svg +0 -6
  279. package/src/assets/images/favicon.svg +0 -5
  280. package/src/assets/images/icon-carbonhub.svg +0 -10
  281. package/src/assets/images/icon-eum.svg +0 -5
  282. package/src/assets/images/icon-ucp.svg +0 -5
  283. package/src/assets/images/icon-wattics.svg +0 -5
  284. package/src/assets/images/icon.svg +0 -4
  285. package/src/assets/images/logo.svg +0 -3
  286. package/src/assets/images/splash.gif +0 -0
  287. package/src/assets/locales/en_US.json +0 -59
  288. package/src/assets/scripts/unsupported-browser.js +0 -17
  289. package/src/styles/_base.scss +0 -38
  290. package/src/styles/_colors.scss +0 -96
  291. package/src/styles/_core.scss +0 -4
  292. package/src/styles/_functions.scss +0 -114
  293. package/src/styles/_global-variables.scss +0 -232
  294. package/src/styles/_icons.scss +0 -24
  295. package/src/styles/bootstrap/_grid.scss +0 -34
  296. package/src/styles/bootstrap/_reboot.scss +0 -323
  297. package/src/styles/components/_card.scss +0 -21
  298. package/src/styles/components/_link-icons.scss +0 -38
  299. package/src/styles/components/_splash.scss +0 -57
  300. package/src/styles/components/_unsupported-browsers.scss +0 -24
  301. package/src/styles/email/_email-base.scss +0 -228
  302. package/src/styles/email/email.scss +0 -43
  303. package/src/styles/index.scss +0 -27
  304. package/src/styles/mixins/_animations.scss +0 -18
  305. package/src/styles/mixins/_button-base.scss +0 -185
  306. package/src/styles/mixins/_card-base.scss +0 -40
  307. package/src/styles/mixins/_common.scss +0 -52
  308. package/src/styles/mixins/_dialog-base.scss +0 -96
  309. package/src/styles/mixins/_form-control-base.scss +0 -641
  310. package/src/styles/mixins/_login.scss +0 -74
  311. package/src/styles/mixins/_menu-base.scss +0 -153
  312. package/src/styles/mixins/_overlay-base.scss +0 -33
  313. package/src/styles/mixins/_resizable-base.scss +0 -57
  314. package/src/styles/mixins/_spinner-base.scss +0 -34
  315. package/src/styles/mixins/_table-base.scss +0 -298
  316. package/src/styles/mixins/_tabs-base.scss +0 -110
  317. package/src/styles/mixins/_tags-base.scss +0 -116
  318. package/src/styles/mixins/_text.scss +0 -89
  319. package/src/styles/mixins.scss +0 -15
  320. package/src/styles/utilities/_borders.scss +0 -30
  321. package/src/styles/utilities/_common.scss +0 -49
  322. package/src/styles/utilities/_layout.scss +0 -116
  323. package/src/styles/utilities/_spacing.scss +0 -65
  324. package/src/styles/utilities/_text.scss +0 -139
@@ -1,57 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- /**
4
- * Contains the logic for selecting, formatting, and parsing date dates for a specific selection mode.
5
- */
6
- export class DateInputSelectionStrategyBase {
7
- /** Parses the string into a date using the provided parse formats. */
8
- parseString(value, parseFormats, opts) {
9
- if (!value) {
10
- return null;
11
- }
12
- const date = moment(value, parseFormats);
13
- if (date.isValid()) {
14
- // If we're in a temporary state (when the user is typing in a textbox), we need to set the year to the current year if it's before the min year
15
- // This prevents the calendars from showing unhelpful dates that are in the distant past before the user finishes typing in the date.
16
- // We don't do this modification when the real selection happens on textbox blur.
17
- if (opts?.shiftToCurrentYearIfBelow && date.isBefore(opts.shiftToCurrentYearIfBelow)) {
18
- date.set('year', moment().year());
19
- }
20
- return date.toDate();
21
- }
22
- return null;
23
- }
24
- /** Returns a new selection for the provided date. */
25
- getSelectionForQuickSelectDate(date, existingSelection) {
26
- return this.getSelectionFromDate(date, existingSelection);
27
- }
28
- /** Returns the view for the primary calendar for the selection and selection mode */
29
- getPrimaryCalendarView(selection, minDate, maxDate, currentView) {
30
- let date;
31
- // If we have a range, use the end date, defaulting to the start date or today
32
- if (DateInput.isSelectionRange(selection)) {
33
- date = selection.end || selection.start || new Date();
34
- // If we have a single date, use it, defaulting to today
35
- }
36
- else {
37
- date = selection || new Date();
38
- }
39
- // Ensure the date is within the min and max dates
40
- date = date < minDate ? minDate : date;
41
- date = date > maxDate ? maxDate : date;
42
- // If the current calendar view mode is valid for the selection mode, use it, otherwise use the selection view mode
43
- // This prevents the calendar from changing view modes as the user types/blurs the textboxes as long as the view mode is valid
44
- const viewMode = this.validViewModes.includes(currentView.mode) ? currentView.mode : this.selectionViewMode;
45
- return { mode: viewMode, date };
46
- }
47
- ;
48
- /**
49
- * Returns the view for the secondary calendar for the selection and selection mode.
50
- * This is is only used by the range selection strategy. All others just return the current date.
51
- */
52
- getSecondaryCalendarView(selection, minDate, maxDate, currentView) {
53
- return { mode: this.selectionViewMode, date: new Date() };
54
- }
55
- ;
56
- }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiw4QkFBOEI7SUFTbEQsc0VBQXNFO0lBQ3RFLFdBQVcsQ0FBQyxLQUFnQyxFQUFFLFlBQXNCLEVBQUUsSUFBK0I7UUFDbkcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLGdKQUFnSjtZQUNoSixxSUFBcUk7WUFDckksaUZBQWlGO1lBQ2pGLElBQUksSUFBSSxFQUFFLHlCQUF5QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDckYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQWFELHFEQUFxRDtJQUNyRCw4QkFBOEIsQ0FBQyxJQUFVLEVBQUUsaUJBQThDO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFNRCxxRkFBcUY7SUFDckYsc0JBQXNCLENBQUMsU0FBcUMsRUFBRSxPQUFhLEVBQUUsT0FBYSxFQUFFLFdBQTBCO1FBQ3BILElBQUksSUFBVSxDQUFDO1FBRWYsOEVBQThFO1FBQzlFLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hELHdEQUF3RDtRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELElBQUksR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFdkMsbUhBQW1IO1FBQ25ILDhIQUE4SDtRQUM5SCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUU1RyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQUEsQ0FBQztJQUVGOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLFNBQXFDLEVBQUUsT0FBYSxFQUFFLE9BQWEsRUFBRSxXQUEwQjtRQUN0SCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFBO0lBQzNELENBQUM7SUFBQSxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4uL2RhdGUtaW5wdXQudHlwZXNcIjtcclxuXHJcbi8qKlxyXG4gKiBDb250YWlucyB0aGUgbG9naWMgZm9yIHNlbGVjdGluZywgZm9ybWF0dGluZywgYW5kIHBhcnNpbmcgZGF0ZSBkYXRlcyBmb3IgYSBzcGVjaWZpYyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xyXG4gIC8qKiBUaGUgY2FsZW5kYXIgdmlldyBtb2RlIHdoZXJlIHNlbGVjdGlvbnMgb2NjdXIgZm9yIHRoaXMgbW9kZS4gVGhpcyBpcyB1c2VkIHRvIHpvb20gdGhlIGNhbGVuZGFyIGludG8gdGhlIHNlbGVjdGlvbiAqL1xyXG4gIGFic3RyYWN0IHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZTtcclxuICAvKiogVGhlIGxpc3Qgb2YgdmlldyBtb2RlcyB0aGF0IGFyZSBhY2Nlc3NpYmxlIGJ5IHRoaXMgc2VsZWN0aW9uIG1vZGUuIFVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGVuZGFyIHZpZXcgbmVlZHMgdG8gYmUgY2hhbmdlZCBvciBub3Qgb24gc2VsZWN0aW9uIGNoYW5nZS4gKi9cclxuICBhYnN0cmFjdCByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXTtcclxuICAvKiogV2hldGhlciB0aGUgc2Vjb25kYXJ5IHRleHRib3ggc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIHNlbGVjdGlvbiBtb2RlICovXHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3g6IGJvb2xlYW47XHJcbiAgLyoqIFdoZXRoZXIgdGhlIHNlY29uZGFyeSBjYWxlbmRhciBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgc2VsZWN0aW9uIG1vZGUgKi9cclxuICBhYnN0cmFjdCByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXI6IGJvb2xlYW47XHJcbiAgLyoqIFBhcnNlcyB0aGUgc3RyaW5nIGludG8gYSBkYXRlIHVzaW5nIHRoZSBwcm92aWRlZCBwYXJzZSBmb3JtYXRzLiAqL1xyXG4gIHBhcnNlU3RyaW5nKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZSB8IG51bGwge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodmFsdWUsIHBhcnNlRm9ybWF0cyk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIC8vIElmIHdlJ3JlIGluIGEgdGVtcG9yYXJ5IHN0YXRlICh3aGVuIHRoZSB1c2VyIGlzIHR5cGluZyBpbiBhIHRleHRib3gpLCB3ZSBuZWVkIHRvIHNldCB0aGUgeWVhciB0byB0aGUgY3VycmVudCB5ZWFyIGlmIGl0J3MgYmVmb3JlIHRoZSBtaW4geWVhclxyXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSBjYWxlbmRhcnMgZnJvbSBzaG93aW5nIHVuaGVscGZ1bCBkYXRlcyB0aGF0IGFyZSBpbiB0aGUgZGlzdGFudCBwYXN0IGJlZm9yZSB0aGUgdXNlciBmaW5pc2hlcyB0eXBpbmcgaW4gdGhlIGRhdGUuXHJcbiAgICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgbW9kaWZpY2F0aW9uIHdoZW4gdGhlIHJlYWwgc2VsZWN0aW9uIGhhcHBlbnMgb24gdGV4dGJveCBibHVyLlxyXG4gICAgICBpZiAob3B0cz8uc2hpZnRUb0N1cnJlbnRZZWFySWZCZWxvdyAmJiBkYXRlLmlzQmVmb3JlKG9wdHMuc2hpZnRUb0N1cnJlbnRZZWFySWZCZWxvdykpIHtcclxuICAgICAgICBkYXRlLnNldCgneWVhcicsIG1vbWVudCgpLnllYXIoKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICAvKiogRm9ybWF0cyBhIGRhdGUgaW5wdXQgc2VsZWN0aW9uIGludG8gdmFsdWVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZGF0ZSBpbnB1dCdzIHRleHRib3hlcy4gKi9cclxuICBhYnN0cmFjdCBmb3JtYXRTZWxlY3Rpb24oc2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddO1xyXG4gIC8qKiBcclxuICAgKiBQYXJzZXMgdGhlIGRhdGUgaW5wdXQncyB2YWx1ZXMgaW50byBhIGRhdGUgc2VsZWN0aW9uIHRvIGRpc3BsYXkgaW4gdGhlIGNhbGVuZGFycy5cclxuICAgKiBgcGFyc2VGcm9tRW5kYCBjb250cm9scyB3aGV0aGVyIHRoZSBmaXhlZCByYW5nZSBtb2RlcyAobGFzdDdkYXlzLCBsYXN0MjhkYXlzKSB3aWxsIGtleSBvZmYgdGhlIGVuZCBkYXRlIGluc3RlYWQgb2YgdGhlIHN0YXJ0IGRhdGUuXHJcbiAgICogVGhpcyBpcyB1c2VkIHdoZW4gdGhlIHVzZXIgaXMgdHlwaW5nIGluIHRoZSBlbmQgZGF0ZSB0ZXh0Ym94LlxyXG4gICAqL1xyXG4gIGFic3RyYWN0IHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xyXG4gIC8qKiBSZXR1cm5zIGEgc2VsZWN0aW9uIGdpdmVuIGEgZGF0ZSBhbmQgYW4gZXhpc3Rpbmcgc2VsZWN0aW9uIChpbiB0aGUgY2FzZSBvZiBkYXRlIHJhbmdlcykuIENhbGxlZCB3aGVuIGEgZGF0ZSBpcyBjbGlja2VkIGluIHRoZSBjYWxlbmRhcnMuICovXHJcbiAgYWJzdHJhY3QgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSwgZXhpc3RpbmdTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xyXG4gIC8qKiBSZXR1cm5zIGEgbmV3IHNlbGVjdGlvbiB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgZ2l2ZW4gcHJldmlvdXMgc2VsZWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgc2VsZWN0aW9uIG1vZGUgKi9cclxuICBhYnN0cmFjdCBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xyXG4gIC8qKiBSZXR1cm5zIGEgbmV3IHNlbGVjdGlvbiBmb3IgdGhlIHByb3ZpZGVkIGRhdGUuICovXHJcbiAgZ2V0U2VsZWN0aW9uRm9yUXVpY2tTZWxlY3REYXRlKGRhdGU6IERhdGUsIGV4aXN0aW5nU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLCBleGlzdGluZ1NlbGVjdGlvbik7XHJcbiAgfVxyXG4gIC8qKiBSZXR1cm5zIHRoZSBuZXh0IHNlbGVjdGlvbi4gQ2FsbGVkIGJ5IHRoZSBkYXRlIGlucHV0IHN0ZXBwZXJzIHRvIG1vdmUgdGhlIHJhbmdlLiAqL1xyXG4gIGFic3RyYWN0IGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xyXG4gIC8qKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24uIENhbGxlZCBieSB0aGUgZGF0ZSBpbnB1dCBzdGVwcGVycyB0byBtb3ZlIHRoZSByYW5nZS4gKi9cclxuICBhYnN0cmFjdCBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGw7XHJcbiAgXHJcbiAgLyoqIFJldHVybnMgdGhlIHZpZXcgZm9yIHRoZSBwcmltYXJ5IGNhbGVuZGFyIGZvciB0aGUgc2VsZWN0aW9uIGFuZCBzZWxlY3Rpb24gbW9kZSAqL1xyXG4gIGdldFByaW1hcnlDYWxlbmRhclZpZXcoc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCwgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSwgY3VycmVudFZpZXc6IENhbGVuZGFyLlZpZXcpOiBDYWxlbmRhci5WaWV3IHtcclxuICAgIGxldCBkYXRlOiBEYXRlO1xyXG5cclxuICAgIC8vIElmIHdlIGhhdmUgYSByYW5nZSwgdXNlIHRoZSBlbmQgZGF0ZSwgZGVmYXVsdGluZyB0byB0aGUgc3RhcnQgZGF0ZSBvciB0b2RheVxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikpIHtcclxuICAgICAgZGF0ZSA9IHNlbGVjdGlvbi5lbmQgfHwgc2VsZWN0aW9uLnN0YXJ0IHx8IG5ldyBEYXRlKCk7XHJcbiAgICAvLyBJZiB3ZSBoYXZlIGEgc2luZ2xlIGRhdGUsIHVzZSBpdCwgZGVmYXVsdGluZyB0byB0b2RheVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0ZSA9IHNlbGVjdGlvbiB8fCBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEVuc3VyZSB0aGUgZGF0ZSBpcyB3aXRoaW4gdGhlIG1pbiBhbmQgbWF4IGRhdGVzXHJcbiAgICBkYXRlID0gZGF0ZSA8IG1pbkRhdGUgPyBtaW5EYXRlIDogZGF0ZTtcclxuICAgIGRhdGUgPSBkYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiBkYXRlO1xyXG5cclxuICAgIC8vIElmIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcgbW9kZSBpcyB2YWxpZCBmb3IgdGhlIHNlbGVjdGlvbiBtb2RlLCB1c2UgaXQsIG90aGVyd2lzZSB1c2UgdGhlIHNlbGVjdGlvbiB2aWV3IG1vZGVcclxuICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIGNhbGVuZGFyIGZyb20gY2hhbmdpbmcgdmlldyBtb2RlcyBhcyB0aGUgdXNlciB0eXBlcy9ibHVycyB0aGUgdGV4dGJveGVzIGFzIGxvbmcgYXMgdGhlIHZpZXcgbW9kZSBpcyB2YWxpZFxyXG4gICAgY29uc3Qgdmlld01vZGUgPSB0aGlzLnZhbGlkVmlld01vZGVzLmluY2x1ZGVzKGN1cnJlbnRWaWV3Lm1vZGUpID8gY3VycmVudFZpZXcubW9kZSA6IHRoaXMuc2VsZWN0aW9uVmlld01vZGU7XHJcblxyXG4gICAgcmV0dXJuIHsgbW9kZTogdmlld01vZGUsIGRhdGUgfTtcclxuICB9O1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHZpZXcgZm9yIHRoZSBzZWNvbmRhcnkgY2FsZW5kYXIgZm9yIHRoZSBzZWxlY3Rpb24gYW5kIHNlbGVjdGlvbiBtb2RlLlxyXG4gICAqIFRoaXMgaXMgaXMgb25seSB1c2VkIGJ5IHRoZSByYW5nZSBzZWxlY3Rpb24gc3RyYXRlZ3kuIEFsbCBvdGhlcnMganVzdCByZXR1cm4gdGhlIGN1cnJlbnQgZGF0ZS5cclxuICAgKi9cclxuICBnZXRTZWNvbmRhcnlDYWxlbmRhclZpZXcoc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCwgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSwgY3VycmVudFZpZXc6IENhbGVuZGFyLlZpZXcpOiBDYWxlbmRhci5WaWV3IHtcclxuICAgIHJldHVybiB7IG1vZGU6IHRoaXMuc2VsZWN0aW9uVmlld01vZGUsIGRhdGU6IG5ldyBEYXRlKCkgfVxyXG4gIH07XHJcbn1cclxuIl19
@@ -1,62 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
4
- /**
5
- * Selection strategy for the 'day' selection mode.
6
- */
7
- export class DaySelectionStrategy extends DateInputSelectionStrategyBase {
8
- constructor(dateDisplayPipe) {
9
- super();
10
- this.dateDisplayPipe = dateDisplayPipe;
11
- this.selectionViewMode = 'day';
12
- this.validViewModes = ['day', 'month', 'year'];
13
- this.showSecondaryTextbox = false;
14
- this.showSecondaryCalendar = false;
15
- }
16
- formatSelection(selection) {
17
- // If the selection is a single date, format it into the first textbox.
18
- if (DateInput.isSelectionSingleDate(selection)) {
19
- return { textbox: this.dateDisplayPipe.transform(selection, true), textbox2: null };
20
- // Otherwise, clear both textboxes. This shouldn't happen based on current date input flows,
21
- // and even if it did there's not really a good way to handle it.
22
- }
23
- else {
24
- return { textbox: null, textbox2: null };
25
- }
26
- }
27
- parseTextboxValues(value, parseFormats, opts) {
28
- return this.parseString(value.textbox, parseFormats, opts);
29
- }
30
- getSelectionFromDate(date) {
31
- // Nice and simple
32
- return date;
33
- }
34
- getNewSelectionFromExisting(previousSelection) {
35
- // If the previous selection was a range, return the end date and default to the start date if there isn't one.
36
- if (DateInput.isSelectionRange(previousSelection)) {
37
- return previousSelection.end || previousSelection.start;
38
- // If the previous selection was a single date, return it.
39
- }
40
- else if (DateInput.isSelectionSingleDate(previousSelection)) {
41
- return previousSelection;
42
- }
43
- return null;
44
- }
45
- getNextSelection(selection) {
46
- // Add a single day to the selection
47
- if (DateInput.isSelectionSingleDate(selection)) {
48
- return moment(selection).add(1, 'day').toDate();
49
- }
50
- // This shouldn't happen based on current date input flows, but if it does just return the selection as-is.
51
- return selection;
52
- }
53
- getPreviousSelection(selection) {
54
- // Subtract a single day from the selection
55
- if (DateInput.isSelectionSingleDate(selection)) {
56
- return moment(selection).subtract(1, 'day').toDate();
57
- }
58
- // This shouldn't happen based on current date input flows, but if it does just return the selection as-is.
59
- return selection;
60
- }
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXNlbGVjdGlvbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF5LXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDhCQUE4QjtJQU10RSxZQUNVLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBRkEsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTjFCLHNCQUFpQixHQUFzQixLQUFLLENBQUM7UUFDN0MsbUJBQWMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFzQztRQUNwRCx1RUFBdUU7UUFDdkUsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdEYsNEZBQTRGO1lBQzVGLGlFQUFpRTtRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVU7UUFDN0Isa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDJCQUEyQixDQUFDLGlCQUE4QztRQUN4RSwrR0FBK0c7UUFDL0csSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8saUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUMxRCwwREFBMEQ7UUFDMUQsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM5RCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFxQztRQUNwRCxvQ0FBb0M7UUFDcEMsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFFRCwyR0FBMkc7UUFDM0csT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUVELDJHQUEyRztRQUMzRyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kaXNwbGF5L3BpcGVzL2RhdGUtZGlzcGxheS5waXBlXCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnZGF5JyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXlTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdkYXknO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSBmYWxzZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlRGlzcGxheVBpcGU6IERhdGVEaXNwbGF5UGlwZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdFNlbGVjdGlvbihzZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xyXG4gICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBhIHNpbmdsZSBkYXRlLCBmb3JtYXQgaXQgaW50byB0aGUgZmlyc3QgdGV4dGJveC5cclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHNlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHsgdGV4dGJveDogdGhpcy5kYXRlRGlzcGxheVBpcGUudHJhbnNmb3JtKHNlbGVjdGlvbiwgdHJ1ZSksIHRleHRib3gyOiBudWxsIH07XHJcbiAgICAvLyBPdGhlcndpc2UsIGNsZWFyIGJvdGggdGV4dGJveGVzLiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmFzZWQgb24gY3VycmVudCBkYXRlIGlucHV0IGZsb3dzLFxyXG4gICAgLy8gYW5kIGV2ZW4gaWYgaXQgZGlkIHRoZXJlJ3Mgbm90IHJlYWxseSBhIGdvb2Qgd2F5IHRvIGhhbmRsZSBpdC5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IHRleHRib3g6IG51bGwsIHRleHRib3gyOiBudWxsIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIE5pY2UgYW5kIHNpbXBsZVxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgcmFuZ2UsIHJldHVybiB0aGUgZW5kIGRhdGUgYW5kIGRlZmF1bHQgdG8gdGhlIHN0YXJ0IGRhdGUgaWYgdGhlcmUgaXNuJ3Qgb25lLlxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb24uZW5kIHx8IHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0O1xyXG4gICAgLy8gSWYgdGhlIHByZXZpb3VzIHNlbGVjdGlvbiB3YXMgYSBzaW5nbGUgZGF0ZSwgcmV0dXJuIGl0LlxyXG4gICAgfSBlbHNlIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBBZGQgYSBzaW5nbGUgZGF5IHRvIHRoZSBzZWxlY3Rpb25cclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHNlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIG1vbWVudChzZWxlY3Rpb24pLmFkZCgxLCAnZGF5JykudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJhc2VkIG9uIGN1cnJlbnQgZGF0ZSBpbnB1dCBmbG93cywgYnV0IGlmIGl0IGRvZXMganVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcy5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gU3VidHJhY3QgYSBzaW5nbGUgZGF5IGZyb20gdGhlIHNlbGVjdGlvblxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUoc2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gbW9tZW50KHNlbGVjdGlvbikuc3VidHJhY3QoMSwgJ2RheScpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiYXNlZCBvbiBjdXJyZW50IGRhdGUgaW5wdXQgZmxvd3MsIGJ1dCBpZiBpdCBkb2VzIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,100 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
4
- /**
5
- * Selection strategy for the 'last 28 days' selection mode.
6
- */
7
- export class Last28DaysSelectionStrategy extends DateInputSelectionStrategyBase {
8
- constructor(rangeStrategy) {
9
- super();
10
- this.rangeStrategy = rangeStrategy;
11
- this.selectionViewMode = 'day';
12
- this.validViewModes = ['day', 'month', 'year'];
13
- this.showSecondaryTextbox = true;
14
- this.showSecondaryCalendar = false;
15
- }
16
- formatSelection(value) {
17
- // Delegate to the range strategy for formatting since the logic is the same
18
- return this.rangeStrategy.formatSelection(value);
19
- }
20
- parseTextboxValues(value, parseFormats, opts) {
21
- let start = this.parseString(value.textbox, parseFormats, opts);
22
- let end = this.parseString(value.textbox2, parseFormats, opts);
23
- if (start && end) {
24
- // Even if both dates are provided, it's possible that they don't match a 28-day range
25
- // Update the start and end dates to match a 28-day range, keying off the end date if parseFromEnd is true
26
- // parseFromEnd is true when a date is being entered from the end date textbox
27
- if (opts?.parseFromEnd) {
28
- start = moment(end).subtract(27, 'days').toDate();
29
- }
30
- else {
31
- end = moment(start).add(27, 'days').toDate();
32
- }
33
- }
34
- // If the start date is not provided, we'll use the end date to calculate the start date
35
- if (!start && end && !opts?.preventAutoComplete) {
36
- start = moment(end).subtract(27, 'days').toDate();
37
- }
38
- // If the end date is not provided, we'll use the start date to calculate the end date
39
- if (!end && start && !opts?.preventAutoComplete) {
40
- end = moment(start).add(27, 'days').toDate();
41
- }
42
- if (!start && !end) {
43
- return null;
44
- }
45
- else {
46
- return { start, end };
47
- }
48
- }
49
- getSelectionFromDate(date) {
50
- return {
51
- start: moment(date).subtract(27, 'days').toDate(),
52
- end: date
53
- };
54
- }
55
- getNewSelectionFromExisting(previousSelection) {
56
- if (DateInput.isSelectionRange(previousSelection)) {
57
- // If the range only has a start date, make the 28-day range start on that date
58
- if (!previousSelection.end && previousSelection.start) {
59
- return {
60
- start: previousSelection.start,
61
- end: moment(previousSelection.start).add(27, 'days').toDate()
62
- };
63
- // If the range only has an end date, make the 28-day range end on that date
64
- }
65
- else if (previousSelection.end) {
66
- return this.getSelectionFromDate(previousSelection.end);
67
- }
68
- // If the previous selection was a single date, make the range the 28 days ending on that date
69
- }
70
- else if (DateInput.isSelectionSingleDate(previousSelection)) {
71
- return this.getSelectionFromDate(previousSelection);
72
- }
73
- return null;
74
- }
75
- getNextSelection(selection) {
76
- // Move the selection to the next 28 days
77
- if (DateInput.isSelectionRange(selection) && selection.end) {
78
- return {
79
- start: moment(selection.end).add(1, 'day').toDate(),
80
- end: moment(selection.end).add(28, 'days').toDate()
81
- };
82
- }
83
- // This shouldn't happen since the next stepper is disabled if the selection only has one date.
84
- // Just return the selection as-is in this case.
85
- return selection;
86
- }
87
- getPreviousSelection(selection) {
88
- // Move the selection to the previous 28 days
89
- if (DateInput.isSelectionRange(selection) && selection.start) {
90
- return {
91
- start: moment(selection.start).subtract(28, 'days').toDate(),
92
- end: moment(selection.start).subtract(1, 'day').toDate()
93
- };
94
- }
95
- // This shouldn't happen since the previous stepper is disabled if the selection only has one date.
96
- // Just return the selection as-is in this case.
97
- return selection;
98
- }
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC0yOC1kYXlzLXNlbGVjdGlvbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvbGFzdC0yOC1kYXlzLXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDhCQUE4QjtJQU03RSxZQUNVLGFBQXFDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBRkEsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBTi9CLHNCQUFpQixHQUFzQixLQUFLLENBQUM7UUFDN0MsbUJBQWMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFrQztRQUNoRCw0RUFBNEU7UUFDNUUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBc0MsRUFBRSxZQUFzQixFQUFFLElBQStCO1FBQ2hILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FB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RUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNuRCxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTthQUNwRCxDQUFDO1FBQ0osQ0FBQztRQUVELCtGQUErRjtRQUMvRixnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDZDQUE2QztRQUM3QyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7YUFDekQsQ0FBQztRQUNKLENBQUM7UUFFRCxtR0FBbUc7UUFDbkcsZ0RBQWdEO1FBQ2hELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCIuLi8uLi9jYWxlbmRhci9jYWxlbmRhci50eXBlc1wiO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tIFwiLi4vZGF0ZS1pbnB1dC50eXBlc1wiO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2UgfSBmcm9tIFwiLi9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVneS1iYXNlXCI7XHJcbmltcG9ydCB7IFJhbmdlU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi9yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3lcIjtcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnbGFzdCAyOCBkYXlzJyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXN0MjhEYXlzU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25WaWV3TW9kZTogQ2FsZW5kYXIuVmlld01vZGUgPSAnZGF5JztcclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRWaWV3TW9kZXM6IENhbGVuZGFyLlZpZXdNb2RlW10gPSBbJ2RheScsICdtb250aCcsICd5ZWFyJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gdHJ1ZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByYW5nZVN0cmF0ZWd5OiBSYW5nZVNlbGVjdGlvblN0cmF0ZWd5XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U2VsZWN0aW9uKHZhbHVlPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcclxuICAgIC8vIERlbGVnYXRlIHRvIHRoZSByYW5nZSBzdHJhdGVneSBmb3IgZm9ybWF0dGluZyBzaW5jZSB0aGUgbG9naWMgaXMgdGhlIHNhbWVcclxuICAgIHJldHVybiB0aGlzLnJhbmdlU3RyYXRlZ3kuZm9ybWF0U2VsZWN0aW9uKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGxldCBzdGFydCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcclxuICAgIGxldCBlbmQgPSB0aGlzLnBhcnNlU3RyaW5nKHZhbHVlLnRleHRib3gyLCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG5cclxuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcclxuICAgICAgLy8gRXZlbiBpZiBib3RoIGRhdGVzIGFyZSBwcm92aWRlZCwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZXkgZG9uJ3QgbWF0Y2ggYSAyOC1kYXkgcmFuZ2VcclxuICAgICAgLy8gVXBkYXRlIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzIHRvIG1hdGNoIGEgMjgtZGF5IHJhbmdlLCBrZXlpbmcgb2ZmIHRoZSBlbmQgZGF0ZSBpZiBwYXJzZUZyb21FbmQgaXMgdHJ1ZVxyXG4gICAgICAvLyBwYXJzZUZyb21FbmQgaXMgdHJ1ZSB3aGVuIGEgZGF0ZSBpcyBiZWluZyBlbnRlcmVkIGZyb20gdGhlIGVuZCBkYXRlIHRleHRib3hcclxuICAgICAgaWYgKG9wdHM/LnBhcnNlRnJvbUVuZCkge1xyXG4gICAgICAgIHN0YXJ0ID0gbW9tZW50KGVuZCkuc3VidHJhY3QoMjcsICdkYXlzJykudG9EYXRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW5kID0gbW9tZW50KHN0YXJ0KS5hZGQoMjcsICdkYXlzJykudG9EYXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgc3RhcnQgZGF0ZSBpcyBub3QgcHJvdmlkZWQsIHdlJ2xsIHVzZSB0aGUgZW5kIGRhdGUgdG8gY2FsY3VsYXRlIHRoZSBzdGFydCBkYXRlXHJcbiAgICBpZiAoIXN0YXJ0ICYmIGVuZCAmJiAhb3B0cz8ucHJldmVudEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICBzdGFydCA9IG1vbWVudChlbmQpLnN1YnRyYWN0KDI3LCAnZGF5cycpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBlbmQgZGF0ZSBpcyBub3QgcHJvdmlkZWQsIHdlJ2xsIHVzZSB0aGUgc3RhcnQgZGF0ZSB0byBjYWxjdWxhdGUgdGhlIGVuZCBkYXRlXHJcbiAgICBpZiAoIWVuZCAmJiBzdGFydCAmJiAhb3B0cz8ucHJldmVudEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICBlbmQgPSBtb21lbnQoc3RhcnQpLmFkZCgyNywgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXN0YXJ0ICYmICFlbmQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlOiBEYXRlKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHsgXHJcbiAgICAgIHN0YXJ0OiBtb21lbnQoZGF0ZSkuc3VidHJhY3QoMjcsICdkYXlzJykudG9EYXRlKCksXHJcbiAgICAgIGVuZDogZGF0ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldE5ld1NlbGVjdGlvbkZyb21FeGlzdGluZyhwcmV2aW91c1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24pOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2UocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIC8vIElmIHRoZSByYW5nZSBvbmx5IGhhcyBhIHN0YXJ0IGRhdGUsIG1ha2UgdGhlIDI4LWRheSByYW5nZSBzdGFydCBvbiB0aGF0IGRhdGVcclxuICAgICAgaWYgKCFwcmV2aW91c1NlbGVjdGlvbi5lbmQgJiYgcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc3RhcnQ6IHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0LFxyXG4gICAgICAgICAgZW5kOiBtb21lbnQocHJldmlvdXNTZWxlY3Rpb24uc3RhcnQpLmFkZCgyNywgJ2RheXMnKS50b0RhdGUoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIC8vIElmIHRoZSByYW5nZSBvbmx5IGhhcyBhbiBlbmQgZGF0ZSwgbWFrZSB0aGUgMjgtZGF5IHJhbmdlIGVuZCBvbiB0aGF0IGRhdGVcclxuICAgICAgfSBlbHNlIGlmIChwcmV2aW91c1NlbGVjdGlvbi5lbmQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbi5lbmQpO1xyXG4gICAgICB9XHJcbiAgICAvLyBJZiB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHdhcyBhIHNpbmdsZSBkYXRlLCBtYWtlIHRoZSByYW5nZSB0aGUgMjggZGF5cyBlbmRpbmcgb24gdGhhdCBkYXRlXHJcbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIE1vdmUgdGhlIHNlbGVjdGlvbiB0byB0aGUgbmV4dCAyOCBkYXlzXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uZW5kKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc3RhcnQ6IG1vbWVudChzZWxlY3Rpb24uZW5kKS5hZGQoMSwgJ2RheScpLnRvRGF0ZSgpLFxyXG4gICAgICAgIGVuZDogbW9tZW50KHNlbGVjdGlvbi5lbmQpLmFkZCgyOCwgJ2RheXMnKS50b0RhdGUoKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgbmV4dCBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBwcmV2aW91cyAyOCBkYXlzXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uc3RhcnQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzdGFydDogbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuc3VidHJhY3QoMjgsICdkYXlzJykudG9EYXRlKCksXHJcbiAgICAgICAgZW5kOiBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCgxLCAnZGF5JykudG9EYXRlKClcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIEp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMgaW4gdGhpcyBjYXNlLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,101 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
4
- /**
5
- * Selection strategy for the 'last 7 days' selection mode.
6
- */
7
- export class Last7DaysSelectionStrategy extends DateInputSelectionStrategyBase {
8
- constructor(rangeStrategy) {
9
- super();
10
- this.rangeStrategy = rangeStrategy;
11
- this.selectionViewMode = 'day';
12
- this.validViewModes = ['day', 'month', 'year'];
13
- this.showSecondaryTextbox = true;
14
- this.showSecondaryCalendar = false;
15
- }
16
- formatSelection(value) {
17
- // Delegate to the range strategy for formatting since the logic is the same
18
- return this.rangeStrategy.formatSelection(value);
19
- }
20
- parseTextboxValues(value, parseFormats, opts) {
21
- let start = this.parseString(value.textbox, parseFormats, opts);
22
- let end = this.parseString(value.textbox2, parseFormats, opts);
23
- if (start && end) {
24
- // Even if both dates are provided, it's possible that they don't match a 7-day range
25
- // Update the start and end dates to match a 7-day range, keying off the end date if parseFromEnd is true
26
- // parseFromEnd is true when a date is being entered from the end date textbox
27
- if (opts?.parseFromEnd) {
28
- start = moment(end).subtract(6, 'days').toDate();
29
- }
30
- else {
31
- end = moment(start).add(6, 'days').toDate();
32
- }
33
- }
34
- // If the start date is not provided, we'll use the end date to calculate the start date
35
- if (!start && end && !opts?.preventAutoComplete) {
36
- start = moment(end).subtract(6, 'days').toDate();
37
- }
38
- // If the end date is not provided, we'll use the start date to calculate the end date
39
- if (!end && start && !opts?.preventAutoComplete) {
40
- end = moment(start).add(6, 'days').toDate();
41
- }
42
- if (!start && !end) {
43
- return null;
44
- }
45
- else {
46
- return { start, end };
47
- }
48
- }
49
- getSelectionFromDate(date) {
50
- // Base the selection on the given date, moving back 6 days
51
- return {
52
- start: moment(date).subtract(6, 'days').toDate(),
53
- end: date
54
- };
55
- }
56
- getNewSelectionFromExisting(previousSelection) {
57
- if (DateInput.isSelectionRange(previousSelection)) {
58
- // If we don't have an end date, create the new selection based on the start date forwards
59
- if (!previousSelection.end && previousSelection.start) {
60
- return {
61
- start: previousSelection.start,
62
- end: moment(previousSelection.start).add(6, 'days').toDate()
63
- };
64
- // Otherwise, create the new selection based on the end date backwards
65
- }
66
- else if (previousSelection.end) {
67
- return this.getSelectionFromDate(previousSelection.end);
68
- }
69
- // If we only have a single date, create the new selection based on that date backwards
70
- }
71
- else if (DateInput.isSelectionSingleDate(previousSelection)) {
72
- return this.getSelectionFromDate(previousSelection);
73
- }
74
- return null;
75
- }
76
- getNextSelection(selection) {
77
- // Shift the range forward by 7 days
78
- if (DateInput.isSelectionRange(selection) && selection.end) {
79
- return {
80
- start: moment(selection.end).add(1, 'day').toDate(),
81
- end: moment(selection.end).add(7, 'days').toDate()
82
- };
83
- }
84
- // This shouldn't happen since the next stepper is disabled if the selection only has one date.
85
- // Just return the selection as-is in this case.
86
- return selection;
87
- }
88
- getPreviousSelection(selection) {
89
- // Shift the range back 7 days
90
- if (DateInput.isSelectionRange(selection) && selection.start) {
91
- return {
92
- start: moment(selection.start).subtract(7, 'days').toDate(),
93
- end: moment(selection.start).subtract(1, 'day').toDate()
94
- };
95
- }
96
- // This shouldn't happen since the previous stepper is disabled if the selection only has one date.
97
- // Just return the selection as-is in this case.
98
- return selection;
99
- }
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC03LWRheXMtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9sYXN0LTctZGF5cy1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd0Rjs7R0FFRztBQUNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSw4QkFBOEI7SUFNNUUsWUFDVSxhQUFxQztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQUZBLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQU4vQixzQkFBaUIsR0FBc0IsS0FBSyxDQUFDO1FBQzdDLG1CQUFjLEdBQXdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBTTlDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBa0M7UUFDaEQsNEVBQTRFO1FBQzVFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMs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Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2FBQ25ELENBQUM7UUFDSixDQUFDO1FBRUQsK0ZBQStGO1FBQy9GLGdEQUFnRDtRQUNoRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsOEJBQThCO1FBQzlCLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxPQUFPO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUMzRCxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTthQUN6RCxDQUFDO1FBQ0osQ0FBQztRQUVELG1HQUFtRztRQUNuRyxnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuaW1wb3J0IHsgUmFuZ2VTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3JhbmdlLXNlbGVjdGlvbi1zdHJhdGVneVwiO1xyXG5cclxuLyoqXHJcbiAqIFNlbGVjdGlvbiBzdHJhdGVneSBmb3IgdGhlICdsYXN0IDcgZGF5cycgc2VsZWN0aW9uIG1vZGUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGFzdDdEYXlzU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25WaWV3TW9kZTogQ2FsZW5kYXIuVmlld01vZGUgPSAnZGF5JztcclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRWaWV3TW9kZXM6IENhbGVuZGFyLlZpZXdNb2RlW10gPSBbJ2RheScsICdtb250aCcsICd5ZWFyJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gdHJ1ZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByYW5nZVN0cmF0ZWd5OiBSYW5nZVNlbGVjdGlvblN0cmF0ZWd5XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U2VsZWN0aW9uKHZhbHVlPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcclxuICAgIC8vIERlbGVnYXRlIHRvIHRoZSByYW5nZSBzdHJhdGVneSBmb3IgZm9ybWF0dGluZyBzaW5jZSB0aGUgbG9naWMgaXMgdGhlIHNhbWVcclxuICAgIHJldHVybiB0aGlzLnJhbmdlU3RyYXRlZ3kuZm9ybWF0U2VsZWN0aW9uKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGxldCBzdGFydCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcclxuICAgIGxldCBlbmQgPSB0aGlzLnBhcnNlU3RyaW5nKHZhbHVlLnRleHRib3gyLCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG5cclxuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcclxuICAgICAgLy8gRXZlbiBpZiBib3RoIGRhdGVzIGFyZSBwcm92aWRlZCwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZXkgZG9uJ3QgbWF0Y2ggYSA3LWRheSByYW5nZVxyXG4gICAgICAvLyBVcGRhdGUgdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMgdG8gbWF0Y2ggYSA3LWRheSByYW5nZSwga2V5aW5nIG9mZiB0aGUgZW5kIGRhdGUgaWYgcGFyc2VGcm9tRW5kIGlzIHRydWVcclxuICAgICAgLy8gcGFyc2VGcm9tRW5kIGlzIHRydWUgd2hlbiBhIGRhdGUgaXMgYmVpbmcgZW50ZXJlZCBmcm9tIHRoZSBlbmQgZGF0ZSB0ZXh0Ym94XHJcbiAgICAgIGlmIChvcHRzPy5wYXJzZUZyb21FbmQpIHtcclxuICAgICAgICBzdGFydCA9IG1vbWVudChlbmQpLnN1YnRyYWN0KDYsICdkYXlzJykudG9EYXRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW5kID0gbW9tZW50KHN0YXJ0KS5hZGQoNiwgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBzdGFydCBkYXRlIGlzIG5vdCBwcm92aWRlZCwgd2UnbGwgdXNlIHRoZSBlbmQgZGF0ZSB0byBjYWxjdWxhdGUgdGhlIHN0YXJ0IGRhdGVcclxuICAgIGlmICghc3RhcnQgJiYgZW5kICYmICFvcHRzPy5wcmV2ZW50QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHN0YXJ0ID0gbW9tZW50KGVuZCkuc3VidHJhY3QoNiwgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgZW5kIGRhdGUgaXMgbm90IHByb3ZpZGVkLCB3ZSdsbCB1c2UgdGhlIHN0YXJ0IGRhdGUgdG8gY2FsY3VsYXRlIHRoZSBlbmQgZGF0ZVxyXG4gICAgaWYgKCFlbmQgJiYgc3RhcnQgJiYgIW9wdHM/LnByZXZlbnRBdXRvQ29tcGxldGUpIHtcclxuICAgICAgZW5kID0gbW9tZW50KHN0YXJ0KS5hZGQoNiwgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXN0YXJ0ICYmICFlbmQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlOiBEYXRlKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gQmFzZSB0aGUgc2VsZWN0aW9uIG9uIHRoZSBnaXZlbiBkYXRlLCBtb3ZpbmcgYmFjayA2IGRheXNcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHN0YXJ0OiBtb21lbnQoZGF0ZSkuc3VidHJhY3QoNiwgJ2RheXMnKS50b0RhdGUoKSxcclxuICAgICAgZW5kOiBkYXRlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2UocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW4gZW5kIGRhdGUsIGNyZWF0ZSB0aGUgbmV3IHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgc3RhcnQgZGF0ZSBmb3J3YXJkc1xyXG4gICAgICBpZiAoIXByZXZpb3VzU2VsZWN0aW9uLmVuZCAmJiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBzdGFydDogcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQsXHJcbiAgICAgICAgICBlbmQ6IG1vbWVudChwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkuYWRkKDYsICdkYXlzJykudG9EYXRlKClcclxuICAgICAgICB9O1xyXG4gICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHNlbGVjdGlvbiBiYXNlZCBvbiB0aGUgZW5kIGRhdGUgYmFja3dhcmRzXHJcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNTZWxlY3Rpb24uZW5kKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24uZW5kKTtcclxuICAgICAgfVxyXG4gICAgLy8gSWYgd2Ugb25seSBoYXZlIGEgc2luZ2xlIGRhdGUsIGNyZWF0ZSB0aGUgbmV3IHNlbGVjdGlvbiBiYXNlZCBvbiB0aGF0IGRhdGUgYmFja3dhcmRzXHJcbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIFNoaWZ0IHRoZSByYW5nZSBmb3J3YXJkIGJ5IDcgZGF5c1xyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLmVuZCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHN0YXJ0OiBtb21lbnQoc2VsZWN0aW9uLmVuZCkuYWRkKDEsICdkYXknKS50b0RhdGUoKSxcclxuICAgICAgICBlbmQ6IG1vbWVudChzZWxlY3Rpb24uZW5kKS5hZGQoNywgJ2RheXMnKS50b0RhdGUoKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgbmV4dCBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gU2hpZnQgdGhlIHJhbmdlIGJhY2sgNyBkYXlzXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uc3RhcnQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzdGFydDogbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuc3VidHJhY3QoNywgJ2RheXMnKS50b0RhdGUoKSxcclxuICAgICAgICBlbmQ6IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdkYXknKS50b0RhdGUoKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgcHJldmlvdXMgc3RlcHBlciBpcyBkaXNhYmxlZCBpZiB0aGUgc2VsZWN0aW9uIG9ubHkgaGFzIG9uZSBkYXRlLlxyXG4gICAgLy8gSnVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcyBpbiB0aGlzIGNhc2UuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,76 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
4
- /**
5
- * Selection strategy for the 'month' selection mode.
6
- */
7
- export class MonthSelectionStrategy extends DateInputSelectionStrategyBase {
8
- constructor() {
9
- super(...arguments);
10
- this.selectionViewMode = 'month';
11
- this.validViewModes = ['month', 'year'];
12
- this.showSecondaryTextbox = false;
13
- this.showSecondaryCalendar = false;
14
- }
15
- formatSelection(selection) {
16
- if (!selection) {
17
- return { textbox: null, textbox2: null };
18
- }
19
- // We only need one date in the range to format since it only spans one month
20
- // A single date selection shouldn't happen in this mode but it's simple enough to handle
21
- const date = DateInput.isSelectionRange(selection) ? selection.start : selection;
22
- return {
23
- textbox: moment(date).format('MMM, YYYY'),
24
- textbox2: null
25
- };
26
- }
27
- parseTextboxValues(value, parseFormats, opts) {
28
- // Only one textbox is used in this mode
29
- const date = this.parseString(value.textbox, parseFormats, opts);
30
- if (!date) {
31
- return null;
32
- }
33
- return this.getSelectionFromDate(date);
34
- }
35
- getSelectionFromDate(date) {
36
- return {
37
- start: moment(date).startOf('month').toDate(),
38
- end: moment(date).endOf('month').toDate()
39
- };
40
- }
41
- getNewSelectionFromExisting(previousSelection) {
42
- if (DateInput.isSelectionRange(previousSelection)) {
43
- // We'll use the existing selection's end date and fall back to the start date if it's not available
44
- const date = previousSelection.end || previousSelection.start;
45
- if (date) {
46
- return this.getSelectionFromDate(date);
47
- }
48
- }
49
- else if (DateInput.isSelectionSingleDate(previousSelection)) {
50
- // If the previous selection was a single date, make the range that month
51
- return this.getSelectionFromDate(previousSelection);
52
- }
53
- return null;
54
- }
55
- getNextSelection(selection) {
56
- // Move the selection to the next month
57
- if (DateInput.isSelectionRange(selection) && selection.start) {
58
- const date = moment(selection.start).add(1, 'month');
59
- return this.getSelectionFromDate(date.toDate());
60
- }
61
- // This shouldn't happen since the next stepper is disabled if the selection only has one date.
62
- // If it does, just return the selection as-is.
63
- return selection;
64
- }
65
- getPreviousSelection(selection) {
66
- // Move the selection to the previous month
67
- if (DateInput.isSelectionRange(selection) && selection.start) {
68
- const date = moment(selection.start).subtract(1, 'month');
69
- return this.getSelectionFromDate(date.toDate());
70
- }
71
- // This shouldn't happen since the previous stepper is disabled if the selection only has one date.
72
- // If it does, just return the selection as-is.
73
- return selection;
74
- }
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9tb250aC1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw4QkFBOEI7SUFBMUU7O1FBQ2tCLHNCQUFpQixHQUFzQixPQUFPLENBQUM7UUFDL0MsbUJBQWMsR0FBd0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQXdFaEQsQ0FBQztJQXRFQyxlQUFlLENBQUMsU0FBc0M7UUFDcEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCw2RUFBNkU7UUFDN0UseUZBQXlGO1FBQ3pGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDekMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCx3Q0FBd0M7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVTtRQUM3QixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzdDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELDJCQUEyQixDQUFDLGlCQUF1QztRQUNqRSxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbEQsb0dBQW9HO1lBQ3BHLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDOUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM5RCx5RUFBeUU7WUFDekUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBcUM7UUFDcEQsdUNBQXVDO1FBQ3ZDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELCtGQUErRjtRQUMvRiwrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxtR0FBbUc7UUFDbkcsK0NBQStDO1FBQy9DLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCIuLi8uLi9jYWxlbmRhci9jYWxlbmRhci50eXBlc1wiO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tIFwiLi4vZGF0ZS1pbnB1dC50eXBlc1wiO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2UgfSBmcm9tIFwiLi9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVneS1iYXNlXCI7XHJcblxyXG4vKipcclxuICogU2VsZWN0aW9uIHN0cmF0ZWd5IGZvciB0aGUgJ21vbnRoJyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBNb250aFNlbGVjdGlvblN0cmF0ZWd5IGV4dGVuZHMgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uVmlld01vZGU6IENhbGVuZGFyLlZpZXdNb2RlID0gJ21vbnRoJztcclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRWaWV3TW9kZXM6IENhbGVuZGFyLlZpZXdNb2RlW10gPSBbJ21vbnRoJywgJ3llYXInXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSBmYWxzZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XHJcblxyXG4gIGZvcm1hdFNlbGVjdGlvbihzZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xyXG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIHsgdGV4dGJveDogbnVsbCwgdGV4dGJveDI6IG51bGwgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBXZSBvbmx5IG5lZWQgb25lIGRhdGUgaW4gdGhlIHJhbmdlIHRvIGZvcm1hdCBzaW5jZSBpdCBvbmx5IHNwYW5zIG9uZSBtb250aFxyXG4gICAgLy8gQSBzaW5nbGUgZGF0ZSBzZWxlY3Rpb24gc2hvdWxkbid0IGhhcHBlbiBpbiB0aGlzIG1vZGUgYnV0IGl0J3Mgc2ltcGxlIGVub3VnaCB0byBoYW5kbGVcclxuICAgIGNvbnN0IGRhdGUgPSBEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pID8gc2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9uO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dGJveDogbW9tZW50KGRhdGUpLmZvcm1hdCgnTU1NLCBZWVlZJyksXHJcbiAgICAgIHRleHRib3gyOiBudWxsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gT25seSBvbmUgdGV4dGJveCBpcyB1c2VkIGluIHRoaXMgbW9kZVxyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcclxuXHJcbiAgICBpZiAoIWRhdGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlOiBEYXRlKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3RhcnQ6IG1vbWVudChkYXRlKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpLFxyXG4gICAgICBlbmQ6IG1vbWVudChkYXRlKS5lbmRPZignbW9udGgnKS50b0RhdGUoKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldE5ld1NlbGVjdGlvbkZyb21FeGlzdGluZyhwcmV2aW91c1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24pOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2UocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZXhpc3Rpbmcgc2VsZWN0aW9uJ3MgZW5kIGRhdGUgYW5kIGZhbGwgYmFjayB0byB0aGUgc3RhcnQgZGF0ZSBpZiBpdCdzIG5vdCBhdmFpbGFibGVcclxuICAgICAgY29uc3QgZGF0ZSA9IHByZXZpb3VzU2VsZWN0aW9uLmVuZCB8fCBwcmV2aW91c1NlbGVjdGlvbi5zdGFydDtcclxuICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHdhcyBhIHNpbmdsZSBkYXRlLCBtYWtlIHRoZSByYW5nZSB0aGF0IG1vbnRoXHJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIE1vdmUgdGhlIHNlbGVjdGlvbiB0byB0aGUgbmV4dCBtb250aFxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7IFxyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuYWRkKDEsICdtb250aCcpO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIG5leHQgc3RlcHBlciBpcyBkaXNhYmxlZCBpZiB0aGUgc2VsZWN0aW9uIG9ubHkgaGFzIG9uZSBkYXRlLlxyXG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcy5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBwcmV2aW91cyBtb250aFxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBwcmV2aW91cyBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcbn1cclxuIl19
@@ -1,79 +0,0 @@
1
- import moment from "moment";
2
- import { DateInput } from "../date-input.types";
3
- import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
4
- /**
5
- * Selection strategy for the 'month' selection mode.
6
- */
7
- export class QuarterSelectionStrategy extends DateInputSelectionStrategyBase {
8
- constructor() {
9
- super(...arguments);
10
- this.selectionViewMode = 'quarter';
11
- this.validViewModes = ['quarter', 'year'];
12
- this.showSecondaryTextbox = false;
13
- this.showSecondaryCalendar = false;
14
- }
15
- formatSelection(selection) {
16
- // Format the the quarter range as "MMM–MMM, YYYY"
17
- // We only have one textbox in this mode
18
- if (DateInput.isSelectionRange(selection)) {
19
- const start = moment(selection.start).format('MMM');
20
- const end = moment(selection.end).format('MMM');
21
- const year = moment(selection.end).format('YYYY');
22
- return {
23
- textbox: `${start}–${end}, ${year}`,
24
- textbox2: null
25
- };
26
- }
27
- // This shouldn't happen since the selection should always be a range in quarter mode
28
- return { textbox: null, textbox2: null };
29
- }
30
- parseTextboxValues(value, parseFormats, opts) {
31
- // Only one textbox is used in this mode
32
- const date = this.parseString(value.textbox, parseFormats, opts);
33
- if (!date) {
34
- return null;
35
- }
36
- return this.getSelectionFromDate(date);
37
- }
38
- getSelectionFromDate(date) {
39
- return {
40
- start: moment(date).startOf('quarter').toDate(),
41
- end: moment(date).endOf('quarter').toDate()
42
- };
43
- }
44
- getNewSelectionFromExisting(previousSelection) {
45
- if (DateInput.isSelectionRange(previousSelection)) {
46
- // Base the quarter range off of the existing selection's end date, falling back to the start date
47
- const date = previousSelection.end || previousSelection.start;
48
- if (date) {
49
- return this.getSelectionFromDate(date);
50
- }
51
- }
52
- else if (DateInput.isSelectionSingleDate(previousSelection)) {
53
- // If the previous selection was a single date, make the range that quarter
54
- return this.getSelectionFromDate(previousSelection);
55
- }
56
- return null;
57
- }
58
- getNextSelection(selection) {
59
- // Move the selection to the next quarter
60
- if (DateInput.isSelectionRange(selection) && selection.start) {
61
- const date = moment(selection.start).add(1, 'quarter');
62
- return this.getSelectionFromDate(date.toDate());
63
- }
64
- // This shouldn't happen since the next stepper is disabled if the selection only has one date.
65
- // If it does, just return the selection as-is.
66
- return selection;
67
- }
68
- getPreviousSelection(selection) {
69
- // Move the selection to the previous quarter
70
- if (DateInput.isSelectionRange(selection) && selection.start) {
71
- const date = moment(selection.start).subtract(1, 'quarter');
72
- return this.getSelectionFromDate(date.toDate());
73
- }
74
- // This shouldn't happen since the previous stepper is disabled if the selection only has one date.
75
- // If it does, just return the selection as-is.
76
- return selection;
77
- }
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci1zZWxlY3Rpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVnaWVzL3F1YXJ0ZXItc2VsZWN0aW9uLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsOEJBQThCO0lBQTVFOztRQUNrQixzQkFBaUIsR0FBc0IsU0FBUyxDQUFDO1FBQ2pELG1CQUFjLEdBQXdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUEyRWhELENBQUM7SUF6RUMsZUFBZSxDQUFDLFNBQXNDO1FBQ3BELGtEQUFrRDtRQUNsRCx3Q0FBd0M7UUFDeEMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxHQUFHLEtBQUssSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUNuQyxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUM7UUFDSixDQUFDO1FBRUQscUZBQXFGO1FBQ3JGLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBc0MsRUFBRSxZQUFzQixFQUFFLElBQStCO1FBQ2hILHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFVO1FBQzdCLE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDL0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1NBQzVDLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQTJCLENBQUMsaUJBQXVDO1FBQ2pFLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNsRCxrR0FBa0c7WUFDbEcsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUM5RCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzlELDJFQUEyRTtZQUMzRSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFxQztRQUNwRCx5Q0FBeUM7UUFDekMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsK0ZBQStGO1FBQy9GLCtDQUErQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsNkNBQTZDO1FBQzdDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELG1HQUFtRztRQUNuRywrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnbW9udGgnIHNlbGVjdGlvbiBtb2RlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFF1YXJ0ZXJTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdxdWFydGVyJztcclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRWaWV3TW9kZXM6IENhbGVuZGFyLlZpZXdNb2RlW10gPSBbJ3F1YXJ0ZXInLCAneWVhciddO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5VGV4dGJveCA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXIgPSBmYWxzZTtcclxuXHJcbiAgZm9ybWF0U2VsZWN0aW9uKHNlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSB7XHJcbiAgICAvLyBGb3JtYXQgdGhlIHRoZSBxdWFydGVyIHJhbmdlIGFzIFwiTU1N4oCTTU1NLCBZWVlZXCJcclxuICAgIC8vIFdlIG9ubHkgaGF2ZSBvbmUgdGV4dGJveCBpbiB0aGlzIG1vZGVcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuZm9ybWF0KCdNTU0nKTtcclxuICAgICAgY29uc3QgZW5kID0gbW9tZW50KHNlbGVjdGlvbi5lbmQpLmZvcm1hdCgnTU1NJyk7XHJcbiAgICAgIGNvbnN0IHllYXIgPSBtb21lbnQoc2VsZWN0aW9uLmVuZCkuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdGV4dGJveDogYCR7c3RhcnR94oCTJHtlbmR9LCAke3llYXJ9YCxcclxuICAgICAgICB0ZXh0Ym94MjogbnVsbFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHNlbGVjdGlvbiBzaG91bGQgYWx3YXlzIGJlIGEgcmFuZ2UgaW4gcXVhcnRlciBtb2RlXHJcbiAgICByZXR1cm4geyB0ZXh0Ym94OiBudWxsLCB0ZXh0Ym94MjogbnVsbCB9O1xyXG4gIH1cclxuXHJcbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gT25seSBvbmUgdGV4dGJveCBpcyB1c2VkIGluIHRoaXMgbW9kZVxyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcclxuICAgIFxyXG4gICAgaWYgKCFkYXRlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHN0YXJ0OiBtb21lbnQoZGF0ZSkuc3RhcnRPZigncXVhcnRlcicpLnRvRGF0ZSgpLFxyXG4gICAgICBlbmQ6IG1vbWVudChkYXRlKS5lbmRPZigncXVhcnRlcicpLnRvRGF0ZSgpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbik6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgLy8gQmFzZSB0aGUgcXVhcnRlciByYW5nZSBvZmYgb2YgdGhlIGV4aXN0aW5nIHNlbGVjdGlvbidzIGVuZCBkYXRlLCBmYWxsaW5nIGJhY2sgdG8gdGhlIHN0YXJ0IGRhdGVcclxuICAgICAgY29uc3QgZGF0ZSA9IHByZXZpb3VzU2VsZWN0aW9uLmVuZCB8fCBwcmV2aW91c1NlbGVjdGlvbi5zdGFydDtcclxuICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHdhcyBhIHNpbmdsZSBkYXRlLCBtYWtlIHRoZSByYW5nZSB0aGF0IHF1YXJ0ZXJcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBuZXh0IHF1YXJ0ZXJcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuYWRkKDEsICdxdWFydGVyJyk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgbmV4dCBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHByZXZpb3VzIHF1YXJ0ZXJcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuc3VidHJhY3QoMSwgJ3F1YXJ0ZXInKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBwcmV2aW91cyBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcbn1cclxuIl19