@elliemae/ds-date-time-recurrence-picker 2.3.0-alpha.8 → 2.3.0-next.2

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 (207) hide show
  1. package/cjs/DSDateTimeRecurrenceSelector.js +199 -0
  2. package/cjs/__test__/DSDateTimeRecurrenceSelector.test.js +30 -0
  3. package/cjs/components/AlertModal/DateTimeRangeModal.js +67 -0
  4. package/cjs/components/CustomOptionRender/CustomOptionRender.js +93 -0
  5. package/cjs/components/DateTimeRangeModal/DateTimeRangeModal.js +122 -0
  6. package/cjs/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js +315 -0
  7. package/cjs/components/DateTimeRecurenceSelectorImpl.js +284 -0
  8. package/cjs/components/DayOfMonthPicker/DayOfMonthPicker.js +74 -0
  9. package/cjs/components/DayOfYearPicker/DayOfYearPicker.js +68 -0
  10. package/cjs/components/DaysOfWeekPicker/DaysOfWeekPicker.js +68 -0
  11. package/cjs/components/EndDate/EndDate.js +50 -0
  12. package/cjs/components/FieldWrapper/FieldWrapper.js +24 -0
  13. package/cjs/components/Forms/FormField.js +7 -0
  14. package/cjs/components/Forms/FormFieldGroup.js +7 -0
  15. package/cjs/components/Forms/FormGroup.js +11 -0
  16. package/cjs/components/Forms/FormLabel.js +7 -0
  17. package/cjs/components/LabelWrapper/LabelWrapper.js +24 -0
  18. package/cjs/components/RepeatPickerInput/RepeatPickerInput.js +69 -0
  19. package/cjs/components/StartDateTime/StartDateTime.js +42 -0
  20. package/cjs/components/TimeZonePicker/TimeZonePicker.js +44 -0
  21. package/cjs/components/ValidationMessage/ValidationMessage.js +24 -0
  22. package/cjs/components/helpers/nthday.js +13 -0
  23. package/cjs/index.js +29 -0
  24. package/cjs/options/dropdownDayOfMonthOptions.js +13 -0
  25. package/cjs/options/dropdownDayOfWeekOptions.js +28 -0
  26. package/cjs/options/dropdownDayOfYearOptions.js +13 -0
  27. package/cjs/options/dropdownPreselectedOptions.js +26 -0
  28. package/cjs/options/dropdownRepeatOptions.js +26 -0
  29. package/cjs/options/dropdownTimeZoneOptions.js +34 -0
  30. package/cjs/options/endTypesOptions.js +39 -0
  31. package/esm/DSDateTimeRecurrenceSelector.js +185 -0
  32. package/esm/__test__/DSDateTimeRecurrenceSelector.test.js +24 -0
  33. package/esm/components/AlertModal/DateTimeRangeModal.js +60 -0
  34. package/esm/components/CustomOptionRender/CustomOptionRender.js +87 -0
  35. package/esm/components/DateTimeRangeModal/DateTimeRangeModal.js +114 -0
  36. package/esm/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js +306 -0
  37. package/esm/components/DateTimeRecurenceSelectorImpl.js +277 -0
  38. package/esm/components/DayOfMonthPicker/DayOfMonthPicker.js +68 -0
  39. package/esm/components/DayOfYearPicker/DayOfYearPicker.js +62 -0
  40. package/esm/components/DaysOfWeekPicker/DaysOfWeekPicker.js +62 -0
  41. package/esm/components/EndDate/EndDate.js +43 -0
  42. package/esm/components/FieldWrapper/FieldWrapper.js +18 -0
  43. package/esm/components/Forms/FormField.js +5 -0
  44. package/esm/components/Forms/FormFieldGroup.js +5 -0
  45. package/esm/components/Forms/FormGroup.js +9 -0
  46. package/esm/components/Forms/FormLabel.js +5 -0
  47. package/esm/components/LabelWrapper/LabelWrapper.js +18 -0
  48. package/esm/components/RepeatPickerInput/RepeatPickerInput.js +61 -0
  49. package/esm/components/StartDateTime/StartDateTime.js +34 -0
  50. package/esm/components/TimeZonePicker/TimeZonePicker.js +38 -0
  51. package/esm/components/ValidationMessage/ValidationMessage.js +18 -0
  52. package/esm/components/helpers/nthday.js +6 -0
  53. package/esm/index.js +8 -0
  54. package/esm/options/dropdownDayOfMonthOptions.js +9 -0
  55. package/esm/options/dropdownDayOfWeekOptions.js +24 -0
  56. package/esm/options/dropdownDayOfYearOptions.js +9 -0
  57. package/esm/options/dropdownPreselectedOptions.js +21 -0
  58. package/esm/options/dropdownRepeatOptions.js +21 -0
  59. package/esm/options/dropdownTimeZoneOptions.js +29 -0
  60. package/esm/options/endTypesOptions.js +33 -0
  61. package/package.json +78 -80
  62. package/types/DSDateTimeRecurrenceSelector.d.ts +293 -0
  63. package/types/__test__/DSDateTimeRecurrenceSelector.test.d.ts +1 -0
  64. package/types/components/AlertModal/DateTimeRangeModal.d.ts +27 -0
  65. package/types/components/CustomOptionRender/CustomOptionRender.d.ts +53 -0
  66. package/types/components/DateTimeRangeModal/DateTimeRangeModal.d.ts +9 -0
  67. package/types/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.d.ts +18 -0
  68. package/types/components/DateTimeRecurenceSelectorImpl.d.ts +20 -0
  69. package/types/components/DayOfMonthPicker/DayOfMonthPicker.d.ts +15 -0
  70. package/types/components/DayOfYearPicker/DayOfYearPicker.d.ts +15 -0
  71. package/types/components/DaysOfWeekPicker/DaysOfWeekPicker.d.ts +12 -0
  72. package/types/components/EndDate/EndDate.d.ts +13 -0
  73. package/types/components/FieldWrapper/FieldWrapper.d.ts +5 -0
  74. package/types/components/Forms/FormField.d.ts +3 -0
  75. package/types/components/Forms/FormFieldGroup.d.ts +3 -0
  76. package/types/components/Forms/FormGroup.d.ts +6 -0
  77. package/types/components/Forms/FormLabel.d.ts +3 -0
  78. package/types/components/LabelWrapper/LabelWrapper.d.ts +5 -0
  79. package/types/components/RepeatPickerInput/RepeatPickerInput.d.ts +11 -0
  80. package/types/components/StartDateTime/StartDateTime.d.ts +9 -0
  81. package/types/components/TimeZonePicker/TimeZonePicker.d.ts +11 -0
  82. package/types/components/ValidationMessage/ValidationMessage.d.ts +5 -0
  83. package/types/components/helpers/nthday.d.ts +4 -0
  84. package/types/index.d.ts +2 -0
  85. package/types/options/dropdownDayOfMonthOptions.d.ts +4 -0
  86. package/types/options/dropdownDayOfWeekOptions.d.ts +4 -0
  87. package/types/options/dropdownDayOfYearOptions.d.ts +4 -0
  88. package/types/options/dropdownPreselectedOptions.d.ts +10 -0
  89. package/types/options/dropdownRepeatOptions.d.ts +10 -0
  90. package/types/options/dropdownTimeZoneOptions.d.ts +12 -0
  91. package/types/options/endTypesOptions.d.ts +13 -0
  92. package/dist/cjs/DSDateTimeRecurrenceSelector.js +0 -230
  93. package/dist/cjs/DSDateTimeRecurrenceSelector.js.map +0 -7
  94. package/dist/cjs/components/AlertModal/DateTimeRangeModal.js +0 -88
  95. package/dist/cjs/components/AlertModal/DateTimeRangeModal.js.map +0 -7
  96. package/dist/cjs/components/CustomOptionRender/CustomOptionRender.js +0 -86
  97. package/dist/cjs/components/CustomOptionRender/CustomOptionRender.js.map +0 -7
  98. package/dist/cjs/components/DateTimeRangeModal/DateTimeRangeModal.js +0 -134
  99. package/dist/cjs/components/DateTimeRangeModal/DateTimeRangeModal.js.map +0 -7
  100. package/dist/cjs/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js +0 -271
  101. package/dist/cjs/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js.map +0 -7
  102. package/dist/cjs/components/DateTimeRecurenceSelectorImpl.js +0 -254
  103. package/dist/cjs/components/DateTimeRecurenceSelectorImpl.js.map +0 -7
  104. package/dist/cjs/components/DayOfMonthPicker/DayOfMonthPicker.js +0 -87
  105. package/dist/cjs/components/DayOfMonthPicker/DayOfMonthPicker.js.map +0 -7
  106. package/dist/cjs/components/DayOfYearPicker/DayOfYearPicker.js +0 -83
  107. package/dist/cjs/components/DayOfYearPicker/DayOfYearPicker.js.map +0 -7
  108. package/dist/cjs/components/DaysOfWeekPicker/DaysOfWeekPicker.js +0 -78
  109. package/dist/cjs/components/DaysOfWeekPicker/DaysOfWeekPicker.js.map +0 -7
  110. package/dist/cjs/components/EndDate/EndDate.js +0 -69
  111. package/dist/cjs/components/EndDate/EndDate.js.map +0 -7
  112. package/dist/cjs/components/FieldWrapper/FieldWrapper.js +0 -43
  113. package/dist/cjs/components/FieldWrapper/FieldWrapper.js.map +0 -7
  114. package/dist/cjs/components/Forms/FormField.js +0 -36
  115. package/dist/cjs/components/Forms/FormField.js.map +0 -7
  116. package/dist/cjs/components/Forms/FormFieldGroup.js +0 -36
  117. package/dist/cjs/components/Forms/FormFieldGroup.js.map +0 -7
  118. package/dist/cjs/components/Forms/FormGroup.js +0 -36
  119. package/dist/cjs/components/Forms/FormGroup.js.map +0 -7
  120. package/dist/cjs/components/Forms/FormLabel.js +0 -36
  121. package/dist/cjs/components/Forms/FormLabel.js.map +0 -7
  122. package/dist/cjs/components/LabelWrapper/LabelWrapper.js +0 -43
  123. package/dist/cjs/components/LabelWrapper/LabelWrapper.js.map +0 -7
  124. package/dist/cjs/components/RepeatPickerInput/RepeatPickerInput.js +0 -74
  125. package/dist/cjs/components/RepeatPickerInput/RepeatPickerInput.js.map +0 -7
  126. package/dist/cjs/components/StartDateTime/StartDateTime.js +0 -60
  127. package/dist/cjs/components/StartDateTime/StartDateTime.js.map +0 -7
  128. package/dist/cjs/components/TimeZonePicker/TimeZonePicker.js +0 -62
  129. package/dist/cjs/components/TimeZonePicker/TimeZonePicker.js.map +0 -7
  130. package/dist/cjs/components/ValidationMessage/ValidationMessage.js +0 -41
  131. package/dist/cjs/components/ValidationMessage/ValidationMessage.js.map +0 -7
  132. package/dist/cjs/components/helpers/nthday.js +0 -62
  133. package/dist/cjs/components/helpers/nthday.js.map +0 -7
  134. package/dist/cjs/index.js +0 -36
  135. package/dist/cjs/index.js.map +0 -7
  136. package/dist/cjs/options/dropdownDayOfMonthOptions.js +0 -44
  137. package/dist/cjs/options/dropdownDayOfMonthOptions.js.map +0 -7
  138. package/dist/cjs/options/dropdownDayOfWeekOptions.js +0 -64
  139. package/dist/cjs/options/dropdownDayOfWeekOptions.js.map +0 -7
  140. package/dist/cjs/options/dropdownDayOfYearOptions.js +0 -44
  141. package/dist/cjs/options/dropdownDayOfYearOptions.js.map +0 -7
  142. package/dist/cjs/options/dropdownPreselectedOptions.js +0 -59
  143. package/dist/cjs/options/dropdownPreselectedOptions.js.map +0 -7
  144. package/dist/cjs/options/dropdownRepeatOptions.js +0 -59
  145. package/dist/cjs/options/dropdownRepeatOptions.js.map +0 -7
  146. package/dist/cjs/options/dropdownTimeZoneOptions.js +0 -69
  147. package/dist/cjs/options/dropdownTimeZoneOptions.js.map +0 -7
  148. package/dist/cjs/options/endTypesOptions.js +0 -77
  149. package/dist/cjs/options/endTypesOptions.js.map +0 -7
  150. package/dist/esm/DSDateTimeRecurrenceSelector.js +0 -210
  151. package/dist/esm/DSDateTimeRecurrenceSelector.js.map +0 -7
  152. package/dist/esm/components/AlertModal/DateTimeRangeModal.js +0 -59
  153. package/dist/esm/components/AlertModal/DateTimeRangeModal.js.map +0 -7
  154. package/dist/esm/components/CustomOptionRender/CustomOptionRender.js +0 -57
  155. package/dist/esm/components/CustomOptionRender/CustomOptionRender.js.map +0 -7
  156. package/dist/esm/components/DateTimeRangeModal/DateTimeRangeModal.js +0 -105
  157. package/dist/esm/components/DateTimeRangeModal/DateTimeRangeModal.js.map +0 -7
  158. package/dist/esm/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js +0 -242
  159. package/dist/esm/components/DateTimeRangeModalImpl/DateTimeRangeModalImpl.js.map +0 -7
  160. package/dist/esm/components/DateTimeRecurenceSelectorImpl.js +0 -225
  161. package/dist/esm/components/DateTimeRecurenceSelectorImpl.js.map +0 -7
  162. package/dist/esm/components/DayOfMonthPicker/DayOfMonthPicker.js +0 -58
  163. package/dist/esm/components/DayOfMonthPicker/DayOfMonthPicker.js.map +0 -7
  164. package/dist/esm/components/DayOfYearPicker/DayOfYearPicker.js +0 -54
  165. package/dist/esm/components/DayOfYearPicker/DayOfYearPicker.js.map +0 -7
  166. package/dist/esm/components/DaysOfWeekPicker/DaysOfWeekPicker.js +0 -49
  167. package/dist/esm/components/DaysOfWeekPicker/DaysOfWeekPicker.js.map +0 -7
  168. package/dist/esm/components/EndDate/EndDate.js +0 -40
  169. package/dist/esm/components/EndDate/EndDate.js.map +0 -7
  170. package/dist/esm/components/FieldWrapper/FieldWrapper.js +0 -14
  171. package/dist/esm/components/FieldWrapper/FieldWrapper.js.map +0 -7
  172. package/dist/esm/components/Forms/FormField.js +0 -7
  173. package/dist/esm/components/Forms/FormField.js.map +0 -7
  174. package/dist/esm/components/Forms/FormFieldGroup.js +0 -7
  175. package/dist/esm/components/Forms/FormFieldGroup.js.map +0 -7
  176. package/dist/esm/components/Forms/FormGroup.js +0 -7
  177. package/dist/esm/components/Forms/FormGroup.js.map +0 -7
  178. package/dist/esm/components/Forms/FormLabel.js +0 -7
  179. package/dist/esm/components/Forms/FormLabel.js.map +0 -7
  180. package/dist/esm/components/LabelWrapper/LabelWrapper.js +0 -14
  181. package/dist/esm/components/LabelWrapper/LabelWrapper.js.map +0 -7
  182. package/dist/esm/components/RepeatPickerInput/RepeatPickerInput.js +0 -45
  183. package/dist/esm/components/RepeatPickerInput/RepeatPickerInput.js.map +0 -7
  184. package/dist/esm/components/StartDateTime/StartDateTime.js +0 -31
  185. package/dist/esm/components/StartDateTime/StartDateTime.js.map +0 -7
  186. package/dist/esm/components/TimeZonePicker/TimeZonePicker.js +0 -33
  187. package/dist/esm/components/TimeZonePicker/TimeZonePicker.js.map +0 -7
  188. package/dist/esm/components/ValidationMessage/ValidationMessage.js +0 -12
  189. package/dist/esm/components/ValidationMessage/ValidationMessage.js.map +0 -7
  190. package/dist/esm/components/helpers/nthday.js +0 -33
  191. package/dist/esm/components/helpers/nthday.js.map +0 -7
  192. package/dist/esm/index.js +0 -7
  193. package/dist/esm/index.js.map +0 -7
  194. package/dist/esm/options/dropdownDayOfMonthOptions.js +0 -15
  195. package/dist/esm/options/dropdownDayOfMonthOptions.js.map +0 -7
  196. package/dist/esm/options/dropdownDayOfWeekOptions.js +0 -35
  197. package/dist/esm/options/dropdownDayOfWeekOptions.js.map +0 -7
  198. package/dist/esm/options/dropdownDayOfYearOptions.js +0 -15
  199. package/dist/esm/options/dropdownDayOfYearOptions.js.map +0 -7
  200. package/dist/esm/options/dropdownPreselectedOptions.js +0 -30
  201. package/dist/esm/options/dropdownPreselectedOptions.js.map +0 -7
  202. package/dist/esm/options/dropdownRepeatOptions.js +0 -30
  203. package/dist/esm/options/dropdownRepeatOptions.js.map +0 -7
  204. package/dist/esm/options/dropdownTimeZoneOptions.js +0 -40
  205. package/dist/esm/options/dropdownTimeZoneOptions.js.map +0 -7
  206. package/dist/esm/options/endTypesOptions.js +0 -48
  207. package/dist/esm/options/endTypesOptions.js.map +0 -7
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const endTypes = {
6
+ NEVER: 'never',
7
+ ON: 'on',
8
+ AFTER: 'after'
9
+ };
10
+ const endTypesOptions = [{
11
+ label: 'Never',
12
+ value: endTypes.NEVER
13
+ }, {
14
+ label: 'On',
15
+ value: endTypes.ON
16
+ }, {
17
+ label: 'After',
18
+ value: endTypes.AFTER
19
+ }];
20
+ const endTimesOptions = [{
21
+ label: '1 Time',
22
+ value: 1
23
+ }, {
24
+ label: '2 Times',
25
+ value: 2
26
+ }, {
27
+ label: '3 Times',
28
+ value: 3
29
+ }, {
30
+ label: '6 Times',
31
+ value: 6
32
+ }, {
33
+ label: '12 Times',
34
+ value: 12
35
+ }];
36
+
37
+ exports.endTimesOptions = endTimesOptions;
38
+ exports.endTypes = endTypes;
39
+ exports.endTypesOptions = endTypesOptions;
@@ -0,0 +1,185 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import { PropTypes, describe } from 'react-desc';
4
+ import DateTimeRecurenceSelectorImpl from './components/DateTimeRecurenceSelectorImpl.js';
5
+ import { dropdownPreselectedOptions } from './options/dropdownPreselectedOptions.js';
6
+ export { dropdownPreselectedOptions } from './options/dropdownPreselectedOptions.js';
7
+ import { dropdownRepeatOptions } from './options/dropdownRepeatOptions.js';
8
+ export { DropdownRepeatOptionsTypes, dropdownRepeatOptions } from './options/dropdownRepeatOptions.js';
9
+ import { dropdownDayOfWeekOptions } from './options/dropdownDayOfWeekOptions.js';
10
+ export { dropdownDayOfWeekOptions } from './options/dropdownDayOfWeekOptions.js';
11
+ import { dropdownDayOfMonthOptions } from './options/dropdownDayOfMonthOptions.js';
12
+ export { dropdownDayOfMonthOptions } from './options/dropdownDayOfMonthOptions.js';
13
+ import { dropdownDayOfYearOptions } from './options/dropdownDayOfYearOptions.js';
14
+ export { dropdownDayOfYearOptions } from './options/dropdownDayOfYearOptions.js';
15
+ import { endTypesOptions, endTimesOptions } from './options/endTypesOptions.js';
16
+ export { endTimesOptions, endTypes, endTypesOptions } from './options/endTypesOptions.js';
17
+ import CustomOptionRender from './components/CustomOptionRender/CustomOptionRender.js';
18
+ import { dropdownTimeZoneOptions } from './options/dropdownTimeZoneOptions.js';
19
+ export { DropdownTimeZoneTypes, dropdownTimeZoneOptions } from './options/dropdownTimeZoneOptions.js';
20
+
21
+ const DSDateTimeRecurrenceSelector = _ref => {
22
+ let {
23
+ containerProps = {},
24
+ className = '',
25
+ preselectedOptions = dropdownPreselectedOptions,
26
+ repeatOptions = dropdownRepeatOptions,
27
+ endTypesOptions: endTypesOptions$1 = endTypesOptions,
28
+ endTimesOptions: endTimesOptions$1 = endTimesOptions,
29
+ dayOfWeekOptions = dropdownDayOfWeekOptions,
30
+ dayOfWeekOptionsEnable = true,
31
+ dayOfMonthOptions = dropdownDayOfMonthOptions,
32
+ dayOfMonthOptionsEnable = true,
33
+ dayOfYearOptions = dropdownDayOfYearOptions,
34
+ dayOfYearOptionsEnable = true,
35
+ displayMonthCustomOption = false,
36
+ displayYearCustomOption = false,
37
+ dayOfMonthAsCurrentDateOptions = ['numberOfMonth', 'dayOfTheWeekOfMonth'],
38
+ dayOfYearAsCurrentDateOptions = ['numberOfYear', 'dayOfTheMonthOfYear'],
39
+ onChange = () => null,
40
+ placeholder = 'Select Range',
41
+ modalSize = 'medium',
42
+ modalTitle = 'Report Scheduling',
43
+ confirmLabel = 'Apply',
44
+ rejectLabel = 'Cancel',
45
+ modalType = 'confirm',
46
+ onConfirmField = () => null,
47
+ onRejectField = () => null,
48
+ openModal = false,
49
+ appElement = '#root',
50
+ value = null,
51
+ customRange = null,
52
+ customOptionRender = CustomOptionRender,
53
+ displayCurrentMonthYear = true,
54
+ timeZoneOptions = dropdownTimeZoneOptions,
55
+ useTimezoneSelector = false,
56
+ allowMultipleDaysOfWeek = false,
57
+ advanceOption = {
58
+ label: 'Custom',
59
+ value: 'custom-range',
60
+ isAdvance: true
61
+ },
62
+ isValidRecurrence = () => true,
63
+ validationMessage = '',
64
+ endDayBlocked = () => false,
65
+ startDayBlocked = () => false,
66
+ repeatFrecuencyCustomProps = {}
67
+ } = _ref;
68
+ return /*#__PURE__*/_jsx(DateTimeRecurenceSelectorImpl, {
69
+ advanceOption: advanceOption,
70
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
71
+ appElement: appElement,
72
+ className: className,
73
+ confirmLabel: confirmLabel,
74
+ containerProps: containerProps,
75
+ customOptionRender: customOptionRender,
76
+ customRange: customRange,
77
+ dayOfMonthAsCurrentDateOptions: dayOfMonthAsCurrentDateOptions,
78
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
79
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
80
+ dayOfYearAsCurrentDateOptions: dayOfYearAsCurrentDateOptions,
81
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
82
+ displayCurrentMonthYear: displayCurrentMonthYear,
83
+ displayMonthCustomOption: displayMonthCustomOption,
84
+ displayYearCustomOption: displayYearCustomOption,
85
+ dropdownDayOfMonthOptions: dayOfMonthOptions,
86
+ dropdownDayOfWeekOptions: dayOfWeekOptions,
87
+ dropdownDayOfYearOptions: dayOfYearOptions,
88
+ dropdownPreselectedOptions: preselectedOptions,
89
+ dropdownRepeatOptions: repeatOptions,
90
+ endDayBlocked: endDayBlocked,
91
+ endTimesOptions: endTimesOptions$1,
92
+ endTypesOptions: endTypesOptions$1,
93
+ isValidRecurrence: isValidRecurrence,
94
+ modalSize: modalSize,
95
+ modalTitle: modalTitle,
96
+ modalType: modalType,
97
+ onChange: onChange,
98
+ onConfirmField: onConfirmField,
99
+ onRejectField: onRejectField,
100
+ openModal: openModal,
101
+ placeholder: placeholder,
102
+ rejectLabel: rejectLabel,
103
+ repeatFrecuencyCustomProps: repeatFrecuencyCustomProps,
104
+ startDayBlocked: startDayBlocked,
105
+ timeZoneOptions: timeZoneOptions,
106
+ useTimezoneSelector: useTimezoneSelector,
107
+ validationMessage: validationMessage,
108
+ value: value
109
+ });
110
+ };
111
+ const dateTimeRecurrenceSelectorProps = {
112
+ containerProps: PropTypes.shape({}).description('Set of Properties attached to the main container'),
113
+ className: PropTypes.string.description('html class attribute'),
114
+ preselectedOptions: PropTypes.arrayOf(PropTypes.shape({
115
+ label: PropTypes.string,
116
+ value: PropTypes.string
117
+ })).description('pre selected options'),
118
+ repeatOptions: PropTypes.arrayOf(PropTypes.shape({
119
+ label: PropTypes.string,
120
+ value: PropTypes.string
121
+ })).description('repeat options'),
122
+ endTypesOptions: PropTypes.arrayOf(PropTypes.shape({
123
+ label: PropTypes.string,
124
+ value: PropTypes.oneOf([endTypesOptions.NEVER, endTypesOptions.ON, endTypesOptions.AFTER])
125
+ })).description('end types options'),
126
+ endTimesOptions: PropTypes.arrayOf(PropTypes.shape({
127
+ label: PropTypes.string,
128
+ value: PropTypes.string
129
+ })).description('end time options'),
130
+ dayOfWeekOptions: PropTypes.arrayOf(PropTypes.shape({
131
+ label: PropTypes.string,
132
+ value: PropTypes.string
133
+ })).defaultValue('day of week options'),
134
+ dayOfWeekOptionsEnable: PropTypes.bool.description('whether to enable day of week options or not').defaultValue(true),
135
+ dayOfMonthOptions: PropTypes.arrayOf(PropTypes.shape({
136
+ label: PropTypes.string,
137
+ value: PropTypes.string
138
+ })).description('day of month options'),
139
+ dayOfMonthOptionsEnable: PropTypes.bool.description('whether to enable day of month options or not').defaultValue(true),
140
+ dayOfYearOptions: PropTypes.arrayOf(PropTypes.shape({
141
+ label: PropTypes.string,
142
+ value: PropTypes.string
143
+ })).description('day of year options'),
144
+ dayOfYearOptionsEnable: PropTypes.bool.description('whether to enable day of month options or not').defaultValue(true),
145
+ displayMonthCustomOption: PropTypes.bool.description('whether to display month custom options or not').defaultValue(false),
146
+ displayYearCustomOption: PropTypes.bool.description('whether to display year custom options or not').defaultValue(false),
147
+ dayOfMonthAsCurrentDateOptions: PropTypes.oneOf(['numberOfMonth', 'dayOfTheWeekOfMonth']).description('day of month as current date options').defaultValue(['numberOfMonth', 'dayOfTheWeekOfMonth']),
148
+ dayOfYearAsCurrentDateOptions: PropTypes.oneOf(['numberOfYear', 'dayOfTheMonthOfYear']).description('day of year as current date options').defaultValue(['numberOfYear', 'dayOfTheMonthOfYear']),
149
+ onChange: PropTypes.func.description('function called on change'),
150
+ placeholder: PropTypes.string.description('placeholder value').defaultValue('Select Range'),
151
+ modalSize: PropTypes.oneOf(['medium', 'small', 'large']).description('Size of the modal').defaultValue('medium'),
152
+ modalTitle: PropTypes.string.description('title of the modal').defaultValue('Report Scheduling'),
153
+ confirmLabel: PropTypes.string.description('label of confirm button').defaultValue('Apply'),
154
+ rejectLabel: PropTypes.string.description('Label of reject button').defaultValue('Cancel'),
155
+ modalType: PropTypes.oneOf(['confirm', 'alert']).description('type of modal').defaultValue('confirm'),
156
+ onConfirmField: PropTypes.func.description('function called on confirm'),
157
+ onRejectField: PropTypes.func.description('function called on reject'),
158
+ openModal: PropTypes.bool.description('modal open or closed'),
159
+ appElement: PropTypes.string.description('app element'),
160
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('value'),
161
+ customRange: PropTypes.object.description('custom range'),
162
+ customOptionRender: PropTypes.element.description('custom renderer of options').defaultValue(CustomOptionRender),
163
+ displayCurrentMonthYear: PropTypes.bool.description('display current month year or not').defaultValue(true),
164
+ timeZoneOptions: PropTypes.arrayOf(PropTypes.shape({
165
+ label: PropTypes.string,
166
+ value: PropTypes.string
167
+ })).description('time zone dropdown options'),
168
+ useTimezoneSelector: PropTypes.bool.description('use time zone selector or not').defaultValue(false),
169
+ allowMultipleDaysOfWeek: PropTypes.bool.description('allow multiple days of week or not').defaultValue(false),
170
+ advanceOption: PropTypes.shape({
171
+ label: PropTypes.string,
172
+ value: PropTypes.string,
173
+ isAdvance: true // true is required
174
+
175
+ }).description('advanced options'),
176
+ isValidRecurrence: PropTypes.func.description('is valid recurrence range or nor'),
177
+ validationMessage: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).description('validation messagge'),
178
+ endDayBlocked: PropTypes.func.description('block end date'),
179
+ startDayBlocked: PropTypes.func.description('block start date'),
180
+ repeatFrecuencyCustomProps: PropTypes.shape({}).description('repeat frecuency custom props')
181
+ };
182
+ const DateTimeRecurenceSelectorWithSchema = describe(DSDateTimeRecurrenceSelector);
183
+ DateTimeRecurenceSelectorWithSchema.propTypes = dateTimeRecurrenceSelectorProps;
184
+
185
+ export { DSDateTimeRecurrenceSelector, DateTimeRecurenceSelectorWithSchema, DSDateTimeRecurrenceSelector as default };
@@ -0,0 +1,24 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import '@testing-library/jest-dom/extend-expect';
4
+ import { render, waitFor } from '@testing-library/react';
5
+ import { DSDateTimeRecurrenceSelector } from '../DSDateTimeRecurrenceSelector.js';
6
+
7
+ var _DSDateTimeRecurrence;
8
+ describe('DSDateTimeRecurrenceSelector', () => {
9
+ const root = document.createElement('div');
10
+ root.setAttribute('id', 'root');
11
+ document.body.appendChild(root);
12
+ const portalRoot = document.createElement('div');
13
+ portalRoot.setAttribute('id', 'portal-root');
14
+ document.body.appendChild(portalRoot);
15
+ test('open modal', async () => {
16
+ const {
17
+ getByText
18
+ } = render(_DSDateTimeRecurrence || (_DSDateTimeRecurrence = /*#__PURE__*/_jsx(DSDateTimeRecurrenceSelector, {
19
+ openModal: true
20
+ })));
21
+ await waitFor(() => getByText('Starts'));
22
+ expect(getByText('Starts')).toBeInTheDocument();
23
+ });
24
+ });
@@ -0,0 +1,60 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import DSModal from '@elliemae/ds-modal';
4
+ import DateTimePredefinedRangeSelectorImpl from '../DateTimeRangeModalImpl/DateTimeRangeModalImpl.js';
5
+
6
+ const DateTimeRangeModal = _ref => {
7
+ let {
8
+ isOpen = false,
9
+ onClose = () => null,
10
+ modalTitle = 'Report Scheduling',
11
+ modalSize = 'medium ',
12
+ confirmLabel = 'Apply',
13
+ rejectLabel = 'Cancel',
14
+ modalType = 'confirm',
15
+ onConfirmField = () => null,
16
+ onRejectField = () => null,
17
+ appElement = null,
18
+ onCustomDateTimeRange = () => null,
19
+ displayCurrentMonthYear = true,
20
+ dropdownDayOfMonthOptions = [],
21
+ dropdownDayOfWeekOptions = [],
22
+ dropdownDayOfYearOptions = [],
23
+ dropdownRepeatOptions = [],
24
+ rangeValue = {},
25
+ dayOfMonthOptionsEnable = true,
26
+ dayOfWeekOptionsEnable = true,
27
+ dayOfYearOptionsEnable = true,
28
+ timeZoneOptions = [],
29
+ useTimezoneSelector = false,
30
+ allowMultipleDaysOfWeek = false
31
+ } = _ref;
32
+ return /*#__PURE__*/_jsx(DSModal, {
33
+ appElement: appElement,
34
+ confirmLabel: confirmLabel,
35
+ isOpen: isOpen,
36
+ modalTitle: modalTitle,
37
+ modalType: modalType,
38
+ onClose: onClose,
39
+ onConfirm: onConfirmField,
40
+ onReject: onRejectField,
41
+ rejectLabel: rejectLabel,
42
+ size: modalSize
43
+ }, void 0, /*#__PURE__*/_jsx(DateTimePredefinedRangeSelectorImpl, {
44
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
45
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
46
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
47
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
48
+ displayCurrentMonthYear: displayCurrentMonthYear,
49
+ dropdownDayOfMonthOptions: dropdownDayOfMonthOptions,
50
+ dropdownDayOfWeekOptions: dropdownDayOfWeekOptions,
51
+ dropdownDayOfYearOptions: dropdownDayOfYearOptions,
52
+ dropdownRepeatOptions: dropdownRepeatOptions,
53
+ onCustomDateTimeRange: onCustomDateTimeRange,
54
+ rangeValue: rangeValue,
55
+ timeZoneOptions: timeZoneOptions,
56
+ useTimezoneSelector: useTimezoneSelector
57
+ }));
58
+ };
59
+
60
+ export { DateTimeRangeModal as default };
@@ -0,0 +1,87 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'react';
3
+ import { DropdownRepeatOptionsTypes } from '../../options/dropdownRepeatOptions.js';
4
+ import { endTypes } from '../../options/endTypesOptions.js';
5
+
6
+ const typeRepeat = {
7
+ [DropdownRepeatOptionsTypes.DAY]: 'Daily',
8
+ [DropdownRepeatOptionsTypes.WEEK]: 'Weekly',
9
+ [DropdownRepeatOptionsTypes.MONTH]: 'Monthly',
10
+ [DropdownRepeatOptionsTypes.YEAR]: 'Yearly'
11
+ };
12
+ /**
13
+ * @param root0
14
+ * @param root0.customRange
15
+ * @param root0.customRange.startDateInput
16
+ * @param root0.customRange.startTimeInput
17
+ * @param root0.customRange.qtyRepeatPickerInput
18
+ * @param root0.customRange.typeRepeatPickerInput
19
+ * @param root0.customRange.dayWeekRepeatPickerInput
20
+ * @param root0.customRange.endDateInput
21
+ * @param root0.customRange.endTypeInput
22
+ * @param root0.customRange.endTimesInput
23
+ * @param root0.customRange.dayOfMonthRepeatPickerInput
24
+ * @param root0.customRange.dayOfYearRepeatPickerInput
25
+ * @param root0.customRange.timezonePickerInput
26
+ * @param root0.dayOfMonthOptionsEnable
27
+ * @param root0.dayOfWeekOptionsEnable
28
+ * @param root0.dayOfYearOptionsEnable
29
+ * @param root0.useTimezoneSelector
30
+ * @customRange {
31
+ startDateInput,
32
+ startTimeInput,
33
+ qtyRepeatPickerInput,
34
+ typeRepeatPickerInput,
35
+ dayWeekRepeatPickerInput,
36
+ endDateInput,
37
+ endTypeInput,
38
+ endTimesInput,
39
+ dayOfMonthRepeatPickerInput,
40
+ dayOfYearRepeatPickerInput,
41
+ timezonePickerInput
42
+ }
43
+ */
44
+
45
+ const CustomOptionRender = _ref => {
46
+ let {
47
+ customRange: {
48
+ startDateInput,
49
+ startTimeInput,
50
+ qtyRepeatPickerInput,
51
+ typeRepeatPickerInput,
52
+ dayWeekRepeatPickerInput,
53
+ endDateInput,
54
+ endTypeInput,
55
+ endTimesInput,
56
+ dayOfMonthRepeatPickerInput,
57
+ dayOfYearRepeatPickerInput,
58
+ timezonePickerInput
59
+ },
60
+ dayOfMonthOptionsEnable,
61
+ dayOfWeekOptionsEnable,
62
+ dayOfYearOptionsEnable,
63
+ useTimezoneSelector
64
+ } = _ref;
65
+ let display = 'Custom'; // frequency
66
+
67
+ if (qtyRepeatPickerInput === 1) display = typeRepeat[typeRepeatPickerInput];else display = "every ".concat(qtyRepeatPickerInput, " ").concat(typeRepeatPickerInput, "s"); // type
68
+
69
+ if (typeRepeatPickerInput === DropdownRepeatOptionsTypes.WEEK) {
70
+ display += dayOfWeekOptionsEnable ? " on ".concat(dayWeekRepeatPickerInput, " ") : '';
71
+ } else if (typeRepeatPickerInput === DropdownRepeatOptionsTypes.MONTH) {
72
+ display += dayOfMonthOptionsEnable ? " ".concat(dayOfMonthRepeatPickerInput, " ") : '';
73
+ } else if (typeRepeatPickerInput === DropdownRepeatOptionsTypes.YEAR) {
74
+ display += dayOfYearOptionsEnable ? " ".concat(dayOfYearRepeatPickerInput, " ") : '';
75
+ } // start & end
76
+
77
+
78
+ if (startDateInput && startDateInput.format) {
79
+ display += " starting on ".concat(startDateInput.format('MM/DD/YYYY'), " at ").concat(startTimeInput.format('HH:mm A'));
80
+ }
81
+
82
+ if (endTypeInput === endTypes.ON) display += ", until ".concat(endDateInput.format('MM/DD/YYYY'), " ");else if (endTypeInput === endTypes.AFTER) display += ", for ".concat(endTimesInput, " times");
83
+ if (useTimezoneSelector && timezonePickerInput) display += " [".concat(timezonePickerInput, "]");
84
+ return /*#__PURE__*/_jsx("em", {}, void 0, display);
85
+ };
86
+
87
+ export { CustomOptionRender as default };
@@ -0,0 +1,114 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import React from 'react';
4
+ import DSModal from '@elliemae/ds-modal';
5
+ import DateTimePredefinedRangeSelectorImpl from '../DateTimeRangeModalImpl/DateTimeRangeModalImpl.js';
6
+
7
+ class DateTimeRangeModal extends React.Component {
8
+ constructor() {
9
+ var _this;
10
+
11
+ super(...arguments);
12
+ _this = this;
13
+ this.state = {
14
+ isValid: true
15
+ };
16
+
17
+ this.updateIsValid = function () {
18
+ const {
19
+ onCustomDateTimeRange = () => null,
20
+ isValidRecurrence
21
+ } = _this.props;
22
+ onCustomDateTimeRange(...arguments);
23
+
24
+ _this.setState({
25
+ isValid: isValidRecurrence(...arguments)
26
+ });
27
+ };
28
+ }
29
+
30
+ render() {
31
+ const {
32
+ isOpen = false,
33
+ onClose = () => null,
34
+ modalTitle = 'Report Scheduling',
35
+ // modalSize = 'medium',
36
+ confirmLabel = 'Apply',
37
+ rejectLabel = 'Cancel',
38
+ modalType = 'confirm',
39
+ onConfirmField = () => null,
40
+ onRejectField = () => null,
41
+ appElement = null,
42
+ displayCurrentMonthYear = true,
43
+ dropdownDayOfMonthOptions = [],
44
+ dropdownDayOfWeekOptions = [],
45
+ dropdownDayOfYearOptions = [],
46
+ dropdownRepeatOptions = [],
47
+ rangeValue = {},
48
+ dayOfMonthOptionsEnable = true,
49
+ dayOfWeekOptionsEnable = true,
50
+ dayOfYearOptionsEnable = true,
51
+ timeZoneOptions = [],
52
+ useTimezoneSelector = false,
53
+ allowMultipleDaysOfWeek = false,
54
+ endTimesOptions,
55
+ endTypesOptions,
56
+ dayOfMonthAsCurrentDateOptions,
57
+ dayOfYearAsCurrentDateOptions,
58
+ isValidRecurrence,
59
+ validationMessage,
60
+ startDayBlocked,
61
+ endDayBlocked,
62
+ repeatFrecuencyCustomProps,
63
+ displayMonthCustomOption,
64
+ displayYearCustomOption
65
+ } = this.props;
66
+ const {
67
+ isValid
68
+ } = this.state;
69
+ return /*#__PURE__*/_jsx(DSModal, {
70
+ appElement: appElement,
71
+ centered: false,
72
+ confirmLabel: confirmLabel,
73
+ isOpen: isOpen,
74
+ modalTitle: modalTitle,
75
+ modalType: modalType,
76
+ onClose: onClose,
77
+ onConfirm: onConfirmField,
78
+ onReject: onRejectField,
79
+ overridePropsConfirmButton: {
80
+ disabled: !isValid
81
+ },
82
+ rejectLabel: rejectLabel,
83
+ size: "small"
84
+ }, void 0, /*#__PURE__*/_jsx(DateTimePredefinedRangeSelectorImpl, {
85
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
86
+ dayOfMonthAsCurrentDateOptions: dayOfMonthAsCurrentDateOptions,
87
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
88
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
89
+ dayOfYearAsCurrentDateOptions: dayOfYearAsCurrentDateOptions,
90
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
91
+ displayCurrentMonthYear: displayCurrentMonthYear,
92
+ displayMonthCustomOption: displayMonthCustomOption,
93
+ displayYearCustomOption: displayYearCustomOption,
94
+ dropdownDayOfMonthOptions: dropdownDayOfMonthOptions,
95
+ dropdownDayOfWeekOptions: dropdownDayOfWeekOptions,
96
+ dropdownDayOfYearOptions: dropdownDayOfYearOptions,
97
+ dropdownRepeatOptions: dropdownRepeatOptions,
98
+ endDayBlocked: endDayBlocked,
99
+ endTimesOptions: endTimesOptions,
100
+ endTypesOptions: endTypesOptions,
101
+ isValidRecurrence: isValidRecurrence,
102
+ onCustomDateTimeRange: this.updateIsValid,
103
+ rangeValue: rangeValue,
104
+ repeatFrecuencyCustomProps: repeatFrecuencyCustomProps,
105
+ startDayBlocked: startDayBlocked,
106
+ timeZoneOptions: timeZoneOptions,
107
+ useTimezoneSelector: useTimezoneSelector,
108
+ validationMessage: validationMessage
109
+ }));
110
+ }
111
+
112
+ }
113
+
114
+ export { DateTimeRangeModal as default };