@finos/legend-query-builder 3.0.8 → 3.1.0

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 (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
+ ];