@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
@@ -28,6 +28,7 @@ import type { QueryBuilderAggregateOperator } from './QueryBuilderAggregateOpera
28
28
  import type { QueryBuilderProjectionColumnState } from '../projection/QueryBuilderProjectionColumnState.js';
29
29
  import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../QueryBuilderStateHashUtils.js';
30
30
  import { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState.js';
31
+ import type { QueryBuilderAggregateCalendarFunction } from './QueryBuilderAggregateCalendarFunction.js';
31
32
 
32
33
  export class QueryBuilderAggregateColumnState
33
34
  extends QueryBuilderTDSColumnState
@@ -37,6 +38,8 @@ export class QueryBuilderAggregateColumnState
37
38
  projectionColumnState: QueryBuilderProjectionColumnState;
38
39
  lambdaParameterName: string = DEFAULT_LAMBDA_VARIABLE_NAME;
39
40
  operator: QueryBuilderAggregateOperator;
41
+ calendarFunction?: QueryBuilderAggregateCalendarFunction | undefined;
42
+ hideCalendarColumnState = true;
40
43
 
41
44
  constructor(
42
45
  aggregationState: QueryBuilderAggregationState,
@@ -47,10 +50,14 @@ export class QueryBuilderAggregateColumnState
47
50
  makeObservable(this, {
48
51
  projectionColumnState: observable,
49
52
  lambdaParameterName: observable,
53
+ calendarFunction: observable,
54
+ hideCalendarColumnState: observable,
50
55
  operator: observable,
56
+ setHideCalendarColumnState: action,
51
57
  setColumnState: action,
52
58
  setLambdaParameterName: action,
53
59
  setOperator: action,
60
+ setCalendarFunction: action,
54
61
  hashCode: computed,
55
62
  });
56
63
 
@@ -58,6 +65,7 @@ export class QueryBuilderAggregateColumnState
58
65
  this.projectionColumnState = projectionColumnState;
59
66
  this.operator = operator;
60
67
  }
68
+
61
69
  setColumnState(val: QueryBuilderProjectionColumnState): void {
62
70
  this.projectionColumnState = val;
63
71
  }
@@ -66,6 +74,16 @@ export class QueryBuilderAggregateColumnState
66
74
  this.lambdaParameterName = val;
67
75
  }
68
76
 
77
+ setHideCalendarColumnState(val: boolean): void {
78
+ this.hideCalendarColumnState = val;
79
+ }
80
+
81
+ setCalendarFunction(
82
+ val: QueryBuilderAggregateCalendarFunction | undefined,
83
+ ): void {
84
+ this.calendarFunction = val;
85
+ }
86
+
69
87
  setOperator(val: QueryBuilderAggregateOperator): void {
70
88
  this.operator = val;
71
89
  }
@@ -78,6 +96,7 @@ export class QueryBuilderAggregateColumnState
78
96
  return hashArray([
79
97
  QUERY_BUILDER_STATE_HASH_STRUCTURE.AGGREGATE_COLUMN_STATE,
80
98
  this.operator,
99
+ this.calendarFunction ?? '',
81
100
  ]);
82
101
  }
83
102
 
@@ -89,22 +108,26 @@ export class QueryBuilderAggregateColumnState
89
108
  export class QueryBuilderAggregationState implements Hashable {
90
109
  readonly tdsState: QueryBuilderTDSState;
91
110
  readonly operators: QueryBuilderAggregateOperator[] = [];
111
+ readonly calendarFunctions: QueryBuilderAggregateCalendarFunction[];
92
112
  columns: QueryBuilderAggregateColumnState[] = [];
93
113
 
94
114
  constructor(
95
115
  tdsState: QueryBuilderTDSState,
96
116
  operators: QueryBuilderAggregateOperator[],
117
+ calendarFunctions: QueryBuilderAggregateCalendarFunction[],
97
118
  ) {
98
119
  makeObservable(this, {
99
120
  columns: observable,
100
121
  removeColumn: action,
101
122
  addColumn: action,
102
123
  changeColumnAggregateOperator: action,
124
+ disableCalendar: action,
103
125
  hashCode: computed,
104
126
  });
105
127
 
106
128
  this.tdsState = tdsState;
107
129
  this.operators = operators;
130
+ this.calendarFunctions = calendarFunctions;
108
131
  }
109
132
 
110
133
  removeColumn(val: QueryBuilderAggregateColumnState): void {
@@ -163,6 +186,14 @@ export class QueryBuilderAggregationState implements Hashable {
163
186
  }
164
187
  }
165
188
 
189
+ disableCalendar(): void {
190
+ this.tdsState.queryBuilderState.setIsCalendarEnabled(false);
191
+ this.columns.forEach((column) => {
192
+ column.setCalendarFunction(undefined);
193
+ column.setHideCalendarColumnState(true);
194
+ });
195
+ }
196
+
166
197
  get hashCode(): string {
167
198
  return hashArray([
168
199
  QUERY_BUILDER_STATE_HASH_STRUCTURE.AGGREGATION_STATE,
@@ -104,6 +104,28 @@ export const processTDSAggregateExpression = (
104
104
  `Can't process agg() lambda: only support agg() lambda body with 1 expression`,
105
105
  );
106
106
 
107
+ let calendarExpression: SimpleFunctionExpression | undefined;
108
+ if (queryBuilderState.isCalendarEnabled) {
109
+ const childExpression = expression.parametersValues[0];
110
+ assertType(
111
+ childExpression,
112
+ LambdaFunctionInstanceValue,
113
+ `Can't process agg() expression: agg() expects argument #0 to be a lambda function`,
114
+ );
115
+ const lambdaFunc1 = guaranteeNonNullable(
116
+ childExpression.values[0],
117
+ `Can't process agg() lambda: agg() lambda function is missing`,
118
+ );
119
+ assertTrue(
120
+ lambdaFunc1.expressionSequence.length === 1,
121
+ `Can't process agg() lambda: only support agg() lambda body with 1 expression`,
122
+ );
123
+ calendarExpression =
124
+ lambdaFunc1.expressionSequence[0] instanceof SimpleFunctionExpression
125
+ ? lambdaFunc1.expressionSequence[0]
126
+ : undefined;
127
+ }
128
+
107
129
  assertTrue(
108
130
  lambdaFunc.functionType.parameters.length === 1,
109
131
  `Can't process agg() lambda: only support agg() lambda with 1 parameter`,
@@ -128,6 +150,25 @@ export const processTDSAggregateExpression = (
128
150
  );
129
151
  if (aggregateColumnState) {
130
152
  aggregationState.addColumn(aggregateColumnState);
153
+ if (
154
+ queryBuilderState.isCalendarEnabled &&
155
+ calendarExpression !== undefined
156
+ ) {
157
+ for (const calendarFunction of aggregationState.calendarFunctions) {
158
+ // NOTE: this allow plugin author to either return `undefined` or throw error
159
+ // if there is a problem with building the lambda. Either case, the plugin is
160
+ // considered as not supporting the lambda.
161
+ returnUndefOnError(() =>
162
+ calendarFunction.updateAggregateColumnState(
163
+ guaranteeNonNullable(calendarExpression),
164
+ aggregateColumnState,
165
+ ),
166
+ );
167
+ }
168
+ }
169
+ if (!aggregateColumnState.calendarFunction) {
170
+ aggregateColumnState.setHideCalendarColumnState(true);
171
+ }
131
172
  return;
132
173
  }
133
174
  }
@@ -0,0 +1,175 @@
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 {
18
+ type ValueSpecification,
19
+ SimpleFunctionExpression,
20
+ extractElementNameFromPath,
21
+ matchFunctionName,
22
+ AbstractPropertyExpression,
23
+ PrimitiveInstanceValue,
24
+ GenericType,
25
+ GenericTypeExplicitReference,
26
+ PrimitiveType,
27
+ PRIMITIVE_TYPE,
28
+ VariableExpression,
29
+ } from '@finos/legend-graph';
30
+ import {
31
+ guaranteeType,
32
+ assertTrue,
33
+ UnsupportedOperationError,
34
+ } from '@finos/legend-shared';
35
+ import type { QueryBuilderAggregateColumnState } from '../QueryBuilderAggregationState.js';
36
+ import { type QueryBuilderAggregateCalendarFunction } from '../QueryBuilderAggregateCalendarFunction.js';
37
+ import { QUERY_BUILDER_CALENDAR_TYPE } from '../../../../../graph-manager/QueryBuilderConst.js';
38
+
39
+ export const buildCalendarFunctionExpression = (
40
+ calendarFunctionFullPath: string,
41
+ dateColumn: AbstractPropertyExpression | undefined,
42
+ calendarType: QUERY_BUILDER_CALENDAR_TYPE,
43
+ endDate: PrimitiveInstanceValue,
44
+ targetColumn: AbstractPropertyExpression,
45
+ ): ValueSpecification => {
46
+ const expression = new SimpleFunctionExpression(
47
+ extractElementNameFromPath(calendarFunctionFullPath),
48
+ );
49
+ if (dateColumn) {
50
+ expression.parametersValues.push(dateColumn);
51
+ } else {
52
+ throw new UnsupportedOperationError(
53
+ `Please specify date column for calendar Function for column ${targetColumn.func.value.name}`,
54
+ );
55
+ }
56
+ const calendarTypeParameter = new PrimitiveInstanceValue(
57
+ GenericTypeExplicitReference.create(new GenericType(PrimitiveType.STRING)),
58
+ );
59
+ calendarTypeParameter.values = [calendarType];
60
+ expression.parametersValues.push(calendarTypeParameter);
61
+ expression.parametersValues.push(endDate);
62
+ expression.parametersValues.push(targetColumn);
63
+ return expression;
64
+ };
65
+
66
+ export const updateAggregateColumnState = (
67
+ expression: SimpleFunctionExpression,
68
+ calendarFunctionFullPath: string,
69
+ calendarFunction: QueryBuilderAggregateCalendarFunction,
70
+ aggregateColumnState: QueryBuilderAggregateColumnState,
71
+ ): void => {
72
+ if (matchFunctionName(expression.functionName, calendarFunctionFullPath)) {
73
+ assertTrue(
74
+ expression.parametersValues.length === 4,
75
+ `Can't process ${extractElementNameFromPath(
76
+ calendarFunctionFullPath,
77
+ )}() expression: ${extractElementNameFromPath(
78
+ calendarFunctionFullPath,
79
+ )}() expects four arguments`,
80
+ );
81
+
82
+ const dateColumn = guaranteeType(
83
+ expression.parametersValues[0],
84
+ AbstractPropertyExpression,
85
+ `Can't process ${extractElementNameFromPath(
86
+ calendarFunctionFullPath,
87
+ )}() expression: only support ${extractElementNameFromPath(
88
+ calendarFunctionFullPath,
89
+ )}() with first parameter as property expression`,
90
+ );
91
+ assertTrue(
92
+ dateColumn.func.value.genericType.value.rawType.name ===
93
+ PRIMITIVE_TYPE.STRICTDATE ||
94
+ dateColumn.func.value.genericType.value.rawType.name ===
95
+ PRIMITIVE_TYPE.DATE,
96
+
97
+ `Can't process ${extractElementNameFromPath(
98
+ calendarFunctionFullPath,
99
+ )}() expression: only support ${extractElementNameFromPath(
100
+ calendarFunctionFullPath,
101
+ )}() with first parameter as property expression of type StrictDate`,
102
+ );
103
+ const lambdaParameterName = guaranteeType(
104
+ dateColumn.parametersValues[0],
105
+ VariableExpression,
106
+ ).name;
107
+ calendarFunction.setLambdaParameterName(lambdaParameterName);
108
+
109
+ const calendarTypeParameter = guaranteeType(
110
+ expression.parametersValues[1],
111
+ PrimitiveInstanceValue,
112
+ `Can't process ${extractElementNameFromPath(
113
+ calendarFunctionFullPath,
114
+ )}() expression: only support ${extractElementNameFromPath(
115
+ calendarFunctionFullPath,
116
+ )}() with second parameter as PrimitiveInstancevalue`,
117
+ );
118
+ assertTrue(
119
+ Object.values(QUERY_BUILDER_CALENDAR_TYPE).find(
120
+ (val) => val === calendarTypeParameter.values[0],
121
+ ) !== undefined,
122
+ `Can't process ${extractElementNameFromPath(
123
+ calendarFunctionFullPath,
124
+ )}() expression: only support ${extractElementNameFromPath(
125
+ calendarFunctionFullPath,
126
+ )}() calendar types NY and LDN`,
127
+ );
128
+
129
+ const endDate = guaranteeType(
130
+ expression.parametersValues[2],
131
+ PrimitiveInstanceValue,
132
+ `Can't process ${extractElementNameFromPath(
133
+ calendarFunctionFullPath,
134
+ )}() expression: only support ${extractElementNameFromPath(
135
+ calendarFunctionFullPath,
136
+ )}() with third parameter as PrimitiveInstancevalue`,
137
+ );
138
+ assertTrue(
139
+ endDate.genericType.value.rawType.name === PRIMITIVE_TYPE.STRICTDATE ||
140
+ dateColumn.func.value.genericType.value.rawType.name ===
141
+ PRIMITIVE_TYPE.DATE,
142
+
143
+ `Can't process ${extractElementNameFromPath(
144
+ calendarFunctionFullPath,
145
+ )}() expression: only support ${extractElementNameFromPath(
146
+ calendarFunctionFullPath,
147
+ )}() with third parameter of type StrictDate`,
148
+ );
149
+
150
+ guaranteeType(
151
+ expression.parametersValues[3],
152
+ AbstractPropertyExpression,
153
+ `Can't process ${extractElementNameFromPath(
154
+ calendarFunctionFullPath,
155
+ )}() expression: only support ${extractElementNameFromPath(
156
+ calendarFunctionFullPath,
157
+ )}() fourth parameter as property expression`,
158
+ );
159
+
160
+ calendarFunction.calendarType = calendarTypeParameter
161
+ .values[0] as QUERY_BUILDER_CALENDAR_TYPE;
162
+ calendarFunction.endDate = endDate;
163
+ calendarFunction.dateColumn = dateColumn;
164
+ assertTrue(
165
+ calendarFunction.isCompatibleWithColumn(
166
+ aggregateColumnState.projectionColumnState,
167
+ ),
168
+ `Can't process ${extractElementNameFromPath(
169
+ calendarFunctionFullPath,
170
+ )}() expression: property is not compatible with calendar function`,
171
+ );
172
+ aggregateColumnState.setHideCalendarColumnState(false);
173
+ aggregateColumnState.setCalendarFunction(calendarFunction);
174
+ }
175
+ };
@@ -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 {
18
+ PRIMITIVE_TYPE,
19
+ type ValueSpecification,
20
+ type SimpleFunctionExpression,
21
+ type AbstractPropertyExpression,
22
+ } from '@finos/legend-graph';
23
+ import type { QueryBuilderAggregateColumnState } from '../QueryBuilderAggregationState.js';
24
+ import {
25
+ type QueryBuilderProjectionColumnState,
26
+ QueryBuilderSimpleProjectionColumnState,
27
+ } from '../../projection/QueryBuilderProjectionColumnState.js';
28
+ import { QueryBuilderAggregateCalendarFunction } from '../QueryBuilderAggregateCalendarFunction.js';
29
+ import {
30
+ updateAggregateColumnState,
31
+ buildCalendarFunctionExpression,
32
+ } from './QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js';
33
+ import { QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
34
+ import { hashArray, type Hashable } from '@finos/legend-shared';
35
+ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
36
+
37
+ export class QueryBuilderAggregateCalendarFunction_Annualized
38
+ extends QueryBuilderAggregateCalendarFunction
39
+ implements Hashable
40
+ {
41
+ getLabel(): string {
42
+ return 'Annualized';
43
+ }
44
+
45
+ isCompatibleWithColumn(
46
+ projectionColumnState: QueryBuilderProjectionColumnState,
47
+ ): boolean {
48
+ if (
49
+ projectionColumnState instanceof QueryBuilderSimpleProjectionColumnState
50
+ ) {
51
+ const propertyType =
52
+ projectionColumnState.propertyExpressionState.propertyExpression.func
53
+ .value.genericType.value.rawType;
54
+ return (
55
+ [
56
+ PRIMITIVE_TYPE.NUMBER,
57
+ PRIMITIVE_TYPE.INTEGER,
58
+ PRIMITIVE_TYPE.DECIMAL,
59
+ PRIMITIVE_TYPE.FLOAT,
60
+ ] as string[]
61
+ ).includes(propertyType.path);
62
+ }
63
+ return true;
64
+ }
65
+
66
+ buildCalendarFunctionExpression(
67
+ p: AbstractPropertyExpression,
68
+ ): ValueSpecification {
69
+ return buildCalendarFunctionExpression(
70
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_ANNUALIZED,
71
+ this.dateColumn,
72
+ this.calendarType,
73
+ this.endDate,
74
+ p,
75
+ );
76
+ }
77
+
78
+ updateAggregateColumnState(
79
+ expression: SimpleFunctionExpression,
80
+ aggregationColumnState: QueryBuilderAggregateColumnState,
81
+ ): void {
82
+ updateAggregateColumnState(
83
+ expression,
84
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_ANNUALIZED,
85
+ this,
86
+ aggregationColumnState,
87
+ );
88
+ }
89
+
90
+ get hashCode(): string {
91
+ return hashArray([
92
+ QUERY_BUILDER_STATE_HASH_STRUCTURE.AGGREGATE_CALENDAR_FUNCTION_ANNUALIZED,
93
+ this.dateColumn ?? '',
94
+ this.calendarType,
95
+ this.endDate,
96
+ ]);
97
+ }
98
+ }
@@ -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 {
18
+ PRIMITIVE_TYPE,
19
+ type ValueSpecification,
20
+ type SimpleFunctionExpression,
21
+ type AbstractPropertyExpression,
22
+ } from '@finos/legend-graph';
23
+ import type { QueryBuilderAggregateColumnState } from '../QueryBuilderAggregationState.js';
24
+ import {
25
+ type QueryBuilderProjectionColumnState,
26
+ QueryBuilderSimpleProjectionColumnState,
27
+ } from '../../projection/QueryBuilderProjectionColumnState.js';
28
+ import { QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
29
+ import { hashArray, type Hashable } from '@finos/legend-shared';
30
+ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
31
+ import { QueryBuilderAggregateCalendarFunction } from '../QueryBuilderAggregateCalendarFunction.js';
32
+ import {
33
+ updateAggregateColumnState,
34
+ buildCalendarFunctionExpression,
35
+ } from './QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js';
36
+
37
+ export class QueryBuilderAggregateCalendarFunction_Cme
38
+ extends QueryBuilderAggregateCalendarFunction
39
+ implements Hashable
40
+ {
41
+ getLabel(): string {
42
+ return `Current Month Estimate`;
43
+ }
44
+
45
+ isCompatibleWithColumn(
46
+ projectionColumnState: QueryBuilderProjectionColumnState,
47
+ ): boolean {
48
+ if (
49
+ projectionColumnState instanceof QueryBuilderSimpleProjectionColumnState
50
+ ) {
51
+ const propertyType =
52
+ projectionColumnState.propertyExpressionState.propertyExpression.func
53
+ .value.genericType.value.rawType;
54
+ return (
55
+ [
56
+ PRIMITIVE_TYPE.NUMBER,
57
+ PRIMITIVE_TYPE.INTEGER,
58
+ PRIMITIVE_TYPE.DECIMAL,
59
+ PRIMITIVE_TYPE.FLOAT,
60
+ ] as string[]
61
+ ).includes(propertyType.path);
62
+ }
63
+ return true;
64
+ }
65
+
66
+ buildCalendarFunctionExpression(
67
+ p: AbstractPropertyExpression,
68
+ ): ValueSpecification {
69
+ return buildCalendarFunctionExpression(
70
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_CME,
71
+ this.dateColumn,
72
+ this.calendarType,
73
+ this.endDate,
74
+ p,
75
+ );
76
+ }
77
+
78
+ updateAggregateColumnState(
79
+ expression: SimpleFunctionExpression,
80
+ aggregationColumnState: QueryBuilderAggregateColumnState,
81
+ ): void {
82
+ updateAggregateColumnState(
83
+ expression,
84
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_CME,
85
+ this,
86
+ aggregationColumnState,
87
+ );
88
+ }
89
+
90
+ get hashCode(): string {
91
+ return hashArray([
92
+ QUERY_BUILDER_STATE_HASH_STRUCTURE.AGGREGATE_CALENDAR_FUNCTION_CME,
93
+ this.dateColumn ?? '',
94
+ this.calendarType,
95
+ this.endDate,
96
+ ]);
97
+ }
98
+ }
@@ -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 {
18
+ PRIMITIVE_TYPE,
19
+ type ValueSpecification,
20
+ type SimpleFunctionExpression,
21
+ type AbstractPropertyExpression,
22
+ } from '@finos/legend-graph';
23
+ import type { QueryBuilderAggregateColumnState } from '../QueryBuilderAggregationState.js';
24
+ import {
25
+ type QueryBuilderProjectionColumnState,
26
+ QueryBuilderSimpleProjectionColumnState,
27
+ } from '../../projection/QueryBuilderProjectionColumnState.js';
28
+ import { QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
29
+ import { hashArray, type Hashable } from '@finos/legend-shared';
30
+ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
31
+ import { QueryBuilderAggregateCalendarFunction } from '../QueryBuilderAggregateCalendarFunction.js';
32
+ import {
33
+ updateAggregateColumnState,
34
+ buildCalendarFunctionExpression,
35
+ } from './QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js';
36
+
37
+ export class QueryBuilderAggregateCalendarFunction_Cw
38
+ extends QueryBuilderAggregateCalendarFunction
39
+ implements Hashable
40
+ {
41
+ getLabel(): string {
42
+ return `Current Week`;
43
+ }
44
+
45
+ isCompatibleWithColumn(
46
+ projectionColumnState: QueryBuilderProjectionColumnState,
47
+ ): boolean {
48
+ if (
49
+ projectionColumnState instanceof QueryBuilderSimpleProjectionColumnState
50
+ ) {
51
+ const propertyType =
52
+ projectionColumnState.propertyExpressionState.propertyExpression.func
53
+ .value.genericType.value.rawType;
54
+ return (
55
+ [
56
+ PRIMITIVE_TYPE.NUMBER,
57
+ PRIMITIVE_TYPE.INTEGER,
58
+ PRIMITIVE_TYPE.DECIMAL,
59
+ PRIMITIVE_TYPE.FLOAT,
60
+ ] as string[]
61
+ ).includes(propertyType.path);
62
+ }
63
+ return true;
64
+ }
65
+
66
+ buildCalendarFunctionExpression(
67
+ p: AbstractPropertyExpression,
68
+ ): ValueSpecification {
69
+ return buildCalendarFunctionExpression(
70
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_CW,
71
+ this.dateColumn,
72
+ this.calendarType,
73
+ this.endDate,
74
+ p,
75
+ );
76
+ }
77
+
78
+ updateAggregateColumnState(
79
+ expression: SimpleFunctionExpression,
80
+ aggregationColumnState: QueryBuilderAggregateColumnState,
81
+ ): void {
82
+ updateAggregateColumnState(
83
+ expression,
84
+ QUERY_BUILDER_SUPPORTED_CALENDAR_AGGREGATION_FUNCTIONS.CALENDAR_CW,
85
+ this,
86
+ aggregationColumnState,
87
+ );
88
+ }
89
+
90
+ get hashCode(): string {
91
+ return hashArray([
92
+ QUERY_BUILDER_STATE_HASH_STRUCTURE.AGGREGATE_CALENDAR_FUNCTION_CW,
93
+ this.dateColumn ?? '',
94
+ this.calendarType,
95
+ this.endDate,
96
+ ]);
97
+ }
98
+ }