@finos/legend-application 3.0.3 → 4.0.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 (176) hide show
  1. package/lib/application/LegendApplication.d.ts +2 -2
  2. package/lib/application/LegendApplication.d.ts.map +1 -1
  3. package/lib/application/LegendApplication.js +4 -4
  4. package/lib/application/LegendApplication.js.map +1 -1
  5. package/lib/application/LegendApplicationPluginManager.d.ts +3 -3
  6. package/lib/application/LegendApplicationPluginManager.d.ts.map +1 -1
  7. package/lib/components/ActionAlert.d.ts +1 -0
  8. package/lib/components/ActionAlert.d.ts.map +1 -1
  9. package/lib/components/ActionAlert.js +2 -2
  10. package/lib/components/ActionAlert.js.map +1 -1
  11. package/lib/components/ApplicationStoreProvider.d.ts +3 -3
  12. package/lib/components/ApplicationStoreProvider.d.ts.map +1 -1
  13. package/lib/components/ApplicationStoreProvider.js +2 -2
  14. package/lib/components/ApplicationStoreProvider.js.map +1 -1
  15. package/lib/components/ApplicationStoreProviderTestUtils.d.ts +5 -5
  16. package/lib/components/ApplicationStoreProviderTestUtils.d.ts.map +1 -1
  17. package/lib/components/ApplicationStoreProviderTestUtils.js +5 -4
  18. package/lib/components/ApplicationStoreProviderTestUtils.js.map +1 -1
  19. package/lib/components/ApplicationTestID.js +1 -1
  20. package/lib/components/ApplicationTestID.js.map +1 -1
  21. package/lib/components/BasicValueSpecificationEditor.d.ts +44 -0
  22. package/lib/components/BasicValueSpecificationEditor.d.ts.map +1 -0
  23. package/lib/components/BasicValueSpecificationEditor.js +276 -0
  24. package/lib/components/BasicValueSpecificationEditor.js.map +1 -0
  25. package/lib/components/BlockingAlert.d.ts +1 -0
  26. package/lib/components/BlockingAlert.d.ts.map +1 -1
  27. package/lib/components/BlockingAlert.js +1 -1
  28. package/lib/components/BlockingAlert.js.map +1 -1
  29. package/lib/components/CustomDatePicker.d.ts +38 -0
  30. package/lib/components/CustomDatePicker.d.ts.map +1 -0
  31. package/lib/components/CustomDatePicker.js +592 -0
  32. package/lib/components/CustomDatePicker.js.map +1 -0
  33. package/lib/components/DocumentationLink.d.ts +1 -1
  34. package/lib/components/DocumentationLink.js +2 -2
  35. package/lib/components/DocumentationLink.js.map +1 -1
  36. package/lib/components/LambdaEditor.d.ts +2 -1
  37. package/lib/components/LambdaEditor.d.ts.map +1 -1
  38. package/lib/components/LambdaEditor.js +3 -3
  39. package/lib/components/LambdaEditor.js.map +1 -1
  40. package/lib/components/LambdaParameterValuesEditor.d.ts +25 -0
  41. package/lib/components/LambdaParameterValuesEditor.d.ts.map +1 -0
  42. package/lib/components/LambdaParameterValuesEditor.js +52 -0
  43. package/lib/components/LambdaParameterValuesEditor.js.map +1 -0
  44. package/lib/components/LegendApplicationComponentFrameworkProvider.d.ts +1 -1
  45. package/lib/components/LegendApplicationComponentFrameworkProvider.js +3 -3
  46. package/lib/components/LegendApplicationComponentFrameworkProvider.js.map +1 -1
  47. package/lib/components/LegendApplicationNavigationContextServiceUtils.d.ts +32 -0
  48. package/lib/components/LegendApplicationNavigationContextServiceUtils.d.ts.map +1 -0
  49. package/lib/components/LegendApplicationNavigationContextServiceUtils.js +57 -0
  50. package/lib/components/LegendApplicationNavigationContextServiceUtils.js.map +1 -0
  51. package/lib/components/NotificationManager.d.ts +1 -0
  52. package/lib/components/NotificationManager.d.ts.map +1 -1
  53. package/lib/components/NotificationManager.js +2 -2
  54. package/lib/components/NotificationManager.js.map +1 -1
  55. package/lib/components/TextInputEditor.d.ts +2 -2
  56. package/lib/components/TextInputEditor.d.ts.map +1 -1
  57. package/lib/components/TextInputEditor.js +2 -2
  58. package/lib/components/TextInputEditor.js.map +1 -1
  59. package/lib/components/{AppHeader.d.ts → VirtualAssistant.d.ts} +5 -5
  60. package/lib/components/VirtualAssistant.d.ts.map +1 -0
  61. package/lib/components/VirtualAssistant.js +171 -0
  62. package/lib/components/VirtualAssistant.js.map +1 -0
  63. package/lib/components/WebApplicationNavigatorProvider.d.ts +2 -2
  64. package/lib/components/WebApplicationNavigatorProvider.d.ts.map +1 -1
  65. package/lib/components/WebApplicationNavigatorProvider.js +1 -1
  66. package/lib/components/WebApplicationNavigatorProvider.js.map +1 -1
  67. package/lib/components/WebApplicationNavigatorProviderTestUtils.d.ts +2 -2
  68. package/lib/components/WebApplicationNavigatorProviderTestUtils.d.ts.map +1 -1
  69. package/lib/components/WebApplicationNavigatorProviderTestUtils.js +3 -2
  70. package/lib/components/WebApplicationNavigatorProviderTestUtils.js.map +1 -1
  71. package/lib/const.js +2 -2
  72. package/lib/const.js.map +1 -1
  73. package/lib/index.css +2 -2
  74. package/lib/index.css.map +1 -1
  75. package/lib/index.d.ts +30 -22
  76. package/lib/index.d.ts.map +1 -1
  77. package/lib/index.js +32 -22
  78. package/lib/index.js.map +1 -1
  79. package/lib/stores/ApplicationEvent.d.ts +9 -7
  80. package/lib/stores/ApplicationEvent.d.ts.map +1 -1
  81. package/lib/stores/ApplicationEvent.js +10 -8
  82. package/lib/stores/ApplicationEvent.js.map +1 -1
  83. package/lib/stores/ApplicationStore.d.ts +15 -9
  84. package/lib/stores/ApplicationStore.d.ts.map +1 -1
  85. package/lib/stores/ApplicationStore.js +26 -21
  86. package/lib/stores/ApplicationStore.js.map +1 -1
  87. package/lib/stores/ApplicationStoreTestUtils.d.ts +3 -3
  88. package/lib/stores/ApplicationStoreTestUtils.d.ts.map +1 -1
  89. package/lib/stores/ApplicationStoreTestUtils.js +2 -2
  90. package/lib/stores/ApplicationStoreTestUtils.js.map +1 -1
  91. package/lib/stores/ApplicationTelemetry.d.ts +1 -1
  92. package/lib/stores/ApplicationTelemetry.d.ts.map +1 -1
  93. package/lib/stores/ApplicationTelemetry.js +2 -2
  94. package/lib/stores/ApplicationTelemetry.js.map +1 -1
  95. package/lib/stores/CJS__Fuse.cjs +35 -0
  96. package/lib/stores/CJS__Fuse.cjs.map +1 -0
  97. package/lib/stores/CJS__Fuse.d.cts +28 -0
  98. package/lib/stores/CJS__Fuse.d.cts.map +1 -0
  99. package/lib/stores/LambdaParameterState.d.ts +59 -0
  100. package/lib/stores/LambdaParameterState.d.ts.map +1 -0
  101. package/lib/stores/LambdaParameterState.js +184 -0
  102. package/lib/stores/LambdaParameterState.js.map +1 -0
  103. package/lib/stores/LegendApplicationAssistantService.d.ts +63 -0
  104. package/lib/stores/LegendApplicationAssistantService.d.ts.map +1 -0
  105. package/lib/stores/LegendApplicationAssistantService.js +167 -0
  106. package/lib/stores/LegendApplicationAssistantService.js.map +1 -0
  107. package/lib/stores/LegendApplicationConfig.d.ts +5 -4
  108. package/lib/stores/LegendApplicationConfig.d.ts.map +1 -1
  109. package/lib/stores/LegendApplicationConfig.js +8 -3
  110. package/lib/stores/LegendApplicationConfig.js.map +1 -1
  111. package/lib/stores/LegendApplicationDocumentationService.d.ts +70 -0
  112. package/lib/stores/LegendApplicationDocumentationService.d.ts.map +1 -0
  113. package/lib/stores/LegendApplicationDocumentationService.js +152 -0
  114. package/lib/stores/LegendApplicationDocumentationService.js.map +1 -0
  115. package/lib/stores/LegendApplicationEventService.d.ts +22 -0
  116. package/lib/stores/LegendApplicationEventService.d.ts.map +1 -0
  117. package/lib/stores/LegendApplicationEventService.js +25 -0
  118. package/lib/stores/LegendApplicationEventService.js.map +1 -0
  119. package/lib/stores/LegendApplicationNavigationContextService.d.ts +74 -0
  120. package/lib/stores/LegendApplicationNavigationContextService.d.ts.map +1 -0
  121. package/lib/stores/LegendApplicationNavigationContextService.js +118 -0
  122. package/lib/stores/LegendApplicationNavigationContextService.js.map +1 -0
  123. package/lib/stores/LegendApplicationPlugin.d.ts +6 -2
  124. package/lib/stores/LegendApplicationPlugin.d.ts.map +1 -1
  125. package/lib/stores/LegendApplicationPlugin.js.map +1 -1
  126. package/lib/stores/PureLanguageSupport.d.ts.map +1 -1
  127. package/lib/stores/PureLanguageSupport.js +8 -2
  128. package/lib/stores/PureLanguageSupport.js.map +1 -1
  129. package/lib/stores/ValueSpecificationModifierHelper.d.ts +27 -0
  130. package/lib/stores/ValueSpecificationModifierHelper.d.ts.map +1 -0
  131. package/lib/stores/ValueSpecificationModifierHelper.js +49 -0
  132. package/lib/stores/ValueSpecificationModifierHelper.js.map +1 -0
  133. package/package.json +24 -18
  134. package/src/application/LegendApplication.tsx +6 -6
  135. package/src/application/LegendApplicationPluginManager.tsx +3 -3
  136. package/src/components/ActionAlert.tsx +2 -2
  137. package/src/components/ApplicationStoreProvider.tsx +4 -4
  138. package/src/components/ApplicationStoreProviderTestUtils.tsx +7 -6
  139. package/src/components/BasicValueSpecificationEditor.tsx +703 -0
  140. package/src/components/BlockingAlert.tsx +1 -1
  141. package/src/components/CustomDatePicker.tsx +1235 -0
  142. package/src/components/DocumentationLink.tsx +2 -2
  143. package/src/components/LambdaEditor.tsx +4 -4
  144. package/src/components/LambdaParameterValuesEditor.tsx +114 -0
  145. package/src/components/LegendApplicationComponentFrameworkProvider.tsx +3 -3
  146. package/src/components/LegendApplicationNavigationContextServiceUtils.tsx +63 -0
  147. package/src/components/NotificationManager.tsx +2 -2
  148. package/src/components/TextInputEditor.tsx +2 -2
  149. package/src/components/VirtualAssistant.tsx +600 -0
  150. package/src/components/WebApplicationNavigatorProvider.tsx +1 -1
  151. package/src/components/WebApplicationNavigatorProviderTestUtils.tsx +3 -2
  152. package/src/index.ts +39 -28
  153. package/src/stores/ApplicationEvent.ts +11 -7
  154. package/src/stores/ApplicationStore.ts +29 -27
  155. package/src/stores/ApplicationStoreTestUtils.ts +4 -4
  156. package/src/stores/ApplicationTelemetry.ts +2 -2
  157. package/src/stores/CJS__Fuse.cts +28 -0
  158. package/src/stores/LambdaParameterState.ts +314 -0
  159. package/src/stores/LegendApplicationAssistantService.ts +218 -0
  160. package/src/stores/LegendApplicationConfig.ts +20 -6
  161. package/src/stores/LegendApplicationDocumentationService.ts +276 -0
  162. package/src/stores/LegendApplicationEventService.ts +32 -0
  163. package/src/stores/LegendApplicationNavigationContextService.ts +131 -0
  164. package/src/stores/LegendApplicationPlugin.ts +10 -2
  165. package/src/stores/PureLanguageSupport.ts +8 -2
  166. package/src/stores/ValueSpecificationModifierHelper.ts +104 -0
  167. package/tsconfig.json +18 -12
  168. package/lib/components/AppHeader.d.ts.map +0 -1
  169. package/lib/components/AppHeader.js +0 -26
  170. package/lib/components/AppHeader.js.map +0 -1
  171. package/lib/stores/LegendApplicationDocumentationRegistry.d.ts +0 -36
  172. package/lib/stores/LegendApplicationDocumentationRegistry.d.ts.map +0 -1
  173. package/lib/stores/LegendApplicationDocumentationRegistry.js +0 -47
  174. package/lib/stores/LegendApplicationDocumentationRegistry.js.map +0 -1
  175. package/src/components/AppHeader.tsx +0 -49
  176. package/src/stores/LegendApplicationDocumentationRegistry.ts +0 -81
@@ -0,0 +1,592 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { BasePopover, BaseRadioGroup, CustomSelectorInput, } from '@finos/legend-art';
18
+ import { PRIMITIVE_TYPE, SimpleFunctionExpression, InstanceValue, GenericType, PrimitiveInstanceValue, GenericTypeExplicitReference, EnumValueExplicitReference, EnumValueInstanceValue, matchFunctionName, TYPICAL_MULTIPLICITY_TYPE, SUPPORTED_FUNCTIONS, DAY_OF_WEEK, buildPrimitiveInstanceValue, DURATION_UNIT, } from '@finos/legend-graph';
19
+ import { guaranteeNonNullable, UnsupportedOperationError, } from '@finos/legend-shared';
20
+ import { useEffect, useState } from 'react';
21
+ import { genericType_setRawType, instanceValue_changeValue, } from '../stores/ValueSpecificationModifierHelper.js';
22
+ var CUSTOM_DATE_PICKER_OPTION;
23
+ (function (CUSTOM_DATE_PICKER_OPTION) {
24
+ CUSTOM_DATE_PICKER_OPTION["ABSOLUTE_DATE"] = "Absolute Date";
25
+ CUSTOM_DATE_PICKER_OPTION["ABSOLUTE_TIME"] = "Absolute Time";
26
+ CUSTOM_DATE_PICKER_OPTION["TODAY"] = "Today";
27
+ CUSTOM_DATE_PICKER_OPTION["NOW"] = "Now";
28
+ CUSTOM_DATE_PICKER_OPTION["YESTERDAY"] = "Yesterday";
29
+ CUSTOM_DATE_PICKER_OPTION["ONE_YEAR_AGO"] = "One Year Ago";
30
+ CUSTOM_DATE_PICKER_OPTION["ONE_MONTH_AGO"] = "One Month Ago";
31
+ CUSTOM_DATE_PICKER_OPTION["ONE_WEEK_AGO"] = "One Week Ago";
32
+ CUSTOM_DATE_PICKER_OPTION["CUSTOM_DATE"] = "Custom Date";
33
+ CUSTOM_DATE_PICKER_OPTION["PREVIOUS_DAY_OF_WEEK"] = "Previous ... of Week";
34
+ CUSTOM_DATE_PICKER_OPTION["FIRST_DAY_OF"] = "First day of...";
35
+ CUSTOM_DATE_PICKER_OPTION["LATEST_DATE"] = "Latest Date";
36
+ })(CUSTOM_DATE_PICKER_OPTION || (CUSTOM_DATE_PICKER_OPTION = {}));
37
+ var CUSTOM_DATE_OPTION_UNIT;
38
+ (function (CUSTOM_DATE_OPTION_UNIT) {
39
+ CUSTOM_DATE_OPTION_UNIT["DAYS"] = "Day(s)";
40
+ CUSTOM_DATE_OPTION_UNIT["WEEKS"] = "Week(s)";
41
+ CUSTOM_DATE_OPTION_UNIT["MONTHS"] = "Month(s)";
42
+ CUSTOM_DATE_OPTION_UNIT["YEARS"] = "Year(s)";
43
+ })(CUSTOM_DATE_OPTION_UNIT || (CUSTOM_DATE_OPTION_UNIT = {}));
44
+ var CUSTOM_DATE_FIRST_DAY_OF_UNIT;
45
+ (function (CUSTOM_DATE_FIRST_DAY_OF_UNIT) {
46
+ CUSTOM_DATE_FIRST_DAY_OF_UNIT["WEEK"] = "Week";
47
+ CUSTOM_DATE_FIRST_DAY_OF_UNIT["MONTH"] = "Month";
48
+ CUSTOM_DATE_FIRST_DAY_OF_UNIT["QUARTER"] = "Quarter";
49
+ CUSTOM_DATE_FIRST_DAY_OF_UNIT["YEAR"] = "Year";
50
+ })(CUSTOM_DATE_FIRST_DAY_OF_UNIT || (CUSTOM_DATE_FIRST_DAY_OF_UNIT = {}));
51
+ var CUSTOM_DATE_DAY_OF_WEEK;
52
+ (function (CUSTOM_DATE_DAY_OF_WEEK) {
53
+ CUSTOM_DATE_DAY_OF_WEEK["MONDAY"] = "Monday";
54
+ CUSTOM_DATE_DAY_OF_WEEK["TUESDAY"] = "Tuesday";
55
+ CUSTOM_DATE_DAY_OF_WEEK["WENDNESDAY"] = "Wednesday";
56
+ CUSTOM_DATE_DAY_OF_WEEK["THURSDAY"] = "Thursday";
57
+ CUSTOM_DATE_DAY_OF_WEEK["FRIDAY"] = "Friday";
58
+ CUSTOM_DATE_DAY_OF_WEEK["SATURDAY"] = "Saturday";
59
+ CUSTOM_DATE_DAY_OF_WEEK["SUNDAY"] = "Sunday";
60
+ })(CUSTOM_DATE_DAY_OF_WEEK || (CUSTOM_DATE_DAY_OF_WEEK = {}));
61
+ var CUSTOM_DATE_OPTION_DIRECTION;
62
+ (function (CUSTOM_DATE_OPTION_DIRECTION) {
63
+ CUSTOM_DATE_OPTION_DIRECTION["BEFORE"] = "Before";
64
+ CUSTOM_DATE_OPTION_DIRECTION["AFTER"] = "After";
65
+ })(CUSTOM_DATE_OPTION_DIRECTION || (CUSTOM_DATE_OPTION_DIRECTION = {}));
66
+ var CUSTOM_DATE_OPTION_REFERENCE_MOMENT;
67
+ (function (CUSTOM_DATE_OPTION_REFERENCE_MOMENT) {
68
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["TODAY"] = "Today";
69
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["NOW"] = "Now";
70
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["FIRST_DAY_OF_YEAR"] = "Start of Year";
71
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["FIRST_DAY_OF_QUARTER"] = "Start of Quarter";
72
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["FIRST_DAY_OF_MONTH"] = "Start of Month";
73
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT["FIRST_DAY_OF_WEEK"] = "Start of Week";
74
+ })(CUSTOM_DATE_OPTION_REFERENCE_MOMENT || (CUSTOM_DATE_OPTION_REFERENCE_MOMENT = {}));
75
+ /**
76
+ * DatePickerOption is the base class being used to display and generate the corresponding pure date function.
77
+ */
78
+ class DatePickerOption {
79
+ /**
80
+ * label is the text that shows up in the valueSpecification box.
81
+ */
82
+ label;
83
+ /**
84
+ * value is the selected date option in date-dropdown.
85
+ */
86
+ value;
87
+ constructor(label, value) {
88
+ this.label = label;
89
+ this.value = value;
90
+ }
91
+ }
92
+ class CustomDateOption extends DatePickerOption {
93
+ /**
94
+ * duration is the amount of time span that will be adjusted.
95
+ */
96
+ duration;
97
+ /**
98
+ * unit represents the time duration unit, e.g. year, week, etc.
99
+ */
100
+ unit;
101
+ /**
102
+ * direction means the direction in which time adjustment will go to.
103
+ */
104
+ direction;
105
+ /**
106
+ * referenceMoment is the date which adjustment starts from.
107
+ */
108
+ referenceMoment;
109
+ constructor(label, value, duration, unit, direction, referenceMoment) {
110
+ super(label, value);
111
+ this.duration = duration;
112
+ this.unit = unit;
113
+ this.direction = direction;
114
+ this.referenceMoment = referenceMoment;
115
+ }
116
+ generateDisplayLabel() {
117
+ return [
118
+ this.duration,
119
+ this.unit,
120
+ this.direction,
121
+ this.referenceMoment,
122
+ ].join(' ');
123
+ }
124
+ updateLabel() {
125
+ this.label = this.generateDisplayLabel();
126
+ }
127
+ }
128
+ class CustomFirstDayOfOption extends DatePickerOption {
129
+ /**
130
+ * unit: time unit, e.g. Week, Month, etc.
131
+ */
132
+ unit;
133
+ constructor(label, unit) {
134
+ super(label, CUSTOM_DATE_PICKER_OPTION.FIRST_DAY_OF);
135
+ this.unit = unit;
136
+ }
137
+ }
138
+ class CustomPreviousDayOfWeekOption extends DatePickerOption {
139
+ /**
140
+ * day: which day in the week will be selected.
141
+ */
142
+ day;
143
+ constructor(label, day) {
144
+ super(label, CUSTOM_DATE_PICKER_OPTION.PREVIOUS_DAY_OF_WEEK);
145
+ this.day = day;
146
+ }
147
+ }
148
+ const reservedCustomDateOptions = [
149
+ new CustomDateOption('Yesterday', CUSTOM_DATE_PICKER_OPTION.YESTERDAY, 1, CUSTOM_DATE_OPTION_UNIT.DAYS, CUSTOM_DATE_OPTION_DIRECTION.BEFORE, CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY),
150
+ new CustomDateOption('One Week Ago', CUSTOM_DATE_PICKER_OPTION.ONE_WEEK_AGO, 1, CUSTOM_DATE_OPTION_UNIT.WEEKS, CUSTOM_DATE_OPTION_DIRECTION.BEFORE, CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY),
151
+ new CustomDateOption('One Month Ago', CUSTOM_DATE_PICKER_OPTION.ONE_MONTH_AGO, 1, CUSTOM_DATE_OPTION_UNIT.MONTHS, CUSTOM_DATE_OPTION_DIRECTION.BEFORE, CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY),
152
+ new CustomDateOption('One Year Ago', CUSTOM_DATE_PICKER_OPTION.ONE_YEAR_AGO, 1, CUSTOM_DATE_OPTION_UNIT.YEARS, CUSTOM_DATE_OPTION_DIRECTION.BEFORE, CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY),
153
+ ];
154
+ /**
155
+ * Generate pure date functions based on the DatePickerOption.
156
+ */
157
+ const buildPureDateFunctionExpression = (datePickerOption, graph) => {
158
+ const multiplicityOne = graph.getTypicalMultiplicity(TYPICAL_MULTIPLICITY_TYPE.ONE);
159
+ const strictDate = graph.getPrimitiveType(PRIMITIVE_TYPE.STRICTDATE);
160
+ const date = graph.getPrimitiveType(PRIMITIVE_TYPE.DATE);
161
+ const dateTime = graph.getPrimitiveType(PRIMITIVE_TYPE.DATETIME);
162
+ if (datePickerOption instanceof CustomPreviousDayOfWeekOption) {
163
+ const previousFridaySFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.PREVIOUS_DAY_OF_WEEK, multiplicityOne);
164
+ previousFridaySFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
165
+ const dayOfWeekEnumIntanceValue = new EnumValueInstanceValue(GenericTypeExplicitReference.create(new GenericType(graph.getType(DAY_OF_WEEK))), multiplicityOne);
166
+ dayOfWeekEnumIntanceValue.values.push(EnumValueExplicitReference.create(guaranteeNonNullable(graph
167
+ .getEnumeration(DAY_OF_WEEK)
168
+ .values.filter((e) => e.name === datePickerOption.day)[0])));
169
+ previousFridaySFE.parametersValues.push(dayOfWeekEnumIntanceValue);
170
+ return previousFridaySFE;
171
+ }
172
+ else if (datePickerOption instanceof CustomFirstDayOfOption) {
173
+ switch (datePickerOption.unit) {
174
+ case CUSTOM_DATE_FIRST_DAY_OF_UNIT.YEAR: {
175
+ const firstDayOfYearSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_YEAR, multiplicityOne);
176
+ firstDayOfYearSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
177
+ return firstDayOfYearSFE;
178
+ }
179
+ case CUSTOM_DATE_FIRST_DAY_OF_UNIT.QUARTER: {
180
+ const firstDayOfQuarterSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_QUARTER, multiplicityOne);
181
+ firstDayOfQuarterSFE.genericType = GenericTypeExplicitReference.create(new GenericType(strictDate));
182
+ return firstDayOfQuarterSFE;
183
+ }
184
+ case CUSTOM_DATE_FIRST_DAY_OF_UNIT.MONTH: {
185
+ const firstDayOfMonthSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_MONTH, multiplicityOne);
186
+ firstDayOfMonthSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
187
+ return firstDayOfMonthSFE;
188
+ }
189
+ case CUSTOM_DATE_FIRST_DAY_OF_UNIT.WEEK: {
190
+ const firstDayOfWeekSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_WEEK, multiplicityOne);
191
+ firstDayOfWeekSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
192
+ return firstDayOfWeekSFE;
193
+ }
194
+ default:
195
+ throw new UnsupportedOperationError(`Can't build expression for 'First Day Of ...' date picker option for unit '${datePickerOption.unit}'`);
196
+ }
197
+ }
198
+ else {
199
+ switch (datePickerOption.value) {
200
+ case CUSTOM_DATE_PICKER_OPTION.TODAY: {
201
+ const todaySFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.TODAY, multiplicityOne);
202
+ todaySFE.genericType = GenericTypeExplicitReference.create(new GenericType(strictDate));
203
+ return todaySFE;
204
+ }
205
+ case CUSTOM_DATE_PICKER_OPTION.NOW: {
206
+ const nowSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.NOW, multiplicityOne);
207
+ nowSFE.genericType = GenericTypeExplicitReference.create(new GenericType(dateTime));
208
+ return nowSFE;
209
+ }
210
+ case CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_YEAR: {
211
+ const firstDayOfYearSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_YEAR, multiplicityOne);
212
+ firstDayOfYearSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
213
+ return firstDayOfYearSFE;
214
+ }
215
+ case CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_QUARTER: {
216
+ const firstDayOfQuarterSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_QUARTER, multiplicityOne);
217
+ firstDayOfQuarterSFE.genericType = GenericTypeExplicitReference.create(new GenericType(strictDate));
218
+ return firstDayOfQuarterSFE;
219
+ }
220
+ case CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_MONTH: {
221
+ const firstDayOfMonthSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_MONTH, multiplicityOne);
222
+ firstDayOfMonthSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
223
+ return firstDayOfMonthSFE;
224
+ }
225
+ case CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_WEEK: {
226
+ const firstDayOfWeekSFE = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.FIRST_DAY_OF_WEEK, multiplicityOne);
227
+ firstDayOfWeekSFE.genericType = GenericTypeExplicitReference.create(new GenericType(date));
228
+ return firstDayOfWeekSFE;
229
+ }
230
+ default:
231
+ throw new UnsupportedOperationError(`Can't build expression for date picker option '${datePickerOption.value}'`);
232
+ }
233
+ }
234
+ };
235
+ /**
236
+ * Generate the enum value of type Pure Enum, DURATION_UNIT, based on the input string.
237
+ */
238
+ const buildPureDurationEnumValue = (unitString, graph) => {
239
+ const durationUnitEnum = graph.getEnumeration(DURATION_UNIT);
240
+ const targetPureDurationEnumValue = durationUnitEnum.values.filter((e) => e.name ===
241
+ Object.keys(CUSTOM_DATE_OPTION_UNIT).filter((key) => CUSTOM_DATE_OPTION_UNIT[key] === unitString)[0])[0];
242
+ return (targetPureDurationEnumValue ??
243
+ guaranteeNonNullable(durationUnitEnum.values[0]));
244
+ };
245
+ /**
246
+ * Generate the pure date ajust() function based on the CustomDateOption.
247
+ */
248
+ const buildPureAdjustDateFunction = (customDateOption, graph) => {
249
+ const multiplicityOne = graph.getTypicalMultiplicity(TYPICAL_MULTIPLICITY_TYPE.ONE);
250
+ const dateAdjustSimpleFunctionExpression = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.ADJUST, multiplicityOne);
251
+ dateAdjustSimpleFunctionExpression.parametersValues.push(buildPureDateFunctionExpression(new DatePickerOption(guaranteeNonNullable(customDateOption.referenceMoment), guaranteeNonNullable(customDateOption.referenceMoment)), graph));
252
+ if (customDateOption.direction === CUSTOM_DATE_OPTION_DIRECTION.BEFORE) {
253
+ const minusFunc = new SimpleFunctionExpression(SUPPORTED_FUNCTIONS.MINUS, multiplicityOne);
254
+ minusFunc.parametersValues.push(buildPrimitiveInstanceValue(graph, PRIMITIVE_TYPE.INTEGER, customDateOption.duration));
255
+ dateAdjustSimpleFunctionExpression.parametersValues.push(minusFunc);
256
+ }
257
+ else {
258
+ const adjustmentInstanceValue = buildPrimitiveInstanceValue(graph, PRIMITIVE_TYPE.INTEGER, customDateOption.duration);
259
+ dateAdjustSimpleFunctionExpression.parametersValues.push(adjustmentInstanceValue);
260
+ }
261
+ const durationUnitEnumIntanceValue = new EnumValueInstanceValue(GenericTypeExplicitReference.create(new GenericType(graph.getType(DURATION_UNIT))), multiplicityOne);
262
+ durationUnitEnumIntanceValue.values.push(EnumValueExplicitReference.create(guaranteeNonNullable(buildPureDurationEnumValue(guaranteeNonNullable(customDateOption.unit), graph))));
263
+ dateAdjustSimpleFunctionExpression.parametersValues.push(durationUnitEnumIntanceValue);
264
+ dateAdjustSimpleFunctionExpression.genericType =
265
+ GenericTypeExplicitReference.create(new GenericType(graph.getPrimitiveType(PRIMITIVE_TYPE.DATE)));
266
+ return dateAdjustSimpleFunctionExpression;
267
+ };
268
+ /**
269
+ * Generate the value of CustomDateOption.duration from the pure date adjust() function.
270
+ */
271
+ const buildCustomDateOptionDurationValue = (pureDateAdjustFunction) => {
272
+ const durationParam = pureDateAdjustFunction.parametersValues[1];
273
+ return durationParam instanceof PrimitiveInstanceValue
274
+ ? durationParam.values[0]
275
+ : durationParam instanceof SimpleFunctionExpression &&
276
+ matchFunctionName(durationParam.functionName, SUPPORTED_FUNCTIONS.MINUS)
277
+ ? durationParam.parametersValues[0] instanceof PrimitiveInstanceValue
278
+ ? durationParam.parametersValues[0].values[0]
279
+ : 0
280
+ : 0;
281
+ };
282
+ /**
283
+ * Generate the value of CustomDateOption.direction from the pure date adjust() function.
284
+ */
285
+ const buildCustomDateOptionDirectionValue = (pureDateAdjustFunction) => pureDateAdjustFunction.parametersValues[1] instanceof
286
+ SimpleFunctionExpression &&
287
+ matchFunctionName(pureDateAdjustFunction.parametersValues[1].functionName, SUPPORTED_FUNCTIONS.MINUS)
288
+ ? CUSTOM_DATE_OPTION_DIRECTION.BEFORE
289
+ : CUSTOM_DATE_OPTION_DIRECTION.AFTER;
290
+ /**
291
+ * Generate the value of CustomDateOption.unit from the pure date adjust() function.
292
+ */
293
+ const buildCustomDateOptionUnitValue = (valueSpecification) => guaranteeNonNullable(Object.keys(CUSTOM_DATE_OPTION_UNIT)
294
+ .filter((key) => key ===
295
+ valueSpecification.parametersValues[2]
296
+ .values[0]?.value.name)
297
+ .map((key) => CUSTOM_DATE_OPTION_UNIT[key])[0]);
298
+ /**
299
+ * Generate the value of CustomDateOption.moment from the pure date adjust() function.
300
+ */
301
+ const buildCustomDateOptionReferenceMomentValue = (pureDateAjustFunction) => {
302
+ const funcName = pureDateAjustFunction.parametersValues[0].functionName;
303
+ switch (funcName) {
304
+ case SUPPORTED_FUNCTIONS.TODAY:
305
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY;
306
+ case SUPPORTED_FUNCTIONS.NOW:
307
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.NOW;
308
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_YEAR:
309
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_YEAR;
310
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_QUARTER:
311
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_QUARTER;
312
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_MONTH:
313
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_MONTH;
314
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_WEEK:
315
+ return CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_WEEK;
316
+ default:
317
+ throw new UnsupportedOperationError(`Can't build custom date option reference moment '${funcName}'`);
318
+ }
319
+ };
320
+ /**
321
+ * Build CustomDateOption based on the pure date adjust() function.
322
+ * Transform CustomDateOption if it matches any preserved custom adjust date functions. e.g. One Month Ago..
323
+ */
324
+ const buildCustomDateOption = (valueSpecification) => {
325
+ if (valueSpecification instanceof SimpleFunctionExpression &&
326
+ matchFunctionName(valueSpecification.functionName, SUPPORTED_FUNCTIONS.ADJUST)) {
327
+ const customDateOption = new CustomDateOption('', CUSTOM_DATE_PICKER_OPTION.CUSTOM_DATE, buildCustomDateOptionDurationValue(valueSpecification), buildCustomDateOptionUnitValue(valueSpecification), buildCustomDateOptionDirectionValue(valueSpecification), buildCustomDateOptionReferenceMomentValue(valueSpecification));
328
+ const matchedPreservedCustomAdjustDates = reservedCustomDateOptions.filter((t) => t.generateDisplayLabel() === customDateOption.generateDisplayLabel());
329
+ if (matchedPreservedCustomAdjustDates.length > 0) {
330
+ customDateOption.label = guaranteeNonNullable(matchedPreservedCustomAdjustDates[0]?.label);
331
+ customDateOption.value = guaranteeNonNullable(matchedPreservedCustomAdjustDates[0]?.value);
332
+ return customDateOption;
333
+ }
334
+ customDateOption.updateLabel();
335
+ return customDateOption;
336
+ }
337
+ return new CustomDateOption('', '', 0, undefined, undefined, undefined);
338
+ };
339
+ /**
340
+ * Build DatePickerOption from pure date functions or PrimitiveInstanceValue
341
+ */
342
+ const buildDatePickerOption = (valueSpecification) => {
343
+ if (valueSpecification instanceof SimpleFunctionExpression) {
344
+ switch (valueSpecification.functionName) {
345
+ case SUPPORTED_FUNCTIONS.TODAY:
346
+ return new DatePickerOption(CUSTOM_DATE_PICKER_OPTION.TODAY, CUSTOM_DATE_PICKER_OPTION.TODAY);
347
+ case SUPPORTED_FUNCTIONS.NOW:
348
+ return new DatePickerOption(CUSTOM_DATE_PICKER_OPTION.NOW, CUSTOM_DATE_PICKER_OPTION.NOW);
349
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_YEAR:
350
+ return new CustomFirstDayOfOption(CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_YEAR, CUSTOM_DATE_FIRST_DAY_OF_UNIT.YEAR);
351
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_QUARTER:
352
+ return new CustomFirstDayOfOption(CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_QUARTER, CUSTOM_DATE_FIRST_DAY_OF_UNIT.QUARTER);
353
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_MONTH:
354
+ return new CustomFirstDayOfOption(CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_MONTH, CUSTOM_DATE_FIRST_DAY_OF_UNIT.MONTH);
355
+ case SUPPORTED_FUNCTIONS.FIRST_DAY_OF_WEEK:
356
+ return new CustomFirstDayOfOption(CUSTOM_DATE_OPTION_REFERENCE_MOMENT.FIRST_DAY_OF_WEEK, CUSTOM_DATE_FIRST_DAY_OF_UNIT.WEEK);
357
+ case SUPPORTED_FUNCTIONS.PREVIOUS_DAY_OF_WEEK:
358
+ return new CustomPreviousDayOfWeekOption(`Previous ${valueSpecification.parametersValues[0]
359
+ .values[0]?.value.name}`, valueSpecification.parametersValues[0]
360
+ .values[0]?.value.name);
361
+ case SUPPORTED_FUNCTIONS.ADJUST:
362
+ return buildCustomDateOption(valueSpecification);
363
+ default:
364
+ return new DatePickerOption('', '');
365
+ }
366
+ }
367
+ else {
368
+ return valueSpecification.genericType.value.rawType.path ===
369
+ PRIMITIVE_TYPE.LATESTDATE
370
+ ? new DatePickerOption(CUSTOM_DATE_PICKER_OPTION.LATEST_DATE, CUSTOM_DATE_PICKER_OPTION.LATEST_DATE)
371
+ : new DatePickerOption(valueSpecification.values[0], valueSpecification.genericType.value.rawType.path ===
372
+ PRIMITIVE_TYPE.DATETIME
373
+ ? CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_TIME
374
+ : CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_DATE);
375
+ }
376
+ };
377
+ const AbsoluteDateValueSpecificationEditor = (props) => {
378
+ const { valueSpecification, graph, updateValue, setDatePickerOption } = props;
379
+ const absoluteDateValue = valueSpecification instanceof SimpleFunctionExpression
380
+ ? ''
381
+ : valueSpecification.values[0];
382
+ const updateAbsoluteDateValue = (event) => {
383
+ if (valueSpecification instanceof SimpleFunctionExpression) {
384
+ updateValue(buildPrimitiveInstanceValue(graph, PRIMITIVE_TYPE.STRICTDATE, event.target.value));
385
+ }
386
+ else if (valueSpecification instanceof InstanceValue) {
387
+ instanceValue_changeValue(valueSpecification, event.target.value, 0);
388
+ if (valueSpecification.genericType.value.rawType.path !==
389
+ PRIMITIVE_TYPE.STRICTDATE) {
390
+ genericType_setRawType(valueSpecification.genericType.value, graph.getPrimitiveType(PRIMITIVE_TYPE.STRICTDATE));
391
+ }
392
+ }
393
+ setDatePickerOption(new DatePickerOption(event.target.value, CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_DATE));
394
+ };
395
+ return (_jsx("div", { className: "value-spec-editor__date-picker__absolute-date", children: _jsx("input", { className: "panel__content__form__section__input value-spec-editor__date-picker__absolute-date__input input--dark", type: "date", spellCheck: false, value: absoluteDateValue, onChange: updateAbsoluteDateValue }) }));
396
+ };
397
+ const AbsoluteTimeValueSpecificationEditor = (props) => {
398
+ const { valueSpecification, graph, updateValue, setDatePickerOption } = props;
399
+ const absoluteTimeValue = valueSpecification instanceof SimpleFunctionExpression
400
+ ? ''
401
+ : valueSpecification.values[0];
402
+ const updateAbsoluteTimeValue = (event) => {
403
+ if (valueSpecification instanceof SimpleFunctionExpression) {
404
+ updateValue(buildPrimitiveInstanceValue(graph, PRIMITIVE_TYPE.DATETIME, event.target.value));
405
+ }
406
+ else {
407
+ instanceValue_changeValue(valueSpecification, event.target.value, 0);
408
+ if (valueSpecification.genericType.value.rawType.path !==
409
+ PRIMITIVE_TYPE.DATETIME) {
410
+ genericType_setRawType(valueSpecification.genericType.value, graph.getPrimitiveType(PRIMITIVE_TYPE.DATETIME));
411
+ }
412
+ }
413
+ setDatePickerOption(new DatePickerOption(event.target.value, CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_TIME));
414
+ };
415
+ return (_jsx("div", { className: "value-spec-editor__date-picker__absolute-date", children: _jsx("input", { className: "panel__content__form__section__input value-spec-editor__date-picker__absolute-date__input input--dark",
416
+ // Despite its name this would actually allow us to register time in UTC
417
+ // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#setting_timezones
418
+ type: "datetime-local", spellCheck: false, value: absoluteTimeValue, onChange: updateAbsoluteTimeValue }) }));
419
+ };
420
+ const CustomDateInstanceValueEditor = (props) => {
421
+ const { customDateOptionValue, graph, updateValue, setDatePickerOption } = props;
422
+ const [durationValue, setDurationValue] = useState(customDateOptionValue.duration);
423
+ const [unitValue, setUnitValue] = useState(customDateOptionValue.unit ?? CUSTOM_DATE_OPTION_UNIT.DAYS);
424
+ const [directionValue, setDirectionValue] = useState(customDateOptionValue.direction ?? CUSTOM_DATE_OPTION_DIRECTION.BEFORE);
425
+ const [referenceMomentValue, setReferenceMomentValueValue] = useState(customDateOptionValue.referenceMoment ??
426
+ CUSTOM_DATE_OPTION_REFERENCE_MOMENT.TODAY);
427
+ const changeValue = (latestDurationValue, latestUnitValue, latestDirectionValue, latestReferenceMomentValue) => {
428
+ if (latestDurationValue !== 0 &&
429
+ latestUnitValue !== '' &&
430
+ latestDirectionValue !== '' &&
431
+ latestReferenceMomentValue !== '') {
432
+ const dateOption = new CustomDateOption(CUSTOM_DATE_PICKER_OPTION.CUSTOM_DATE, CUSTOM_DATE_PICKER_OPTION.CUSTOM_DATE, latestDurationValue, latestUnitValue, latestDirectionValue, latestReferenceMomentValue);
433
+ updateValue(buildPureAdjustDateFunction(dateOption, graph));
434
+ const matchedPreservedCustomAdjustDates = reservedCustomDateOptions.filter((t) => t.generateDisplayLabel() === dateOption.generateDisplayLabel());
435
+ if (matchedPreservedCustomAdjustDates.length > 0) {
436
+ dateOption.label = guaranteeNonNullable(matchedPreservedCustomAdjustDates[0]?.label);
437
+ dateOption.value = guaranteeNonNullable(matchedPreservedCustomAdjustDates[0]?.value);
438
+ }
439
+ else {
440
+ dateOption.updateLabel();
441
+ }
442
+ setDatePickerOption(dateOption);
443
+ }
444
+ };
445
+ const changeDurationValue = (event) => {
446
+ const duration = event.target.value !== '' ? parseInt(event.target.value) : 0;
447
+ setDurationValue(duration);
448
+ changeValue(duration, unitValue, directionValue, referenceMomentValue);
449
+ };
450
+ return (_jsxs("div", { className: "value-spec-editor__date-picker__custom-date", children: [_jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx("input", { className: "value-spec-editor__date-picker__custom-date__input-text-editor input--dark", spellCheck: false, value: durationValue, type: "number", onChange: changeDurationValue }) }), _jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx(CustomSelectorInput, { placeholder: "Unit", className: "value-spec-editor__date-picker__custom-date__input-dropdown", options: Object.values(CUSTOM_DATE_OPTION_UNIT).map((t) => ({
451
+ value: t.toString(),
452
+ label: t.toString(),
453
+ })), onChange: (val) => {
454
+ setUnitValue(val.value);
455
+ changeValue(durationValue, val.value, directionValue, referenceMomentValue);
456
+ }, value: { value: unitValue, label: unitValue }, darkMode: true }) }), _jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx(CustomSelectorInput, { className: "value-spec-editor__date-picker__custom-date__input-dropdown", options: Object.values(CUSTOM_DATE_OPTION_DIRECTION).map((t) => ({
457
+ value: t.toString(),
458
+ label: t.toString(),
459
+ })), onChange: (val) => {
460
+ setDirectionValue(val.value);
461
+ changeValue(durationValue, unitValue, val.value, referenceMomentValue);
462
+ }, value: { value: directionValue, label: directionValue }, darkMode: true }) }), _jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx(CustomSelectorInput, { className: "value-spec-editor__date-picker__custom-date__input-dropdown", options: Object.values(CUSTOM_DATE_OPTION_REFERENCE_MOMENT).map((t) => ({
463
+ value: t.toString(),
464
+ label: t.toString(),
465
+ })), onChange: (val) => {
466
+ setReferenceMomentValueValue(val.value);
467
+ changeValue(durationValue, unitValue, directionValue, val.value);
468
+ }, value: { value: referenceMomentValue, label: referenceMomentValue }, darkMode: true }) })] }));
469
+ };
470
+ const CustomFirstDayOfValueSpecificationEditor = (props) => {
471
+ const { customDateAdjustOptionValue, graph, updateValue, setDatePickerOption, } = props;
472
+ const [unitValue, setUnitValue] = useState(customDateAdjustOptionValue instanceof CustomFirstDayOfOption
473
+ ? customDateAdjustOptionValue.unit
474
+ : null);
475
+ const changeValue = (latestUnitValue) => {
476
+ if (latestUnitValue !== '') {
477
+ const targetUnitValue = Object.values(CUSTOM_DATE_OPTION_REFERENCE_MOMENT).filter((moment) => moment.toString().includes(latestUnitValue));
478
+ const startDayOfDateOption = targetUnitValue.length > 0
479
+ ? new CustomFirstDayOfOption(guaranteeNonNullable(targetUnitValue[0]?.toString()), latestUnitValue)
480
+ : new CustomFirstDayOfOption('', undefined);
481
+ updateValue(buildPureDateFunctionExpression(startDayOfDateOption, graph));
482
+ setDatePickerOption(startDayOfDateOption);
483
+ }
484
+ };
485
+ return (_jsx("div", { className: "value-spec-editor__date-picker__custom-date", children: _jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx(CustomSelectorInput, { placeholder: "Choose a unit...", className: "value-spec-editor__date-picker__custom-date__input-dropdown value-spec-editor__date-picker__custom-date__input-dropdown--full", options: Object.values(CUSTOM_DATE_FIRST_DAY_OF_UNIT).map((t) => ({
486
+ value: t.toString(),
487
+ label: t.toString(),
488
+ })), onChange: (val) => {
489
+ if (val) {
490
+ setUnitValue(val.value);
491
+ changeValue(val.value);
492
+ }
493
+ }, value: unitValue ? { value: unitValue, label: unitValue } : null, darkMode: true }) }) }));
494
+ };
495
+ const CustomPreviousDayOfWeekValueSpecificationEditor = (props) => {
496
+ const { customDateAdjustOptionValue, graph, updateValue, setDatePickerOption, } = props;
497
+ const [dayOfWeekValue, setDayOfWeekValue] = useState(customDateAdjustOptionValue instanceof CustomPreviousDayOfWeekOption
498
+ ? customDateAdjustOptionValue.day
499
+ : null);
500
+ const changeValue = (latestDurationUnitValue) => {
501
+ if (latestDurationUnitValue !== '') {
502
+ const previousDayOfWeekDateOption = new CustomPreviousDayOfWeekOption(`Previous ${latestDurationUnitValue}`, latestDurationUnitValue);
503
+ updateValue(buildPureDateFunctionExpression(previousDayOfWeekDateOption, graph));
504
+ setDatePickerOption(previousDayOfWeekDateOption);
505
+ }
506
+ };
507
+ return (_jsx("div", { className: "value-spec-editor__date-picker__custom-date", children: _jsx("div", { className: "value-spec-editor__date-picker__custom-date__input", children: _jsx(CustomSelectorInput, { placeholder: "Choose a day...", className: "value-spec-editor__date-picker__custom-date__input-dropdown value-spec-editor__date-picker__custom-date__input-dropdown--full", options: Object.values(CUSTOM_DATE_DAY_OF_WEEK).map((t) => ({
508
+ value: t.toString(),
509
+ label: t.toString(),
510
+ })), onChange: (val) => {
511
+ if (val) {
512
+ setDayOfWeekValue(val.value);
513
+ changeValue(val.value);
514
+ }
515
+ }, value: dayOfWeekValue
516
+ ? { value: dayOfWeekValue, label: dayOfWeekValue }
517
+ : null, darkMode: true }) }) }));
518
+ };
519
+ export const CustomDatePicker = (props) => {
520
+ const { valueSpecification, updateValue, graph, typeCheckOption } = props;
521
+ // For some cases where types need to be matched strictly.
522
+ // Some options need to be filtered out for DateTime.
523
+ const targetDateOptionsEnum = typeCheckOption.match
524
+ ? Object.values([
525
+ CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_TIME,
526
+ CUSTOM_DATE_PICKER_OPTION.NOW,
527
+ ])
528
+ : Object.values(CUSTOM_DATE_PICKER_OPTION);
529
+ const [datePickerOption, setDatePickerOption] = useState(buildDatePickerOption(valueSpecification));
530
+ const [anchorEl, setAnchorEl] = useState(null);
531
+ const openCustomDatePickerPopover = (event) => {
532
+ setAnchorEl(event.currentTarget);
533
+ };
534
+ const handleEnter = () => {
535
+ setDatePickerOption(buildDatePickerOption(valueSpecification));
536
+ };
537
+ const closeCustomDatePickerPopover = () => {
538
+ setDatePickerOption(buildDatePickerOption(valueSpecification));
539
+ setAnchorEl(null);
540
+ };
541
+ const handleDatePickerOptionChange = (event) => {
542
+ const chosenDatePickerOption = new DatePickerOption(event.target.value, event.target.value);
543
+ if (CUSTOM_DATE_PICKER_OPTION.LATEST_DATE === chosenDatePickerOption.value) {
544
+ updateValue(buildPrimitiveInstanceValue(graph, PRIMITIVE_TYPE.LATESTDATE, event.target.value));
545
+ }
546
+ else if (
547
+ // Elements in this list will trigger children date components
548
+ ![
549
+ CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_DATE,
550
+ CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_TIME,
551
+ CUSTOM_DATE_PICKER_OPTION.CUSTOM_DATE,
552
+ CUSTOM_DATE_PICKER_OPTION.FIRST_DAY_OF,
553
+ CUSTOM_DATE_PICKER_OPTION.PREVIOUS_DAY_OF_WEEK,
554
+ ].includes(chosenDatePickerOption.value)) {
555
+ const theReservedCustomDateOption = reservedCustomDateOptions.filter((d) => d.value === chosenDatePickerOption.value);
556
+ theReservedCustomDateOption.length > 0
557
+ ? updateValue(buildPureAdjustDateFunction(guaranteeNonNullable(theReservedCustomDateOption[0]), graph))
558
+ : updateValue(buildPureDateFunctionExpression(chosenDatePickerOption, graph));
559
+ }
560
+ setDatePickerOption(chosenDatePickerOption);
561
+ };
562
+ const renderChildrenDateComponents = () => {
563
+ switch (datePickerOption.value) {
564
+ case CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_DATE:
565
+ return (_jsx(AbsoluteDateValueSpecificationEditor, { graph: graph, valueSpecification: valueSpecification, updateValue: updateValue, setDatePickerOption: setDatePickerOption }));
566
+ case CUSTOM_DATE_PICKER_OPTION.ABSOLUTE_TIME:
567
+ return (_jsx(AbsoluteTimeValueSpecificationEditor, { graph: graph, valueSpecification: valueSpecification, updateValue: updateValue, setDatePickerOption: setDatePickerOption }));
568
+ case CUSTOM_DATE_PICKER_OPTION.CUSTOM_DATE:
569
+ return (_jsx(CustomDateInstanceValueEditor, { graph: graph, customDateOptionValue: buildCustomDateOption(valueSpecification), updateValue: updateValue, setDatePickerOption: setDatePickerOption }));
570
+ case CUSTOM_DATE_PICKER_OPTION.FIRST_DAY_OF:
571
+ return (_jsx(CustomFirstDayOfValueSpecificationEditor, { graph: graph, customDateAdjustOptionValue: buildDatePickerOption(valueSpecification), updateValue: updateValue, setDatePickerOption: setDatePickerOption }));
572
+ case CUSTOM_DATE_PICKER_OPTION.PREVIOUS_DAY_OF_WEEK:
573
+ return (_jsx(CustomPreviousDayOfWeekValueSpecificationEditor, { graph: graph, customDateAdjustOptionValue: buildDatePickerOption(valueSpecification), updateValue: updateValue, setDatePickerOption: setDatePickerOption }));
574
+ default:
575
+ return null;
576
+ }
577
+ };
578
+ // make sure the date picker label is updated when the value is reset or changed somehow
579
+ useEffect(() => {
580
+ setDatePickerOption(buildDatePickerOption(valueSpecification));
581
+ }, [valueSpecification]);
582
+ return (_jsxs(_Fragment, { children: [_jsx("button", { className: "value-spec-editor__date-picker__trigger", title: "Click to edit and pick from more date options", onClick: openCustomDatePickerPopover, children: datePickerOption.label }), _jsxs(BasePopover, { open: Boolean(anchorEl), TransitionProps: {
583
+ onEnter: handleEnter,
584
+ }, anchorEl: anchorEl, onClose: closeCustomDatePickerPopover, anchorOrigin: {
585
+ vertical: 'bottom',
586
+ horizontal: 'center',
587
+ }, transformOrigin: {
588
+ vertical: 'top',
589
+ horizontal: 'center',
590
+ }, children: [_jsx(BaseRadioGroup, { value: datePickerOption.value, onChange: handleDatePickerOptionChange, row: true, options: targetDateOptionsEnum, size: 2 }), renderChildrenDateComponents()] })] }));
591
+ };
592
+ //# sourceMappingURL=CustomDatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomDatePicker.js","sourceRoot":"","sources":["../../src/components/CustomDatePicker.tsx"],"names":[],"mappings":"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"}