@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,306 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
+ import 'core-js/modules/es.string.replace.js';
9
+ import { Component } from 'react';
10
+ import moment from 'moment';
11
+ import { convertPropToCssClassName } from '@elliemae/ds-classnames';
12
+ import DSModal from '@elliemae/ds-modal';
13
+ import { DropdownRepeatOptionsTypes } from '../../options/dropdownRepeatOptions.js';
14
+ import { dropdownTimeZoneOptions } from '../../options/dropdownTimeZoneOptions.js';
15
+ import RepeatPickerInput from '../RepeatPickerInput/RepeatPickerInput.js';
16
+ import DaysOfWeekPicker from '../DaysOfWeekPicker/DaysOfWeekPicker.js';
17
+ import StartDateTime from '../StartDateTime/StartDateTime.js';
18
+ import EndDate from '../EndDate/EndDate.js';
19
+ import DaysOfMonthPicker from '../DayOfMonthPicker/DayOfMonthPicker.js';
20
+ import DaysOfMonthPicker$1 from '../DayOfYearPicker/DayOfYearPicker.js';
21
+ import TimeZonePicker from '../TimeZonePicker/TimeZonePicker.js';
22
+ import ValidationMessage from '../ValidationMessage/ValidationMessage.js';
23
+
24
+ var _hr, _p;
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+ const {
30
+ cssClassName
31
+ } = convertPropToCssClassName('date-time-predefined-range-selector');
32
+
33
+ class DateTimePredefinedRangeSelectorImpl extends Component {
34
+ constructor(props) {
35
+ super(props);
36
+
37
+ this.onChange = () => {
38
+ const {
39
+ onCustomDateTimeRange
40
+ } = this.props;
41
+ onCustomDateTimeRange(this.state);
42
+ };
43
+
44
+ this.onQtyRepeatPickerInput = value => {
45
+ this.setState({
46
+ qtyRepeatPickerInput: value.replace(/[^0-9]/g, '')
47
+ }, () => {
48
+ this.onChange();
49
+ });
50
+ };
51
+
52
+ const {
53
+ dropdownDayOfMonthOptions,
54
+ dropdownDayOfWeekOptions,
55
+ dropdownDayOfYearOptions,
56
+ dropdownRepeatOptions,
57
+ dayOfMonthOptionsEnable,
58
+ dayOfWeekOptionsEnable,
59
+ dayOfYearOptionsEnable,
60
+ useTimezoneSelector,
61
+ rangeValue: {
62
+ startDateInput,
63
+ startTimeInput,
64
+ qtyRepeatPickerInput,
65
+ typeRepeatPickerInput,
66
+ dayWeekRepeatPickerInput,
67
+ endDateInput,
68
+ endTypeInput,
69
+ endTimesInput,
70
+ dayOfMonthRepeatPickerInput,
71
+ dayOfYearRepeatPickerInput,
72
+ timezonePickerInput
73
+ }
74
+ } = props;
75
+ this.state = {
76
+ alertReplace: '',
77
+ alertModal: false,
78
+ startDateInput: startDateInput || moment(),
79
+ startTimeInput: startTimeInput || moment(),
80
+ qtyRepeatPickerInput: qtyRepeatPickerInput || 1,
81
+ typeRepeatPickerInput: typeRepeatPickerInput || dropdownRepeatOptions[0].value,
82
+ dayWeekRepeatPickerInput: !dayOfWeekOptionsEnable ? null : dayWeekRepeatPickerInput || dropdownDayOfWeekOptions[0].value,
83
+ endDateInput: endDateInput || moment(),
84
+ endTypeInput: endTypeInput || props.endTypesOptions[0].value,
85
+ endTimesInput: endTimesInput || props.endTimesOptions[0].value,
86
+ dayOfMonthRepeatPickerInput: !dayOfMonthOptionsEnable ? null : dayOfMonthRepeatPickerInput || dropdownDayOfMonthOptions[0].value,
87
+ dayOfYearRepeatPickerInput: !dayOfYearOptionsEnable ? null : dayOfYearRepeatPickerInput || dropdownDayOfYearOptions[0].value,
88
+ timezonePickerInput: !useTimezoneSelector ? null : timezonePickerInput || dropdownTimeZoneOptions[0].value
89
+ };
90
+ this.onChange();
91
+ this.onStartDateChangeInput = this.onStartDateChangeInput.bind(this);
92
+ this.onStartTimeChangeInput = this.onStartTimeChangeInput.bind(this);
93
+ this.onTimeZonePickerInput = this.onTimeZonePickerInput.bind(this);
94
+ this.onTypeRepeatPickerInput = this.onTypeRepeatPickerInput.bind(this);
95
+ this.onDayOfWeekRepeatPickerInput = this.onDayOfWeekRepeatPickerInput.bind(this);
96
+ this.onDayOfMonthRepeatChangeInput = this.onDayOfMonthRepeatChangeInput.bind(this);
97
+ this.onDayOfYearRepeatChangeInput = this.onDayOfYearRepeatChangeInput.bind(this);
98
+ this.onEndDateChangeInput = this.onEndDateChangeInput.bind(this);
99
+ this.onEndTimesChangeInput = this.onEndTimesChangeInput.bind(this);
100
+ this.onEndTypeChangeInput = this.onEndTypeChangeInput.bind(this);
101
+ }
102
+
103
+ onTypeRepeatPickerInput(value) {
104
+ const update = {
105
+ typeRepeatPickerInput: value
106
+ };
107
+
108
+ if (value !== DropdownRepeatOptionsTypes.MONTH) {
109
+ update.dayOfMonthRepeatPickerInput = undefined;
110
+ update.dayOfMonthRepeatPickerKey = undefined;
111
+ }
112
+
113
+ if (value !== DropdownRepeatOptionsTypes.YEAR) {
114
+ update.dayOfYearRepeatPickerInput = undefined;
115
+ update.dayOfYearRepeatPickerKey = undefined;
116
+ }
117
+
118
+ this.setState(_objectSpread({}, update), () => {
119
+ this.onChange();
120
+ });
121
+ }
122
+
123
+ onDayOfWeekRepeatPickerInput(value) {
124
+ this.setState({
125
+ dayWeekRepeatPickerInput: value
126
+ }, () => {
127
+ this.onChange();
128
+ });
129
+ }
130
+
131
+ onEndTypeChangeInput(value) {
132
+ this.setState({
133
+ endTypeInput: value
134
+ }, () => {
135
+ this.onChange();
136
+ });
137
+ }
138
+
139
+ onEndTimesChangeInput(value) {
140
+ this.setState({
141
+ endTimesInput: value
142
+ }, () => {
143
+ this.onChange();
144
+ });
145
+ }
146
+
147
+ onEndDateChangeInput(value) {
148
+ this.setState({
149
+ endDateInput: value
150
+ }, () => {
151
+ this.onChange();
152
+ });
153
+ }
154
+
155
+ onStartDateChangeInput(value) {
156
+ this.setState({
157
+ startDateInput: value
158
+ }, () => {
159
+ this.onChange();
160
+ });
161
+ }
162
+
163
+ onStartTimeChangeInput(value) {
164
+ this.setState({
165
+ startTimeInput: value
166
+ }, () => {
167
+ this.onChange();
168
+ });
169
+ }
170
+
171
+ onDayOfMonthRepeatChangeInput(value, option) {
172
+ this.setState({
173
+ dayOfMonthRepeatPickerInput: value,
174
+ dayOfMonthRepeatPickerKey: option.dayOfMonthRepeatPickerKey,
175
+ alertModal: option.number > 28 || (option.numberLabel || '').includes('Fifth'),
176
+ alertReplace: option.number || "".concat(option.numberLabel, " ")
177
+ }, () => {
178
+ this.onChange();
179
+ });
180
+ }
181
+
182
+ onDayOfYearRepeatChangeInput(value, option) {
183
+ this.setState({
184
+ dayOfYearRepeatPickerInput: value,
185
+ dayOfYearRepeatPickerKey: option.dayOfYearRepeatPickerKey
186
+ }, () => {
187
+ this.onChange();
188
+ });
189
+ }
190
+
191
+ onTimeZonePickerInput(value) {
192
+ this.setState({
193
+ timezonePickerInput: value
194
+ }, () => {
195
+ this.onChange();
196
+ });
197
+ }
198
+
199
+ render() {
200
+ const {
201
+ alertModal,
202
+ alertReplace,
203
+ qtyRepeatPickerInput,
204
+ typeRepeatPickerInput,
205
+ dayWeekRepeatPickerInput,
206
+ endDateInput,
207
+ endTypeInput,
208
+ endTimesInput,
209
+ startDateInput,
210
+ startTimeInput,
211
+ dayOfMonthRepeatPickerInput,
212
+ dayOfYearRepeatPickerInput,
213
+ timezonePickerInput
214
+ } = this.state;
215
+ const {
216
+ displayCurrentMonthYear,
217
+ dropdownDayOfMonthOptions,
218
+ dropdownDayOfWeekOptions,
219
+ dropdownDayOfYearOptions,
220
+ dropdownRepeatOptions,
221
+ dayOfMonthOptionsEnable,
222
+ dayOfWeekOptionsEnable,
223
+ dayOfYearOptionsEnable,
224
+ timeZoneOptions,
225
+ useTimezoneSelector,
226
+ allowMultipleDaysOfWeek,
227
+ endTimesOptions,
228
+ endTypesOptions,
229
+ dayOfMonthAsCurrentDateOptions,
230
+ dayOfYearAsCurrentDateOptions,
231
+ validationMessage,
232
+ endDayBlocked,
233
+ startDayBlocked,
234
+ repeatFrecuencyCustomProps,
235
+ displayMonthCustomOption,
236
+ displayYearCustomOption
237
+ } = this.props;
238
+ return /*#__PURE__*/_jsx("div", {
239
+ className: "".concat(cssClassName)
240
+ }, void 0, /*#__PURE__*/_jsx(StartDateTime, {
241
+ onStartDateChange: this.onStartDateChangeInput,
242
+ onStartTimeChange: this.onStartTimeChangeInput,
243
+ startDateValue: startDateInput,
244
+ startDayBlocked: startDayBlocked,
245
+ startTimeValue: startTimeInput
246
+ }), useTimezoneSelector && /*#__PURE__*/_jsx(TimeZonePicker, {
247
+ onTimezoneChange: this.onTimeZonePickerInput,
248
+ timezoneOptions: timeZoneOptions,
249
+ timezoneValue: timezonePickerInput
250
+ }), /*#__PURE__*/_jsx(RepeatPickerInput, {
251
+ onQtyChange: this.onQtyRepeatPickerInput,
252
+ onTypeChange: this.onTypeRepeatPickerInput,
253
+ qtyValue: qtyRepeatPickerInput,
254
+ repeatFrecuencyCustomProps: repeatFrecuencyCustomProps,
255
+ repeatOptions: dropdownRepeatOptions,
256
+ repeatOptionsValue: typeRepeatPickerInput
257
+ }), dayOfWeekOptionsEnable && typeRepeatPickerInput === DropdownRepeatOptionsTypes.WEEK && /*#__PURE__*/_jsx(DaysOfWeekPicker, {
258
+ active: dayWeekRepeatPickerInput,
259
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
260
+ onDayChange: this.onDayOfWeekRepeatPickerInput,
261
+ options: dropdownDayOfWeekOptions
262
+ }), dayOfMonthOptionsEnable && typeRepeatPickerInput === DropdownRepeatOptionsTypes.MONTH && /*#__PURE__*/_jsx(DaysOfMonthPicker, {
263
+ currentDate: startDateInput,
264
+ dayOfMonthAsCurrentDateOptions: dayOfMonthAsCurrentDateOptions,
265
+ dayOfMonthOptions: dropdownDayOfMonthOptions,
266
+ dayOfMonthValue: dayOfMonthRepeatPickerInput,
267
+ displayMonthCustomOption: displayMonthCustomOption,
268
+ displayOptionsAsCurrentDate: displayCurrentMonthYear,
269
+ onDayChange: this.onDayOfMonthRepeatChangeInput
270
+ }), dayOfYearOptionsEnable && typeRepeatPickerInput === DropdownRepeatOptionsTypes.YEAR && /*#__PURE__*/_jsx(DaysOfMonthPicker$1, {
271
+ currentDate: startDateInput,
272
+ dayOfMonthOptions: dropdownDayOfYearOptions,
273
+ dayOfMonthValue: dayOfYearRepeatPickerInput,
274
+ dayOfYearAsCurrentDateOptions: dayOfYearAsCurrentDateOptions,
275
+ displayOptionsAsCurrentDate: displayCurrentMonthYear,
276
+ displayYearCustomOption: displayYearCustomOption,
277
+ onDayChange: this.onDayOfYearRepeatChangeInput
278
+ }), _hr || (_hr = /*#__PURE__*/_jsx("hr", {})), /*#__PURE__*/_jsx(EndDate, {
279
+ endDateValue: endDateInput,
280
+ endDayBlocked: endDayBlocked,
281
+ endTimesOptions: endTimesOptions,
282
+ endTimesValue: endTimesInput,
283
+ endTypesOptions: endTypesOptions,
284
+ endTypeValue: endTypeInput,
285
+ onEndDateChange: this.onEndDateChangeInput,
286
+ onEndTimesChange: this.onEndTimesChangeInput,
287
+ onEndTypeChange: this.onEndTypeChangeInput
288
+ }), /*#__PURE__*/_jsx(DSModal, {
289
+ className: "datetime-alert-modal",
290
+ isOpen: alertModal,
291
+ modalTitle: "Some months have fewer than ".concat(alertReplace, " days") // modalType={modalType}
292
+ ,
293
+ onClose: () => this.setState({
294
+ alertModal: false
295
+ }),
296
+ onConfirm: () => this.setState({
297
+ alertModal: false
298
+ })
299
+ }, void 0, _p || (_p = /*#__PURE__*/_jsx("p", {}, void 0, "For these months, the occurrence will fall on the last day of the month."))), validationMessage && /*#__PURE__*/_jsx(ValidationMessage, {
300
+ validationMessage: validationMessage
301
+ }));
302
+ }
303
+
304
+ }
305
+
306
+ export { DateTimePredefinedRangeSelectorImpl as default };
@@ -0,0 +1,277 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.filter.js';
3
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
4
+ import 'core-js/modules/esnext.iterator.for-each.js';
5
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import 'core-js/modules/esnext.async-iterator.find.js';
8
+ import 'core-js/modules/esnext.iterator.constructor.js';
9
+ import 'core-js/modules/esnext.iterator.find.js';
10
+ import 'core-js/modules/web.dom-collections.iterator.js';
11
+ import { Component } from 'react';
12
+ import { isEqual } from 'lodash';
13
+ import 'react-dates/initialize';
14
+ import { components } from 'react-select';
15
+ import { convertPropToCssClassName } from '@elliemae/ds-classnames';
16
+ import { DSComboBox } from '@elliemae/ds-form';
17
+ import DateTimeRangeModal from './DateTimeRangeModal/DateTimeRangeModal.js';
18
+ import { jsxs, jsx } from 'react/jsx-runtime';
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+ const {
24
+ cssClassName,
25
+ classNameElement,
26
+ classNameBlock
27
+ } = convertPropToCssClassName('date-time-predefined-range-selector');
28
+
29
+ class DateTimeRecurenceSelectorImpl extends Component {
30
+ constructor(props) {
31
+ super(props);
32
+
33
+ this.onChange = () => {
34
+ const {
35
+ onChange
36
+ } = this.props;
37
+ const {
38
+ customRange,
39
+ selected
40
+ } = this.state;
41
+ onChange(selected, customRange);
42
+ };
43
+
44
+ this.onCustomDateTimeRange = customRange => {
45
+ this.setState({
46
+ customRange
47
+ });
48
+ };
49
+
50
+ this.onChangeDropdown = value => {
51
+ const {
52
+ dropdownPreselectedOptions
53
+ } = this.props;
54
+ const selected = dropdownPreselectedOptions.find(op => op.value === value);
55
+ const {
56
+ onChange
57
+ } = this.props;
58
+
59
+ if (!selected) {
60
+ this.setState(previousState => ({
61
+ selected: value,
62
+ previousSelection: previousState.selected
63
+ }));
64
+ this.handleOpenModal();
65
+ } else if (selected) {
66
+ onChange(value);
67
+ this.setState({
68
+ selected: value,
69
+ openModal: false
70
+ });
71
+ }
72
+ };
73
+
74
+ this.handleConfirm = () => {
75
+ const {
76
+ onConfirmField,
77
+ customOptionRender: CustomOptionRender,
78
+ dayOfMonthOptionsEnable,
79
+ dayOfWeekOptionsEnable,
80
+ dayOfYearOptionsEnable,
81
+ useTimezoneSelector,
82
+ allowMultipleDaysOfWeek
83
+ } = this.props;
84
+ const {
85
+ customRange
86
+ } = this.state;
87
+ this.props.advanceOption.label = /*#__PURE__*/_jsx(CustomOptionRender, {
88
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
89
+ customRange: customRange,
90
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
91
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
92
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
93
+ useTimezoneSelector: useTimezoneSelector
94
+ });
95
+ this.onChange();
96
+ this.handleCloseModal();
97
+ onConfirmField();
98
+ };
99
+
100
+ this.handleReject = () => {
101
+ const {
102
+ onRejectField
103
+ } = this.props;
104
+ this.handleActionClose();
105
+ onRejectField();
106
+ };
107
+
108
+ this.handleActionClose = () => {
109
+ this.setState(previousState => ({
110
+ selected: previousState.previousSelection
111
+ }));
112
+ this.handleCloseModal();
113
+ };
114
+
115
+ this.handleOpenModal = () => this.setState({
116
+ openModal: true
117
+ });
118
+
119
+ this.handleCloseModal = () => {
120
+ this.setState({
121
+ openModal: false
122
+ });
123
+ setTimeout(() => document.activeElement.blur(), 0); // https://github.com/reactjs/react-modal/issues/680
124
+ };
125
+
126
+ this.initCustomRange = props.customRange;
127
+ this.state = {
128
+ // eslint-disable-next-line react/no-unused-state
129
+ previousCustomRange: _objectSpread({}, props.customRange),
130
+ openModal: props.openModal || false,
131
+ selected: props.value,
132
+ customRange: _objectSpread({}, props.customRange)
133
+ };
134
+
135
+ if (props.value === props.advanceOption.value) {
136
+ // eslint-disable-next-line no-param-reassign
137
+ props.advanceOption.label = /*#__PURE__*/_jsx(props.customOptionRender, {
138
+ allowMultipleDaysOfWeek: props.allowMultipleDaysOfWeek,
139
+ customRange: props.customRange,
140
+ dayOfMonthOptionsEnable: props.dayOfMonthOptionsEnable,
141
+ dayOfWeekOptionsEnable: props.dayOfWeekOptionsEnable,
142
+ dayOfYearOptionsEnable: props.dayOfYearOptionsEnable,
143
+ useTimezoneSelector: props.useTimezoneSelector
144
+ });
145
+ }
146
+ }
147
+
148
+ static getDerivedStateFromProps(props, state) {
149
+ if (props.customRange && !isEqual(props.customRange, state.previousCustomRange)) {
150
+ if (props.value === props.advanceOption.value) {
151
+ // eslint-disable-next-line no-param-reassign
152
+ props.advanceOption.label = /*#__PURE__*/_jsx(props.customOptionRender, {
153
+ allowMultipleDaysOfWeek: props.allowMultipleDaysOfWeek,
154
+ customRange: props.customRange,
155
+ dayOfMonthOptionsEnable: props.dayOfMonthOptionsEnable,
156
+ dayOfWeekOptionsEnable: props.dayOfWeekOptionsEnable,
157
+ dayOfYearOptionsEnable: props.dayOfYearOptionsEnable,
158
+ useTimezoneSelector: props.useTimezoneSelector
159
+ });
160
+ }
161
+
162
+ return {
163
+ previousCustomRange: _objectSpread({}, props.customRange),
164
+ customRange: _objectSpread({}, props.customRange),
165
+ selected: props.value
166
+ };
167
+ }
168
+
169
+ return null;
170
+ }
171
+
172
+ render() {
173
+ const {
174
+ placeholder,
175
+ dropdownPreselectedOptions,
176
+ appElement,
177
+ confirmLabel,
178
+ modalSize,
179
+ modalTitle,
180
+ modalType,
181
+ rejectLabel,
182
+ dropdownDayOfMonthOptions,
183
+ dropdownDayOfWeekOptions,
184
+ dropdownDayOfYearOptions,
185
+ dropdownRepeatOptions,
186
+ displayCurrentMonthYear,
187
+ className,
188
+ dayOfMonthOptionsEnable,
189
+ dayOfWeekOptionsEnable,
190
+ dayOfYearOptionsEnable,
191
+ timeZoneOptions,
192
+ useTimezoneSelector,
193
+ allowMultipleDaysOfWeek,
194
+ endTimesOptions,
195
+ endTypesOptions,
196
+ advanceOption,
197
+ dayOfMonthAsCurrentDateOptions,
198
+ dayOfYearAsCurrentDateOptions,
199
+ isValidRecurrence,
200
+ validationMessage,
201
+ endDayBlocked,
202
+ startDayBlocked,
203
+ repeatFrecuencyCustomProps,
204
+ displayMonthCustomOption,
205
+ displayYearCustomOption,
206
+ containerProps
207
+ } = this.props;
208
+ const {
209
+ selected,
210
+ openModal,
211
+ customRange
212
+ } = this.state;
213
+ const options = [...dropdownPreselectedOptions, advanceOption];
214
+ return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({}, containerProps), {}, {
215
+ className: "".concat(cssClassName, " ").concat(className),
216
+ children: [/*#__PURE__*/_jsx("div", {
217
+ className: "".concat(classNameBlock('container-selector'))
218
+ }, void 0, /*#__PURE__*/_jsx(DSComboBox, {
219
+ className: "".concat(classNameElement('dropdown-field-selector')),
220
+ components: {
221
+ Option: props => /*#__PURE__*/jsx(components.Option, _objectSpread(_objectSpread({}, props), {}, {
222
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
223
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
224
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
225
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
226
+ useTimezoneSelector: useTimezoneSelector
227
+ })),
228
+ IndicatorSeparator: () => null
229
+ },
230
+ onChange: this.onChangeDropdown,
231
+ onKeyDown: this.onKeyDown,
232
+ options: options,
233
+ placeholder: placeholder,
234
+ value: selected
235
+ })), /*#__PURE__*/_jsx(DateTimeRangeModal, {
236
+ allowMultipleDaysOfWeek: allowMultipleDaysOfWeek,
237
+ appElement: appElement,
238
+ confirmLabel: confirmLabel,
239
+ dayOfMonthAsCurrentDateOptions: dayOfMonthAsCurrentDateOptions,
240
+ dayOfMonthOptionsEnable: dayOfMonthOptionsEnable,
241
+ dayOfWeekOptionsEnable: dayOfWeekOptionsEnable,
242
+ dayOfYearAsCurrentDateOptions: dayOfYearAsCurrentDateOptions,
243
+ dayOfYearOptionsEnable: dayOfYearOptionsEnable,
244
+ displayCurrentMonthYear: displayCurrentMonthYear,
245
+ displayMonthCustomOption: displayMonthCustomOption,
246
+ displayYearCustomOption: displayYearCustomOption,
247
+ dropdownDayOfMonthOptions: dropdownDayOfMonthOptions,
248
+ dropdownDayOfWeekOptions: dropdownDayOfWeekOptions,
249
+ dropdownDayOfYearOptions: dropdownDayOfYearOptions,
250
+ dropdownRepeatOptions: dropdownRepeatOptions,
251
+ endDayBlocked: endDayBlocked,
252
+ endTimesOptions: endTimesOptions,
253
+ endTypesOptions: endTypesOptions,
254
+ isOpen: openModal,
255
+ isValidRecurrence: isValidRecurrence,
256
+ modalSize: modalSize,
257
+ modalTitle: modalTitle,
258
+ modalType: modalType,
259
+ onClose: this.handleActionClose,
260
+ onConfirmField: this.handleConfirm,
261
+ onCustomDateTimeRange: this.onCustomDateTimeRange,
262
+ onRejectField: this.handleReject,
263
+ placeholder: placeholder,
264
+ rangeValue: customRange,
265
+ rejectLabel: rejectLabel,
266
+ repeatFrecuencyCustomProps: repeatFrecuencyCustomProps,
267
+ startDayBlocked: startDayBlocked,
268
+ timeZoneOptions: timeZoneOptions,
269
+ useTimezoneSelector: useTimezoneSelector,
270
+ validationMessage: validationMessage
271
+ })]
272
+ }));
273
+ }
274
+
275
+ }
276
+
277
+ export { DateTimeRecurenceSelectorImpl as default };
@@ -0,0 +1,68 @@
1
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import 'core-js/modules/esnext.async-iterator.find.js';
4
+ import 'core-js/modules/esnext.iterator.constructor.js';
5
+ import 'core-js/modules/esnext.iterator.find.js';
6
+ import 'react';
7
+ import { DSComboBox } from '@elliemae/ds-form';
8
+ import { nthDay } from '../helpers/nthday.js';
9
+ import { dropdownDayOfMonthOptions } from '../../options/dropdownDayOfMonthOptions.js';
10
+ import FormLabel from '../Forms/FormLabel.js';
11
+ import FormFieldGroup from '../Forms/FormFieldGroup.js';
12
+ import FormGroup from '../Forms/FormGroup.js';
13
+
14
+ const DaysOfMonthPicker = _ref => {
15
+ let {
16
+ onDayChange = () => null,
17
+ dayOfMonthValue = dropdownDayOfMonthOptions[0].value,
18
+ dayOfMonthOptions = dropdownDayOfMonthOptions,
19
+ displayOptionsAsCurrentDate = true,
20
+ currentDate = null,
21
+ inputLabel = 'On',
22
+ dayOfMonthAsCurrentDateOptions,
23
+ displayMonthCustomOption
24
+ } = _ref;
25
+ let options = dayOfMonthOptions;
26
+
27
+ if (displayOptionsAsCurrentDate) {
28
+ const numberoption = "on the ".concat(currentDate.format('Do'), " of the month");
29
+ const nthoption = "on the ".concat(nthDay(currentDate.toDate()), " ").concat(currentDate.format('dddd'), " of the month");
30
+ options = [];
31
+
32
+ if (dayOfMonthAsCurrentDateOptions.indexOf('numberOfMonth') > -1) {
33
+ options.push({
34
+ number: currentDate.format('DD'),
35
+ label: numberoption,
36
+ value: numberoption,
37
+ dayOfMonthRepeatPickerKey: 'numberOfMonth'
38
+ });
39
+ }
40
+
41
+ if (dayOfMonthAsCurrentDateOptions.indexOf('dayOfTheWeekOfMonth') > -1) {
42
+ options.push({
43
+ numberLabel: "".concat(nthDay(currentDate.toDate()), " ").concat(currentDate.format('dddd')),
44
+ label: nthoption,
45
+ value: nthoption,
46
+ dayOfMonthRepeatPickerKey: 'dayOfTheWeekOfMonth'
47
+ });
48
+ }
49
+
50
+ if (displayMonthCustomOption) {
51
+ options = [...options, ...dayOfMonthOptions];
52
+ }
53
+ }
54
+
55
+ const selected = options.find(option => option.value === dayOfMonthValue) ? dayOfMonthValue : null;
56
+
57
+ if (!selected) {
58
+ onDayChange(options[0].value, options[0]);
59
+ }
60
+
61
+ return /*#__PURE__*/_jsx(FormGroup, {}, void 0, /*#__PURE__*/_jsx(FormLabel, {}, void 0, inputLabel), /*#__PURE__*/_jsx(FormFieldGroup, {}, void 0, /*#__PURE__*/_jsx(DSComboBox, {
62
+ onChange: value => onDayChange(value, options.find(o => o.value === value)),
63
+ options: options,
64
+ value: selected
65
+ })));
66
+ };
67
+
68
+ export { DaysOfMonthPicker as default };