@finos/legend-query-builder 3.0.8 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (282) hide show
  1. package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts +20 -20
  2. package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderTelemetryHelper.js +40 -40
  4. package/lib/__lib__/QueryBuilderTelemetryHelper.js.map +1 -1
  5. package/lib/components/QueryBuilder.d.ts.map +1 -1
  6. package/lib/components/QueryBuilder.js +51 -4
  7. package/lib/components/QueryBuilder.js.map +1 -1
  8. package/lib/components/QueryLoader.d.ts +30 -0
  9. package/lib/components/QueryLoader.d.ts.map +1 -0
  10. package/lib/components/QueryLoader.js +160 -0
  11. package/lib/components/QueryLoader.js.map +1 -0
  12. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +18 -0
  13. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  14. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +152 -15
  15. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  16. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -1
  17. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js +2 -1
  18. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
  19. package/lib/graph/QueryBuilderMetaModelConst.d.ts +33 -0
  20. package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
  21. package/lib/graph/QueryBuilderMetaModelConst.js +34 -0
  22. package/lib/graph/QueryBuilderMetaModelConst.js.map +1 -1
  23. package/lib/graph-manager/QueryBuilderConst.d.ts +20 -0
  24. package/lib/graph-manager/QueryBuilderConst.d.ts.map +1 -0
  25. package/lib/graph-manager/QueryBuilderConst.js +21 -0
  26. package/lib/graph-manager/QueryBuilderConst.js.map +1 -0
  27. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
  28. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +3 -2
  29. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  30. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
  31. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +27 -14
  32. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
  33. package/lib/index.css +2 -2
  34. package/lib/index.css.map +1 -1
  35. package/lib/index.d.ts +3 -0
  36. package/lib/index.d.ts.map +1 -1
  37. package/lib/index.js +3 -0
  38. package/lib/index.js.map +1 -1
  39. package/lib/package.json +1 -1
  40. package/lib/stores/QueryBuilderState.d.ts +2 -0
  41. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  42. package/lib/stores/QueryBuilderState.js +7 -0
  43. package/lib/stores/QueryBuilderState.js.map +1 -1
  44. package/lib/stores/QueryBuilderStateBuilder.d.ts +1 -1
  45. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
  46. package/lib/stores/QueryBuilderStateBuilder.js +11 -2
  47. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  48. package/lib/stores/QueryBuilderStateHashUtils.d.ts +32 -1
  49. package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
  50. package/lib/stores/QueryBuilderStateHashUtils.js +32 -0
  51. package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
  52. package/lib/stores/QueryBuilderTextEditorState.d.ts.map +1 -1
  53. package/lib/stores/QueryBuilderTextEditorState.js +12 -6
  54. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  55. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +30 -0
  56. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -0
  57. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.js +17 -0
  58. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.js.map +1 -0
  59. package/lib/stores/QueryLoaderState.d.ts +67 -0
  60. package/lib/stores/QueryLoaderState.d.ts.map +1 -0
  61. package/lib/stores/QueryLoaderState.js +205 -0
  62. package/lib/stores/QueryLoaderState.js.map +1 -0
  63. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +1 -1
  64. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  65. package/lib/stores/explorer/QueryBuilderExplorerState.js +2 -2
  66. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  67. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
  68. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +1 -0
  69. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  70. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +2 -0
  71. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  72. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +14 -4
  73. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  74. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.d.ts +38 -0
  75. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.d.ts.map +1 -0
  76. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js +54 -0
  77. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js.map +1 -0
  78. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.d.ts +18 -0
  79. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.d.ts.map +1 -0
  80. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.js +80 -0
  81. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.js.map +1 -0
  82. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts +8 -1
  83. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
  84. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js +24 -1
  85. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
  86. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.d.ts.map +1 -1
  87. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js +23 -0
  88. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -1
  89. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.d.ts +22 -0
  90. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.d.ts.map +1 -0
  91. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js +61 -0
  92. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js.map +1 -0
  93. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.d.ts +28 -0
  94. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.d.ts.map +1 -0
  95. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.js +55 -0
  96. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.js.map +1 -0
  97. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.d.ts +28 -0
  98. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.d.ts.map +1 -0
  99. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.js +55 -0
  100. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.js.map +1 -0
  101. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.d.ts +28 -0
  102. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.d.ts.map +1 -0
  103. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.js +55 -0
  104. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.js.map +1 -0
  105. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.d.ts +28 -0
  106. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.d.ts.map +1 -0
  107. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.js +55 -0
  108. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.js.map +1 -0
  109. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.d.ts +28 -0
  110. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.d.ts.map +1 -0
  111. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.js +55 -0
  112. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.js.map +1 -0
  113. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.d.ts +28 -0
  114. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.d.ts.map +1 -0
  115. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.js +55 -0
  116. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.js.map +1 -0
  117. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.d.ts +28 -0
  118. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.d.ts.map +1 -0
  119. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.js +55 -0
  120. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.js.map +1 -0
  121. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.d.ts +28 -0
  122. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.d.ts.map +1 -0
  123. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.js +55 -0
  124. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.js.map +1 -0
  125. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.d.ts +28 -0
  126. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.d.ts.map +1 -0
  127. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.js +55 -0
  128. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.js.map +1 -0
  129. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.d.ts +28 -0
  130. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.d.ts.map +1 -0
  131. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.js +55 -0
  132. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.js.map +1 -0
  133. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.d.ts +28 -0
  134. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.d.ts.map +1 -0
  135. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.js +55 -0
  136. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.js.map +1 -0
  137. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.d.ts +28 -0
  138. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.d.ts.map +1 -0
  139. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.js +55 -0
  140. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.js.map +1 -0
  141. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.d.ts +28 -0
  142. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.d.ts.map +1 -0
  143. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.js +55 -0
  144. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.js.map +1 -0
  145. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.d.ts +28 -0
  146. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.d.ts.map +1 -0
  147. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.js +55 -0
  148. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.js.map +1 -0
  149. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.d.ts +28 -0
  150. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.d.ts.map +1 -0
  151. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.js +55 -0
  152. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.js.map +1 -0
  153. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.d.ts +28 -0
  154. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.d.ts.map +1 -0
  155. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.js +55 -0
  156. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.js.map +1 -0
  157. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.d.ts +28 -0
  158. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.d.ts.map +1 -0
  159. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.js +55 -0
  160. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.js.map +1 -0
  161. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.d.ts +28 -0
  162. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.d.ts.map +1 -0
  163. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.js +55 -0
  164. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.js.map +1 -0
  165. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.d.ts +28 -0
  166. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.d.ts.map +1 -0
  167. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.js +55 -0
  168. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.js.map +1 -0
  169. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.d.ts +28 -0
  170. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.d.ts.map +1 -0
  171. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.js +55 -0
  172. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.js.map +1 -0
  173. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.d.ts +28 -0
  174. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.d.ts.map +1 -0
  175. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.js +55 -0
  176. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.js.map +1 -0
  177. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.d.ts +28 -0
  178. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.d.ts.map +1 -0
  179. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.js +55 -0
  180. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.js.map +1 -0
  181. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.d.ts +28 -0
  182. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.d.ts.map +1 -0
  183. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.js +55 -0
  184. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.js.map +1 -0
  185. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.d.ts +28 -0
  186. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.d.ts.map +1 -0
  187. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.js +55 -0
  188. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.js.map +1 -0
  189. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.d.ts +28 -0
  190. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.d.ts.map +1 -0
  191. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.js +55 -0
  192. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.js.map +1 -0
  193. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.d.ts +28 -0
  194. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.d.ts.map +1 -0
  195. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.js +55 -0
  196. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.js.map +1 -0
  197. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.d.ts +28 -0
  198. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.d.ts.map +1 -0
  199. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.js +55 -0
  200. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.js.map +1 -0
  201. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.d.ts +28 -0
  202. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.d.ts.map +1 -0
  203. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.js +55 -0
  204. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.js.map +1 -0
  205. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.d.ts +28 -0
  206. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.d.ts.map +1 -0
  207. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.js +55 -0
  208. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.js.map +1 -0
  209. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.d.ts +28 -0
  210. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.d.ts.map +1 -0
  211. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.js +55 -0
  212. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.js.map +1 -0
  213. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.d.ts +28 -0
  214. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.d.ts.map +1 -0
  215. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.js +55 -0
  216. package/lib/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.js.map +1 -0
  217. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
  218. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +9 -1
  219. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  220. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +3 -1
  221. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  222. package/lib/stores/shared/ValueSpecificationEditorHelper.js +7 -1
  223. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  224. package/package.json +8 -8
  225. package/src/__lib__/QueryBuilderTelemetryHelper.ts +40 -59
  226. package/src/components/QueryBuilder.tsx +79 -0
  227. package/src/components/QueryLoader.tsx +501 -0
  228. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +456 -92
  229. package/src/components/shared/QueryBuilderPanelIssueCountBadge.tsx +2 -1
  230. package/src/graph/QueryBuilderMetaModelConst.ts +34 -0
  231. package/src/graph-manager/QueryBuilderConst.ts +20 -0
  232. package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +10 -1
  233. package/src/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +73 -28
  234. package/src/index.ts +3 -0
  235. package/src/stores/QueryBuilderState.ts +8 -0
  236. package/src/stores/QueryBuilderStateBuilder.ts +33 -2
  237. package/src/stores/QueryBuilderStateHashUtils.ts +33 -0
  238. package/src/stores/QueryBuilderTextEditorState.ts +21 -14
  239. package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +36 -0
  240. package/src/stores/QueryLoaderState.ts +298 -0
  241. package/src/stores/explorer/QueryBuilderExplorerState.ts +2 -1
  242. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +1 -0
  243. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +22 -3
  244. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.ts +98 -0
  245. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionLoader.ts +83 -0
  246. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.ts +31 -0
  247. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.ts +41 -0
  248. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.ts +175 -0
  249. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Annualized.ts +98 -0
  250. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cme.ts +98 -0
  251. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw.ts +98 -0
  252. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cw_Fm.ts +99 -0
  253. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus2.ts +98 -0
  254. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Cy_Minus3.ts +98 -0
  255. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Mtd.ts +98 -0
  256. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wa.ts +98 -0
  257. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P12Wtd.ts +98 -0
  258. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wa.ts +98 -0
  259. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P4Wtd.ts +98 -0
  260. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wa.ts +98 -0
  261. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_P52Wtd.ts +98 -0
  262. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pma.ts +98 -0
  263. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pmtd.ts +98 -0
  264. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pqtd.ts +98 -0
  265. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorDay.ts +98 -0
  266. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_PriorYear.ts +98 -0
  267. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw.ts +98 -0
  268. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pw_Fm.ts +98 -0
  269. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwa.ts +98 -0
  270. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pwtd.ts +98 -0
  271. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pymtd.ts +98 -0
  272. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pyqtd.ts +98 -0
  273. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pytd.ts +98 -0
  274. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywa.ts +98 -0
  275. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Pywtd.ts +98 -0
  276. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Qtd.ts +98 -0
  277. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_ReportEndDay.ts +98 -0
  278. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Wtd.ts +98 -0
  279. package/src/stores/fetch-structure/tds/aggregation/calendarFunctions/QueryBuilderAggregateCalendarFunction_Ytd.ts +98 -0
  280. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +18 -1
  281. package/src/stores/shared/ValueSpecificationEditorHelper.ts +39 -2
  282. package/tsconfig.json +38 -0
@@ -0,0 +1,20 @@
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
+ export enum QUERY_BUILDER_CALENDAR_TYPE {
18
+ NY = 'NY',
19
+ LDN = 'LDN',
20
+ }
@@ -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,
package/src/index.ts CHANGED
@@ -70,3 +70,6 @@ export * from './stores/shared/ValueSpecificationEditorHelper.js';
70
70
 
71
71
  export * from './components/execution-plan/ExecutionPlanViewer.js';
72
72
  export * from './stores/execution-plan/ExecutionPlanState.js';
73
+ export * from './components/QueryLoader.js';
74
+ export * from './stores/QueryLoaderState.js';
75
+ export * from './stores/QueryBuilder_LegendApplicationPlugin_Extension.js';
@@ -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> {
@@ -0,0 +1,36 @@
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 { LegendApplicationPlugin } from '@finos/legend-application';
18
+ import type { QueryBuilderState } from './QueryBuilderState.js';
19
+ import type { QuerySearchSpecification } from '@finos/legend-graph';
20
+
21
+ export type LoadQueryFilterOption = {
22
+ key: string;
23
+ label: (queryBuilderState: QueryBuilderState) => string | undefined;
24
+ filterFunction: (
25
+ searchSpecification: QuerySearchSpecification,
26
+ queryBuilderState: QueryBuilderState,
27
+ ) => QuerySearchSpecification;
28
+ };
29
+
30
+ export interface QueryBuilder_LegendApplicationPlugin_Extension
31
+ extends LegendApplicationPlugin {
32
+ /**
33
+ * Get the list of filter options for query loader.
34
+ */
35
+ getExtraLoadQueryFilterOptions?(): LoadQueryFilterOption[];
36
+ }