@finos/legend-query-builder 3.0.8 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. package/lib/components/QueryBuilder.d.ts.map +1 -1
  2. package/lib/components/QueryBuilder.js +51 -4
  3. package/lib/components/QueryBuilder.js.map +1 -1
  4. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +18 -0
  5. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  6. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +152 -15
  7. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  8. package/lib/graph/QueryBuilderMetaModelConst.d.ts +33 -0
  9. package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
  10. package/lib/graph/QueryBuilderMetaModelConst.js +34 -0
  11. package/lib/graph/QueryBuilderMetaModelConst.js.map +1 -1
  12. package/lib/graph-manager/QueryBuilderConst.d.ts +20 -0
  13. package/lib/graph-manager/QueryBuilderConst.d.ts.map +1 -0
  14. package/lib/graph-manager/QueryBuilderConst.js +21 -0
  15. package/lib/graph-manager/QueryBuilderConst.js.map +1 -0
  16. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
  17. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +3 -2
  18. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  19. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
  20. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +27 -14
  21. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
  22. package/lib/index.css +2 -2
  23. package/lib/index.css.map +1 -1
  24. package/lib/package.json +1 -1
  25. package/lib/stores/QueryBuilderState.d.ts +2 -0
  26. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  27. package/lib/stores/QueryBuilderState.js +7 -0
  28. package/lib/stores/QueryBuilderState.js.map +1 -1
  29. package/lib/stores/QueryBuilderStateBuilder.d.ts +1 -1
  30. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
  31. package/lib/stores/QueryBuilderStateBuilder.js +11 -2
  32. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  33. package/lib/stores/QueryBuilderStateHashUtils.d.ts +32 -1
  34. package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
  35. package/lib/stores/QueryBuilderStateHashUtils.js +32 -0
  36. package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
  37. package/lib/stores/QueryBuilderTextEditorState.d.ts.map +1 -1
  38. package/lib/stores/QueryBuilderTextEditorState.js +12 -6
  39. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  40. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +1 -1
  41. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  42. package/lib/stores/explorer/QueryBuilderExplorerState.js +2 -2
  43. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  44. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
  45. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +1 -0
  46. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  47. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +2 -0
  48. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  49. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +14 -4
  50. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  51. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.d.ts +38 -0
  52. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.d.ts.map +1 -0
  53. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js +54 -0
  54. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js.map +1 -0
  55. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.d.ts +18 -0
  56. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.d.ts.map +1 -0
  57. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.js +80 -0
  58. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.js.map +1 -0
  59. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts +8 -1
  60. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
  61. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js +24 -1
  62. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
  63. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.d.ts.map +1 -1
  64. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js +23 -0
  65. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -1
  66. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.d.ts +22 -0
  67. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.d.ts.map +1 -0
  68. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js +61 -0
  69. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js.map +1 -0
  70. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.d.ts +28 -0
  71. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.d.ts.map +1 -0
  72. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.js +55 -0
  73. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.js.map +1 -0
  74. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.d.ts +28 -0
  75. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.d.ts.map +1 -0
  76. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.js +55 -0
  77. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.js.map +1 -0
  78. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.d.ts +28 -0
  79. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.d.ts.map +1 -0
  80. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.js +55 -0
  81. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.js.map +1 -0
  82. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.d.ts +28 -0
  83. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.d.ts.map +1 -0
  84. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.js +55 -0
  85. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.js.map +1 -0
  86. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.d.ts +28 -0
  87. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.d.ts.map +1 -0
  88. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.js +55 -0
  89. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.js.map +1 -0
  90. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.d.ts +28 -0
  91. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.d.ts.map +1 -0
  92. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.js +55 -0
  93. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.js.map +1 -0
  94. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.d.ts +28 -0
  95. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.d.ts.map +1 -0
  96. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.js +55 -0
  97. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.js.map +1 -0
  98. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.d.ts +28 -0
  99. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.d.ts.map +1 -0
  100. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.js +55 -0
  101. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.js.map +1 -0
  102. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.d.ts +28 -0
  103. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.d.ts.map +1 -0
  104. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.js +55 -0
  105. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.js.map +1 -0
  106. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.d.ts +28 -0
  107. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.d.ts.map +1 -0
  108. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.js +55 -0
  109. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.js.map +1 -0
  110. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.d.ts +28 -0
  111. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.d.ts.map +1 -0
  112. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.js +55 -0
  113. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.js.map +1 -0
  114. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.d.ts +28 -0
  115. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.d.ts.map +1 -0
  116. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.js +55 -0
  117. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.js.map +1 -0
  118. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.d.ts +28 -0
  119. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.d.ts.map +1 -0
  120. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.js +55 -0
  121. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.js.map +1 -0
  122. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.d.ts +28 -0
  123. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.d.ts.map +1 -0
  124. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.js +55 -0
  125. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.js.map +1 -0
  126. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.d.ts +28 -0
  127. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.d.ts.map +1 -0
  128. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.js +55 -0
  129. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.js.map +1 -0
  130. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.d.ts +28 -0
  131. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.d.ts.map +1 -0
  132. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.js +55 -0
  133. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.js.map +1 -0
  134. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.d.ts +28 -0
  135. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.d.ts.map +1 -0
  136. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.js +55 -0
  137. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.js.map +1 -0
  138. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.d.ts +28 -0
  139. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.d.ts.map +1 -0
  140. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.js +55 -0
  141. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.js.map +1 -0
  142. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.d.ts +28 -0
  143. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.d.ts.map +1 -0
  144. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.js +55 -0
  145. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.js.map +1 -0
  146. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.d.ts +28 -0
  147. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.d.ts.map +1 -0
  148. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.js +55 -0
  149. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.js.map +1 -0
  150. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.d.ts +28 -0
  151. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.d.ts.map +1 -0
  152. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.js +55 -0
  153. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.js.map +1 -0
  154. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.d.ts +28 -0
  155. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.d.ts.map +1 -0
  156. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.js +55 -0
  157. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.js.map +1 -0
  158. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.d.ts +28 -0
  159. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.d.ts.map +1 -0
  160. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.js +55 -0
  161. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.js.map +1 -0
  162. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.d.ts +28 -0
  163. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.d.ts.map +1 -0
  164. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.js +55 -0
  165. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.js.map +1 -0
  166. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.d.ts +28 -0
  167. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.d.ts.map +1 -0
  168. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.js +55 -0
  169. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.js.map +1 -0
  170. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.d.ts +28 -0
  171. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.d.ts.map +1 -0
  172. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.js +55 -0
  173. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.js.map +1 -0
  174. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.d.ts +28 -0
  175. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.d.ts.map +1 -0
  176. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.js +55 -0
  177. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.js.map +1 -0
  178. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.d.ts +28 -0
  179. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.d.ts.map +1 -0
  180. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.js +55 -0
  181. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.js.map +1 -0
  182. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.d.ts +28 -0
  183. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.d.ts.map +1 -0
  184. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.js +55 -0
  185. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.js.map +1 -0
  186. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.d.ts +28 -0
  187. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.d.ts.map +1 -0
  188. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.js +55 -0
  189. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.js.map +1 -0
  190. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.d.ts +28 -0
  191. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.d.ts.map +1 -0
  192. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.js +55 -0
  193. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.js.map +1 -0
  194. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
  195. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +9 -1
  196. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  197. package/package.json +5 -5
  198. package/src/components/QueryBuilder.tsx +79 -0
  199. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +456 -92
  200. package/src/graph/QueryBuilderMetaModelConst.ts +34 -0
  201. package/src/graph-manager/QueryBuilderConst.ts +20 -0
  202. package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +10 -1
  203. package/src/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +73 -28
  204. package/src/stores/QueryBuilderState.ts +8 -0
  205. package/src/stores/QueryBuilderStateBuilder.ts +33 -2
  206. package/src/stores/QueryBuilderStateHashUtils.ts +33 -0
  207. package/src/stores/QueryBuilderTextEditorState.ts +21 -14
  208. package/src/stores/explorer/QueryBuilderExplorerState.ts +2 -1
  209. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +1 -0
  210. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +22 -3
  211. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.ts +98 -0
  212. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.ts +83 -0
  213. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.ts +31 -0
  214. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.ts +41 -0
  215. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.ts +175 -0
  216. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.ts +98 -0
  217. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.ts +98 -0
  218. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.ts +98 -0
  219. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.ts +99 -0
  220. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.ts +98 -0
  221. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.ts +98 -0
  222. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.ts +98 -0
  223. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.ts +98 -0
  224. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.ts +98 -0
  225. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.ts +98 -0
  226. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.ts +98 -0
  227. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.ts +98 -0
  228. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.ts +98 -0
  229. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.ts +98 -0
  230. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.ts +98 -0
  231. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.ts +98 -0
  232. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.ts +98 -0
  233. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.ts +98 -0
  234. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.ts +98 -0
  235. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.ts +98 -0
  236. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.ts +98 -0
  237. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.ts +98 -0
  238. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.ts +98 -0
  239. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.ts +98 -0
  240. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.ts +98 -0
  241. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.ts +98 -0
  242. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.ts +98 -0
  243. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.ts +98 -0
  244. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.ts +98 -0
  245. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.ts +98 -0
  246. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.ts +98 -0
  247. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +18 -1
  248. package/tsconfig.json +35 -0
@@ -42,7 +42,10 @@ import {
42
42
  GenericTypeExplicitReference,
43
43
  PrimitiveType,
44
44
  } from '@finos/legend-graph';
45
- import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../graph/QueryBuilderMetaModelConst.js';
45
+ import {
46
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS,
47
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS,
48
+ } from '../../../graph/QueryBuilderMetaModelConst.js';
46
49
 
47
50
  export class QueryBuilder_PureProtocolProcessorPlugin extends PureProtocolProcessorPlugin {
48
51
  constructor() {
@@ -207,6 +210,12 @@ export class QueryBuilder_PureProtocolProcessorPlugin extends PureProtocolProces
207
210
  matchFunctionName(
208
211
  functionName,
209
212
  Object.values(QUERY_BUILDER_SUPPORTED_FUNCTIONS),
213
+ ) ||
214
+ matchFunctionName(
215
+ functionName,
216
+ Object.values(
217
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS,
218
+ ),
210
219
  )
211
220
  ) {
212
221
  // NOTE: this is a catch-all builder that is only meant for basic function expression
@@ -50,11 +50,15 @@ import {
50
50
  VariableExpression,
51
51
  Multiplicity,
52
52
  PrimitiveType,
53
+ V1_CStrictDate,
54
+ V1_CString,
53
55
  } from '@finos/legend-graph';
54
56
  import {
55
57
  QUERY_BUILDER_PURE_PATH,
56
58
  QUERY_BUILDER_SUPPORTED_FUNCTIONS,
59
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS,
57
60
  } from '../../../../graph/QueryBuilderMetaModelConst.js';
61
+ import { QUERY_BUILDER_CALENDAR_TYPE } from '../../../QueryBuilderConst.js';
58
62
 
59
63
  const buildProjectionColumnLambda = (
60
64
  valueSpecification: V1_ValueSpecification,
@@ -86,41 +90,82 @@ const buildProjectionColumnLambda = (
86
90
  );
87
91
  let currentPropertyExpression: V1_ValueSpecification = valueSpecification
88
92
  .body[0] as V1_ValueSpecification;
89
- assertType(
90
- currentPropertyExpression,
91
- V1_AppliedProperty,
92
- `Can't build projection column: only support lambda body as property expression`,
93
- );
94
- while (currentPropertyExpression instanceof V1_AppliedProperty) {
93
+
94
+ // calendar
95
+ if (
96
+ currentPropertyExpression instanceof V1_AppliedFunction &&
97
+ matchFunctionName(
98
+ currentPropertyExpression.function,
99
+ Object.values(QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS),
100
+ )
101
+ ) {
102
+ assertTrue(
103
+ currentPropertyExpression.parameters.length === 4,
104
+ `Can't build projection column: only support calendar function with four parameters`,
105
+ );
106
+ assertType(
107
+ currentPropertyExpression.parameters[0],
108
+ V1_AppliedProperty,
109
+ `Can't build projection column: only support first parameter of calendar function as property expression`,
110
+ );
111
+ const calendarType = guaranteeType(
112
+ currentPropertyExpression.parameters[1],
113
+ V1_CString,
114
+ `Can't build projection column: only support second parameter of calendar function as String`,
115
+ );
95
116
  assertTrue(
96
- currentPropertyExpression.parameters.length >= 1,
117
+ Object.values(QUERY_BUILDER_CALENDAR_TYPE).find(
118
+ (val) => val === calendarType.value,
119
+ ) !== undefined,
120
+ `Can't build projection column: ${calendarType.value} is not a supported calendar type`,
121
+ );
122
+ guaranteeType(
123
+ currentPropertyExpression.parameters[2],
124
+ V1_CStrictDate,
125
+ `Can't build projection column: only support third parameter of calendar function as StrictDate`,
126
+ );
127
+ assertType(
128
+ currentPropertyExpression.parameters[3],
129
+ V1_AppliedProperty,
130
+ `Can't build projection column: only support fourth parameter of calendar function as property expression`,
131
+ );
132
+ } else {
133
+ assertType(
134
+ currentPropertyExpression,
135
+ V1_AppliedProperty,
97
136
  `Can't build projection column: only support lambda body as property expression`,
98
137
  );
99
- currentPropertyExpression = currentPropertyExpression
100
- .parameters[0] as V1_ValueSpecification;
101
- // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
102
- // $x.employees->subType(@Person)->subType(@Staff)
103
- while (
104
- currentPropertyExpression instanceof V1_AppliedFunction &&
105
- matchFunctionName(
106
- currentPropertyExpression.function,
107
- QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE,
108
- )
109
- ) {
138
+ while (currentPropertyExpression instanceof V1_AppliedProperty) {
139
+ assertTrue(
140
+ currentPropertyExpression.parameters.length >= 1,
141
+ `Can't build projection column: only support lambda body as property expression`,
142
+ );
110
143
  currentPropertyExpression = currentPropertyExpression
111
144
  .parameters[0] as V1_ValueSpecification;
145
+ // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
146
+ // $x.employees->subType(@Person)->subType(@Staff)
147
+ while (
148
+ currentPropertyExpression instanceof V1_AppliedFunction &&
149
+ matchFunctionName(
150
+ currentPropertyExpression.function,
151
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE,
152
+ )
153
+ ) {
154
+ currentPropertyExpression = currentPropertyExpression
155
+ .parameters[0] as V1_ValueSpecification;
156
+ }
112
157
  }
158
+ // check lambda variable and parameter match
159
+ assertType(
160
+ currentPropertyExpression,
161
+ V1_Variable,
162
+ `Can't build projection column: only support lambda body as property expression`,
163
+ );
164
+ assertTrue(
165
+ columnLambdaParameter.name === currentPropertyExpression.name,
166
+ `Can't build column lambda: expects variable used in lambda body '${currentPropertyExpression.name}' to match lambda parameter '${columnLambdaParameter.name}'`,
167
+ );
113
168
  }
114
- // check lambda variable and parameter match
115
- assertType(
116
- currentPropertyExpression,
117
- V1_Variable,
118
- `Can't build projection column: only support lambda body as property expression`,
119
- );
120
- assertTrue(
121
- columnLambdaParameter.name === currentPropertyExpression.name,
122
- `Can't build column lambda: expects variable used in lambda body '${currentPropertyExpression.name}' to match lambda parameter '${columnLambdaParameter.name}'`,
123
- );
124
169
  return valueSpecification.accept_ValueSpecificationVisitor(
125
170
  new V1_ValueSpecificationBuilder(
126
171
  compileContext,
@@ -107,6 +107,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
107
107
  showParametersPanel = false;
108
108
  isEditingWatermark = false;
109
109
  isCheckingEntitlments = false;
110
+ isCalendarEnabled = false;
110
111
 
111
112
  class?: Class | undefined;
112
113
  mapping?: Mapping | undefined;
@@ -136,6 +137,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
136
137
  showParametersPanel: observable,
137
138
  isEditingWatermark: observable,
138
139
  isCheckingEntitlments: observable,
140
+ isCalendarEnabled: observable,
139
141
  changeDetectionState: observable,
140
142
  class: observable,
141
143
  mapping: observable,
@@ -148,6 +150,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
148
150
  setShowFunctionsExplorerPanel: action,
149
151
  setShowParametersPanel: action,
150
152
  setIsEditingWatermark: action,
153
+ setIsCalendarEnabled: action,
151
154
  setIsCheckingEntitlments: action,
152
155
  setClass: action,
153
156
  setMapping: action,
@@ -243,6 +246,10 @@ export abstract class QueryBuilderState implements CommandRegistrar {
243
246
  this.isCheckingEntitlments = val;
244
247
  }
245
248
 
249
+ setIsCalendarEnabled(val: boolean): void {
250
+ this.isCalendarEnabled = val;
251
+ }
252
+
246
253
  setClass(val: Class | undefined): void {
247
254
  this.class = val;
248
255
  }
@@ -316,6 +323,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
316
323
  this.filterState = new QueryBuilderFilterState(this, this.filterOperators);
317
324
  this.watermarkState = new QueryBuilderWatermarkState(this);
318
325
  this.checkEntitlementsState = new QueryBuilderCheckEntitlementsState(this);
326
+ this.isCalendarEnabled = false;
319
327
 
320
328
  const currentFetchStructureImplementationType =
321
329
  this.fetchStructureState.implementation.type;
@@ -40,7 +40,7 @@ import {
40
40
  PrimitiveInstanceValue,
41
41
  SimpleFunctionExpression,
42
42
  type VariableExpression,
43
- type AbstractPropertyExpression,
43
+ AbstractPropertyExpression,
44
44
  getMilestoneTemporalStereotype,
45
45
  type INTERNAL__PropagatedValue,
46
46
  type ValueSpecification,
@@ -66,7 +66,10 @@ import {
66
66
  processTDSSortExpression,
67
67
  processTDSTakeExpression,
68
68
  } from './fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js';
69
- import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../graph/QueryBuilderMetaModelConst.js';
69
+ import {
70
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS,
71
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS,
72
+ } from '../graph/QueryBuilderMetaModelConst.js';
70
73
  import { LambdaParameterState } from './shared/LambdaParameterState.js';
71
74
  import { processTDS_OLAPGroupByExpression } from './fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js';
72
75
  import { processWatermarkExpression } from './watermark/QueryBuilderWatermarkStateBuilder.js';
@@ -140,6 +143,22 @@ const processLetExpression = (
140
143
  queryBuilderState.constantState.addConstant(constantExpression);
141
144
  };
142
145
 
146
+ const processCalendarFunction = (
147
+ expression: SimpleFunctionExpression,
148
+ queryBuilderState: QueryBuilderState,
149
+ parentLambda: LambdaFunction,
150
+ ): void => {
151
+ queryBuilderState.isCalendarEnabled = true;
152
+ assertTrue(
153
+ expression.parametersValues.length === 4,
154
+ 'Calendar function expected to have four parameters',
155
+ );
156
+ processTDSProjectionColumnPropertyExpression(
157
+ guaranteeType(expression.parametersValues[3], AbstractPropertyExpression),
158
+ queryBuilderState,
159
+ );
160
+ };
161
+
143
162
  /**
144
163
  * This is the value specification processor (a.k.a state builder) for query builder.
145
164
  *
@@ -536,6 +555,18 @@ export class QueryBuilderValueSpecificationProcessor
536
555
  this.parentLambda,
537
556
  );
538
557
  return;
558
+ } else if (
559
+ matchFunctionName(
560
+ functionName,
561
+ Object.values(QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS),
562
+ )
563
+ ) {
564
+ processCalendarFunction(
565
+ valueSpecification,
566
+ this.queryBuilderState,
567
+ this.parentLambda,
568
+ );
569
+ return;
539
570
  }
540
571
  throw new UnsupportedOperationError(
541
572
  `Can't process expression of function ${functionName}()`,
@@ -115,4 +115,37 @@ export enum QUERY_BUILDER_STATE_HASH_STRUCTURE {
115
115
  QUERY_BUILDER_STATE = 'QUERY_BUILDER_STATE',
116
116
 
117
117
  CHECK_ENTITLEMENTS_STATE = 'CHECK_ENTITLEMENTS_STATE',
118
+
119
+ // calendar
120
+ AGGREGATE_CALENDAR_FUNCTION_ANNUALIZED = 'AGGREGATE_CALENDAR_FUNCTION_ANNUALIZED',
121
+ AGGREGATE_CALENDAR_FUNCTION_CME = 'AGGREGATE_CALENDAR_FUNCTION_CME',
122
+ AGGREGATE_CALENDAR_FUNCTION_CW = 'AGGREGATE_CALENDAR_FUNCTION_CW',
123
+ AGGREGATE_CALENDAR_FUNCTION_CW_FM = 'AGGREGATE_CALENDAR_FUNCTION_CW_FM',
124
+ AGGREGATE_CALENDAR_FUNCTION_CY_MINUS2 = 'AGGREGATE_CALENDAR_FUNCTION_CY_MINUS2',
125
+ AGGREGATE_CALENDAR_FUNCTION_CY_MINUS3 = 'AGGREGATE_CALENDAR_FUNCTION_CY_MINUS3',
126
+ AGGREGATE_CALENDAR_FUNCTION_MTD = 'AGGREGATE_CALENDAR_FUNCTION_MTD',
127
+ AGGREGATE_CALENDAR_FUNCTION_P12WA = 'AGGREGATE_CALENDAR_FUNCTION_P12WA',
128
+ AGGREGATE_CALENDAR_FUNCTION_P12WTD = 'AGGREGATE_CALENDAR_FUNCTION_P12WTD',
129
+ AGGREGATE_CALENDAR_FUNCTION_P4WA = 'AGGREGATE_CALENDAR_FUNCTION_P4WA',
130
+ AGGREGATE_CALENDAR_FUNCTION_P4WTD = 'AGGREGATE_CALENDAR_FUNCTION_P4WTD',
131
+ AGGREGATE_CALENDAR_FUNCTION_P52WTD = 'AGGREGATE_CALENDAR_FUNCTION_P5WTD',
132
+ AGGREGATE_CALENDAR_FUNCTION_P52WA = 'AGGREGATE_CALENDAR_FUNCTION_P52WA',
133
+ AGGREGATE_CALENDAR_FUNCTION_PMA = 'AGGREGATE_CALENDAR_FUNCTION_PMA',
134
+ AGGREGATE_CALENDAR_FUNCTION_PMTD = 'AGGREGATE_CALENDAR_FUNCTION_PMTD',
135
+ AGGREGATE_CALENDAR_FUNCTION_PQTD = 'AGGREGATE_CALENDAR_FUNCTION_PQTD',
136
+ AGGREGATE_CALENDAR_FUNCTION_PRIOR_DAY = 'AGGREGATE_CALENDAR_FUNCTION_PRIOR_DAY',
137
+ AGGREGATE_CALENDAR_FUNCTION_PRIOR_YEAR = 'AGGREGATE_CALENDAR_FUNCTION_PRIOR_YEAR',
138
+ AGGREGATE_CALENDAR_FUNCTION_PW = 'AGGREGATE_CALENDAR_FUNCTION_PW',
139
+ AGGREGATE_CALENDAR_FUNCTION_PW_FM = 'AGGREGATE_CALENDAR_FUNCTION_PW_FM',
140
+ AGGREGATE_CALENDAR_FUNCTION_PWA = 'AGGREGATE_CALENDAR_FUNCTION_PWA',
141
+ AGGREGATE_CALENDAR_FUNCTION_PWTD = 'AGGREGATE_CALENDAR_FUNCTION_PWTD',
142
+ AGGREGATE_CALENDAR_FUNCTION_PYMTD = 'AGGREGATE_CALENDAR_FUNCTION_PYMTD',
143
+ AGGREGATE_CALENDAR_FUNCTION_PYQTD = 'AGGREGATE_CALENDAR_FUNCTION_PYQTD',
144
+ AGGREGATE_CALENDAR_FUNCTION_PYTD = 'AGGREGATE_CALENDAR_FUNCTION_PYTD',
145
+ AGGREGATE_CALENDAR_FUNCTION_PYWA = 'AGGREGATE_CALENDAR_FUNCTION_PYWA',
146
+ AGGREGATE_CALENDAR_FUNCTION_PYWTD = 'AGGREGATE_CALENDAR_FUNCTION_PYWTD',
147
+ AGGREGATE_CALENDAR_FUNCTION_QTD = 'AGGREGATE_CALENDAR_FUNCTION_QTD',
148
+ AGGREGATE_CALENDAR_FUNCTION_REPORT_END_DAY = 'AGGREGATE_CALENDAR_FUNCTION_REPORT_END_DAY',
149
+ AGGREGATE_CALENDAR_FUNCTION_WTD = 'AGGREGATE_CALENDAR_FUNCTION_WTD',
150
+ AGGREGATE_CALENDAR_FUNCTION_YTD = 'AGGREGATE_CALENDAR_FUNCTION_YTD',
118
151
  }
@@ -169,24 +169,31 @@ export class QueryBuilderTextEditorState extends LambdaEditorState {
169
169
  }
170
170
 
171
171
  openModal(mode: QueryBuilderTextEditorMode): void {
172
- const rawLambda = this.queryBuilderState.buildQuery();
173
- if (mode === QueryBuilderTextEditorMode.TEXT) {
174
- this.setQueryRawLambdaState(new QueryBuilderRawLambdaState(rawLambda));
175
- }
176
- if (mode === QueryBuilderTextEditorMode.JSON) {
177
- this.setLambdaJson(
178
- JSON.stringify(
179
- pruneSourceInformation(
180
- this.queryBuilderState.graphManagerState.graphManager.serializeRawValueSpecification(
181
- rawLambda,
172
+ try {
173
+ const rawLambda = this.queryBuilderState.buildQuery();
174
+ if (mode === QueryBuilderTextEditorMode.TEXT) {
175
+ this.setQueryRawLambdaState(new QueryBuilderRawLambdaState(rawLambda));
176
+ }
177
+ if (mode === QueryBuilderTextEditorMode.JSON) {
178
+ this.setLambdaJson(
179
+ JSON.stringify(
180
+ pruneSourceInformation(
181
+ this.queryBuilderState.graphManagerState.graphManager.serializeRawValueSpecification(
182
+ rawLambda,
183
+ ),
182
184
  ),
185
+ null,
186
+ DEFAULT_TAB_SIZE,
183
187
  ),
184
- null,
185
- DEFAULT_TAB_SIZE,
186
- ),
188
+ );
189
+ }
190
+ this.setMode(mode);
191
+ } catch (error) {
192
+ assertErrorThrown(error);
193
+ this.queryBuilderState.applicationStore.notificationService.notifyError(
194
+ error,
187
195
  );
188
196
  }
189
- this.setMode(mode);
190
197
  }
191
198
 
192
199
  *closeModal(): GeneratorFn<void> {
@@ -193,12 +193,13 @@ export class QueryBuilderExplorerTreeSubTypeNodeData extends QueryBuilderExplore
193
193
  export const buildPropertyExpressionFromExplorerTreeNodeData = (
194
194
  node: QueryBuilderExplorerTreePropertyNodeData,
195
195
  explorerState: QueryBuilderExplorerState,
196
+ lambdaParameterName?: string,
196
197
  ): AbstractPropertyExpression => {
197
198
  const treeData = explorerState.nonNullableTreeData;
198
199
  const propertySearchIndexedTreeNodes =
199
200
  explorerState.propertySearchState.indexedExplorerTreeNodes;
200
201
  const projectionColumnLambdaVariable = new VariableExpression(
201
- DEFAULT_LAMBDA_VARIABLE_NAME,
202
+ lambdaParameterName ?? DEFAULT_LAMBDA_VARIABLE_NAME,
202
203
  Multiplicity.ONE,
203
204
  );
204
205
  const propertyExpression = new AbstractPropertyExpression('');
@@ -62,6 +62,7 @@ export class QueryBuilderFetchStructureState {
62
62
  break;
63
63
  }
64
64
  case FETCH_STRUCTURE_IMPLEMENTATION.GRAPH_FETCH: {
65
+ this.queryBuilderState.setIsCalendarEnabled(false);
65
66
  this.implementation = new QueryBuilderGraphFetchTreeState(
66
67
  this.queryBuilderState,
67
68
  this,
@@ -101,6 +101,8 @@ import { getQueryBuilderCoreWindowOperators } from './window/QueryBuilderWindowG
101
101
  import type { QueryBuilderTDSColumnState } from './QueryBuilderTDSColumnState.js';
102
102
  import { QUERY_BUILDER_SETTING_KEY } from '../../../__lib__/QueryBuilderSetting.js';
103
103
  import type { ExportDataInfo } from '../../QueryBuilderResultState.js';
104
+ import type { QueryBuilderAggregateCalendarFunction } from './aggregation/QueryBuilderAggregateCalendarFunction.js';
105
+ import { getQueryBuilderCoreAggregrationCalendarFunctions } from './aggregation/QueryBuilderAggregateCalendarFunctionLoader.js';
104
106
 
105
107
  // TODO: should we support raw once externalize() is supported on TDS ?
106
108
  export enum TDS_EXECUTION_SERIALIZATION_FORMAT {
@@ -124,6 +126,8 @@ export class QueryBuilderTDSState
124
126
  getQueryBuilderCorePostFilterOperators();
125
127
  aggregationOperators: QueryBuilderAggregateOperator[] =
126
128
  getQueryBuilderCoreAggregrationOperators();
129
+ aggregationCalendarFunctions: QueryBuilderAggregateCalendarFunction[] =
130
+ getQueryBuilderCoreAggregrationCalendarFunctions();
127
131
  windowFuncOperators: QueryBuilderTDS_WindowOperator[] =
128
132
  getQueryBuilderCoreWindowOperators();
129
133
 
@@ -158,6 +162,7 @@ export class QueryBuilderTDSState
158
162
  this.aggregationState = new QueryBuilderAggregationState(
159
163
  this,
160
164
  this.aggregationOperators,
165
+ this.aggregationCalendarFunctions,
161
166
  );
162
167
  this.windowState = new QueryBuilderWindowState(
163
168
  this,
@@ -268,19 +273,33 @@ export class QueryBuilderTDSState
268
273
  }
269
274
 
270
275
  get fetchStructureValidationIssues(): string[] {
276
+ const validationIssues: string[] = [];
277
+ const hasInValidCalendarAggregateColumns =
278
+ this.aggregationState.columns.some(
279
+ (column) =>
280
+ column.calendarFunction &&
281
+ column.calendarFunction.dateColumn === undefined,
282
+ );
283
+ if (hasInValidCalendarAggregateColumns) {
284
+ validationIssues.push(
285
+ 'Query has calendar function with no date column specified',
286
+ );
287
+ }
271
288
  const hasDuplicatedProjectionColumns = this.projectionColumns.some(
272
289
  (column) =>
273
290
  this.projectionColumns.filter((c) => c.columnName === column.columnName)
274
291
  .length > 1,
275
292
  );
276
293
  if (hasDuplicatedProjectionColumns) {
277
- return ['Query has duplicated projection columns'];
294
+ validationIssues.push('Query has duplicated projection columns');
295
+ return validationIssues;
278
296
  }
279
297
  const hasNoProjectionColumns = this.projectionColumns.length === 0;
280
298
  if (hasNoProjectionColumns) {
281
- return ['Query has no projection columns'];
299
+ validationIssues.push('Query has no projection columns');
300
+ return validationIssues;
282
301
  }
283
- return [];
302
+ return validationIssues;
284
303
  }
285
304
 
286
305
  get allValidationIssues(): string[] {
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { type Hashable, guaranteeType } from '@finos/legend-shared';
18
+ import type {
19
+ AbstractPropertyExpression,
20
+ PrimitiveInstanceValue,
21
+ SimpleFunctionExpression,
22
+ ValueSpecification,
23
+ } from '@finos/legend-graph';
24
+ import {
25
+ type QueryBuilderProjectionColumnState,
26
+ QueryBuilderSimpleProjectionColumnState,
27
+ } from '../projection/QueryBuilderProjectionColumnState.js';
28
+ import type { QueryBuilderAggregateColumnState } from './QueryBuilderAggregationState.js';
29
+ import { computed, makeObservable, observable, action } from 'mobx';
30
+ import type { QUERY_BUILDER_CALENDAR_TYPE } from '../../../../graph-manager/QueryBuilderConst.js';
31
+ import { DEFAULT_LAMBDA_VARIABLE_NAME } from '../../../QueryBuilderConfig.js';
32
+
33
+ export abstract class QueryBuilderAggregateCalendarFunction
34
+ implements Hashable
35
+ {
36
+ dateColumn?: AbstractPropertyExpression | undefined;
37
+ calendarType!: QUERY_BUILDER_CALENDAR_TYPE;
38
+ endDate!: PrimitiveInstanceValue;
39
+ lambdaParameterName: string = DEFAULT_LAMBDA_VARIABLE_NAME;
40
+
41
+ constructor() {
42
+ makeObservable(this, {
43
+ dateColumn: observable,
44
+ lambdaParameterName: observable,
45
+ calendarType: observable,
46
+ endDate: observable,
47
+ setDateColumn: action,
48
+ setCalendarType: action,
49
+ setLambdaParameterName: action,
50
+ setEndDate: action,
51
+ hashCode: computed,
52
+ });
53
+ }
54
+
55
+ abstract getLabel(): string;
56
+
57
+ abstract isCompatibleWithColumn(
58
+ projectionColumnState: QueryBuilderProjectionColumnState,
59
+ ): boolean;
60
+
61
+ abstract buildCalendarFunctionExpression(
62
+ propertyExpression: AbstractPropertyExpression,
63
+ ): ValueSpecification;
64
+
65
+ buildCalendarFunctionExpressionFromState(
66
+ aggregateColumnState: QueryBuilderAggregateColumnState,
67
+ ): ValueSpecification {
68
+ return this.buildCalendarFunctionExpression(
69
+ guaranteeType(
70
+ aggregateColumnState.projectionColumnState,
71
+ QueryBuilderSimpleProjectionColumnState,
72
+ ).propertyExpressionState.propertyExpression,
73
+ );
74
+ }
75
+
76
+ abstract updateAggregateColumnState(
77
+ expression: SimpleFunctionExpression,
78
+ aggregationColumnState: QueryBuilderAggregateColumnState,
79
+ ): void;
80
+
81
+ setDateColumn(val: AbstractPropertyExpression): void {
82
+ this.dateColumn = val;
83
+ }
84
+
85
+ setLambdaParameterName(val: string): void {
86
+ this.lambdaParameterName = val;
87
+ }
88
+
89
+ setCalendarType(val: QUERY_BUILDER_CALENDAR_TYPE): void {
90
+ this.calendarType = val;
91
+ }
92
+
93
+ setEndDate(val: PrimitiveInstanceValue): void {
94
+ this.endDate = val;
95
+ }
96
+
97
+ abstract get hashCode(): string;
98
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { QueryBuilderAggregateCalendarFunction_Ytd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.js';
18
+ import { QueryBuilderAggregateCalendarFunction_Annualized } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.js';
19
+ import type { QueryBuilderAggregateCalendarFunction } from './QueryBuilderAggregateCalendarFunction.js';
20
+ import { QueryBuilderAggregateCalendarFunction_Cme } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.js';
21
+ import { QueryBuilderAggregateCalendarFunction_Cw } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.js';
22
+ import { QueryBuilderAggregateCalendarFunction_Cw_Fm } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.js';
23
+ import { QueryBuilderAggregateCalendarFunction_Cy_Minus2 } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.js';
24
+ import { QueryBuilderAggregateCalendarFunction_Cy_Minus3 } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.js';
25
+ import { QueryBuilderAggregateCalendarFunction_Mtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.js';
26
+ import { QueryBuilderAggregateCalendarFunction_P12Wa } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.js';
27
+ import { QueryBuilderAggregateCalendarFunction_P12Wtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.js';
28
+ import { QueryBuilderAggregateCalendarFunction_P4Wa } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.js';
29
+ import { QueryBuilderAggregateCalendarFunction_P4Wtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.js';
30
+ import { QueryBuilderAggregateCalendarFunction_P52Wa } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.js';
31
+ import { QueryBuilderAggregateCalendarFunction_P52Wtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.js';
32
+ import { QueryBuilderAggregateCalendarFunction_Pma } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.js';
33
+ import { QueryBuilderAggregateCalendarFunction_Pmtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.js';
34
+ import { QueryBuilderAggregateCalendarFunction_Pqtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.js';
35
+ import { QueryBuilderAggregateCalendarFunction_PriorDay } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.js';
36
+ import { QueryBuilderAggregateCalendarFunction_PriorYear } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.js';
37
+ import { QueryBuilderAggregateCalendarFunction_Pw } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.js';
38
+ import { QueryBuilderAggregateCalendarFunction_Pw_Fm } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.js';
39
+ import { QueryBuilderAggregateCalendarFunction_Pwa } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.js';
40
+ import { QueryBuilderAggregateCalendarFunction_Pwtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.js';
41
+ import { QueryBuilderAggregateCalendarFunction_Pymtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.js';
42
+ import { QueryBuilderAggregateCalendarFunction_Pyqtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.js';
43
+ import { QueryBuilderAggregateCalendarFunction_Pytd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.js';
44
+ import { QueryBuilderAggregateCalendarFunction_Pywa } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.js';
45
+ import { QueryBuilderAggregateCalendarFunction_Pywtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.js';
46
+ import { QueryBuilderAggregateCalendarFunction_Qtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.js';
47
+ import { QueryBuilderAggregateCalendarFunction_ReportEndDay } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.js';
48
+ import { QueryBuilderAggregateCalendarFunction_Wtd } from './calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.js';
49
+
50
+ export const getQueryBuilderCoreAggregrationCalendarFunctions =
51
+ (): QueryBuilderAggregateCalendarFunction[] => [
52
+ new QueryBuilderAggregateCalendarFunction_Annualized(),
53
+ new QueryBuilderAggregateCalendarFunction_Ytd(),
54
+ new QueryBuilderAggregateCalendarFunction_Cme(),
55
+ new QueryBuilderAggregateCalendarFunction_Cw(),
56
+ new QueryBuilderAggregateCalendarFunction_Cw_Fm(),
57
+ new QueryBuilderAggregateCalendarFunction_Cy_Minus2(),
58
+ new QueryBuilderAggregateCalendarFunction_Cy_Minus3(),
59
+ new QueryBuilderAggregateCalendarFunction_Mtd(),
60
+ new QueryBuilderAggregateCalendarFunction_P12Wa(),
61
+ new QueryBuilderAggregateCalendarFunction_P12Wtd(),
62
+ new QueryBuilderAggregateCalendarFunction_P4Wa(),
63
+ new QueryBuilderAggregateCalendarFunction_P4Wtd(),
64
+ new QueryBuilderAggregateCalendarFunction_P52Wa(),
65
+ new QueryBuilderAggregateCalendarFunction_P52Wtd(),
66
+ new QueryBuilderAggregateCalendarFunction_Pma(),
67
+ new QueryBuilderAggregateCalendarFunction_Pmtd(),
68
+ new QueryBuilderAggregateCalendarFunction_Pqtd(),
69
+ new QueryBuilderAggregateCalendarFunction_PriorDay(),
70
+ new QueryBuilderAggregateCalendarFunction_PriorYear(),
71
+ new QueryBuilderAggregateCalendarFunction_Pw(),
72
+ new QueryBuilderAggregateCalendarFunction_Pw_Fm(),
73
+ new QueryBuilderAggregateCalendarFunction_Pwa(),
74
+ new QueryBuilderAggregateCalendarFunction_Pwtd(),
75
+ new QueryBuilderAggregateCalendarFunction_Pymtd(),
76
+ new QueryBuilderAggregateCalendarFunction_Pyqtd(),
77
+ new QueryBuilderAggregateCalendarFunction_Pytd(),
78
+ new QueryBuilderAggregateCalendarFunction_Pywa(),
79
+ new QueryBuilderAggregateCalendarFunction_Pywtd(),
80
+ new QueryBuilderAggregateCalendarFunction_Qtd(),
81
+ new QueryBuilderAggregateCalendarFunction_ReportEndDay(),
82
+ new QueryBuilderAggregateCalendarFunction_Wtd(),
83
+ ];